AnyPS5/core/libs
Dean Galvin 6142e82aa0 perf(agc): keep the 10-bit scanout resident and present it with the guest path's pixels
PPSA21564's final composite renders into 4K 10-bit scanout buffers
(COLOR_2_10_10_10 with the alternate swap, A2R10G10B10). No guest texture
format matched that color format, so the target stayed non-resident:
every frame's composite draw ran synchronously (about 11 ms, 143 per 10 s
at the title) and the flip read the frame back through guest memory.

The blue-low 10-bit color target now keeps its bits in the storage image
of its surface's red-low 2-10-10-10 format, as B8G8R8A8 targets map to
R8G8B8A8.

Presenting it: DisplayTexelFormat names a display buffer's texel order as
the guest-memory path reads it (R8G8B8A8 base: red low, else blue low;
the 10-bit variant: A2B10G10R10 or A2R10G10B10). ResidentPresentPath
blits a resident image only when it holds the display's 8-bit texel
format (an exact copy). A 10-bit image (whose blit would round where the
guest path drops the low two bits), the other 8-bit order or an sRGB type
is converted instead: GpuColorTransfer::DetileImage copies the image's
texels raw and runs the guest path's own conversion shader on them, so
both paths present the same pixels.

The image's write-back is unchanged: its results stay pending like any
resident target's and are stored when a reader of the memory flushes
them.

Tests: agc_driver_recorder_tests checks the format decision for both
8-bit and both 10-bit orders, and converts an image in each order,
comparing it with the CPU decode and the GPU detile of the same words in
guest memory.
2026-10-03 08:49:27 +13:00
..
nid fix: correct sscanf %x signedness and avoid a substr copy 2026-09-26 14:11:50 -06:00
prx perf(agc): keep the 10-bit scanout resident and present it with the guest path's pixels 2026-10-03 08:49:27 +13:00
tests Merge pull request #274 from RomainROCH/codex/fix-directory-buffer-errors 2026-10-02 22:39:37 +03:00
CMakeLists.txt Merge pull request #273 from RomainROCH/codex/fix-save-memory-growth 2026-10-02 22:32:56 +03:00
HitLog.hpp style(prx): apply CONVENTIONS.md to misc PRX additions 2026-09-29 04:24:39 +03:00
SceShaders.hpp feat(libs): libSce types impl + shaders refactor 2026-09-08 10:20:57 +03:00
SceTypes.hpp Merge pull request #227 from adriadam10/feat/png-enc 2026-10-02 22:08:05 +03:00