Vulkan

What's your opinion?
Do you think it will take off?
Do you have any experience with it?
Is it a good alternative to OpenGL?

Other urls found in this thread:

adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/
store.steampowered.com/hwsurvey/,
twitter.com/id_aa_carmack/status/193480622533120001
forums.khronos.org/showthread.php/12968-Copy-between-devices?p=39807&viewfull=1#post39807
twitter.com/SFWRedditVideos

only retard neet virgin autists arent using Windows 10, and these aren't the people driving the market or technology forward. Directx12 is the objectively superior option as it is much more refined not just a crappy side project that had like 8 months of development then got put on the backburner where it sits to this day.

go suck a fat dick, DirectX is a fucking sloppy cancer and DirectX is just a mantle ripoff that should be made open

correction DirectX12 is a mantle rip off

If you develop with DX12 you can't market to all the apple cucks and the few people running Linux

I see no traction on Vulkan. Consider it dead by the end of the year

Tell me pajeet, what quality of life are you afforded living on microsoft shill money? It must feel nice to be the only one on your street with a toilet. Are your neighbors happy when you invite them over to have their traditional poo parties in your house, rather than out in the street like they're used to?

both dx12 and vulkan won't take off. the market will get over the low level api meme in a year or two just like they did with glide.

Seems good in DOOM but that's the only game that uses it as far as I know. I expect DirectX 12 to ultimately win out just as previous versions did for the majority of games.

Not sure if Vulkan is supported by any professional apps yet, would be interesting though.

Dota2, Talos
Unity it's building support right now, something about massive performance gains from it.

Intel and AMD will push the fuck out of it due to the compute shaders that they can use to boost CPU tasks.

Android is using it, meaning all the poos will learn it and any game engines that support mobile will support it.

Sony has a history of supporting Kronos standards for rendering, and vulkan makes their APU shine.

But sure, the tiny desktop gaming market will totally decide the API space.

>What's your opinion?
* Still somewhat too young and immature
* Very painful/difficult to use directly
* Moves lots of responsibility onto the developer, so getting a bug-free vulkan product shipped will be much more difficult than a bug-free OpenGL product

>Do you think it will take off?
Yes, absolutely. It will deprecate OpenGL, and abstractions will be built on top of vulkan that present an OpenGL-like level of API complexity while reaping all of the modern benefits

>Do you have any experience with it?
I have moderate amounts of experience with it. I'm not an expert by any means, but I have a solid working knowledge.

>Is it a good alternative to OpenGL?
If you want to use vulkan directly, you will need to put in *lots* of effort. You will need to plan out your software far more. Any minor change will require lots of boilerplate and reshuffling code, so early mistakes can be costly.

That said, it fixes pretty much all of the issues with OpenGL and brings the API up to what we expect from a 2017-era API. It removes all of the shitty global state and other sources of inefficiency. It gives you direct control over memory allocation, pipeline and render pass dependencies; it lets you use multi-threading, it lets pre-bake and reuse command buffers instead of having to recompute them per frame, it unifies the context creation API and abstracts it away from the output API, and much, much more.

Basically, it's a desperately needed replacement for OpenGL but it comes at the cost of being very difficult to use natively. I fully expect people to build higher-level wrapper libraries on top of it that will open it up to people who aren't very dedicated individuals or big teams/companies that can afford to put lots of resources into their renderer.

>Not sure if Vulkan is supported by any professional apps yet

What is this even mean?

Also, vulkan's killer feature is the high amount of emphasis on being cross-platform. Vulkan has a *lot* of design considerations in place that make it suitable for integrated GPUs in things like mobile devices. In particular, since you get full control over the pipeline and render passes, you can specify which render passes you know to be tilable, which allows a tiled renderer (e.g. mobile GPU) to skip ahead and process the entire render pass in one go, while keeping the frame buffer in cache.

This allows you to get dramatic speedups from mobile renderers compared to having to process things pass-by-pass, swapping the cache every time, to comply with OpenGL semantics

Doesn't matter as much for immediate mode renderers like desktop GPUs, but the fact that Vulkan runs well on every platform, is equivalent in power to something like DirectX 12 (which is a first-time reversal of the OpenGL situation, where DirectX was always leaps and bounds ahead of OpenGL), and has good support for integrated GPUs means that 3D engine developesr of the future will be pretty dumb not to target Vulkan.

