[Intel-gfx] [PATCH] drm/i915/userptr: Don't mark readonly objects as dirty
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Tue Jul 9 08:44:48 UTC 2019
On 09/07/2019 09:17, Chris Wilson wrote:
> If we map an object as readonly into the GTT, we know that the GPU
> cannot have written to it and so the object is not dirty and we don't
> need to flush the writes back to the system.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
> drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
> index 32d208ede343..b9d2bb15e4a6 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c
> @@ -663,6 +663,14 @@ i915_gem_userptr_put_pages(struct drm_i915_gem_object *obj,
> __i915_gem_object_release_shmem(obj, pages, true);
> i915_gem_gtt_finish_pages(obj, pages);
>
> + /*
> + * We always mark objects as dirty when they are used by the GPU,
> + * just in case. However, if we set the vma as being read-only we know
> + * that the object will never have been written to.
> + */
> + if (i915_gem_object_is_readonly(obj))
> + obj->mm.dirty = false;
> +
> for_each_sgt_page(page, sgt_iter, pages) {
> if (obj->mm.dirty)
> /*
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list