From 3a2925bfa9537c202574eba0e2537b08939081ac Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Thu, 5 Dec 2013 04:34:42 -0800 Subject: [PATCH] i965/blorp: Improve fast color clear comment. Clarify the fact that we only optimize full buffer clears using fast color clear, and why. Reviewed-by: Chad Versace Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp index 1904bde1726..3af22b6075e 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp @@ -238,7 +238,18 @@ brw_blorp_clear_params::brw_blorp_clear_params(struct brw_context *brw, } } - /* If we can do this as a fast color clear, do so. */ + /* If we can do this as a fast color clear, do so. + * + * Note that the condition "!partial_clear" means we only try to do full + * buffer clears using fast color clear logic. This is necessary because + * the fast color clear alignment requirements mean that we typically have + * to clear a larger rectangle than (x0, y0) to (x1, y1). Restricting fast + * color clears to the full-buffer condition guarantees that the extra + * memory locations that get written to are outside the image boundary (and + * hence irrelevant). Note that the rectangle alignment requirements are + * never larger than the size of a tile, so there is no danger of + * overflowing beyond the memory belonging to the region. + */ if (irb->mt->mcs_state != INTEL_MCS_STATE_NONE && !partial_clear && wm_prog_key.use_simd16_replicated_data && is_color_fast_clear_compatible(brw, format, &ctx->Color.ClearColor)) { -- 2.30.2