mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
Storage images of a SINT format threw "storage image descriptor uses an unsupported format"; only write-only 32_SINT was accepted. The recompiler now writes 16_SINT, 8_8_SINT, 32_SINT, 16_16_SINT, 8_8_8_8_SINT, 32_32_SINT, 16_16_16_16_SINT and 32_32_32_32_SINT storage images with the Uint numeric class. 8- and 16-bit components are saturated (EmitFormatStoreComponent) and 32-bit ones stored unchanged, as measured on RDNA2 (gfx1035); image_store_pck stores 32-bit components unchanged too. The driver binds these surfaces through a cached view of the same-size UINT format. 8_SINT, 32_32_32_SINT, the packed SINT formats (11_11_10, 10_11_11, 2_10_10_10, 10_10_10_2), D16 stores, packed stores of 8- and 16-bit components and atomics other than 32-bit ones on 32_SINT and 64-bit ones on 32_32_SINT still throw. New test: agc_driver_image_store_sint, with DST_SEL X,Y,0,1 on the two-channel formats, as with X,Y,Z,W the hardware writes channel 1 from the W data slot (TechnicalDebt).