Browse Source

Convert more shaders to HLSL

Panagiotis Christopoulos Charitos 2 years ago
parent
commit
e1ab022e73

+ 12 - 13
AnKi/Shaders/RtShadowsVisualizeRenderTarget.ankiprog

@@ -3,33 +3,32 @@
 // Code licensed under the BSD License.
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 // http://www.anki3d.org/LICENSE
 
 
+#pragma anki hlsl
+
 #pragma anki mutator LAYER_GROUP 0 1 2
 #pragma anki mutator LAYER_GROUP 0 1 2
 
 
 #pragma anki start vert
 #pragma anki start vert
-#include <AnKi/Shaders/QuadVert.glsl>
+#include <AnKi/Shaders/QuadVert.hlsl>
 #pragma anki end
 #pragma anki end
 
 
 #pragma anki start frag
 #pragma anki start frag
-#include <AnKi/Shaders/RtShadows.glsl>
-
-layout(set = 0, binding = 0) uniform sampler u_nearestAnyClampSampler;
-layout(set = 0, binding = 1) uniform utexture2D u_inTex;
+#include <AnKi/Shaders/RtShadows.hlsl>
 
 
-layout(location = 0) in Vec2 in_uv;
-layout(location = 0) out Vec3 out_color;
+[[vk::binding(0)]] SamplerState g_nearestAnyClampSampler;
+[[vk::binding(1)]] Texture2D<UVec4> g_inTex;
 
 
-void main()
+Vec3 main(Vec2 uv : TEXCOORD) : SV_TARGET0
 {
 {
-	const UVec4 packed = textureLod(u_inTex, u_nearestAnyClampSampler, in_uv, 0.0);
-	F32 shadowFactors[kMaxRtShadowLayers];
+	const UVec4 packed = g_inTex.SampleLevel(g_nearestAnyClampSampler, uv, 0.0);
+	RF32 shadowFactors[kMaxRtShadowLayers];
 	unpackRtShadows(packed, shadowFactors);
 	unpackRtShadows(packed, shadowFactors);
 
 
 #if LAYER_GROUP == 0
 #if LAYER_GROUP == 0
-	out_color = Vec3(shadowFactors[0], shadowFactors[1], shadowFactors[2]);
+	return Vec3(shadowFactors[0], shadowFactors[1], shadowFactors[2]);
 #elif LAYER_GROUP == 1
 #elif LAYER_GROUP == 1
-	out_color = Vec3(shadowFactors[3], shadowFactors[4], shadowFactors[5]);
+	return Vec3(shadowFactors[3], shadowFactors[4], shadowFactors[5]);
 #else
 #else
-	out_color = Vec3(shadowFactors[6], shadowFactors[7], 0.0);
+	return Vec3(shadowFactors[6], shadowFactors[7], 0.0);
 #endif
 #endif
 }
 }
 #pragma anki end
 #pragma anki end

+ 6 - 4
AnKi/Shaders/ShadowmappingClearDepth.ankiprog

@@ -3,16 +3,18 @@
 // Code licensed under the BSD License.
 // Code licensed under the BSD License.
 // http://www.anki3d.org/LICENSE
 // http://www.anki3d.org/LICENSE
 
 
-#include <AnKi/Shaders/Common.glsl>
+#pragma anki hlsl
+
+#include <AnKi/Shaders/Common.hlsl>
 
 
 #pragma anki start vert
 #pragma anki start vert
 
 
-void main()
+Vec4 main(U32 svVertexId : SV_VERTEXID) : SV_POSITION
 {
 {
-	const Vec2 uv = Vec2(gl_VertexIndex & 1, gl_VertexIndex >> 1) * 2.0;
+	const Vec2 uv = Vec2(svVertexId & 1, svVertexId >> 1) * 2.0;
 	const Vec2 pos = uv * 2.0 - 1.0;
 	const Vec2 pos = uv * 2.0 - 1.0;
 
 
-	gl_Position = Vec4(pos, 1.0, 1.0);
+	return Vec4(pos, 1.0, 1.0);
 }
 }
 
 
 #pragma anki end
 #pragma anki end