[Intel-gfx] ctx->engines[rcs0, rcs0]

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 25 09:03:51 UTC 2019


The headline change is the wholehearted decision to allow the user to
establish an ctx->engines mapping of [rcs0, rcs0] to mean two logically
distinct pipelines to the same engine. An example of this use case is in
iris which constructs two GEM contexts in order to have two distinct
logical ccontexts to create both a render pipeline and a compute pipeline
within the same GL context. As it it the same GL context, it should be
a singular timeline and benefits from a shared ppgtt; a natural way of
constructing a GEM counterpart to this composite GL context is with an
engine map of [rcs0, rcs0] and single timeline.

One corollary to this is that given an ctx->engines[], we cannot assume
that (engine_class, engine_instance) is enough to adequately identify a
unique logical context. I propose that given user ctx->engines[], we
force all subsequent user engine lookups to use indices. Thoughts?
-Chris




More information about the Intel-gfx mailing list