iris: SBA once at context creation, not per batch

hooray!
This commit is contained in:
Kenneth Graunke 2018-04-07 01:01:24 -07:00
parent e0eac28bd4
commit d890aee15d
3 changed files with 5 additions and 15 deletions

View File

@ -218,9 +218,6 @@ iris_batch_reset(struct iris_batch *batch)
if (batch->state_sizes)
_mesa_hash_table_clear(batch->state_sizes, NULL);
if (batch->ring == I915_EXEC_RENDER)
batch->emit_state_base_address(batch);
}
static void

View File

@ -78,8 +78,6 @@ struct iris_batch {
struct hash_table *state_sizes;
struct gen_batch_decode_ctx decoder;
#endif
void (*emit_state_base_address)(struct iris_batch *batch);
};
void iris_init_batch(struct iris_batch *batch,

View File

@ -344,8 +344,12 @@ emit_state(struct iris_batch *batch,
}
static void
iris_emit_state_base_address(struct iris_batch *batch)
iris_init_render_context(struct iris_screen *screen,
struct iris_batch *batch,
struct pipe_debug_callback *dbg)
{
iris_init_batch(batch, screen, dbg, I915_EXEC_RENDER);
/* XXX: PIPE_CONTROLs */
iris_emit_cmd(batch, GENX(STATE_BASE_ADDRESS), sba) {
@ -379,15 +383,6 @@ iris_emit_state_base_address(struct iris_batch *batch)
sba.InstructionBufferSize = 0xfffff;
sba.DynamicStateBufferSize = 0xfffff;
}
}
static void
iris_init_render_context(struct iris_screen *screen,
struct iris_batch *batch,
struct pipe_debug_callback *dbg)
{
batch->emit_state_base_address = iris_emit_state_base_address;
iris_init_batch(batch, screen, dbg, I915_EXEC_RENDER);
iris_emit_cmd(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) {
rect.ClippedDrawingRectangleXMax = UINT16_MAX;