Announcement

Collapse
No announcement yet.

LunarG Exploring Vulkan To Metal Translation With Mesa

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

  • #11
    neat I guess? I dont really see the need for it myself, but I don't really touch osx stuff anymore.

    Comment


    • #12
      So on the MAC, if it can run, does the proton run like this?
      dx -dxvk-> vulkan -MoltenVK-> Metal --> gpu​

      It seems that there are too many levels where bugs may appear.

      Comment


      • #13
        Originally posted by luno View Post

        Metal is currently best api though, it is simpler and sane than both dx12 and vulkan which are mess
        What about SDL3 GPU?

        Comment


        • #14
          Originally posted by oiaohm View Post


          Remember we already have MoltenVK by the KhronosGroup and we have Microsoft Dozen driver for Vulkan/opengl/gles to Direct X. So in some ways mesa3d coming the only middle layer would be useful on saving developer time.

          Big issue is Metal is object c. This is a weakness of Opengl and Vulkan and Direct X that if you are coding in Object C that the interfaces are not that compatible. Apple problem is kind of deeper than one thinks.



          Yes a lot of people forget that MacOS default programming interfaces are object c and fail to see that opps OpenGL and Vulkan and Direct X are designed around C and C++ so we have a incompatibly. Yes KhronosGroup don't define how Opengl/Vulkan interfaces should be in Object C. And of course Microsoft does not do direct X interface for object c.

          This is a case you need two to tango. Apple OS being heavily Object C does cause issues.

          A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.


          There is something to learn here. Before rust we have objective c with a different memory management system to C and C++.

          Of course there is a simple problem here how to you hook up the operations that happening on the GPU part that link to memory management back to the CPU part. I can see rust having in future issues with Vulkan and Opengl and Direct X in the same ways apple has hit with there OSs where there is not a proper connection.

          This is something to be aware when throwing that industry standard API around as an answer. Sometimes it pays to ask is this so call industry standard defective in some way so causing the party/parties refusing to use it some major problem?

          Yes the case of Opengl/Vulkan and Direct X they operate in ways not compatible with Objective C memory management. This should put up scary alarm bells because this issue equally applies to rust, go.... basically all programing languages that do attempt have more security memory management than C and C++.

          Some ways working out how to put Vulkan on Macos with objective C interfaces could be useful particularly if how to interface with languages with better managed memory is solved in the process. Yes Vulkan being objective c compatible then maybe Apple would implement it. Also application developers on apple OS have coded dominantly in objective C so Apple cannot go hey everyone just change to C/C++ now and have a nice response from their application developers.

          Yes there is a two to tango problem here. Being aware of what the problem is in this case says we have a bigger problem with Vulkan and Opengl we do need to deal with at some point. Yes the problem of how to correctly use Vulkan and Opengl with programming languages and runtimes with more advanced memory management and have this memory management function correctly.
          Your info may be a bit out of date. Yes the Metal API is primarily in Objective C, however the shader language is based on C++ 14. In addition the Metal API can be invoked by C++ 17.

          Apple even has a low overhead interface for Metal called Metal-cpp. It’s a drop in C++ replacement for Objective C headers

          Metal-cpp is a low-overhead C++ interface for Metal that helps developers add Metal functionality to graphics apps, games, and game engines that are written in C++.




          Comment


          • #15
            Originally posted by wangling View Post
            So on the MAC, if it can run, does the proton run like this?
            dx -dxvk-> vulkan -MoltenVK-> Metal --> gpu​

            It seems that there are too many levels where bugs may appear.
            dx12 games its not dxvk but vkd3d also
            This is a part of a larger effort to reorganize wined3d a bit so that backend functions are fully quarantined into their own files. There are a few...

            wined3d from the wine project for that use to be opengl only also now support vulkan.

            Wine/crossover developer point of view they are not seeing any deal breaking performance overhead going by vulkan to MoltenVK to Metal but they are more focused on application compatibility than performance. Yes these are not developers with high end game interest these are do MS Office/Cad... do the right thing kind of people.



            Apple Game Porting Toolkit does provides DX11 and DX12 to Metal for wine and crossover yes creatively called d3dmetal.


            But it very hit and miss if D3dmetal works at all at this stage.

            Yes you can have a case where d3dmetal does not work, dxvk does not work but then wine project wined3d/vkd3d works. You can also have every other combination.

            This is why mesa3d getting driver for macos with metal could be good because this could provide opengl again. I don't mean to hard some games still only work correctly with wined3d in opengl mode and nothing else and there are some old games people want to play that are opengl only.

            Also be aware there are less MacOS gamers in the steam survey than Linux ones these days. Lot of this has to do with the steamdeck.

            September 2024
            OSX 1.29%
            ​Linux 1.87%

            If you set to ?platform=linux for the steam hardware survey you see this.
            AMD AMD Custom GPU 0405 25.96%​
            Yes the steamdeck GPU so you can absolutely count every steamdeck.
            That gives steam deck over all market percentage
            1.87*(0.2596)=0.48%
            So you remove the steamdeck numbers
            1.87*(1-0.2596)=1.38​%
            But then you see the following in the Linux platform only numbers.
            "SteamOS Holo" 64 bit 39.20%​
            This devices with Steam os 1.87*(0.3920)=~0.73%
            1.87*(1-0.3920)=~1.13% that are all different kinds of normal desktop Linux.​

            Most people would not think the steam OS that has been installed on non steamdeck devices have steam OS numbers is over half MacOS total market share for Valve with steam.

            Yes if you have to target a single mac OS version MacOS 14.6.1 64 bit 0.47% yes less installed the SteamOS Holo and less than steamdeck users.

            So apple is basically in location where valve will fund dxvk and wine on Linux support for proton before mac os/apple because this is the bigger market. Apple gamer are going to be very dependent on apple investing into apple game porting toolkit/d3dmetal over the next few years at least. If apple does not then it will be dependent on either moltenvk or mesa3d to make vulkan on metal somewhat work.

            Yes the old argument why a MacOS port but not a Linux port has basically tipped on head.

            Comment


            • #16
              Originally posted by oiaohm View Post
              There is a problem here. Why is there not a dominate use of MoltenVK on MacOS so this claim makes no sense.


              There is a reason people are using Metal because they could have chosen to use MultenVK for a very long time and they don't..
              "According to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-level frameworks, as of June 2017.​"
              What do you think the "high-level frameworks" is? Keep in mind that Metal is also used on iSO, and there's a lot of crappy game apps that probably make use of MoltenVK. As for MacOS, you have barely 50% of applications ported over to ARM. Valve has all but abandoned MacOS to the point where no game that was 32-bit is being ported over. If anyone was going to make use of MoltenVK, then it would have been Valve. What little applications that MacOS has is probably using Metal, but maybe because Metal exists that nobody is porting applications over to MacOS? Sony is flirting the idea of bringing their games to MacOS, but they want Apple to pay for the development.

              Comment


              • #17
                Originally posted by Dukenukemx View Post
                What do you think the "high-level frameworks" is? Keep in mind that Metal is also used on iSO, and there's a lot of crappy game apps that probably make use of MoltenVK.
                I guess you did not think either. "high-level frameworks" this includes item like Unreal engine that has a metal backend.

                Let's talk about what Qt 5.14 has got to offer for using Metal on macOS and Direct3D on Windows.


                Yes then you have like qt. There are a lot of choices for that high level framework that don't equal using MoltenVK. That 148,000 applications use Metal directly from apples numbers don't include all the qt applications on MacOS using Metal. MoltenVK is a very small percentage of that 1.7 million.

                Question is how do you port applications to Mac OS. If you application is using unreal engine you are not point your application to use Metal in way to bee counted as native metal by Apple. If you are point you application using Qt (think adobe applications) this also by apple does not count as Metal native.

                There are a lot more "high-level frameworks" than MoltenVK that don't depend on MoltenVK or Vulkan.

                Dukenukemx the reality is you need to get how Apple generated that numbers to see what they had in fact bundled into that 1.7 million and that native Metal applications in fact out number the MoltenVK applications. Yes interesting list of toolkits that support Metal did apple collect there.



                Comment


                • #18
                  Originally posted by Dukenukemx View Post

                  What do you think the "high-level frameworks" is? Keep in mind that Metal is also used on iSO, and there's a lot of crappy game apps that probably make use of MoltenVK. As for MacOS, you have barely 50% of applications ported over to ARM. Valve has all but abandoned MacOS to the point where no game that was 32-bit is being ported over. If anyone was going to make use of MoltenVK, then it would have been Valve. What little applications that MacOS has is probably using Metal, but maybe because Metal exists that nobody is porting applications over to MacOS? Sony is flirting the idea of bringing their games to MacOS, but they want Apple to pay for the development.

                  It's an intriguing video. Certainly Apple has the cash to invest in helping Sony port AAA games over to Apple Silicon. The M3 Pro SoC with at least 8 gigs of RAM, much more with higher amounts of RAM, has the power, especially considering the upgraded GPU, to equate to PS 4 Pro specs right now. The new M4, even more so.

                  It will be interesting to see if this goes anywhere once the Apple TV streaming box acquires an Apple Silicon M4 with at least 8 gigs of RAM. I mean basically it's a console right now as has been once Apple Games have been coming out for it. But once it has the same specs as a low end Macbook or iMac, coupled with iCloud and Apple Gaming, then, yeah, I could see Apple pushing for increased gaming awareness and a deal with Sony might just be the thing to catch the attention of the public and the game development world. Just the news of such a deal will create a huge splash for both firms.

                  So Apple TV becomes the base device for development. And the games could have an awareness to upscale frame rates, graphics and resolution according to the device it finds itself on, such as ramping things up if the game finds itself on a Macbook Pro with higher spec M4 Pro or downscaled if it finds itself on an iPhone with an A18 chip.

                  Comment


                  • #19
                    One has to remember that Apple Metal API is essentially the perfected version of OpenCL that Apple abandoned after open-sourcing it before their move from Intel to their own in-house ARM based Apple Silicon SoCs. It's already where Vulkan is headed, particularly with Apple Metal version 3.

                    Metal powers hardware-accelerated graphics on Apple platforms by providing a low-overhead API, rich shading language, tight integration between graphics and compute, and an unparalleled suite of GPU profiling and debugging tools.


                    https://en.wikipedia.org/wiki/Metal_(API)

                    Comment


                    • #20
                      Originally posted by cend View Post

                      What about SDL3 GPU?
                      docs and Developer videos for Metal is next level. just watch their WWDC on Metal, even DirectX is not that documented

                      Comment

                      Working...
                      X