Announcement

Collapse
No announcement yet.

Mesa 22.0 Zink Lands macOS Build Fix For OpenGL On Vulkan Via MoltenVK On Metal

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

  • Mesa 22.0 Zink Lands macOS Build Fix For OpenGL On Vulkan Via MoltenVK On Metal

    Phoronix: Mesa 22.0 Zink Lands macOS Build Fix For OpenGL On Vulkan Via MoltenVK On Metal

    Last year there was some work for getting Gallium3D Zink working on macOS for this OpenGL-on-Vulkan implementation to in turn run it atop the MoltenVK library for translating the Vulkan calls to Apple's Metal graphics/compute API. That work fell into disrepair but now the fixed up code for allowing Zink to build on Apple's operating system has been merged into Mesa 22.0...

    https://www.phoronix.com/scan.php?pa...ild-macOS-Zink

  • #2
    Running Direct3D calls inside OpenGL "native" runtime wrappers, then piping that through Zink and Vulkan all the way towards Metal using MoltenVK.
    I was falling and falling and falling until I was no longer Gandalf the grey!

    Comment


    • #3
      OpenGL On Vulkan Via MoltenVK On Metal

      The software versions of this



      and especially this



      I'll see myself out.
      Attached Files

      Comment


      • #4
        The result of the current graphics API fragmentation and destandardization:
        - DirectX 12: Only works on Windows
        - Metal: Only works on macOS
        - Vulkan: Works everywhere, but few people care

        Comment


        • #5
          Originally posted by tildearrow View Post
          The result of the current graphics API fragmentation and destandardization:
          - DirectX 12: Only works on Windows
          - Metal: Only works on macOS
          - Vulkan: Works everywhere, but few people care
          Don't forget about the consoles and mobile devices...

          Comment


          • #6
            Originally posted by kon14 View Post
            Running Direct3D calls inside OpenGL "native" runtime wrappers, then piping that through Zink and Vulkan all the way towards Metal using MoltenVK.
            I was falling and falling and falling until I was no longer Gandalf the grey!
            "How did it ever come to this?" - Theoden

            Comment


            • #7
              Originally posted by tildearrow View Post
              The result of the current graphics API fragmentation and destandardization:
              - DirectX 12: Only works on Windows
              - Metal: Only works on macOS
              - Vulkan: Works everywhere, but few people care
              [/quote]

              This isn't really that true in the real world. It looks much more like this:

              - Windows: DirectX 12 (preferred), OpenGL (if your GPU vendor supports it - Microsoft does not), Vulkan (again, if GPU vendor supports it - Microsoft does not)
              - MacOS: OpenGL (obsolete), Metal (preferred)
              - iOS, iPadOS, tvOS: Metal (required, OpenGL was removed)
              - Android: OpenGL (obsolete), Vulkan (preferred)
              - Xbox: DirectX 12 (required)
              - PlayStation: GNM, GNMX, and PSSL (required - you've probably never heard of these - they are custom for PlayStation and the only supported API)
              - Nintendo Switch: NVN (preferred - again you've probably never heard of it - custom for Nintendo Switch), Vulkan (poor performance, not recommended, generally unused)
              - Linux: OpenGL or Vulkan (preferred)

              This means that, if you are looking at platforms objectively and used the best API for the job with best performance and most broad support, you are really looking at:

              - DirectX for anything Microsoft
              - Metal for anything Apple
              - Vulkan for anything open-source (Android and Linux)
              - Console-specific APIs for Consoles

              If you talk to a game developer, they'll tell you that Vulkan doesn't really work anywhere - it's basically recent Windows computers, Linux computers, and Android. And that's not good because these are only individual items in their respective categories. If you wanted to support Windows, why not write DirectX, which then gives you Xbox support too? If you wanted to support Android, you're going to end up writing Metal so you can be on iPhone unless you wanted to be Android-exclusive for some inexplicable reason. Linux? They are (in practice) too small to matter and they've got DXVK which converts DirectX to Vulkan, so another reason to just write DirectX and get Xbox support squared-away ahead of time. Then because you have Metal for your iPhone app, is it really that much harder to support macOS? Plus, it's not like you won't need a multi-renderer backend anyway if you wanted to target the Switch or PlayStation and their proprietary device-specific APIs.

              Comment


              • #8
                Originally posted by gjsman View Post
                ...If you talk to a game developer, they'll tell you that Vulkan doesn't really work anywhere - it's basically recent Windows computers, Linux computers, and Android.
                This is factually untrue and just exposes the ignorance/incompetence of those developers. AMD, Intel, and Nvidia have provided Vulkan drivers for Windows 7 (and Vista if you can install them - I see no reason why you would not be able to) for all GCN gen1+, Skylake iGPU, and Kepler+ architectures. Windows 7 released in 2009, so all Windows machines with an AMD or Nvidia discrete GPU from 2012 on or AMD iGPU for 2014 on has proper Vulkan support unless it is some horrible rebrand. Therefore, effectively all machines that still work and do not have Vulkan support, would have performance too low to run the game anyway. For Intel, game developers generally do not give a damn about supporting their iGPUs so it's a moot point.

                Edit: Fixed broken quotation.

                Comment


                • #9
                  Well Vulkan just requires more work, and much more know-how. Combine that with their ego and find various excuses.
                  Khronos really should release a more top-level library that wraps everything for higher level abstraction for this to take off more seriously.

                  Comment


                  • #10
                    Originally posted by Vlad42 View Post

                    This is factually untrue and just exposes the ignorance/incompetence of those developers. AMD, Intel, and Nvidia have provided Vulkan drivers for Windows 7 (and Vista if you can install them - I see no reason why you would not be able to) for all GCN gen1+, Skylake iGPU, and Kepler+ architectures. Windows 7 released in 2009, so all Windows machines with an AMD or Nvidia discrete GPU from 2012 on or AMD iGPU for 2014 on has proper Vulkan support unless it is some horrible rebrand. Therefore, effectively all machines that still work and do not have Vulkan support, would have performance too low to run the game anyway. For Intel, game developers generally do not give a damn about supporting their iGPUs so it's a moot point.
                    Well, then, you are back to square 1 though, and that's the why use Vulkan? question. DirectX is easier or harder depending on whether you target version 11 or version 12, for how close to the metal you want to go. That's a beauty of DirectX - that it can function in both high-level and low-level contexts, alongside giving you generally-easy Xbox support.

                    If you are building a game, Vulkan gets you 2/3s of Android devices, Linux, and Windows. But if your game isn't targeting mobile... it's either you pick Vulkan for better Linux support, or you pick DirectX for better Xbox support (but still maintain Linux support or good enough with DXVK). The choice is obvious for most studios. Is it really surprising then studios don't seem to care?

                    Comment

                    Working...
                    X