[Intel-gfx] [PATCH v2] drm/i915: set initialised only when init_context callback is NULL

Dong, Chuanxiao chuanxiao.dong at intel.com
Fri May 12 11:15:04 UTC 2017


Thanks Chris! Have a nice weekend. :)

> -----Original Message-----
> From: Chris Wilson [mailto:chris at chris-wilson.co.uk]
> Sent: Friday, May 12, 2017 6:12 PM
> To: intel-gfx at lists.freedesktop.org
> Cc: Dong, Chuanxiao <chuanxiao.dong at intel.com>; Chris Wilson
> <chris at chris-wilson.co.uk>
> Subject: [PATCH v2] drm/i915: set initialised only when init_context callback
> is NULL
> 
> From: Chuanxiao Dong <chuanxiao.dong at intel.com>
> 
> During execlist_context_deferred_alloc() we presumed that the context is
> uninitialised (we only just allocated the state object for it!) and chose to
> optimise away the later call to engine->init_context() if
> engine->init_context were NULL. This breaks with GVT's contexts that are
> marked as pre-initialised to avoid us annoyingly calling
> engine->init_context(). The fix is to not override ce->initialised if it
> is already true.
> 
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Chuanxiao Dong <chuanxiao.dong at intel.com>
> Link: http://patchwork.freedesktop.org/patch/msgid/1494497262-24855-1-
> git-send-email-chuanxiao.dong at intel.com
> Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/intel_lrc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c
> b/drivers/gpu/drm/i915/intel_lrc.c
> index 319d9a8f37ca..9a1192d61538 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1956,7 +1956,7 @@ static int execlists_context_deferred_alloc(struct
> i915_gem_context *ctx,
> 
>  	ce->ring = ring;
>  	ce->state = vma;
> -	ce->initialised = engine->init_context == NULL;
> +	ce->initialised |= engine->init_context == NULL;
> 
>  	return 0;
> 
> --
> 2.11.0



More information about the Intel-gfx mailing list