bevy
bevy copied to clipboard
Meshlet tracking issue
Runtime performance:
- 🔥 (Probably not needed once we have BVH-based persistent culling, but super easy and should be a nice win): Rather than a binary search in fill_cluster_buffers with one thread per cluster, spawn 1 workgroup per instance, have it reserve a slice of the cluster buffers, and then have its threads loop writing elements to the instance and meshlet ID buffers.
- 🔥 Cleanup resource_manager.rs and visibility_buffer_raster_node.rs, improve CPU performance, and add more GPU debug group labels
- Fix all occlusion culling bugs
- Persistent culling
Runtime performance (low priority):
- Write a heuristic for software vs hardware raster selection
- Upload instance uniforms only for changed entities (and see if we can shrink the size too)
- Single set of passes to render all views at once
- Instance culling
- Compute-based material shading
- Variable-rate shading (compute shader based)
- LOD bias for shadow views
DAG building:
- Manual vertex locking
- Larger meshlet groups
- Vertex attribute-aware simplification
- Multithread parts of MeshletMesh::from_mesh() maybe? (could use rayon)
Compression:
- Meshlet triangle compression
- Streaming
- Disk-oriented compression
Tooling:
- Debug stats + visualizations
- Asset processor for mesh -> meshlet mesh conversion
- Docs