Major engines like the Unreal Engine, id Tech engine and Source engine already support Vulkan, and more are almost surely following. I imagine Unity (which is uses OpenGL currently) will also switch to Vulkan soon enough.

Between the unreal, source and unity engines you pretty much already cover the majority of games already, so the only stuff left is big-budget AAA companies pushing their own in-house engines; and for those it's a bit less clear about whether they want to reap the rewards of being cross-platform or not since their majority user base uses Windows. So I think it mostly depends on what the rest of the market is doing. They will use whatever is better established in terms of driver support etc.

I think it will eventually take off if the tech is legit, yes.

The convenience of being able to develop for multiple platforms at once, Linux, OSX, Windows, and then PS4, Xbone, what have you, and even mobile devices is surely not lost on companies.

>tiny desktop gaming market
Bruh.

cities skylines needs to update to vulkan so we can use mods and assets and get over 30-40 fps on normal sized cities

the game is clearly cpu bound and the unity engine supports vulkan, the c:s devs just have to implement it, but they won't because they are retarded and made a poorly coded agent based video game

Also, the thing that most people don't understand is that an API is only as powerful as the programmers using them. The platform only gives you tools, it's the programmer's responsibility to use them.

Thinking that “if I port my OpenGL app to Vulkan it will improve performance” is simply false. It's more like, “if I port my OpenGL app to Vulkan then I will finally be able to do ”. But you still have to put in effort.

For example, you can use Vulkan pretty much like a dumb OpenGL replacement. You build your global command buffer every frame, you populate it, you send it, with a semaphore guarding both directions. But if you do that, you get the exact same issues as with OpenGL: pipeline / command buffer computational overhead, bad texture allocation, etc. Heck, you can even leave all your textures in universal format. It will be easier, because it keesp you from having to worry about texture formats and pipeline barriers, but it will be slower.

If you actually want to use any of these tools to *speed up* your game, you actually need to redesign your entire engine. You need to rethink the way you approach the render loop. You need to work parallelism and re-use into your architecture from the scratch. You need to be as precise and minimal as possible with your pass dependencies and pipeline barriers.

With vulkan, you can get insane amounts of performance - but only if you put in insane amounts of effort. It just opens up the hardware for you to optimize, rather than being stuck behind a big black box driver that forced you to do things inefficiently all the time.

well, its main use right now is doom, i'm on a sub minimum cpu, and a slightly above minimum gpu and i'm getting 60-100fps on nearly maxed (what my gpu can handle without running out of resources) settings

Its such a huge fucking performance uptick that i'm now legitimately pissed that every game is not using it.

>idiots think the only value of an API is being able to play the games that use it
for a moment there I thought I accidentally clicked on Sup Forums instead of Sup Forums or something

what part of
"its main use right now is doom"
do you not understand?

currently the only thing that properly uses the api is doom, In all honesty its difficult to see its uses outside of gaming because it asks to much of developers who would most likely be better off just using opengl

>Its such a huge fucking performance uptick that i'm now legitimately pissed that every game is not using it.
See Games using Vulkan won't improve performance, not generally. It is still up to the game developers actually doing a good job of optimizing their game.

id Tech did a fantastic job of optimizing for vulkan, because it was built from the ground up to use the new technologies. See adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/ for a good example of what new and unique things it's doing, which is only possible due to stuff like explicitly controlling texture allocation and aliasing, subregion dependencies, and so on.

I actually think it will do better than DX12, but that DX11 will do better than either for the near future.

Writing a new-style engine is a huge PITA, but those that do will probably want more cross-platform potential for their efforts. The people who are too lazy to bother (i.e., virtually everyone) can and will just stick with DX11.

There have been more big-name DX12 titles than Vulkan, but most of them have had so-so results, which I suspect will make a lot of other parties think twice before attempting themselves.

One thing you have to consider is that DX12 has the huge extra downside of only being supported on Windows 10.

According to store.steampowered.com/hwsurvey/, that's basically half your market right there. Vulkan provides the same benefits as DirectX 12 but works on Windows 7 as well.

