Browse Source

Prepare for a rewrite

Panagiotis Christopoulos Charitos 3 years ago
parent
commit
e428e8336e

+ 4 - 4
AnKi/Resource/MaterialResource.h

@@ -178,15 +178,15 @@ private:
 /// Material XML file format:
 /// @code
 ///	<material [shadows="0|1"]>
-///		<technique name="technique_name" shaderProgram="filename">
+///		<shaderProgram filename="filename">
 ///			[<mutation>
 ///				<mutator name="str" value="value"/>
 ///			</mutation>]
-///		</technique>
+///		</shaderProgram>
 ///
-///		[<technique ...>
+///		[<shaderProgram ...>
 ///			...
-///		</technique>]
+///		</shaderProgram>]
 ///
 ///		[<inputs>
 ///			<input name="name in AnKiMaterialUniforms struct or opaque type" value="value(s)"/> (1)

+ 5 - 5
AnKi/Resource/RenderingKey.h

@@ -13,11 +13,11 @@ namespace anki {
 /// The AnKi passes visible to materials.
 enum class RenderingTechnique : U8
 {
-	GBUFFER,
-	GBUFFER_EARLY_Z,
-	SHADOW,
-	FORWARD,
-	RT_SHADOW,
+	GBUFFER = 0,
+	GBUFFER_EARLY_Z = 1,
+	SHADOW = 2,
+	FORWARD = 3,
+	RT_SHADOW = 4,
 
 	COUNT,
 	FIRST = 0

+ 6 - 15
AnKi/ShaderCompiler/Glslang.cpp

@@ -21,7 +21,7 @@
 #	pragma GCC diagnostic pop
 #endif
 
-#define ANKI_GLSLANG_DUMP 0
+#define ANKI_GLSLANG_DUMP 1
 
 namespace anki {
 
@@ -295,20 +295,16 @@ Error compilerGlslToSpirv(CString src, ShaderType shaderType, GenericMemoryPoolA
 {
 #if ANKI_GLSLANG_DUMP
 	// Dump it
+	const U32 dumpFileCount = g_dumpFileCount.fetchAdd(1);
 	{
-		const U32 count = g_dumpFileCount.fetchAdd(1) / 2;
-		if(count == 0)
-		{
-			ANKI_SHADER_COMPILER_LOGW("GLSL dumping is enabled");
-		}
-
 		File file;
 
 		StringAuto tmpDir(tmpAlloc);
 		ANKI_CHECK(getTempDirectory(tmpDir));
 
 		StringAuto fname(tmpAlloc);
-		fname.sprintf("%s/%u.glsl", tmpDir.cstr(), count);
+		fname.sprintf("%s/%u.glsl", tmpDir.cstr(), dumpFileCount);
+		ANKI_SHADER_COMPILER_LOGW("GLSL dumping is enabled: %s", fname.cstr());
 		ANKI_CHECK(file.open(fname, FileOpenFlag::WRITE));
 		ANKI_CHECK(file.writeText("%s", src.cstr()));
 	}
@@ -352,19 +348,14 @@ Error compilerGlslToSpirv(CString src, ShaderType shaderType, GenericMemoryPoolA
 #if ANKI_GLSLANG_DUMP
 	// Dump it
 	{
-		const U32 count = g_dumpFileCount.fetchAdd(1) / 2;
-		if(count == 0)
-		{
-			ANKI_SHADER_COMPILER_LOGW("SPIR-V dumping is enabled");
-		}
-
 		File file;
 
 		StringAuto tmpDir(tmpAlloc);
 		ANKI_CHECK(getTempDirectory(tmpDir));
 
 		StringAuto fname(tmpAlloc);
-		fname.sprintf("%s/%u.spv", tmpDir.cstr(), count);
+		fname.sprintf("%s/%u.spv", tmpDir.cstr(), dumpFileCount);
+		ANKI_SHADER_COMPILER_LOGW("GLSL dumping is enabled: %s", fname.cstr());
 		ANKI_CHECK(file.open(fname, FileOpenFlag::WRITE | FileOpenFlag::BINARY));
 		ANKI_CHECK(file.write(spirv.getBegin(), spirv.getSizeInBytes()));
 	}

+ 0 - 6
AnKi/ShaderCompiler/ShaderProgramParser.cpp

@@ -492,12 +492,6 @@ Error ShaderProgramParser::parsePragmaMutator(const StringAuto* begin, const Str
 			mutator.m_values.emplaceBack(value);
 		}
 
-		// Check for correct count
-		if(mutator.m_values.getSize() < 2)
-		{
-			ANKI_PP_ERROR_MALFORMED_MSG("Mutator with less that 2 values doesn't make sense");
-		}
-
 		std::sort(mutator.m_values.getBegin(), mutator.m_values.getEnd());
 
 		// Check for duplicates

+ 14 - 9
AnKi/Shaders/ForwardShadingParticles.ankiprog

@@ -18,17 +18,20 @@ struct AnKiLocalUniforms
 	ANKI_RP Vec4 m_colorBias;
 };
 
-layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_RENDERABLE_GPU_VIEW, row_major, scalar) uniform b_renderableGpuViews
+layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_RENDERABLE_GPU_VIEW, row_major,
+	   scalar) uniform b_renderableGpuViews
 {
 	RenderableGpuView u_renderableGpuViews[1];
 };
 
-layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_LOCAL_UNIFORMS, row_major, scalar) uniform b_localUniforms
+layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_LOCAL_UNIFORMS, row_major,
+	   scalar) uniform b_localUniforms
 {
 	AnKiLocalUniforms u_localUniforms;
 };
 
-layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_GLOBAL_UNIFORMS, row_major, scalar) uniform b_ankiGlobalUniforms
+layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_GLOBAL_UNIFORMS, row_major,
+	   scalar) uniform b_ankiGlobalUniforms
 {
 	MaterialGlobalUniforms u_ankiGlobals;
 };
