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

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]

Multiview rendering in Vulkan using VK_KHR_multiview

I have added a new example to my open source C++ Vulkan examples that demonstrates the use of multiview rendering. Multiview enables rendering to multiple views simultaneously instead of having to use multiple passes. Esp. with stereoscopic rendering (e.g. for VR related applications) there’s usually little change between two views, like different matrices, and having to do multiple passes for such small differences is inefficient. With multiview an implementation can now render different views simultaneously in a single pass and the Vulkan extension even adds hints for the implementation to even further improve performance (see correlation mask down below). [Read More]