bevy/crates/bevy_core_pipeline/src
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
..
auto_exposure Deny derive_more error feature and replace it with thiserror (#16684) 2024-12-06 17:03:55 +00:00
blit Expose Pipeline Compilation Zero Initialize Workgroup Memory Option (#16301) 2024-11-08 21:42:37 +00:00
bloom Expose Pipeline Compilation Zero Initialize Workgroup Memory Option (#16301) 2024-11-08 21:42:37 +00:00
contrast_adaptive_sharpening Fix CAS toggle broken by retained render world (#16533) 2024-11-27 23:38:09 +00:00
core_2d Update hashbrown to 0.15 (#15801) 2024-12-10 19:45:50 +00:00
core_3d Implement bindless lightmaps. (#16653) 2024-12-16 23:37:06 +00:00
deferred Update the prepass shaders and fix the batching logic for bindless and multidraw. (#16755) 2024-12-12 04:24:56 +00:00
dof Don't reëxport bevy_image from bevy_render (#16163) 2024-11-10 06:54:38 +00:00
fullscreen_vertex_shader Bevy Asset V2 (#8624) 2023-09-07 02:07:27 +00:00
fxaa Don't reëxport bevy_image from bevy_render (#16163) 2024-11-10 06:54:38 +00:00
motion_blur Move required components doc to type doc (#16575) 2024-12-03 19:45:20 +00:00
oit Update hashbrown to 0.15 (#15801) 2024-12-10 19:45:50 +00:00
post_process Don't reëxport bevy_image from bevy_render (#16163) 2024-11-10 06:54:38 +00:00
prepass Update the prepass shaders and fix the batching logic for bindless and multidraw. (#16755) 2024-12-12 04:24:56 +00:00
skybox Don't reëxport bevy_image from bevy_render (#16163) 2024-11-10 06:54:38 +00:00
smaa Fix missing import (#16337) 2024-11-11 18:48:41 +00:00
taa Move required components doc to type doc (#16575) 2024-12-03 19:45:20 +00:00
tonemapping Don't reëxport bevy_image from bevy_render (#16163) 2024-11-10 06:54:38 +00:00
upscaling Update hashbrown to 0.15 (#15801) 2024-12-10 19:45:50 +00:00
lib.rs Rust 1.83, allow -> expect (missing_docs) (#16561) 2024-12-16 23:27:57 +00:00
msaa_writeback.rs Simpler lint fixes: makes ci lints work but disables a lint for now (#15376) 2024-09-24 11:42:59 +00:00