diff options
author | Kenneth Graunke <[email protected]> | 2013-10-15 15:55:42 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2013-10-17 14:27:03 -0700 |
commit | 6613f346acc54a161046ee77e4a017c3e3d1a99f (patch) | |
tree | 5ba50e2eb70b63d9c689967fe31aacafd70f2536 | |
parent | e2d1eaa32a83204646bcccc029fdd31dbaee6d5e (diff) |
i965: Un-virtualize brw_finish_batch().
Since the i915/i965 split, there's only one implementation of this
virtual function. We may as well just call it directly.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_context.h | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vtbl.c | 22 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_batchbuffer.c | 24 |
3 files changed, 22 insertions, 25 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 721d35410a6..ace4bd01624 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -923,7 +923,6 @@ struct brw_context struct { void (*destroy) (struct brw_context * brw); - void (*finish_batch) (struct brw_context * brw); void (*new_batch) (struct brw_context * brw); void (*update_texture_surface)(struct gl_context *ctx, diff --git a/src/mesa/drivers/dri/i965/brw_vtbl.c b/src/mesa/drivers/dri/i965/brw_vtbl.c index ea156a82b13..0f7671bd929 100644 --- a/src/mesa/drivers/dri/i965/brw_vtbl.c +++ b/src/mesa/drivers/dri/i965/brw_vtbl.c @@ -91,27 +91,6 @@ brw_destroy_context(struct brw_context *brw) } /** - * called from intel_batchbuffer_flush and children before sending a - * batchbuffer off. - * - * Note that ALL state emitted here must fit in the reserved space - * at the end of a batchbuffer. If you add more GPU state, increase - * the BATCH_RESERVED macro. - */ -static void -brw_finish_batch(struct brw_context *brw) -{ - brw_emit_query_end(brw); - - if (brw->curbe.curbe_bo) { - drm_intel_gem_bo_unmap_gtt(brw->curbe.curbe_bo); - drm_intel_bo_unreference(brw->curbe.curbe_bo); - brw->curbe.curbe_bo = NULL; - } -} - - -/** * called from intelFlushBatchLocked */ static void @@ -155,7 +134,6 @@ brw_new_batch(struct brw_context *brw) void brwInitVtbl( struct brw_context *brw ) { brw->vtbl.new_batch = brw_new_batch; - brw->vtbl.finish_batch = brw_finish_batch; brw->vtbl.destroy = brw_destroy_context; assert(brw->gen >= 4); diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c index 77f3ada0f68..20a6d83cb41 100644 --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c @@ -172,6 +172,27 @@ do_batch_dump(struct brw_context *brw) } } +/** + * Called from intel_batchbuffer_flush before emitting MI_BATCHBUFFER_END and + * sending it off. + * + * This function can emit state (say, to preserve registers that aren't saved + * between batches). All of this state MUST fit in the reserved space at the + * end of the batchbuffer. If you add more GPU state, increase the reserved + * space by updating the BATCH_RESERVED macro. + */ +static void +brw_finish_batch(struct brw_context *brw) +{ + brw_emit_query_end(brw); + + if (brw->curbe.curbe_bo) { + drm_intel_gem_bo_unmap_gtt(brw->curbe.curbe_bo); + drm_intel_bo_unreference(brw->curbe.curbe_bo); + brw->curbe.curbe_bo = NULL; + } +} + /* TODO: Push this whole function into bufmgr. */ static int @@ -256,8 +277,7 @@ _intel_batchbuffer_flush(struct brw_context *brw, brw->batch.reserved_space = 0; - if (brw->vtbl.finish_batch) - brw->vtbl.finish_batch(brw); + brw_finish_batch(brw); /* Mark the end of the buffer. */ intel_batchbuffer_emit_dword(brw, MI_BATCH_BUFFER_END); |