Browse Source

Minor refactoring

Panagiotis Christopoulos Charitos 2 years ago
parent
commit
118bd4da16
86 changed files with 221 additions and 191 deletions
  1. 92 62
      AnKi/ShaderCompiler/ShaderProgramParser.cpp
  2. 3 3
      AnKi/ShaderCompiler/ShaderProgramParser.h
  3. 1 1
      AnKi/Shaders/ApplyIrradianceToReflection.ankiprog
  4. 1 1
      AnKi/Shaders/BlitCompute.ankiprog
  5. 2 2
      AnKi/Shaders/BlitRaster.ankiprog
  6. 1 1
      AnKi/Shaders/BloomCompute.ankiprog
  7. 2 2
      AnKi/Shaders/BloomRaster.ankiprog
  8. 1 1
      AnKi/Shaders/BloomUpscaleCompute.ankiprog
  9. 2 2
      AnKi/Shaders/BloomUpscaleRaster.ankiprog
  10. 1 1
      AnKi/Shaders/ClearTextureCompute.ankiprog
  11. 1 1
      AnKi/Shaders/ClusterBinning.ankiprog
  12. 1 1
      AnKi/Shaders/ClusterBinningPackVisibles.ankiprog
  13. 1 1
      AnKi/Shaders/ClusterBinningSetup.ankiprog
  14. 2 2
      AnKi/Shaders/DbgBillboard.ankiprog
  15. 2 2
      AnKi/Shaders/DbgRenderables.ankiprog
  16. 1 1
      AnKi/Shaders/DepthAwareBlurCompute.ankiprog
  17. 2 2
      AnKi/Shaders/DepthAwareBlurRaster.ankiprog
  18. 1 1
      AnKi/Shaders/DepthDownscaleCompute.ankiprog
  19. 2 2
      AnKi/Shaders/DepthDownscaleRaster.ankiprog
  20. 1 1
      AnKi/Shaders/DownscaleBlurCompute.ankiprog
  21. 2 2
      AnKi/Shaders/DownscaleBlurRaster.ankiprog
  22. 2 2
      AnKi/Shaders/DrawerStats.ankiprog
  23. 2 2
      AnKi/Shaders/FinalComposite.ankiprog
  24. 2 2
      AnKi/Shaders/ForwardShadingFog.ankiprog
  25. 2 2
      AnKi/Shaders/ForwardShadingGenericTransparent.ankiprog
  26. 2 2
      AnKi/Shaders/ForwardShadingParticles.ankiprog
  27. 1 1
      AnKi/Shaders/FsrCompute.ankiprog
  28. 2 2
      AnKi/Shaders/FsrRaster.ankiprog
  29. 2 2
      AnKi/Shaders/GBufferGeneric.ankiprog
  30. 2 2
      AnKi/Shaders/GBufferGpuParticles.ankiprog
  31. 2 2
      AnKi/Shaders/GBufferPost.ankiprog
  32. 1 1
      AnKi/Shaders/GpuParticlesSimulation.ankiprog
  33. 1 1
      AnKi/Shaders/GpuSceneMicroPatching.ankiprog
  34. 1 1
      AnKi/Shaders/GpuVisibility.ankiprog
  35. 1 1
      AnKi/Shaders/GpuVisibilityAccelerationStructures.ankiprog
  36. 1 1
      AnKi/Shaders/GpuVisibilityAccelerationStructuresZeroRemainingInstances.ankiprog
  37. 1 1
      AnKi/Shaders/GpuVisibilityNonRenderables.ankiprog
  38. 1 1
      AnKi/Shaders/HzbGenPyramid.ankiprog
  39. 1 1
      AnKi/Shaders/HzbMaxDepth.ankiprog
  40. 2 2
      AnKi/Shaders/HzbMaxDepthProject.ankiprog
  41. 1 1
      AnKi/Shaders/IndirectDiffuseCompute.ankiprog
  42. 1 1
      AnKi/Shaders/IndirectDiffuseDenoiseCompute.ankiprog
  43. 2 2
      AnKi/Shaders/IndirectDiffuseDenoiseRaster.ankiprog
  44. 2 2
      AnKi/Shaders/IndirectDiffuseRaster.ankiprog
  45. 1 1
      AnKi/Shaders/IndirectDiffuseVrsSriGeneration.ankiprog
  46. 1 1
      AnKi/Shaders/IndirectSpecularCompute.ankiprog
  47. 2 2
      AnKi/Shaders/IndirectSpecularRaster.ankiprog
  48. 1 1
      AnKi/Shaders/IrradianceDice.ankiprog
  49. 2 2
      AnKi/Shaders/LensFlareSprite.ankiprog
  50. 1 1
      AnKi/Shaders/LensFlareUpdateIndirectInfo.ankiprog
  51. 2 2
      AnKi/Shaders/LightShading.ankiprog
  52. 2 2
      AnKi/Shaders/LightShadingApplyFog.ankiprog
  53. 2 2
      AnKi/Shaders/LightShadingApplyIndirect.ankiprog
  54. 2 2
      AnKi/Shaders/LightShadingSkybox.ankiprog
  55. 1 1
      AnKi/Shaders/MotionVectorsCompute.ankiprog
  56. 2 2
      AnKi/Shaders/MotionVectorsRaster.ankiprog
  57. 1 1
      AnKi/Shaders/RtShadowsDenoise.ankiprog
  58. 2 2
      AnKi/Shaders/RtShadowsHit.ankiprog
  59. 1 1
      AnKi/Shaders/RtShadowsMiss.ankiprog
  60. 1 1
      AnKi/Shaders/RtShadowsRayGen.ankiprog
  61. 1 1
      AnKi/Shaders/RtShadowsSbtBuild.ankiprog
  62. 1 1
      AnKi/Shaders/RtShadowsSetupSbtBuild.ankiprog
  63. 1 1
      AnKi/Shaders/RtShadowsSvgfAtrous.ankiprog
  64. 1 1
      AnKi/Shaders/RtShadowsSvgfVariance.ankiprog
  65. 1 1
      AnKi/Shaders/RtShadowsUpscale.ankiprog
  66. 2 2
      AnKi/Shaders/ShadowMappingClearDepth.ankiprog
  67. 1 1
      AnKi/Shaders/ShadowMappingVetVisibility.ankiprog
  68. 1 1
      AnKi/Shaders/ShadowmapsResolveCompute.ankiprog
  69. 2 2
      AnKi/Shaders/ShadowmapsResolveRaster.ankiprog
  70. 1 1
      AnKi/Shaders/TemporalAACompute.ankiprog
  71. 2 2
      AnKi/Shaders/TemporalAARaster.ankiprog
  72. 1 1
      AnKi/Shaders/TonemapCompute.ankiprog
  73. 2 2
      AnKi/Shaders/TonemapRaster.ankiprog
  74. 1 1
      AnKi/Shaders/TonemappingAverageLuminance.ankiprog
  75. 2 2
      AnKi/Shaders/TraditionalDeferredShading.ankiprog
  76. 2 2
      AnKi/Shaders/TraditionalDeferredShadingSkybox.ankiprog
  77. 2 2
      AnKi/Shaders/Ui.ankiprog
  78. 2 2
      AnKi/Shaders/UiVisualizeImage.ankiprog
  79. 2 2
      AnKi/Shaders/VisualizeHdrRenderTarget.ankiprog
  80. 2 2
      AnKi/Shaders/VisualizeRenderTarget.ankiprog
  81. 1 1
      AnKi/Shaders/VolumetricFogAccumulation.ankiprog
  82. 1 1
      AnKi/Shaders/VolumetricLightingAccumulation.ankiprog
  83. 1 1
      AnKi/Shaders/VrsSriDownscale.ankiprog
  84. 1 1
      AnKi/Shaders/VrsSriGenerationCompute.ankiprog
  85. 2 2
      AnKi/Shaders/VrsSriVisualizeRenderTarget.ankiprog
  86. 4 4
      Tests/ShaderCompiler/ShaderProgramCompiler.cpp

