[Intel-gfx] [PATCH] drm/i915: Relinquish any fence when changing cache levels

Eric Anholt eric at anholt.net
Wed Apr 13 18:36:08 CEST 2011


On Wed, 13 Apr 2011 13:25:40 +0100, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> This is vital to maintain our contract with the hw for not using fences
> on snooped memory for older chipsets. It should have no impact
> other than clearing the fence register (and updating the fence
> bookkeeping) as any future IO access (page faults or pwrite/pread) will
> go through the cached CPU domain for older chipsets. On SandyBridge, we
> incur an extra get_fence() on the rare path that we need to perform
> detiling through a pagefault (i.e. texture transfers).

Surely you could just update this to do that for the hardware that
requires it.  With a comment so someone doesn't delete it later :)

> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/i915_gem.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 6ca026d..2d16a23 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -3355,6 +3355,10 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
>  		if (ret)
>  			return ret;
>  
> +		ret = i915_gem_object_put_fence(obj);
> +		if (ret)
> +			return ret;
> +
>  		ret = i915_gem_gtt_bind_object(obj, cache_level);
>  		if (ret)
>  			return ret;
> -- 
> 1.7.4.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20110413/bec52310/attachment.sig>


More information about the Intel-gfx mailing list