Vulkan, an alternative to OpenGL and DirectX has been released

It’s multiplatform so are there any plans to use it in Blender? To my understanding OpenGL has been falling behind the competition for years.

Well, I don’t think it’s going to have decent implementations for at the least 3 years. You see, the first year, starting today, with be filled with quick experiments and half-assed ports to get to know the API.

The second year will be filled with End-users who don’t understand APIs saying that ‘well, Vulkan was a bust’ on the basis they don’t see any proper implementations, and hear nothing from companies who would be implementing this.

In the third year, companies will finally be releasing their fancy games.

In the fourth year, we’ll have a huge thread here saying that Blender is falling behind the REST OF THE INDUSTRY™ because it doesn’t have Vulkan. Maya will have vulkan in it’s material preview panel by then.

In five years, Blender 3.something will release with the Vulkan API embedded into everything in special ways you can’t imagine. Noone will take note and instead will go crazy of material-id renderpasses that are somehow anti-aliased through some hack.

(On a serious note: Afair the Blender Foundation is part of the vulkan working group? I bet they’re gonna toy with it this weekend.)

Edit because I know the two threads are going to be merged: Serious Note Number 2: Vulkan did not take a long time to release for a new standard. W3C standards specs take up to 10 years to get released as a recommendation. Honestly, I think they managed a huge feat getting more than four companies to agree on something so huge within such a short period AND have working drivers for one of the big three.

Vulkan is a lower level API compared to OpenGL. That’s great when you’re writing for a specific architecture, like the consoles, and not so great when you want to cover most everything on the market, which Blender does. Right now Blender is struggling to dig itself out from its OpenGL 1.4 legacy. I suspect Blender will be staying with OpenGL for the foreseeable future. Maybe there will be an nVidia or AMD-specific Vulkan experimental branch in a year or three.

TL;DR: Wait and see.

So far, Apple hasn’t announced support for it (and it doesn’t support OpenGL > 4.1 either), so that’s going to be an issue. Blender was supposed to get an abstraction layer for graphics APIs, but I haven’t heard much about that in quite a while.

edit: MetalVK promises Vulkan on iOS/Mac OS. It’s not free software, but maybe a similar solution emerges for free software as well.

To my understanding OpenGL has been falling behind the competition for years.

In terms of specification, not really - at least least compared to D3D11. The actual driver implementations tend to be problematic though (i.e. bug-ridden), maybe with the exception of NVIDIA.

Vulkan gives driver authors less opportunities to mess up, but it still remains to be seen how it turns out in the long run. Application developers also will, at least in theory, have a tougher time with Vulkan being more low-level. Then again, anybody who has gone through the pain of seriously using modern OpenGL probably has toughened up to deal with Vulkan as well.

Over time, tools to work better both with Vulkan and on top of Vulkan (i.e. using an easier abstraction layer) will hopefully emerge.

It’s worth noting that Vulkan is heavily based on AMD’s Mantle, which also had influence on the design of D3D12.

Indeed, Vulkan is closer to the hardware and as such, it operates on a lower abstraction level than OpenGL. But Vulkan is still not tied to certain platforms or architectures. It is a cross-platform API. The main advantage of it is its multi-threaded nature. That’s the part that makes it faster out of the box when used properly. That kind of functionality was only available on consoles previously, but with the modern graphics APIs, it is not available for most platforms.
I haven’t seen that the Blender developers are struggling with the OpenGL update so far. They are doing it systematically and carefully. It is a lot of work and it takes time, but I can’t see them struggling with it.

A Vulkan game on Steam: Talos Principle Vulkan

At least we can see it in action

Unity and UE4 are going to implement this. That’s nice.

With Vulkan, you can submit instructions to your driver in batches, which reduces driver overhead - this is the core performance advantage. Those batches can be built from multiple threads, but they don’t have to. It’s not a good idea to bring threads in unless it’s clear there will be an advantage.

Regarding performance advantages, this chart popped up on twitter yesterday:

Deciding purely on this, there’s almost no reason that Blender should consider Vulkan support at all. The only advantage I could think of would be scenes with large amounts of instanced objects that (for some technical reason) can’t be replicated through OpenGL instancing and would still need individual draw calls. With “real” objects, Blender hits its own architectural limits anyway, driver overhead is not a concern there yet.

However, this chart ignores the many potential advantages that Vulkan could bring regarding driver quality and tooling. How much of those advantages become real remains to be seen. As of now, there’s no reason for Blender to be an early adopter.

@BeerBaron, with the new viewport, there are several potential performance improvements. E.g. it is possible to compute expensive effects like SSAO while the next frame is already being prepared. This can help even if there is just one visible object.

isn’t vulkan the new opengl? among other things it merges opengl and opengles. i was under the impression that chronos isn’t going to be making another opengl spec. with vulkan and dx12 both being based on mantle most people will probably move to vulcan since it will be closer to what they are already going to do with dx12.

