summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2012-02-02 16:32:45 -0700
committerIan Romanick <[email protected]>2012-02-07 10:00:32 -0800
commitd59466279e45a1e9c3f9081f72fedbdf961afbe1 (patch)
treee2a48c3804f28841d3eab75ab5f763bc33ba8669
parent65b096aeddd9b45ca038f44cc9adfff86c8c48b2 (diff)
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 <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44971
-rw-r--r--src/mesa/drivers/dri/intel/intel_blit.c2
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 9eacadd213c..fd4a86c4e72 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,