mirror of
https://github.com/bevyengine/bevy
synced 2024-11-26 06:30:19 +00:00
5536079945
# Objective - Using multiple raster passes to generate the depth pyramid is extremely slow - Pulling data from the source image is the largest bottleneck, it's important to sample in a cache-aware pattern - Barriers and pipeline drain between the raster passes is the second largest bottleneck - Each separate RenderPass on the CPU is _really_ expensive ## Solution - Port [FidelityFX SPD](https://gpuopen.com/fidelityfx-spd) to WGSL, replacing meshlet's existing multiple raster passes with a ~~single~~ two compute dispatches. Lack of coherent buffers means we have to do the the last 64x64 tile from mip 7+ in a separate dispatch to ensure the mip 6 writes were flushed :( - Workgroup shared memory version only at the moment, as the subgroup operation is blocked by our upgrade to wgpu 0.20 #13186 - Don't enforce a power-of-2 depth pyramid texture size, simply scaling by 0.5 is fine |
||
---|---|---|
.. | ||
deferred | ||
light | ||
light_probe | ||
lightmap | ||
meshlet | ||
prepass | ||
render | ||
ssao | ||
ssr | ||
volumetric_fog | ||
bundle.rs | ||
extended_material.rs | ||
fog.rs | ||
lib.rs | ||
material.rs | ||
parallax.rs | ||
pbr_material.rs | ||
wireframe.rs |