Browse Source

Some updates in spec constants

Panagiotis Christopoulos Charitos 4 years ago
parent
commit
95cb8b883f

+ 36 - 47
AnKi/ShaderCompiler/ShaderProgramParser.cpp

@@ -181,55 +181,44 @@ static const char* SHADER_HEADER = R"(#version 460 core
 #define ANKI_SIZEOF(type) _ANKI_CONCATENATE(_ANKI_SIZEOF_, type)
 #define ANKI_ALIGNOF(type) _ANKI_CONCATENATE(_ANKI_ALIGNOF_, type)
 
-#define _ANKI_SCONST_X(type, n, id, defltVal) \
-	layout(constant_id = id) const type n = defltVal; \
+#define _ANKI_SCONST_X(type, n, id) \
+	layout(constant_id = id) const type n = type(1); \
 	const U32 ANKI_CONCATENATE(n, _CONST_ID) = id
 
-#define _ANKI_SCONST_X2(type, componentType, n, id, defltVal, constWorkaround) \
-	layout(constant_id = id + 0) const componentType ANKI_CONCATENATE(_anki_const_0_2_, n) = defltVal[0]; \
-	layout(constant_id = id + 1) const componentType ANKI_CONCATENATE(_anki_const_1_2_, n) = defltVal[1]; \
-	constWorkaround componentType ANKI_CONCATENATE(n, _X) = ANKI_CONCATENATE(_anki_const_0_2_, n) + componentType(0); \
-	constWorkaround componentType ANKI_CONCATENATE(n, _Y) = ANKI_CONCATENATE(_anki_const_1_2_, n) + componentType(0); \
-	constWorkaround type n = type(ANKI_CONCATENATE(n, _X), ANKI_CONCATENATE(n, _Y)); \
-	const UVec2 ANKI_CONCATENATE(n, _CONST_ID) = UVec2(id, id + 1)
-
-#define _ANKI_SCONST_X3(type, componentType, n, id, defltVal, constWorkaround) \
-	layout(constant_id = id + 0) const componentType ANKI_CONCATENATE(_anki_const_0_3_, n) = defltVal[0]; \
-	layout(constant_id = id + 1) const componentType ANKI_CONCATENATE(_anki_const_1_3_, n) = defltVal[1]; \
-	layout(constant_id = id + 2) const componentType ANKI_CONCATENATE(_anki_const_2_3_, n) = defltVal[2]; \
-	constWorkaround componentType ANKI_CONCATENATE(n, _X) = ANKI_CONCATENATE(_anki_const_0_3_, n) + componentType(0); \
-	constWorkaround componentType ANKI_CONCATENATE(n, _Y) = ANKI_CONCATENATE(_anki_const_1_3_, n) + componentType(0); \
-	constWorkaround componentType ANKI_CONCATENATE(n, _Z) = ANKI_CONCATENATE(_anki_const_2_3_, n) + componentType(0); \
-	constWorkaround type n = type(ANKI_CONCATENATE(n, _X), ANKI_CONCATENATE(n, _Y), ANKI_CONCATENATE(n, _Z)); \
-	const UVec3 ANKI_CONCATENATE(n, _CONST_ID) = UVec3(id, id + 1, id + 2)
-
-#define _ANKI_SCONST_X4(type, componentType, n, id, defltVal, constWorkaround) \
-	layout(constant_id = id + 0) const componentType ANKI_CONCATENATE(_anki_const_0_4_, n) = defltVal[0]; \
-	layout(constant_id = id + 1) const componentType ANKI_CONCATENATE(_anki_const_1_4_, n) = defltVal[1]; \
-	layout(constant_id = id + 2) const componentType ANKI_CONCATENATE(_anki_const_2_4_, n) = defltVal[2]; \
-	layout(constant_id = id + 3) const componentType ANKI_CONCATENATE(_anki_const_3_4_, n) = defltVal[3]; \
-	constWorkaround componentType ANKI_CONCATENATE(n, _X) = ANKI_CONCATENATE(_anki_const_0_4_, n) + componentType(0); \
-	constWorkaround componentType ANKI_CONCATENATE(n, _Y) = ANKI_CONCATENATE(_anki_const_1_4_, n) + componentType(0); \
-	constWorkaround componentType ANKI_CONCATENATE(n, _Z) = ANKI_CONCATENATE(_anki_const_2_4_, n) + componentType(0); \
-	constWorkaround componentType ANKI_CONCATENATE(n, _W) = ANKI_CONCATENATE(_anki_const_3_4_, n) + componentType(0); \
-	constWorkaround type n = type(ANKI_CONCATENATE(n, _X), ANKI_CONCATENATE(n, _Y), ANKI_CONCATENATE(n, _Z), \
-		ANKI_CONCATENATE(n, _W)); \
-	const UVec4 ANKI_CONCATENATE(n, _CONST_ID) = UVec4(id, id + 1, id + 2, id + 3)
-
-#define ANKI_SPECIALIZATION_CONSTANT_I32(n, id, defltVal) _ANKI_SCONST_X(I32, n, id, defltVal)
-#define ANKI_SPECIALIZATION_CONSTANT_IVEC2(n, id, defltVal) _ANKI_SCONST_X2(IVec2, I32, n, id, defltVal, const)
-#define ANKI_SPECIALIZATION_CONSTANT_IVEC3(n, id, defltVal) _ANKI_SCONST_X3(IVec3, I32, n, id, defltVal, const)
-#define ANKI_SPECIALIZATION_CONSTANT_IVEC4(n, id, defltVal) _ANKI_SCONST_X4(IVec4, I32, n, id, defltVal, const)
-
-#define ANKI_SPECIALIZATION_CONSTANT_U32(n, id, defltVal) _ANKI_SCONST_X(U32, n, id, defltVal)
-#define ANKI_SPECIALIZATION_CONSTANT_UVEC2(n, id, defltVal) _ANKI_SCONST_X2(UVec2, U32, n, id, defltVal, const)
-#define ANKI_SPECIALIZATION_CONSTANT_UVEC3(n, id, defltVal) _ANKI_SCONST_X3(UVec3, U32, n, id, defltVal, const)
-#define ANKI_SPECIALIZATION_CONSTANT_UVEC4(n, id, defltVal) _ANKI_SCONST_X4(UVec4, U32, n, id, defltVal, const)
-
-#define ANKI_SPECIALIZATION_CONSTANT_F32(n, id, defltVal) _ANKI_SCONST_X(F32, n, id, defltVal)
-#define ANKI_SPECIALIZATION_CONSTANT_VEC2(n, id, defltVal) _ANKI_SCONST_X2(Vec2, F32, n, id, defltVal,)
-#define ANKI_SPECIALIZATION_CONSTANT_VEC3(n, id, defltVal) _ANKI_SCONST_X3(Vec3, F32, n, id, defltVal,)
-#define ANKI_SPECIALIZATION_CONSTANT_VEC4(n, id, defltVal) _ANKI_SCONST_X4(Vec4, F32, n, id, defltVal,)
+#define _ANKI_SCONST_X2(type, componentType, n, id, constWorkaround) \
+	layout(constant_id = id + 0) const componentType ANKI_CONCATENATE(_anki_const_0_2_, n) = componentType(1); \
+	layout(constant_id = id + 1) const componentType ANKI_CONCATENATE(_anki_const_1_2_, n) = componentType(1); \
+	constWorkaround type n = type(ANKI_CONCATENATE(_anki_const_0_2_, n), ANKI_CONCATENATE(_anki_const_1_2_, n))
+
+#define _ANKI_SCONST_X3(type, componentType, n, id, constWorkaround) \
+	layout(constant_id = id + 0) const componentType ANKI_CONCATENATE(_anki_const_0_3_, n) = componentType(1); \
+	layout(constant_id = id + 1) const componentType ANKI_CONCATENATE(_anki_const_1_3_, n) = componentType(1); \
+	layout(constant_id = id + 2) const componentType ANKI_CONCATENATE(_anki_const_2_3_, n) = componentType(1); \
+	constWorkaround type n = type(ANKI_CONCATENATE(_anki_const_0_3_, n), ANKI_CONCATENATE(_anki_const_1_3_, n), \
+		ANKI_CONCATENATE(_anki_const_2_3_, n))
+
+#define _ANKI_SCONST_X4(type, componentType, n, id, constWorkaround) \
+	layout(constant_id = id + 0) const componentType ANKI_CONCATENATE(_anki_const_0_4_, n) = componentType(1); \
+	layout(constant_id = id + 1) const componentType ANKI_CONCATENATE(_anki_const_1_4_, n) = componentType(1); \
+	layout(constant_id = id + 2) const componentType ANKI_CONCATENATE(_anki_const_2_4_, n) = componentType(1); \
+	layout(constant_id = id + 3) const componentType ANKI_CONCATENATE(_anki_const_3_4_, n) = componentType(1); \
+	constWorkaround type n = type(ANKI_CONCATENATE(_anki_const_0_4_, n), ANKI_CONCATENATE(_anki_const_1_4_, n), \
+		ANKI_CONCATENATE(_anki_const_2_4_, n), ANKI_CONCATENATE(_anki_const_2_4_, n))
+
+#define ANKI_SPECIALIZATION_CONSTANT_I32(n, id) _ANKI_SCONST_X(I32, n, id)
+#define ANKI_SPECIALIZATION_CONSTANT_IVEC2(n, id) _ANKI_SCONST_X2(IVec2, I32, n, id, const)
+#define ANKI_SPECIALIZATION_CONSTANT_IVEC3(n, id) _ANKI_SCONST_X3(IVec3, I32, n, id, const)
+#define ANKI_SPECIALIZATION_CONSTANT_IVEC4(n, id) _ANKI_SCONST_X4(IVec4, I32, n, id, const)
+
+#define ANKI_SPECIALIZATION_CONSTANT_U32(n, id) _ANKI_SCONST_X(U32, n, id)
+#define ANKI_SPECIALIZATION_CONSTANT_UVEC2(n, id) _ANKI_SCONST_X2(UVec2, U32, n, id, const)
+#define ANKI_SPECIALIZATION_CONSTANT_UVEC3(n, id) _ANKI_SCONST_X3(UVec3, U32, n, id, const)
+#define ANKI_SPECIALIZATION_CONSTANT_UVEC4(n, id) _ANKI_SCONST_X4(UVec4, U32, n, id, const)
+
+#define ANKI_SPECIALIZATION_CONSTANT_F32(n, id) _ANKI_SCONST_X(F32, n, id)
+#define ANKI_SPECIALIZATION_CONSTANT_VEC2(n, id) _ANKI_SCONST_X2(Vec2, F32, n, id,)
+#define ANKI_SPECIALIZATION_CONSTANT_VEC3(n, id) _ANKI_SCONST_X3(Vec3, F32, n, id,)
+#define ANKI_SPECIALIZATION_CONSTANT_VEC4(n, id) _ANKI_SCONST_X4(Vec4, F32, n, id,)
 
 #define ANKI_REF(type, alignment) \
 	layout(buffer_reference, scalar, buffer_reference_align = (alignment)) buffer type##Ref \

