Update: Now on GitLab.
It's been a few years I had been meaning to learn modern OpenGL, so when Vulkan came out this February, I decided I'd just go and learn that instead. Boy, not knowing modern OpenGL did not help! Powering through despite much personal duties, I've written these tutorials along the way that I'd like to share with you:
https://github.com/ShabbyX/vktut
In these tutorials, I first explore the basics of Vulkan, such as enumerating your GPU cards, find out the features your drivers have, and setting up Vulkan to use the cards. Due to the shear amount of work and knowledge required to render to screen, I experiment with compute shaders first. This keeps the complexity low, while allowing us to do some parallel work and evaluate Vulkan w.r.t multi-threading. Afterwards, I talk about extensions and layers in Vulkan, which are very nice. The next tutorials set up a window for rendering and show how to allocate resources. After eight painstaking tutorials, a triangle is drawn!
What I learned about Vulkan in this time is that it's just pure awesome. You have so much power over every aspect of rendering, your skills are the only limitation! Vulkan may seem complex at first, and it sure is verbose, but at its heart it's very simple. It's all about declaring what you are going to do, and then doing it. The Vulkan specification is also a very nicely written document that is quite easy to read.
If you are interested in learning about Vulkan with some real code you can play with, feel free to rummage through my tutorials. Naturally, they are written under Linux and target Linux.
I will wait until vega release and then I will try it
(Well, sort of. My GPU is a HD6870)
But if you managed to get by with knowledge based on ancient OpenGL... well, I guess I should give it a try. To bad I'll have to switch to C now - no Vulkan binding for Vala atm. Maybe I'll implement one myself someday...
Like all free software, do feel free to point out errors, imprecisions, or send pull requests.
I'd say you need to know a bit of math, matrix transformations in particular, but then again you would need to know that for any graphics API anyway! To be honest, when I didn't know about something in Vulkan, I would look it up in the context of OpenGL (where there are a lot of info online), and almost everything, conceptually, is the same. I don't see why you wouldn't learn Vulkan directly.
Only thing I can say about that, and I'm sure you know already, is that it's much easier in OpenGL to get something drawn on the screen. But once you can do that in Vulkan, everything else is actually much easier; the API is very clean, there is zero cruft, and no strange behavior because of legacy.
How awesome would that be? :)
I'm a big fan of Python, but if I am doing something serious with Vulkan, maybe C is still the way to go with it being low level.
you can check this too
Most recently, I added one where I fake a presentation engine (as if done in the driver) that renders to terminal with ncurses. With very minimal changes to the application, I get a Vulkan-rendered triangle on the terminal!