bevy/crates/bevy_core_pipeline/src
Daniel Chia 517deda215 Make PipelineCache internally mutable. (#7205)
# Objective

- Allow rendering queue systems to use a `Res<PipelineCache>` even for queueing up new rendering pipelines. This is part of unblocking parallel execution queue systems.

## Solution

- Make `PipelineCache` internally mutable w.r.t to queueing new pipelines. Pipelines are no longer immediately updated into the cache state, but rather queued into a Vec. The Vec of pending new pipelines is then later processed at the same time we actually create the queued pipelines on the GPU device.

---

## Changelog

`PipelineCache` no longer requires mutable access in order to queue render / compute pipelines.

## Migration Guide

* Most usages of `resource_mut::<PipelineCache>` and `ResMut<PipelineCache>` can be changed to `resource::<PipelineCache>` and `Res<PipelineCache>` as long as they don't use any methods requiring mutability - the only public method requiring it is `process_queue`.
2023-01-16 15:41:14 +00:00
..
bloom Make PipelineCache internally mutable. (#7205) 2023-01-16 15:41:14 +00:00
core_2d Reduce branching in TrackedRenderPass (#7053) 2023-01-09 19:24:56 +00:00
core_3d Reduce branching in TrackedRenderPass (#7053) 2023-01-09 19:24:56 +00:00
fullscreen_vertex_shader separate tonemapping and upscaling passes (#3425) 2022-10-26 20:13:59 +00:00
fxaa Make PipelineCache internally mutable. (#7205) 2023-01-16 15:41:14 +00:00
tonemapping Make PipelineCache internally mutable. (#7205) 2023-01-16 15:41:14 +00:00
upscaling Make PipelineCache internally mutable. (#7205) 2023-01-16 15:41:14 +00:00
clear_color.rs Make Resource trait opt-in, requiring #[derive(Resource)] V2 (#5577) 2022-08-08 21:36:35 +00:00
lib.rs Bloom (#6397) 2022-11-04 01:34:12 +00:00