aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2020-05-29 16:54:35 -0700
committerMarge Bot <[email protected]>2020-06-03 22:22:19 +0000
commit45918e0d8c1ac3128b743fc4e549a60d744e3bc5 (patch)
tree986b7616ae4a7a4af2f33c0061d170f55d812682
parent26a3c7b363133315d0ee2b03eb2ca986d4b23043 (diff)
iris: Simplify iris_batch_prepare_noop().
This makes iris_batch_prepare_noop() return a boolean instead of passing through the relevant set of dirty flags. It will make it easier to change the representation of dirty flags. Reviewed-by: Kenneth Graunke <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5279>
-rw-r--r--src/gallium/drivers/iris/iris_batch.c9
-rw-r--r--src/gallium/drivers/iris/iris_batch.h4
-rw-r--r--src/gallium/drivers/iris/iris_state.c11
3 files changed, 11 insertions, 13 deletions
diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
index 0982e8aa8c0..fabea867b48 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -765,10 +765,11 @@ iris_batch_references(struct iris_batch *batch, struct iris_bo *bo)
}
/**
- * Updates the state of the noop feature.
+ * Updates the state of the noop feature. Returns true if there was a noop
+ * transition that led to state invalidation.
*/
-uint64_t
-iris_batch_prepare_noop(struct iris_batch *batch, bool noop_enable, uint64_t dirty_flags)
+bool
+iris_batch_prepare_noop(struct iris_batch *batch, bool noop_enable)
{
if (batch->noop_enabled == noop_enable)
return 0;
@@ -784,5 +785,5 @@ iris_batch_prepare_noop(struct iris_batch *batch, bool noop_enable, uint64_t dir
/* We only need to update the entire state if we transition from noop ->
* not-noop.
*/
- return !batch->noop_enabled ? dirty_flags : 0;
+ return !batch->noop_enabled;
}
diff --git a/src/gallium/drivers/iris/iris_batch.h b/src/gallium/drivers/iris/iris_batch.h
index 421d8e064d4..c95fd23491f 100644
--- a/src/gallium/drivers/iris/iris_batch.h
+++ b/src/gallium/drivers/iris/iris_batch.h
@@ -162,9 +162,7 @@ void _iris_batch_flush(struct iris_batch *batch, const char *file, int line);
bool iris_batch_references(struct iris_batch *batch, struct iris_bo *bo);
-uint64_t iris_batch_prepare_noop(struct iris_batch *batch,
- bool noop_enable,
- uint64_t dirty_flags);
+bool iris_batch_prepare_noop(struct iris_batch *batch, bool noop_enable);
#define RELOC_WRITE EXEC_OBJECT_WRITE
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 92f20415385..2546efd308d 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -7512,12 +7512,11 @@ iris_set_frontend_noop(struct pipe_context *ctx, bool enable)
{
struct iris_context *ice = (struct iris_context *) ctx;
- ice->state.dirty |= iris_batch_prepare_noop(&ice->batches[IRIS_BATCH_RENDER],
- enable,
- IRIS_ALL_DIRTY_FOR_RENDER);
- ice->state.dirty |= iris_batch_prepare_noop(&ice->batches[IRIS_BATCH_COMPUTE],
- enable,
- IRIS_ALL_DIRTY_FOR_COMPUTE);
+ if (iris_batch_prepare_noop(&ice->batches[IRIS_BATCH_RENDER], enable))
+ ice->state.dirty |= IRIS_ALL_DIRTY_FOR_RENDER;
+
+ if (iris_batch_prepare_noop(&ice->batches[IRIS_BATCH_COMPUTE], enable))
+ ice->state.dirty |= IRIS_ALL_DIRTY_FOR_COMPUTE;
}
void