I'm still learning OpenGL, but Vulkan solves some of it's problem, mainly with it you can feed the GPU drawcalls asynchronous. Actually the GPU can know do basically everything asynchronous.

For example a game might have a graphics thread, a networking thread and a physics thread, all GPU accelerated. In the pass you would have had to sync all the calls in a single thread that would talk to the GPU, know you can basically whatever you want and the GPU will compute.

t. retard

I hope you enjoy your botnet os with a key logger

>Major engines like the Unreal Engine, id Tech engine and Source engine already support Vulkan, and more are almost surely following. I imagine Unity (which is uses OpenGL currently) will also switch to Vulkan soon enough.
UE4 vulkan support is garbage, basically just dx11 emulator running on vulkan. The developer response has been absolutely pathetic, almost all the ones that were pushing for mantle/vulkan have done nothing or use DX12. Even most of the DX12 games are basically just wrappers.

The only decent attempts so far are Doom + vulkan and ashes of the singularity + dx12.

Epic are a special kind of stupid, they were complaining about windows 10, UWP and the windows store, they're in position to oppose it by pushing vulkan support, instead they can't even be bothered supporting it beyond the minimum needed to run on android.

Yes, but only thanks to mobile. Otherwise it would've been DX12

>For example a game might have a graphics thread, a networking thread and a physics thread, all GPU accelerated.
oh yes, we need a GPU-accelerated networking thread

Sturgeon's law applies to video game companies, I guess.

>basically just dx11 emulator running on vulkan
>Even most of the DX12 games are basically just wrappers.
This is exactly the problem I meant to highlight by If you just take your D3D11 engine and systematically translate the D3D11 calls to Vulkan/DX12 calls, you are not going to gain anything..

PITA to set up
PITA to use efficiently

Overall, however, far less PITA than OpenGL or Direct3D.

Could possibly take off.

IMO, the only thing it really has going for it is SPIR-V.

