i965/blorp: Improve fast color clear comment.
authorPaul Berry <stereotype441@gmail.com>
Thu, 5 Dec 2013 12:34:42 +0000 (04:34 -0800)
committerPaul Berry <stereotype441@gmail.com>
Mon, 9 Dec 2013 18:51:00 +0000 (10:51 -0800)
Clarify the fact that we only optimize full buffer clears using fast
color clear, and why.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_blorp_clear.cpp

index 1904bde1726dd213a77727e229539173ea9ea14a..3af22b6075e06ecadd9dd8a8ff1661202c0a8e9f 100644 (file)
@@ -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)) {