Announcement

Collapse
No announcement yet.

Radeon R600 Gallium3D Switches To Modern NIR Backend By Default

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

  • Radeon R600 Gallium3D Switches To Modern NIR Backend By Default

    Phoronix: Radeon R600 Gallium3D Switches To Modern NIR Backend By Default

    After the persistent work by developer Gert Wollny with a desire to improve the aging "R600g" driver that provides open-source OpenGL support for Radeon HD 2000 through HD 6000 series graphics cards, this Gallium3D driver in Mesa 22.3 will now use the NIR back-end by default...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    What is the NIR SB code path?

    Comment


    • #3
      Originally posted by MastaG View Post
      What is the NIR SB code path?
      "an optimizer that was added in 2013 to the r600 driver", according to this: https://www.collabora.com/news-and-b...-nir-back-end/

      Comment


      • #4
        Originally posted by MastaG View Post
        What is the NIR SB code path?
        Basically SB is an optimizer that disassembles the binary code, optimizes it, and then encodes the binary shader code again. It does some nice optimizations, and was certainly a good addition for the TGSI backend, but it has some subtle, difficult to fix bugs, and doesn't work for all shader types (e.g. can't work with shaders that use images or atomic operations).

        There are a few work loads where it can give a few percent performance improvement over then NIR code, but the improvement is way smaller than when optimizing code that was created with TGSI, and given the bugs that pop up here and there it will be nice to be able to remove this code once the TGSI part is gone.

        Comment


        • #5
          I have a couple of older Radeon HD cards; a HD 5770 and a HD 6570 plus a HD4250 iGP -- should I expect any sort of improvement when using these, and if so, which kind of improvements?

          Is it about correctness? Is it about supported OpenGL versions? Is it about performance?

          Inquiring minds would like to know...

          EDIT: Read https://www.collabora.com/news-and-b...-nir-back-end/ which suggested that all three above factors will potentially see an improvement and that Evergreen (HD 5xxx) and up is supported. However, the merge requests suggest that the older generations are also supported?

          EDIT2: Big shoutout to gerddie for their persistence in getting this landed. I suspect it will result in genuine improvements for a couple of my old hardware use cases that I will appreciate in day-to-day use. Cheers!
          Last edited by ermo; 23 September 2022, 12:49 PM.

          Comment


          • #6
            ermo Every TeraScale 2 and TeraScale 3 based Radeon GPU (which means all models above the HD 5000 series) will now support OpenGL 4.5 and maybe sometimes also OpenGL 4.6. So the new NIR path is definitely an improvement. Beside that there are also many other NIR advantages which can be used by the r600 driver also on older TeraScale 1 GPUs.

            And maybe there exist at least for the former high-end TeraScale 3​ class GPUs the possibility to adopt the GLTHREAD functionality or to support at some point even the ACO backend compiler.

            Comment


            • #7
              Originally posted by ermo View Post
              I have a couple of older Radeon HD cards; a HD 5770 and a HD 6570 plus a HD4250 iGP -- should I expect any sort of improvement when using these, and if so, which kind of improvements?

              Is it about correctness? Is it about supported OpenGL versions? Is it about performance?

              Inquiring minds would like to know...

              EDIT: Read https://www.collabora.com/news-and-b...-nir-back-end/ which suggested that all three above factors will potentially see an improvement and that Evergreen (HD 5xxx) and up is supported. However, the merge requests suggest that the older generations are also supported?

              EDIT2: Big shoutout to gerddie for their persistence in getting this landed. I suspect it will result in genuine improvements for a couple of my old hardware use cases that I will appreciate in day-to-day use. Cheers!
              There is 4 factors.
              1) Opengl correctness.
              2) Opengl version bump some cards.
              3) performance improvement.
              4) Code maintenance reduction due to less code and less to test. For end users this is reduced regression risk(bugs) with updates.

              Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite


              The process is on going to remove more and more TGSI parts from mesa. GLSL to TGSI was first to go. Now drivers using TGSI internally being converted to NIR and once that it done complete all TGSI code paths will be able to go.

              Remember r600 TGSI back end due the Stripping GLSL to TGSI already has a NIR to TGSI conversion before the back-end. This is extra area for translation error causing bugs.

              GLSL->NIR->TGSI replaced with GLSL->NIR is what this change is doing. Simpler path so simpler mantaince. The middle was already NIR. Front end , Middle, Back-end. Front end is the standard shader languages and the like. Middle end in Mesa is all NIR since 20 April 2022. Backend are been mix of TGSI and NIR with new backends being NIR and old backend that were TGSI being migrated to NIR when developer takes interest in doing it. TGSI is basically deprecated and on the way out.

              Comment


              • #8
                I have a 1GB GDDR5 Radeon HD 4890 that’s hanging out in its box. Not a bad lil spec’d card if I’m being honest - only thing it needs are some decent drivers.

                I’m curious to see how this would be as a Minecraft card and legacy Linux game card (OpenGL Portal, Counter-Strike, Tomb Raider, Terarria, etc)

                What is a good CPU to pair it with?

                I feel like the Ryzen 3600 is overkill but that the FX-8320 might be a bit… underkill.

                Thoughts for a lil OpenGL games box?

                Comment


                • #9
                  Originally posted by Eirikr1848 View Post
                  What is a good CPU to pair it with?

                  I feel like the Ryzen 3600 is overkill but that the FX-8320 might be a bit… underkill.
                  The 4870 was a *beast* in its day - but that day was the C2D era, and a very long time ago now. The 4890 has the same caps and counts, just with more VRAM and a nice clock bump. A 3600 is definitely overkill, though there's still a lot of work that gets done on the CPU so it never hurts to have more power there unless you *know* you're bandwidth-limited - but you are, and an FX-8320 will easily be able to saturate the card and is thus also overkill, you'll be happy to hear.

                  Given those components, you've picked a good time of year for this. :P

                  Not sure if Minecraft will actually run on one, BTW: it seems to have had its GL reqs raised substantially in the last year or so, and IDK what Mesa actually provides for the 4000s since the article was all about HD5000 and up.

                  Comment

                  Working...
                  X