[Intel-gfx] [PATCH] drm/i915: Engine relative MMIO

Chris Wilson chris at chris-wilson.co.uk
Fri Feb 22 23:57:01 UTC 2019


Quoting John.C.Harrison at Intel.com (2019-02-22 23:49:18)
> From: John Harrison <John.C.Harrison at Intel.com>
> 
> With virtual engines, it is no longer possible to know which specific
> physical engine a given request will be executed on at the time that
> request is generated. This means that the request itself must be engine
> agnostic - any direct register writes must be relative to the engine
> and not absolute addresses.
> 
> The LRI command has support for engine relative addressing. However,
> the mechanism is not transparent to the driver. The scheme for Gen11
> (MI_LRI_ADD_CS_MMIO_START) requires the LRI address to have no
> absolute engine base component. The hardware then adds on the correct
> engine offset at execution time.
> 
> Due to the non-trivial and differing schemes on different hardware, it
> is not possible to simply update the code that creates the LRI
> commands to set a remap flag and let the hardware get on with it.
> Instead, this patch adds function wrappers for generating the LRI
> command itself and then for constructing the correct address to use
> with the LRI.

But the flags isn't compulsory? So why so many changes to unaffected
code?
-Chris


More information about the Intel-gfx mailing list