godot/servers
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
..
audio Move server files into their subfolders 2025-09-30 19:39:39 -07:00
camera Emit format_changed on CameraFeed datatype change 2025-10-13 00:26:29 +08:00
debugger Move server files into their subfolders 2025-09-30 19:39:39 -07:00
display Remove extraneous includes from texture.h. 2025-10-10 18:39:16 +02:00
movie_writer Remove file_access.h and script_backtrace.h includes from logger.h. 2025-10-05 17:49:23 +09:00
navigation_2d Fix 2D debug templates linking 2025-10-05 04:22:49 +03:00
navigation_3d Fix 2D debug templates linking 2025-10-05 04:22:49 +03:00
physics_2d Fix 2D debug templates linking 2025-10-05 04:22:49 +03:00
physics_3d Fix 2D debug templates linking 2025-10-05 04:22:49 +03:00
rendering Optimize glow and tonemap gather step in the mobile renderer 2025-10-30 21:56:26 -07:00
text Fix indented line wrap with no spaces 2025-10-14 10:22:10 -04:00
xr Make XRPose only set name on creation, instead of on every update. 2025-10-11 20:24:23 -05:00
nav_heap.h Move server files into their subfolders 2025-09-30 19:39:39 -07:00
register_server_types.cpp Reorder registration of types, to register supertypes before subtypes. 2025-10-09 11:50:32 +02:00
register_server_types.h Style: Replace header guards with #pragma once 2025-03-07 17:33:47 -06:00
SCsub Fix 2D debug templates linking 2025-10-05 04:22:49 +03:00
server_wrap_mt_common.h Pause physics command queue during physics processing 2025-08-14 15:54:59 +02:00