Radeon 9000 Pro corruption problem on PPC when DRI is enabled
Ari Entlich
lmage11 at twcny.rr.com
Sat Aug 19 23:48:16 PDT 2006
On Sun, 2006-08-20 at 02:44 +0200, Roland Scheidegger wrote:
> Ari Entlich wrote:
> > Hello,
> >
> > I am writing to ask about a video corruption problem I've been trying to
> > sort out. The problem arose after I upgraded to X.Org 7.1 from X.Org
> > 6.8.2, which didn't have this problem. It only arises when DRI is
> > enabled - changing anything to make DRI not start produces correct
> > output. I used gentoo's ppc Xorg autoconfig utility (Xorgautoconfig) to
> > generate my configuration, which can be found at
> > http://home.twcny.rr.com/fandaswebsite/xorg.conf. The only change I made
> > to that configuration was to enable UseFBDev, because my monitor acts
> > like it's not getting a signal otherwise, for some reason. I do not
> > think this is a monitor issue however because, as you might or might not
> > be able to see in the pictures, the cursor is unaffected. One thing
> > which I noticed was that changing the bit depth changes how the
> > corruption looks. Log files with DRI both on and off at bit depth 16
> > (there are no significant differences between the 16 bit and 24 bit log
> > files) can be found at
> > http://home.twcny.rr.com/fandaswebsite/xorg_log_16 and
> > http://home.twcny.rr.com/fandaswebsite/xorg_log_no_dri_16. The pictures
> > for 16 and 24 bit depths can be found at
> > http://home.twcny.rr.com/fandaswebsite/bitdepth_16.jpg and
> > http://home.twcny.rr.com/fandaswebsite/bitdepth_24.jpg (sorry about the
> > low image quality - they were taken with a digital camcorder...).
> Could be some pitch problem. You mentioned you used UseFBDev, you didn't
> use that with Xorg 6.8.2?
I'm pretty sure I did use it in 6.8.2, actually.
> I'm not sure where the requirements for pitch are exactly coming from
> (except when you use color tiling, which you can't due to the same
> UseFBDev option), but maybe alignment is wrong somewhere when you're
> using the cp accel path instead of mmio (which is what you get without
> dri). Alex might know more about this.
> You might try to get rid of that (imho ugly and utterly useless - well
> the idea is sound the implementation is not because way too limited)
> UseFBDev option, that might fix things. Maybe you need to specify a
> different modeline, I guess there was nothing in the log which indicated
> anything wrong when UseFBDev was not used?
Here's a diff between the UseFBDev true and UseFBDev false log files
(dri off, bit depth 16):
--- xorg_fbdev_on 2006-08-20 00:03:33.000000000 -0400
+++ Xorg.0.log 2006-08-20 00:11:12.000000000 -0400
@@ -11,7 +11,7 @@
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 20 00:03:15 2006
+(==) Log file: "/var/log/Xorg.0.log", Time: Sun Aug 20 00:11:06 2006
(==) Using config file: "/etc/X11/xorg.conf"
(==) ServerLayout "X.Org Configured"
(**) |-->Screen "Screen0" (0)
@@ -427,24 +427,17 @@
(II) RADEON(0): Pixel depth = 16 bits stored in 2 bytes (16 bpp pixmaps)
(==) RADEON(0): Default visual is TrueColor
(**) RADEON(0): Option "EnablePageFlip" "true"
-(**) RADEON(0): Option "UseFBDev" "true"
(II) RADEON(0): VGAAccess option set to FALSE, VGA module load skipped
(==) RADEON(0): RGB weight 565
(II) RADEON(0): Using 6 bits per RGB (8 bit DAC)
(==) RADEON(0): X server will not keep DPI constant for all screen sizes
-(II) Loading sub module "fbdevhw"
-(II) LoadModule: "fbdevhw"
-(II) Loading /usr/lib/xorg/modules/linux/libfbdevhw.so
-(II) Module fbdevhw: vendor="X.Org Foundation"
- compiled for 7.1.1, module version = 0.0.2
- ABI class: X.Org Video Driver, version 1.0
-(**) RADEON(0): Using framebuffer device
(--) RADEON(0): Chipset: "ATI Radeon 9000/PRO If (AGP/PCI)" (ChipID = 0x4966)
(--) RADEON(0): Linear framebuffer at 0x98000000
(--) RADEON(0): BIOS at 0xf1000000
(II) RADEON(0): AGP card detected
+(II) RADEON(0): Detected total video RAM=65536K, accessible=65536K (PCI BAR=131072K)
(--) RADEON(0): Mapped VideoRAM: 65536 kByte (128 bit DDR SDRAM)
-(WW) RADEON(0): Color tiling not supported with UseFBDev option
+(II) RADEON(0): Color tiling enabled by default
(II) Loading sub module "ddc"
(II) LoadModule: "ddc"
(II) Loading /usr/lib/xorg/modules/libddc.so
@@ -475,40 +468,55 @@
TMDS Type -- External
DDC Type -- NONE
(II) RADEON(0): PLL parameters: rf=0 rd=12 min=0 max=2097152; xclk=0
-(EE) RADEON(0): MergedFB does not work with Option UseFBDev, MergedFB mode is disabled
+(WW) RADEON(0): Failed to detect secondary monitor, MergedFB/Clone mode disabled
(==) RADEON(0): Using gamma correction (1.0, 1.0, 1.0)
(II) RADEON(0): Validating modes on Primary head ---------
(II) RADEON(0): Monitor0: Using hsync range of 30.00-85.00 kHz
(II) RADEON(0): Monitor0: Using vrefresh range of 48.00-160.00 Hz
(II) RADEON(0): Maximum clock: 20971.52 MHz
+(II) RADEON(0): Not using default mode "512x384" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "512x384" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "512x384" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "512x384" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "576x432" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "640x480" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1280x960" (hsync out of range)
-(II) RADEON(0): Not using default mode "640x480" (hsync out of range)
+(II) RADEON(0): Not using default mode "640x480" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "640x512" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "640x512" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1280x1024" (hsync out of range)
-(II) RADEON(0): Not using default mode "640x512" (hsync out of range)
+(II) RADEON(0): Not using default mode "640x512" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "800x600" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "800x600" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1600x1200" (hsync out of range)
-(II) RADEON(0): Not using default mode "800x600" (hsync out of range)
+(II) RADEON(0): Not using default mode "800x600" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1600x1200" (hsync out of range)
-(II) RADEON(0): Not using default mode "800x600" (hsync out of range)
+(II) RADEON(0): Not using default mode "800x600" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1600x1200" (hsync out of range)
-(II) RADEON(0): Not using default mode "800x600" (hsync out of range)
+(II) RADEON(0): Not using default mode "800x600" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "896x672" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1792x1344" (hsync out of range)
-(II) RADEON(0): Not using default mode "896x672" (hsync out of range)
+(II) RADEON(0): Not using default mode "896x672" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1856x1392" (hsync out of range)
-(II) RADEON(0): Not using default mode "928x696" (hsync out of range)
+(II) RADEON(0): Not using default mode "928x696" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1856x1392" (hsync out of range)
-(II) RADEON(0): Not using default mode "928x696" (hsync out of range)
+(II) RADEON(0): Not using default mode "928x696" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1920x1440" (hsync out of range)
-(II) RADEON(0): Not using default mode "960x720" (hsync out of range)
+(II) RADEON(0): Not using default mode "960x720" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1920x1440" (hsync out of range)
-(II) RADEON(0): Not using default mode "960x720" (hsync out of range)
+(II) RADEON(0): Not using default mode "960x720" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "576x384" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "700x525" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "700x525" (bad mode clock/interlace/doublescan)
+(II) RADEON(0): Not using default mode "800x512" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1920x1440" (hsync out of range)
-(II) RADEON(0): Not using default mode "960x720" (hsync out of range)
+(II) RADEON(0): Not using default mode "960x720" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "2048x1536" (hsync out of range)
-(II) RADEON(0): Not using default mode "1024x768" (hsync out of range)
+(II) RADEON(0): Not using default mode "1024x768" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "2048x1536" (hsync out of range)
-(II) RADEON(0): Not using default mode "1024x768" (hsync out of range)
+(II) RADEON(0): Not using default mode "1024x768" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "2048x1536" (hsync out of range)
-(II) RADEON(0): Not using default mode "1024x768" (hsync out of range)
+(II) RADEON(0): Not using default mode "1024x768" (bad mode clock/interlace/doublescan)
(II) RADEON(0): Not using default mode "1792x1344" (width too large for virtual size)
(II) RADEON(0): Not using default mode "1600x1200" (width too large for virtual size)
(II) RADEON(0): Not using default mode "1600x1200" (width too large for virtual size)
@@ -524,8 +532,7 @@
(II) RADEON(0): Not using default mode "1024x768" (width too large for virtual size)
(II) RADEON(0): Not using default mode "1024x768" (width too large for virtual size)
(II) RADEON(0): Not using default mode "1024x768" (width too large for virtual size)
-(II) RADEON(0): Not using default mode "896x672" (width too large for virtual size)
-(--) RADEON(0): Virtual size is 832x624 (pitch 832)
+(--) RADEON(0): Virtual size is 832x624 (pitch 896)
(**) RADEON(0): *Mode "832x624": 57.3 MHz, 49.7 kHz, 74.5 Hz
(II) RADEON(0): Modeline "832x624" 57.28 832 864 928 1152 624 626 629 667 -hsync -vsync
(**) RADEON(0): Default mode "800x600": 56.3 MHz, 53.7 kHz, 85.1 Hz
@@ -534,22 +541,10 @@
(II) RADEON(0): Modeline "800x600" 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync
(**) RADEON(0): Default mode "800x600": 50.0 MHz, 48.1 kHz, 72.2 Hz
(II) RADEON(0): Modeline "800x600" 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync
-(**) RADEON(0): Default mode "800x600": 87.8 MHz, 81.2 kHz, 65.0 Hz (D)
-(II) RADEON(0): Modeline "800x600" 87.75 800 832 928 1080 600 600 602 625 doublescan +hsync +vsync
(**) RADEON(0): Default mode "800x600": 40.0 MHz, 37.9 kHz, 60.3 Hz
(II) RADEON(0): Modeline "800x600" 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync
-(**) RADEON(0): Default mode "800x600": 81.0 MHz, 75.0 kHz, 60.0 Hz (D)
-(II) RADEON(0): Modeline "800x600" 81.00 800 832 928 1080 600 600 602 625 doublescan +hsync +vsync
(**) RADEON(0): Default mode "800x600": 36.0 MHz, 35.2 kHz, 56.2 Hz
(II) RADEON(0): Modeline "800x600" 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync
-(**) RADEON(0): Default mode "700x525": 77.9 MHz, 81.5 kHz, 74.8 Hz (D)
-(II) RADEON(0): Modeline "700x525" 77.90 700 732 892 956 525 526 532 545 doublescan +hsync +vsync
-(**) RADEON(0): Default mode "700x525": 61.0 MHz, 64.9 kHz, 60.0 Hz (D)
-(II) RADEON(0): Modeline "700x525" 61.00 700 744 820 940 525 526 532 541 doublescan +hsync +vsync
-(**) RADEON(0): Default mode "640x512": 67.5 MHz, 80.0 kHz, 75.0 Hz (D)
-(II) RADEON(0): Modeline "640x512" 67.50 640 648 720 844 512 512 514 533 doublescan +hsync +vsync
-(**) RADEON(0): Default mode "640x512": 54.0 MHz, 64.0 kHz, 60.0 Hz (D)
-(II) RADEON(0): Modeline "640x512" 54.00 640 664 720 844 512 512 514 533 doublescan +hsync +vsync
(**) RADEON(0): Default mode "640x480": 36.0 MHz, 43.3 kHz, 85.0 Hz
(II) RADEON(0): Modeline "640x480" 36.00 640 696 752 832 480 481 484 509 -hsync -vsync
(**) RADEON(0): Default mode "640x480": 31.5 MHz, 37.5 kHz, 75.0 Hz
@@ -558,26 +553,12 @@
(II) RADEON(0): Modeline "640x480" 31.50 640 664 704 832 480 489 491 520 -hsync -vsync
(**) RADEON(0): Default mode "640x480": 25.2 MHz, 31.5 kHz, 60.0 Hz
(II) RADEON(0): Modeline "640x480" 25.20 640 656 752 800 480 490 492 525 -hsync -vsync
-(**) RADEON(0): Default mode "640x480": 54.0 MHz, 60.0 kHz, 60.0 Hz (D)
-(II) RADEON(0): Modeline "640x480" 54.00 640 688 744 900 480 480 482 500 doublescan +hsync +vsync
(**) RADEON(0): Default mode "720x400": 35.5 MHz, 37.9 kHz, 85.0 Hz
(II) RADEON(0): Modeline "720x400" 35.50 720 756 828 936 400 401 404 446 -hsync +vsync
(**) RADEON(0): Default mode "640x400": 31.5 MHz, 37.9 kHz, 85.1 Hz
(II) RADEON(0): Modeline "640x400" 31.50 640 672 736 832 400 401 404 445 -hsync +vsync
-(**) RADEON(0): Default mode "576x432": 54.0 MHz, 67.5 kHz, 75.0 Hz (D)
-(II) RADEON(0): Modeline "576x432" 54.00 576 608 672 800 432 432 434 450 doublescan +hsync +vsync
(**) RADEON(0): Default mode "640x350": 31.5 MHz, 37.9 kHz, 85.1 Hz
(II) RADEON(0): Modeline "640x350" 31.50 640 672 736 832 350 382 385 445 +hsync -vsync
-(**) RADEON(0): Default mode "576x384": 32.5 MHz, 44.2 kHz, 54.8 Hz (D)
-(II) RADEON(0): Modeline "576x384" 32.50 576 589 657 736 384 385 388 403 doublescan +hsync +vsync
-(**) RADEON(0): Default mode "512x384": 47.2 MHz, 68.7 kHz, 85.0 Hz (D)
-(II) RADEON(0): Modeline "512x384" 47.25 512 536 584 688 384 384 386 404 doublescan +hsync +vsync
-(**) RADEON(0): Default mode "512x384": 39.4 MHz, 60.1 kHz, 75.1 Hz (D)
-(II) RADEON(0): Modeline "512x384" 39.40 512 520 568 656 384 384 386 400 doublescan +hsync +vsync
-(**) RADEON(0): Default mode "512x384": 37.5 MHz, 56.5 kHz, 70.1 Hz (D)
-(II) RADEON(0): Modeline "512x384" 37.50 512 524 592 664 384 385 388 403 doublescan -hsync -vsync
-(**) RADEON(0): Default mode "512x384": 32.5 MHz, 48.4 kHz, 60.0 Hz (D)
-(II) RADEON(0): Modeline "512x384" 32.50 512 524 592 672 384 385 388 403 doublescan -hsync -vsync
(**) RADEON(0): Default mode "512x384": 22.4 MHz, 35.5 kHz, 86.6 Hz (D)
(II) RADEON(0): Modeline "512x384" 22.45 512 516 604 632 384 384 388 409 interlace doublescan +hsync +vsync
(**) RADEON(0): Default mode "416x312": 28.6 MHz, 49.7 kHz, 74.7 Hz (D)
@@ -659,19 +640,45 @@
[22] 0 0 0xf00003b0 - 0xf00003bb (0xc) IS[B](OprU)
[23] 0 0 0xf00003c0 - 0xf00003df (0x20) IS[B](OprU)
(**) RADEON(0): RADEONScreenInit 98000000 0
+(**) RADEON(0): Map: 0x98000000, 0x04000000
(**) RADEON(0): RADEONSave
+(**) RADEON(0): RADEONSaveMode(0x10209d6c)
+(**) RADEON(0): Read: 0x0000000c 0x00030059 0x00000000
+(**) RADEON(0): Read: rd=12, fd=89, pd=3
+(**) RADEON(0): RADEONSaveMode returns 0x10209d6c
(**) RADEON(0): RADEONInitMemoryMap() :
(**) RADEON(0): mem_size : 0x04000000
-(**) RADEON(0): MC_FB_LOCATION : 0x03ff0000
+(**) RADEON(0): MC_FB_LOCATION : 0x9bff9800
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
+(**) RADEON(0): RADEONModeInit()
+832x624 57.28 832 864 928 1152 624 626 629 667 (16,16) -H -V
+832x624 57.28 832 864 928 1152 624 626 629 667 (16,16) -H -V
+(**) RADEON(0): Pitch = 7340144 bytes (virtualX = 832, displayWidth = 896)
+(**) RADEON(0): dc=5728, of=5728, fd=0, pd=1
+(**) RADEON(0): RADEONInit returns 0x1020a71c
+(**) RADEON(0): RADEONRestoreMode()
+(**) RADEON(0): RADEONRestoreMode(0x1020a71c)
+(**) RADEON(0): RADEONRestoreMemMapRegisters() :
+(**) RADEON(0): MC_FB_LOCATION : 0x9bff9800
+(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
+(**) RADEON(0): Map Changed ! Applying ...
+(**) RADEON(0): Map applied, resetting engine ...
+(**) RADEON(0): Updating display base addresses...
+(**) RADEON(0): Memory map updated.
+(**) RADEON(0): Programming CRTC1, offset: 0x00000000
+(**) RADEON(0): Wrote: 0x0000000c 0x00000000 0x00000000 (0x0000bc00)
+(**) RADEON(0): Wrote: rd=12, fd=0, pd=0
+(WW) RADEON(0): You may not have enough display bandwidth for current mode
+If you have flickering problem, try to lower resolution, refresh rate, or color depth
+(**) RADEON(0): GRPH_BUFFER_CNTL from f07f5c5c to f07f5c5c
(**) RADEON(0): RADEONSaveScreen(0)
(II) RADEON(0): Depth moves disabled by default
(**) RADEON(0): Setting up initial surfaces
(**) RADEON(0): Initializing fb layer
(**) RADEON(0): Setting up accel memmap
-(II) RADEON(0): Memory manager initialized to (0,0) (832,8191)
-(II) RADEON(0): Reserved area from (0,624) to (832,626)
-(II) RADEON(0): Largest offscreen area available: 832 x 7565
+(II) RADEON(0): Memory manager initialized to (0,0) (896,8191)
+(II) RADEON(0): Reserved area from (0,624) to (896,626)
+(II) RADEON(0): Largest offscreen area available: 896 x 7565
(**) RADEON(0): Initializing backing store
(==) RADEON(0): Backing store disabled
(WW) RADEON(0): Direct rendering disabled
@@ -679,7 +686,7 @@
(**) RADEON(0): Initializing Acceleration
(II) RADEON(0): Render acceleration enabled
(**) RADEON(0): EngineInit (16/16)
-(**) RADEON(0): Pitch for acceleration = 104
+(**) RADEON(0): Pitch for acceleration = 112
(**) RADEON(0): EngineRestore (16/16)
(II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
@@ -691,7 +698,7 @@
Offscreen Pixmaps
Setting up tile and stipple cache:
32 128x128 slots
- 28 256x256 slots
+ 32 256x256 slots
13 512x512 slots
(II) RADEON(0): Acceleration enabled
(**) RADEON(0): Initializing DPMS
@@ -700,7 +707,7 @@
(**) RADEON(0): Initializing Cursor
(==) RADEON(0): Silken mouse enabled
(II) RADEON(0): Using hardware cursor (scanline 626)
-(II) RADEON(0): Largest offscreen area available: 832 x 7555
+(II) RADEON(0): Largest offscreen area available: 896 x 7555
(**) RADEON(0): Initializing color map
(**) RADEON(0): Initializing DGA
(**) RADEON(0): Initializing Xv
@@ -778,4 +785,16 @@
(**) RADEON(0): RADEONSaveScreen(2)
(**) RADEON(0): RADEONLeaveVT
(**) RADEON(0): RADEONRestore
+(**) RADEON(0): RADEONRestoreMode()
+(**) RADEON(0): RADEONRestoreMode(0x10209d6c)
+(**) RADEON(0): RADEONRestoreMemMapRegisters() :
+(**) RADEON(0): MC_FB_LOCATION : 0x03ff0000
+(**) RADEON(0): MC_AGP_LOCATION : 0x047f0400
+(**) RADEON(0): Map Changed ! Applying ...
+(**) RADEON(0): Map applied, resetting engine ...
+(**) RADEON(0): Updating display base addresses...
+(**) RADEON(0): Memory map updated.
+(**) RADEON(0): Programming CRTC1, offset: 0x00000000
+(**) RADEON(0): Wrote: 0x0000000c 0x00030059 0x00000000 (0x0000bc00)
+(**) RADEON(0): Wrote: rd=12, fd=89, pd=3
(**) RADEON(0): Ok, leaving now...
I don't see anything that looks problematic. There's a warning about
display bandwidth and flickering, but I'm not experiencing any
flickering...
Yet I still get a blank screen. I did notice however, that it took my
monitor longer to decide whether it was getting a signal or not on lower
resolutions. This thing's light is normally green when in normal
operation and turns orange when sleeping or not getting a signal. On
resolutions above 832x624, the light turns orange immediately after
starting X. With resolutions equal to or below that, it took a few extra
seconds to turn orange. This could very well have just as much to do
with the price of tea in China as my corrupted screen, however... I
don't know :-/.
>
> Roland
Thanks,
Ari
More information about the xorg
mailing list