HOWTO direct rendering without proprietary drivers for ATI Radeon 9600
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
stop X
# /etc/init.d/xdm stop
unload modules
# modprobe -r drm
# modprobe -r radeon
emerge latest drm files, because kernel's drm - old
# echo "x11-base/x11-drm ~x86">>/etc/portage/package.keywords
# emerge -av x11-drm
# modules-update
way 1 --
# emerge -av driconf xdriinfo
run
$ driconf
# cp ~\.drirc /etc/drirc
--
way 2 --
| Файл: create /etc/drirc and ~/.drirc files |
<driconf>
<device screen="0" driver="r300">
<application name="all">
</application>
</device>
</driconf>
|
--
| Файл: edit /etc/X11/xorg.conf |
Section "Module"
# This loads the DBE extension module.
Load "dbe" # Double buffer extension
# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
SubSection "extmod"
Option "omit xfree86-dga" # don't initialise the DGA extension
EndSubSection
# This loads the font modules
# Load "type1"
# Load "speedo"
Load "freetype"
# Load "xtt"
# This loads the GLX module
Load "glx"
# This loads the DRI module
Load "dri"
EndSection
Section "Device"
Identifier "ATI Radeon 9600"
Driver "radeon"
VideoRam 131072
# Insert Clocks lines here if appropriate
##
Option "AGPMode" "8" # or 4
# Option "AGPFastWrite" "1" # Causes X to hard lock
Option "GARTSize" "64" # or 128 ...
Option "FBTexPercent" "50"
Option "MonitorLayout" "LCD, NONE" # CRT if you use CRT monitor
Option "DisplayPriority" "HIGH" # Fix flickering
Option "ColorTiling" "1"
# Option "IgnoreEDID" "1"
Option "EnablePageFlip" "1"
Option "EnableDepthMoves" "1"
# Option "RenderAccel" "1" # Not yet implemented
# Option "AccelMethod" "EXA" # Experimental; lots of artifacts
Option "SubPixelOrder" "RGB"
Option "ConstantDPI" "1"
Option "DynamicClocks" "1"
Option "VGAAccess" "0"
# Option "DMAForXv" "0"
# Option "DDCMode" "1"
##
EndSection
Section "DRI"
Mode 0666
EndSection
|
# /etc/init.d/xdm start
Done.
-- Check for work --
| Code: $ LIBGL_DEBUG=verbose glxinfo |
name of display: :0.0 libGL: XF86DRIGetClientDriverName: 5.1.0 r300 (screen 0) libGL: OpenDriver: trying /usr/lib/dri/tls/r300_dri.so libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so drmOpenByBusid: Searching for BusID pci:0000:01:00.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 6, (OK) drmOpenByBusid: drmOpenMinor returns 6 drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0 display: :0 screen: 0 direct rendering: Yes |
good
| Code: $ dmesg |tail |
[drm] Initialized drm 1.0.1 20051102 PCI: Unable to reserve mem region #1:10000000@d0000000 for device 0000:01:00.0 ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 185 [drm] Initialized radeon 1.25.0 20060524 on minor 0: [drm] Used old pci detect: framebuffer loaded mtrr: 0xd0000000,0x10000000 overlaps existing 0xd0000000,0x8000000 mtrr: 0xd0000000,0x10000000 overlaps existing 0xd0000000,0x8000000 mtrr: 0xd0000000,0x10000000 overlaps existing 0xd0000000,0x8000000 agpgart: Found an AGP 3.0 compliant device at 0000:00:00.0. agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode [drm] Setting GART location based on new memory map [drm] Loading R300 Microcode [drm] writeback test succeeded in 1 usecs |
good
| Code: $ cat /var/log/Xorg.0.log|grep drm |
(II) Loading sub module "drm" (II) LoadModule: "drm" (II) Loading /usr/lib/xorg/modules/linux/libdrm.so (II) Module drm: vendor="X.Org Foundation" drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is -1, (No such device or address) drmOpenDevice: open result is -1, (No such device or address) drmOpenDevice: Open failed drmOpenByBusid: Searching for BusID pci:0000:01:00.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 7, (OK) drmOpenByBusid: drmOpenMinor returns 7 drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0 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:01:00.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 7, (OK) drmOpenByBusid: drmOpenMinor returns 7 drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0 (II) RADEON(0): [drm] DRM interface version 1.2 (II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:00.0" (II) RADEON(0): [drm] added 8192 byte SAREA at 0xf8f0d000 (II) RADEON(0): [drm] mapped SAREA 0xf8f0d000 to 0xb7f2f000 (II) RADEON(0): [drm] framebuffer handle = 0xd0000000 (II) RADEON(0): [drm] added 1 reserved context for kernel (II) RADEON(0): [drm] register handle = 0xfe9f0000 (II) RADEON(0): [drm] installed DRM signal handler (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 185 (II) RADEON(0): [drm] Initialized kernel GART heap manager, 130023424 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 8, (OK) drmOpenByBusid: Searching for BusID pci:0000:01:00.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 8, (OK) drmOpenByBusid: drmOpenMinor returns 8 drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0 |
good
| Code: $ cat /var/log/Xorg.0.log|grep dri |
X.Org XInput driver : 0.6
(II) LoadModule: "dri"
(II) Loading /usr/lib/xorg/modules/extensions/libdri.so
(II) Module dri: vendor="X.Org Foundation"
(II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
(II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
ABI class: X.Org XInput driver, version 0.6
ABI class: X.Org XInput driver, version 0.6
(II) ATI: ATI driver (version 6.6.1) for chipsets: ati, ativga
(II) Reloading /usr/lib/xorg/modules/drivers/radeon_drv.so
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: node name is /dev/dri/card0
(II) RADEON(0): [dri] Found DRI library version 1.2.0 and kernel module version 1.25.0
*** and newer cards. The 3d mesa driver is not provided in this tree.
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: node name is /dev/dri/card0
(II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:00.0"
(II) RADEON(0): [dri] Visual configs initialized
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: node name is /dev/dri/card0
(II) AIGLX: Loaded and initialized /usr/lib/dri/r300_dri.so
|
good
| Code: $ cat /var/log/Xorg.0.log|grep radeon |
(II) LoadModule: "radeon" (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so (II) Module radeon: vendor="X.Org Foundation" (II) Loading sub module "radeon" (II) LoadModule: "radeon" (II) Reloading /usr/lib/xorg/modules/drivers/radeon_drv.so (II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:00.0" |
good
| Code: $ cat /var/log/Xorg.0.log|grep render |
*** Direct rendering support is highly experimental for Radeon 9500
(II) RADEON(0): Direct rendering enabled
|
good
| Code: $ glxgears |
8983 frames in 5.0 seconds = 1796.500 FPS 9005 frames in 5.0 seconds = 1800.638 FPS 8951 frames in 5.0 seconds = 1790.104 FPS 8999 frames in 5.0 seconds = 1799.735 FPS |
good (sometimes it's can be 2798 FPS :D)