+ 92 - 62
AnKi/ShaderCompiler/ShaderProgramParser.cpp

@@ -29,6 +29,72 @@ inline constexpr char kShaderHeader[] = R"(#define ANKI_%s_SHADER 1
 
 
 static const U64 kShaderHeaderHash = computeHash(kShaderHeader, sizeof(kShaderHeader));
 static const U64 kShaderHeaderHash = computeHash(kShaderHeader, sizeof(kShaderHeader));
 
 
+static ShaderType strToShaderType(CString str)
+{
+	ShaderType shaderType = ShaderType::kCount;
+	if(str == "vert")
+	{
+		shaderType = ShaderType::kVertex;
+	}
+	else if(str == "tessc")
+	{
+		shaderType = ShaderType::kTessellationControl;
+	}
+	else if(str == "tesse")
+	{
+	}
+	else if(str == "geom")
+	{
+		shaderType = ShaderType::kGeometry;
+	}
+	else if(str == "task")
+	{
+		shaderType = ShaderType::kTask;
+	}
+	else if(str == "mesh")
+	{
+		shaderType = ShaderType::kMesh;
+	}
+	else if(str == "frag")
+	{
+		shaderType = ShaderType::kFragment;
+	}
+	else if(str == "comp")
+	{
+		shaderType = ShaderType::kCompute;
+	}
+	else if(str == "rgen")
+	{
+		shaderType = ShaderType::kRayGen;
+	}
+	else if(str == "ahit")
+	{
+		shaderType = ShaderType::kAnyHit;
+	}
+	else if(str == "chit")
+	{
+		shaderType = ShaderType::kClosestHit;
+	}
+	else if(str == "miss")
+	{
+		shaderType = ShaderType::kMiss;
+	}
+	else if(str == "int")
+	{
+		shaderType = ShaderType::kIntersection;
+	}
+	else if(str == "call")
+	{
+		shaderType = ShaderType::kCallable;
+	}
+	else
+	{
+		shaderType = ShaderType::kCount;
+	}
+
+	return shaderType;
+}
+
 ShaderProgramParser::ShaderProgramParser(CString fname, ShaderProgramFilesystemInterface* fsystem, const ShaderCompilerOptions& compilerOptions)
 ShaderProgramParser::ShaderProgramParser(CString fname, ShaderProgramFilesystemInterface* fsystem, const ShaderCompilerOptions& compilerOptions)
 	: m_fname(fname)
 	: m_fname(fname)
 	, m_fsystem(fsystem)
 	, m_fsystem(fsystem)