+ 1 - 1
AnKi/Shaders/Bloom.ankiprog

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
 const UVec2 WORKGROUP_SIZE = UVec2(16, 16);
 
 #pragma anki start comp

+ 2 - 2
AnKi/Shaders/BloomUpscale.ankiprog

@@ -3,8 +3,8 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(INPUT_TEX_SIZE, 2, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(INPUT_TEX_SIZE, 2);
 const UVec2 WORKGROUP_SIZE = UVec2(16u, 16u);
 
 #pragma anki start comp

+ 5 - 5
AnKi/Shaders/ClusterBinning.ankiprog

@@ -3,11 +3,11 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_U32(TILE_SIZE, 0, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(TILE_COUNT_X, 1, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(TILE_COUNT_Y, 2, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 3, 1u);
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(RENDERING_SIZE, 4, UVec2(1u));
+ANKI_SPECIALIZATION_CONSTANT_U32(TILE_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(TILE_COUNT_X, 1);
+ANKI_SPECIALIZATION_CONSTANT_U32(TILE_COUNT_Y, 2);
+ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 3);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(RENDERING_SIZE, 4);
 
 #pragma anki start comp
 

+ 1 - 1
AnKi/Shaders/DepthAwareBlur.glsl

@@ -7,7 +7,7 @@
 #pragma anki mutator SAMPLE_COUNT 3 5 7 9 11 13 15
 #pragma anki mutator COLOR_COMPONENTS 4 3 1
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(TEXTURE_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(TEXTURE_SIZE, 0);
 
 #include <AnKi/Shaders/Common.glsl>
 

+ 1 - 1
AnKi/Shaders/ExponentialShadowmappingResolve.ankiprog

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(INPUT_TEXTURE_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(INPUT_TEXTURE_SIZE, 0);
 
 #pragma anki start comp
 #include <AnKi/Shaders/GaussianBlurCommon.glsl>

+ 3 - 3
AnKi/Shaders/FinalComposite.ankiprog

@@ -7,9 +7,9 @@
 #pragma anki mutator BLOOM_ENABLED 0 1
 #pragma anki mutator DBG_ENABLED 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_U32(LUT_SIZE, 0, 1);
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 1, UVec2(1, 1));
-ANKI_SPECIALIZATION_CONSTANT_U32(MOTION_BLUR_SAMPLES, 3, 1);
+ANKI_SPECIALIZATION_CONSTANT_U32(LUT_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 1);
+ANKI_SPECIALIZATION_CONSTANT_U32(MOTION_BLUR_SAMPLES, 3);
 
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.glsl>

+ 2 - 2
AnKi/Shaders/GBufferPost.ankiprog

@@ -3,8 +3,8 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_X, 0, 1);
-ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_Y, 1, 1);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_X, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_Y, 1);
 
 #pragma anki start vert
 #include <AnKi/Shaders/Common.glsl>

+ 1 - 1
AnKi/Shaders/GaussianBlur.glsl

@@ -9,7 +9,7 @@
 #pragma anki mutator KERNEL_SIZE 3 5 7 9 11
 #pragma anki mutator COLOR_COMPONENTS 4 3 1
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(TEXTURE_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(TEXTURE_SIZE, 0);
 
 #include <AnKi/Shaders/GaussianBlurCommon.glsl>
 

+ 1 - 1
AnKi/Shaders/LensFlareUpdateIndirectInfo.ankiprog

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(IN_DEPTH_MAP_SIZE, 0, UVec2(1.0));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(IN_DEPTH_MAP_SIZE, 0);
 
 #pragma anki start comp
 #include <AnKi/Shaders/Common.glsl>

+ 4 - 4
AnKi/Shaders/LightShading.ankiprog

@@ -5,10 +5,10 @@
 
 #pragma anki mutator USE_SHADOW_LAYERS 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(TILE_COUNT, 0, UVec2(1u));
-ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 2, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(TILE_SIZE, 3, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(IR_MIPMAP_COUNT, 4, 1u);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(TILE_COUNT, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 2);
+ANKI_SPECIALIZATION_CONSTANT_U32(TILE_SIZE, 3);
+ANKI_SPECIALIZATION_CONSTANT_U32(IR_MIPMAP_COUNT, 4);
 
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.glsl>

+ 2 - 2
AnKi/Shaders/LightShadingApplyFog.ankiprog

@@ -3,8 +3,8 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 0, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(FINAL_Z_SPLIT, 1, 1u);
+ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(FINAL_Z_SPLIT, 1);
 
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.glsl>

+ 1 - 1
AnKi/Shaders/LumaAwareBlur.ankiprog

@@ -7,7 +7,7 @@
 #pragma anki mutator KERNEL_SIZE 3 5 7 9 11 13 15
 #pragma anki mutator COLOR_COMPONENTS 4 3 1
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(TEXTURE_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(TEXTURE_SIZE, 0);
 
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.glsl>

+ 1 - 1
AnKi/Shaders/MotionVectors.ankiprog

@@ -5,7 +5,7 @@
 
 // Calculates the motion vectors that will be used to sample from the previous frame
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
 const F32 MAX_REJECTION_DISTANCE = 2.0; // In meters
 #define VARIANCE_CLIPPING 0
 const F32 VARIANCE_CLIPPING_GAMMA = 2.0;

+ 3 - 3
AnKi/Shaders/RtShadowsDenoise.ankiprog

@@ -7,9 +7,9 @@
 
 #pragma anki start comp
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(OUT_IMAGE_SIZE, 0, UVec2(1));
-ANKI_SPECIALIZATION_CONSTANT_U32(MIN_SAMPLE_COUNT, 2, 1);
-ANKI_SPECIALIZATION_CONSTANT_U32(MAX_SAMPLE_COUNT, 3, 1);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(OUT_IMAGE_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(MIN_SAMPLE_COUNT, 2);
+ANKI_SPECIALIZATION_CONSTANT_U32(MAX_SAMPLE_COUNT, 3);
 
 #include <AnKi/Shaders/BilateralFilter.glsl>
 #include <AnKi/Shaders/Pack.glsl>

+ 1 - 1
AnKi/Shaders/RtShadowsSvgfAtrous.ankiprog

@@ -5,7 +5,7 @@
 
 #pragma anki mutator LAST_PASS 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
 
 #pragma anki start comp
 

+ 1 - 1
AnKi/Shaders/RtShadowsSvgfVariance.ankiprog

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
 
 #pragma anki start comp
 

+ 1 - 1
AnKi/Shaders/RtShadowsUpscale.ankiprog

@@ -9,7 +9,7 @@
 #include <AnKi/Shaders/Functions.glsl>
 #include <AnKi/Shaders/BilateralFilter.glsl>
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(OUT_IMAGE_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(OUT_IMAGE_SIZE, 0);
 
 const UVec2 WORKGROUP_SIZE = UVec2(8u, 8u);
 layout(local_size_x = WORKGROUP_SIZE.x, local_size_y = WORKGROUP_SIZE.y, local_size_z = 1) in;

+ 1 - 1
AnKi/Shaders/SceneDebug.ankiprog

@@ -6,7 +6,7 @@
 #pragma anki mutator COLOR_TEXTURE 0 1
 #pragma anki mutator DITHERED_DEPTH_TEST 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_U32(INSTANCE_COUNT, 0, 1);
+ANKI_SPECIALIZATION_CONSTANT_U32(INSTANCE_COUNT, 0);
 
 layout(set = 1, binding = 0, row_major) uniform u0_
 {

+ 3 - 3
AnKi/Shaders/ShadowmapsResolve.ankiprog

@@ -5,9 +5,9 @@
 
 #pragma anki start comp
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
-ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_X, 2, 1u);
-ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_Y, 3, 1u);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_X, 2);
+ANKI_SPECIALIZATION_CONSTANT_U32(CLUSTER_COUNT_Y, 3);
 
 #define LIGHT_SET 0
 #define LIGHT_COMMON_UNIS_BINDING 3

+ 6 - 6
AnKi/Shaders/Ssao.glsl

@@ -8,12 +8,12 @@
 #pragma anki mutator USE_NORMAL 0 1
 #pragma anki mutator SOFT_BLUR 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_U32(NOISE_MAP_SIZE, 0, 1);
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 1, UVec2(1));
-ANKI_SPECIALIZATION_CONSTANT_F32(RADIUS, 3, 0.0);
-ANKI_SPECIALIZATION_CONSTANT_F32(BIAS, 4, 0.0);
-ANKI_SPECIALIZATION_CONSTANT_F32(STRENGTH, 5, 0.0);
-ANKI_SPECIALIZATION_CONSTANT_U32(SAMPLE_COUNT, 6, 1);
+ANKI_SPECIALIZATION_CONSTANT_U32(NOISE_MAP_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 1);
+ANKI_SPECIALIZATION_CONSTANT_F32(RADIUS, 3);
+ANKI_SPECIALIZATION_CONSTANT_F32(BIAS, 4);
+ANKI_SPECIALIZATION_CONSTANT_F32(STRENGTH, 5);
+ANKI_SPECIALIZATION_CONSTANT_U32(SAMPLE_COUNT, 6);
 
 #pragma once
 

+ 1 - 1
AnKi/Shaders/SsgiDenoise.ankiprog

@@ -7,7 +7,7 @@
 #pragma anki mutator ORIENTATION 0 1 // 0: VERTICAL, 1: HORIZONTAL
 #pragma anki mutator SAMPLE_COUNT 3 5 7 9 11 13 15
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(IN_TEXTURE_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(IN_TEXTURE_SIZE, 0);
 
 #pragma anki start comp
 

+ 1 - 1
AnKi/Shaders/SsgiReconstruct.ankiprog

@@ -11,7 +11,7 @@
 
 #pragma anki mutator VARIANT 0 1 2 3
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 0);
 
 #pragma anki start comp
 

+ 3 - 3
AnKi/Shaders/TemporalAAResolve.ankiprog

@@ -8,9 +8,9 @@
 #pragma anki mutator TONEMAP_FIX 0 1
 #pragma anki mutator YCBCR 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_F32(VARIANCE_CLIPPING_GAMMA, 0, 1.0);
-ANKI_SPECIALIZATION_CONSTANT_F32(BLEND_FACTOR, 1, 0.5);
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 2, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_F32(VARIANCE_CLIPPING_GAMMA, 0);
+ANKI_SPECIALIZATION_CONSTANT_F32(BLEND_FACTOR, 1);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(FB_SIZE, 2);
 
 #pragma anki start comp
 #include <AnKi/Shaders/Functions.glsl>

+ 1 - 1
AnKi/Shaders/TonemappingAverageLuminance.ankiprog

@@ -3,7 +3,7 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(INPUT_TEX_SIZE, 0, UVec2(1));
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(INPUT_TEX_SIZE, 0);
 
 #pragma anki start comp
 #define LOG_AVG 0

+ 3 - 3
AnKi/Shaders/VolumetricFogAccumulation.ankiprog

@@ -3,9 +3,9 @@
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC3(VOLUME_SIZE, 0, UVec3(1));
-ANKI_SPECIALIZATION_CONSTANT_U32(FINAL_Z_SPLIT, 3, 1);
-ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 4, 1);
+ANKI_SPECIALIZATION_CONSTANT_UVEC3(VOLUME_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_U32(FINAL_Z_SPLIT, 3);
+ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 4);
 
 #pragma anki start comp
 

+ 4 - 4
AnKi/Shaders/VolumetricLightingAccumulation.ankiprog

@@ -7,10 +7,10 @@
 
 #pragma anki mutator ENABLE_SHADOWS 0 1
 
-ANKI_SPECIALIZATION_CONSTANT_UVEC3(VOLUME_SIZE, 0, UVec3(1));
-ANKI_SPECIALIZATION_CONSTANT_UVEC2(TILE_COUNT, 3, UVec2(1));
-ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 5, 1);
-ANKI_SPECIALIZATION_CONSTANT_U32(FINAL_Z_SPLIT, 6, 1);
+ANKI_SPECIALIZATION_CONSTANT_UVEC3(VOLUME_SIZE, 0);
+ANKI_SPECIALIZATION_CONSTANT_UVEC2(TILE_COUNT, 3);
+ANKI_SPECIALIZATION_CONSTANT_U32(Z_SPLIT_COUNT, 5);
+ANKI_SPECIALIZATION_CONSTANT_U32(FINAL_Z_SPLIT, 6);
 
 #pragma anki start comp
 

+ 5 - 5
Tests/ShaderCompiler/ShaderProgramCompiler.cpp

@@ -213,25 +213,25 @@ layout(set = 0, binding = 0) uniform ankiMaterial
 #if PASS == 0
 
 #if DIFFUSE_TEX == 0
-ANKI_SPECIALIZATION_CONSTANT_VEC3(diffColor, 0, Vec3(0));
+ANKI_SPECIALIZATION_CONSTANT_VEC3(diffColor, 0);
 #else
 layout(set = 0, binding = 1) uniform texture2D diffTex;
 #endif
 
 #if SPECULAR_TEX == 0
-ANKI_SPECIALIZATION_CONSTANT_VEC3(specColor, 3, Vec3(0));
+ANKI_SPECIALIZATION_CONSTANT_VEC3(specColor, 3);
 #else
 layout(set = 0, binding = 2) uniform texture2D specTex;
 #endif
 
 #if ROUGHNESS_TEX == 0
-ANKI_SPECIALIZATION_CONSTANT_F32(roughness, 6, 0.0);
+ANKI_SPECIALIZATION_CONSTANT_F32(roughness, 6);
 #else
 layout(set = 0, binding = 3) uniform texture2D roughnessTex;
 #endif
 
 #if METAL_TEX == 0
-ANKI_SPECIALIZATION_CONSTANT_F32(metallic, 7, 0.0);
+ANKI_SPECIALIZATION_CONSTANT_F32(metallic, 7);
 #else
 layout(set = 0, binding = 4) uniform texture2D metallicTex;
 #endif
@@ -243,7 +243,7 @@ layout(set = 0, binding = 5) uniform texture2D emissiveTex;
 #endif
 
 #if PARALLAX == 1 && LOD == 0
-ANKI_SPECIALIZATION_CONSTANT_F32(heightMapScale, 11, 0.0);
+ANKI_SPECIALIZATION_CONSTANT_F32(heightMapScale, 11);
 layout(set = 0, binding = 6) uniform texture2D heightTex;
 #endif