i965: Don't bother trying to extend the current vertex buffers.
This essentially reverts the following:
commit c625aa19cb
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Feb 18 10:37:43 2011 +0000
intel: extend current vertex buffers
While working on optimizing an upcoming Steam title, I broke this code.
Eric expressed his doubts about this optimization, and noted that the
original commit offered no performance data.
I ran before and after benchmarks on Xonotic and Citybench, and found
that this code made no difference. So, remove it to reduce complexity
and make future work simpler.
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
1eedebc65b
commit
3d2b4291c2
|
@ -773,16 +773,10 @@ struct brw_context
|
|||
struct {
|
||||
struct brw_vertex_element inputs[VERT_ATTRIB_MAX];
|
||||
struct brw_vertex_buffer buffers[VERT_ATTRIB_MAX];
|
||||
struct {
|
||||
uint32_t handle;
|
||||
uint32_t offset;
|
||||
uint32_t stride;
|
||||
uint32_t step_rate;
|
||||
} current_buffers[VERT_ATTRIB_MAX];
|
||||
|
||||
struct brw_vertex_element *enabled[VERT_ATTRIB_MAX];
|
||||
GLuint nr_enabled;
|
||||
GLuint nr_buffers, nr_current_buffers;
|
||||
GLuint nr_buffers;
|
||||
|
||||
/* Summary of size and varying of active arrays, so we can check
|
||||
* for changes to this state:
|
||||
|
|
|
@ -536,34 +536,6 @@ static void brw_prepare_vertices(struct brw_context *brw)
|
|||
upload[i]->offset = 0;
|
||||
}
|
||||
|
||||
/* can we simply extend the current vb? */
|
||||
if (j == brw->vb.nr_current_buffers) {
|
||||
int delta = 0;
|
||||
for (i = 0; i < j; i++) {
|
||||
int d;
|
||||
|
||||
if (brw->vb.current_buffers[i].handle != brw->vb.buffers[i].bo->handle ||
|
||||
brw->vb.current_buffers[i].stride != brw->vb.buffers[i].stride ||
|
||||
brw->vb.current_buffers[i].step_rate != brw->vb.buffers[i].step_rate)
|
||||
break;
|
||||
|
||||
d = brw->vb.buffers[i].offset - brw->vb.current_buffers[i].offset;
|
||||
if (d < 0)
|
||||
break;
|
||||
if (i == 0)
|
||||
delta = d / brw->vb.current_buffers[i].stride;
|
||||
if (delta * brw->vb.current_buffers[i].stride != d)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i == j) {
|
||||
brw->vb.start_vertex_bias += delta;
|
||||
while (--j >= 0)
|
||||
drm_intel_bo_unreference(brw->vb.buffers[j].bo);
|
||||
j = 0;
|
||||
}
|
||||
}
|
||||
|
||||
brw->vb.nr_buffers = j;
|
||||
}
|
||||
|
||||
|
@ -644,13 +616,7 @@ static void brw_emit_vertices(struct brw_context *brw)
|
|||
} else
|
||||
OUT_BATCH(0);
|
||||
OUT_BATCH(buffer->step_rate);
|
||||
|
||||
brw->vb.current_buffers[i].handle = buffer->bo->handle;
|
||||
brw->vb.current_buffers[i].offset = buffer->offset;
|
||||
brw->vb.current_buffers[i].stride = buffer->stride;
|
||||
brw->vb.current_buffers[i].step_rate = buffer->step_rate;
|
||||
}
|
||||
brw->vb.nr_current_buffers = i;
|
||||
ADVANCE_BATCH();
|
||||
}
|
||||
|
||||
|
|
|
@ -196,7 +196,6 @@ static void brw_new_batch( struct intel_context *intel )
|
|||
*/
|
||||
brw->sol.offset_0_batch_start = brw->sol.svbi_0_starting_index;
|
||||
|
||||
brw->vb.nr_current_buffers = 0;
|
||||
brw->ib.type = -1;
|
||||
|
||||
/* Mark that the current program cache BO has been used by the GPU.
|
||||
|
|
Loading…
Reference in New Issue