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