diff options
| author | Dynamitos <dynamitos15@gmail.com> | 2024-08-28 21:07:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-28 12:07:49 -0700 |
| commit | 7c6b71bcbd7821e251541f5dd723428d7bd5a2ed (patch) | |
| tree | 8826ee68bdfc2cdf21e730a166ef44df21b6049a /tests/metal | |
| parent | 65240d074b4ddec55e56962ebf8de46207bcf5fa (diff) | |
Metal: Mesh Shaders (#4280)
* Metal: mesh shading skeleton
* Metal: fixing mesh payload
* Metal: improving mesh shader indices output
* Metal: Implementing conditional mesh output set
* Metal: Trying to not break other backends
* Metal: trying to fix mesh output set
* Metal: Fixing MeshOutputSet usages
* Metal: Fixing vertex and primitive semantics
* Metal: Fixing code style
* Metal: Fixed hlsl indices set
* Fixed HLSL mesh output set disappearing and GLSL mesh output crashing
* Metal: Adjusting task test matching
---------
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tests/metal')
| -rw-r--r-- | tests/metal/simple-task.slang | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/metal/simple-task.slang b/tests/metal/simple-task.slang index fa38f6043..4a12719d0 100644 --- a/tests/metal/simple-task.slang +++ b/tests/metal/simple-task.slang @@ -18,7 +18,7 @@ struct MeshPayload int exponent; }; -// CHECK: MeshPayload_0 object_data& _slang_mesh_payload +// CHECK: MeshPayload_0 object_data* _slang_mesh_payload // CHECK: mesh_grid_properties _slang_mgp [numthreads(1,1,1)] void taskMain() @@ -54,6 +54,11 @@ struct Vertex int value : Value; }; +struct Primitive +{ + uint prim : SV_PrimitiveID; +}; + const static uint MAX_VERTS = 12; const static uint MAX_PRIMS = 4; @@ -66,7 +71,9 @@ void meshMain( // requires: // HLSL: , in payload MeshPayload OutputVertices<Vertex, MAX_VERTS> verts, - OutputIndices<uint3, MAX_PRIMS> triangles) + OutputIndices<uint3, MAX_PRIMS> triangles, + OutputPrimitives<Primitive, MAX_PRIMS> primitives + ) { const uint numVertices = 12; const uint numPrimitives = 4; @@ -79,7 +86,10 @@ void meshMain( } if (tig < numPrimitives) + { triangles[tig] = tig * 3 + uint3(0, 1, 2); + primitives[tig] = { tig }; + } } // |
