Mesa (master): intel: Add assert check for blitting alignment.

Eric Anholt anholt at kemper.freedesktop.org
Tue Nov 9 22:46:45 UTC 2010


Module: Mesa
Branch: master
Commit: efb0417040f4bdd55cf07dd8f54ecd4fc92c1286
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=efb0417040f4bdd55cf07dd8f54ecd4fc92c1286

Author: Peter Clifton <pcjc2 at cam.ac.uk>
Date:   Tue Nov  9 22:00:36 2010 +0000

intel: Add assert check for blitting alignment.

Also fixup code comment to reflect that the GPU requires DWORD
alignment, but in this case does not actually pass the value "in
DWORDs" as I previously stated.

---

 src/mesa/drivers/dri/intel/intel_blit.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c
index 7118898..c2917e9 100644
--- a/src/mesa/drivers/dri/intel/intel_blit.c
+++ b/src/mesa/drivers/dri/intel/intel_blit.c
@@ -483,8 +483,8 @@ intel_emit_linear_blit(struct intel_context *intel,
    /* Blits are in a different ringbuffer so we don't use them. */
    assert(intel->gen < 6);
 
-   /* The pitch hits the GPU as a is a signed value, IN DWORDs.
-    * But we want width to match pitch. Max width is (1 << 15 - 1),
+   /* The pitch given to the GPU must be DWORD aligned, and
+    * we want width to match pitch. Max width is (1 << 15 - 1),
     * rounding that down to the nearest DWORD is 1 << 15 - 4
     */
    pitch = MIN2(size, (1 << 15) - 4);
@@ -502,6 +502,7 @@ intel_emit_linear_blit(struct intel_context *intel,
    dst_offset += pitch * height;
    size -= pitch * height;
    assert (size < (1 << 15));
+   assert ((size & 3) == 0); /* Pitch must be DWORD aligned */
    if (size != 0) {
       ok = intelEmitCopyBlit(intel, 1,
 			     size, src_bo, src_offset, I915_TILING_NONE,




More information about the mesa-commit mailing list