RSSAmplifier

Blog

Sascha Willems

Recent content on Sascha Willems

saschawillems.deRSS feed ↗372 posts

Latest posts

New Vulkan samples for using descriptor heaps

New way of passing data to shaders In Vulkan, data has historically been passed to shaders using descriptors. Managing them can become quite complicated. There are ways to avoid that, such as using buffer device address (obviously for buffers only) or descriptor indexing (aka “bindless”). But until recently, there was no unified way to avoid the complexity around descriptors. This…

Improving performance of the Vulkan Hardware Database

Tackling performance issues Looking at server statistics, the Vulkan database alone is serving up to 3 million requests per month. A number I would’ve never imagined when I first created this back in 2016. It’s quickly approaching 50k reports and one drawback of such a huge trove of data in combination with that many requests: Performance issues. The database server often can’t…

Vulkanised 2026 Talk on Vulkan for Hobbyists

Vulkanised is the largest event dedicated to developers using the Vulkan graphics API. It’s an event packed with brilliant talks and I once again had the honour of being among some of the smartest people in real time graphics programming. At this year’s event I gave a remote talk on Vulkan - Now and then for hobbyists. My goal with this was to look at the decade since Vulkan launched…

Vulkan Hardware Capability Viewer 4.11 released

Version 4.11 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). This version is based on Vulkan Headers 1.4.340 and adds support for the following new extension features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2: VK_EXT_descriptor_heap VK_EXT_texture_compression_astc_3d VK_EXT_shader_long_vector…

Retro graphics cards

About Back in the early days 3D graphics accelerators, things were a bit more interesting than today. We had a lot more vendors, hardware designs were wildly different and pretty much every vendor also had it’s own API. Sadly I gave/threw away most of my old graphics accelerator but started collecting them again. Here is (growing) list of the ones I own. ELSA Victory 3D (S3 ViRGE) 🗓️…

New "How to Vulkan in 2026" tutorial

(Almost) 10 years of Vulkan Vulkan went public almost 10 years ago. That’s a lot of time for a fast-moving area like realtime computer graphics. Vulkan 1.0 had to make concessions in order to support a broad range of devices available back then. That basically meant OpenGL ES 3.2 as a baseline, with additional features available for discrete desktop GPUs. Things have changed a lot since…

Vulkan Hardware Capability Viewer 4.10 released

New client application Version 4.10 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). Update to Qt6 Just like the OpenCL hardware capability viewer I recently updated, the Vulkan hardware capability viewer also uses the Qt framework for it’s platform-independent user interface. The app has been on Qt5 for quite some time, but for…

OpenCL Hardware Capability Viewer 1.30 released

Version 1.30 of the OpenCL Hardware Capability Viewer is now available for all supported platforms (Windows, Linux, Android). This is mostly a maintenance update to ensure compatibility with recent and future Android versions. Aside from other minor changes and fixes, this version also improves how OpenCL is accessed on Android devices. Some newer devices, like Google’s Pixel phones, no…

Vulkan Hardware Database Availability

Causes for the limited database availability Some of you might have noticed issues with accessing the Vulkan Hardware Database since end of July. This was caused by a targeted denial-of-service (DoS) attack in combination with ever-increasing rampant AI bot crawling. Note the spike in July That lead my hosting company to take precautionary measures to avoid negative effects to their own services.…

Fundamental Vulkan Samples rework

Fundamental Vulkan Samples rework (Sync, command buffers and more) Some history It’s been almost ten years since I started working on my open source C++ Vulkan samples. Never would I have imagined what the coming years would look like. Back then I only knew a bit of OpenGL and very little DirectX. And I wasn’t that proficient in C++ either, my main programming language back then was…

Vulkan Hardware Capability Viewer 4.02 released

New client application A bit delayed, but version 4.02 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version is based on Vulkan Headers 1.4.320 and adds support for the following new extension features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2: VK_ARM_tensors VK_ARM_data_graph…

Shaders for Vulkan samples now also available in HLSL

