6 ms·
Apple -> Moltenvk (Have to blame Apple for not supporting Vulkan). Moltenvk is used by games such as Dota2. If moltenvk doesn't work fine for your game, you mus
by ireallywantthat 3y ago
Apple -> Moltenvk (Have to blame Apple for not supporting Vulkan). Moltenvk is used by games such as Dota2. If moltenvk doesn't work fine for your game, you must not target Apple Mac devices anyway.(valve dropped mac support for cs2). For non game cases, Moltenvk works just fine.
Nintendo -> supports Vulkan natively
Sony -> supports Vulkan (as per latest patch notes of BG3: https://baldursgate3.game/news/hotfix-9-now-live_95 https://baldursgate3.game/news/hotfix-9-now-live_95 )
Xbox -> Doesn't support Vulkan
Microsoft Windows -> Supports Vulkan natively first class.
AMD/Nvidia/Intel -> Supports Vulkan as First class APIs.
Android -> supports First Class Vulkan APIs natively.
Linux -> supports First Class Vulkan APIs natively.
- slimsag 3y agoApple -> MoltenVK is an emulation layer and doesn't give you as much control as using Metal directly. Nintendo and Sony prefer their own APIs, NVN and LibGNM, and AIUI Vulkan is a second-class API on those platforms which does not offer as much power, it is widely understood studios use NVN and LibGNM to get access to the real hardware on those platforms. Windows/AMD/NVidia/Intel -> HW manufacturers tend to prototype and release new features with D3D first and then 'backport' them to Vulkan after a while. DirectX 12 for example had mesh shaders for over 2 years before Vulkan got a vendor neutral extension for them[0] Android and Linux are the only platform where Vulkan is a first-class citizen. You could maybe argue Nvidia treats Vulkan as a first-class citizen because they tend to have vendor-specific Vulkan extensions for the latest features available before anyone else. But otherwise, no, Vulkan is not a first-class API anywhere except Linux and Android. Graphics API wars are alive and well. [0] https://github.com/KhronosGroup/Vulkan-Docs/issues/1423 https://github.com/KhronosGroup/Vulkan-Docs/issues/1423
- pjmlp 3y agoOn top of that, OpenGL/Vulkan advocates tend to ignore that extension spaghetti makes them also completely unportable when extensions are only available for specific vendors, and if they are lucky with multiple vendors offering similar extensions, there is an exponential set of code paths only to deal with all of them. Making them in the end hardly better than multiple backends, when doing serious stuff across multiple GPUs and OSes.
- ireallywantthat 3y agoYou know that Vulkan targets vast amount of Hardwares which makes Vulkan Extensions a lucrative deal rather than thing you despise, right? Don't get me wrong. I agree that it's less worrying to know beforehand that all the features will be available in the target environment with features made mandatory rather than extensions. But, it's not like the case of Apple/Sony/Xbox which has software tailored for the device. Vulkan devices range from Virtual devices(Moltenvk) to Android(Low powered devices) to Desktops(Linux, Windows) to Workstations(Linux). Having ray tracing mandatory in low powered devices like low budget android phones doesn't make any sense, that's why it's made as extension. But, you can be sure that any modern desktop with modern GPU by any vendor atleast adheres to Vulkan standard and has specified extensions available. That can't be said about experimental extensions though (Like Vulkan Video). > Making them in the end hardly better than multiple backends, when doing serious stuff across multiple GPUs and OSes. This "multiple backend" solution is not ideal too. Firstly, it was necessary because not all Vendors supported single Graphics API standard. Secondly, it isn't powerful as main API it gets translated to(DX,Vk,Mt). Thirdly, I don't see how it helps when target environment doesn't have an extension available. Maybe "Multiple Backend" solutions might make few things easier like removing Verbosity and maybe they are good for Small applications but I don't think they are worthy replacements to Main APIs
- pjmlp 3y agoA wall of text to argue in favour of extension spaghetti. How many cross platform applications have you shipped with Khronos APIs? I did my graduation thesis in 3D particle visualisation and marching cubes implementation, based on a framework ported from NeXT/Objective-C in Windows/C++, using OpenGL. Contributed to SDL, Ogre3D and jMonkeyEngine. Also contributed to some BabylonJS stuff in WebGPU. What are you 3D credentials?
- ireallywantthat 3y agoIf you are that knowledgeable person in this domain, try to refute/discuss my content instead of asking my credentials. What is the best alternative to Vulkan extensions in your opinion? Remember that Vulkan supports vast number of devices. I think that making featureset mandatory for all devices is not sensible approach here.
- flohofwoe 3y ago> Microsoft Windows -> Supports Vulkan natively first class. Erm, no? Vulkan is completely implemented in GPU vendor driver DLLs, Microsoft has no part in this. The only first class 3D APIs on Windows are the D3D APIs. In reality, Vulkan doesn't matter much except on Android and Linux.
- ireallywantthat 3y agoI agree that Microsoft has no part in this. But, any computers which run Microsoft Windows has GPUs made by these Manufacturers: Nvidia,AMD,Intel and Qualcomm and all these Manufacturers have good Vulkan Drivers in Windows. Thus said, even though Microsoft doesn't support Vulkan officially, you can tell that Vulkan has first class support on Microsoft Windows given that all GPU drivers have good first class Vulkan support and all Vulkan Applications run just fine on Windows. > In reality, Vulkan doesn't matter much except on Android and Linux. No, it matters. Vulkan is the first modern cross platform Graphics API which can run across Linux,Windows,Android,MacOS,Switch to name a few. No similar API does exist currently which offers high performance along with being portable.
- troupo 3y ago> Have to blame Apple for not supporting Vulkan Why would Apple support something that appeared two years later than Metal? And as others pointed out already, Android and Linux are the only platforms where Vulkan is first class.
- ireallywantthat 3y ago> Why would Apple support something that appeared two years later than Metal? Because Vulkan is Open Standard? It's similar to how EV car manufacturers other than Tesla are now embracing NACS even though it was born at Tesla. It's also similar to how Apple adopted USB C given Lightning was already a standard before USB C. You can't blame community or Khoronos either. Khoronos and developers did their best with best effort Vulkan-> Metal translator with Moltenvk and you can now not worry that your Vulkan apps won't run on MacOS(exceptions are heavy games and there are still many Vulkan extensions not implemented thanks to Metal). And note that it's not you or I who is losing because Apple didn't support Vulkan. It's Apple themselves whose Mac devices have started losing share in Gaming Market. Day by day, Developers are ignoring MacOS as target. If this isn't a warning call to Apple, i don't know what is.
- troupo 3y ago> Because Vulkan is Open Standard? Why didn't Microsoft immediately embrace it? Or Sony? Or... > You can't blame community or Khoronos either. Khoronos and developers did their best with best effort Vulkan-> Metal translator Yes. Yes, we can and should blame Khronos. For their mismanagement of OpenGL. For the fact that they woke up and decided they needed a new API a full year after both DirectX and Metal, and managed to release first version a full two years after those two. > And note that it's not you or I who is losing because Apple didn't support Vulkan. It's Apple themselves whose Mac devices have started losing share in Gaming Market. Ah yes. They are losing because of not supporting Vulkan. Let's see: - iPhone is Metal (before you say that more people are gaming on Android, iOS's mobile gaming revenue dwarfs Android) - Xbox is DirectX - Playstation is GNM and GNMX Apple is losing, should abandon Metal and go all in on Vulkan because.