Announcement

Collapse
No announcement yet.

Open-Source NVIDIA Driver Moving To NVK + Zink For OpenGL On Newer GPUs

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

  • #31
    I did some testing and NVK with Zink is already way faster than native Nouveau OpenGL. While in some benchmark Nouveau OpenGL was able to achieve about 25% of NVIDIA driver performance, NVK with Zink was able to achieve over 50%. Considering the fact that NVK is still unoptimized and not long time ago wasn't even able to run Zink, it's pretty nice result.

    Comment


    • #32
      Originally posted by -MacNuke- View Post

      Check out rusticl
      it isn't production ready yet (and yes, i know, neither is nvk & zinc, but… one can have dreams)

      Comment


      • #33
        Originally posted by oiaohm View Post

        That does not work on the timeline.

        For a long time apple bought their GPU from PowerVR in their soc chips. Yes all Apple soc chips prior to 2020 as everything before the M1 has a PowerVR GPU inside. M1 is 2020 and Metal exists before 2020.
        While true, it's not impossible that they were designing Metal for the Apple A9, which was the first Apple SoC that had a custom designed PowerVR GPU and was released about the same year as Metal.

        I am no expert on these stuff though, just digging Wikipedia and found that to be a pretty cool coincidence.

        Comment


        • #34
          Originally posted by johanb View Post
          While true, it's not impossible that they were designing Metal for the Apple A9, which was the first Apple SoC that had a custom designed PowerVR GPU and was released about the same year as Metal.

          I am no expert on these stuff though, just digging Wikipedia and found that to be a pretty cool coincidence.
          Bit more digging and you find something else out


          A9 GPU is PowerVR GT7600 GPU this silicon design was not only licensed by Apple but also was licensed out to different embedded devices makers who were making custom SoC in the same year..

          Imagination Technologies behind PowerVR was known for doing up a single design then selling it to many parties as a unique one off design when it was not.

          Fun reality Imagination Technologies/PowerVR if they call it custom it a design they created that they will be selling to as many parties as possible. Kind explains why over time Apple relationship with them went south because Apple was wanting to claim unique GPU Imagination Technologies/PowerVR was never going to give them that because they would always sell to other parties as well..

          This kind of thing where a party thinks they have something custom but they don't happens a lot. Recent example like the Asus ROG Ally recently claiming they had a custom soc only to end up no they had not they were just the first customer to get the soc and other parties would be getting it as well. Yes every party caught with this end up not liking what happened.

          ​PowerVR GT7600 is not as quirky because when it was design it did have a opengl driver made and opengl standard CTS used to test it for quirks.

          johanb custom design GPU for apple is the AGX not anything power. Of course Imagination Technologies was not past attempt to sell there silicon design as custom for each customer to all the customers to ask for more money when they were just duplicating what they were providing everyone with..

          Comment


          • #35
            Originally posted by toughy View Post
            Well this is not such good news

            I get Zink is very good as a reference implementation, or when the native OpenGL is buggy and unmaintained.

            But native OpenGL can be better with the right amount of development to make it hardware-specific. And graphics drivers have always been all about performance.

            Zink is good as a fallback, not as a default.

            I remember a while ago NVK developers said NVK was not ready for Zink yet. I guess that has changed, now that NVK reached Vulkan 1.3 ?

            I just don't think it is good to throw away the nouveau OpenGL driver, instead of making it better. Especially since NVK developers said OpenGL is not that hard to implement.

            I understand nouveau needs so much development now, but it already has an OpenGL driver. Letting users or distributions choose if they want Zink should be just fine.
            there really isn't much reason why zink can't be as just as good as native opengl, or at the very least extremely close. On the otherhand when condensing the effort to one state tracker, you can put far more optimization into it, and your vulkan driver. I honestly think zink has far greater likely hood to be better then native drivers given the potential... optimization of effort so to speak

            Comment


            • #36
              "Right now those wanting to try it can use the NOUVEAU_USE_ZINK=1" environment variable added by this latest code."
              Where should I add this variable. I am using EndeavourOS.

              Comment


              • #37
                Originally posted by Paul797 View Post
                "Right now those wanting to try it can use the NOUVEAU_USE_ZINK=1" environment variable added by this latest code."
                Where should I add this variable. I am using EndeavourOS.
                I'm on Fedora and I added it on the command line. I compiled libdrm and mesa from source first, then I run Unigine Valley benchmark like this

                NOUVEAU_USE_ZINK=1 ./valley


                But my RTX 3090 gives visual artifacts and the image flickers and gets all blue during the benchmark. Same for Unigine Heaven benchmark.

                This is not the only variable, you can also use MESA_LOADER_DRIVER_OVERRIDE=zink. But I suppose NOUVEAU_USE_ZINK is driver-specific and should be preferred
                image.png
                Last edited by toughy; 24 February 2024, 12:25 PM.

                Comment


                • #38
                  Originally posted by Paul797 View Post
                  "Right now those wanting to try it can use the NOUVEAU_USE_ZINK=1" environment variable added by this latest code."
                  Where should I add this variable. I am using EndeavourOS.
                  reply above, or if you want it globally add it to /etc/environment and relog

                  Comment


                  • #39
                    Thanks for the hints. I had to force the use of ZINK by adding the "zinrun" command in Steam. Using this variable even globally had no effect.

                    Comment

                    Working...
                    X