Commit 7779b1d7 authored by Nanley Chery's avatar Nanley Chery Committed by Marge Bot
Browse files

iris: Disable color fast-clears in iris_copy_region

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

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: Jason Ekstrand's avatarJason Ekstrand <>
Part-of: <mesa/mesa!5388>
parent 12dec200
......@@ -599,9 +599,6 @@ get_copy_region_aux_settings(struct iris_context *ice,
bool *out_clear_supported,
bool is_render_target)
struct iris_screen *screen = (void *) ice->ctx.screen;
const struct gen_device_info *devinfo = &screen->devinfo;
switch (res->aux.usage) {
......@@ -618,14 +615,6 @@ get_copy_region_aux_settings(struct iris_context *ice,
*out_aux_usage = res->aux.usage;
/* Prior to Gen9, fast-clear only supported 0/1 clear colors. Since
* we're going to re-interpret the format as an integer format possibly
* with a different number of components, we can't handle clear colors
* until Gen9.
*out_clear_supported = devinfo->gen >= 9;
*out_aux_usage = res->aux.usage;
*out_clear_supported = false;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment