LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   Cant get DRI working with ATI Radeon 7000 and Gentoo Linux (https://www.linuxquestions.org/questions/linux-hardware-18/cant-get-dri-working-with-ati-radeon-7000-and-gentoo-linux-259911/)

kofrad 11-27-2004 01:52 PM

Cant get DRI working with ATI Radeon 7000 and Gentoo Linux
 
I am trying to get the Direct Rendering Interface working for my ATI Radeon 7000 video card. I have tried everything I can think of and I am still not getting it working. I have followed the complete guide at http://www.gentoo.org/doc/en/dri-howto.xml to no avail. If I 'dmesg | grep drm', I see these errors:

Code:

[drm] Initialized radeon 1.11.0 20020828 on minor 0: ATI Technologies Inc Radeon RV100 QY [Radeon 7000/VE]
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:radeon_unlock] *ERROR* Process 8148 using kernel context 0
[drm:radeon_ati_pcigart_cleanup] *ERROR* no scatter/gather memory!
[drm:radeon_do_cleanup_cp] *ERROR* failed to cleanup PCI GART!

I also see errors in my /var/log/Xorg.0.log file:
Code:

drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: Open failed
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: Open failed
drmOpenByBusid: Searching for BusID pci:0000:00:0c.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 5, (OK)
drmOpenByBusid: drmOpenMinor returns 5
drmOpenByBusid: drmGetBusid reports pci:0000:00:0c.0
(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:00:0c.0"
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xcc922000
(II) RADEON(0): [drm] mapped SAREA 0xcc922000 to 0xb5cf4000
(II) RADEON(0): [drm] framebuffer handle = 0xd8000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(EE) RADEON(0): [pci] Out of memory (-1007)
(EE) RADEON(0): [pci] PCI failed to initialize. Disabling the DRI.

I have compiled everything needed in the kerenl as modules then built into the kernel. I have gotten nothing, I cant think of anything else, and cant afford a new video card. If someone could please help me out, I would greatly appreciate it.

Here is some more information:
Xorg version - 6.8.0
ATI Radeon 7000 32MB PCI
Gentoo Linux

If you need more information, ask me. I will greatly appreciate any help.

J.W. 11-27-2004 05:26 PM

Can you also post the contents of your xorg.conf file? Are you loading the dri module and have you uncommented the DRI section (typically at the bottom of the xorg.conf file)?

ATI cards can be difficult (I've spent more hours than I care to think about wrestling with them) but having the xorg.conf file visible would be a big help -- J.W.

kofrad 11-27-2004 09:00 PM

I am almost 100% positive I have set up everything in my xorg.conf file properly. I have the glx and dri modules loaded, and I tried the ati and radeon drivers for my card. I tried out XFree86 to see if it would work, but nothing, so I am compiling xorg right now. I still have my old config file below

EDIT: I cant get my xorg.conf file posted right now because I dont have the copy+paste functions a GUI gives. Xorg should be done in about an hour or so, I will update this post with my config then.

drphibes 11-27-2004 09:30 PM

I have an Ati Radeon 7000 working under Slackware 10. 0, xorg 6.8.1, kernel 2.6.10-rc2,
so don't panic -- this card does work. Should work under Gentoo also. I've been using
it for years now under many kernels. The stock "radeon" driver works under xorg 6.8.x.
There is an issue with the Mesa GL I had to work through for 6.8.1. I can help you with
that, the kernel settings and the x config file vagueries, but right now, i'm having another
beer and playing some quake.

Stay calm and keep your seat belt fastened until the captain says it's ok to move about
the cabin.

doc

kofrad 11-28-2004 12:56 AM

I got xorg re-merged, and edited the config file again to the way the gentoo guide told me too, still the same errors. When I looked at the DRI Wiki, I saw something about if I get "[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held" in an error message, I didn't configure my kernel properly. I made sure to compile in APG GART support for my AGP chipset and ATI chipsets, though my video card is a PCI card. I don't really know what else to try. Here is my xorg.conf file

Code:

# File generated by xorgconfig.

#
# Copyright 2004 The X.Org Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# The X.Org Foundation BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of The X.Org Foundation shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from
# The X.Org Foundation.
#

# **********************************************************************
# Refer to the xorg.conf(5x) man page for details about the format of
# this file.
# **********************************************************************

# **********************************************************************
# Module section -- this  section  is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
#
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

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

    RgbPath        "/usr/X11R6/lib/X11/rgb"

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
#
#

    FontPath  "/usr/share/fonts/misc/"
    FontPath  "/usr/share/fonts/TTF/"
    FontPath  "/usr/share/fonts/Type1/"
#    FontPath  "/usr/share/fonts/CID/"
    FontPath  "/usr/share/fonts/75dpi/"
    FontPath  "/usr/share/fonts/100dpi/"
    FontPath  "/usr/share/fonts/local/"
#    FontPath  "/usr/share/fonts/Speedo/"
#    FontPath  "/usr/share/fonts/TrueType/"
#    FontPath  "/usr/share/fonts/freefont/"

# The module search path.  The default path is shown here.

#    ModulePath "/usr/X11R6/lib/modules"

EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    Option "NoTrapSignals"

# Uncomment this to disable the <Crtl><Alt><Fn> VT switch sequence
# (where n is 1 through 12).  This allows clients to receive these key
# events.

#    Option "DontVTSwitch"

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.

#    Option "DontZap"

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.

#    Option "Dont Zoom"

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.

#    Option "DisableVidModeExtension"

# Uncomment this to enable the use of a non-local xvidtune client.

#    Option "AllowNonLocalXvidtune"

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.

#    Option "DisableModInDev"

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

#    Option "AllowNonLocalModInDev"

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************

Section "InputDevice"

    Identifier        "Keyboard1"
    Driver        "kbd"

# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris),
# uncomment the following line.

#    Option    "Protocol"      "Xqueue"

    Option "AutoRepeat" "500 30"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Option        "Xleds"      "1 2 3"

#    Option "LeftAlt"    "Meta"
#    Option "RightAlt"    "ModeShift"

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#    Option "XkbModel"    "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
#    Option "XkbModel"    "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#    Option "XkbLayout"  "de"
# or:
#    Option "XkbLayout"  "de"
#    Option "XkbVariant"  "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#    Option "XkbOptions"  "ctrl:swapcaps"

# These are the default XKB settings for Xorg
#    Option "XkbRules"    "xorg"
#    Option "XkbModel"    "pc101"
#    Option "XkbLayout"  "us"
#    Option "XkbVariant"  ""
#    Option "XkbOptions"  ""

#    Option "XkbDisable"

    Option "XkbRules"        "xorg"
    Option "XkbModel"        "pc101"
    Option "XkbLayout"        "us"

EndSection


# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"

# Identifier and driver

    Identifier        "Mouse1"
    Driver        "mouse"
    Option "Protocol"    "IMPS/2"
    Option "Device"      "/dev/psaux"
    Option "ZAxisMapping" "4 5"

# Mouse-speed setting for PS/2 mouse.

#    Option "Resolution"        "256"

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

#    Option "Protocol"        "Xqueue"

# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.

#    Option "BaudRate"        "9600"
#    Option "SampleRate"        "150"

# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

#    Option "Emulate3Buttons"
#    Option "Emulate3Timeout"    "50"

# ChordMiddle is an option for some 3-button Logitech mice

#    Option "ChordMiddle"

EndSection


# **********************************************************************
# Other input device sections
# this is optional and is required only if you
# are using extended input devices.  This is for example only.  Refer
# to the xorg.conf man page for a description of the options.
# **********************************************************************
#
# Section "InputDevice"
#    Identifier  "Mouse2"
#    Driver      "mouse"
#    Option      "Protocol"      "MouseMan"
#    Option      "Device"        "/dev/mouse2"
# EndSection
#
# Section "InputDevice"
#    Identifier "spaceball"
#    Driver    "magellan"
#    Option    "Device"        "/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier "spaceball2"
#    Driver    "spaceorb"
#    Option    "Device"        "/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier "touchscreen0"
#    Driver    "microtouch"
#    Option    "Device"        "/dev/ttyS0"
#    Option    "MinX"          "1412"
#    Option    "MaxX"          "15184"
#    Option    "MinY"          "15372"
#    Option    "MaxY"          "1230"
#    Option    "ScreenNumber"  "0"
#    Option    "ReportingMode" "Scaled"
#    Option    "ButtonNumber"  "1"
#    Option    "SendCoreEvents"
# EndSection
#
# Section "InputDevice"
#    Identifier "touchscreen1"
#    Driver    "elo2300"
#    Option    "Device"        "/dev/ttyS0"
#    Option    "MinX"          "231"
#    Option    "MaxX"          "3868"
#    Option    "MinY"          "3858"
#    Option    "MaxY"          "272"
#    Option    "ScreenNumber"  "0"
#    Option    "ReportingMode" "Scaled"
#    Option    "ButtonThreshold"      "17"
#    Option    "ButtonNumber"  "1"
#    Option    "SendCoreEvents"
# EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

    Identifier  "Dell E770"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    HorizSync  31.5 - 64.3

#    HorizSync        30-64        # multisync
#    HorizSync        31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync        15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

    VertRefresh 50-90

EndSection


# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
    Identifier        "Standard VGA"
    VendorName        "Unknown"
    BoardName        "Unknown"

# The chipset line is optional in most cases.  It can be used to override
# the driver's chipset detection, and should not normally be specified.

#    Chipset        "generic"

# The Driver line must be present.  When using run-time loadable driver
# modules, this line instructs the server to load the specified driver
# module.  Even when not using loadable driver modules, this line
# indicates which driver should interpret the information in this section.

    Driver    "vga"
# The BusID line is used to specify which of possibly multiple devices
# this section is intended for.  When this line isn't present, a device
# section can only match up with the primary video device.  For PCI
# devices a line like the following could be used.  This line should not
# normally be included unless there is more than one video device
# intalled.

#    BusID      "PCI:0:10:0"

#    VideoRam        256

#    Clocks        25.2 28.3

EndSection

# Device configured by xorgconfig:

Section "Device"
    Identifier  "ATI Radeon 7000 32MB PCI"
    Driver      "radeon"
    #VideoRam    32768
    # Insert Clocks lines here if appropriate
EndSection


# **********************************************************************
# Screen sections
# **********************************************************************

# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
    Identifier  "Screen 1"
    Device      "ATI Radeon 7000 32MB PCI"
    Monitor    "Dell E770"
    DefaultDepth 24

    Subsection "Display"
        Depth      8
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth      16
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth      24
        Modes      "1280x1024" "1024x768" "800x600" "640x480"
        ViewPort    0 0
    EndSubsection
EndSection

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

# Any number of ServerLayout sections may be present.  Each describes
# the way multiple screens are organised.  A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option.  In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.

Section "ServerLayout"

# The Identifier line must be present
    Identifier  "Simple Layout"

# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.  In this example, screen 2 is located to the
# right of screen 1.

    Screen "Screen 1"

# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".

    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"

EndSection

Section "DRI"
  Mode 0666
EndSection


Also, I know the Radeon works under Linux, I have had it with DRI before, this same install even, I just have no idea what happened to it.

UnTamed 11-28-2004 07:47 AM

I'd try Option "BusType" "PCI" in the Section "Device" of your config.

...see $man radeon

kofrad 11-28-2004 02:29 PM

The bus type option dosent work, I get the same results. I read the whole radeon man page and anything else I could find on the subject. Nothing. I'm gonna try some stuff with the kernel. Will update if I find anything.

EDIT: I didn't get anything after changing some kernel config options.

drphibes 11-28-2004 08:52 PM

I would try these things:

-- double-check your BIOS settings to be sure the mobo is configured properly for PCI video instead of AGP.
-- in the kernel disable any and all framebuffer support so as not to confuse the issue while you debug.
--- make sure these kernel configs are in there:
Code:

CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set

my card is an AGP card so I use these for AGP support:
Code:

CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=y
CONFIG_AGP_INTEL_MCH=y

-- my xorg config Module and Device sections:
Code:

Section "Module"
        Load    "extmod"
        Load    "dbe"          # double-buffering extensions
        Load    "dri"          # direct-rendering
        Load    "GLcore"
        Load    "glx"          # 3D layer
        Load    "record"
        Load    "xtrap"
        Load    "type1"        # fonts
        Load    "freetype"      # fonts
#      Load    "speedo"        # fonts
#      Load    "xtt"          # fonts
        Load    "v4l"          # video for linux
EndSection

Section "Device"
    Identifier  "ATI Radeon 7000"
    Driver      "radeon"
    VendorName  "ATI"
    BoardName  "Radeon VE/7000 QY"
    BusID      "PCI:1:0:0"
    Option      "AGPMode"    "4"
    Option      "AGPSize"    "64"

    # ATI Radeon 7000 doesnt support fast-writes
    #Option      "AGPFastWrite"  "yes" #requires dri modules

    Option      "EnablePageFlip" "True"
    Option      "RenderAccel"    "True"
EndSection

hope that helps ....

doc

kofrad 11-28-2004 10:31 PM

Well, I'm making some progress now. I went into my kernel, I disabled AGP GART support because my card is PCI, then I enabled the DRM, compilied. I then edited my Modules and Device section to match yours where needed. I rebooted, got back into X fine, but now is where the problem is. I try to run 'glxgears -info -v' and I get all the text showing my GL extensions and I see enough that tells me it is using direct rendering *yes*, but the first frame or two of animation starts, then my system completely hangs. Nothing is responding. I belive it is because the kernel DRM is for an older version of X, but the DRM for my version of X dosent seem to work for me.

drphibes 11-28-2004 11:30 PM

The problem you are having I struggled with until I finally discovered and fixed it. It's the Mesa 6.1 openGL implementation that comes with xorg 6.8.1. These are the software openGL libs (/usr/lib/libGL*.so, etc) that this card relies on. Newer cards don't use software openGL -- the hardware itself does the rendering, but the Radeon 7000 relies on the Mesa libs. Go here: http://www.mesa3d.org/ and download Mesa 6.2 into your /usr/local/src. Compile and install it following their directions of course and then set LD_LIBRARY_PATH to point into the lib directory you chose to install Mesa 6.2. In my case I installed it into /usr/local/lib/Mesa-6.2. Then, check to make sure that glxgears is pulling in the Mesa libs before you run it:

Code:

ldd `which glxgears`
You should see, e.g.

Code:

libGL.so.1 => /usr/local/lib/Mesa-6.2/libGL.so.1 (0xb7dcf000)
and not the /usr/lib/libGL.so version.

Your system will not hang if you do this. The next version of xorg should bundle Mesa 6.2 into it which would eliminate the need to do this. 6.1 is buggy and causes hang-ups, as the Mesa site explains.

Lemme know how you make out.

doc

P.S. I am using the same kernel DRM as you: 1.11.0 20020828, that comes with the latest stock 2.6 kernel: 2.6.10-rc2.

kofrad 11-29-2004 02:44 AM

I downloaded Mesa3D 6.2, compiled and installed it. I set LD_LIBRARY_PATH in my .bashrc file, and everything runs fine. The strange thing though is, glxgears runs slower than before, but my OpenGL screensavers run faster, with some pretty bad flicker in between frames. I remember reading that if I have DRM support in my kernel, the DRI will run with bad flicker or not at all. The howto said to use the x11-drm package, so I am going to try that one instead of the one in the kernel.

EDIT: I tried x11-drm, it got rid of the flicker, but seemed a lot buggier, everything ran slower and didn't really look the way it should. I am just going to switch back to the kernel DRM. I geuss I'm fine with the flicker.

EDIT: Now it's slow again, still using Mesa 6.2, but it is running slower than it did before. It's slower than it was with software rendering. Someone help :(

EDIT: For some reason, it did go back to software rendering. I decided to update my kernel and see if that will solve anything.

Anyways, thanks for all your help everyone, especially drphibes!

drphibes 11-29-2004 11:35 AM

Also make sure mtrr (memory type range registers) is configured for your kernel,
as well as the /proc fs. You'll need:

Code:

CONFIG_MTRR=y
...
CONFIG_PROC_FS=y

Check that mtrr is running:

Code:

$ dmesg | grep mtrr
mtrr: v2.0 (20020519)

and (with X running):

Code:

$ cat /proc/mtrr
reg00: base=0x00000000 (  0MB), size=1024MB: write-back, count=1
reg01: base=0xf8000000 (3968MB), size=  64MB: write-combining, count=2
reg02: base=0xf0000000 (3840MB), size=  32MB: write-combining, count=3

See /usr/src/linux/Documentation/mtrr.txt for more info on mtrr. It allows fast writes
to memory ranges -- essential for video.

doc

kofrad 11-30-2004 04:13 AM

I have proc and mtrr enabled in my kernel and they are both working fine. I upgraded my kernel, I don't think it will do much though as it was an update from 2.6.9-gentoo-r1 to 2.6.9-gentoo-r6. I will try anyway though.

kofrad 12-04-2004 02:43 PM

This is strange, I booted into the new kernel, and I checked for direct rendering, glxinfo reported I ddin't have it. I checked for kernel error messages with DRM, there were none, I checked my Xorg log for errors with the card, there were none. I can't seem to figure out what is going on here. The Xorg log says that it is enabling Direct Rendering too, but glxinfo reports no direct rendering.

oxblood 01-24-2005 11:39 PM

drphibes,

Maybe I'm a bit out of line here. I am currently running Slackware 9.1, XFree 4.3, with ATI Radeon 7500. I haven't updated the machine for a year and half and recently decided to move to Slackware 10. As I am making my decision, I remember I had hell of a problem with enabling 3D accel. I just can't figure out what I did that I got everything working smoothly. I know Slackware 10 uses Xorg 6.7 with 2.4.26 kernel so not sure if I going to encounter problems.

Now here's the thing, I know DRM, DRI, and agpgart are enabled as module in the kernel and here's the following information:

$ glxinfo
Code:

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
client glx vendor string: SGI
client glx version string: 1.2
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
OpenGL vendor string: Tungsten Graphics, Inc.
OpenGL renderer string: Mesa DRI Radeon 20020611 AGP 1x x86/MMX/SSE TCL
OpenGL version string: 1.2 Mesa 4.0.4
OpenGL extensions:
    GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
    GL_ARB_transpose_matrix, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
    GL_EXT_clip_volume_hint, GL_EXT_convolution, GL_EXT_compiled_vertex_array,
    GL_EXT_histogram, GL_EXT_packed_pixels, GL_EXT_polygon_offset,
    GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_texture3D,
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_object, GL_EXT_texture_lod_bias, GL_EXT_vertex_array,
    GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_MESA_window_pos,
    GL_NV_blend_square, GL_NV_texgen_reflection, GL_SGI_color_matrix,
    GL_SGI_color_table, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
 
  visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 24 tc  0 24  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x24 24 tc  0 24  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x25 24 tc  0 24  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 Slow
0x26 24 tc  0 24  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 Slow
0x27 24 tc  0 24  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x28 24 tc  0 24  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x29 24 tc  0 24  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 Slow
0x2a 24 tc  0 24  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 Slow
0x2b 24 dc  0 24  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2c 24 dc  0 24  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x2d 24 dc  0 24  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 Slow
0x2e 24 dc  0 24  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 Slow
0x2f 24 dc  0 24  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x30 24 dc  0 24  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x31 24 dc  0 24  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 Slow
0x32 24 dc  0 24  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 Slow

Well, as you can see I'm running an old Mesa software, 4.0.4 and Direct Rendering is enabled.

$ glxgears
Code:

5165 frames in 5.0 seconds = 1033.000 FPS
5791 frames in 5.0 seconds = 1158.200 FPS
5821 frames in 5.0 seconds = 1164.200 FPS
5775 frames in 5.0 seconds = 1155.000 FPS
5779 frames in 5.0 seconds = 1155.800 FPS
5757 frames in 5.0 seconds = 1151.400 FPS
5777 frames in 5.0 seconds = 1155.400 FPS

Which is pretty decent (P4 1.6 GHz, 256 DDR).

$ dmesg
Code:

Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 203M
agpgart: Detected SiS 645 chipset
agpgart: AGP aperture is 64M @ 0xe8000000
[drm] AGP 0.99 Aperture @ 0xe8000000 64MB
[drm] Initialized radeon 1.7.0 20020828 on minor 0

$ cat /proc/mtrr
Code:

reg00: base=0x00000000 (  0MB), size= 256MB: write-back, count=1
reg01: base=0xe8000000 (3712MB), size=  64MB: write-combining, count=2
reg02: base=0xf0000000 (3840MB), size=  64MB: write-combining, count=2

As you can see mtrr is enabled in the kernel.

Now, I was going to play around and get the stable release of Mesa before my migration to Slackware 10, so I compiled Mesa 6.2.1 and, as documented, set the library path to see how it goes... But unfortunately it got slower and for some reason direct rendering got disabled!

glxinfo with the new Mesa
Code:

name of display: :0.0
display: :0  screen: 0
direct rendering: No
server glx vendor string: Brian Paul
server glx version string: 1.4 Mesa 6.2.1
server glx extensions:
    GLX_MESA_copy_sub_buffer, GLX_MESA_pixmap_colormap,
    GLX_MESA_release_buffers, GLX_ARB_get_proc_address, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_SGI_video_sync, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer
client glx vendor string: Brian Paul
client glx version string: 1.4 Mesa 6.2.1
client glx extensions:
    GLX_MESA_copy_sub_buffer, GLX_MESA_pixmap_colormap,
    GLX_MESA_release_buffers, GLX_ARB_get_proc_address, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_SGI_video_sync, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer
GLX extensions:
    GLX_MESA_copy_sub_buffer, GLX_MESA_pixmap_colormap,
    GLX_MESA_release_buffers, GLX_ARB_get_proc_address, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_SGI_video_sync, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer
OpenGL vendor string: Brian Paul
OpenGL renderer string: Mesa X11
OpenGL version string: 1.5 Mesa 6.2.1
OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_imaging,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,
    GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,
    GL_ARB_texture_compression, GL_ARB_texture_cube_map,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_window_pos,
    GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
    GL_EXT_clip_volume_hint, GL_EXT_compiled_vertex_array, GL_EXT_convolution,
    GL_EXT_copy_texture, GL_EXT_depth_bounds_test, GL_EXT_draw_range_elements,
    GL_EXT_fog_coord, GL_EXT_histogram, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_pixels, GL_EXT_paletted_texture, GL_EXT_pixel_buffer_object,
    GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,
    GL_EXT_secondary_color, GL_EXT_separate_specular_color,
    GL_EXT_shadow_funcs, GL_EXT_shared_texture_palette,
    GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture,
    GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
    GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels,
    GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3,
    GL_ATI_texture_mirror_once, GL_HP_occlusion_test,
    GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
    GL_MESA_pack_invert, GL_MESA_program_debug, GL_MESA_resize_buffers,
    GL_MESA_ycbcr_texture, GL_MESA_window_pos, GL_NV_blend_square,
    GL_NV_fragment_program, GL_NV_light_max_exponent, GL_NV_point_sprite,
    GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_NV_vertex_program,
    GL_NV_vertex_program1_1, GL_SGI_color_matrix, GL_SGI_color_table,
    GL_SGI_texture_color_table, GL_SGIS_generate_mipmap,
    GL_SGIS_pixel_texture, GL_SGIS_texture_border_clamp,
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
    GL_SGIX_pixel_texture, GL_SGIX_shadow, GL_SGIX_shadow_ambient,
    GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
 
  visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16  0  0 0 None
0x24 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x25 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x26 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x27 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x28 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x29 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x2a 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x2b 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x2c 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x2d 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x2e 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x2f 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x30 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x31 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None
0x32 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None

And glxgears craps big time:
Code:

1121 frames in 5.0 seconds = 224.200 FPS
1248 frames in 5.0 seconds = 249.600 FPS
1228 frames in 5.0 seconds = 245.600 FPS
1247 frames in 5.0 seconds = 249.400 FPS
680 frames in 5.0 seconds = 136.000 FPS
192 frames in 5.0 seconds = 38.400 FPS
910 frames in 5.0 seconds = 182.000 FPS

What gives?


All times are GMT -5. The time now is 03:52 PM.