summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/i915/i915_prim_vbuf.c
diff options
context:
space:
mode:
authorStéphane Marchesin <[email protected]>2013-05-04 18:59:35 -0700
committerStéphane Marchesin <[email protected]>2013-05-08 02:06:56 -0700
commitfc24c7aedeff6639e9438dbe7b91ca3775511223 (patch)
treede0b578dd79afa5704a2951e397f62d79ddab188 /src/gallium/drivers/i915/i915_prim_vbuf.c
parent7f7c7fda83eced002a4dbff483cded2e31313acd (diff)
i915g: Optimize batchbuffer sizes
Now that we don't throttle at every batchbuffer, we can shrink the size of batchbuffers to achieve early flushing. This gives a significant speed boost in a lot of games (on the order of 20%).
Diffstat (limited to 'src/gallium/drivers/i915/i915_prim_vbuf.c')
-rw-r--r--src/gallium/drivers/i915/i915_prim_vbuf.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gallium/drivers/i915/i915_prim_vbuf.c b/src/gallium/drivers/i915/i915_prim_vbuf.c
index 4e57eeadea7..f9cd71be457 100644
--- a/src/gallium/drivers/i915/i915_prim_vbuf.c
+++ b/src/gallium/drivers/i915/i915_prim_vbuf.c
@@ -704,12 +704,14 @@ i915_vbuf_render_create(struct i915_context *i915)
i915_render->i915 = i915;
- i915_render->base.max_vertex_buffer_bytes = 16*4096;
+ i915_render->base.max_vertex_buffer_bytes = 4*4096;
/* NOTE: it must be such that state and vertices indices fit in a single
- * batch buffer.
+ * batch buffer. 4096 is one batch buffer and 430 is the max amount of
+ * state in dwords. The result is the number of 16-bit indices which can
+ * fit in a single batch buffer.
*/
- i915_render->base.max_indices = 16*1024;
+ i915_render->base.max_indices = (4096 - 430 * 4) / 2;
i915_render->base.get_vertex_info = i915_vbuf_render_get_vertex_info;
i915_render->base.allocate_vertices = i915_vbuf_render_allocate_vertices;