Skip to content
  • Nanley Chery's avatar
    iris: Disable color fast-clears in iris_copy_region · 7779b1d7
    Nanley Chery authored
    
    
    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 MCS 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 pass the nv_copy_image-simple piglit test on gen11+.
    
    Reviewed-by: default avatarJason Ekstrand <jason@jlekstrand.net>
    Part-of: <mesa/mesa!5388>
    7779b1d7