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>
struct hash_table_u64 *state_sizes,
struct iris_batch *all_batches,
enum iris_batch_name name,
- uint8_t engine,
int priority)
{
batch->screen = screen;
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);
.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,
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;
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);
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]);