Announcement

Collapse
No announcement yet.

Gallium Nine Is Working On NIR Support So It Can Be Used With Intel Iris, Zink Vulkan

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

  • Gallium Nine Is Working On NIR Support So It Can Be Used With Intel Iris, Zink Vulkan

    Phoronix: Gallium Nine Is Working On NIR Support So It Can Be Used With Intel Iris, Zink Vulkan

    Developers working on the "Gallium Nine" Direct3D 9 state tracker are working on supporting the NIR intermediate representation as an alternative option to the default TGSI IR used traditionally by Gallium3D drivers. In supporting NIR, Gallium Nine opens up to some interesting new possibilities...

    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
    The Gallium architecture amazes me, I have no idea about the technical details, but reading this articles it really feels like a properly designed architecture. The astonishing thing is that as far as I've seen, lower level coding mostly gets tightly coupled but gallium isn't like that at all.

    Comment


    • #3
      What are the benefits of Gallium Nine+Zink over VK9? (Current & long-term)
      Code/implementation maturity?

      Comment


      • #4
        Originally posted by spike411 View Post
        What are the benefits of Gallium Nine+Zink over VK9? (Current & long-term)
        Code/implementation maturity?
        Gallium Nine is already much more usable than VK9. Gallium Nine works with (most?) D3D9 games already where as I think VK9 very few plus demos. But VK9 will be more portable than Nine+Zink due to Zink only working well currently with Mesa-based Vulkan drivers, etc.
        Michael Larabel
        https://www.michaellarabel.com/

        Comment


        • #5
          Originally posted by babai View Post
          The Gallium architecture amazes me, I have no idea about the technical details, but reading this articles it really feels like a properly designed architecture. The astonishing thing is that as far as I've seen, lower level coding mostly gets tightly coupled but gallium isn't like that at all.
          All the more confusing why the Wine devs seem to steer clear from it.

          Comment


          • #6
            Great news :-) I'm quite sure that Zink combined with Gallium Nine will allow us to run DX9 games with a sufficient performance on Vulkan :-)

            Comment


            • #7
              Originally posted by svanheulen
              I feel like I'm missing something important here... Gallium Nine is a D3D9 state tracker for Mesa/Gallium and it doesn't use OpenGL at all, so how would that fit in with Zink? Isn't Zink just OpenGL on top of Vulkan?
              Zink doesn't do OpenGL -> Vulkan directly bur rather below the OpenGL state tracker and converting the Gallium calls to Vulkan, so it's sort of like Gallium atop of Vulkan but geared currently for the OpenGL state tracker.
              Michael Larabel
              https://www.michaellarabel.com/

              Comment


              • #8
                Originally posted by svanheulen
                I feel like I'm missing something important here... Gallium Nine is a D3D9 state tracker for Mesa/Gallium and it doesn't use OpenGL at all, so how would that fit in with Zink? Isn't Zink just OpenGL on top of Vulkan?
                Iris and Zink are (will be) Gallium drivers. What does a Gallium driver do? Simply put, it takes input from a Gallium state tracker (shaders, draw calls, whatever) and displays them on your screen. OpenGL is just one of the Gallium state trackers, Nine is another one, and there are several more. In theory any Gallium driver should work with any Gallium state tracker. In practice, there are some barriers. One such barrier is which IR (intermediate representation) they use for their shaders. Nine uses TGSI (the older, original IR), while Iris and Zink use NIR (the newer one which is also used by Vulkan drivers).

                What we plan to do is make it possible for Iris and Zink to use the shaders produced by Nine, by translating Nine's TGSI output into NIR.

                The first part of that is to actually make it possible for the TGSI to NIR converter to understand the TGSI that Nine outputs. TGSI to NIR was originally developed to work on the output of GLSL to TGSI, so it already supports most features used by OpenGL shaders, but it was never used together with Nine. My patches that Michael linked to add some features needed by Nine, and fix some issues that I encountered in some Nine games.

                RadeonSI is a pretty mature Gallium driver these days and is capable of handling both TGSI and NIR, so it gives us a good opportunity to test possible regressions caused by the TGSI to NIR conversion. (However, Nine will most likely still use TGSI when used with RadeonSI, but the possibility to use NIR will be there.) Our current status: on RadeonSI, Starcraft 2 and The Witcher 1 work flawlessly when using the TGSI to NIR converter, and The Witcher 2 works with a small glitch which we need to look into. On Iris (or rather the Iris version that I scrambled together from merging various development branches), they all run but all have different glitches, possibly related to bugs or missing features.

                Why Starcraft 2 and Witcher 1-2? Because those are the D3D9 games that we happen to have on our computers. Others may or may not work. Once we fix all the kinks that we found so far, it will make sense to do some sort of testing with more games (or rather, API traces of more games), to see if there are issues we didn't notice.

                Comment


                • #9
                  Originally posted by spike411 View Post
                  What are the benefits of Gallium Nine+Zink over VK9? (Current & long-term)
                  both gallium nine and zink have independent uses, so they will exist even if there is no need to translate dx9 to vulkan, vk9 has to be developed separately. separate development allows to optimize it better, but requires more work, so end result could as well be worse. i'm sure michael will test them

                  Comment


                  • #10
                    Originally posted by schmidtbag View Post
                    All the more confusing why the Wine devs seem to steer clear from it.
                    wine devs make money from osx. there is no gallium on osx

                    Comment

                    Working...
                    X