Skip to content

intel/isl: Treat ISL_FORMAT_YCRCB_* as compressed

Faith Ekstrand requested to merge gfxstrand/mesa:isl/ycbcr-2x1 into main

The Vulkan 1.3.261 spec says:

For the purposes of the constraints on copy extents, this format is treated as a compressed format with a 2×1 compressed texel block.

so there's already precident for treating them this way. Also, that's really what they are. It's a very simple 2x1 block compression format where you do a YUV colorspace conversion as part of the decompression. Doing this gets rid of a bunch of annoying YUV special casing throughout ISL. Also, when we go to copy to/from them, it also means that we now get R32_UINT copies instead of R16_UINT so it should be faster.

With this change and the BLORP patch, CCS_E seems to work for ISL_FORMAT_YCRCB_* on TGL. However, that doesn't actually get enabled without !24619 (3f82e841) because we're currently using the two formats that don't support CCS_E. Since this is the more controversial change, I disabled CCS_E temporarily in the other !24619 (merged).

cc @linyaa for visibility

Edited by Faith Ekstrand

Merge request reports