One of Vulkan’s biggest additions (compared to OpenGL) was the introduction of the SPIR-V intermediate representation for shaders. This makes it possible to use different shader language front-ends for writing your shaders, with the only requirement being to be able to compile that language to valid SPIR-V with Vulkan semantics. Unlike OpenGL (except for GL_ARB_gl_spirv) this no longer…

Shaders for Vulkan samples now also available in slang

A new shading language enters the ring Unlike other 3D graphics apis, Vulkan did decouple human readable shaders from the api using SPIR-V as an intermediate representation. This makes it possible to use different shader language front-ends for writing your shaders, with the only requirement being to be able to compile that shading language to valid SPIR-V with Vulkan semantics. This opens up…

Vulkan Hardware Capability Viewer 4.01 released

New client application A bit delayed, but version 4.01 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version is based on Vulkan Headers 1.4.313 and adds support for the following new extension features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2: VK_ARM_pipeline_opacity_micromap…

Improved filtering added to the Vulkan Hardware Database

Reworking global filters In the last posting I already hinted at reworking how filtering works for the Vulkan Hardware Database. Almost 40,000 reports across multiple platforms is a lot of data, and being able to properly and easily filter that is crucial for a database. Up until now the only global filter option was the api version, so you could e.g. filter all views in the database to show only…

Cleaning up Vulkan Hardware Database Android reports

Vulkan device properties on Android Compared to desktop environments like Windows and Linux, Vulkan on Android is a very different situation. Aside from the obvious hardware specific differences between full desktop GPUs and integrated mobile GPUs there are issues that also complicate data retrieval for my Vulkan Hardware Database. One such issue is device naming and how GPUs and mobile devices…

Vulkan 1.4 support for the Vulkan Hardware Capability Viewer and database

Vulkan 1.4 has arrived Just a few days ago Vulkan 1.4 was released to the public. This is another important step forward for the api and adds some interesting new functionality. See this blog from Khronos for more details. The Vulkan documentation site is a good starting point too if you wanna learn about what’s included in that version and also why it’s included. If you’re…

Extension detail pages for the Vulkan hardware database

New pages for extension details One thing that I always kinda thought was missing from the database was an easy way to pass extension details around. Esp. coverage numbers for platforms. A common question I see in the Vulkan communities I’m active in is “how good is support for this extension”. And usually the answer is “go to the extension list at…

Vulkan Hardware Capability Viewer 3.40 released

New client application Version 3.40 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). An update for the Google Play Android version should land soon. New extensions This version is based on Vulkan Headers 1.3.280 and adds support for the following new extension features and properties provided via…

GPU hardware databases hit 50,000 reports

50,000 reports (and counting) When I started the OpenGL online hardware database in 2011 along with a client application written in Delphi (which is pretty niche nowadays), it was meant as a replacement for a defunct database of OpenGL devices made by someone else. 13 years later my community driven GPU databases now also support OpenGL ES, OpenCL and Vulkan. Judging by the numbers and the…

Improving filtering for the Vulkan hardware database

Improving filtering Eight years after launching the Vulkan database to the public, it’s approaching 30,000 uploaded reports from more than 3,300 different devices across Windows, Linux, Android, MacOS and iOS. With that much data available, good filtering capabilities are crucial. One part where the filtering capabilities of the database were severely lacking have been device coverage based…

Vulkan Hardware Capability Viewer 3.33 released

New client application Version 3.33 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). An update for the Google Play Android version is also pending and should be live soon. New extensions As the last release has been a while ago, this version did a rather large jump to Vulkan Headers 1.3.276 and adds support for a lot of new extension…

New Vulkan Documentation Site

Vulkan Documentation has a new home With something as complex as the Vulkan API, good documentation is crucial for developer adoption. And while Vulkan had pretty good documentation from the get-go, with esp. the spec getting lots of praise, there was a lot of room for improvement. The spec e.g. has become so large that lower-end devices have problems loading it up in the browser, other…

Vulkan Hardware Capability Viewer 3.32 released

New client application Version 3.32 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). An update for the Google Plays Android version is also pending and should be live soon. New extensions This version has been updated to Vulkan Headers 1.3.264 adding support for reading new features and properties provided via…

Automatic dark theme toggle for all GPU databases

