AnyPS5/core/libs/prx/libSceAgcDriver/Graphics/shaders
Jan Šlégl 2e19053f63 feat(agc): present 16-bit float display buffers
PPSA11386 registers 3840x2160 tiled display buffers in pixel format
0xC001000622000000, R16G16B16A16 float in KytyPS5 and SharpProspero
(0xC001000600000000 is the blue-first variant), and stops on "VideoOut:
unsupported display pixel format". The buffer is eight bytes per texel; its
tiled layout is assumed to be the 8-byte SW_64KB_R_X equation applied to
full coordinates, as addrlib applies it. The values are taken as linear
light and encoded with the sRGB curve for the 8-bit output. The encoding
compares the raw half-float bits against two tables of 255 thresholds
(color and alpha) that the CPU decode and the color transfer shader share,
so both give the same bytes on any driver; negative and NaN values give 0.
Guest-memory detile, the resident image path and the CPU decode all handle
both formats; DCC metadata on a float buffer throws. Neither the layout nor
the transfer is verified against console frames.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fnrk5Dazjb2tLooVSpdRQq
2026-10-11 00:38:12 +02:00
..
CmaskClear.comp fix(agc): apply CMASK fast clears per tile 2026-10-10 18:20:06 +13:00
ColorTransfer.comp feat(agc): present 16-bit float display buffers 2026-10-11 00:38:12 +02:00
MeshArguments.comp perf(agc): draw mesh-stage indirect draws on the GPU 2026-10-04 15:45:56 +13:00
SampleCounter.comp perf(agc): record occlusion counter dumps on the GPU 2026-10-04 16:17:09 +13:00
SampleDumps.comp perf(agc): keep occlusion counter dumps inside the open render pass 2026-10-10 14:24:27 +13:00
TextureDetile.comp perf(agc): move storage texels between the image and its tiled bytes in one pass 2026-10-10 23:46:06 +13:00