Add shader
This commit is contained in:
1 parent
fe1c9c5380
commit
cf51bccc9a
1 file changed
+49
@@ -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];
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user