Summary: | Xorg server busy-loops at start when DRI is true | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Coleman Kane <ckane> | ||||||
Component: | Driver/Radeon | Assignee: | xf86-video-ati maintainers <xorg-driver-ati> | ||||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||
Severity: | major | ||||||||
Priority: | medium | CC: | akirchhoff135014 | ||||||
Version: | git | ||||||||
Hardware: | x86-64 (AMD64) | ||||||||
OS: | FreeBSD | ||||||||
Whiteboard: | |||||||||
i915 platform: | i915 features: | ||||||||
Attachments: |
|
Description
Coleman Kane
2008-06-02 07:11:11 UTC
(In reply to comment #0) > Using the radeonhd driver, I can get the Xserver to come up with DRI enabled, > but I get a blank (black space) where rendering should be for glxgears, etc... > The output of glxinfo using the radeonhd driver seems to be okay. > It's the same problem, but there's no 2D acceleration in radeonhd when the dri is enabled so the server will come up, but when you try and use the CP, you get the error. radeon hangs since it's trying to initialize and use 2D accel when the server starts. (In reply to comment #1) > (In reply to comment #0) > > Using the radeonhd driver, I can get the Xserver to come up with DRI enabled, > > but I get a blank (black space) where rendering should be for glxgears, etc... > > The output of glxinfo using the radeonhd driver seems to be okay. > > > > It's the same problem, but there's no 2D acceleration in radeonhd when the dri > is enabled so the server will come up, but when you try and use the CP, you get > the error. radeon hangs since it's trying to initialize and use 2D accel when > the server starts. > Well, can you give me some pointers as to where to start looking and maybe I can wriggle out some more debugging on my own... I am not throughly familiar with what trickery (if any) is employed in the PCI GART stuff, but I have picked over a lot of the drm kmod code, so I'm not going into it totally blind. (In reply to comment #2) > > Well, can you give me some pointers as to where to start looking and maybe I > can wriggle out some more debugging on my own... I am not throughly familiar > with what trickery (if any) is employed in the PCI GART stuff, but I have > picked over a lot of the drm kmod code, so I'm not going into it totally blind. > I'm not sure what shape the ati pci/pcie/igp gart stuff is in for bsd unfortunately. rnoland and adamk were working on it on IRC (#dri-devel). The relevant code is in ati_pcigart.c and radeon_cp.c in the drm. Just to add my 2 cents worth... This is what I'm getting with a PCIe x850 and x1650: [drm:pid1193:drm_ioctl] returning 16 [drm:pid1193:drm_ioctl] pid=1193, cmd=0x20006444, nr=0x44, dev 0xc529ad80, auth=1 [drm:pid1193:radeon_cp_idle] [drm:pid1193:radeon_do_cp_idle] [drm:pid1193:drm_ioctl] returning 16 [drm:pid1193:drm_ioctl] pid=1193, cmd=0x20006444, nr=0x44, dev 0xc529ad80, auth=1 [drm:pid1193:radeon_cp_idle] [drm:pid1193:radeon_do_cp_idle] [drm:pid1193:drm_ioctl] returning 16 [drm:pid1193:drm_ioctl] pid=1193, cmd=0x20006444, nr=0x44, dev 0xc529ad80, auth=1 The exact same as Coleman. I've given rnoland the full dmesg output with debugging enabled. The x850 works fine with mesa/xserver/ati from ports and drm from -CURRENT. I've even gotten the x1650 to enable direct rendering (with a usable X server) using some combination of those four, from ports and git, though I haven't had time to try and reproduce that combination yet. In that state, though, AIGLX would not work, I believe, do to a mismatch of xserver and mesa. Created attachment 17425 [details]
Dmesg output
I have some new data... for a small period this was working for me with limited success. Recently, however, with the latest updates to DRM, or xf86-video-ati, or something else, I have been reverted to the busy-loop at server startup.
I've also started testing with the latest code from the quick-and-dirty-2d branch from xf86-video-radeonhd. Using EXA+DRI I also get a similar lock-up, however the display does get populated with what looks like a bunch of frame-buffer garbage, and the X cursor (which can't be moved).
Additionally, I get the following messages spewed to the kernel console:
info: [drm] wait for fifo failed status : 0x9001C100 0x00080000
I am attaching them to the issue. It seems to be caught in a loop constantly calling the radeon_do_wait_for_fifo function from shared-core/radeon_cp.c and never recovers.
I will also attach an Xorg log for that session as well.
Created attachment 17426 [details]
Log of radeonhd EXA+DRI startup
Ignore the lines at the bottom about synaptics/mouse failures. They happen when the mouse device is working too, and are just an artifact of the weirdness that is the synaptics driver.
Output of lspci -s 01:05 -vv -xxxx -i /usr/local/share/pciids/pci.ids -nn: 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS690M [Radeon X1200 Series] [1002:791f] (prog-if 00 [VGA controller]) Subsystem: Hewlett-Packard Company Unknown device [103c:30c2] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 64, Cache Line Size: 64 bytes Interrupt: pin B routed to IRQ 19 Region 0: Memory at c0000000 (64-bit, prefetchable) Region 2: Memory at d0400000 (64-bit, non-prefetchable) Region 4: I/O ports at 4000 Region 5: Memory at d0500000 (32-bit, non-prefetchable) Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable- Address: 0000000000000000 Data: 0000 00: 02 10 1f 79 07 00 10 00 00 00 00 03 10 40 00 00 10: 0c 00 00 c0 00 00 00 00 04 00 40 d0 00 00 00 00 20: 01 40 00 00 00 00 50 d0 00 00 00 00 3c 10 c2 30 30: 00 00 00 00 50 00 00 00 00 00 00 00 13 02 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 3c 10 c2 30 50: 01 80 02 06 00 00 00 00 00 00 00 00 00 00 00 00 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 05 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 This has been fixed already |
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.