wgpu/naga/tests/in/wgsl/mesh-shader-points.wgsl
Inner Daemons a05c70cef7
WGSL parsing for mesh shaders (#8370)
Co-authored-by: Jim Blandy <jimb@red-bean.com>
Co-authored-by: Erich Gubler <erichdongubler@gmail.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
Co-authored-by: SupaMaggie70Incorporated <85136135+SupaMaggie70Incorporated@users.noreply.github.com>
2025-11-12 21:06:20 -05:00

38 lines
861 B
WebGPU Shading Language

// An empty WGSL shader to check that task payload/mesh output
// are still properly written without being used in the shader
enable wgpu_mesh_shader;
struct TaskPayload {
dummy: u32,
}
struct VertexOutput {
@builtin(position) position: vec4<f32>,
}
struct PrimitiveOutput {
@builtin(point_index) indices: u32,
}
var<task_payload> taskPayload: TaskPayload;
@task
@payload(taskPayload)
@workgroup_size(1)
fn ts_main() -> @builtin(mesh_task_size) vec3<u32> {
return vec3(1, 1, 1);
}
struct MeshOutput {
@builtin(vertices) vertices: array<VertexOutput, 1>,
@builtin(primitives) primitives: array<PrimitiveOutput, 1>,
@builtin(vertex_count) vertex_count: u32,
@builtin(primitive_count) primitive_count: u32,
}
var<workgroup> mesh_output: MeshOutput;
@mesh(mesh_output)
@payload(taskPayload)
@workgroup_size(1)
fn ms_main() {}