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)

Личные инструменты