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]

Vulkan Hardware Capability Viewer 1.92 released

Version 1.92 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_KHR_shader_float16_int8
  • VK_KHR_shader_float_controls
  • VK_EXT_fragment_density_map

You can download the new version from https://vulkan.gpuinfo.org/download.php.

Updates to the Vulkan Hardware database and the Hardware Capability Viewer

I have released a small update of the Vulkan Hardware Capability Viewer to 1.91 for Windows and Linux. It adds support for reading the features of the recently added VK_EXT_transform_feedback extension and replaces the experimental VK_NVX_raytracing extension with VK_NV_ray_tracing. You can download the new version from https://vulkan.gpuinfo.org/download.php. New features for the online Hardware Database The online hardware database at https://vulkan.gpuinfo.org also got a few new features and now also has dedicated listings and pages for properties and features that are specific to extension. [Read More]

Vulkan Hardware Capability Viewer 1.9 released

Version 1.9 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_KHR_driver_properties
  • VK_KHR_shader_atomic_int64
  • VK_NVX_raytracing
  • VK_NV_mesh_shader
  • VK_NV_shading_rate_image
  • VK_NV_compute_shader_derivatives
  • VK_AMD_shader_core_properties

You can download the new version from https://vulkan.gpuinfo.org/download.php.

Vulkan Hardware Capability Viewer 1.8 released

Version 1.8 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android).

As with 1.8 this version fully supports Vulkan 1.1 and adds support for new extensions:

  • VK_EXT_inline_uniform_block
  • VK_KHR_vulkan_memory_model
  • VK_EXT_vertex_attribute_divisor

The UI has also been slightly updated. Instead of listing extension features and properties on a separate tab, these are now included in the extensions tab:

You can download the new version from https://vulkan.gpuinfo.org/download.php.

Vulkan conditional rendering

Introduction Note: Source code that demonstrates this feature can be found in this new example at my open source C++ Vulkan examples repository. With the new VK_EXT_conditional_rendering extension, Vulkan gains the possibility to execute certain rendering and dispatch commands conditionally, based on values stored in a dedicated buffer. So instead of having to rebuild command buffers if the visibility of objects change, it’s now to possible to just change a single buffer value to control if the rendering commands for that object are executed without the need to touch any command buffers. [Read More]

Vulkan input attachments and sub passes

Introduction I have added a new example to my open source C++ Vulkan examples that demonstrates the use of input attachments and subpasses within a single render pass. Input attachments are image views that can be used for pixel local load operations inside a fragment shader. This basically means that framebuffer attachments written in one subpass can be read from at the exact same pixel (that they have been written) in subsequent subpasses. [Read More]