[Mesa-dev] [PATCH] intel: Kill dead code in intel_miptree_copy_teximage()
Chad Versace
chad at chad-versace.us
Mon Oct 24 14:03:38 PDT 2011
Kill the code paths taken when src_mt is null. It is never null, otherwise
there would be a segfault on line 4 of this function:
GLuint width = src_mt->level[level].width;
(Some interleaved lines in the diff make the real diff non-obvious. All
I did was delete some code and then left-shifted what remained to correct
the indentation.)
Signed-off-by: Chad Versace <chad at chad-versace.us>
---
src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 88 ++++++++----------------
1 files changed, 28 insertions(+), 60 deletions(-)
diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
index 9eb81de..2bccfbf 100644
--- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c
@@ -371,74 +371,42 @@ intel_miptree_copy_teximage(struct intel_context *intel,
intel_miptree_get_image_offset(dst_mt, level, face, slice,
&dst_x, &dst_y);
- if (src_mt) {
- /* Copy potentially with the blitter:
- */
- intel_miptree_get_image_offset(src_mt, level, face, slice,
- &src_x, &src_y);
-
- DBG("validate blit mt %p %d,%d/%d -> mt %p %d,%d/%d (%dx%d)\n",
- src_mt, src_x, src_y, src_mt->region->pitch * src_mt->region->cpp,
- dst_mt, dst_x, dst_y, dst_mt->region->pitch * dst_mt->region->cpp,
- width, height);
-
- if (!intelEmitCopyBlit(intel,
- dst_mt->region->cpp,
- src_mt->region->pitch, src_mt->region->bo,
- 0, src_mt->region->tiling,
- dst_mt->region->pitch, dst_mt->region->bo,
- 0, dst_mt->region->tiling,
- src_x, src_y,
- dst_x, dst_y,
- width, height,
- GL_COPY)) {
-
- fallback_debug("miptree validate blit for %s failed\n",
- _mesa_get_format_name(intelImage->base.Base.TexFormat));
- dst = intel_region_map(intel, dst_mt->region, GL_MAP_WRITE_BIT);
- src = intel_region_map(intel, src_mt->region, GL_MAP_READ_BIT);
-
- _mesa_copy_rect(dst,
- dst_mt->cpp,
- dst_mt->region->pitch,
- dst_x, dst_y,
- width, height,
- src, src_mt->region->pitch,
- src_x, src_y);
-
- intel_region_unmap(intel, dst_mt->region);
- intel_region_unmap(intel, src_mt->region);
- }
- } else {
+ /* Copy potentially with the blitter:
+ */
+ intel_miptree_get_image_offset(src_mt, level, face, slice,
+ &src_x, &src_y);
+
+ DBG("validate blit mt %p %d,%d/%d -> mt %p %d,%d/%d (%dx%d)\n",
+ src_mt, src_x, src_y, src_mt->region->pitch * src_mt->region->cpp,
+ dst_mt, dst_x, dst_y, dst_mt->region->pitch * dst_mt->region->cpp,
+ width, height);
+
+ if (!intelEmitCopyBlit(intel,
+ dst_mt->region->cpp,
+ src_mt->region->pitch, src_mt->region->bo,
+ 0, src_mt->region->tiling,
+ dst_mt->region->pitch, dst_mt->region->bo,
+ 0, dst_mt->region->tiling,
+ src_x, src_y,
+ dst_x, dst_y,
+ width, height,
+ GL_COPY)) {
+
+ fallback_debug("miptree validate blit for %s failed\n",
+ _mesa_get_format_name(intelImage->base.Base.TexFormat));
dst = intel_region_map(intel, dst_mt->region, GL_MAP_WRITE_BIT);
-
- DBG("validate upload mt %p -> mt %p %d,%d/%d (%dx%d)\n",
- src,
- dst_mt, dst_x, dst_y, dst_mt->region->pitch * dst_mt->region->cpp,
- width, height);
-
- src = intelImage->base.Data;
- src += (intelImage->base.RowStride *
- intelImage->base.Base.Height *
- dst_mt->region->cpp *
- slice);
+ src = intel_region_map(intel, src_mt->region, GL_MAP_READ_BIT);
_mesa_copy_rect(dst,
- dst_mt->region->cpp,
+ dst_mt->cpp,
dst_mt->region->pitch,
dst_x, dst_y,
width, height,
- src,
- intelImage->base.RowStride,
- 0, 0);
+ src, src_mt->region->pitch,
+ src_x, src_y);
intel_region_unmap(intel, dst_mt->region);
- }
- }
-
- if (!src_mt && intelImage->base.Data) {
- _mesa_align_free(intelImage->base.Data);
- intelImage->base.Data = NULL;
+ intel_region_unmap(intel, src_mt->region);
}
intel_miptree_reference(&intelImage->mt, dst_mt);
--
1.7.6.4
More information about the mesa-dev
mailing list