Transform your geometry with Metal mesh shaders

RSS for tag

Discuss the WWDC22 Session Transform your geometry with Metal mesh shaders

Posts under wwdc2022-10162 tag

6 Posts

Post

Replies

Boosts

Views

Activity

Mesh-shader culling is broken?
Followup to https://developer.apple.com/forums/thread/722047 After experimenting a bit more with mesh-shader on M1, come to theory(can't really proof, as there is no profiler for them), that culling is broken in Metal3: in my content culling is somewhat simple: First 16 invocations do poke HiZ pyramid and vote. a) If all vote for non-visible, then shader set primitive-count to zero and exits b) if visible - each thread processes one vertex (usual geometry process) and writes valid meshlet Yet, if HiZ-test is ignored and mesh processed anyway performance is close to same. Also noted, that culling with mesh-shader was never mentioned in any official materials(in oppose to object-shader). Here I'm reading in between lines a bit: maybe driver assumes only object-shader based culling, and mesh threadgoup always allocates resources for worst possible case? My questions at this point: what is cost of empty meshlet? any upfront cost of launching mesh-threadgrid, like it is with ios-compute shader? any issues with large(1024+) workgroup sizes? Thanks in advance!
0
0
1k
Feb ’23
ICB Support for Object/Mesh Shaders
Hello! I am starting to dig into the docs on object and mesh shaders. I see that the Metal API on the CPU side has new functions for setting object and mesh buffers in the new programable stage. But I don't see corresponding changes to the API for MTLIndirectCommandBuffer. Will we be able to use the GPU to encode draw commands using a pipeline that leverages the new shader types? Thanks,
0
0
1.2k
Jun ’22
Mesh-shader culling is broken?
Followup to https://developer.apple.com/forums/thread/722047 After experimenting a bit more with mesh-shader on M1, come to theory(can't really proof, as there is no profiler for them), that culling is broken in Metal3: in my content culling is somewhat simple: First 16 invocations do poke HiZ pyramid and vote. a) If all vote for non-visible, then shader set primitive-count to zero and exits b) if visible - each thread processes one vertex (usual geometry process) and writes valid meshlet Yet, if HiZ-test is ignored and mesh processed anyway performance is close to same. Also noted, that culling with mesh-shader was never mentioned in any official materials(in oppose to object-shader). Here I'm reading in between lines a bit: maybe driver assumes only object-shader based culling, and mesh threadgoup always allocates resources for worst possible case? My questions at this point: what is cost of empty meshlet? any upfront cost of launching mesh-threadgrid, like it is with ios-compute shader? any issues with large(1024+) workgroup sizes? Thanks in advance!
Replies
0
Boosts
0
Views
1k
Activity
Feb ’23
ICB Support for Object/Mesh Shaders
Hello! I am starting to dig into the docs on object and mesh shaders. I see that the Metal API on the CPU side has new functions for setting object and mesh buffers in the new programable stage. But I don't see corresponding changes to the API for MTLIndirectCommandBuffer. Will we be able to use the GPU to encode draw commands using a pipeline that leverages the new shader types? Thanks,
Replies
0
Boosts
0
Views
1.2k
Activity
Jun ’22