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