mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 00:53:02 -05:00
GFX10 image format 30 (10_11_11_UNORM: X and Y are unorm11 in bits 0-21, Z is unorm10 in bits 22-31, per Mesa's gfx10 tables) has no Vulkan format, so its sampled and storage descriptors threw at decode. Format 30 now takes the R32_UINT route of 10_11_11_UINT: the driver binds the raw dwords as R32_UINT and the shader extracts each field and converts it with the buffer format helpers (NormalizeFormatComponent on loads, EmitFormatStoreComponent on stores); DST_SEL 1 reads 1.0f. Samples, gathers, LOD queries, 16-bit data and loads or stores whose DST_SEL names the missing W channel throw. Converted textures are now viewed with an identity component mapping, since the shader applies DST_SEL itself: a 10_11_11_UINT view whose X selector was not X lost the packed dword. DCC clear codes 0001 and 1110 of a converted texture throw instead of filling one R32_UINT channel.