summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2012-10-26 20:36:50 -0700
committerKenneth Graunke <kenneth@whitecape.org>2012-10-31 19:54:36 -0700
commit3d2b4291c2e448fd51c14fc1ff52ceaef00788cc (patch)
tree1c78b6b7123384ec6e153fe53a9baa8086cada65
parent1eedebc65b02130ef7a27062a1ed67972a317a08 (diff)
i965: Don't bother trying to extend the current vertex buffers.
This essentially reverts the following: commit c625aa19cb53ed27f91bfd16fea6ea727e9a5bbd 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>
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.h8
-rw-r--r--src/mesa/drivers/dri/i965/brw_draw_upload.c34
-rw-r--r--src/mesa/drivers/dri/i965/brw_vtbl.c1
3 files changed, 1 insertions, 42 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 9232a72b909..19c6af71200 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -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:
diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c
index 4a4237ddd5c..722166ce1a8 100644
--- a/src/mesa/drivers/dri/i965/brw_draw_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c
@@ -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();
}
diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c
index ca2e7a9a5ba..3709777a107 100644
--- a/src/mesa/drivers/dri/i965/brw_vtbl.c
+++ b/src/mesa/drivers/dri/i965/brw_vtbl.c
@@ -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.