@@ -36,11 +39,13 @@ layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_GLOBAL_UNIFORMS,
 layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_GLOBAL_SAMPLER) uniform sampler u_ankiGlobalSampler;
 #if ANIMATED_TEXTURE == 0
 #	pragma anki reflect u_diffuseMap
-layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_FIRST_NON_STANDARD) uniform ANKI_RP texture2D u_diffuseMap;
+layout(set = MATERIAL_SET_EXTERNAL,
+	   binding = MATERIAL_BINDING_FIRST_NON_STANDARD) uniform ANKI_RP texture2D u_diffuseMap;
 #endif
 #if ANIMATED_TEXTURE == 1
 #	pragma anki reflect u_diffuseMapArr
-layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_FIRST_NON_STANDARD) uniform ANKI_RP texture2DArray u_diffuseMapArr;
+layout(set = MATERIAL_SET_EXTERNAL,
+	   binding = MATERIAL_BINDING_FIRST_NON_STANDARD) uniform ANKI_RP texture2DArray u_diffuseMapArr;
 #endif
 
 #pragma anki start vert
@@ -57,8 +62,8 @@ void main()
 	out_uv = Vec2(gl_VertexID & 1, gl_VertexID >> 1);
 
 	out_worldPos = u_ankiGlobals.m_cameraRotationMatrix * Vec3((out_uv - 0.5) * in_scale, 0.0) + in_position;
-	gl_Position =
-		u_ankiGlobals.m_viewProjectionMatrix * Vec4(u_renderableGpuViews[0].m_worldTransform * Vec4(out_worldPos, 1.0), 1.0);
+	gl_Position = u_ankiGlobals.m_viewProjectionMatrix
+				  * Vec4(u_renderableGpuViews[0].m_worldTransform * Vec4(out_worldPos, 1.0), 1.0);
 
 	out_alpha = in_alpha;
 }
