Skip to content

intel: Disable color fast-clears for blorp_copy

Nanley Chery requested to merge nchery/mesa:fix-cleared-blorp-copy into master

During a blorp_copy between two color surfaces, the source and destination formats are re-interpreted to UINT (if possible) to avoid losing bits.

If either surface has CCS_E, then extra steps are taken to support fast-cleared blocks with this format re-interpretation. Each clear value is packed in the original format, then unpacked in the new UINT format. This is then placed into the surface state object for some platforms. There are couple problems here:

  1. This is only being done for CCS_E, but not MCS (which also supports fast clears).

  2. These steps aren't enough for fast clears on gen11+. On gen11+, the clear color isn't part of the surface state object that BLORP creates. Instead it's stored in a separate BO, that the surface state object references. Since that BO doesn't get updated during blorp_copy, the incorrect/unconverted clear color is used for the copy operation.

I didn't measure any performance gain from this code, so this patch simply disables the feature.

Makes iris/gen11+ and i965/gen11 pass the nv_copy_image-simple piglit test.

Dependencies:

Edited by Nanley Chery

Merge request reports