@@ -75,63 +141,8 @@ Error ShaderProgramParser::parsePragmaStart(const String* begin, const String* e
 		ANKI_PP_ERROR_MALFORMED();
 		ANKI_PP_ERROR_MALFORMED();
 	}
 	}
 
 
-	ShaderType shaderType = ShaderType::kCount;
-	if(*begin == "vert")
-	{
-		shaderType = ShaderType::kVertex;
-	}
-	else if(*begin == "tessc")
-	{
-		shaderType = ShaderType::kTessellationControl;
-	}
-	else if(*begin == "tesse")
-	{
-	}
-	else if(*begin == "geom")
-	{
-		shaderType = ShaderType::kGeometry;
-	}
-	else if(*begin == "task")
-	{
-		shaderType = ShaderType::kTask;
-	}
-	else if(*begin == "mesh")
-	{
-		shaderType = ShaderType::kMesh;
-	}
-	else if(*begin == "frag")
-	{
-		shaderType = ShaderType::kFragment;
-	}
-	else if(*begin == "comp")
-	{
-		shaderType = ShaderType::kCompute;
-	}
-	else if(*begin == "rgen")
-	{
-		shaderType = ShaderType::kRayGen;
-	}
-	else if(*begin == "ahit")
-	{
-		shaderType = ShaderType::kAnyHit;
-	}
-	else if(*begin == "chit")
-	{
-		shaderType = ShaderType::kClosestHit;
-	}
-	else if(*begin == "miss")
-	{
-		shaderType = ShaderType::kMiss;
-	}
-	else if(*begin == "int")
-	{
-		shaderType = ShaderType::kIntersection;
-	}
-	else if(*begin == "call")
-	{
-		shaderType = ShaderType::kCallable;
-	}
-	else
+	const ShaderType shaderType = strToShaderType(*begin);
+	if(shaderType == ShaderType::kCount)
 	{
 	{
 		ANKI_PP_ERROR_MALFORMED();
 		ANKI_PP_ERROR_MALFORMED();
 	}
 	}
@@ -154,11 +165,11 @@ Error ShaderProgramParser::parsePragmaStart(const String* begin, const String* e
 	m_shaderTypes |= mask;
 	m_shaderTypes |= mask;
 
 
 	// Check bounds
 	// Check bounds
-	if(m_insideShader)
+	if(m_insideShader != ShaderType::kCount)
 	{
 	{
 		ANKI_PP_ERROR_MALFORMED_MSG("Can't have #pragma start before you close the previous pragma start");
 		ANKI_PP_ERROR_MALFORMED_MSG("Can't have #pragma start before you close the previous pragma start");
 	}
 	}
-	m_insideShader = true;
+	m_insideShader = shaderType;
 
 
 	return Error::kNone;
 	return Error::kNone;
 }
 }
@@ -168,17 +179,36 @@ Error ShaderProgramParser::parsePragmaEnd(const String* begin, const String* end
 	ANKI_ASSERT(begin && end);
 	ANKI_ASSERT(begin && end);
 
 
 	// Check tokens
 	// Check tokens
+	if(begin >= end)
+	{
+		ANKI_PP_ERROR_MALFORMED();
+	}
+
+	const ShaderType shaderType = strToShaderType(*begin);
+	if(shaderType == ShaderType::kCount)
+	{
+		ANKI_PP_ERROR_MALFORMED();
+	}
+
+	++begin;
 	if(begin != end)
 	if(begin != end)
 	{
 	{
+		// Should be the last token
 		ANKI_PP_ERROR_MALFORMED();
 		ANKI_PP_ERROR_MALFORMED();
 	}
 	}
 
 
 	// Check bounds
 	// Check bounds
-	if(!m_insideShader)
+	if(m_insideShader == ShaderType::kCount)
 	{
 	{
 		ANKI_PP_ERROR_MALFORMED_MSG("Can't have #pragma end before you open with a pragma start");
 		ANKI_PP_ERROR_MALFORMED_MSG("Can't have #pragma end before you open with a pragma start");
 	}
 	}
-	m_insideShader = false;
+
+	if(m_insideShader != shaderType)
+	{
+		ANKI_PP_ERROR_MALFORMED_MSG("Shader type in #pragma end doesn't match the one in previous #pragma start");
+	}
+
+	m_insideShader = ShaderType::kCount;
 
 
 	// Write code
 	// Write code
 	m_codeLines.pushBack("#endif // Shader guard");
 	m_codeLines.pushBack("#endif // Shader guard");
@@ -924,7 +954,7 @@ Error ShaderProgramParser::parse()
 			}
 			}
 		}
 		}
 
 
