* [.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