iris: Drop 'engine' from iris_batch.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 3 Sep 2019 14:19:32 +0000 (07:19 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jan 2020 19:53:22 +0000 (19:53 +0000)
For the moment, everything is I915_EXEC_RENDER, so this isn't necessary.
But even should that change, I don't think we want to handle multiple
engines in this manner.

Nowadays, we have batch->name (IRIS_BATCH_RENDER, IRIS_BATCH_COMPUTE,
possibly an IRIS_BATCH_BLIT for blorp batches someday), which describes
the functional usage of the batch.  We can simply check that and select
an engine for that class of work (assuming there ever is more than one).

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3613>

src/gallium/drivers/iris/iris_batch.c
src/gallium/drivers/iris/iris_batch.h
src/gallium/drivers/iris/iris_context.c

index a44715a9458b6a02de86cd81e7dab5ddb88e161e..2b5c62d4277343f8f42316f411e601c259f9700a 100644 (file)
@@ -181,7 +181,6 @@ iris_init_batch(struct iris_batch *batch,
                 struct hash_table_u64 *state_sizes,
                 struct iris_batch *all_batches,
                 enum iris_batch_name name,
-                uint8_t engine,
                 int priority)
 {
    batch->screen = screen;
@@ -191,11 +190,6 @@ iris_init_batch(struct iris_batch *batch,
    batch->state_sizes = state_sizes;
    batch->name = name;
 
-   /* engine should be one of I915_EXEC_RENDER, I915_EXEC_BLT, etc. */
-   assert((engine & ~I915_EXEC_RING_MASK) == 0);
-   assert(util_bitcount(engine) == 1);
-   batch->engine = engine;
-
    batch->hw_ctx_id = iris_create_hw_context(screen->bufmgr);
    assert(batch->hw_ctx_id);
 
@@ -587,7 +581,7 @@ submit_batch(struct iris_batch *batch)
       .batch_start_offset = 0,
       /* This must be QWord aligned. */
       .batch_len = ALIGN(batch->primary_batch_size, 8),
-      .flags = batch->engine |
+      .flags = I915_EXEC_RENDER |
                I915_EXEC_NO_RELOC |
                I915_EXEC_BATCH_FIRST |
                I915_EXEC_HANDLE_LUT,
index aaa425f5736417a022ba6f3e108f96ed815e204a..3912541c6ddc65c8315552493ee7fe8c6e41d46e 100644 (file)
@@ -75,9 +75,6 @@ struct iris_batch {
 
    uint32_t hw_ctx_id;
 
-   /** Which engine this batch targets - a I915_EXEC_RING_MASK value */
-   uint8_t engine;
-
    /** The validation list */
    struct drm_i915_gem_exec_object2 *validation_list;
    struct iris_bo **exec_bos;
@@ -138,7 +135,6 @@ void iris_init_batch(struct iris_batch *batch,
                      struct hash_table_u64 *state_sizes,
                      struct iris_batch *all_batches,
                      enum iris_batch_name name,
-                     uint8_t ring,
                      int priority);
 void iris_chain_to_new_batch(struct iris_batch *batch);
 void iris_batch_free(struct iris_batch *batch);
index b95ef707bf5fcba3b9efb9a3027e9672c79a1df2..e7b3a06a315eee689a21a647ee59472599b53b38 100644 (file)
@@ -307,8 +307,7 @@ iris_create_context(struct pipe_screen *pscreen, void *priv, unsigned flags)
    for (int i = 0; i < IRIS_BATCH_COUNT; i++) {
       iris_init_batch(&ice->batches[i], screen, &ice->vtbl, &ice->dbg,
                       &ice->reset, ice->state.sizes,
-                      ice->batches, (enum iris_batch_name) i,
-                      I915_EXEC_RENDER, priority);
+                      ice->batches, (enum iris_batch_name) i, priority);
    }
 
    ice->vtbl.init_render_context(&ice->batches[IRIS_BATCH_RENDER]);