Bug 5562

Summary: rage 128 + dri = X lockup
Product: xorg Reporter: Ted Rodgers <tedrodgers>
Component: Driver/rage128Assignee: Xorg Project Team <xorg-team>
Status: RESOLVED DUPLICATE QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: high CC: brice.goglin, clmason, n-roeser, orion, str8bslinux, tedrodgers
Version: 7.0.0   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log none

Description Ted Rodgers 2006-01-10 20:26:45 UTC
Enabling dri using the ati r128 driver displays a highly distorted screen. 
Produces no readable text or menus.  Two dots on the first line of the screen,
one in the top left and one in the middle.  Mouse cursor moves around the full
screen, but whem clicked, keyboard locks and cursor cannot be returned to
pre-clicked state, but still moves.  Artifacts of previous framebuffer images
are shown on the bottom half of the screen as well if UseFBDev is set.  Xorg log
showed that DRI had successfully loaded and be started.  Log file ends with th
following two lines each time:

(EE) R128(0): R128CCEWaitForIdle: (DEBUG) CCE idle took i = 1025
(EE) R128(0): Idle timed out, resetting engine...

With DRI disabled, the screen appears normal and log file contains only the
folling error:

(EE) R128(0): V_BIOS address 0x0 out of range
(--) R128(0): Chipset: "ATI Rage 128 VR RL (AGP)" (ChipID = 0x524c)

Narrowed the problem to DRI by disabling other modules/options, none of which
had any other effect.

# This file was generated by Xorgautoconfig v0.2.2.
Section "ServerLayout"
        Identifier      "X.Org Configured"
        Screen          0  "Screen0" 0 0
        InputDevice     "Mouse0" "CorePointer"
        InputDevice     "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
# RgbPath is the location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.


# ModulePath can be used to set a search path for the X server modules.
# The default path is shown here.


# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)

# For X Font Server support, uncomment this and comment the other FontPaths
# Note that this is not required for most configurations
#       FontPath        "unix/:-1"
        FontPath        "/usr/share/fonts/encodings/"
        FontPath        "/usr/share/fonts/cyrillic/"
        FontPath        "/usr/share/fonts/75dpi/"
        FontPath        "/usr/share/fonts/75dpi/:unscaled"
        FontPath        "/usr/share/fonts/misc/"
        FontPath        "/usr/share/fonts/Type1/"
        FontPath        "/usr/share/fonts/100dpi/"
        FontPath        "/usr/share/fonts/100dpi/:unscaled"
        FontPath        "/usr/share/fonts/util/"
        FontPath        "/usr/share/fonts/TTF/"
EndSection

Section "Module"
        Load    "extmod"
#####
#
# 
# DRI BREAKS X
#
#       Load    "dri"
#
#####
        Load    "dbe"
        Load    "record"
        Load    "glx"
        Load    "type1" 
        Load    "freetype"
        Load    "fbdevhw"
EndSection

Section "Extensions"
#       Option "Composite"      "Disable"       # Experimental
EndSection

Section "ServerFlags"
        Option  "blank time"    "10"    # 10 minutes
        Option  "standby time"  "20"
        Option  "suspend time"  "30"
        Option  "off time"      "60"
### Uncomment this Server flag if X should not change resolutions.
### This is useful if mode changing crashes / corrupts the X server
#       Option  "DisableVidModeExtensions"
EndSection

Section "InputDevice"
        Identifier      "Keyboard0"
        Driver          "kbd"
# Change "XkbModel" to "macintosh_old" if you are using
# the deprecated adb keycodes.
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "us"
        Option          "XkbOptions"    "compose:rwin"
### Uncomment this if your layout uses nodeadkeys
        #Option         "XkbVariant"    "nodeadkeys"
EndSection

Section "InputDevice"
        Identifier      "Mouse0"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Protocol"       "IMPS/2"
        Option          "Device"         "/dev/input/mice"
        Option          "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
        Identifier      "Monitor0"
        UseModes        "Modes0"
        ModelName       "Monitor Model"
        Option          "DPMS"
        HorizSync       60-60
        VertRefresh     60-75
EndSection


Section "Modes"
        Identifier      "Modes0"

        # Generated
        # D: 78.740 MHz, H: 60.015 kHz, V: 75.019 Hz
        Modeline "1024x768" 78.740 1024 1056 1152 1312  768 769 772 800  +HSync
+VSync
EndSection

Section "Device"
        Identifier      "Card0"
        ### Available Driver options:
        Option "DMAForXv"       "true"  # Use DMA for XV, reduces CPU usage
                                        # Can cause stability problems
        #Option "SWcursor"      "false" # Use Software Cursor
        #Option "NoAccel"       "false" # Disable Hardware Acceleration
        Option "Display"        "CRT"   # Display mode for devices which
                                        # support Flat Panels.  Modes:
                                        # "FP" - Use Flat Panel
                                        # "CRT" - Use CRT
                                        # "Mirror" - Use both FP and CRT
        ### See "man r128" for additional options

        ### Warning: If your r128 has less than 10MB of ram, you will only be
        ###          able to use dri in 16bit color.
        Option  "UseFBDev"      "False"
        Driver  "r128"
        BusID   "PCI:0:16:0"
EndSection

Section "Screen"
        Identifier      "Screen0"
        Device          "Card0"
        Monitor         "Monitor0"
        DefaultDepth    16
        SubSection "Display"
                Depth           8
                Modes           "1024x768"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1024x768"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection


