Mesa (master): intel: Avoid divide by zero for very small linear blits
Ian Romanick
idr at kemper.freedesktop.org
Tue Feb 7 18:02:26 UTC 2012
Module: Mesa
Branch: master
Commit: d59466279e45a1e9c3f9081f72fedbdf961afbe1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d59466279e45a1e9c3f9081f72fedbdf961afbe1
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Thu Feb 2 16:32:45 2012 -0700
intel: Avoid divide by zero for very small linear blits
If size is small (such as 1),
pitch = ROUND_DOWN_TO(MIN2(size, (1 << 15) - 1), 4);
makes pitch = 0. Then
height = size / pitch;
causes a division-by-zero exception. If pitch is zero, set height to
1 and avoid the division.
This fixes piglit's bin/getteximage-formats test and glean's
bufferObject test.
NOTE: This is a candidate for the 8.0 release branch.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44971
---
src/mesa/drivers/dri/intel/intel_blit.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c
index 9eacadd..fd4a86c 100644
--- a/src/mesa/drivers/dri/intel/intel_blit.c
+++ b/src/mesa/drivers/dri/intel/intel_blit.c
@@ -492,7 +492,7 @@ intel_emit_linear_blit(struct intel_context *intel,
* rounding that down to the nearest DWORD is 1 << 15 - 4
*/
pitch = ROUND_DOWN_TO(MIN2(size, (1 << 15) - 1), 4);
- height = size / pitch;
+ height = (pitch == 0) ? 1 : size / pitch;
ok = intelEmitCopyBlit(intel, 1,
pitch, src_bo, src_offset, I915_TILING_NONE,
pitch, dst_bo, dst_offset, I915_TILING_NONE,
More information about the mesa-commit
mailing list