-		if(m_insideShader)
+		if(m_insideShader != ShaderType::kCount)
 		{
 		{
 			ANKI_SHADER_COMPILER_LOGE("Forgot a \"pragma anki end\"");
 			ANKI_SHADER_COMPILER_LOGE("Forgot a \"pragma anki end\"");
 			return Error::kUserData;
 			return Error::kUserData;

+ 3 - 3
AnKi/ShaderCompiler/ShaderProgramParser.h

@@ -80,8 +80,8 @@ private:
 /// #include {<> | ""}
 /// #include {<> | ""}
 /// #pragma once
 /// #pragma once
 /// #pragma anki mutator NAME VALUE0 [VALUE1 [VALUE2] ...]
 /// #pragma anki mutator NAME VALUE0 [VALUE1 [VALUE2] ...]
-/// #pragma anki start {vert | tessc | tesse | geom | frag | comp | rgen | ahit | chit | miss | int | call}
-/// #pragma anki end
+/// #pragma anki start {vert | tessc | tesse | geom | task | mesh | frag | comp | rgen | ahit | chit | miss | int | call}
+/// #pragma anki end {vert | tessc | tesse | geom | task | mesh | frag | comp | rgen | ahit | chit | miss | int | call}
 /// #pragma anki library "name"
 /// #pragma anki library "name"
 /// #pragma anki ray_type NUMBER
 /// #pragma anki ray_type NUMBER
 /// #pragma anki reflect NAME
 /// #pragma anki reflect NAME
@@ -182,7 +182,7 @@ private:
 	DynamicArray<PartialMutationSkip> m_skipMutations;
 	DynamicArray<PartialMutationSkip> m_skipMutations;
 
 
 	ShaderTypeBit m_shaderTypes = ShaderTypeBit::kNone;
 	ShaderTypeBit m_shaderTypes = ShaderTypeBit::kNone;
-	Bool m_insideShader = false;
+	ShaderType m_insideShader = ShaderType::kCount;
 	ShaderCompilerOptions m_compilerOptions;
 	ShaderCompilerOptions m_compilerOptions;
 
 
 	String m_libName;
 	String m_libName;

+ 1 - 1
AnKi/Shaders/ApplyIrradianceToReflection.ankiprog

@@ -49,4 +49,4 @@
 	// Write it back
 	// Write it back
 	g_cubeTex[faceIdx][dispatchThreadId] = RVec4(prevColorWithIndirectDiffuse, 0.0);
 	g_cubeTex[faceIdx][dispatchThreadId] = RVec4(prevColorWithIndirectDiffuse, 0.0);
 }
 }
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/BlitCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/Blit.hlsl>
 #include <AnKi/Shaders/Blit.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/BlitRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Blit.hlsl>
 #include <AnKi/Shaders/Blit.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/BloomCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/Bloom.hlsl>
 #include <AnKi/Shaders/Bloom.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/BloomRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Bloom.hlsl>
 #include <AnKi/Shaders/Bloom.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/BloomUpscaleCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/BloomUpscale.hlsl>
 #include <AnKi/Shaders/BloomUpscale.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/BloomUpscaleRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/BloomUpscale.hlsl>
 #include <AnKi/Shaders/BloomUpscale.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/ClearTextureCompute.ankiprog

@@ -61,4 +61,4 @@ struct Constants
 #endif
 #endif
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/ClusterBinning.ankiprog

@@ -223,4 +223,4 @@ constexpr UVec2 kSampleLocations[kSampleCount] = {LOCATION(1, -3), LOCATION(-1,
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/ClusterBinningPackVisibles.ankiprog

@@ -74,4 +74,4 @@ typedef GpuSceneGlobalIlluminationProbe GpuSceneType;
 #endif
 #endif
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/ClusterBinningSetup.ankiprog

@@ -68,4 +68,4 @@ constexpr U32 kPackVisiblesThreadgroupSize = 64;
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/DbgBillboard.ankiprog

@@ -97,7 +97,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/ImportanceSampling.hlsl>
 #include <AnKi/Shaders/ImportanceSampling.hlsl>
@@ -140,4 +140,4 @@ Vec4 main(VertOut input) : SV_TARGET0
 		return g_tex2.Sample(g_trilinearRepeatSampler, input.m_uv) * input.m_colorScale * colorFactor;
 		return g_tex2.Sample(g_trilinearRepeatSampler, input.m_uv) * input.m_colorScale * colorFactor;
 	}
 	}
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/DbgRenderables.ankiprog

@@ -51,7 +51,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/ImportanceSampling.hlsl>
 #include <AnKi/Shaders/ImportanceSampling.hlsl>
@@ -82,4 +82,4 @@ Vec4 main(VertOut input) : SV_TARGET0
 	// Write the color
 	// Write the color
 	return g_consts.m_color;
 	return g_consts.m_color;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/DepthAwareBlurCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/DepthAwareBlur.hlsl>
 #include <AnKi/Shaders/DepthAwareBlur.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/DepthAwareBlurRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/DepthAwareBlur.hlsl>
 #include <AnKi/Shaders/DepthAwareBlur.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/DepthDownscaleCompute.ankiprog

@@ -94,4 +94,4 @@ AF4 SpdReduce4(AF4 v0, AF4 v1, AF4 v2, AF4 v3)
 	SpdDownsample(AU2(svGroupId.xy), AU1(svGroupIndex), AU1(g_consts.m_mipmapCount), AU1(g_consts.m_threadgroupCount), slice, offset);
 	SpdDownsample(AU2(svGroupId.xy), AU1(svGroupIndex), AU1(g_consts.m_mipmapCount), AU1(g_consts.m_threadgroupCount), slice, offset);
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/DepthDownscaleRaster.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Common.hlsl>
 #include <AnKi/Shaders/Common.hlsl>
