Mesa (main): iris/batch: Move kernel context init to iris_init_non_engine_contexts

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Dec 3 01:14:03 UTC 2021


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

Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Tue Aug 31 12:38:42 2021 -0700

iris/batch: Move kernel context init to iris_init_non_engine_contexts

Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12692>

---

 src/gallium/drivers/iris/iris_batch.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_batch.c b/src/gallium/drivers/iris/iris_batch.c
index 58149e08b08..66651068974 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -175,8 +175,7 @@ decode_batch(struct iris_batch *batch)
 
 static void
 iris_init_batch(struct iris_context *ice,
-                enum iris_batch_name name,
-                int priority)
+                enum iris_batch_name name)
 {
    struct iris_batch *batch = &ice->batches[name];
    struct iris_screen *screen = (void *) ice->ctx.screen;
@@ -194,11 +193,6 @@ iris_init_batch(struct iris_context *ice,
                       PIPE_USAGE_STAGING, 0);
    iris_fine_fence_init(batch);
 
-   batch->hw_ctx_id = iris_create_hw_context(screen->bufmgr);
-   assert(batch->hw_ctx_id);
-
-   iris_hw_context_set_priority(screen->bufmgr, batch->hw_ctx_id, priority);
-
    util_dynarray_init(&batch->exec_fences, ralloc_context(NULL));
    util_dynarray_init(&batch->syncobjs, ralloc_context(NULL));
 
@@ -240,14 +234,27 @@ iris_init_batch(struct iris_context *ice,
    iris_batch_reset(batch);
 }
 
-void
-iris_init_batches(struct iris_context *ice, int priority)
+static void
+iris_init_non_engine_contexts(struct iris_context *ice, int priority)
 {
+   struct iris_screen *screen = (void *) ice->ctx.screen;
+
    for (int i = 0; i < IRIS_BATCH_COUNT; i++) {
-      iris_init_batch(ice, (enum iris_batch_name) i, priority);
+      struct iris_batch *batch = &ice->batches[i];
+      batch->hw_ctx_id = iris_create_hw_context(screen->bufmgr);
+      assert(batch->hw_ctx_id);
+      iris_hw_context_set_priority(screen->bufmgr, batch->hw_ctx_id, priority);
    }
 }
 
+void
+iris_init_batches(struct iris_context *ice, int priority)
+{
+   iris_init_non_engine_contexts(ice, priority);
+   for (int i = 0; i < IRIS_BATCH_COUNT; i++)
+      iris_init_batch(ice, (enum iris_batch_name) i);
+}
+
 static int
 find_exec_index(struct iris_batch *batch, struct iris_bo *bo)
 {



More information about the mesa-commit mailing list