[Intel-gfx] [PATCH 1/1] drm/i915/gtt: Mark newly created ppgtt dirty

Michel Thierry michel.thierry at intel.com
Tue Sep 8 09:31:05 PDT 2015


On 9/8/2015 5:20 PM, Mika Kuoppala wrote:
> We mark ppgtt dirty when vm area grows. As one needs
> to allocate atleast one batchbuffer object before running
> anything in vm space, this was considered adequate. However in
> init, we run batch which doesn't need to allocate anything. This
> is the render state initialization batch, part of context init.
> Newly created ppgtt is not marked dirty as no allocations for it
> are done. This results bb emission skip the pdps writing to hw,
> and we start the batch with uninitialized (zero) pdp registers
> causing gpu hangs early in the init.

That's true, although I was under the impression that the render state 
batch was executed in the ggtt.
>
> Always mark newly created ppgtts dirty to ensure that pdps are
> pushed before first bb.
>
> Cc: Michel Thierry <michel.thierry at intel.com>
> Cc: Arun Siluvery <arun.siluvery at linux.intel.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Imre Deak <imre.deak at intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala at intel.com>
> ---
>   drivers/gpu/drm/i915/i915_gem_gtt.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 8786281..41dcfca 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2134,6 +2134,8 @@ int i915_ppgtt_init(struct drm_device *dev, struct i915_hw_ppgtt *ppgtt)
>   		i915_init_vm(dev_priv, &ppgtt->base);
>   	}
>
> +	mark_tlbs_dirty(ppgtt);
> +

Does this also apply for gen7? (or should only be in gen8_ppgtt_init).
>   	return ret;
>   }
>
>


More information about the Intel-gfx mailing list