I have added another example to my open source C++ Vulkan examples. The new one is about indirect drawing (including multi draw if supported). Contrary to their non-direct counterparts, the indirect drawing commands in Vulkan take their draw calls from a buffer that is ideally stored in device local memory. So instead of running single draw commands that get their index base, index count and instancing numbers passed by the host upon getting called, the indirect commands are backed by a buffer that stores an arbitrary number of draw commands.
[Read More]
New Vulkan example: Deferred shading and shadows
Based on the recently updated deferred shading example, I have added a new example to my open source C++ Vulkan samples. This example adds dynamic shadows from multiple light sources, showcasing a few technologies that can be used to make rendering of multiple shadows more efficient.
To achieve this, the example uses a layered depth attachment with one layer per light source that is sampled in the final scene composition. Traditionally one would do multiple passes to render the depth maps for the scene’s light source, and to avoid this the example also uses shader instancing by doing multiple invocations in the geometry shader.
[Read More]
Updated Vulkan deferred shading example video
Over the past few weeks and months I’ve been constantly working on my Vulkan examples, enhancing existing demos, adding new ones, fixing bugs reported and merging pull requests (thx to anyone that has contributed!). I even found some time to work on a Vulkn deferred shading playground using Crytek’s famous Sponza model. You can find the repository for it here.
This Sunday I decided to visually upgrade the deferred shading example included in my samples repository.
[Read More]
Tutorial on using Vulkan's VK_EXT_debug_marker with RenderDoc
Warning
VK_EXT_debug_marker is deprecated and has been replaced by VK_EXT_debug_utils. Please refer to this tutorial and sample instead.
Intro The Vulkan validation layers included with the LunarG SDK are a must for debugging applications at run-time, and every Vulkan developer should get used to them as soon as possible. They are crucial for getting applications validated against the specification and ensure portability across different implementations.
But what they can’t catch are logical errors, so even with all validation layers enabled and all errors eliminated you still may not see what you where expecting and need an additional layer of debugging your rendering step-by-step.
[Read More]
Khronos Chapter Munich Vulkan Slides
I’ve been speaking about my Vulkan launch day contributions and my experiences moving from OpenGL to Vulkan at the Khronos Munich Chapter Grand Opening last friday at the AMD offices. This was a great event, and finally getting to know some of the people in real was an awesome personal experience. So at this point I’d like to thank all the people that helped make this event happen and all these that attended, had a real blast talking and discussing about Vulkan!
[Read More]
Vulkan Examples update
The last few weeks since the Vulkan launch (one month ago) have been pretty busy. I’ve been adding new examples to to my github repository (almost at 30), fixed some bugs (thanks to everyone that has contributed!) and finally added Android support to all examples (removing the few separate Vulkan Android samples).
I also provide pre-built binaries for Windows, Linux and Android (only ARM right now) if you just want to try out the examples at vulkan.
[Read More]
Vulkan is here!
Khronos finally launched Vulkan 1.0! After 18 months of hard works and a huge industry-wide collaboration, this is a huge success. And this is not only an API-launch, but a hard launch with drivers for Vulkan from NVidia, AMD, Intel, etc. on mulitple platforms.
My launch contributions Some time ago I was invited to be a part of the Vulkan Advisory Panel board. So I actually got a head-start and also released some Vulkan related stuff to the public on launch day.
[Read More]
Vulkan specification complete, release imminent
Great news! The Khronos Vulkan Working Group just announced that the specification is complete (and has entered the legal review process) and the release is imminent.
Though the initial time frame of 2015 was missed (by a bit), this should mean that Vulkan will be ready for launch in early 2016. This will include SDKs for all supported platforms, production ready drivers from several IHV, resources, tools, demos, examples and much more.
[Read More]
Vulkan related works
In case you don’t follow me on twitter or aren’t watching my github repositories, I’ve been working on Vulkan related stuff over the last few months. And with Vulkan’s release approaching it’s time for a short summary on what I plan on release upon or shortly after launch of the new graphics and compute API.
Vulkan Hardware Capability Viewer As with OpenGL and OpenGL ES I’ll also do a Vulkan Hardware Capability viewer (github).
[Read More]
Vulkan from the POV of a hobby 3D developer
As there have been lots of new information on Vulkan, Khronos’ new graphics and compute API I decided to do a little write up of the new API from a hobby 3D developer’s point of view.
Although I’ve been writing games, demos and applications with OpenGL for roughly 15 years now I still consider myself a hobby developer in terms of 3D graphics. My job is not depending on pushing pixels, maxing out draw calls or swizzling shader commands, and most of my work on 3D (primarily OpenGL) is done during my spare time (mostly late at night).
[Read More]