Vulkan Hardware Capability Viewer 2.00 released

Version 2.00 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). The major version bump is caused by a big change in how the code for reading device extension properties and features is generated. You can find a detailled rundown on how this works below. You can download the new version from Appimage for Linux Deploying Qt applications on Linux is not as easy as on Windows, esp. [Read More]

Vulkan Hardware Capability Viewer 1.93 released

Version 1.93 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). This version fully supports Vulkan 1.1 and adds support for reading additional features and properties for the following extensions: VK_EXT_fragment_shader_interlock VK_NV_shader_sm_builtins VK_KHR_depth_stencil_resolve properties VK_EXT_buffer_device_address features VK_EXT_pci_bus_info features In addition there were also a few changes to the Android version of the app: The app is now using the arm64-v8a architecture, as this is a requirement for distributing Android apps in Google’s playstore beginngin this August. [Read More]

OpenGL Hardware Capability Viewer 1.2 released

Version 1.2 of the OpenGL Hardware Capability Viewer is now available for all Windows and Linux. This version adds support for reading the list of supported SPIR-V extensions. These will be displayed on a new tab, and will also be uploaded to the database so you can view and compare them across multiple devices. Note that this only works with devices suppoting GL_ARB_spirv_extensions, and that even with that extension present implementations are free to report an empty list of no SPIR-V extension is supported. [Read More]

Vulkan examples for ray traced shadows and reflections using VK_NV_ray_tracing

After adding a basic Nvidia RTX ray tracing example last week, I spent some more time with Vulkan and the VK_NV_ray_tracing extension. The result are two new, more advanced examples that I just uploaded to my Vulkan C++ example repository. As with the basic example I tried to keep them as straight forward as possible with all the relevant code parts put into one source file, so that following and building upon is as easy as possible. [Read More]

New Vulkan example on raytracing using VK_NV_ray_tracing

With all the new Turing extensions that NVIDIA has released alongside it’s new GPU architecture, I decided to replace my GTX 980 with a RTX 2060, mainly for the purpose of doing RTX ray-tracing related Vulkan stuff and also checking out things like mesh and task shaders. Getting my first RTX accelerated ray tracing example up and running was pretty easy, thanks to tutorials like the one from NVIDIA and iOrange. [Read More]

Turing shader extensions and Visual Studio 2019 support for SPIR-V Extension

I have released an updated version of the SPIR-V Extension to the Visual Studio Marketplate. If you already have this installed in Visual Studio, you can update it from the extension window. Version 0.6 adds support for Visual Studio 19 and nvidia’s new turing shader extension, allowing you to generate SPIR-V from the IDE for ray tracing (generation, hit, miss, etc.), mesh and task shaders. Supported shader extensions: .vert (Vertex shader) . [Read More]

Device based views for the Vulkan hardware database

I have just pushed the first big fundamental update to the Vulkan hardware database since it went live in february 2016. With more than 5,000 reports uploaded it already contains lots of valuable data, but I felt that the visualization was lacking. When creating the Vulkan hardware database, I took the same approach as with the OpenGL and OpenGL ES database, making the web front-end more or less as pretty view of the database setup. [Read More]

Flipping the Vulkan viewport

Introduction This short tutorial deals with Vulkan’s viewport setup, which differs from the one in OpenGL and other APIs. I’ll try to explain what it takes to get your (OpenGL) scene rendered properly, and how e.g. VK_KHR_MAINTENANCE1 can help you deal with differences across the APIs, something that’s esp. helpful if you try to add Vulkan as a backend to you renderer without wanting to alter your actual scene data. [Read More]

Adding support for glTF meshes without indices

I have pushed an update to my Vulkan glTF PBR 2.0 application that adds support for rendering primitives without indices. Up until now, all primitives of a glTFs scene had to come with indices to be rendered by the application, which is usually the case for more complex scenes. After getting a request for this, and checking with the glTF 2.0 spec, primitives without indices are actually a valid glTF 2. [Read More]

Getting a Vulkan application up and running on a low-spec device with buggy drivers

Introduction Ever since starting to work on my C++ Vulkan glTF PBR application, I was bugged by the fact that it just wouldn’t work on my everyday phone, just crashing at a certain point with an error code that actually should never be thrown by that certain function. After a few unsuccessful attempts at finding the cause for this, I finally found the root of the problem and was actually able to get this up and running. [Read More]