Browsed by
Month: August 2016

SPIR-V Extension for Visual Studio ?>

SPIR-V Extension for Visual Studio

Source (C#) and download (VSIX for VS2015) can be found at With the launch of Vulkan, SPIR-V has been introduced as it’s binary shader format, replacing text based shader formats in favor of an intermediate representation. To make life a bit easier I have just released a Visual Studio (2015) extension that adds SPIR-V related commands to the context menu of shader files (and folders containing shader files): This allows you got generate binary SPIR-V files from GLSL right out of…

Read More Read More

Vulkan tip on rendering a fullscreen quad without buffers ?>

Vulkan tip on rendering a fullscreen quad without buffers

Rendering a fullscreen quad is a common task in 3D realtime graphics, especially with shaders making post processing a common functionality and other techniques like deferred shading also relying on having a quad with uv coordinates cover the whole screen. While doing some refactoring on my Vulkan examples I removed some code that used vertex and index buffers for rendering such a quad and replaced it with a simple way that generates vertices and uvs in the vertex shader, saving…

Read More Read More

Porting (Vulkan)Quake to Android ?>

Porting (Vulkan)Quake to Android

Axel Gneiting from iD software recently ported Quake to Vulkan (based on the QuakeSpasm OpenGL port) and released the sources at github with support for windows and Linux. With Vulkan also being available on Android, I decided to use the knowledge gained while porting my Vulkan examples and Demos over to Android and add it to his Vulkan Quake port. I have tested with the registered and full .pak files of the original Quake and both are fully playable. The Android…

Read More Read More

New Vulkan example: Indirect drawing ?>

New Vulkan example: Indirect drawing

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…

Read More Read More