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

  • #21
    Good, that's how it should be.

    In the end, there should be only one gallium driver: Zink, Then the abstraction can be changed for Zink specific needs and get the ultimate optimizations.

    Comment


    • #22
      Originally posted by user1 View Post

      But is it mature and performant? Since Asahi is a relatively young project, it's probably not. Supporting the latest OpenGL versions doesn't also mean being mature and performant..

      And I'm actually surprised they haven't just went directly with Zink, because this is exactly the case where using Zink makes the most sense (new projects like Asahi). It takes many years until a native OpenGL driver becomes mature and performant, so I don't understand why they haven't just went with Zink and focused on their Vulkan driver instead.
      They answered that so many times: They're different people working in parallel on what they know best and they share some of the code. It was much faster for Alyssa, who's fluent in OpenGL to get OpenGL working asap so they could get a HW assisted desktop environment, she then took it further to 4.6 and full conformance test after that.

      In the meantime Ella have been working on Vulkan in parallel and benefiting from some of the Mesa work Alyssa did on OpenGL and the work Lina did on the AGx driver for OpenGL while keeping Vulkan in mind.

      Comment


      • #23
        Originally posted by schmidtbag View Post
        OpenGL is pretty much as mature as it's ever going to get. [...] So - AMD is already in a position to devote minimal resources to OpenGL development.
        Sure. But you can say the same about i.e. Direct3D 9 on Windows. Yet, modern vendor GPU drivers are buggy as hell for these old games. That's also why there are a ton of d3d wrappers for old games even on Windows... even directly from Microsoft.

        OpenGL does not have such an extensive game library and current OpenGL applications are moving to Vulkan. So in the end it wont matter that much. But I am talking about new hardware here since I already said: Nobody is asking for removing radeonsi right now and OpenGL is still needed for some current applications.

        Comment


        • #24
          Do i got it right, that the Maxwell architecture is not supported right now?

          Comment


          • #25
            Strange, just some months ago when i heard about nvk prioritizing vulkan support i was thinking about why not using zink on top of it. Good move but nevertheless zink needs performance optimizations. When testing it on top of radv i measured about 25% performance loss against direct opengl usage.

            Comment


            • #26
              always glad to see more NVK work being done. Im currently with both intel and amd, and want to add nvidia back into the mix soon

              Comment


              • #27
                Originally posted by user1 View Post
                But is it mature and performant? Since Asahi is a relatively young project, it's probably not. Supporting the latest OpenGL versions doesn't also mean being mature and performant..

                And I'm actually surprised they haven't just went directly with Zink, because this is exactly the case where using Zink makes the most sense (new projects like Asahi). It takes many years until a native OpenGL driver becomes mature and performant, so I don't understand why they haven't just went with Zink and focused on their Vulkan driver instead.
                You have made a mistake. Apple GPU is designed for Metal logic not Vulkan or opengl.




                Yes bit of a old posts. Problem that Asahi developers have run into is that Apple GPU does not behave like Opengl or Vulkan exactly expects.

                Also how do you measure performant. Asahi opengl for running opengl applications is already faster than running those same applications on Mac OS on the same hardware.

                user1 is simple to over look metal. That vulkan applicaitons on MacOS will be on top of likes of MoltenVK and items like this to translate to metal are not perfect.

                ​Like it or not user1 zink is not able to fit everywhere.

                Asahi dealing with the way MacOS GPU is designed is basically forcing them todo their own thing to a point. Why because the MacOS GPU design is going to force Vulkan to be abstraction because Metal is not 1 to 1 with Vulkan.

                Please note you could say that the Mac OS GPU design is a legacy pre Vulkan design. Metal core design was first published 2014 this is 2 years before Vulkan. Remember if you go back to a 2014 GPU you don't get the full set of Vulkan features but you can do the full set of Opengl features. Of course Metal core design is older than 2014 when it was first publicly published it closer to a 2012 design when comparing to AMD/Intel/Nvidia GPU.

                User1 basically forgot year GPU made. Instead go on what age it design is. The Apple GPU you have to class as if it 2012 design if you take 2012 design Nvidia/Intel/AMD gpu and attempt to run zink on it this does not work the required features zink needs is just not there in hardware. Yes the Apple GPU in the macbooks is the same the features in hardware zink requires is just to there. Work arounds to the hardware limitation required. Does the Apple GPU have the hardware to fully implement Opengl 4.6 the answer is yes it does.

                Zink and the asahi drivers so share code where they can just like all other legacy opengl drivers.


                Alas, Apple’s “AGX” GPU is not typical.
                Yes the age of the design of Metal at the core of the Apple GPU is only the start of the problems. Apple GPU does many things that a GPU built for Opengl, vulkan or direct x would class as wrong. This is part of the reason why Opengl/Vulkan applications on MacOS is not exactly hard for asahi to beat in performance.

                Using zink on modern Nvidia GPU is a completely different ball game to apple gpu as this Modern Nvidia hardware has zink on hardware that has the vulkan features zink expects.

                Like it or not there are going to cases where this X GPU design is not vulkan enough to use Zink so have to make a platform particular driver to deal with this will be mostly legacy GPU but there will be few modern ones that turn up. Yes one modern gpus that not vulkan enough to use zink happens to be the Apple AGX GPU found in all apple soc chips but there are others used in the embedded world in the same camp.

                Comment


                • #28
                  Originally posted by oiaohm View Post

                  You have made a mistake. Apple GPU is designed for Metal logic not Vulkan or opengl.
                  I would say its the other way around, Metal is designed around apples limited capability GPU design. Its the GLES 2.0 of modern APIs simply for the same reason GLES 2.0 existed.

                  Comment


                  • #29
                    Originally posted by Alexmitter View Post
                    I would say its the other way around, Metal is designed around apples limited capability GPU design. Its the GLES 2.0 of modern APIs simply for the same reason GLES 2.0 existed.
                    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.



                    Yes the AGX is not PowerVR and AGX has some horrible quirks Of course a lot of the AGX quirks don't show themselves if you follow Metal logic.

                    Alexmitter like it or not AGX was designed to run Metal not the other way around because Metal is older and when you follow metal operation patterns you don't find most of the AGX quirks.

                    If Apple had written a opengl or vulkan drvier for their AGX hardware and run the opengl or vulkan conformance testsuite lots of issues would have been shown in the development stage of the hardware and lot of them to fix would be minor hardware changes..

                    Apple AGX GPU is very quirky with quirks you don't see in any GPU designed to run Opengl, Vulkan or direct x..

                    Think about it you are designing a new GPU from scratch you need gpu functional test cases to make sure the design you are making is right. In the apple AGX case all they were using were the existing metal test cases. Metal predates AGX and so the metal testsuite predates AGX. This is another reason why AGX is not really a modern GPU. You look at vulkan testsuite you new tests added every year you don't see this with Metal. Even the Opengl CTS(opengl test suite) has new test added to find newly discovered quirks to prevent new designs having these quirks.

                    Then you also have to remember Apple on x86 platforms were using Metal on AMD hardware with the same information provided by AMD as open source drivers got. So metal design did not have to be limited to powervr limitations.

                    Alexmitter basically metal being limited comes before Apple makes GPUs. Maybe Apple usage of powervr gpus are is major a factor when they were designing Metal for how limit it is. But it is also that when apple were designing AGX apple was only using the Metal testsuite to confirm they had their hardware design right leading to the missing features and quirky mess AGX is.

                    AGX quirks makes apple M1 and newer apple GPU really not suitable to run zink on. Dealing with these quirks for opengl is better handled by a direct driver or a abstraction on top of metal that does not work for asahi linux.

                    There will always be outlier GPU/CPU that don't fit the normal model so need special handling.

                    Comment


                    • #30
                      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.

                      Comment

                      Working...
                      X