You are not logged in.
Hi, I've recently got DRI working on my ATI Radeon 9600 pro with the open source drivers so I'll try to explain you my method expecting this will be useful for you...
First, be sure you have the driver installed :
# pacman -S xf86-video-ati
And now edit your xorg.conf like this :
Section "Module"
...
Load "dri"
Load "glx"
...
EndSection
...
Section "Device"
Identifier "ATI Radeon 9600 Pro (RV350)"
Driver "radeon"
BusID "PCI:1:0:0"
VendorName "ATI Technologies Inc."
EndSection
And at the end of the file add :
Section "DRI"
Mode 0666
EndSection
That's all for the xorg.conf now...
Then, we have to load the needed modules at startup so in rc.conf add the modules in this order :
MODULES=(sis_agp agpgart radeon drm)
PS: I have a sis AGP chipsets you have to replace 'sis_agp' by your AGP chipset...
Now reboot your computer and lunch
glxinfo | grep 'direct rendering'
which may ouput :
direct rendering: Yes
If no, read the Xorg log file (/var/log/Xorg.0.log) and look for the lines which start whith (WW) or (EE) to found the problème...
I think all it's good run glxgears to see DRI in action and now we go to add some options to the "Device Section" in the xorg.conf :
Identifier "ATI Radeon 9600 Pro (RV350)"
Driver "radeon"
BusID "PCI:1:0:0"
VendorName "ATI Technologies Inc."
Option "AGPMode" "8"
Option "AGPFastWrite" "true"
Option "RenderAccel" "true"
Restart the X server and that's all...
Bonus : Transparency and Shadow
Edit the xorg.cong and add this lines after the Module Section :
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
Option "DAMAGE" "true"
EndSection
And this option to the Device Secton :
Option "backingstore" "true"
Restart again the X server and now you can see... NOTHING!! :shock:
So install 'xcompmgr' and 'transset' to see something :
# pacman -S xcompmgr transset
Then do
xcompmgr -c
and now you may see the shadow of the windows...
Links :
man radeon
DRI with ATi Open-Source Drivers
Xorg X11 and Transparency
Offline
Nice job! Thanks for the info.
Offline
Just FWIW, specifically enabling RENDER and DAMAGE is not necessary, those are autoloaded...
BTW, what does "backingstore" do?
Offline
hmm, I tried this, but it doesn't work very good here.
First of all, I think you need to install libgl-dri which conflicts with fglrx, so you have to remove fglrx, right?
next: I followed all your steps, and when I run glxinfo I get: Direct Rendering: Yes, but the framerate in glxgears is the same as without direct rendering. Also all opengl apps (screensavers and tuxracer) are way too slow.
Is this normal, or did something go wrong here?
Offline
I have Radeon 9000, I have direct rendering too and my xorg.conf looks like:
Section "Module"
Load "ddc"
Load "freetype"
Load "type1"
Load "bitmap"
Load "dbe"
Load "glx"
Load "extmod"
Load "dri"
Load "record"
EndSection
......
Section "Device"
BoardName "RV250 If"
BusID "1:0:0"
Driver "radeon"
Identifier "Device[0]"
Screen 0
VendorName "ATI"
EndSection
......
Section "DRI"
Group "video"
Mode 0666
EndSection
Mitja
Offline
limiwa: thanks for your reply, but I think it won't help me much. The problem is the radeon 9600 has to use the r300 drivers, while your radeon 9000 can use the r200 drivers. And the r200 drivers are much more tested, the r300 drivers are alpha/beta?
Offline
Hmm... Try putting
Option "EnableAGPDMA"
In your "Device" section.
Offline
care to put this in the wiki? we have a good section on fglrx but no section on properly setting up the open source driver with dri.
Offline
It probably should be a generic section on open-source drivers, as setting up the ATI drivers doesn't seem much different from setting up the others.
Offline
I was going to wikify it as soon as I got it working
But for the moment I'm back using fglrx drivers, I will try the opensource drivers again in some days...
Offline
hmm, it didn't help.
btw: I just remembered I had turned agpfastwrites off in my bios (reviews tell it's a bad idea to use fastwrites with a radeon 9600) So I tried to put it back on, and now X completely freezes my pc when it starts, so I've turned it back off
[offtopic]If you screw up x so it locks your pc, and x is started by default (default runlevel is 5), are the any grub parameters or something else to disable x from starting? otherwise I need a gentoo live cd to recover (the arch live cd won't detect my raid)[/offtopic]
Here a part of my xorg.log. As you can see it complains the r300 mesa driver isn't included, is that normal? I can't find how I should install it...
and the agpdmamode option is also ignored as you can see
(**) RADEON(0): RADEONScreenInit c0000000 0
(**) RADEON(0): Map: 0xc0000000, 0x08000000
(==) RADEON(0): Write-combining range (0xc0000000,0x8000000)
(**) RADEON(0): RADEONSave
(**) RADEON(0): RADEONSaveMode(0x8227a90)
(**) RADEON(0): Read: 0x00080002 0x00020020 0x00000000
(**) RADEON(0): Read: rd=2, fd=32, pd=2
(**) RADEON(0): RADEONSaveMode returns 0x8227a90
(WW) RADEON(0): Enabling DRM support
*** Direct rendering support is highly experimental for Radeon 9500
*** and newer cards. The 3d mesa driver is not provided in this tree.
*** A very experimental (and incomplete) version is available from Mesa CVS.
*** Additional information can be found on http://r300.sourceforge.net
*** This message has been last modified on 2005-08-07.
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmOpenByBusid: Searching for BusID pci:0000:03:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmOpenByBusid: drmOpenMinor returns 7
drmOpenByBusid: drmGetBusid reports pci:0000:03:00.0
(II) RADEON(0): [drm] DRM interface version 1.2
(II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:03:00.0"
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xe1534000
(II) RADEON(0): [drm] mapped SAREA 0xe1534000 to 0xb78a5000
(II) RADEON(0): [drm] framebuffer handle = 0xc0000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(II) RADEON(0): [agp] Mode 0x1f00421b [AGP 0x10de/0x01e0; Card 0x1002/0x4150]
(II) RADEON(0): [agp] 8192 kB allocated with handle 0x00000001
(II) RADEON(0): [agp] ring handle = 0xe0000000
(II) RADEON(0): [agp] Ring mapped at 0xaf67b000
(II) RADEON(0): [agp] ring read ptr handle = 0xe0101000
(II) RADEON(0): [agp] Ring read ptr mapped at 0xaf67a000
(II) RADEON(0): [agp] vertex/indirect buffers handle = 0xe0102000
(II) RADEON(0): [agp] Vertex/indirect buffers mapped at 0xaf47a000
(II) RADEON(0): [agp] GART texture map handle = 0xe0302000
(II) RADEON(0): [agp] GART Texture map mapped at 0xaef9a000
(II) RADEON(0): [drm] register handle = 0xeb000000
(II) RADEON(0): [dri] Visual configs initialized
(**) RADEON(0): DRI New memory map param
(**) RADEON(0): RADEONInitMemoryMap() :
(**) RADEON(0): mem_size : 0x08000000
(**) RADEON(0): agp_size : 0x08227968
(**) RADEON(0): agp_base : 0x08227968
(**) RADEON(0): MC_FB_LOCATION : 0xc7ffc000
(**) RADEON(0): MC_AGP_LOCATION : 0xffffffc0
(**) RADEON(0): RADEONModeInit()
1400x1050@85 179.30 1400 1504 1656 1912 1050 1051 1054 1103 (24,32) -H +V
1400x1050@85 179.30 1400 1504 1656 1912 1050 1051 1054 1103 (24,32) -H +V
(**) RADEON(0): Pitch = 11534512 bytes (virtualX = 1400, displayWidth = 1408)
(**) RADEON(0): dc=17930, of=35860, fd=159, pd=2
(**) RADEON(0): RADEONInit returns 0x8228440
(**) RADEON(0): RADEONRestoreMode()
(**) RADEON(0): RADEONRestoreMode(0x8228440)
(**) RADEON(0): RADEONRestoreMemMapRegisters() :
(**) RADEON(0): MC_FB_LOCATION : 0xc7ffc000
(**) 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 0x0001009f 0x00000000 (0x0000bf00)
(**) RADEON(0): Wrote: rd=12, fd=159, pd=1
(**) RADEON(0): GRPH_BUFFER_CNTL from 30354c4c to 204a7c7c
(**) 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): 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) (1408,8191)
(II) RADEON(0): Reserved area from (0,1050) to (1408,1052)
(II) RADEON(0): Largest offscreen area available: 1408 x 7139
(II) RADEON(0): Will use back buffer at offset 0x16b0000
(II) RADEON(0): Will use depth buffer at offset 0x1c54000
(II) RADEON(0): Will use 96256 kb for textures at offset 0x2200000
(**) RADEON(0): Initializing backing store
(==) RADEON(0): Backing store disabled
(**) RADEON(0): DRI Finishing init !
(II) RADEON(0): X context handle = 0x1
(II) RADEON(0): [drm] installed DRM signal handler
(II) RADEON(0): [DRI] installation complete
(**) RADEON(0): EngineRestore (32/32)
(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 11
(II) RADEON(0): [drm] Initialized kernel GART heap manager, 5111808
(WW) RADEON(0): DRI init changed memory map, adjusting ...
(WW) RADEON(0): MC_FB_LOCATION was: 0xc7ffc000 is: 0xc7ffc000
(WW) RADEON(0): MC_AGP_LOCATION was: 0xffffffc0 is: 0xe07fe000
(**) RADEON(0): GRPH_BUFFER_CNTL from 30354c4c to 204a7c7c
(II) RADEON(0): Direct rendering enabled
(**) RADEON(0): Setting up final surfaces
(**) RADEON(0): Initializing Acceleration
(II) RADEON(0): Render acceleration unsupported on Radeon 9500/9700 and newer.
(II) RADEON(0): Render acceleration disabled
(**) RADEON(0): EngineInit (32/32)
(**) RADEON(0): Pitch for acceleration = 176
(**) RADEON(0): EngineRestore (32/32)
(II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
Solid filled rectangles
8x8 mono pattern filled rectangles
Indirect CPU to Screen color expansion
Solid Lines
Scanline Image Writes
Offscreen Pixmaps
Setting up tile and stipple cache:
32 128x128 slots
32 256x256 slots
16 512x512 slots
(II) RADEON(0): Acceleration enabled
(**) RADEON(0): Initializing DPMS
(**) Option "dpms"
(**) RADEON(0): DPMS enabled
(**) RADEON(0): Initializing Cursor
(==) RADEON(0): Silken mouse enabled
(II) RADEON(0): Using hardware cursor (scanline 1052)
(II) RADEON(0): Largest offscreen area available: 1408 x 7136
(**) RADEON(0): Initializing color map
(**) RADEON(0): Initializing DGA
(**) RADEON(0): Initializing Xv
(II) RADEON(0): No video input capabilities detected and no information is provided - disabling multimedia i2c
(II) Loading sub module "theatre_detect"
(II) LoadModule: "theatre_detect"
(II) Loading /usr/lib/xorg/modules/multimedia/theatre_detect_drv.so
(II) Module theatre_detect: vendor="X.Org Foundation"
compiled for 7.0.0, module version = 1.0.0
ABI class: X.Org Video Driver, version 0.8
(II) RADEON(0): no multimedia table present, disabling Rage Theatre.
(WW) RADEON(0): Option "EnableAGPDMA" is not used
(**) RADEON(0): RADEONScreenInit finished
Offline
Hello,
I did have some trouble to get it working yesterday, glxinfo said "direct rendering: No".
Check glxinfo with verbose mode
export LIBGL_DEBUG=verbose
glxinfo
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 5.0.3 r200 (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/r200_dri.so
libGL error: dlopen /usr/lib/dri/r200_dri.so failed (/usr/lib/dri/r200_dri.so: c
annot open shared object file: No such file or directory)
libGL error: unable to find driver: r200_dri.so
display: :0 screen: 0
direct rendering: No
ln -s /usr/lib/xorg/modules/dri/r200_dri.so /usr/lib/dri/r200_dri.so
did solve my problem
/xor
Offline
Hmm that's weird, like XOrg was looking for it in the wrong place or something... You should file a bug on that.
Offline
I have exactly the same problem with r200-dri.so not being found. Here's a clip from glxinfo verbose output:
name of display: :0.0
libGL: XF86DRIGetClientDriverName: 5.0.3 r200 (screen 0)
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//r200_dri.so
libGL error: dlopen /usr/lib/xorg/modules/dri//r200_dri.so failed (/usr/lib/xorg/modules/dri//r200_dri.so: undefined symbol: _glapi_add_dispatch)
libGL error: unable to find driver: r200_dri.so
libGL: XF86DRIGetClientDriverName: 5.0.3 r200 (screen 0)
libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//r200_dri.so
libGL error: dlopen /usr/lib/xorg/modules/dri//r200_dri.so failed (/usr/lib/xorg/modules/dri//r200_dri.so: undefined symbol: _glapi_add_dispatch)
libGL error: unable to find driver: r200_dri.so
display: :0 screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
Offline
OK now I had libGL.so I had copied from http://www.ground-impact.com/libGL.so.1.2 to get fglrx opengl to work with the latest ati drivers. Now removed those files and did pacman -S xf86-video-ati libgl-dri.
Offline
Does anyone see better performance with these Open Source drivers and DRI than the binary fglrx drivers from ati?
I would like to go open source since having the ati binary drivers dont offer any additional bonuses - but only if my performance/opengl speed doesnt decrease.
IBM T41p - 2373-xXx - kernel26thinkpad
Offline
Spack,
can you please post your glxgears fps when you maximize them on the full screen? I also have radeon 9600 and i'm very interested thanks
Offline
Spack,
can you please post your glxgears fps when you maximize them on the full screen? I also have radeon 9600 and i'm very interested thanks
I have a FireGL T2 (9600P) in my laptop. Using "fglrx" Im getting ~1600 FPS in glxgears. Thats very low considering its a midrange card.
I too am interested in this.
IBM T41p - 2373-xXx - kernel26thinkpad
Offline
ok, so here are my numbers comparing open source vs. fglrx drivers on radeon 9600 :
fglrx
glxgears - normal window - 2610-20 fps
glxgears - maximized window - 210-220 fps
radeon r300 (open source)
glxgears - normal window - 910-920 fps
glxgears - maximized window - 90-100 fps
so it runs bad, but i got a really nice feeling runnig one less closed source progy and performace in normal desktop use is the same, som i'm sticking to them
EDIT: plus the xcomposite is running no problem
Offline
when i try to load drm i get this
sh-3.1# modprobe drm
FATAL: Error inserting drm (/lib/modules/2.6.17-ARCH/kernel/drivers/char/drm/drm.ko): Cannot allocate memory
anyone has got the same issue?
Linux Cagnulein 2.6.17-ARCH #1 SMP PREEMPT Thu Aug 24 17:07:48 CEST 2006 i686 AMD Athlon(TM) XP2400+ AuthenticAMD GNU/Linux
Offline
ok, so here are my numbers comparing open source vs. fglrx drivers on radeon 9600 :
fglrx
glxgears - normal window - 2610-20 fps
glxgears - maximized window - 210-220 fpsradeon r300 (open source)
glxgears - normal window - 910-920 fps
glxgears - maximized window - 90-100 fpsso it runs bad, but i got a really nice feeling runnig one less closed source progy and performace in normal desktop use is the same, som i'm sticking to them
EDIT: plus the xcomposite is running no problem
I'm have a 9700 card and i get 4000 fps on glxgears..
Driver "radeon"
Option "ColorTiling" "true"
Option "EnablePageFlip" "true"
Option "AGPMode" "8"
Option "AccelMethod" "XAA"
Option "GartSize" "64"
This is the config i have for the radeon driver..
Offline
peterk0 wrote:ok, so here are my numbers comparing open source vs. fglrx drivers on radeon 9600 :
fglrx
glxgears - normal window - 2610-20 fps
glxgears - maximized window - 210-220 fpsradeon r300 (open source)
glxgears - normal window - 910-920 fps
glxgears - maximized window - 90-100 fpsso it runs bad, but i got a really nice feeling runnig one less closed source progy and performace in normal desktop use is the same, som i'm sticking to them
EDIT: plus the xcomposite is running no problem
I'm have a 9700 card and i get 4000 fps on glxgears..
Driver "radeon"
Option "ColorTiling" "true"
Option "EnablePageFlip" "true"
Option "AGPMode" "8"
Option "AccelMethod" "XAA"
Option "GartSize" "64"This is the config i have for the radeon driver..
thx, i'll try to tweak it
Offline
Can't get DRI on my Radeon9700 to work. I compiled all neccessary DRM Modules from CVS and it seems to work fine but still it isn't working right:
cat /var/log/Xorg.0.log | grep "(WW)"
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(WW) RADEON(0): Failed to detect secondary monitor, MergedFB/Clone mode disabled
(WW) (1920x1440,Monitor) mode clock 341.35MHz exceeds DDC maximum 300MHz
(WW) (2048x1536,Monitor) mode clock 340.48MHz exceeds DDC maximum 300MHz
(WW) (2048x1536,Monitor) mode clock 388.04MHz exceeds DDC maximum 300MHz
(WW) (2560x1600,Monitor) mode clock 348.16MHz exceeds DDC maximum 300MHz
(WW) RADEON(0): Enabling DRM support
(WW) RADEON(0): DRI init changed memory map, adjusting ...
(WW) RADEON(0): MC_FB_LOCATION was: 0xd7ffd000 is: 0xd7ffd000
(WW) RADEON(0): MC_AGP_LOCATION was: 0xffffffc0 is: 0xe07fe000
(WW) AIGLX: 3D driver claims to not support visual 0x23
(WW) AIGLX: 3D driver claims to not support visual 0x24
(WW) AIGLX: 3D driver claims to not support visual 0x25
(WW) AIGLX: 3D driver claims to not support visual 0x26
(WW) AIGLX: 3D driver claims to not support visual 0x27
(WW) AIGLX: 3D driver claims to not support visual 0x28
(WW) AIGLX: 3D driver claims to not support visual 0x29
(WW) AIGLX: 3D driver claims to not support visual 0x2a
(WW) AIGLX: 3D driver claims to not support visual 0x2b
(WW) AIGLX: 3D driver claims to not support visual 0x2c
(WW) AIGLX: 3D driver claims to not support visual 0x2d
(WW) AIGLX: 3D driver claims to not support visual 0x2e
(WW) AIGLX: 3D driver claims to not support visual 0x2f
(WW) AIGLX: 3D driver claims to not support visual 0x30
(WW) AIGLX: 3D driver claims to not support visual 0x31
(WW) AIGLX: 3D driver claims to not support visual 0x32
glxinfo | grep "direct"
direct rendering: No
glxinfo | grep "direct"glxgears
9551 frames in 5.0 seconds = 1891.829 FPS
9520 frames in 5.0 seconds = 1892.949 FPS
9100 frames in 5.0 seconds = 1814.105 FPS
Now is DRI available or not ?!
Offline
It looks like it's falling back on AIGLX... Do you have a "DRI" section in xorg.conf?
(Interesting. If you don't have LIBGL_ALWAYS_INDIRECT=1 in /etc/profile or somewhere, you don't have permission to /dev/dri, and it's falling back on AIGLX without locking up, that would make the freeze-on-attempted-fallback behavior I've seen without LIBGL_ALWAYS_INDIRECT a driver-related bug.)
Offline
Sorry for the delay,
Mesa: CPU vendor: GenuineIntel
Mesa: CPU name: Intel(R) Pentium(R) 4 CPU 2.40GHz
Mesa: MMX cpu detected.
Mesa: SSE cpu detected.
Mesa: Not testing OS support for SSE, leaving enabled.
6648 frames in 5.0 seconds = 1328.209 FPS
6793 frames in 5.0 seconds = 1358.242 FPS
6632 frames in 5.0 seconds = 1326.231 FPS
6132 frames in 5.0 seconds = 1226.284 FPS
6013 frames in 5.0 seconds = 1200.543 FPS
But sometimes I can touch 2xxx FPS
My main parts of xorg.conf:
Section "Module"
Load "freetype"
# Load "xtt"
Load "extmod"
Load "glx"
Load "dri"
Load "dbe"
Load "ddc"
Load "record"
Load "xtrap"
Load "type1"
EndSection
Section "Extensions"
Option "Composite" "Enable"
Option "RENDER" "Enable"
EndSection
Section "Monitor"
Identifier "Monitor0"
DisplaySize 342 274
### Comment all HorizSync and VertSync values to use DDC:
# HorizSync 31.5 - 82.0
# VertRefresh 50.0 - 70.0
Option "DPMS"
Modeline "640x480@75" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
Modeline "800x600@75" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
Modeline "1024x768@75" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
Modeline "1280x1024@75" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
EndSection
Section "Device"
Identifier "Card0"
Driver "radeon"
BusID "PCI:1:0:0"
Option "AGPMode" "8"
Option "AGPSize" "64"
Option "RingSize" "4"
Option "BufferSize" "2"
Option "EnablePageFlip" "true"
Option "EnableDepthMoves" "true"
Option "AGPFastWrite" "true"
Option "RenderAccel" "true"
Option "ColorTiling" "true"
Option "AccelMethod" "XAA"
EndSection
I will test with Option "AccelMethod" "XAA"...
PS: I have a Radeon 9600 Pro and for information, this card it's not fully 3D supported by xorg...
Offline