Ever since the advent of dedicated 3D graphics cards there have been battles as to which application programming interface (API) is 'best' to use for a certain platform.So my question is do the vulkan API is available on my Mac OS with MoltenVK If yes, what can I do in order to make my app work c++ macos sdk vulkan moltenvk. Vulkan comes to macOS and iOS through a compatibility layer on top of Metal. If you are interested read on …Khronos releases MoltenVK: Vulkan for macOS and iOS. Kite is a free AI-powered coding assistant that will help you code.Blaming Apple is the right thing to do but not for the reason people may expect, the story is a bit more complex. The same way the DirectX -> DXVK -> Vulkan 1.1 -> MoltenVK -> Metal rendering pipeline for the Mac version of the game imposes a performance hit due to that many layers of translation and abstraction.Setup Vulkan (MoltenVK) With GLFW On Mac Using Xcode - Vulkan Graphics/Games Programming. Layering an API translation layer (like WINE) atop an emulator (like Rosetta 2) is just adding even more overhead to every single thing you do.To run an iOS application using Vulkan (via MoltenVK) or an Android Vulkan application you will have to run on a real physical device.As much I am an Apple fan , this has been mostly Apple’s “fault” , see its no secret that Steve Jobs was never a fan of games in general, this is why Apple did not push things graphics wise. But as I said , there is some truth to this blame.To develop or run Vulkan/MoltenVK for the Mac console or MacOS targets you’ll need to be on a Mac of 2012 vintage or later - thankfully my own Mac just scrapes in (2012 Macbook Air). It’s ironic that Apple is blamed for the demise of OpenGL while they were the ones that practically invented it in the first place and pushed it forward for so long. However graphics became more complex and game engines at the time were not a thing as they are today so OpenGL very slowly changed and did not manage to keep up with the increasingly complex architecture of modern GPUs. 3,695 2 2 gold badges 27 27 silver badges 40 40 bronze badges.When OpenGL was implemented it was not intended to be a high level graphics API but actually lower level.
Moltenvk Mac OS WithRequires Xcode 11 and Mac OS 10.15 (CaProblem was the game devs were gettting more ambitious on the mobile platform, the age of Candy Crash Sage and Angry Birds was ending and now gamers started to see mobile hardware as a serious gaming platform. Problem was that OpenGL was not know for its performance , so they came up with ES which was OpenGL for mobile devices, consumed less battery power but way less performant.bin+lib ash-molten - Statically linked MoltenVK for Vulkan on Mac using Ash ash-molten ash-molten is built on top of ash and exposes a new entry point to statically link with MoltenVK. Apple “overnight” from a software/hardware orientated company became a game/hardware orientated company. On other hand when iPhone and iOS came out , it became apparent that games was a main driving force of the sales. Problem was that Apple also was the main driving force behind OpenGL as well, Apple needed OpenGL to fuel the speed of its GUI, like Blender , MacOS GUI is build on top of OpenGL. OpenGL “overnight” was… dead.If the term “dead” sounds a bit vague let me put it in numbers the latest API specification, basically its board guide how OpenGL should be made and look like is OpenGL 4.6 that will be 2 years old this July. Apple had no intention exposing itself to any potential gaming company, cough Microsoft cough.After the shock of Apple releasing Metal, the rest of the board rushed into releasing Vulkan and there was no further talk about OpenGL, in their website or youtube channel. What they did not know was that Apple being Apple had a plan B, Metal. Apple overall is a bold company that is very design driven so is not afraid to redesign, I suspect Google and other big companies were not so willing to take similar risk. As such Apple went back to the board and demanded a redesign of OpenGL. Apple now predominatly a game driven company could not afford to stay behind with iPhone driving the vast majority of its revenue. Keyboard app on mac for big noxBecause those APIs have deeper access into the GPU internals they allow you greater deal of fine tuning and freedom to pick the solution that fits your problem.Thus Blender moving to Vulkan or Metal is pretty much inevitable in the long run, how long is the question. But the bonus will be that your code could be also around 10 times faster too. You could say that OpenGL is moving forward 17 slower but I think “dead” is a very fair term in this case.To give an idea about the complexity you can make a triangle with around 100 lines of code in OpenGL but you will need around 1000 lines to do the same in Vulkan. Metal overall has been a huge success of Apple from a user and a developer perspective.What most people do not know is that Apple is still on the board that designed OpenGL which also designed Vulkan and they actively push for Vulkan improvement and adoption. But they are a minority of the game industry although they collect much of the money.150k apps (including games) use Metal directly while 2 million use it indirectly (through game engines mostly iOS). Large companies can afford not to use such engines and directly access Metal, Vulkan , DirectX etc. Generally speaking when it comes to computer graphics technology 3d apps are surprisingly behind the curve because they have much less customer and thus funding/revenue than games. The one that makes heavy usage of OpenGL and needs the extra performance is Eevee.I think there is still room for Eevee to improve without having to abandon OpenGL but there is going to be a point when it will need something like Vulkan and Metal to compete with the big boys. Currently there is no huge rush to move to Vulkan because offline rendering is done by CPU or CUDA , both using latest APIs. An ideal scenario would have been if OpenGL was indirectly used through a secondary library , then transition to Vulkan would have been far easier, because the coder would have to update only that library.None the less with 6 full time devs its actually quite doable to move to Vulka for version 2.9. It may sound normal for a non coder but for a coder this is a nightmare scenario because it means that he/she has to change a lot of code. With Vulkan moving forward and OpenGL frozen, that is just a matter of time.The problem for Blender is not only that Metal/Vukan is far more complex but also the fact that OpenGL code is spread all around the code base. This also a big reason why BI and BGE had to go. Funding has become a matter of life and death for Blender because it has grown so large its unmaintainable by just a solo full time dev. Again all that depends on funding.On the matter of Mac users, not only Blender cannot afford to ignore them but it would be suicidal to do so because mac users are far more likely to provide general funding not just for a mac version but any version of Blender compared to your average pc users. As artists we do not need the latest and coolest technology on real time rendering as desperately as the average high end game does.So Blender can play the waiting game for a couple of years without any major cost to its user base. There was no replacement for Platform_SetGWorld(), because whole concept of a current GWorld was abandoned. And then ports in the future would just need to implement their equivalent of Platform_SetGWorld() and everything would be fine - right?Porting that to MacOS X was a nightmare. Instead of calling SetGWorld() for example, one would call Platform_SetGWorld(). So instead of calling the API directly, it went though an abstraction layer. I’ve been though that exact scenario before.I’ve worked with code that was written for Mac OS, but intended to be portable. However as I said, mac users so far have been pretty silent on the matter because currently it does not affects us directly.If Blender stop working on Mac that’s another story altogether which with current funding seems highly unlikely.An ideal scenario would have been if OpenGL was indirectly used through a secondary library , then transition to Vulkan would have been far easier, because the coder would have to update only that library.You would think so, but it’s not that easy. It’s not as if one has have tough time with a couple of function he has to give up and completely abandon because of those two function or three or whatever. That a ton of code to rewrite.Yeah struggling with OSes specific is a pain in the hat but its not as if Blender does not already have like a gazillion abstractions inside for image manipulation, event handling etc etc. Eevee also depends heavily on OpenGL.
0 Comments
Leave a Reply. |
AuthorCristy ArchivesCategories |