@@ -17,4 +17,4 @@ F32 main([[vk::location(0)]] Vec2 uv : TEXCOORD) : SV_TARGET0
 {
 {
 	return g_inputTex.SampleLevel(g_linearAnyClampSampler, uv, 0.0).x;
 	return g_inputTex.SampleLevel(g_linearAnyClampSampler, uv, 0.0).x;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/DownscaleBlurCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/DownscaleBlur.hlsl>
 #include <AnKi/Shaders/DownscaleBlur.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/DownscaleBlurRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/DownscaleBlur.hlsl>
 #include <AnKi/Shaders/DownscaleBlur.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/DrawerStats.ankiprog

@@ -39,7 +39,7 @@ VertOut main(U32 vertId : SV_VERTEXID)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -120,4 +120,4 @@ main(Vec4 svPosition : SV_POSITION)
 	return (FragOut)0;
 	return (FragOut)0;
 #endif
 #endif
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/FinalComposite.ankiprog

@@ -9,7 +9,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Functions.hlsl>
 #include <AnKi/Shaders/Functions.hlsl>
@@ -85,4 +85,4 @@ RVec3 main([[vk::location(0)]] Vec2 uv : TEXCOORD) : SV_TARGET0
 	return outColor;
 	return outColor;
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/ForwardShadingFog.ankiprog

@@ -50,7 +50,7 @@ VertOut main(VertIn input)
 	return output;
 	return output;
 }
 }
 
 
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -64,4 +64,4 @@ FragOut main(VertOut input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/ForwardShadingGenericTransparent.ankiprog

@@ -50,7 +50,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -75,4 +75,4 @@ FragOut main(VertOut input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/ForwardShadingParticles.ankiprog

@@ -68,7 +68,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -94,4 +94,4 @@ FragOut main(VertOut input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/FsrCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/Fsr.hlsl>
 #include <AnKi/Shaders/Fsr.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/FsrRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Fsr.hlsl>
 #include <AnKi/Shaders/Fsr.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/GBufferGeneric.ankiprog

@@ -207,7 +207,7 @@ VertOut main(VertIn input)
 	return output;
 	return output;
 };
 };
 
 
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -325,4 +325,4 @@ FragOut main(VertOut input)
 }
 }
 #endif
 #endif
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/GBufferGpuParticles.ankiprog

@@ -79,7 +79,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/PackFunctions.hlsl>
 #include <AnKi/Shaders/PackFunctions.hlsl>
@@ -104,4 +104,4 @@ FragOut main(VertOut input)
 	packGBuffer(g, output.m_color0, output.m_color1, output.m_color2, output.m_color3);
 	packGBuffer(g, output.m_color0, output.m_color1, output.m_color2, output.m_color3);
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/GBufferPost.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/PackFunctions.hlsl>
 #include <AnKi/Shaders/PackFunctions.hlsl>
@@ -120,4 +120,4 @@ FragOut main([[vk::location(0)]] Vec2 uv : TEXCOORD, Vec4 svPosition : SV_POSITI
 	output.m_roughnessAndOther = roughnessAndOther;
 	output.m_roughnessAndOther = roughnessAndOther;
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/GpuParticlesSimulation.ankiprog

@@ -139,4 +139,4 @@ void initParticle(UVec3 svDispatchThreadId, out GpuParticle p)
 	g_particles[particleIdx] = particle;
 	g_particles[particleIdx] = particle;
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/GpuSceneMicroPatching.ankiprog

@@ -27,4 +27,4 @@
 	g_dstBuffer[dstDwordOffset + svGroupIndex] = g_srcBuffer[srcDwordOffset + svGroupIndex];
 	g_dstBuffer[dstDwordOffset + svGroupIndex] = g_srcBuffer[srcDwordOffset + svGroupIndex];
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/GpuVisibility.ankiprog

@@ -254,4 +254,4 @@ struct DrawIndirectArgsWithPadding
 #endif
 #endif
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/GpuVisibilityAccelerationStructures.ankiprog

@@ -141,4 +141,4 @@
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/GpuVisibilityAccelerationStructuresZeroRemainingInstances.ankiprog

@@ -29,4 +29,4 @@
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/GpuVisibilityNonRenderables.ankiprog

@@ -147,4 +147,4 @@ Vec4 getSphere(GpuSceneGlobalIlluminationProbe l)
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/HzbGenPyramid.ankiprog

@@ -115,4 +115,4 @@ AF4 SpdReduce4(AF4 v0, AF4 v1, AF4 v2, AF4 v3)
 	SpdDownsample(AU2(svGroupId.xy), AU1(svGroupIndex), AU1(g_consts.m_mipmapCount), AU1(g_consts.m_threadGroupCount), slice, offset);
 	SpdDownsample(AU2(svGroupId.xy), AU1(svGroupIndex), AU1(g_consts.m_mipmapCount), AU1(g_consts.m_threadGroupCount), slice, offset);
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/HzbMaxDepth.ankiprog

@@ -47,4 +47,4 @@ groupshared U32 s_maxDepth;
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/HzbMaxDepthProject.ankiprog

@@ -67,7 +67,7 @@ Vec4 main(U32 svVertexId : SV_VERTEXID, U32 svInstanceId : SV_INSTANCEID) : SV_P
 	return mul(g_consts.m_reprojectionMat, Vec4(ndc, 1.0));
 	return mul(g_consts.m_reprojectionMat, Vec4(ndc, 1.0));
 }
 }
 
 
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -75,4 +75,4 @@ void main()
 {
 {
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/IndirectDiffuseCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/IndirectDiffuse.hlsl>
 #include <AnKi/Shaders/IndirectDiffuse.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/IndirectDiffuseDenoiseCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/IndirectDiffuseDenoise.hlsl>
 #include <AnKi/Shaders/IndirectDiffuseDenoise.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/IndirectDiffuseDenoiseRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/IndirectDiffuseDenoise.hlsl>
 #include <AnKi/Shaders/IndirectDiffuseDenoise.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/IndirectDiffuseRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/IndirectDiffuse.hlsl>
 #include <AnKi/Shaders/IndirectDiffuse.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/IndirectDiffuseVrsSriGeneration.ankiprog

@@ -164,4 +164,4 @@ F32 sampleViewPositionZ(Vec2 uv, I32 offsetX, I32 offsetY)
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/IndirectSpecularCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/IndirectSpecular.hlsl>
 #include <AnKi/Shaders/IndirectSpecular.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/IndirectSpecularRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/IndirectSpecular.hlsl>
 #include <AnKi/Shaders/IndirectSpecular.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/IrradianceDice.ankiprog

@@ -226,4 +226,4 @@ RVec3 sampleLightShadingTexture(const U32 face, UVec3 svGroupThreadId)
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/LensFlareSprite.ankiprog

@@ -35,7 +35,7 @@ VertOut main(U32 svVertexId : SV_VERTEXID, U32 svInstanceId : SV_INSTANCEID)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -47,4 +47,4 @@ RVec4 main(VertOut input) : SV_TARGET0
 	const RVec4 col = g_tex.Sample(g_trilinearRepeatSampler, input.m_uv);
 	const RVec4 col = g_tex.Sample(g_trilinearRepeatSampler, input.m_uv);
 	return col * input.m_color;
 	return col * input.m_color;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/LensFlareUpdateIndirectInfo.ankiprog

@@ -57,4 +57,4 @@ groupshared U32 s_maxDepth;
 		g_indirectInfo[flareIdx].m_firstInstance = 0u;
 		g_indirectInfo[flareIdx].m_firstInstance = 0u;
 	}
 	}
 }
 }
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/LightShading.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/PackFunctions.hlsl>
 #include <AnKi/Shaders/PackFunctions.hlsl>
