iris: Ignore aux for copy_region source if there's no unresolved color

This mirrors the behavior of iris_resource_texture_aux_usage(), which
bypasses the aux metadata when there's no advantage to using it.

Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18790>
This commit is contained in:
Kenneth Graunke
2022-09-22 22:50:37 -07:00
committed by Marge Bot
parent 6db172436a
commit 95d61c5c75
+12
View File
@@ -599,6 +599,18 @@ get_copy_region_aux_settings(struct iris_context *ice,
FALLTHROUGH;
case ISL_AUX_USAGE_CCS_E:
case ISL_AUX_USAGE_GFX12_CCS_E: {
/* If our source doesn't have any unresolved color, report an aux
* usage of ISL_AUX_USAGE_NONE. This way, texturing won't even look
* at the aux surface and we can save some bandwidth.
*/
if (!is_dest &&
!iris_has_invalid_primary(res, level, 1,
0, INTEL_REMAINING_LAYERS)) {
*out_aux_usage = ISL_AUX_USAGE_NONE;
*out_clear_supported = false;
break;
}
/* blorp_copy may reinterpret the surface format and has limited support
* for adjusting the clear color, so clear support may only be enabled
* in some cases: