On Thu, 2009-04-23 at 17:52 -0700, Justin Madru wrote:Ok, I did some testing and found the following:
Hi everyone,
Summary:
After playing a video for a little bit, the screen gets garbled. The only way to fix it is to
switch to a virtual console and then back. The screen is fixed but unfortunately only for
less than a few minuets and the screen gets corrupted again.
Effected Version: 2.6.30-rc2+
Picture showing a corrupt screen: http://ecs.fullerton.edu/~cs351a15/badscreen.jpg
My System:
Ubuntu 9.4 with 943/940GML Express Integrated Graphics Controller [8086:27a2]
UXA/GEM/DRI2 enable. Full info at http://jdserver.homelinux.org/bugreports/004/
Syslog Messages:
None, but switching virtual consoles gives
[drm:i915_get_vblank_counter] *ERROR* trying to get vblank count for disabled pipe 0
But I think that is another bug introduced with .30-rc1.
Interesting. Could you open a bug at bugs.freedesktop.org against xorg,
driver/intel, to be sure this doesn't get lost?
However, I suspect that the commit in question isn't causing your issue,
but is just when tiling got reenabled on your platform so you got to see
other (likely userland) bugs. To test, you could revert the patch you
bisected to and just apply one of the hunks with a little tweak:
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 6be3f92..f27e523 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -127,8 +129,8 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
swizzle_y = I915_BIT_6_SWIZZLE_9_11;
} else {
/* Bit 17 swizzling by the CPU in addition. */
- swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN;
- swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN;
+ swizzle_x = I915_BIT_6_SWIZZLE_9_10;
+ swizzle_y = I915_BIT_6_SWIZZLE_9;
}
break;
}
You'll get typical swizzling corruption if any tiled buffers get swapped
out, but that shouldn't happen because Ubuntu 9.04 is stuck with DRI1 so
all tiled buffers are pinned. Note that DRI1 with compiz has many
graphical corruption and stability issues that are fixed with DRI2, but
I'm not sure that what you're seeing is one of those.
If that patch doesn't make things work, then to fix a giant pile of
userland bugs that might account for it, update to the 2.7.0 2D driver
and enable UXA, which will get you DRI2.
If the revert + small diff fixes things, I'm interested in seeing the
output of either reg_dumper from a compile of the 2D driver or a printk
of dcc in that function, combined with a screenshot of mesa's readpix
demo, on master (no reverts or anything).