[client] egl: cache post-process configuration

Build the active filter chain only when its configuration changes,
including filter settings or order, input format, dimensions, output
size, and DMA mode.

Unchanged frames now execute only the cached active filters, avoiding
repeated setup, preparation, and output-resolution queries.
Reconfiguration forces a full-frame pass to prevent stale intermediate
framebuffer contents.

Also refresh CAS and FSR uniforms when loading presets and move
downscale pass selection out of the per-frame path.
This commit is contained in:
Geoffrey McRae
2026-07-17 23:00:08 +10:00
parent e5c4fe68dc
commit c4285dcb6e
6 changed files with 199 additions and 77 deletions

View File

@@ -34,6 +34,9 @@ void egl_postProcessFree(EGL_PostProcess ** pp);
/* create and add a filter to this processor */
bool egl_postProcessAdd(EGL_PostProcess * this, const EGL_FilterOps * ops);
/* mark the filter chain for rebuilding before its next run */
void egl_postProcessInvalidate(EGL_PostProcess * this);
/* returns true if the configuration was modified since the last run */
bool egl_postProcessConfigModified(EGL_PostProcess * this);