Dark mode theme A few months ago I added a dark/light theme toggle to the launchpad and all databases (Vulkan, OpenGL, OpenGL ES and OpenCL). After getting mostly positive feedback I decided to replace this manual toggle with an automatic toggle that selects the dark or light theme based on your operating system. So if you’re running your Windows with a dark theme, the databases will now…

Vulkan Hardware Capability Viewer 3.29 released

New client application Version 3.29 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). An update for the slightly outdated Google Playstore is also pending and should be live soon. New extensions This version has been updated to Vulkan Headers 1.3.243 adding support for reading new features and properties provided via…

New surface data listings for the Vulkan database

New global surface data listings Being able to filter for all data available from submitted reports is an important aspect of the database, so I’m constantly adding new global listings that also let you check coverage numbers. The surface part of the database was missing two important listings: One for the surface transform modes and one for the surface composite alpha modes. They have been…

Compute chapter for Vulkan-Tutorial

Vulkan Tutorial For a lot of developers wanting to learn Vulkan, the tutorial at www.vulkan-tutorial.com is the first learning resource they’ll encounter. It teaches most of the basics required to get started with Vulkan, but up until now only for the graphics part. But Vulkan does more than graphics, with compute shader support being mandatory and as such available on all devices and…

Reworked compare functionality for all GPU databases

Comparing devices - Current state A core feature of all my GPU databases (Vulkan, OpenCL, OpenGL and OpenGL ES) is the possibility to compare reports. This lets you quickly see how the implementations differ, e.g. regarding extension support or api limits. For this you check the reports (or devices) to compare from the currently visible list: And after pressing “compare” you’ll…

Vulkan Hardware Capability Viewer 3.27 released

New client application Version 3.27 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version has been updated to Vulkan Headers 1.3.230 adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_EXT_descriptor_buffer (proposal)…

Vulkan Hardware Capability Viewer 3.26 released

New client application Version 3.26 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version has been updated to Vulkan Headers 1.3.230 adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_EXT_opacity_micromap…

Vulkan Hardware Database gets global API level selection

Some background More than 6 years ago (time flies!) I released the Vulkan Hardware Database and Capability Viewer along with the first public release of Vulkan 1.0. Traffic on the database has been rising steadily and is approaching 1,000,000 hits per month. 2021 more than 3,000 reports have been uploaded to the database, a number that also has been steadily increasing since launch. This makes it…

Vulkan profiles support for the Vulkan Hardware Capability Viewer and database

Vulkan profiles Along with Vulkan 1.3, Khronos also introduced Vulkan Profiles into the Vulkan ecosystem: “The new Vulkan profile mechanism enables the precise specification and management of sets of API capabilities. Each profile specifies a core version of Vulkan plus a set of required extensions, with supported limits, features, and formats. Profiles provide a way to precisely communicate…

Vulkan 1.3 support for the Vulkan Hardware Capability Viewer and database

New Vulkan version Vulkan 1.3 has just gone public, adding some recent features into the core to establish a new baseline for the api. You can find more information in this blog from Khronos and additional resources in this one. There’ll also be a special Vulkanized webinar on February 1st that’s dedicated to the new version. As with previous releases I added support for the new core…

OpenCL Hardware Database at GPUinfo.org

New OpenCL Hardware Database 2022 starts off with a new addition to my GPU Hardware databases at GPUInfo.org! With the databases for Vulkan, OpenGL and OpenGL ES being widely used by many graphics developers, ISVs and IHVs, members of the OpenCL working group approached me for a similar database for OpenCL. OpenCL is a mature and widely adopted api for parallel programming of heterogeneous…

Vulkan Hardware Capability Viewer 3.05 released

Release Version 3.05 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version has been updated to Vulkan Headers 1.2.200 (from 1.2.195), adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions:…

Vulkanised texture compression talk

I recently gave a talk on texture compression in Vulkan using Basis Universal and the KTX 2.0 format during this years Vulkanised online event. The short (15 minutes) talk contains some information on texture compression general, using texture compression in Vulkan and why a universal supercompressed format like Basis Universal is important. The presentation and a video recording of all the…

