Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
We do often include affiliate links to earn us some pennies. See more here.

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.

Article taken from GamingOnLinux.com.
Tags: Editorial, Vulkan
0 Likes
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
14 comments

kalin Jul 13, 2016
You have star from me. Sadly I can't test the tutorial because my gpu don't support vulkan (560ti).
I will wait until vega release and then I will try it
MayeulC Jul 13, 2016
You have star from me. Sadly I can't test the tutorial because my gpu don't support vulkan (560ti).
I will wait until vega release and then I will try it
^ This _exactly_ :)

(Well, sort of. My GPU is a HD6870)
Adinimys Jul 13, 2016
Awesome ! I'll try your tutorial when I'll have time. I'm in the same mind as you about learning OpenGL/Vulkan
Psycic101 Jul 13, 2016
Not too Shabby :P hehe, but seriously, awesome work :D
linux_gamer Jul 13, 2016
Got them up and running. Really nice work!
You have star from me. Sadly I can't test the tutorial because my gpu don't support vulkan (560ti).
I will wait until vega release and then I will try it
Im so happy my good old 650M can use Vulkan.
whatever Jul 13, 2016
Thank you Shahbaz for these great tutorials. I've not tried them yet but i've looked at the source code and is very well organized and commented. Starred!
Smaloki Jul 13, 2016
Impressive! I actually held off on learning Vulkan because I was told that you'd need a certain amount of experience with graphics programming to comprehend it. And since I just started playing around with OpenGL three months ago, I figured I'd never be able to get into Vulkan.

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...
Shmerl Jul 14, 2016
Those who'd rather not use C directly, check this out: https://github.com/tomaka/vulkano
ShabbyX Jul 14, 2016
Thanks for all the positive responses, guys! I'm happy I managed to inspire a few. :)

Like all free software, do feel free to point out errors, imprecisions, or send pull requests.
ShabbyX Jul 14, 2016
Impressive! I actually held off on learning Vulkan because I was told that you'd need a certain amount of experience with graphics programming to comprehend it. And since I just started playing around with OpenGL three months ago, I figured I'd never be able to get into Vulkan.

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.

... no Vulkan binding for Vala atm. Maybe I'll implement one myself someday...

How awesome would that be? :)
t3g Jul 14, 2016
Has anyone tried the Python bindings from https://pypi.python.org/pypi/pyVulkan?

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.
neowiz73 Jul 14, 2016
thanks for the tutorials, awesome work, these will nice to check out :)
kalin Jul 18, 2016
https://vulkan-tutorial.com/
you can check this too
ShabbyX Oct 9, 2016
If anyone is still following, I've added a couple more tutorials since I posted this.

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!
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.