iris: SBA once at context creation, not per batch
hooray!
This commit is contained in:
parent
e0eac28bd4
commit
d890aee15d
|
@ -218,9 +218,6 @@ iris_batch_reset(struct iris_batch *batch)
|
||||||
|
|
||||||
if (batch->state_sizes)
|
if (batch->state_sizes)
|
||||||
_mesa_hash_table_clear(batch->state_sizes, NULL);
|
_mesa_hash_table_clear(batch->state_sizes, NULL);
|
||||||
|
|
||||||
if (batch->ring == I915_EXEC_RENDER)
|
|
||||||
batch->emit_state_base_address(batch);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -78,8 +78,6 @@ struct iris_batch {
|
||||||
struct hash_table *state_sizes;
|
struct hash_table *state_sizes;
|
||||||
struct gen_batch_decode_ctx decoder;
|
struct gen_batch_decode_ctx decoder;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void (*emit_state_base_address)(struct iris_batch *batch);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void iris_init_batch(struct iris_batch *batch,
|
void iris_init_batch(struct iris_batch *batch,
|
||||||
|
|
|
@ -344,8 +344,12 @@ emit_state(struct iris_batch *batch,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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 */
|
/* XXX: PIPE_CONTROLs */
|
||||||
|
|
||||||
iris_emit_cmd(batch, GENX(STATE_BASE_ADDRESS), sba) {
|
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.InstructionBufferSize = 0xfffff;
|
||||||
sba.DynamicStateBufferSize = 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) {
|
iris_emit_cmd(batch, GENX(3DSTATE_DRAWING_RECTANGLE), rect) {
|
||||||
rect.ClippedDrawingRectangleXMax = UINT16_MAX;
|
rect.ClippedDrawingRectangleXMax = UINT16_MAX;
|
||||||
|
|
Loading…
Reference in New Issue