Mesa (master): iris: Give up on not passing ice to iris_init_batch

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 1 19:13:07 UTC 2020


Module: Mesa
Branch: master
Commit: c94379c770e86f66f17d5747e1925bd65bed65c0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c94379c770e86f66f17d5747e1925bd65bed65c0

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Fri May  1 10:17:15 2020 -0700

iris: Give up on not passing ice to iris_init_batch

We're going to need it to create a uploader in the batch soon.  We still
avoid storing it, to maintain the charade of separation, and make people
think twice about fetching random fields from there and intertwining
things even worse.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3802>

---

 src/gallium/drivers/iris/iris_batch.c   | 20 +++++++++-----------
 src/gallium/drivers/iris/iris_batch.h   |  9 +++------
 src/gallium/drivers/iris/iris_context.c |  4 +---
 3 files changed, 13 insertions(+), 20 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
index 177ba3a848f..324ae016ae3 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -167,19 +167,17 @@ decode_batch(struct iris_batch *batch)
 }
 
 void
-iris_init_batch(struct iris_batch *batch,
-                struct iris_screen *screen,
-                struct pipe_debug_callback *dbg,
-                struct pipe_device_reset_callback *reset,
-                struct hash_table_u64 *state_sizes,
-                struct iris_batch *all_batches,
+iris_init_batch(struct iris_context *ice,
                 enum iris_batch_name name,
                 int priority)
 {
+   struct iris_batch *batch = &ice->batches[name];
+   struct iris_screen *screen = (void *) ice->ctx.screen;
+
    batch->screen = screen;
-   batch->dbg = dbg;
-   batch->reset = reset;
-   batch->state_sizes = state_sizes;
+   batch->dbg = &ice->dbg;
+   batch->reset = &ice->reset;
+   batch->state_sizes = ice->state.sizes;
    batch->name = name;
 
    batch->hw_ctx_id = iris_create_hw_context(screen->bufmgr);
@@ -205,8 +203,8 @@ iris_init_batch(struct iris_batch *batch,
    memset(batch->other_batches, 0, sizeof(batch->other_batches));
 
    for (int i = 0, j = 0; i < IRIS_BATCH_COUNT; i++) {
-      if (&all_batches[i] != batch)
-         batch->other_batches[j++] = &all_batches[i];
+      if (i != name)
+         batch->other_batches[j++] = &ice->batches[i];
    }
 
    if (unlikely(INTEL_DEBUG)) {
diff --git a/src/gallium/drivers/iris/iris_batch.h b/src/gallium/drivers/iris/iris_batch.h
index e285f1d6cfc..0afab81c8b2 100644
--- a/src/gallium/drivers/iris/iris_batch.h
+++ b/src/gallium/drivers/iris/iris_batch.h
@@ -35,6 +35,8 @@
 
 #include "iris_fence.h"
 
+struct iris_context;
+
 /* The kernel assumes batchbuffers are smaller than 256kB. */
 #define MAX_BATCH_SIZE (256 * 1024)
 
@@ -141,12 +143,7 @@ struct iris_batch {
    uint32_t last_aux_map_state;
 };
 
-void iris_init_batch(struct iris_batch *batch,
-                     struct iris_screen *screen,
-                     struct pipe_debug_callback *dbg,
-                     struct pipe_device_reset_callback *reset,
-                     struct hash_table_u64 *state_sizes,
-                     struct iris_batch *all_batches,
+void iris_init_batch(struct iris_context *ice,
                      enum iris_batch_name name,
                      int priority);
 void iris_chain_to_new_batch(struct iris_batch *batch);
diff --git a/src/gallium/drivers/iris/iris_context.c b/src/gallium/drivers/iris/iris_context.c
index 862105b8426..4d161ac3f41 100644
--- a/src/gallium/drivers/iris/iris_context.c
+++ b/src/gallium/drivers/iris/iris_context.c
@@ -304,9 +304,7 @@ iris_create_context(struct pipe_screen *pscreen, void *priv, unsigned flags)
       ice->state.sizes = _mesa_hash_table_u64_create(ice);
 
    for (int i = 0; i < IRIS_BATCH_COUNT; i++) {
-      iris_init_batch(&ice->batches[i], screen, &ice->dbg,
-                      &ice->reset, ice->state.sizes,
-                      ice->batches, (enum iris_batch_name) i, priority);
+      iris_init_batch(ice, (enum iris_batch_name) i, priority);
    }
 
    screen->vtbl.init_render_context(&ice->batches[IRIS_BATCH_RENDER]);



More information about the mesa-commit mailing list