[Mesa-dev] [PATCH v2 20/27] i965/blorp: Refactor fast-clear logic a bit
Jason Ekstrand
jason at jlekstrand.net
Tue Jul 26 22:11:24 UTC 2016
This pulls the mcs allocation into the if statement where we initially
determine that we are doing a fast clear and moves the programming of
wm_inputs and figuring out the fast clear rect into it's own if statement.
The next commit will put code inbetween the two.
---
src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
index 4d3fe58..a66e955 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
@@ -166,22 +166,11 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
params.color_write_disable))
use_simd16_replicated_data = false;
+ bool is_fast_clear = false;
if (irb->mt->fast_clear_state != INTEL_FAST_CLEAR_STATE_NO_MCS &&
!partial_clear && use_simd16_replicated_data &&
brw_is_color_fast_clear_compatible(brw, irb->mt,
&ctx->Color.ClearColor)) {
- memset(¶ms.wm_inputs, 0xff, 4*sizeof(float));
- params.fast_clear_op = GEN7_PS_RENDER_TARGET_FAST_CLEAR_ENABLE;
-
- brw_get_fast_clear_rect(brw, irb->mt, ¶ms.x0, ¶ms.y0,
- ¶ms.x1, ¶ms.y1);
- }
-
- brw_blorp_params_get_clear_kernel(brw, ¶ms, use_simd16_replicated_data);
-
- const bool is_fast_clear =
- params.fast_clear_op == GEN7_PS_RENDER_TARGET_FAST_CLEAR_ENABLE;
- if (is_fast_clear) {
/* Record the clear color in the miptree so that it will be
* programmed in SURFACE_STATE by later rendering and resolve
* operations.
@@ -208,8 +197,20 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
return false;
}
}
+
+ is_fast_clear = true;
}
+ if (is_fast_clear) {
+ memset(¶ms.wm_inputs, 0xff, 4*sizeof(float));
+ params.fast_clear_op = GEN7_PS_RENDER_TARGET_FAST_CLEAR_ENABLE;
+
+ brw_get_fast_clear_rect(brw, irb->mt, ¶ms.x0, ¶ms.y0,
+ ¶ms.x1, ¶ms.y1);
+ }
+
+ brw_blorp_params_get_clear_kernel(brw, ¶ms, use_simd16_replicated_data);
+
intel_miptree_check_level_layer(irb->mt, irb->mt_level, layer);
intel_miptree_used_for_rendering(irb->mt);
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list