Updated Android vkQuake binaries

For those that want to test out my Android port of of Axel Gneiting’s vkQuake, I have released updates binaries at http://vulkan.gpuinfo.org/vkquake.php Please note that the .apk does not contain any game files, so you need to get the .pak files from the shareware or registered version in order to play this. See the page above for details on this. This release is based on vkQuake’s latest version and is pretty much feature complete. [Read More]

Vulkan Hardware Capability Viewer 1.2 released

I have released an update to the Vulkan Hardware Capability Viewer. The new version (1.2) adds support for os-specific surface capabilities that are added to the reports and online database. This adds a new category to the tool and reports at the online database (for example this one) containing: Surface properties (extents, usage flags, transforms, etc.) Surface Formats (incl. color spaces) Present modes You can download the new version from https://vulkan. [Read More]

Updated Vulkan example binaries (and vkQuake for Android)

Finally found some time to update the binaries for my open source ++ Vulkan examples. Since the last binaries have been a few months old these contain lots of changes and new examples. So if you just want to run Vulkan examples (to e.g. test your device) you can grab these pre-built binaries instead of compiling from vulkan.gpuinfo.org : Windows Note : The windows binaries require the media pack (see below) to be present for loading shaders, meshes and textures. [Read More]

SPIR-V Extension for Visual Studio

Source (C#) and download (VSIX for VS2015) can be found at https://github.com/SaschaWillems/SPIRV-VSExtension 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): [Read More]

Vulkan tutorial on rendering a fullscreen quad without buffers

Rendering a fullscreen quad* the easy way (*) Which is actually just a huge triangle Having to render a fullscreen quad (or something that fills the whole screen) is a common task in 3D real time graphics, as many effects rely on rendering a texture over the whole screen with proper uv coordinates in the [0..1] range. This applies to post processing (glow, blur, ssao), deferred shading or procedurally generated output. [Read More]

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. [Read More]

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 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]