GEM: Fix previous commit to avoid asserting when we run into reserved space.
authorEric Anholt <eric@anholt.net>
Tue, 6 May 2008 22:25:51 +0000 (15:25 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 6 May 2008 22:25:51 +0000 (15:25 -0700)
These are the dwords that the reserved space is for.

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

index ef66fd75ac2903de6f500ee851755110754c1b1c..bab8e645d41522c9b73a8d4e8f80ba34c536ac9f 100644 (file)
@@ -206,16 +206,21 @@ _intel_batchbuffer_flush(struct intel_batchbuffer *batch, const char *file,
              used);
 
    /* Emit a flush if the bufmgr doesn't do it for us. */
-   if (!intel->ttm)
-      intel_batchbuffer_emit_dword(intel->batch, intel->vtbl.flush_cmd());
+   if (!intel->ttm) {
+      *(GLuint *) (batch->ptr) = intel->vtbl.flush_cmd();
+      batch->ptr += 4;
+   }
 
    /* Round batchbuffer usage to 2 DWORDs. */
    used = batch->ptr - batch->map;
-   if ((used & 4) == 0)
-      intel_batchbuffer_emit_dword(intel->batch, 0); /* noop */
+   if ((used & 4) == 0) {
+      *(GLuint *) (batch->ptr) = 0; /* noop */
+      batch->ptr += 4;
+   }
 
    /* Mark the end of the buffer. */
-   intel_batchbuffer_emit_dword(intel->batch, MI_BATCH_BUFFER_END);
+   *(GLuint *) (batch->ptr) = MI_BATCH_BUFFER_END; /* noop */
+   batch->ptr += 4;
 
    used = batch->ptr - batch->map;