Add shader

This commit is contained in:
abdelrahman committed 2026-10-20 05:29:16 +01:00
1 parent fe1c9c5380
commit cf51bccc9a
1 file changed
+49
+49
View File
@@ -0,0 +1,49 @@
static float2 positions[3] = float2[](
float2( 0.0, -0.5),
float2( 0.5, 0.5),
float2(-0.5, 0.5),
);
static float3 colors[3] = float3[](
float3(1.0, 0.0, 0.0),
float3(0.0, 1.0, 0.0),
float3(0.0, 0.0, 1.0),
);
struct VertexOutput {
float3 color;
float4 sv_position : SV_Position;
};
[shader("vertex")]
VertexOutput vertMain(uint vid : SV_VertexID) {
VertexOutput output;
output.color = colors[vid];
output.sv_position = float4(positions[vid], 0.0, 1.0);
return output;
}
[shader("fragment")]
float4 fragMain(VertexOutput inVert) : SV_Target {
return float4(inVert.color, 1.0);
}
[[vk::binding(0, 0)]]
StructuredBuffer<float> a;
[[vk::binding(1, 0)]]
StructuredBuffer<float> b;
[[vk::binding(2, 0)]]
RWStructuredBuffer<float> result;
[[vk::push_constant]]
uniform uint count;
[shader("compute")]
[numthreads(64, 1, 1)]
void compMain(uint tid : SV_DispatchThreadID) {
if (tid < count) {
result[tid] = a[tid] + b[tid];
}
}