@@ -138,4 +138,4 @@ RVec3 main(Vec4 svPosition : SV_POSITION, Vec2 uv : TEXCOORD) : SV_TARGET0
 	outColor = min(outColor, RVec3(kMaxRF32, kMaxRF32, kMaxRF32));
 	outColor = min(outColor, RVec3(kMaxRF32, kMaxRF32, kMaxRF32));
 	return outColor;
 	return outColor;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/LightShadingApplyFog.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -49,4 +49,4 @@ RVec4 main([[vk::location(0)]] Vec2 uv : TEXCOORD) : SV_TARGET0
 	return RVec4(inScattering, transmittance);
 	return RVec4(inScattering, transmittance);
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/LightShadingApplyIndirect.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/BilateralFilter.hlsl>
 #include <AnKi/Shaders/BilateralFilter.hlsl>
@@ -117,4 +117,4 @@ RVec3 main([[vk::location(0)]] Vec2 uv : TEXCOORD) : SV_TARGET0
 	// Writeout
 	// Writeout
 	return min(diffuse + specular, RVec3(kMaxRF32, kMaxRF32, kMaxRF32));
 	return min(diffuse + specular, RVec3(kMaxRF32, kMaxRF32, kMaxRF32));
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/LightShadingSkybox.ankiprog

@@ -25,7 +25,7 @@ VertOut main(U32 vertId : SV_VERTEXID)
 	return output;
 	return output;
 }
 }
 
 
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -80,4 +80,4 @@ RVec3 main([[vk::location(0)]] Vec2 uv : TEXCOORD) : SV_TARGET0
 #endif
 #endif
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/MotionVectorsCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/MotionVectors.hlsl>
 #include <AnKi/Shaders/MotionVectors.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/MotionVectorsRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/MotionVectors.hlsl>
 #include <AnKi/Shaders/MotionVectors.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/RtShadowsDenoise.ankiprog

@@ -139,4 +139,4 @@ F32 computeVarianceCenter(Vec2 uv)
 	g_outUav[svDispatchThreadId.xy] = shadowFactor;
 	g_outUav[svDispatchThreadId.xy] = shadowFactor;
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/RtShadowsHit.ankiprog

@@ -62,7 +62,7 @@
 	AcceptHitAndEndSearch();
 	AcceptHitAndEndSearch();
 #endif
 #endif
 }
 }
-#pragma anki end
+#pragma anki end ahit
 
 
 #pragma anki start chit
 #pragma anki start chit
 [shader("closesthit")] void main(inout RayPayload payload, in Barycentrics barycentrics)
 [shader("closesthit")] void main(inout RayPayload payload, in Barycentrics barycentrics)
@@ -70,4 +70,4 @@
 	ANKI_MAYBE_UNUSED(payload);
 	ANKI_MAYBE_UNUSED(payload);
 	ANKI_MAYBE_UNUSED(barycentrics);
 	ANKI_MAYBE_UNUSED(barycentrics);
 }
 }
-#pragma anki end
+#pragma anki end chit

