intel: Check aperture size when doing a blit glClear.
authorEric Anholt <eric@anholt.net>
Fri, 5 Feb 2010 09:03:35 +0000 (01:03 -0800)
committerEric Anholt <eric@anholt.net>
Sat, 6 Feb 2010 13:10:07 +0000 (14:10 +0100)
Fixes failure in cairo-gl firefox-planet-gnome.

src/mesa/drivers/dri/intel/intel_blit.c

index 31d4f3d421b786b61f9e4fe44d902301f8bbad70..1fd07e8b82ea61292c70aafa11f7f10c1318b398 100644 (file)
@@ -250,6 +250,7 @@ intelClearWithBlit(GLcontext *ctx, GLbitfield mask)
       uint32_t clear_val;
       uint32_t BR13, CMD;
       int pitch, cpp;
+      drm_intel_bo *aper_array[2];
 
       if (!(mask & bufBit))
         continue;
@@ -340,6 +341,15 @@ intelClearWithBlit(GLcontext *ctx, GLbitfield mask)
       assert(x1 < x2);
       assert(y1 < y2);
 
+      /* do space check before going any further */
+      aper_array[0] = intel->batch->buf;
+      aper_array[1] = write_buffer;
+
+      if (drm_intel_bufmgr_check_aperture_space(aper_array,
+                                               ARRAY_SIZE(aper_array)) != 0) {
+        intel_batchbuffer_flush(intel->batch);
+      }
+
       BEGIN_BATCH(6);
       OUT_BATCH(CMD);
       OUT_BATCH(BR13);