Announcement

Collapse
No announcement yet.

Low performance with AMD gallium driver

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

  • Low performance with AMD gallium driver

    Hello everyone,
    I recently upgraded to linux kernel 3.11 and mesa 9.2, then i switched from catalyst to open source driver. Unfurtunately my radeon 6870 (on phenom 955 cpu) suffers of very low performance with some games.
    For example, Sauerbraten runs at ~40 fps @1680x1050 and Doom3/TheDarkMod are barely usable. Compared to many results published here, mine aren't any good!
    I tried also with radeon.dpm=1, but it didn't change anything.
    How can I find the "bottleneck" on my system? Am I missing some crucial configuration parameter?
    Thanks in advance for your replies

  • #2
    Let's make sure the driver is running properly first. What do you get when you run "glxinfo | grep renderer" ?
    Test signature

    Comment


    • #3
      OpenGL renderer string: Gallium 0.4 on AMD BARTS

      Which is ok for my VGA chipset

      Comment


      • #4
        Also, to check if DPM is actually running, do this:

        $ dmesg|grep radeon|grep drm|grep initialized

        The older, profile-based PM responses with:
        [drm] radeon: power management initialized

        Where the newer Dynamic Power Management answers with:
        [drm] radeon: dpm initialized

        Obviously, if you get older response, then your card is in [default], which may default to [low].
        Your kernel and your mesa are outdated - you need kernel 3.12-next and mesa 10. Consider reading Radeon upgrade howto.
        If you do this, remember you need to copy newer radeon microcode and afterwards - rebuild initramfs (# update-initramfs -u all).

        If you are running pre-3.12 Kernel with DPM enabled (which is not recommended), check video card clocks if it actually scales. For same pre-3.12 kernel, there is no ondemand patch, so if you have AMD CPU - make sure you tuned ondemand governor, or removed/replaced it with performance. This can be done via custom rc.local of your init system, or sysfsutil, or /etc/profile.

        Furthermore, for pre 9.3 MESA you need to enable SB optimisations (and disabling LLVM), also consider disabling swapbufferswait.

        Gentoo and Archlinux pages about Radeon driver give excessive information on subject.

        You can use radeontop or poll GPU frequencies manually (see in guides above), and poll CPU frequency via cpufreq-aperf at time of your tests to ensure the GPU/CPU clock to full and nothing is throttled.
        Last edited by brosis; 26 October 2013, 01:55 PM.

        Comment


        • #5
          Thank you for the tip. It seems that the GPU is scaling well with correct dpm values, while the CPU has an ondemand governor which is really low-profile!
          Changing it to performance boosts Sauerbraten to 130 fps... not bad!
          Unfortunately, it looks like it does not affect doom3, which lays at 10 fps.
          I'd prefer to not upgrade kernel and mesa (out of distro branch), but I'll make some further tests and read the gentoo documentation, too; it is very good usually, my fault no having already done it.

          Comment


          • #6
            Originally posted by elTed View Post
            Thank you for the tip. It seems that the GPU is scaling well with correct dpm values, while the CPU has an ondemand governor which is really low-profile!
            Changing it to performance boosts Sauerbraten to 130 fps... not bad!
            Unfortunately, it looks like it does not affect doom3, which lays at 10 fps.
            I'd prefer to not upgrade kernel and mesa (out of distro branch), but I'll make some further tests and read the gentoo documentation, too; it is very good usually, my fault no having already done it.
            There is a heck of changes in 3.12, MESA 10 and radeon. The option is to build manually, or wait (around) 1 year.

            As for kernel:
            If you can read documentation how to compile own kernel for ubuntu and debian (make-kpkg) you can easily create your own 3.12-next kernel.
            Do not forget to replace newer radeon microcode and update initramfs as well. This goes together with radeon driver improvements and fresh versions are strictly required.

            As of governor - on non-Ubuntu, Intel uses Pstate, which does not require any tuning. AMD got its ondemand patched in 3.12 to give maximum efficiency.

            On pre-3.12 you can tune ondemand yourself. My tests and tunings, which I soon will update, give power efficiency (as in performance, heat and power usage, watts) similar to windows xp - with old pre-3.12 ondemand.
            Unfortunately, I suspect every CPU for pre-3.12 must be tuned per-hand, because the lower-barrier varies depending on CPU power. This should be no longer case with 3.12.

            As for userspace:
            If you run Ubuntu, there is PPA dedicated to newer MESA+radeon driver, especially for Ubuntu.
            1) Build your own kernel package,
            2) place radeon firmware and
            3) use that PPA to get most recent stack right now.

            1) Or update only firmware,
            2) use PPA
            3) and keep current kernel, but tune ondemand to get somewhat similar performance. But I can't speak about stability here with old KMS, but it will be definitely better than 3.11+original userspace stack.


            Your doom3 running slow is logically explainable: currently you use pre-OpenGL3 stack with somewhat buggy kernel.
            3.12 and newer MESA+Radeon have near OpenGL3.x complete stack, with shader optimizer enabled, non-buggy UVD (video acceleration).
            Doom 3 uses OpenGL3+; most parts of your stack run it in software, and without optimizer (SB).

            Comment


            • #7
              Thanks you Brosis,
              Your explanation fits with my problem. Next week I'll resurrect my super-final-messy-testing gentoo installation and update as you say.
              Anyway, I don't understand how such result were possible: http://www.phoronix.com/scan.php?pag...mai_2012&num=2

              Comment


              • #8
                Thank you Brosis
                your explanation fits for my problem. I'll resurrect my super-final-messy gentoo installation and check with the update that you recommend.
                Anyway, I don't understand how these results were possible if mesa only recently complies with OpenGL3.x
                For example: http://www.phoronix.com/scan.php?pag...mai_2012&num=2

                Comment


                • #9
                  Do you use 32 or 64-bit system?

                  Comment


                  • #10
                    Originally posted by brosis View Post
                    There is a heck of changes in 3.12, MESA 10 and radeon. The option is to build manually, or wait (around) 1 year.

                    As for kernel:
                    If you can read documentation how to compile own kernel for ubuntu and debian (make-kpkg) you can easily create your own 3.12-next kernel.
                    Do not forget to replace newer radeon microcode and update initramfs as well. This goes together with radeon driver improvements and fresh versions are strictly required.

                    As of governor - on non-Ubuntu, Intel uses Pstate, which does not require any tuning. AMD got its ondemand patched in 3.12 to give maximum efficiency.

                    On pre-3.12 you can tune ondemand yourself. My tests and tunings, which I soon will update, give power efficiency (as in performance, heat and power usage, watts) similar to windows xp - with old pre-3.12 ondemand.
                    Unfortunately, I suspect every CPU for pre-3.12 must be tuned per-hand, because the lower-barrier varies depending on CPU power. This should be no longer case with 3.12.

                    As for userspace:
                    If you run Ubuntu, there is PPA dedicated to newer MESA+radeon driver, especially for Ubuntu.
                    1) Build your own kernel package,
                    2) place radeon firmware and
                    3) use that PPA to get most recent stack right now.

                    1) Or update only firmware,
                    2) use PPA
                    3) and keep current kernel, but tune ondemand to get somewhat similar performance. But I can't speak about stability here with old KMS, but it will be definitely better than 3.11+original userspace stack.


                    Your doom3 running slow is logically explainable: currently you use pre-OpenGL3 stack with somewhat buggy kernel.
                    3.12 and newer MESA+Radeon have near OpenGL3.x complete stack, with shader optimizer enabled, non-buggy UVD (video acceleration).
                    Doom 3 uses OpenGL3+; most parts of your stack run it in software, and without optimizer (SB).
                    Thank you for this very highly informed post brosis, not even my thread, but thought I'd thank you for this well thought through information. It is rare to get such thorough and clear cut information like this. I can't fault anything you said because all of it is correct information.

                    Comment

                    Working...
                    X