bevy/crates/bevy_core_pipeline/src
Patrick Walton 00722b8d0f
Make indirect drawing opt-out instead of opt-in, enabling multidraw by default. (#16757)
This patch replaces the undocumented `NoGpuCulling` component with a new
component, `NoIndirectDrawing`, effectively turning indirect drawing on
by default. Indirect mode is needed for the recently-landed multidraw
feature (#16427). Since multidraw is such a win for performance, when
that feature is supported the small performance tax that indirect mode
incurs is virtually always worth paying.

To ensure that custom drawing code such as that in the
`custom_shader_instancing` example continues to function, this commit
additionally makes GPU culling take the `NoFrustumCulling` component
into account.

This PR is an alternative to #16670 that doesn't break the
`custom_shader_instancing` example. **PR #16755 should land first in
order to avoid breaking deferred rendering, as multidraw currently
breaks it**.

## Migration Guide

* Indirect drawing (GPU culling) is now enabled by default, so the
`GpuCulling` component is no longer available. To disable indirect mode,
which may be useful with custom render nodes, add the new
`NoIndirectDrawing` component to your camera.
2024-12-13 06:16:57 +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 Make indirect drawing opt-out instead of opt-in, enabling multidraw by default. (#16757) 2024-12-13 06:16:57 +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 Fix oit webgl (#15728) 2024-10-08 14:50:35 +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