On Tue, 22 Mar 2011 13:51:58 +0000, Chris Wilson <ch...@chris-wilson.co.uk> 
wrote:
> Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>

Again, needs more justification.  For example, I would expect us not to
bother with the GTT on SNB pread/pwrite, and just read the backing pages
(they're in our cache, no need to clflush or anything) like we already
have code to do.  And one note below.

> @@ -587,17 +727,41 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
>  
>       trace_i915_gem_object_pread(obj, args->offset, args->size);
>  
> -     ret = i915_gem_object_set_cpu_read_domain_range(obj,
> -                                                     args->offset,
> -                                                     args->size);
> -     if (ret)
> -             goto out;
> +     if (obj->gtt_space &&
> +         obj->map_and_fenceable &&
> +         obj->cache_level == I915_CACHE_NONE &&
> +         (obj->base.read_domains & I915_GEM_DOMAIN_CPU) == 0) {
> +             ret = i915_gem_object_pin(obj, 0, true);
> +             if (ret)
> +                     goto out;
> +
> +             ret = i915_gem_object_set_to_gtt_domain(obj, false);
> +             if (ret)
> +                     goto out_unpin;

So, previously if I pread a tiled object, I got the tiled data.  Now
you're giving me maybe the tiled data, maybe the data untiled by reading
through a fence.

Attachment: pgplzeR9Z0FGM.pgp
Description: PGP signature

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to