bevy/crates/bevy_render/src/render_resource
Patrick Walton 35826be6f7
Implement bindless lightmaps. (#16653)
This commit allows Bevy to bind 16 lightmaps at a time, if the current
platform supports bindless textures. Naturally, if bindless textures
aren't supported, Bevy falls back to binding only a single lightmap at a
time. As lightmaps are usually heavily atlased, I doubt many scenes will
use more than 16 lightmap textures.

This has little performance impact now, but it's desirable for us to
reap the benefits of multidraw and bindless textures on scenes that use
lightmaps. Otherwise, we might have to break batches in order to switch
those lightmaps.

Additionally, this PR slightly reduces the cost of binning because it
makes the lightmap index in `Opaque3dBinKey` 32 bits instead of an
`AssetId`.

## Migration Guide

* The `Opaque3dBinKey::lightmap_image` field is now
`Opaque3dBinKey::lightmap_slab`, which is a lightweight identifier for
an entire binding array of lightmaps.
2024-12-16 23:37:06 +00:00
..
batched_uniform_buffer.rs Fix *most* clippy lints (#15906) 2024-10-14 20:52:35 +00:00
bind_group_entries.rs Move all_tuples to a new crate (#16161) 2024-12-03 17:41:09 +00:00
bind_group_layout_entries.rs Move all_tuples to a new crate (#16161) 2024-12-03 17:41:09 +00:00
bind_group_layout.rs Remove render_resource_wrapper (#15441) 2024-09-30 17:37:07 +00:00
bind_group.rs Implement bindless lightmaps. (#16653) 2024-12-16 23:37:06 +00:00
buffer_vec.rs Retain RenderMeshInstance and MeshInputUniform data from frame to frame. (#16385) 2024-12-05 21:16:04 +00:00
buffer.rs Remove render_resource_wrapper (#15441) 2024-09-30 17:37:07 +00:00
gpu_array_buffer.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
mod.rs Add a bindless mode to AsBindGroup. (#16368) 2024-12-03 18:00:34 +00:00
pipeline_cache.rs Deny derive_more error feature and replace it with thiserror (#16684) 2024-12-06 17:03:55 +00:00
pipeline_specializer.rs Update hashbrown to 0.15 (#15801) 2024-12-10 19:45:50 +00:00
pipeline.rs Expose Pipeline Compilation Zero Initialize Workgroup Memory Option (#16301) 2024-11-08 21:42:37 +00:00
resource_macros.rs Remove render_resource_wrapper (#15441) 2024-09-30 17:37:07 +00:00
shader.rs Deny derive_more error feature and replace it with thiserror (#16684) 2024-12-06 17:03:55 +00:00
storage_buffer.rs Bind only the written parts of storage buffers. (#16405) 2024-11-17 09:11:26 +00:00
texture.rs Split off bevy_image from bevy_render (#15650) 2024-10-04 20:16:47 +00:00
uniform_buffer.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00