i915: Emit a single relocation per vbo

Reducing the number of relocations has lots of nice knock-on effects,
not least including reducing batch buffer size, auxilliary array sizes
(vmalloced and copied into the kernel), processing of uncached
relocations etc.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson
2010-11-25 15:41:37 +00:00
parent 298ebb78de
commit 2c6793fb6b
5 changed files with 45 additions and 17 deletions

View File

@@ -1422,6 +1422,10 @@ i915ValidateFragmentProgram(struct i915_context *i915)
intel->vertex_attr_count,
intel->ViewportMatrix.m, 0);
assert(intel->prim.current_offset == intel->prim.start_offset);
intel->prim.start_offset = (intel->prim.current_offset + intel->vertex_size-1) / intel->vertex_size * intel->vertex_size;
intel->prim.current_offset = intel->prim.start_offset;
intel->vertex_size >>= 2;
i915->state.Ctx[I915_CTXREG_LIS2] = s2;