Announcement

Collapse
No announcement yet.

ATI R600/700 OSS 3D Driver Reaches Gears Milestone

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Originally posted by legume View Post
    In a terminal do

    LIBGL_ALWAYS_INDIRECT=1 openarena

    and hope it runs for you (doesn't seem to work for everyone - game refuses to start)
    Thanks. Helped the game a lot.
    Windowed mode is a bit flickery though.

    Comment


    • Hi all, first post so apologies if my issue is trivial

      I left linux years ago (decade?) only to start again with ubuntu 8.04 (now on 9.04_x64), and since then I've been hooked. I guess I'm more of an Out Of The Box user usually (easier to convince my friends too), but the recent developments in this thread are just too exciting to wait for the eventual merge. So big thanks to the devs for that.

      Unfortunately, I cannot enjoy this initial 3D support. Before trying these experimental drivers, I was experiencing this bug with the default drivers (fresh install, never used fglrx). Now when Ubuntu loads, I get a uniform black screen instead of garbage, the mouse cursor is still visible and I hear the intro sound. I can even type (in the dark) glxinfo and other commands, and from their ouput I'd say the install steps on bridgman's blog worked for me. To restore display, I have to disable DRI (Ctrl+Alt+F2 to edit xorg.conf).

      I was wondering if you devs could investigate if this issue can be solved quickly, so that I can contribute in testing more bits of this driver. I have an HD3650 AGP and from the dmesg, it looks like it's an AGP aperture size issue (I don't have BIOS settings on my GA-K8VM800Mv1)

      Thanks again for your efforts and sorry if this is too off-topic

      PY (from Australia, so I may not be able to respond quickly)


      Here are some extracts of outputs of interest (full logs are posted in the bug report):

      lspci -vvnn:

      01:00.0 VGA compatible controller [0300]: ATI Technologies Inc RV635 PRO AGP [Radeon HD 3650] [1002:9596]
      Subsystem: Hightech Information System Ltd. Device [1787:0028]
      Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
      Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
      Latency: 32 (2000ns min), Cache Line Size: 32 bytes
      Interrupt: pin A routed to IRQ 16
      Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M]
      Region 1: I/O ports at 9000 [size=256]
      Region 2: Memory at e5000000 (32-bit, non-prefetchable) [size=64K]
      [virtual] Expansion ROM at e4000000 [disabled] [size=128K]
      Capabilities: <access denied>
      Kernel driver in use: radeon

      **********************************

      Xorg.0.log warnings:

      (WW) RADEON(0): DRI init changed memory map, adjusting ...
      (WW) RADEON(0): MC_FB_LOCATION was: 0x00ef00d0 is: 0x00ef00d0
      (WW) RADEON(0): MC_AGP_LOCATION was: 0x003f0000 is: 0x0000f000

      **********************************

      glxinfo:

      OpenGL vendor string: Advanced Micro Devices, Inc.
      OpenGL renderer string: Mesa DRI R600 (RV635 9596) 20090101 AGP 8x TCL
      OpenGL version string: 1.4 Mesa 7.6-devel

      **********************************

      dmesg:

      [ 0.004000] Checking aperture...
      [ 0.004000] AGP bridge at 00:00:00
      [ 0.004000] Aperture from AGP @ e0000000 old size 32 MB
      [ 0.004000] Aperture from AGP @ e0000000 size 64 MB (APSIZE f30)
      [ 0.004000] Node 0: aperture @ e0000000 size 64 MB

      [ 20.698298] [drm] Initialized drm 1.1.0 20060810
      [ 20.748604] [drm] Initialized radeon 1.29.0 20080613 on minor 0
      [ 21.119111] agpgart-amd64 0000:00:00.0: AGP 3.0 bridge
      [ 21.119131] agpgart: Xorg tried to set rate=x12. Setting to AGP3 x8 mode.
      [ 21.119137] agpgart-amd64 0000:00:00.0: putting AGP V3 device into 8x mode
      [ 21.119197] radeon 0000:01:00.0: putting AGP V3 device into 8x mode
      [ 21.189794] [drm] Setting GART location based on new memory map
      [ 21.189801] [drm] Can't use AGP base @0xe0000000, won't fit
      [ 21.204686] [drm] Loading RV635 CP Microcode
      [ 21.204928] [drm] Loading RV635 PFP Microcode
      [ 21.219856] [drm] Resetting GPU
      [ 21.322572] [drm] writeback test failed 0 deadbeef

      [ 104.852206] [drm] Resetting GPU

      **********************************

      Full xorg.cong:

      Section "Device"
      Identifier "Configured Video Device"
      # Option "DRI" "off" # Commented during tests, disabled to restore display
      # Option "AGPMode" "8"
      # Option "AGPMode" "4"
      # Option "AGPMode" "2"
      # Option "AGPMode" "1"
      # Option "GARTSize" "64"
      # Option "GARTSize" "32"
      EndSection

      Section "Monitor"
      Identifier "Configured Monitor"
      EndSection

      Section "Screen"
      Identifier "Default Screen"
      Monitor "Configured Monitor"
      Device "Configured Video Device"
      EndSection

      Comment


      • Ugh, AGP.

        Does:
        Option "BusType" "PCIE"
        in the device section of your config help?

        Comment


        • Option "BusType" "PCIE" worked quite well, thanks!

          Display is restored and glxgears gives:
          IRQ's not enabled, falling back to busy waits: 2 16
          no rrb
          1754 frames in 5.0 seconds = 350.783 FPS
          1686 frames in 5.0 seconds = 337.052 FPS
          And fullscreen:
          673 frames in 5.0 seconds = 134.502 FPS
          678 frames in 5.0 seconds = 135.466 FPS

          Without compiz, the only issue is the corrupted mouse icons (anything from Evolution to a folder icon)
          With compiz, the cube works (although background is black and can't see gears, but that's minor at this stage) and I get also the corrupted fonts when typing like others have reported.

          To help with troubleshooting, I made a diff on both dmesg and Xorg.0.log. "<" refers to what dissapeared from previous mode, ">" is the addition with PCIE option. I'd say most of the diff is about memory allocation...

          dmesg

          [ 20.698298] [drm] Initialized drm 1.1.0 20060810
          [ 20.748604] [drm] Initialized radeon 1.29.0 20080613 on minor 0
          < [ 21.119111] agpgart-amd64 0000:00:00.0: AGP 3.0 bridge
          < [ 21.119131] agpgart: Xorg tried to set rate=x12. Setting to AGP3 x8 mode.
          < [ 21.119137] agpgart-amd64 0000:00:00.0: putting AGP V3 device into 8x mode
          < [ 21.119197] radeon 0000:01:00.0: putting AGP V3 device into 8x mode
          [ 21.189794] [drm] Setting GART location based on new memory map
          < [ 21.189801] [drm] Can't use AGP base @0xe0000000, won't fit
          [ 21.204686] [drm] Loading RV635 CP Microcode
          [ 21.204928] [drm] Loading RV635 PFP Microcode
          [ 21.219856] [drm] Resetting GPU
          [ 21.322572] [drm] writeback test failed 0 deadbeef
          > [ 21.172120] [drm] writeback forced off
          ...
          < [ 104.852206] [drm] Resetting GPU

          Xorg.0.log

          > (**) RADEON(0): Option "BusType" "PCIE"
          > (**) RADEON(0): Forced into PCI Express mode
          < (II) RADEON(0): Will not try to use DMA for Xv image transfers
          > (II) RADEON(0): Will try to use DMA for Xv image transfers
          (II) RADEON(0): RADEONInitMemoryMap() :
          (II) RADEON(0): mem_size : 0x20000000
          (II) RADEON(0): MC_FB_LOCATION : 0x00ef00d0
          (II) RADEON(0): MC_AGP_LOCATION : 0x003f0000
          (II) RADEON(0): Depth moves disabled by default
          < (II) RADEON(0): Allocating from a screen of 262144 kb
          > (II) RADEON(0): Allocating from a screen of 262080 kb
          (II) RADEON(0): Will use 32 kb for hardware cursor 0 at offset 0x00640000
          (II) RADEON(0): Will use 32 kb for hardware cursor 1 at offset 0x00644000
          (II) RADEON(0): Will use 6400 kb for front buffer at offset 0x00000000
          > (II) RADEON(0): Will use 64 kb for PCI GART at offset 0x0fff0000
          (II) RADEON(0): Will use 6400 kb for back buffer at offset 0x00648000
          (II) RADEON(0): Will use 6400 kb for depth buffer at offset 0x00c88000
          (II) RADEON(0): Will use 120832 kb for textures at offset 0x012c8000
          < (II) RADEON(0): Will use 122080 kb for X Server offscreen at offset
          > (II) RADEON(0): Will use 122016 kb for X Server offscreen at offset
          < (II) RADEON(0): [agp] Mode 0x1f000a1b [AGP 0x1106/0x0204; Card 0x1002/0x9596 0x1787/0x0028]
          (II) RADEON(0): [pci] 32768 kB allocated with handle 0x00a0a200
          (II) RADEON(0): [pci] ring handle = 0x2efff000
          (II) RADEON(0): [pci] Ring mapped at 0x7f5af6e9b000
          > (II) RADEON(0): [pci] Ring contents 0x00000000
          (II) RADEON(0): [pci] ring read ptr handle = 0x1f000000
          (II) RADEON(0): [pci] Ring read ptr mapped at 0x7f5af6e9a000
          > (II) RADEON(0): [pci] Ring read ptr contents 0x00000000
          (II) RADEON(0): [pci] vertex/indirect buffers handle = 0x2f000000
          (II) RADEON(0): [pci] Vertex/indirect buffers mapped at 0x7f5ae2286000
          > (II) RADEON(0): [pci] Vertex/indirect buffers contents 0x00000000
          (II) RADEON(0): [pci] GART texture map handle = 0x2f001000
          (II) RADEON(0): [pci] GART Texture map mapped at 0x7f5ae0606000
          (WW) RADEON(0): DRI init changed memory map, adjusting ...
          (WW) RADEON(0): MC_FB_LOCATION was: 0x00ef00d0 is: 0x00ef00d0
          < (WW) RADEON(0): MC_AGP_LOCATION was: 0x003f0000 is: 0x0000f000
          > (WW) RADEON(0): MC_AGP_LOCATION was: 0x003f0000 is: 0x00030000
          (II) RADEON(0): RADEONRestoreMemMapRegisters() :
          (II) RADEON(0): MC_FB_LOCATION : 0x00ef00d0 0x00ef00d0
          < (II) RADEON(0): MC_AGP_LOCATION : 0x0000f000
          > (II) RADEON(0): MC_AGP_LOCATION : 0x00030000
          < (II) EXA(0): Offscreen pixmap area of 125009920 bytes
          > (II) EXA(0): Offscreen pixmap area of 124944384 bytes
          (II) EXA(0): Driver registered support for the following operations:
          (II) Solid
          (II) Copy
          (II) Composite (RENDER acceleration)
          > (II) UploadToScreen
          > (II) DownloadFromScreen
          (II) RADEON(0): RADEONRestoreMemMapRegisters() :
          (II) RADEON(0): MC_FB_LOCATION : 0x00ef00d0 0x00ef00d0
          < (II) RADEON(0): MC_AGP_LOCATION : 0x0000f000
          > (II) RADEON(0): MC_AGP_LOCATION : 0x00030000

          Comment


          • Originally posted by pvautrin View Post
            Without compiz, the only issue is the corrupted mouse icons (anything from Evolution to a folder icon)
            Corruption with AGP can often be fixed with -

            Option "AccelDFS" "off"

            I have an AGP card and if I use PCIE I notice I get high Xv CPU use, this can be fixed with -

            Option "DMAForXv" "false"

            Edit: I hope it just doesn't affect you, but I've just retested a problem I found for me using PCIE - I get a hard lockup if I use power saving options, it only seems to happen when the clock is turned back up - so when quiting X or when coming out of dpms.
            Last edited by legume; 24 August 2009, 10:05 AM.

            Comment


            • Originally posted by pvautrin View Post
              Option "BusType" "PCIE" worked quite well, thanks!

              Display is restored and glxgears gives:
              IRQ's not enabled, falling back to busy waits: 2 16
              no rrb
              1754 frames in 5.0 seconds = 350.783 FPS
              1686 frames in 5.0 seconds = 337.052 FPS
              And fullscreen:
              673 frames in 5.0 seconds = 134.502 FPS
              678 frames in 5.0 seconds = 135.466 FPS

              Without compiz, the only issue is the corrupted mouse icons (anything from Evolution to a folder icon)
              With compiz, the cube works (although background is black and can't see gears, but that's minor at this stage) and I get also the corrupted fonts when typing like others have reported.

              To help with troubleshooting, I made a diff on both dmesg and Xorg.0.log. "<" refers to what dissapeared from previous mode, ">" is the addition with PCIE option. I'd say most of the diff is about memory allocation...
              Forcing PCIE mode also enables EXA DFS/UTS which are problematic on AGP cards.
              Option "EXANoDownloadFromScreen"
              should fix the cursor and icon issues. Also direct rendered apps do not work properly with composite managers with dri1, so direct rendered apps won't show up properly on the cube until we get dri2 working on r6xx/r7xx hardware.

              Comment


              • Current git problem, Xorg.0.log shows error: undefined symbol: _glapi_SingleThreaded

                Code:
                bash-3.1$ cat /var/log/X*log | grep EE
                	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
                (II) Loading extension MIT-SCREEN-SAVER
                (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/r600_dri.so failed (/usr/lib/xorg/modules/dri/r600_dri.so: undefined symbol: _glapi_SingleThreaded)
                (EE) AIGLX: reverting to software rendering
                (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/swrast_dri.so failed (/usr/lib/xorg/modules/dri/swrast_dri.so: undefined symbol: _glapi_SingleThreaded)
                (EE) GLX: could not load software renderer

                Comment


                • Originally posted by forum1793 View Post
                  Current git problem, Xorg.0.log shows error: undefined symbol: _glapi_SingleThreaded

                  Code:
                  bash-3.1$ cat /var/log/X*log | grep EE
                  	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
                  (II) Loading extension MIT-SCREEN-SAVER
                  (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/r600_dri.so failed (/usr/lib/xorg/modules/dri/r600_dri.so: undefined symbol: _glapi_SingleThreaded)
                  (EE) AIGLX: reverting to software rendering
                  (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/swrast_dri.so failed (/usr/lib/xorg/modules/dri/swrast_dri.so: undefined symbol: _glapi_SingleThreaded)
                  (EE) GLX: could not load software renderer
                  You want to revert a cimmit until AIGLX gets updated:

                  commit 17090cf3efb0db8fa01b502a9c0df27cbd1a67da
                  Author: Chia-I Wu <[email protected]>
                  Date: Fri Jul 10 15:28:55 2009 +0800

                  glapi: Fix a possible race in getting current context/dispatch.

                  There is a possbile race that _glapi_Context is reset by another thread
                  after it is tested in GET_CURRENT_CONTEXT but before it is returned. We
                  definitely do not want a lock here to solve the race. To have correct
                  results even under a race, no other threads should reset _glapi_Context
                  (or _glapi_Dispatch).

                  This patch adds a new global variable _glapi_SingleThreaded. Since
                  _glapi_Context or _glapi_Dispatch are no longer reset,
                  _glapi_SingleThreaded is tested instead, before accessing them.

                  DRI drivers compiled with this patch applied will not work with existing
                  libGL.so because of the missing new symbol. If this turns out to be a
                  real problem, this patch should be reverted.

                  Signed-off-by: Chia-I Wu <[email protected]>

                  Comment


                  • My build script for mesa replaces libGL.so and the DRIs (r600_dri.so, radeon_dri.so, and swrast_dri.so) every build.

                    These are all in mesa.

                    Not sure how this commit then can work for anyone. Perhaps it should be reverted in master until whatever else is needed is fixed.

                    If not, I'm not that familiar with git. Would I have to revert the same commit every time a git pull is executed or will it remember?

                    If a subsequent change is made to the commit (that I reverted), how will this be handled?

                    Comment


                    • It changes the interface to the dri driver so the xserver has to be built against the new interface or it can't load the new 3d drivers since it expects the old interface. Kind of a chicken or egg problem. You should be able to use the drivers for direct rendering if you keep an old version around for indirect.

                      Comment

                      Working...
                      X