We do an in place copy where we read compressed and write decompressed. By doing this in sizes that cover entire DCC blocks and waiting for all reads in the block before starting to write we avoid corruption.
In the end we clear the DCC metadata to 0xffffffff.
3e2a6191c9 radv: Add compute DCC decompress.
src/amd/vulkan/radv_meta.h | 3 +
src/amd/vulkan/radv_meta_fast_clear.c | 268 ++++++++++++++++++++++++++++++++++
src/amd/vulkan/radv_private.h | 4 +
3 files changed, 275 insertions(+)