r300: Add missing pre_emit_count to swtcl state size prediction.
authorPauli Nieminen <suokkos@gmail.com>
Sat, 29 Aug 2009 15:38:30 +0000 (18:38 +0300)
committerPauli Nieminen <suokkos@gmail.com>
Sat, 29 Aug 2009 15:40:44 +0000 (18:40 +0300)
src/mesa/drivers/dri/r300/r300_swtcl.c

index e4a56cadc64873d67b7c525ec3c3a1341f957aae..45dfbf26e6aaa9060ecd274e75b82abb8733ec28 100644 (file)
@@ -248,18 +248,19 @@ static void r300_predict_emit_size( r300ContextPtr rmesa )
                const int vertex_size = 7;
                const int prim_size = 3;
                const int cache_flush_size = 4;
+               const int pre_emit_state = 4;
                const int state_size = radeonCountStateEmitSize(&rmesa->radeon);
 
                if (rcommonEnsureCmdBufSpace(&rmesa->radeon,
-                                       state_size +
-                                       + vertex_size + prim_size,
+                                       state_size + pre_emit_state
+                                       + vertex_size + prim_size + cache_flush_size * 2,
                                        __FUNCTION__))
                        rmesa->radeon.swtcl.emit_prediction = radeonCountStateEmitSize(&rmesa->radeon);
                else
                        rmesa->radeon.swtcl.emit_prediction = state_size;
 
                rmesa->radeon.swtcl.emit_prediction += rmesa->radeon.cmdbuf.cs->cdw
-                       + vertex_size + prim_size + cache_flush_size * 2;
+                       + vertex_size + prim_size + cache_flush_size * 2 + pre_emit_state;
        }
 }