summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorChris Wilson <[email protected]>2011-03-04 15:04:36 +0000
committerChris Wilson <[email protected]>2011-03-30 11:01:42 +0100
commit5eb9f687087a4bc71775a32efcd848fc6cd67694 (patch)
treebbc2356a6679d42385b66848a5ebc378a53de3c9 /src/mesa
parentf5a9a0bc22c4b717c2c32f4ddf283878d6c7ba93 (diff)
intel: Add some defense against buffer allocation failure for subimage blits
Once more! This time without the unwarranted conversion from drm_intel_bo_alloc_tiled. Signed-off-by: [a very embarrassed] Chris Wilson <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/intel/intel_tex_subimage.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_tex_subimage.c b/src/mesa/drivers/dri/intel/intel_tex_subimage.c
index 6b7f13ff353..8b43c406cf9 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_subimage.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_subimage.c
@@ -92,6 +92,7 @@ intelTexSubimage(struct gl_context * ctx,
{
unsigned long pitch;
uint32_t tiling_mode = I915_TILING_NONE;
+
temp_bo = drm_intel_bo_alloc_tiled(intel->bufmgr,
"subimage blit bo",
width, height,
@@ -99,7 +100,14 @@ intelTexSubimage(struct gl_context * ctx,
&tiling_mode,
&pitch,
0);
- drm_intel_gem_bo_map_gtt(temp_bo);
+ if (temp_bo == NULL)
+ 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;