mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-10 07:10:39 +01:00
i965: Introduce a "render ring prelude" hook.
The new intel_batchbuffer_emit_render_ring_prelude() hook will be called when switching from BLT or UNKNOWN_RING to RENDER_RING. This provides a place to emit state that should go at the start of each render ring batch, with minimal overhead. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
395a32717d
commit
bb9d2eab89
2 changed files with 10 additions and 0 deletions
|
|
@ -179,6 +179,11 @@ do_batch_dump(struct brw_context *brw)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
intel_batchbuffer_emit_render_ring_prelude(struct brw_context *brw)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when starting a new batch buffer.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ extern "C" {
|
|||
|
||||
struct intel_batchbuffer;
|
||||
|
||||
void intel_batchbuffer_emit_render_ring_prelude(struct brw_context *brw);
|
||||
void intel_batchbuffer_init(struct brw_context *brw);
|
||||
void intel_batchbuffer_free(struct brw_context *brw);
|
||||
void intel_batchbuffer_save_state(struct brw_context *brw);
|
||||
|
|
@ -118,10 +119,14 @@ intel_batchbuffer_require_space(struct brw_context *brw, GLuint sz,
|
|||
if (intel_batchbuffer_space(brw) < sz)
|
||||
intel_batchbuffer_flush(brw);
|
||||
|
||||
enum brw_gpu_ring prev_ring = brw->batch.ring;
|
||||
/* The intel_batchbuffer_flush() calls above might have changed
|
||||
* brw->batch.ring to UNKNOWN_RING, so we need to set it here at the end.
|
||||
*/
|
||||
brw->batch.ring = ring;
|
||||
|
||||
if (unlikely(prev_ring == UNKNOWN_RING && ring == RENDER_RING))
|
||||
intel_batchbuffer_emit_render_ring_prelude(brw);
|
||||
}
|
||||
|
||||
static INLINE void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue