[Mesa-dev] [PATCH 12/21] i965: Return whether the miptree was resolved from intel_miptree_resolve_color().
Francisco Jerez
currojerez at riseup.net
Sat Jul 23 03:59:06 UTC 2016
This will allow optimizing out the cache flush in some cases when
resolving wasn't necessary.
---
src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 12 ++++++++----
src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 2 +-
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 1e03f7e..d53fd74 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -2151,7 +2151,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)
@@ -2162,21 +2162,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 4388741..f3bc9e1 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h
@@ -942,7 +942,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);
--
2.9.0
More information about the mesa-dev
mailing list