diff -Naur a/src/gallium/drivers/r300/r300_render.c b/src/gallium/drivers/r300/r300_render.c --- a/src/gallium/drivers/r300/r300_render.c 2013-07-03 19:48:15.000000000 +0200 +++ b/src/gallium/drivers/r300/r300_render.c 2013-07-03 20:28:30.000000000 +0200 @@ -1018,7 +1018,7 @@ if (!r300_prepare_for_rendering(r300, PREP_EMIT_STATES | PREP_EMIT_VARRAYS_SWTCL | PREP_INDEXED, - NULL, 256, 0, 0, -1)) { + NULL, 6 + (count + 1) / 2 , 0, 0, -1)) { return; } @@ -1053,7 +1053,7 @@ if (count) { if (!r300_prepare_for_rendering(r300, PREP_EMIT_VARRAYS_SWTCL | PREP_INDEXED, - NULL, 256, 0, 0, -1)) + NULL, 6 + (count + 1) / 2, 0, 0, -1)) return; end_cs_dwords = r300_get_num_cs_end_dwords(r300);