###### 
#
# DRI BREAKS X
#
#
# Section "DRI"
#       Group 0
#       Mode 0666
# EndSection
#


Full log of Xorg was on pastebin but is now gone.  Problem can be reproduced to
gain a full log if needed.  Also installing a stable version of X to try to
replicte the problem in it as well.
Comment 1 Chris L. Mason 2006-01-11 15:05:45 UTC
I see the exact same problem on an iMac G3 400 (Rage 128 RL/VR AGP).  Disabling
DRI gets it to work, otherwise it hangs.  I get the same error others have
reported in other places:

(EE) R128(0): R128CCEWaitForIdle: (DEBUG) CCE idle took i = 1025
(EE) R128(0): Idle timed out, resetting engine...

This is still happening after updating to xorg 6.9.0 on Debian unstable.
Comment 2 Michel Dänzer 2006-05-26 17:22:27 UTC
Sounds like it could be a duplicate of bug 1889.
Comment 3 Erik Andren 2006-06-17 00:27:39 UTC
Any improvements by using custom drm modules from dri.freedesktop.org?
Also please try with a current version of xorg and the ati driver. 


Comment 4 Joe Fenton 2006-11-11 17:11:30 UTC
I'm using the latest xorg in Ubuntu 6.10 on an iMac DV+ (450MHz G3 and ATI Rage
128 VR RL video). I have the same problem as described in the thread. Anymore
work on this yet?
Comment 5 Daniel Stone 2007-02-27 01:29:54 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 6 Brice Goglin 2008-01-17 13:16:52 UTC
Looks like Debian bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=412228 as well, reproducible with 6.6.3 and 6.7.197.
Comment 7 Michel Dänzer 2008-06-16 01:05:00 UTC
Does

    Option "CCEusecTimeout" "100000"

(or even larger values; the default is 10000) work around the problem?
Comment 8 José JORGE 2008-06-16 13:00:48 UTC
I just tested

Option "CCEusecTimeout" "100000"

it doesn't change anything to the display.
Comment 9 Michel Dänzer 2008-06-17 01:01:55 UTC
(In reply to comment #8)
> I just tested
> 
> Option "CCEusecTimeout" "100000"
> 
> it doesn't change anything to the display.

Did the log file show the option being effective? What about "1000000"?

Anyway, as people claim that this problem doesn't affect x86, maybe there was an architecture specific regression at some point, in which case somebody would need to track that down...
Comment 10 Orion Poplawski 2009-02-20 09:08:17 UTC
Created attachment 23137 [details]
Xorg log

Just saw this with Fedora 10 on Dell Precision 340 with ATI Technologies Inc Rage 128 Pro Ultra TF, so it can happen on x86.  This is with no xorg.conf.  Will try again with Option "CCEusecTimeout" "1000000"
Comment 11 Orion Poplawski 2009-02-20 15:09:58 UTC
With:

(**) R128(0): Option "CCEusecTimeout" "1000000"

X crashes on startup.  Display is garbled - seems to be related to what was last displayed.
Comment 12 Nico R. 2009-04-04 03:52:48 UTC
I can always reproduce this on x86, so this bug occurs at least on PowerPC and on x86.
Comment 13 Matt Turner 2010-12-02 12:32:44 UTC
This bug is older than the one I'm marking it as a duplicate of. The other has more information and logs, so I figured it'd be better to not lose that stuff. Will move CCs in this bug to the other.

*** This bug has been marked as a duplicate of bug 23996 ***
Comment 14 Str8bs 2013-03-25 03:41:23 UTC
Specific to this bug where X never starts, rather than lockups after starting, I have more recent (Ubuntu 12.04) logs in downstream https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-r128/+bug/1023975

Only workarounds I have found are to ForcePCIMode or Disable DRI. Could this be a uninorth_agp problem? Without really understanding what I am reading, the "AGP apterture is 256M @ 0x0" and "AGP V2 device into 0x mode" seem strange to me.
On iMac with Rage128 Ultra 16M

Summary of relevant (Speculated) from dmesg:
dmesg | grep AGP
[ 0.585628] Linux agpgart interface v0.103
[ 29.655997] agpgart-uninorth 0000:00:0b.0: Apple UniNorth/Pangea chipset
[ 29.658518] agpgart-uninorth 0000:00:0b.0: configuring for size idx: 64
[ 29.736441] agpgart-uninorth 0000:00:0b.0: AGP aperture is 256M @ 0x0
[ 43.502188] agpgart: Couldn't find an AGP VGA controller.
[ 43.502261] agpgart-uninorth 0000:00:0b.0: putting AGP V2 device into 0x mode

dmesg | grep -i vga
[ 0.047384] vgaarb: loaded
[ 32.545041] vgaarb: this pci device is not a vga device
[ 33.354151] vgaarb: this pci device is not a vga device
[ 33.964274] agpgart: Couldn't find an AGP VGA controller.

From Xorg.0.log
[ 265.172] (EE) R128(0): R128CCEWaitForIdle: (DEBUG) CCE idle took i = 1025
[ 265.172] (EE) R128(0): Idle timed out, resetting engine...
[ 282.882] (EE) R128(0): R128CCEWaitForIdle: (DEBUG) CCE idle took i = 1025
[ 282.882] (EE) R128(0): Idle timed out, resetting engine...
[ 298.704] (EE) R128(0): R128CCEWaitForIdle: (DEBUG) CCE idle took i = 1025
[ 298.705] (EE) R128(0): Idle timed out, resetting engine...

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.