@@ -73,8 +78,8 @@ layout(location = 2) in Vec3 in_worldPos;
 void main()
 {
 #if ANIMATED_TEXTURE == 1
-	ANKI_RP Vec4 texCol = readAnimatedTextureRgba(u_diffuseMapArr, u_ankiGlobalSampler, u_localUniforms.m_animationPeriod,
-												  in_uv, u_clusteredShading.m_time);
+	ANKI_RP Vec4 texCol = readAnimatedTextureRgba(u_diffuseMapArr, u_ankiGlobalSampler,
+												  u_localUniforms.m_animationPeriod, in_uv, u_clusteredShading.m_time);
 #else
 	ANKI_RP Vec4 texCol = texture(u_diffuseMap, u_ankiGlobalSampler, in_uv);
 #endif

+ 11 - 11
AnKi/Shaders/GBufferCommon.glsl

@@ -14,7 +14,7 @@
 #include <AnKi/Shaders/Common.glsl>
 
 #define REALLY_USING_PARALLAX \
-	(PARALLAX == 1 && TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER && ANKI_LOD == 0 && ALPHA_TEST == 0)
+	(PARALLAX == 1 && ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER && ANKI_LOD == 0 && ALPHA_TEST == 0)
 
 //
 // Vert input
@@ -23,12 +23,12 @@
 
 layout(location = VERTEX_ATTRIBUTE_ID_POSITION) in Vec3 in_position;
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 layout(location = VERTEX_ATTRIBUTE_ID_NORMAL) in Vec3 in_normal;
 layout(location = VERTEX_ATTRIBUTE_ID_TANGENT) in Vec4 in_tangent;
 #	endif
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
 layout(location = VERTEX_ATTRIBUTE_ID_UV0) in Vec2 in_uv;
 #	endif
 
@@ -44,11 +44,11 @@ layout(location = VERTEX_ATTRIBUTE_ID_BONE_INDICES) in UVec4 in_boneIndices;
 //
 #if defined(ANKI_VERTEX_SHADER)
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
 layout(location = 0) out Vec2 out_uv;
 #	endif
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 layout(location = 1) out ANKI_RP Vec3 out_normal;
 layout(location = 2) out ANKI_RP Vec3 out_tangent;
 layout(location = 3) out Vec3 out_bitangent;
@@ -62,7 +62,7 @@ layout(location = 6) out Vec3 out_normalTangentSpace;
 #		if ANKI_VELOCITY || ANKI_BONES
 layout(location = 7) out Vec2 out_velocity;
 #		endif
-#	endif // TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#	endif // ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 
 #endif // defined(ANKI_VERTEX_SHADER)
 
@@ -71,11 +71,11 @@ layout(location = 7) out Vec2 out_velocity;
 //
 #if defined(ANKI_FRAGMENT_SHADER)
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
 layout(location = 0) in Vec2 in_uv;
 #	endif
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 layout(location = 1) in ANKI_RP Vec3 in_normal;
 layout(location = 2) in ANKI_RP Vec3 in_tangent;
 layout(location = 3) in Vec3 in_bitangent;
@@ -89,7 +89,7 @@ layout(location = 6) in Vec3 in_normalTangentSpace;
 #		if ANKI_VELOCITY || ANKI_BONES
 layout(location = 7) in Vec2 in_velocity;
 #		endif
-#	endif // TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#	endif // ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 
 #endif // defined(ANKI_FRAGMENT_SHADER)
 
@@ -97,7 +97,7 @@ layout(location = 7) in Vec2 in_velocity;
 // Frag out
 //
 #if defined(ANKI_FRAGMENT_SHADER) \
-	&& (TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER_EZ)
+	&& (ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER_EZ)
 layout(location = 0) out Vec4 out_gbuffer0;
 layout(location = 1) out Vec4 out_gbuffer1;
 layout(location = 2) out Vec4 out_gbuffer2;
@@ -109,7 +109,7 @@ layout(location = 3) out Vec2 out_gbuffer3;
 //
 
 // Write the data to RTs
-#if defined(ANKI_FRAGMENT_SHADER) && TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if defined(ANKI_FRAGMENT_SHADER) && ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 void packGBuffer(ANKI_RP Vec3 diffColor, ANKI_RP Vec3 normal, ANKI_RP Vec3 specularColor, ANKI_RP F32 roughness,
 				 ANKI_RP F32 subsurface, ANKI_RP Vec3 emission, ANKI_RP F32 metallic, Vec2 velocity)
 {

+ 27 - 27
AnKi/Shaders/GBufferGeneric.ankiprog

@@ -5,7 +5,7 @@
 
 #pragma anki mutator ANKI_LOD 0 1 2
 #pragma anki mutator ANKI_VELOCITY 0 1
-#pragma anki mutator TECHNIQUE 0 1 2
+#pragma anki mutator ANKI_TECHNIQUE 0 1 2
 #pragma anki mutator ANKI_BONES 0 1
 #pragma anki mutator DIFFUSE_TEX 0 1
 #pragma anki mutator SPECULAR_TEX 0 1
@@ -16,26 +16,26 @@
 #pragma anki mutator EMISSIVE_TEX 0 1
 #pragma anki mutator ALPHA_TEST 0 1
 
-#pragma anki rewrite_mutation TECHNIQUE 1 DIFFUSE_TEX 1 ALPHA_TEST 0 to TECHNIQUE 1 DIFFUSE_TEX 0 ALPHA_TEST 0
-#pragma anki rewrite_mutation TECHNIQUE 2 DIFFUSE_TEX 1 ALPHA_TEST 0 to TECHNIQUE 2 DIFFUSE_TEX 0 ALPHA_TEST 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 DIFFUSE_TEX 1 ALPHA_TEST 0 to ANKI_TECHNIQUE 1 DIFFUSE_TEX 0 ALPHA_TEST 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 DIFFUSE_TEX 1 ALPHA_TEST 0 to ANKI_TECHNIQUE 2 DIFFUSE_TEX 0 ALPHA_TEST 0
 
-#pragma anki rewrite_mutation TECHNIQUE 1 SPECULAR_TEX 1 to TECHNIQUE 1 SPECULAR_TEX 0
-#pragma anki rewrite_mutation TECHNIQUE 2 SPECULAR_TEX 1 to TECHNIQUE 2 SPECULAR_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 SPECULAR_TEX 1 to ANKI_TECHNIQUE 1 SPECULAR_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 SPECULAR_TEX 1 to ANKI_TECHNIQUE 2 SPECULAR_TEX 0
 
-#pragma anki rewrite_mutation TECHNIQUE 1 NORMAL_TEX 1 to TECHNIQUE 1 NORMAL_TEX 0
-#pragma anki rewrite_mutation TECHNIQUE 2 NORMAL_TEX 1 to TECHNIQUE 2 NORMAL_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 NORMAL_TEX 1 to ANKI_TECHNIQUE 1 NORMAL_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 NORMAL_TEX 1 to ANKI_TECHNIQUE 2 NORMAL_TEX 0
 
-#pragma anki rewrite_mutation TECHNIQUE 1 ROUGHNESS_TEX 1 to TECHNIQUE 1 ROUGHNESS_TEX 0
-#pragma anki rewrite_mutation TECHNIQUE 2 ROUGHNESS_TEX 1 to TECHNIQUE 2 ROUGHNESS_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 ROUGHNESS_TEX 1 to ANKI_TECHNIQUE 1 ROUGHNESS_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 ROUGHNESS_TEX 1 to ANKI_TECHNIQUE 2 ROUGHNESS_TEX 0
 
-#pragma anki rewrite_mutation TECHNIQUE 1 METAL_TEX 1 to TECHNIQUE 1 METAL_TEX 0
-#pragma anki rewrite_mutation TECHNIQUE 2 METAL_TEX 1 to TECHNIQUE 2 METAL_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 METAL_TEX 1 to ANKI_TECHNIQUE 1 METAL_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 METAL_TEX 1 to ANKI_TECHNIQUE 2 METAL_TEX 0
 
-#pragma anki rewrite_mutation TECHNIQUE 1 EMISSIVE_TEX 1 to TECHNIQUE 1 EMISSIVE_TEX 0
-#pragma anki rewrite_mutation TECHNIQUE 2 EMISSIVE_TEX 1 to TECHNIQUE 2 EMISSIVE_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 EMISSIVE_TEX 1 to ANKI_TECHNIQUE 1 EMISSIVE_TEX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 EMISSIVE_TEX 1 to ANKI_TECHNIQUE 2 EMISSIVE_TEX 0
 
-#pragma anki rewrite_mutation TECHNIQUE 1 PARALLAX 1 to TECHNIQUE 1 PARALLAX 0
-#pragma anki rewrite_mutation TECHNIQUE 2 PARALLAX 1 to TECHNIQUE 2 PARALLAX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 1 PARALLAX 1 to ANKI_TECHNIQUE 1 PARALLAX 0
+#pragma anki rewrite_mutation ANKI_TECHNIQUE 2 PARALLAX 1 to ANKI_TECHNIQUE 2 PARALLAX 0
 
 #pragma anki rewrite_mutation ALPHA_TEST 1 DIFFUSE_TEX 0 to ALPHA_TEST 0 DIFFUSE_TEX 0
 
@@ -129,14 +129,14 @@ layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_GLOBAL_UNIFORMS,
 };
 
 #if ANKI_BONES
