Module: Mesa
Branch: master
Commit: de7678ef521f4fb34459e407a66ab8bf8be733e1
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=de7678ef521f4fb34459e407a66ab8bf8be733e1

Author: Chris Wilson <ch...@chris-wilson.co.uk>
Date:   Fri Mar  4 15:04:36 2011 +0000

intel: Add some defense against buffer allocation failure for subimage blits

Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>

---

 src/mesa/drivers/dri/intel/intel_tex_subimage.c |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_tex_subimage.c 
b/src/mesa/drivers/dri/intel/intel_tex_subimage.c
index 6b7f13f..d0f8294 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_subimage.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_subimage.c
@@ -90,19 +90,19 @@ intelTexSubimage(struct gl_context * ctx,
          intel->gen < 6 && target == GL_TEXTURE_2D &&
          drm_intel_bo_busy(dst_bo))
       {
-        unsigned long pitch;
-        uint32_t tiling_mode = I915_TILING_NONE;
-        temp_bo = drm_intel_bo_alloc_tiled(intel->bufmgr,
-                                           "subimage blit bo",
-                                           width, height,
-                                           intelImage->mt->cpp,
-                                           &tiling_mode,
-                                           &pitch,
-                                           0);
-        drm_intel_gem_bo_map_gtt(temp_bo);
+        dstRowStride = width * intelImage->mt->cpp;
+         temp_bo = drm_intel_bo_alloc(intel->bufmgr, "subimage blit bo",
+                                      dstRowStride * height, 0);
+         if (!temp_bo)
+            return;
+
+        if (drm_intel_gem_bo_map_gtt(temp_bo)) {
+            drm_intel_bo_unreference(temp_bo);
+            return;
+         }
+
         texImage->Data = temp_bo->virtual;
         texImage->ImageOffsets[0] = 0;
-        dstRowStride = pitch;
 
         intel_miptree_get_image_offset(intelImage->mt, level,
                                        intelImage->face, 0,

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to