summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2012-12-25 20:55:38 -0800
committerKenneth Graunke <[email protected]>2012-12-29 01:04:30 -0800
commit66ea6e8ec3f7ee44e0011b1dd563fef76ead8bc5 (patch)
treec99897276b7fc4acd5f5807aca2c68a6d1bf6df0
parent2f225f61451abd51c283c7ff103d7fd50a935034 (diff)
i965: Fail to blit rather than assert on invalid pitch requirements.
Dungeon Defenders hits TexImage()'s try_pbo_upload() path where image->Width == 2, which doesn't meet intelEmitCopyBlit's requirement that the pitch needs to be a multiple of 4. Since intelEmitCopyBlit can already fail for a myriad of other reasons, and it's not clear that other callers are immune to this failure mode, simply make it return false rather than assert. Fixes Dungeon Defenders on i965/Ivybridge. Now playable (aside from having to work around the EXT_bindable_uniform issue). NOTE: This is probably a candidate for the 9.0 branch. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Paul Berry <[email protected]> Reviewed-by: Matt Turner <[email protected]>
-rw-r--r--src/mesa/drivers/dri/intel/intel_blit.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c
index 521e6eb62f9..867d7b3b6a7 100644
--- a/src/mesa/drivers/dri/intel/intel_blit.c
+++ b/src/mesa/drivers/dri/intel/intel_blit.c
@@ -150,8 +150,8 @@ intelEmitCopyBlit(struct intel_context *intel,
/* Blit pitch must be dword-aligned. Otherwise, the hardware appears to drop
* the low bits.
*/
- assert(src_pitch % 4 == 0);
- assert(dst_pitch % 4 == 0);
+ if (src_pitch % 4 != 0 || dst_pitch % 4 != 0)
+ return false;
/* For big formats (such as floating point), do the copy using 32bpp and
* multiply the coordinates.