-#pragma anki reflect b_boneTransforms
+#	pragma anki reflect b_boneTransforms
 layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_BONE_TRANSFORMS, row_major,
 	   std140) readonly buffer b_boneTransforms
 {
 	Mat4 u_boneTransforms[];
 };
 
-#pragma anki reflect b_prevFrameBoneTransforms
+#	pragma anki reflect b_prevFrameBoneTransforms
 layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_PREVIOUS_BONE_TRANSFORMS, row_major,
 	   std140) readonly buffer b_prevFrameBoneTransforms
 {
@@ -148,13 +148,13 @@ layout(set = MATERIAL_SET_EXTERNAL, binding = MATERIAL_BINDING_PREVIOUS_BONE_TRA
 
 // Globals (always in local space)
 Vec3 g_position = in_position;
-#if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 Vec3 g_prevPosition = in_position;
 ANKI_RP Vec3 g_normal = in_normal;
 ANKI_RP Vec4 g_tangent = in_tangent;
 #endif
 
-#if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
+#if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER || ALPHA_TEST
 Vec2 g_uv = in_uv;
 #endif
 
@@ -170,7 +170,7 @@ void skinning()
 		prevSkinMat += u_prevFrameBoneTransforms[in_boneIndices[i]] * in_boneWeights[i];
 	}
 
-#	if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#	if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 	g_prevPosition = (prevSkinMat * Vec4(g_position, 1.0)).xyz;
 	g_tangent.xyz = (skinMat * Vec4(g_tangent.xyz, 0.0)).xyz;
 	g_normal = (skinMat * Vec4(g_normal, 0.0)).xyz;
@@ -181,7 +181,7 @@ void skinning()
 #endif
 
 // Common store function
-#if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 void positionUvNormalTangent()
 {
 	gl_Position = u_globalUniforms.m_viewProjectionMatrix
@@ -214,7 +214,7 @@ void parallax()
 }
 #endif
 
-#if(ANKI_VELOCITY || ANKI_BONES) && TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if(ANKI_VELOCITY || ANKI_BONES) && ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 void velocity()
 {
 	const Vec3 prevLocalPos = g_prevPosition;
@@ -242,7 +242,7 @@ void main()
 	skinning();
 #endif
 
-#if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 	positionUvNormalTangent();
 
 #	if REALLY_USING_PARALLAX
@@ -336,7 +336,7 @@ Vec2 computeTextureCoordParallax(texture2D heightMap, sampler sampl, Vec2 uv, F3
 #endif
 
 // Do normal mapping
-#if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 ANKI_RP Vec3 readNormalFromTexture(ANKI_RP texture2D map, sampler sampl, highp Vec2 texCoords)
 {
 	// First read the texture
@@ -362,7 +362,7 @@ void doAlphaText(F32 alpha)
 
 void main()
 {
-#if TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
+#if ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER
 #	if REALLY_USING_PARALLAX
 	const Vec2 uv = computeTextureCoordParallax(u_heightTex, u_globalSampler, in_uv, u_localUniforms.m_heightmapScale);
 #	else
@@ -418,14 +418,14 @@ void main()
 #	endif
 
 	packGBuffer(diffColor, normal, specColor, roughness, u_localUniforms.m_subsurface, emission, metallic, velocity);
-#elif TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER_EZ
+#elif ANKI_TECHNIQUE == RENDERING_TECHNIQUE_GBUFFER_EZ
 	out_gbuffer0 = Vec4(0.0);
 	out_gbuffer1 = Vec4(0.0);
 	out_gbuffer2 = Vec4(0.0);
 	out_gbuffer3 = Vec2(0.0);
 #endif
 
-#if TECHNIQUE != RENDERING_TECHNIQUE_GBUFFER && ALPHA_TEST
+#if ANKI_TECHNIQUE != RENDERING_TECHNIQUE_GBUFFER && ALPHA_TEST
 	doAlphaText(texture(u_diffTex, u_globalSampler, in_uv).a);
 #endif
 }

+ 1 - 2
AnKi/Shaders/RtShadowsHit.ankiprog

@@ -6,12 +6,12 @@
 #pragma anki library RtShadows
 #pragma anki ray_type 0
 
+#pragma anki mutator ANKI_TECHNIQUE 4
 #pragma anki mutator ALPHA_TEXTURE 0 1
 
 #include <AnKi/Shaders/Common.glsl>
 #include <AnKi/Shaders/Include/ModelTypes.h>
 
-#if ALPHA_TEXTURE == 1
 layout(shaderRecordEXT, scalar) buffer b_model
 {
 	ModelGpuDescriptor u_modelDescriptor;
@@ -20,7 +20,6 @@ layout(shaderRecordEXT, scalar) buffer b_model
 layout(set = 0, binding = 5) uniform sampler u_sampler;
 
 ANKI_BINDLESS_SET(1);
-#endif
 
 layout(location = 0) rayPayloadInEXT F32 g_payload;