Bugzilla – Bug 114856
Cannot enable DRI with ATI Radeon on PowerPC
Last modified: 2006-11-30 00:20:51 UTC
I tried to enable 3D acceleration for the ATI Radeon 9200 video card on my Genesi Pegasos II system by adding the following line to the xorg.conf file generated by SaX: Load "dri" However, the DRM kernel module seems to have problems to load - I see the following in /var/log/messages: Sep 1 22:17:39 pegasos kernel: Linux agpgart interface v0.101 (c) Dave Jones Sep 1 22:17:39 pegasos kernel: [drm] Initialized drm 1.0.0 20040925 Sep 1 22:17:39 pegasos kernel: [drm] Initialized radeon 1.16.0 20050311 on minor 0: Sep 1 22:17:39 pegasos kernel: [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held Sep 1 22:17:39 pegasos kernel: [drm:drm_unlock] *ERROR* Process 5832 using kernel context 0 This causes the X server to disable DRI - from /var/log/Xorg.0.log: (II) RADEON(0): [drm] loaded kernel module for "radeon" driver (II) RADEON(0): [drm] DRM interface version 1.2 (II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:08.0" (II) RADEON(0): [drm] added 8192 byte SAREA at 0xe1030000 (II) RADEON(0): [drm] mapped SAREA 0xe1030000 to 0x3001a000 (II) RADEON(0): [drm] framebuffer handle = 0xc0000000 (II) RADEON(0): [drm] added 1 reserved context for kernel (WW) RADEON(0): [agp] AGP not available (EE) RADEON(0): [agp] AGP failed to initialize. Disabling the DRI. (II) RADEON(0): [agp] You may want to make sure the agpgart kernel module is loaded before the radeon kernel module. (II) RADEON(0): [drm] removed 1 reserved context for kernel (II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xe1030000 at 0x3001a000 hwinfo output for this card: pegasos:~ # hwinfo --gfxcard 17: PCI(AGP) 10108.0: 0300 VGA compatible controller (VGA) [Created at pci.277] UDI: /org/freedesktop/Hal/devices/pci_1002_5964 Unique ID: F+Ss.etu5C_BKvA3 SysFS ID: /devices/pci0001:01/0001:01:08.0 SysFS BusID: 0001:01:08.0 Hardware Class: graphics card Model: "ABIT RV280 5964" Vendor: pci 0x1002 "ATI Technologies Inc" Device: pci 0x5964 "RV280 5964" SubVendor: pci 0x147b "ABIT Computer Corp." SubDevice: pci 0x6191 Revision: 0x01 Driver: "radeonfb" Memory Range: 0xc0000000-0xc7ffffff (rw,prefetchable) I/O Ports: 0xf8001000-0xf80010ff (rw) Memory Range: 0xc8000000-0xc800ffff (rw,non-prefetchable) Memory Range: 0xc8020000-0xc803ffff (ro,prefetchable,disabled) IRQ: 9 (18871 events) Module Alias: "pci:v00001002d00005964sv0000147Bsd00006191bc03sc00i00" Driver Info #0: XFree86 v4 Server Module: radeon Config Status: cfg=new, avail=yes, need=no, active=unknown 18: PCI 10108.1: 0380 Display controller [Created at pci.277] UDI: /org/freedesktop/Hal/devices/pci_1002_5d44 Unique ID: cDH9.JdDHyJ1NNK2 SysFS ID: /devices/pci0001:01/0001:01:08.1 SysFS BusID: 0001:01:08.1 Hardware Class: graphics card Model: "ABIT RV280 [Radeon 9200 SE] (Secondary)" Vendor: pci 0x1002 "ATI Technologies Inc" Device: pci 0x5d44 "RV280 [Radeon 9200 SE] (Secondary)" SubVendor: pci 0x147b "ABIT Computer Corp." SubDevice: pci 0x6190 Revision: 0x01 Memory Range: 0xd0000000-0xd7ffffff (rw,prefetchable,disabled) Memory Range: 0xc8010000-0xc801ffff (rw,non-prefetchable,disabled) Module Alias: "pci:v00001002d00005D44sv0000147Bsd00006190bc03sc80i00" Config Status: cfg=new, avail=yes, need=no, active=unknown This is SuSE 10b3, Kernel 2.6.13-3-default.
Created attachment 48533 [details] xorg.conf
Created attachment 48534 [details] Xorg.log
Let me know, if you need additional info. Thanks!
Correct. 3D support in general on ppc is not supported at all and usually does not work. Keeping open as enhancement. Maybe this gets fixed by accident in the future (unlikely).
FWIW, I can use the 3D acceleration offered by this card just fine using the Debian 3.1 system that is installed in parallel. So I can't confirm this is broken in general. Shall I provide more details on how they do it?
Sure, which kernel version, which XFree86 version is this? Which Mesa version are they still using? I assume it's still Kernel 2.4, XFree86 4.2 and Mesa 5 or even older.
This is on Debian 3.1/PPC, running on Kernel 2.6.11, XFree86 Version 4.3.99.12 (DRI trunk), Mesa version 5.0.0-5.1: snippet from /var/log/messages: [SNIP] Aug 30 10:07:48 pegasos kernel: Linux agpgart interface v0.100 (c) Dave Jones Aug 30 10:07:48 pegasos kernel: [drm] Initialized drm 1.0.0 20040925 Aug 30 10:07:48 pegasos kernel: [drm] Initialized radeon 1.14.0 20050125 on minor 0: ATI Technologies Inc RV280 [Radeon 9200 SE] Aug 30 10:07:48 pegasos kernel: [drm] Loading R200 Microcode [SNIP] snippet from /var/log/XFree86.0.log: [SNIP] XFree86 Version 4.3.99.12 (DRI trunk) Release Date: 10 September 2003 X Protocol Version 11, Revision 0, Release 6.6 Build Operating System: Linux 2.6.3-ben1 ppc [ELF] Current Operating System: Linux pegasos 2.6.11-powerpc #1 Fri May 13 15:47:19 CEST 2005 ppc Build Date: 05 March 2004 [...] (II) LoadModule: "dri" (II) Loading /usr/X11R6/lib/modules-dri-trunk/extensions/libdri.a (II) Module dri: vendor="The XFree86 Project" compiled for 4.3.99.12, module version = 1.0.0 ABI class: XFree86 Server Extension, version 0.2 (II) Loading sub module "drm" (II) LoadModule: "drm" (II) Loading /usr/X11R6/lib/modules-dri-trunk/linux/libdrm.a (II) Module drm: vendor="The XFree86 Project" compiled for 4.3.99.12, module version = 1.0.0 ABI class: XFree86 Server Extension, version 0.2 (II) Loading extension XFree86-DRI [...] (II) RADEON(0): [drm] loaded kernel module for "radeon" driver (II) RADEON(0): [drm] DRM interface version 1.2 (II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:08.0" (II) RADEON(0): [drm] added 8192 byte SAREA at 0xe239e000 (II) RADEON(0): [drm] mapped SAREA 0xe239e000 to 0x380cc000 (II) RADEON(0): [drm] framebuffer handle = 0xc0000000 (II) RADEON(0): [drm] added 1 reserved context for kernel (II) RADEON(0): [pci] 8192 kB allocated with handle 0xe24e6000 (II) RADEON(0): [pci] ring handle = 0xe24e6000 (II) RADEON(0): [pci] Ring mapped at 0x380ce000 (II) RADEON(0): [pci] Ring contents 0x00000000 (II) RADEON(0): [pci] ring read ptr handle = 0xe25e7000 (II) RADEON(0): [pci] Ring read ptr mapped at 0x381cf000 (II) RADEON(0): [pci] Ring read ptr contents 0x00000000 (II) RADEON(0): [pci] vertex/indirect buffers handle = 0xe25e8000 (II) RADEON(0): [pci] Vertex/indirect buffers mapped at 0x381d0000 (II) RADEON(0): [pci] Vertex/indirect buffers contents 0x00000000 (II) RADEON(0): [pci] GART texture map handle = 0xe27e8000 (II) RADEON(0): [pci] GART Texture map mapped at 0x383d0000 (II) RADEON(0): [drm] register handle = 0xc8000000 (II) RADEON(0): [dri] Visual configs initialized (II) RADEON(0): CP in BM mode (II) RADEON(0): Using 8 MB GART aperture (II) RADEON(0): Using 1 MB for the ring buffer (II) RADEON(0): Using 2 MB for vertex/indirect buffers (II) RADEON(0): Using 5 MB for GART textures (II) RADEON(0): Memory manager initialized to (0,0) (1280,8191) (II) RADEON(0): Reserved area from (0,1024) to (1280,1026) (II) RADEON(0): Largest offscreen area available: 1280 x 7165 (II) RADEON(0): Will use back buffer at offset 0x1400000 (II) RADEON(0): Will use depth buffer at offset 0x1900000 (II) RADEON(0): Will use 100352 kb for textures at offset 0x1e00000 (II) RADEON(0): Acceleration enabled (II) RADEON(0): Using hardware cursor (scanline 1026) (II) RADEON(0): Largest offscreen area available: 1280 x 7161 (**) RADEON(0): DPMS enabled (II) RADEON(0): X context handle = 0x00000001 (II) RADEON(0): [drm] installed DRM signal handler (II) RADEON(0): [DRI] installation complete (II) RADEON(0): [drm] Added 32 65536 byte vertex/indirect buffers (II) RADEON(0): [drm] Mapped 32 vertex/indirect buffers (II) RADEON(0): [drm] dma control initialized, using IRQ 9 (II) RADEON(0): [drm] Initialized kernel GART heap manager, 5111808 (II) RADEON(0): Direct rendering enabled [SNIP] Seems like Debian is using a different code base than SUSE here? But at least it is working nicely here - so it's not like it does not work at all...
I assume there's sth. different in Kernel drm/agp support. What you can do is diff the drm/agp sources of both kernels. Not much fun, I know ...
Created attachment 48575 [details] agp_drm_diffs_2.6.11vs2.6.13.tar.gz Attached please find a diff of the source files in /usr/src/linux/drivers/char/{agp,drm} from the Debian 2.6.11 kernel against the 2.6.13 kernel of SUSE 10.0b3. I can't make much sense out of it, but maybe you notice something relevant?
Sure, there are huge differences in agp/drm code between 2.6.11 and 2.6.13.
try Option "BusType" "PCI" in the Device[0] section.
I think this should be retried with 10.1 (Alpha). Setting to LATER.
reopen for retesting ...
Could you try again with 10.1 Beta? Thanks.
Lenz, no time for testing, right?
Hi Stefan, you are right :( Life has been too busy recently and I did not even had a chance to beta test the x86 version of 10.1 so far. In addition to that, my Pegasos box hosts my personal web site, so I can not take it down for beta testing easily. But did't Genesi send you a Pegasos system for testing? I would assume that it would show the same behaviour as mine. I am sorry for the delay!
Another Pegasos box. Yes, I think we have such machines here for testing. Ok. Maybe I'll find some time for testing later. I don't think it makes sense to wait any longer for feedback. The bugreport remains open. Enhancements don't hurt. :-)
Comment #11 should be the only option for the Pegasos board. The Marvel chipset of the Pegasos has no AGP support, it only supports PCI and PCI-X. The AGP port is a fake port. It is a AGP/PCI-X converter behaving like AGP v2, supporting only AGPx1 and 3.3 Volts.
Could you give it a try again with openSUSE 10.2 >= Alpha 3?
openSUSE 10.2 Beta1 has just been released.
To prevent this bugreport remaining open for the time being I close this one now as fixed - assuming it *is* fixed. Don't hesitate to reopen it again if you still can reproduce it with openSUSE >= 10.2. The final release of openSUSE 10.2 is scheduled for 2006-12-07.