Re: [BUG] drm/i915 Screen corruption introduced by a00b10c360b35d6431a94cb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Indan,

Please provide the usual details about your system (especially what gpu
this is on). Also, screenshots of what typical corruptions look like can
help a lot in tracking down such things.

I've created two quick patches to check a few theories, please test them
(both patches independently and both together). Patches attached.

Yours, Daniel

On Sat, Feb 19, 2011 at 06:58:06AM +0100, Indan Zupancic wrote:
> Hello,
> 
> Since 2.6.38-rc I get screen corruption (mostly horizontal grabage stripes on
> the right side of the screen). After a long time bisecting the offending commit
> ends up being:
> 
> commit a00b10c360b35d6431a94cbf130a4e162870d661
> Author: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> Date:   Fri Sep 24 21:15:47 2010 +0100
> 
>     drm/i915: Only enforce fence limits inside the GTT.
> 
>     So long as we adhere to the fence registers rules for alignment and no
>     overlaps (including with unfenced accesses to linear memory) and account
>     for the tiled access in our size allocation, we do not have to allocate
>     the full fenced region for the object. This allows us to fight the bloat
>     tiling imposed on pre-i965 chipsets and frees up RAM for real use. [Inside
>     the GTT we still suffer the additional alignment constraints, so it doesn't
>     magic allow us to render larger scenes without stalls -- we need the
>     expanded GTT and fence pipelining to overcome those...]
> 
>     Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
> 
> This commit caused other problems too, which Daniel tried to fix with commits:
> 
> 5e78330126e23e00950 drm/i915: fix relaxed tiling for gen <= 3 && !g33
> 75e9e9158f38e5cb21e drm/i915: kill mappable/fenceable disdinction
> 818f2a3cc34b0673dcc drm/i915: revert pageflip/mappable related abi breakage
> 
> But those don't fix my screen corruption.
> 
> Unfortunately, it's a big commit and it doesn't revert cleanly, and its size
> makes it unclear what the source of the problem is. Daniel's commits don't
> revert cleanly either, so reverting all of them didn't work.
> 
> I'll start poking at it and see if I can find anything.
> 
> Greetings,
> 
> Indan
> 
> 

-- 
Daniel Vetter
Mail: daniel@xxxxxxxx
Mobile: +41 (0)79 365 57 48
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index cf4f74c..2e6b532 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1404,6 +1404,8 @@ i915_gem_get_unfenced_gtt_alignment(struct drm_i915_gem_object *obj)
 	struct drm_device *dev = obj->base.dev;
 	int tile_height;
 
+	return i915_gem_get_gtt_alignment(obj);
+
 	/*
 	 * Minimum alignment is 4k (GTT page size) for sane hw.
 	 */
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 17bd766..fbc21e3 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -763,7 +763,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
 		value = HAS_BLT(dev);
 		break;
 	case I915_PARAM_HAS_RELAXED_FENCING:
-		value = 1;
+		value = 0;
 		break;
 	case I915_PARAM_HAS_COHERENT_RINGS:
 		value = 1;
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux