Announcement

Collapse
No announcement yet.

Running radeonsi on Ubuntu 13.04

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

  • Running radeonsi on Ubuntu 13.04

    There does not seem to be that much information about how to run radeonsi.
    So I tried with my HD 7750 on (K)Ubuntu Raring, and documented what I did.

    Since glamor is required, and it does not support the X version in Ubuntu, xorg-server has to be downgraded.
    While running this process, I had to use a bit of force (dpkg --force-depends -P) to remove conflicting packages.
    But in the end, apt is in a OK state.

    1. Fetch, build and install debian xorg-server 1.12.4 (git://git.debian.org/git/pkg-xorg/xserver/xorg-server branch debian-unstable).

    2. Blacklist xorg 1.13 in apt preferences, to prevent reinstallation.
    Package: xserver-common
    Pin: version 2:1.13*
    Pin-Priority: -1

    Package: xserver-xorg-core
    Pin: version 2:1.13*
    Pin-Priority: -1

    Package: xserver-xorg-dev
    Pin: version 2:1.13*
    Pin-Priority: -1

    3. Fetch mesa 9.1 (git://git.debian.org/git/pkg-xorg/lib/mesa branch ubuntu). Add --enable-gbm to debian/rules. Build and install.

    4. Fetch glamor (git://anongit.freedesktop.org/git/xorg/driver/glamor). Configure and pay attention to missing dependencies manually, since there is no packaging (./configure --enable-glx-tls --prefix=/usr).
    make install.

    5. Fetch xf86-video-ati (git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-ati branch ubuntu).
    In debian/control remove the version dependency for xserver-xorg-dev. Also remove the dependencies on xserver-xorg-video-r128 and xserver-xorg-video-mach64 completely.
    Build and install.

    6. To get mouse/keyboard, I also had to rebuild xserver-xorg-input-evdev. If you use other drivers, those would also have to be recompiled.
    Fetch xf86-input-evdev (git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-input-evdev branch ubuntu). In debian/control remove the version dependency for xserver-xorg-dev.
    Build and install.

    Those where the minimal changes I was able to get it running with.
    LLVM 3.2 in raring already has the r600g driver backported, and kernel 3.8 works.

    I also tried latest LLVM git, Mesa git, and kernel 3.9-rc1+, but no significant differences.

    KDE Desktop effects works.
    Nexuiz runs at 22 fps at 1920x1200.
    I thought I have Rochard running, but trying again just gives a black screen.
    Torchlight immediately locks up the GPU, but the machine still responds over ssh.
    Lightsmark 2008 completely freezes the machine after a few tests.

    I could not test Trine, since it crashes the X server both with nouveau and radeonsi.

  • #2
    I forgot two steps in xf86-video-ati.

    In debian/rules add
    override_dh_auto_configure:
    dh_auto_configure -- --enable-glamor

    In debian/patches/series remove
    reverse-prime.patch

    Comment


    • #3
      And another thing I forgot, /etc/X11/xorg.conf needs to be configured:
      Section "Module"

      Load "dri2"
      Load "glamoregl"

      EndSection
      Section "Device"

      Identifier "ati"
      Driver "ati"

      Option "AccelMethod" "glamor"

      EndSection

      Comment


      • #4
        Well, that was a lot of unnecessary work: http://lists.x.org/archives/xorg-dev...ch/035721.html.
        It did not even occur to me to try the stock xorg-server, as the Glamor page says it would be unreliable with 1.13+, http://www.freedesktop.org/wiki/Software/Glamor.

        I guess step 1, 2 and 6 are unnecessary.

        Comment


        • #5
          Did you actually have luck in trying it? I tried prime with it and it looks good so far, X.Org X Server 1.14.0, xf86-video-intel with uxa, xf86-video-ati compiled with glamor

          Code:
           ~ % xrandr --listproviders
          Providers: number : 2
          Provider 0: id: 0x70 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 8 associated providers: 0 name:Intel
          Provider 1: id: 0x45 cap: 0xd, Source Output, Source Offload, Sink Offload crtcs: 6 outputs: 0 associated providers: 0 name:radeon
           ~ % xrandr --setprovideroffloadsink 1 0
           ~ % DRI_PRIME=0 glxinfo | grep OpenGL
          OpenGL vendor string: Intel Open Source Technology Center
          OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
          OpenGL core profile version string: 3.1 (Core Profile) Mesa 9.2-devel (git-11b8df0)
            OpenGL core profile shading language version string: 1.40
            OpenGL core profile context flags: (none)
            OpenGL core profile extensions:
            OpenGL version string: 3.0 Mesa 9.2-devel (git-11b8df0)
            OpenGL shading language version string: 1.30
            OpenGL context flags: (none)
            OpenGL extensions:
          But as soon as I do "DRI_PRIME=1 glxinfo" X segfaults
          Code:
          [  5449.109] (EE) Backtrace:
          [  5449.112] (EE) 0: /usr/bin/X (xorg_backtrace+0x36) [0x589a36]
          [  5449.112] (EE) 1: /usr/bin/X (0x400000+0x18d849) [0x58d849]
          [  5449.112] (EE) 2: /usr/lib/libpthread.so.0 (0x7f7193af7000+0xf1e0) [0x7f7193b061e0]
          [  5449.112] (EE) 3: /usr/bin/X (0x400000+0x15a46b) [0x55a46b]
          [  5449.112] (EE) 4: /usr/bin/X (DRI2Connect+0x77) [0x55c317]
          [  5449.112] (EE) 5: /usr/bin/X (0x400000+0x15d4d4) [0x55d4d4]
          [  5449.112] (EE) 6: /usr/bin/X (0x400000+0x37d46) [0x437d46]
          [  5449.113] (EE) 7: /usr/bin/X (0x400000+0x2680a) [0x42680a]
          [  5449.113] (EE) 8: /usr/lib/libc.so.6 (__libc_start_main+0xf5) [0x7f7192983a15]
          [  5449.113] (EE) 9: /usr/bin/X (0x400000+0x26b4d) [0x426b4d]
          [  5449.113] (EE)
          [  5449.113] (EE) Segmentation fault at address 0x28
          As far as I know this is because prime needs acceleration, i.e. glamor and there is no error reporting for a case where it doesn't work yet.

          I even tried "LD_PRELOAD=/usr/lib/xorg/modules/libglamor.so X :1" but I only got "sh: symbol lookup error: /usr/lib/xorg/modules/libglamor.so: undefined symbol: serverClient"
          Last edited by ChrisXY; 11 March 2013, 06:32 PM.

          Comment


          • #6
            Yes, I am using xserver-xorg-core 2:1.13.2-0ubuntu3 now. But I have also upgraded other packages (LLVM git, Mesa git, Linux git), since some crashing bugs are gone with them.

            I have not tried using prime.

            Comment


            • #7
              radeonsi driver Ubuntu 12.10 and 13.04

              Since the recent refresh of xorg-edgers repositories, it has become much easier to compile the necessary
              mesa support without the need fro llvm3.3. Here is a recipe for easy enabling radeonsi,
              tested working on both Ubuntu 12.10 & 13.04. This can be easily made into install script,
              feel free to do it at your own convenience.

              First, we need to temporarily enable xorg-edgers repo, just to retrieve the sources & some dev tools and libs
              Code:
              sudo apt-get -y install build-essential git xutils-dev xorg-dev
              mkdir radeonsi
              cd radeonsi
              sudo add-apt-repository -y -s ppa:xorg-edgers/ppa
              sudo apt-get update
              apt-get source mesa
              apt-get source xserver-xorg-video-ati
              sudo apt-get -y build-dep mesa
              sudo apt-get -y install mesa-utils
              sudo add-apt-repository -r -y ppa:xorg-edgers/ppa
              sudo apt-get update
              Next, we compile mesa, with gbm support enabled (this will take some time)
              Code:
              JOBS=$(cat /proc/cpuinfo | grep ^processor | tail -n1 | awk '{ print $3 }')
              ARCH=$([ "$(uname -m)" != "x86_64" ] && echo "i386" || echo "amd64")
              MESAREVISION=$(ls -d mesa*/ | grep -o "9.[0-9].[0-9]~git[a-z0-9.+]*")
              MESAPPAREVISION=$(ls mesa_$MESAREVISION*.dsc | grep -o "\-[0-9]ubuntu[0-9][a-z]*[~_a-z3864]*")
              MESAPKGSUFFIX=${MESAREVISION}${MESAPPAREVISION}_${ARCH}.deb
              ATIDRVREVISION=$(ls -d xserver-xorg-video-ati*/ | grep -o "[\.0-9]*+git[a-z0-9.]*")
              ATIDRVPPAREVISION=$(ls xserver-xorg-video-ati_$ATIDRVREVISION*.dsc | grep -o "\-[0-9]ubuntu[0-9][a-z]*[~_a-z3864]*")
              ATIDRVPKGSUFFIX=${ATIDRVREVISION}${ATIDRVPPAREVISION}_${ARCH}.deb
              cd mesa-$MESAREVISION
              sed -i 's|../../configure --prefix=/usr|../../configure --enable-gbm --prefix=/usr|' debian/rules
              time dpkg-buildpackage -b -j$JOBS
              cd ..
              Next, assuming the mesa compilation was successful, we install mesa packages
              Code:
              sudo dpkg -i libegl1-mesa_$MESAPKGSUFFIX libegl1-mesa-dev_$MESAPKGSUFFIX \
                           libegl1-mesa-drivers_$MESAPKGSUFFIX libgbm1_$MESAPKGSUFFIX \
                           libgbm-dev_$MESAPKGSUFFIX libgl1-mesa-dev_$MESAPKGSUFFIX \
                           libgl1-mesa-dri_$MESAPKGSUFFIX libgl1-mesa-dri-experimental_$MESAPKGSUFFIX \
                           libgl1-mesa-glx_$MESAPKGSUFFIX libglapi-mesa_$MESAPKGSUFFIX \
                           libgles1-mesa_$MESAPKGSUFFIX libgles1-mesa-dev_$MESAPKGSUFFIX \
                           libgles2-mesa_$MESAPKGSUFFIX libgles2-mesa-dev_$MESAPKGSUFFIX \
                           mesa-common-dev_$MESAPKGSUFFIX libosmesa6_$MESAPKGSUFFIX \
                           libosmesa6-dev_$MESAPKGSUFFIX libxatracker1_$MESAPKGSUFFIX \
                           libxatracker-dev_$MESAPKGSUFFIX libopenvg1-mesa_$MESAPKGSUFFIX \
                           libopenvg1-mesa-dev_$MESAPKGSUFFIX
              Next, time to compile and install glamor. Unfortunately, this will not be packaged into a deb, manuall install is nedeed
              Code:
              git clone git://anongit.freedesktop.org/git/xorg/driver/glamor
              cd glamor
              ./autogen.sh --enable-glx-tls --prefix=/usr
              make -j$JOBS
              sudo make install
              cd ..
              Almost there, time to compile and install ati/radeon driver for X
              Code:
              sudo apt-get -y build-dep xserver-xorg-video-ati
              cd xserver-xorg-video-ati-$ATIDRVREVISION
              sed -i 's|\(XXV=xserver-xorg-video\)|\1\n\noverride_dh_auto_configure:\n\tdh_auto_configure -- --enable-glamor|' debian/rules
              sed -i 's|dh_shlibdeps -- --warnings=6|dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info|' debian/rules
              time dpkg-buildpackage -b -j$JOBS
              cd ..
              sudo dpkg -i xserver-xorg-video-ati_$ATIDRVPKGSUFFIX xserver-xorg-video-radeon_$ATIDRVPKGSUFFIX

              Finally, all left to be done is a manual change of xorg.conf
              Code:
              [ -f /etc/xorg.conf ] && sudo cp /etc/xorg.conf /etc/xorg.conf.BACKUP.$(date -Iseconds)
              TAB="$(printf '\t')"
              sudo bash -c "cat > /etc/xorg.conf" << EOF
              Section "Module"
              ${TAB}Load "dri2"
              ${TAB}Load "glamoregl"
              EndSection
              
              Section "Device"
              ${TAB}Identifier "ati"
              ${TAB}Driver "ati"
              ${TAB}Option "AccelMethod" "glamor"
              EndSection
              EOF
              Now, if only somebody with the proper authority can convince xorg-edgers into adding --enable-gbm switch into mesa, this would be way more easier to do...
              BTW, anyone heard of glamor deb package?
              Last edited by Zgembo; 07 April 2013, 03:16 AM. Reason: added missing code...

              Comment


              • #8
                Hello, I tried to install the radeon 7750, nothing works and the PC consumes 40 watts more.
                I just wanted to know why not add support for the series radeonsi Ubuntu 13.04.

                Comment


                • #9
                  Originally posted by Zgembo View Post
                  Finally, all left to be done is a manual change of xorg.conf
                  Code:
                  [ -f /etc/xorg.conf ] && sudo cp /etc/xorg.conf /etc/xorg.conf.BACKUP.$(date -Iseconds)
                  TAB="$(printf '\t')"
                  sudo bash -c "cat > /etc/xorg.conf" << EOF
                  Section "Module"
                  ${TAB}Load "dri2"
                  ${TAB}Load "glamoregl"
                  EndSection
                  
                  Section "Device"
                  ${TAB}Identifier "ati"
                  ${TAB}Driver "ati"
                  ${TAB}Option "AccelMethod" "glamor"
                  EndSection
                  EOF
                  I don't think this is needed after http://cgit.freedesktop.org/xorg/dri...9ec50ef3b769f1

                  Comment


                  • #10
                    Yes, but that commit is not yet included in a xorg/driver/xf86-video-ati version available at xorg-edgers.
                    They are at git 3e5350be, from 20130315, and the commit you mention arrived 10 days later...
                    Last edited by Zgembo; 07 April 2013, 04:04 AM.

                    Comment

                    Working...
                    X