diff options
author | Ian Romanick <ian.d.romanick@intel.com> | 2012-02-02 16:32:45 -0700 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2012-02-07 10:00:32 -0800 |
commit | d59466279e45a1e9c3f9081f72fedbdf961afbe1 (patch) | |
tree | e2a48c3804f28841d3eab75ab5f763bc33ba8669 | |
parent | 65b096aeddd9b45ca038f44cc9adfff86c8c48b2 (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 <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44971
-rw-r--r-- | 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 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, |