Skip to content

In pipeline with meshlet, why bevy use the draw_triangle_buffer? #13292

Closed Answered by JMS55
clockmh asked this question in Q&A
Discussion options

You must be logged in to vote

Hi, I'm the author of meshlets. The reason I'm using a triangle buffer is that it's the fastest possible option that I've found.

  • Using one indirect draw args per cluster with multi draw indirect is extremely slow, as the GPU gets bottlenecked by command processing, as it's many indirect draws each doing a tiny amount of work
  • Using an indirect draw with a hard coded 64 vertices per cluster, and then writing out a list of clusters IDs, so that cluster and triangle ID can be derived from the vertex id, is not too bad and saves a lot of memory, but tends to be slower. Clusters have a maximum of 64 vertices, and the extra vertex invocations that get spun up only to immediately exit when the t…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@clockmh
Comment options

Answer selected by clockmh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants