6 ms·
It seems like Vulkan is being pushed really hard lately. Is it possible it might become THE cross-platform graphics interface and we start seeing truly platform
by stevemk14ebr 9y ago
It seems like Vulkan is being pushed really hard lately. Is it possible it might become THE cross-platform graphics interface and we start seeing truly platform agnostic games?
- tbolt 9y agoThat would be really nice. Having to have a windows pc solely for gaming is so wasteful.
- megaman22 9y agoApparently Apple doesn't really want anything to do with it[1]. I don't know that I'd hold my breath on the major game consoles picking it as the defacto way of doing things, over their close-to-the-metal graphics APIs, either. I'd be shocked if Microsoft bagged DirectX. And ultimately, Unreal and Unity are going to have whatever backends they need for whatever systems they are on, and most developers are going to be working through whatever the engine exposes, so they won't really care. Besides, there are many other dimensions of platform-dependentness. You've either got to go lowest-common denominator, or you've got to special case for the platforms that are more capable. [1] https://news.ycombinator.com/item?id=16475385 https://news.ycombinator.com/item?id=16475385
- euos 9y agoNo. Companies that matter are MS (they are still pushing DirectX), Apple (Metal or bust), Sony and Nintendo (each console has its API). Without full platform owner support Vulcan will be a second class citizen with all kinds of performance and compatibility issues.
- adamnemecek 9y agoThe Metal and Vulkan APIs are pretty similar. I can imagine a wrapper around the two that doesn't degrade the perf much. MS does support Vulkan AFAIK.
- bitwize 9y agoUWP and Xbox One apps must use DX. Microsoft appears to be gearing up to deprecate Win32 in the coming years.
- earenndil 9y agoI doubt they will ever truely deprecate win32. Too many old applications that will never get updated to UWP but that people are still using, there will be too much backlash.
- pjmlp 9y agoYou cannot use Win16 any longer on 64bit systems. It might take yet another decade, but it will eventually happen.
- jenscow 9y agoBut 32-bit was an improvement, and something that developers actually desired.
- pjmlp 9y agoMany Windows developers that prefer .NET and C++ to crusty Win32, and the improved security thanks sandbox, also see UWP as an improvement.
- ocdtrekkie 9y agoUWP is a massive improvement, as it puts applications in secure sandboxes, a strategy that basically every other platform is already doing. Sure, Microsoft faces an uphill battle since backwards compatibility is the name of their game, and few consumer-facing OSes today have a continuous platform going back over two decades. But UWP is definitely better.
- kllrnohj 9y agoHow many gamers do you think are going to give up Steam and go to the Windows Store? Similarly, how many Xbox One developers are going to bother with UWP, either? Given UWP allows the use of Win32 because nobody would use it if it didn't, it seems pretty likely that if games start using Vulkan then UWP will end up with Vulkan, too. Microsoft Store needs games more than games need UWP.
- Legion 9y agoMoltenVK implements the Vulkan API on Metal: https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-macos-ios-but-no-thanks-to-apple/ https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-... And as stated in that article, work is also being made to implement Vulkan on DirectX, allowing Vulkan apps to be distributed through the Windows Store (which requires DirectX). Nintendo Switch supports Vulkan. I expect we'll see Vulkan support quite strongly in the next generation of consoles (besides maybe Microsoft's)
- pjmlp 9y agoNintendo Switch supports Vulkan as much as the PS 3 supported OpenGL ES. It is there, but it isn't the main 3D graphics API.
- deaddodo 9y agoA cross-platform API will never be first-class on a console. The GPU in the Switch is a generic Tegra Maxwell with full OpenGL and DirectX (unusable, obviously) support, yet Nintendo still pushes NVN as the first class. PS4 has GNX, etc. Only Xbox has that chance since it has DirectX, but fat chance seeing that on OS X or Linux/*BSD
- Impossible 9y agoIf you want good performance on xbox you still have to use console specific APIs, in every engine I've worked with xbox is a special platform. I haven't done xbox development post dx12, but afaik xbox one still has console specific apis with dx12. Most PC games are not uwp (steam can't host uwp games), so extra work needs to be done to support both uwp and win32 as well as console specific direct3d.
- AndrewUnmuted 9y ago>> Without full platform owner support Vulcan (sic) will be a second class citizen with all kinds of performance and compatibility issues. Vulkan is owned by Khronos. Every single company you mention is a member of the Khronos group: https://www.khronos.org/members/list https://www.khronos.org/members/list Aside from the strong contingency Khronos Group carries, Vulkan's cross-platform support is in part due to its very good codebase, which enables easier integration.
- pjmlp 9y agoBeing a member does not mean anything, many companies just want a seat at the table.
- jacobolus 9y agoSure. Microsoft was also a member of Khronos 15–20 years ago, when (according to an acquaintance who used to work for a GPU vendor) they did every underhanded thing they could to disrupt the OpenGL spec / committee, while simultaneously working on their end to make sure it wouldn’t be a competitive way to develop Windows software. Being a member (by itself) doesn’t mean anything. Without talking to anyone involved or knowing additional context, it’s impossible to know whether the companies on the committee are productive collaborators, passive onlookers, or active opponents of Vulkan.
- boomboomsubban 9y ago>Sure. Microsoft was also a member of Khronos 15–20 years ago, when (according to an acquaintance who used to work for a GPU vendor) they did every underhanded thing they could to disrupt the OpenGL spec / committee, while simultaneously working on their end to make sure it wouldn’t be a competitive way to develop Windows software. You're talking about the pre-Khronos OpenGL Fahrenheit deal, which is largely public knowledge. Microsoft announced a joint project with SGI to support OpenGL on Windows, then put all their resources into DirectX while SGI spent two years building their section. The only unprovable part is that this was their goal all along, but the leaked combat plan against free software at the same time leaves little doubt.
- bitmapbrother 9y ago>No. Companies that matter are MS (they are still pushing DirectX), Apple (Metal or bust), Sony and Nintendo (each console has its API). Did you forget about Android? Vulkan was introduced in Android 7.
- pjmlp 9y agoYeah, 20% of market share and it isn't a required API. Only OpenGL ES 2.0 support is required. https://source.android.com/compatibility/android-cdd#7_1_display_and_graphics https://source.android.com/compatibility/android-cdd#7_1_dis... Section 7.1.4.2, "If device implementations support OpenGL ES 3.0 or 3.1, they: [SR] Are STRONGLY RECOMMENDED to include support for Vulkan 1.0 . If device implementations include a screen or video output, they: SHOULD include support for Vulkan 1.0. " Regarding specification language SHOULD is not the same as MUST, just nice to have.
- bitmapbrother 9y agoI believe it's more like 30%. In a few years Vulkan should be on the majority of Android devices.
- pjmlp 9y ago30% of Android N + O, yes I got it wrong. It doesn't change the fact that Vulkan is optional and still not worthy to be listed on Android dashboards. Not everyone is using S8 and Pixel phones. https://developer.android.com/about/dashboards/index.html https://developer.android.com/about/dashboards/index.html
- badsectoracula 9y agoThere are two elements in your question: 1. Vulkan becoming "THE" cross-platform graphics API and 2. This leading to games being truly platform agnostic. For 1, we already have OpenGL which theoretically is the true cross-platform graphics API. Vulkan adds another option for when you want more low level control (i've heard - i think from some Nvidia presentation - that a better way to think of Vulkan is as a GPU abstraction API that you use to build your own graphics API). For many years already, anyone who cared about writing a cross platform renderer with a single API, at least on desktop systems, would use OpenGL. For 2, generally speaking game engines tend to be platform agnostic and they were platform since the days of PS2 and original XBox and while there used to be engines that only supported a single playtform at the time, over the years this became less and less common and instead the engines are designed with portability in mind - especially since the last 10 years or so all games tend to be ported to Windows, XBox360 (or One for the latest gen) and PS3 (or PS4 for the latest gen) and each of those systems has their own specific APIs. Note that to do 2, all engines had to also support multiple graphics APIs by introducing their own abstraction layer for the native graphics API. Also note that an engine being platform agnostic doesn't necessarily mean that a game using this engine will be platform agnostic (e.g. UE4 does support Linux but you do not see all UE4 games supporting Linux). So basically, 1 cannot lead to 2 because 2 was already a thing for a long time. Now i will make an assumption here that what you really wanted to ask is that if Vulkan would make it more likely for Windows games to also be ported to Linux and OS X. Personally i wouldn't expect this to be any more likely than it would be without Vulkan (that is, the only cross platform option would be OpenGL), mainly because of Direct3D which allows a developer to support both Windows and XBox, where as Vulkan (and OpenGL) only supports desktop systems. The extra systems that Vulkan and OpenGL enable (Linux and OS X) have a very tiny market share that may not be worth the effort (not only in terms of programmer time). So i expect the situation to be exactly the same as with OpenGL: used mainly by those who focus on desktop systems and by those who use middleware and do not have much of a cost overhead to support Linux and OS X. And by those who prefer it for philosophical reasons, of course.
- Impossible 9y agoGraphics API is not the only, or even primary bottleneck for portability. You see this in every hackernews thread about Vulkan, but most developers are using portable engines where the graphics api (among many other things) is entirely abstracted and they still don't do day one ports because porting to a new platform is rarely free, even when all technical challenges are solved.
- deleted 9y ago[deleted]
- jsheard 9y agoCase in point: Id Software are heavily pushing Vulkan with their IdTech6 engine, yet every IT6 game to date only runs on Windows. Evidently they've decided that supporting Linux isn't worth the trouble even though their renderer is already portable to it.
- AsyncAwait 9y ago> every IT6 game to date only runs on Windows The new Doom runs on all the major console platforms as well, including the Nintendo Switch.