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%).
This commit is contained in:
Stéphane Marchesin 2013-05-04 18:59:35 -07:00
parent 7f7c7fda83
commit fc24c7aede
2 changed files with 6 additions and 4 deletions

View file

@ -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;

View file

@ -56,7 +56,7 @@ i915_drm_winsys_create(int drmFD)
idws->fd = drmFD;
idws->base.pci_id = deviceID;
idws->max_batch_size = 16 * 4096;
idws->max_batch_size = 1 * 4096;
idws->base.destroy = i915_drm_winsys_destroy;