imo it would be better for developers to start learning vulkan now rather than waiting until they are forced to learn it as they rewrite code later. it could save them from going one step forward then 2 steps back because of something they learn later. as slow as it can be, doing it right the first time is faster than wasting time doing it wrong then doing it right. and you have to know how to do it right before you do it, nobody is going to do it right every time just on dumb luck guessing. and if its me…you can bet murpheys law will be fully enforced. step 1 with me is always “read the directions first.” if i hit the lotto i wouldn’t even get an iou, i would get a you owe me.

That could reduce latency during navigation a bit, but not if there’s only one visible object, then the time to prepare the next frame will be irrelevant.

I would like to point to this mailing list announcement – http://lists.blender.org/pipermail/bf-committers/2015-December/046263.html

Hi all,

Our friends in AMD have invited Blender Foundation to participate in the official Khronos Vulkan advisory panel. That’s a great honour, another signal that Blender is doing very well in the eyes of the industry!

Khronos’ goal is to make awesome open standards, but in the process NDAs for participants are unfortunately inevitable. I’ve signed this on behalf of BF. Currently Campbell Barton, Sergey Sharybin and myself have official access to some of the closed areas there.

Luckily a lot of information on Vulkan is public already!
https://www.khronos.org/vulkan

If active contributors here would like to feedback on Vulkan as well, just contact one of us then we make sure it gets forwarded. We can also check on adding people to the non-public areas. Contact me to discuss that!

Laters,

-Ton-

I’m no developer, but from my limited perspective…
The guys from Vulkan (several of whom are Blenderheads) visited the Blender booth several times at Siggraph last year (even giving us all Vulkan T-shirts!)
Ton had many conversations with them and it would seem he is well aware of the project and its capabilities and benefits.

EDIT: wup, just saw the post above ^^^ so there you go.

It sounds unlikely that Blender drawing code is to be redone using Vulkan thoughk as backwards compatibility is always a priority and Vulkan is not supported on cards older than Kepler (I don’t know about AMD). Unless they make a special mode or something.

backward compatibility is a priority? do you know how often scripts get broken? it shopuld work on most amd cards that are dx10 compatible. i think any card released in the last 3-4 years. vulkan can even run on phones, it will use a power house computer to its fullest extent if you need it, but it will also scale down to run on very limited hardware. if it can replace opengles i wouldn’t worry about not having the power to run it. nvidia may try to force people to upgrade, but i suspect that is more nvidias choice than actual neccisity, like when they cut the 700 cards so you couldn’t use quadro drivers anymore

backward compatibility is a priority? do you know how often scripts get broken? it shopuld work on most amd cards that are dx10 compatible. i think any card released in the last 3-4 years.

If some external script gets broken, it can still be fixed. If Blender stops working on a huge amount of hardware, that’s an entirely different situation.

To my understanding, Vulkan drivers are (or will be) available for:
-NVIDIA Kepler and Maxwell (GTX 6xx and up)
-AMD GCN (Radeon HD 7xxxx and up)
-Intel Core 5th/6th generation (Core i3/i5/i7 5xxx and up)

I’m not sure about mobile, but it’s gonna take quite a while before drivers are going to have a relevant market share there, even OpenGL ES3 support isn’t that big.

Targeting only Vulkan is not going to be an option for most people, for quite a while. Blender only just switched to OpenGL 2.1 as a minimum, which spans hardware from well over the last decade.

And to clear out some other things…

isn’t vulkan the new opengl?

No, it isn’t.

among other things it merges opengl and opengles.

No, it doesn’t.

i was under the impression that chronos isn’t going to be making another opengl spec.

So far, this is undecided.

imo it would be better for developers to start learning vulkan now rather than waiting until they are forced to learn it as they rewrite code later.

I don’t think that is a good idea for most developers. If you use Vulkan as an earlier adopter, you will face way more driver bugs and have access to way less reference information. Also, if Vulkan fails in the market (which may well happen) then you will have wasted all that effort.

Since Vulkan, D3D12 and Metal are so similar, it’s also possible that in the future there will be an adequate abstraction layer readily available so that most developers will never have to learn all the intricacies of Vulkan.

Vulkan right now has few tangible benefits on offer, therefore… wait and see.

I think openGraphicsLanguage is great…

The problem is not on their end, thr problem is that we dont have a openGPU.

OpenGL is not a language. It stands for Open Graphics Library. Just saying.

Is there any executable of sample/example of Vulkan?

You can find them on the Vulkan website: https://www.khronos.org/vulkan/

But seriously guys, read the announcement at the very least before commenting. There’s also a nice Phoronix article which sums up the important bits for endusers.

Okay thanks, yesterday I saw the site but did not see it.