Files
Tom 4d3abf6623 feat(gpu): add gamma render target UNorm16 overhaul from Xenia
Replace incorrect host sRGB approximation of Xbox 360 piecewise linear (PWL) gamma with R16G16B16A16_UNORM storage for k_8_8_8_8_GAMMA render targets, enabling correct linear-space blending.

Shared memory + texture cache cleanup:
- Remove resolve tracking (valid_and_gpu_resolved) from SharedMemory
- Remove resolve tracking from TextureCache, rename IsActiveTextureResolved to IsActiveTextureResolutionScaled
- Update command processor callers for new signatures

 Flag renames + base gpu changes:
- Rename cvar gamma_render_target_as_srgb to gamma_render_target_as_unorm16
- Remove sRGB constants and gamma tracking from base RenderTargetCache
- Add IsGammaFormatHostStorageSeparate() virtual for backend override
- Make PWLGammaToLinear/PreSaturatedLinearToPWLGamma public static with explicit dxbc::Assembler& parameter
- Rename textures_resolved to textures_resolution_scaled in DXBC translator
- Remove sRGB texture sampling path from fetch translator
- Invert gamma flag semantics in pipeline cache and OM translator

D3D12 render target format + transfer shaders:
- Change k_8_8_8_8_GAMMA resource format from R8G8B8A8_TYPELESS to R16G16B16A16_UNORM in D3D12 backend
- Remove sRGB draw descriptors and command list sRGB tracking
- Add PWL gamma conversion at EDRAM transfer boundaries (64bpp packing, 32bpp stencil/depth/color paths, output unpacking)
- Add gamma conversion in dump pipeline and clear values
- Update Vulkan backend for compilation (minimal, no UNorm16 yet)

Based on Xenia commits [cec9ca0ef](cec9ca0ef2), [0a19234b4](0a19234b4e), [c7f61342d](c7f61342d7)
2026-02-19 20:07:09 +08:00
..