Vulkan Hardware Capability Viewer 3.04 released

Release Version 3.04 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version has been updated to Vulkan Headers 1.2.195 (from 1.2.189), adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_KHR_maintenance4…

Vulkan Hardware Database updates

Intro The Vulkan Hardware Database just got another large update, bringing some substantial new features, quality-of-life improvements and bugfixes. A large part of the code has been reworked to make it easier to maintain and expand, and also more secure. Reworked format support views The biggest change in functionality are the reworked format support views. Instead of a single view that would…

Vulkan Hardware Capability Viewer 3.02 released

Release Version 3.02 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version has been updated to Vulkan Headers 1.2.184 (from 1.2.175), adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_EXT_physical_device_drm…

Vulkan Hardware Capability Viewer 3.01 released

Release Version 3.01 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android, Mac OSX). New extensions This version has been updated to Vulkan Headers 1.2.175, adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_EXT_ycbcr_2plane_444_formats…

Vulkan Hardware Capability Viewer now available on iOS

New target platform - iOS Thanks to a contribution by the fine folks at LunarG, the Vulkan Hardware Capability Viewer is now also available on Apple’s iOS based devices. Adding the fifth supported platform, which means that the app is now available on almost every device supporting Vulkan. I have also unlocked the iOS for the database so you can now filter and search through Vulkan data for…

Vulkan Hardware Capability Viewer and Database update 3.0

Intro 2021 starts with a huge update for both the Vulkan Hardware Capability Viewer application and the accompanying Vulkan Hardware Database, bringing some long-awaited features along with many smaller changes, additions and improvements. Vulkan Hardware Capability Viewer 3.0 Update mechanism One of the most requested features was a proper update mechanism, that would allow users to update…

Vulkan hardware database extension feature additions

New extension data features The Vulkan hardware database just got another big feature update, adding some long outstanding functionality mostly related to extension features and properties.The Vulkan hardware capability viewer got support for those some time ago, and the database already displays these for single reports. But up until now there were no listings on those extension related…

Vulkan Samples and hardware capability viewer updated to final ray tracing extensions

Vulkan ray tracing extensions final specifications have been released The finalized specifications for the cross-vendor hardware accelerated ray tracing extensions have finally been released, after being available as a provisional extension for some time now. So Vulkan now has official cross-vendor, cross-os support for accessing hardware accelerated ray tracing features. A great overview can be…

Vulkan Hardware Capability Viewer - Mac OSX support Device simulation JSON

New target platform - Mac OSX With the recent updates from the Vulkan® Portability™ initiative and the addition of the relevant extensions in release 2.21, Mac OSX has become an even more important target for Vulkan applications. So I decided to officially add support for Mac OSX to the Vulkan Hardware Capability Viewer. This only required a few changes to the application’s source code…

Vulkan Hardware Capability Viewer 2.21 with support for Vulkan Portability released

Release Version 2.21 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). New extensions This version has been updated to Vulkan Headers 1.2.154, adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_KHR_portability_subset VK_EXT_4444_formats Vulkan Portability…

Vulkan Hardware Capability Viewer 2.2 released

Release Version 2.2 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). New extensions This version has been updated to Vulkan Headers 1.2.148, adding support for reading new features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_EXT_fragment_density_map2 VK_EXT_shader_atomic_float…

New Vulkan glTF examples

Moving to glTF When I started writing my first Vulkan samples glTF was still in it’s infancy, esp. in terms of tooling. So I went with more common formats and went with the Open Asset importer library (Assimp) for loading these. But things rapidly changed with glTF 2.0, which is now pretty much and industry standard and supported by many DCC tools. And since both Vulkan and glTF are both…

Vulkan debug utilities sample and tutorial

I have contributed a new sample to the official Khronos Vulkan Samples repository that shows usage of the VK_EXT_debug_utils for adding debugging information to your Vulkan application. This extension combines the old VK_EXT_debug_marker and VK_EXT_debug_report into a new extension that also implements some changes and additions based on developer feedback for the old extensions. For example…

Sascha Willems · RSS Amplifier