public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [.30-rc2 regression] garbled screen on video
@ 2009-04-24  0:52 Justin Madru
  2009-04-28 18:18 ` Eric Anholt
  0 siblings, 1 reply; 4+ messages in thread
From: Justin Madru @ 2009-04-24  0:52 UTC (permalink / raw)
  To: lkml, Eric Anholt, Jesse Barnes

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.

Bisecting gave me the following (verified) commit

280b713b5b0fd84cf2469098aee88acbb5de859c is first bad commit
commit 280b713b5b0fd84cf2469098aee88acbb5de859c
Author: Eric Anholt <eric@anholt.net>
Date:   Thu Mar 12 16:56:27 2009 -0700

    drm/i915: Allow tiling of objects with bit 17 swizzling by the CPU.

    Save the bit 17 state of the pages when freeing the page list, and
    reswizzle them if necessary when rebinding the pages (in case they were
    swapped out).  Since we have userland with expectations that the swizzle
    enums let it pread and pwrite contents accurately, we can't expose a new
    swizzle enum for bit 17 (which it would have to GTT map to handle), 
so we
    handle it down in pread and pwrite by swizzling the copy when bit 17 
of the
    page address is set.

    Signed-off-by: Eric Anholt <eric@anholt.net>

:040000 040000 32f68f62b336326cee85e22f068d4410197994ef 
e820ef2a2fd3f9133960f390f27c79caa5ec83d2 M      drivers
:040000 040000 573ade35bd21d9c37c43f470d8ab718f728ef101 
32642903c265079acfa20b71d4ec2ee427a70c3a M      include

Justin Madru

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [.30-rc2 regression] garbled screen on video
  2009-04-24  0:52 [.30-rc2 regression] garbled screen on video Justin Madru
@ 2009-04-28 18:18 ` Eric Anholt
  2009-04-29  5:19   ` Justin Madru
  2009-05-05 19:54   ` Justin Madru
  0 siblings, 2 replies; 4+ messages in thread
From: Eric Anholt @ 2009-04-28 18:18 UTC (permalink / raw)
  To: Justin Madru; +Cc: lkml, Jesse Barnes

[-- Attachment #1: Type: text/plain, Size: 2784 bytes --]

On Thu, 2009-04-23 at 17:52 -0700, Justin Madru wrote:
> 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).

-- 
Eric Anholt
eric@anholt.net                         eric.anholt@intel.com



[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [.30-rc2 regression] garbled screen on video
  2009-04-28 18:18 ` Eric Anholt
@ 2009-04-29  5:19   ` Justin Madru
  2009-05-05 19:54   ` Justin Madru
  1 sibling, 0 replies; 4+ messages in thread
From: Justin Madru @ 2009-04-29  5:19 UTC (permalink / raw)
  To: Eric Anholt; +Cc: lkml, Jesse Barnes

Eric Anholt wrote:
> On Thu, 2009-04-23 at 17:52 -0700, Justin Madru wrote:
>   
>> 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.
>
>   
I had UXA enabled when I get the screen corruption. And kernels before 
2.6.30-rc2
don't have the screen corruption. Ubuntu 9.4 has intel 2.6.3 driver I think.

> 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).
>
>   
So do I apply your patch with the current revert still inplace?

And where do I find the reg_dumper, dcc printk and the mesa readpix demo?

Justin Madru

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [.30-rc2 regression] garbled screen on video
  2009-04-28 18:18 ` Eric Anholt
  2009-04-29  5:19   ` Justin Madru
@ 2009-05-05 19:54   ` Justin Madru
  1 sibling, 0 replies; 4+ messages in thread
From: Justin Madru @ 2009-05-05 19:54 UTC (permalink / raw)
  To: Eric Anholt; +Cc: lkml, Jesse Barnes

Eric Anholt wrote:
> On Thu, 2009-04-23 at 17:52 -0700, Justin Madru wrote:
>   
>> 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).
>
>   
Ok, I did some testing and found the following:

No screen freezing
    EXA
    UXA + bisected commit
    UXA + intel 2.7.99
Screen freezing
    UXA + intel 2.6/2.7
    UXA + patch

So, your patch didn't fix the problem, actually it reintroduced it.


I'm also experiencing a major memory leek whenever I enable UXA.
It doesn't seem to matter if the kernel is 2.6.28 or 2.6.30-rc,
it also doesn't matter if the intel driver is version 2.6, 2.7 or 2.7.99.
After about 3-4 hours I have to restart the xserver because of major 
swap usage.
The two proccesses that are eating memory are Xorg and Compiz.

Do you think this is a kernel or userspace issue?

Justin Madru



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-05-05 19:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-24  0:52 [.30-rc2 regression] garbled screen on video Justin Madru
2009-04-28 18:18 ` Eric Anholt
2009-04-29  5:19   ` Justin Madru
2009-05-05 19:54   ` Justin Madru

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox