[Mesa-dev] [PATCH] i965: Fix the region's pitch condition to use blitter
Anuj Phogat
anuj.phogat at gmail.com
Tue Dec 17 15:49:44 PST 2013
intelEmitCopyBlit uses a signed 16-bit integer to represent
buffer pitch, so it can only handle buffer pitches < 32k.
This patch fixes assertion failure in depth_texture_mipmap.test
in Khronos' OpenGL CTS. But, the test still fails due to
GL_OUT_OF_MEMORY error in glTexImage2D().
Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
src/mesa/drivers/dri/i965/intel_blit.c | 6 +++---
src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index 7bc289f..32431b9 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -199,9 +199,9 @@ intel_miptree_blit(struct brw_context *brw,
* As a result of these two limitations, we can only use the blitter to do
* this copy when the region's pitch is less than 32k.
*/
- if (src_mt->region->pitch > 32768 ||
- dst_mt->region->pitch > 32768) {
- perf_debug("Falling back due to >32k pitch\n");
+ if (src_mt->region->pitch >= 32768 ||
+ dst_mt->region->pitch >= 32768) {
+ perf_debug("Falling back due to >=32k pitch\n");
return false;
}
diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index ed55cf1..3118b8c 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -2291,8 +2291,8 @@ intel_miptree_map_singlesample(struct brw_context *brw,
mt->region->pitch < 32768) {
intel_miptree_map_blit(brw, mt, map, level, slice);
} else if (mt->region->tiling != I915_TILING_NONE &&
- mt->region->bo->size >= brw->max_gtt_map_object_size) {
- assert(mt->region->pitch < 32768);
+ mt->region->bo->size >= brw->max_gtt_map_object_size &&
+ mt->region->pitch < 32768) {
intel_miptree_map_blit(brw, mt, map, level, slice);
#ifdef __SSE4_1__
} else if (!(mode & GL_MAP_WRITE_BIT) && !mt->compressed) {
--
1.8.3.1
More information about the mesa-dev
mailing list