aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/iris/iris_batch.h4
-rw-r--r--src/gallium/drivers/iris/iris_state.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/src/gallium/drivers/iris/iris_batch.h b/src/gallium/drivers/iris/iris_batch.h
index bfea20d268c..00f62f2fb6f 100644
--- a/src/gallium/drivers/iris/iris_batch.h
+++ b/src/gallium/drivers/iris/iris_batch.h
@@ -153,6 +153,9 @@ struct iris_batch {
/** Have we emitted any draw calls to this batch? */
bool contains_draw;
+ /** Have we emitted any draw calls with next_seqno? */
+ bool contains_draw_with_next_seqno;
+
/**
* Number of times iris_batch_sync_region_start() has been called without a
* matching iris_batch_sync_region_end() on this batch.
@@ -304,6 +307,7 @@ static inline void
iris_batch_sync_boundary(struct iris_batch *batch)
{
if (!batch->sync_region_depth) {
+ batch->contains_draw_with_next_seqno = false;
batch->next_seqno = p_atomic_inc_return(&batch->screen->last_seqno);
assert(batch->next_seqno > 0);
}
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 786a188746e..5c8921b704f 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -6362,9 +6362,9 @@ iris_upload_render_state(struct iris_context *ice,
iris_use_pinned_bo(batch, ice->state.binder.bo, false,
IRIS_DOMAIN_NONE);
- if (!batch->contains_draw) {
+ if (!batch->contains_draw_with_next_seqno) {
iris_restore_render_saved_bos(ice, batch, draw);
- batch->contains_draw = true;
+ batch->contains_draw_with_next_seqno = batch->contains_draw = true;
}
iris_upload_dirty_render_state(ice, batch, draw);
@@ -6744,9 +6744,9 @@ iris_upload_compute_state(struct iris_context *ice,
iris_emit_cmd(batch, GENX(MEDIA_STATE_FLUSH), msf);
- if (!batch->contains_draw) {
+ if (!batch->contains_draw_with_next_seqno) {
iris_restore_compute_saved_bos(ice, batch, grid);
- batch->contains_draw = true;
+ batch->contains_draw_with_next_seqno = batch->contains_draw = true;
}
iris_batch_sync_region_end(batch);