From: Francisco Jerez Date: Sat, 23 Jul 2016 01:16:45 +0000 (-0700) Subject: i965: Return whether the miptree was resolved from intel_miptree_resolve_color(). X-Git-Tag: upstream/17.1.0~7008 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=071665c16191e3738f4ee173398da45c008e005a;p=platform%2Fupstream%2Fmesa.git i965: Return whether the miptree was resolved from intel_miptree_resolve_color(). This will allow optimizing out the cache flush in some cases when resolving wasn't necessary. Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 0836b92..24355c5 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -2133,7 +2133,7 @@ intel_miptree_all_slices_resolve_depth(struct brw_context *brw, } -void +bool intel_miptree_resolve_color(struct brw_context *brw, struct intel_mipmap_tree *mt, int flags) @@ -2144,21 +2144,25 @@ intel_miptree_resolve_color(struct brw_context *brw, */ if ((flags & INTEL_MIPTREE_IGNORE_CCS_E) && intel_miptree_is_lossless_compressed(brw, mt)) - return; + return false; switch (mt->fast_clear_state) { case INTEL_FAST_CLEAR_STATE_NO_MCS: case INTEL_FAST_CLEAR_STATE_RESOLVED: /* No resolve needed */ - break; + return false; case INTEL_FAST_CLEAR_STATE_UNRESOLVED: case INTEL_FAST_CLEAR_STATE_CLEAR: /* Fast color clear resolves only make sense for non-MSAA buffers. */ if (mt->msaa_layout == INTEL_MSAA_LAYOUT_NONE || intel_miptree_is_lossless_compressed(brw, mt)) { brw_blorp_resolve_color(brw, mt); + return true; + } else { + return false; } - break; + default: + unreachable("Invalid fast clear state"); } } diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h index c28fb33..94bf664 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h @@ -941,7 +941,7 @@ intel_miptree_used_for_rendering(struct intel_mipmap_tree *mt) */ #define INTEL_MIPTREE_IGNORE_CCS_E (1 << 0) -void +bool intel_miptree_resolve_color(struct brw_context *brw, struct intel_mipmap_tree *mt, int flags);