+ 1 - 1
AnKi/Shaders/RtShadowsMiss.ankiprog

@@ -14,4 +14,4 @@
 {
 {
 	payload.m_shadowFactor = 1.0;
 	payload.m_shadowFactor = 1.0;
 }
 }
-#pragma anki end
+#pragma anki end miss

+ 1 - 1
AnKi/Shaders/RtShadowsRayGen.ankiprog

@@ -133,4 +133,4 @@ Vec3 genRandomDirection(U32 rayIdx, Vec2 uv)
 	// Store the moments
 	// Store the moments
 	g_momentsImage[DispatchRaysIndex().xy] = Vec4(moments, 0.0, 0.0);
 	g_momentsImage[DispatchRaysIndex().xy] = Vec4(moments, 0.0, 0.0);
 }
 }
-#pragma anki end
+#pragma anki end rgen

+ 1 - 1
AnKi/Shaders/RtShadowsSbtBuild.ankiprog

@@ -48,4 +48,4 @@
 	g_sbtBuffer[sbtDwordOffset] = 0;
 	g_sbtBuffer[sbtDwordOffset] = 0;
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/RtShadowsSetupSbtBuild.ankiprog

@@ -25,4 +25,4 @@
 	g_args[0] = args;
 	g_args[0] = args;
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/RtShadowsSvgfAtrous.ankiprog

@@ -148,4 +148,4 @@ F32 computeVarianceCenter(Vec2 uv)
 	g_varianceUav[svDispatchThreadId.xy] = Vec4(sumVariance, 0.0, 0.0, 0.0);
 	g_varianceUav[svDispatchThreadId.xy] = Vec4(sumVariance, 0.0, 0.0, 0.0);
 #endif
 #endif
 }
 }
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/RtShadowsSvgfVariance.ankiprog

@@ -118,4 +118,4 @@ Vec3 toViewspace(Vec2 uv, F32 depth)
 	g_shadowUav[svDispatchThreadId] = outShadowFactor;
 	g_shadowUav[svDispatchThreadId] = outShadowFactor;
 	g_varianceUav[svDispatchThreadId] = Vec4(outVariance, 0.0, 0.0, 0.0);
 	g_varianceUav[svDispatchThreadId] = Vec4(outVariance, 0.0, 0.0, 0.0);
 }
 }
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/RtShadowsUpscale.ankiprog

@@ -57,4 +57,4 @@
 	g_fullShadowUav[svDispatchThreadId.xy] = sumShadowFactor;
 	g_fullShadowUav[svDispatchThreadId.xy] = sumShadowFactor;
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/ShadowMappingClearDepth.ankiprog

@@ -15,10 +15,10 @@ Vec4 main(U32 svVertexId : SV_VERTEXID) : SV_POSITION
 	return Vec4(pos, 1.0, 1.0);
 	return Vec4(pos, 1.0, 1.0);
 }
 }
 
 
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 void main()
 void main()
 {
 {
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/ShadowMappingVetVisibility.ankiprog

@@ -67,4 +67,4 @@ groupshared U32 s_renderLight;
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/ShadowmapsResolveCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/ShadowmapsResolve.hlsl>
 #include <AnKi/Shaders/ShadowmapsResolve.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/ShadowmapsResolveRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/ShadowmapsResolve.hlsl>
 #include <AnKi/Shaders/ShadowmapsResolve.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/TemporalAACompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/TemporalAA.hlsl>
 #include <AnKi/Shaders/TemporalAA.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/TemporalAARaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/TemporalAA.hlsl>
 #include <AnKi/Shaders/TemporalAA.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/TonemapCompute.ankiprog

@@ -5,4 +5,4 @@
 
 
 #pragma anki start comp
 #pragma anki start comp
 #include <AnKi/Shaders/Tonemap.hlsl>
 #include <AnKi/Shaders/Tonemap.hlsl>
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/TonemapRaster.ankiprog

@@ -5,8 +5,8 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Tonemap.hlsl>
 #include <AnKi/Shaders/Tonemap.hlsl>
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/TonemappingAverageLuminance.ankiprog

@@ -99,4 +99,4 @@ groupshared F32 s_avgLum[THREAD_COUNT_X * THREAD_COUNT_Y];
 		writeExposureAndAverageLuminance(computeExposure(finalAvgLum, 0.0), finalAvgLum);
 		writeExposureAndAverageLuminance(computeExposure(finalAvgLum, 0.0), finalAvgLum);
 	}
 	}
 }
 }
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/TraditionalDeferredShading.ankiprog

@@ -17,7 +17,7 @@ Vec4 main(U32 svVertexId : SV_VERTEXID) : SV_POSITION
 	const Vec2 pos = uv * 2.0 - 1.0;
 	const Vec2 pos = uv * 2.0 - 1.0;
 	return Vec4(pos, 0.0, 1.0);
 	return Vec4(pos, 0.0, 1.0);
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 // FRAG
 // FRAG
 #pragma anki start frag
 #pragma anki start frag
@@ -126,4 +126,4 @@ RVec3 main(Vec4 svPosition : SV_POSITION) : SV_TARGET0
 	return outColor;
 	return outColor;
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/TraditionalDeferredShadingSkybox.ankiprog

@@ -7,7 +7,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -50,4 +50,4 @@ RVec3 main(Vec2 uv : TEXCOORD, Vec4 svPosition : SV_POSITION) : SV_TARGET0
 #endif
 #endif
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/Ui.ankiprog

@@ -48,7 +48,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -66,4 +66,4 @@ RVec4 main(VertOut input) : SV_TARGET0
 #endif
 #endif
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/UiVisualizeImage.ankiprog

@@ -44,7 +44,7 @@ VertOut main(VertIn input)
 
 
 	return output;
 	return output;
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 
 
@@ -76,4 +76,4 @@ RVec4 main(VertOut input) : SV_TARGET0
 	return RVec4(outColor, 1.0);
 	return RVec4(outColor, 1.0);
 }
 }
 
 
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/VisualizeHdrRenderTarget.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/TonemappingFunctions.hlsl>
 #include <AnKi/Shaders/TonemappingFunctions.hlsl>
@@ -17,4 +17,4 @@ Vec3 main(Vec2 uv : TEXCOORD) : SV_TARGET0
 {
 {
 	return reinhardTonemap(g_inTex.SampleLevel(g_nearestAnyClampSampler, uv, 0.0).rgb);
 	return reinhardTonemap(g_inTex.SampleLevel(g_nearestAnyClampSampler, uv, 0.0).rgb);
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 2 - 2
AnKi/Shaders/VisualizeRenderTarget.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Common.hlsl>
 #include <AnKi/Shaders/Common.hlsl>
@@ -17,4 +17,4 @@ Vec3 main(Vec2 uv : TEXCOORD) : SV_TARGET0
 {
 {
 	return g_inTex.SampleLevel(g_nearestAnyClampSampler, uv, 0.0).rgb;
 	return g_inTex.SampleLevel(g_nearestAnyClampSampler, uv, 0.0).rgb;
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 1 - 1
AnKi/Shaders/VolumetricFogAccumulation.ankiprog

@@ -62,4 +62,4 @@
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/VolumetricLightingAccumulation.ankiprog

@@ -290,4 +290,4 @@ Vec4 accumulateLightsAndFog(Cluster cluster, Vec3 worldPos, F32 negativeZViewSpa
 	g_volume[svDispatchThreadId] = lightAndFog;
 	g_volume[svDispatchThreadId] = lightAndFog;
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/VrsSriDownscale.ankiprog

@@ -34,4 +34,4 @@ struct Constants
 	g_outUav[svDispatchThreadId.xy] = UVec4(encodeVrsRate(rate), 0, 0, 0);
 	g_outUav[svDispatchThreadId.xy] = UVec4(encodeVrsRate(rate), 0, 0, 0);
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 1 - 1
AnKi/Shaders/VrsSriGenerationCompute.ankiprog

@@ -191,4 +191,4 @@ RF32 computeLuma(RVec3 color)
 	}
 	}
 }
 }
 
 
-#pragma anki end
+#pragma anki end comp

+ 2 - 2
AnKi/Shaders/VrsSriVisualizeRenderTarget.ankiprog

@@ -5,7 +5,7 @@
 
 
 #pragma anki start vert
 #pragma anki start vert
 #include <AnKi/Shaders/QuadVert.hlsl>
 #include <AnKi/Shaders/QuadVert.hlsl>
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 #include <AnKi/Shaders/Functions.hlsl>
 #include <AnKi/Shaders/Functions.hlsl>
@@ -19,4 +19,4 @@ Vec3 main(Vec2 uv : TEXCOORD) : SV_TARGET0
 	const UVec2 rate = decodeVrsRate(texel);
 	const UVec2 rate = decodeVrsRate(texel);
 	return visualizeVrsRate(rate);
 	return visualizeVrsRate(rate);
 }
 }
-#pragma anki end
+#pragma anki end frag

+ 4 - 4
Tests/ShaderCompiler/ShaderProgramCompiler.cpp

@@ -52,7 +52,7 @@ void main()
 {
 {
 	gl_Position = u_ankiPerInstance[gl_InstanceIndex].m_ankiMvp * u_mats[gl_InstanceIndex].m_mat * Vec4(gl_VertexID);
 	gl_Position = u_ankiPerInstance[gl_InstanceIndex].m_ankiMvp * u_mats[gl_InstanceIndex].m_mat * Vec4(gl_VertexID);
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 layout(location = 0) out Vec3 out_color;
 layout(location = 0) out Vec3 out_color;
@@ -71,7 +71,7 @@ void main()
 
 
 	out_color += u_color.xyz;
 	out_color += u_color.xyz;
 }
 }
-#pragma anki end
+#pragma anki end frag
 	)";
 	)";
 
 
 	// Write the file
 	// Write the file
@@ -258,7 +258,7 @@ void main()
 {
 {
 	gl_Position = Vec4(gl_VertexIndex);
 	gl_Position = Vec4(gl_VertexIndex);
 }
 }
-#pragma anki end
+#pragma anki end vert
 
 
 #pragma anki start frag
 #pragma anki start frag
 layout(location = 0) out Vec3 out_color;
 layout(location = 0) out Vec3 out_color;
@@ -267,7 +267,7 @@ void main()
 {
 {
 	out_color = Vec3(0.0);
 	out_color = Vec3(0.0);
 }
 }
-#pragma anki end
+#pragma anki end frag
 	)";
 	)";
 
 
 	// Write the file
 	// Write the file