godot/servers/rendering/storage
clayjohn 2e59cb41f4 Optimize glow and tonemap gather step in the mobile renderer
Mobile devices are typically bandwidth bound which means we need to do as few texture samples as possible.

They typically use TBDR GPUs which means that all rendering takes place on special optimized tiles. As a side effect, reading back memory from tile to VRAM is really slow, especially on Mali devices.

This commit uses a technique where you do a small blur while downsampling, and then another small blur while upsampling to get really high quality glow. While this doesn't reduce the renderpass count very much, it does reduce the texture read bandwidth by almost 10 times. Overall glow was more texture-read bound than memory write, bound, so this was a huge win.

A side effect of this new technique is that we can gather the glow as we upsample instead of gathering the glow in the final tonemap pass. Doing so allows us to significantly reduce the cost of the tonemap pass as well.
2025-10-30 21:56:26 -07:00
..
camera_attributes_storage.cpp Standardize terms for renderers in error strings 2024-11-10 13:30:44 -08:00
camera_attributes_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
compositor_storage.cpp Change RID_Owner::get_owned_list. 2025-04-21 01:04:27 +08:00
compositor_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
environment_storage.cpp Optimize glow and tonemap gather step in the mobile renderer 2025-10-30 21:56:26 -07:00
environment_storage.h Optimize glow and tonemap gather step in the mobile renderer 2025-10-30 21:56:26 -07:00
light_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
material_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
mesh_storage.cpp Merge pull request #107666 from Sch1nken/add-physics-interpolation-multimesh2d 2025-10-03 12:01:07 -05:00
mesh_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
particles_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
render_data.cpp Implement hooks into renderer 2024-02-18 21:54:21 +11:00
render_data.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
render_scene_buffers.cpp Add SMAA 1x 2025-05-21 15:02:09 -04:00
render_scene_buffers.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
render_scene_data.cpp Implement hooks into renderer 2024-02-18 21:54:21 +11:00
render_scene_data.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
SCsub SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
texture_storage.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
utilities.cpp One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
utilities.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
variant_converters.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00