[PATCH 39/46] drm/i915: Force parallel contexts to use copy engine for reloc
Daniel Vetter
daniel at ffwll.ch
Mon Aug 9 16:39:52 UTC 2021
On Tue, Aug 03, 2021 at 03:29:36PM -0700, Matthew Brost wrote:
> Submitting to a subset of hardware contexts is not allowed, so use the
> copy engine for GPU relocations when using a parallel context.
>
> Signed-off-by: Matthew Brost <matthew.brost at intel.com>
Luckily I just pushed the patches to delete all this, so you can too.
-Daniel
> ---
> drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> index b224b28530d1..b6143973ac67 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
> @@ -1386,7 +1386,8 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
> if (err)
> goto err_unmap;
>
> - if (engine == eb->context->engine) {
> + if (engine == eb->context->engine &&
> + !intel_context_is_parallel(eb->context)) {
> rq = i915_request_create(eb->context);
> } else {
> struct intel_context *ce = eb->reloc_context;
> @@ -1483,7 +1484,8 @@ static u32 *reloc_gpu(struct i915_execbuffer *eb,
> if (eb_use_cmdparser(eb))
> return ERR_PTR(-EWOULDBLOCK);
>
> - if (!reloc_can_use_engine(engine)) {
> + if (!reloc_can_use_engine(engine) ||
> + intel_context_is_parallel(eb->context)) {
> engine = engine->gt->engine_class[COPY_ENGINE_CLASS][0];
> if (!engine)
> return ERR_PTR(-ENODEV);
> --
> 2.28.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list