No more shitty inconsistent backends loosely glued to slightly modified Clang: Now, you get to write your own have have only yourself to blame for the shittiness (not that we can't already do substantially shittier source-to-source translation).

>Directx12 is the objectively superior option
this statement is objectively wrong

> Urrrrrrr GPU accelerated networking
> GPU accelerated sound
> GPU accelerated BLAS
> GPGPGPGPGPGPGPGPU

> bus latency is longer than round-trip to client in the same room.

>IMO, the only thing it really has going for it is SPIR-V.
>No more shitty inconsistent backends loosely glued to slightly modified Clang: Now, you get to write your own have have only yourself to blame for the shittiness (not that we can't already do substantially shittier source-to-source translation).
Yes, now you have to link to some piece of shit GLSL->SPIR-V translator instead! \o/

twitter.com/id_aa_carmack/status/193480622533120001

Apple won't support vulkan and will use metal

Unity cryengine and unreal engine will have a vulkan port and linux release
The Talos of principle have a vulkan port which is said to perform 120% better than opengl on linux. It also perform better on linux than on windows (both vulkan)
Every OS will support it including Android and the new Nintendo

Devs have been playing with mantle before


Looks like it's gonna take off for me.

Talos is just a wrapper as well. Doom is the only proper Vulkan game I know of.

It's a little ridiculous devs can't do it properly when they have been dealing with much the same thing on consoles for years.

>Talos is just a wrapper as well
And yet people had this insane improvement over opengl ?
Or opengl support was really shit on linux or vulkan is actually awesome

Currently learning it. I think the only thing more verbose is win32.

Croteam said they want to abandon Direct3D in favor of Vulkan entirely. D3D11 is just for legacy support now.

10%
0
%

Market share

It's way more complex then OpenGL and directx. Once some people start releasing some good frameworks or engines it'll bto windows forever

what a witty retort! thanks for your feedback!

Looks like you know what you're talking about, so let me ask you: what will be the story with SLI on Vulkan? I've read somewhere that, given the API is used correctly, SLI will be problem-free and there won't be a performance penalty.

>what will be the story with SLI on Vulkan? I've read somewhere that, given the API is used correctly, SLI will be problem-free and there won't be a performance penalty.
I'm not familiar with either conventional SLI or multi-GPU vulkan, sorry.

But what I can tell you is that in vulkan, there is a clear separation between the vulkan context and the vulkan devices. I can get a clear picture of all the available GPU devices from a single vulkan context, and I can enumerate the hardware capabilities etc. on a per-device basis - and this works regardless of what manufacturer each GPU is from. (So you could use an nvidia GPU and an AMD GPU at the same time in the same system without any problems)

That's pretty much the extent of my contact with it because I've only ever worked with a single device setting. But I would assume that in either case, it's the programmer's responsibility of deciding what commands to send to which GPU, so stuff like splitting up work is your responsibility. (Do you interleave frames? Do you split up simultaneous render passes for stuff like multiple lights across GPUs? Do you use one GPU for rendering the frame and one GPU for auxiliary functions like particle physics, postprocessing etc.? Or possibly, have one display connected to each GPU and just do multi-display that way)

As for how you will transfer data from one GPU to the other, I do not know. Round-tripping through the bus / memory would be bad, and hopefully there will be some way of using high-speed interconnects like the SLI/Crossfire bridges, but I don't know anything about that.

What vulkan does *not* do, however, is “abstract” multiple GPUs into a single logical GPU that splits up work automatically, which is basically what SLI and Crossfire are doing. The program will have to be specifically coded to support multi-GPU rendering.

re: copying data between devices directly, I found this comment
forums.khronos.org/showthread.php/12968-Copy-between-devices?p=39807&viewfull=1#post39807

Seems like it's still a work in progress area.

>retard neet virgin autists
When your bait becomes this pathetic you might just want to stop posting.

mobile gaming is the future, windows phone sales are shit, vulkan is supported on android (and iOS albeit not officially), SoCs are shipping with Vulkan support

Can't I copy the data from device A to the host memory and from there to device B?

Yes but that's slow, has high latency and involves a completely unnecessary host memory round trip.

It would be like trying to do SLI with the SLi bridge removed.

Yes, of course. But then you deal with texture formats, float representations, and two trips through the North bridge which happens to already be busy with CPU memory fetches

What's the alternative without some sort of bridge? Just end to end via PCIe? Is that even possible?

>What's the alternative without some sort of bridge? Just end to end via PCIe? Is that even possible?
I thought you do alternate frame rendering or tiled rendering on the new APIs.Since the engine developer has control there's probably even more extreme options where one GPU does lighting and AO pass while the other does textures, compositing and post processing.

The ashes of the singularity devs make it sound like their engine barely cares how many GPUs there are and just divide up different tasks between them.

Isn't Vulkan more geared towards embedded targets?

Alternate frame rendering doubles the latency, which is pretty undesirable for something like a game

>guaranteed replies
Nice b8

Unlike dx, it's cross platform. It's also completely free. Vulkan is the future of gaming, especially cross platform gaming. You'll be able to enjoy gaymin on
>Windows XP/Vista/7/8/8.1/10
>Mac
>desktop Linux distros
>mobile Linux (Android and the irrelevant ones)
>iOS (If Apple allows it)

>should be made open
Shut the fuck up you commie piece of shit
All you dream is cheating in our games

>a mantle ripoff
Freetards are adorable delusional.

I kinda want a GPU-accelerated network card.

no. its geared to what you program it to target.

Well obviously you can target anything with it but in applications where battery life, clock cycles and RAM are at a premium like in embedded you see more immediate results.

I've seen it suggested for use in car stereo products and a lot in cell phones and I can really see the use there. On a desktop/laptop it just doesn't matter as much because you have big beefy graphics cards/processors and wall power. It can also be useful for very skilled developers who want to eek out every bit of performance they can out of a game or want their high performance game to be able to run on lower end hardware.

I don't think it's a good "alternative to OpenGL" I think it's a good api for battery powered or low spec devices that are graphics intensive.

Just because it works great on embedded stuff doesn't mean it is any less capable or powerful on desktops.

audio is so cheap computationally that the gpu compute setup overhead would probably trump any performance gain a gpu accelerated audio engine would have, plus we already have cheap hardware dedicated for it. latency is more important with audio than processing power

same thing with networking

physics engines make more sense to be accelerated but only for large simulations which most videogames don't even come close to

>mfw DirectX was created in the 90's

This.
Most people haven't realized that OpenGL is by far the most used graphics library, because they are lost in the PC desktop world