[Intel-gfx] [PATCH 3/3] render: tell the kernel explicitly when fences are needed

Chris Wilson chris at chris-wilson.co.uk
Sun Apr 11 17:45:56 CEST 2010


On Sun, 11 Apr 2010 15:38:24 +0200, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> diff --git a/src/i830_uxa.c b/src/i830_uxa.c
> index 589e16d..09c2ef3 100644
> --- a/src/i830_uxa.c
> +++ b/src/i830_uxa.c
> @@ -295,8 +295,8 @@ static void i830_uxa_solid(PixmapPtr pixmap, int x1, int y1, int x2, int y2)
>  		OUT_BATCH(intel->BR[13] | pitch);
>  		OUT_BATCH((y1 << 16) | (x1 & 0xffff));
>  		OUT_BATCH((y2 << 16) | (x2 & 0xffff));
> -		OUT_RELOC_PIXMAP(pixmap, I915_GEM_DOMAIN_RENDER,
> -				 I915_GEM_DOMAIN_RENDER, 0);
> +		OUT_RELOC_PIXMAP_FENCED(pixmap, I915_GEM_DOMAIN_RENDER,
> +					I915_GEM_DOMAIN_RENDER, 0);
>  		OUT_BATCH(intel->BR[16]);
>  		ADVANCE_BATCH();
>  	}

  if (!IS_I965(intel)) {
	  OUT_RELOC_PIXMAP_FENCED(pixmap,
                                  I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
                                  0);
  } else {
	  OUT_RELOC_PIXMAP(pixmap,
                           I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
                           0);
  }

> @@ -411,15 +411,15 @@ i830_uxa_copy(PixmapPtr dest, int src_x1, int src_y1, int dst_x1,
>  		OUT_BATCH(intel->BR[13] | dst_pitch);
>  		OUT_BATCH((dst_y1 << 16) | (dst_x1 & 0xffff));
>  		OUT_BATCH((dst_y2 << 16) | (dst_x2 & 0xffff));
> -		OUT_RELOC_PIXMAP(dest,
> -				 I915_GEM_DOMAIN_RENDER,
> -				 I915_GEM_DOMAIN_RENDER,
> -				 0);
> +		OUT_RELOC_PIXMAP_FENCED(dest,
> +					I915_GEM_DOMAIN_RENDER,
> +					I915_GEM_DOMAIN_RENDER,
> +					0);
>  		OUT_BATCH((src_y1 << 16) | (src_x1 & 0xffff));
>  		OUT_BATCH(src_pitch);
> -		OUT_RELOC_PIXMAP(intel->render_source,
> -				 I915_GEM_DOMAIN_RENDER, 0,
> -				 0);
> +		OUT_RELOC_PIXMAP_FENCED(intel->render_source,
> +					I915_GEM_DOMAIN_RENDER, 0,
> +					0);
And the same here.
-ickle

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list