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 Delphi (which has become a small niche as of today).| Sascha Willems
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.| Sascha Willems
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.| Sascha Willems
Overview of all pages with the tag #Tags, such as: vulkan| Sascha Willems
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 VK_ARM_format_pack VK_EXT_shader_float8 VK_EXT_zero_initialize_device_memory VK_KHR_present_id2 VK_KHR_pres...| Sascha Willems
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 confines you to use GLSL for writing Vulkan shaders. And while GLSL is still the primary language for my C...| Sascha Willems
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 for shading languages other than glsl and made it possible to also add hlsl to most of my samp...| Sascha Willems
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 VK_EXT_fragment_density_map_offset VK_KHR_depth_clamp_zero_one VK_KHR_maintenance8 VK_KHR_shader_bfloat16 V...| Sascha Willems
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 data based on devices supporting at least that api version.| Sascha Willems
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 corelate. On desktop a given GPU like a RTX 4070 from NVIDIA always reports the same Vulkan propert...| Sascha Willems
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 looking for some code, the Khronos Vulkan Samples show some of the new features that were already available as an ...| Sascha Willems
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 https://vulkan.gpuinfo.org and filter yourself”. And while that is a way to get an answer to that question, not having an easy way to si...| Sascha Willems
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 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 features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2:| Sascha Willems
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 feedback I get, the databases are widely used by developers that work the open APIs from Khronos.| Sascha Willems
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 listings. Device coverage is a percentage value that states how many distinct devices (not reports) s...| Sascha Willems
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 features and properties provided via VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2:| Sascha Willems
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 interesting documentation is scattered around different places and related documentation (e.| Sascha Willems
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 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_KHR_cooperative_matrix VK_EXT_frame_boundary VK_E...| Sascha Willems
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 automatically switch to a dark mode too.| Sascha Willems
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 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2 for the following extensions: VK_ARM_shader_core_properties VK_EXT_image_sli...| Sascha Willems
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 added to the database and quickly let you find out global and per-platform coverage numbers:| Sascha Willems
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 platforms that support Vulkan. New compute chapter And being well aware on how important the tutorial is as...| Sascha Willems
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 get a side-by-side comparison of the selected reports: But the current implementation has an annoying limitati...| Sascha Willems
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) VK_ARM_shader_core_builtins VK_NV_copy_memory_indirect VK_NV_memory_decompression VK_NV_ray_tracing_invo...| Sascha Willems
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 VK_EXT_extended_dynamic_state3 VK_EXT_device_fault VK_EXT_device_address_binding_report VK_EXT_pipeline_protected_ac...| Sascha Willems
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 my mostly used database (compared to OpenGL and OpenGL ES) and judging by the feedback it seems t...| Sascha Willems
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 functionality requirements and device capabilities between participants in the Vulkan ecosystem to s...| Sascha Willems
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 version to the Vulkan Hardware Capability Viewer and the database day-one.| Sascha Willems
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 systems, available on all kinds of platforms.| Sascha Willems
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: VK_ARM_rasterization_order_attachment_access VK_KHR_dynamic_rendering VK_EXT_border_color_swizzle VK_EXT_image_view_min_lod VK_EXT_depth_cl...| Sascha Willems
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 presentations from day 2, including mine, are now available:| Sascha Willems
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 VK_EXT_rgba10x6_formats VK_KHR_shader_integer_dot_product VK_EXT_primitive_topology_list_restart VK_EXT_pageable_device...| Sascha Willems
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 only tell coverage for “is a format supported linear/optimal tiling or buffers”, the listings ha...| Sascha Willems
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 VK_EXT_multi_draw VK_EXT_global_priority_query VK_KHR_shader_subgroup_uniform_control_flow VK_HUAWEI_subpass_sha...| Sascha Willems
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 VK_EXT_vertex_input_dynamic_state VK_EXT_color_write_enable VK_KHR_synchronization2 VK_KHR_zero_initialize_workgroup_memor...| Sascha Willems
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 all iOS devices present in the database.| Sascha Willems
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 reports with stuff added in newer versions. This version finally adds such an update mechanism.| Sascha Willems
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 information. This meant it was not possible to filter devices based on that data.| Sascha Willems
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 found on the Khronos blog, along with a great article on how ray tracing works.| Sascha Willems
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 (mostly related to surface extensions) and a new target for the Travis CI setup to build the binaries.| Sascha Willems
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 Most notable is the addition of VK_KHR_portability_subset to support the Vulkan® Portability™ i...| Sascha Willems
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 VK_EXT_extended_dynamic_state VK_EXT_private_data VK_EXT_image_robustness Wayland support Also new with this...| Sascha Willems
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 Khronos standards this is a perfect match.| Sascha Willems
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 it’s now possible to debug instance creation and destruction with this new extension.| Sascha Willems
Intro The Vulkan hardware database just got one of it’s biggest updates, bringing with it some fundamental changes, lots of optimizations and some quality-of-life improvements. The main reason behind this update were requests from inside the Khronos group, asking for feature coverage based reporting. What does Feature coverage mean? Up until now if you were looking for a specific extension and the devices (or reports) that supported it, the database would only tell you that a device would s...| Sascha Willems
Version 2.03 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). This version has been updated to Vulkan Headers 1.1.129, adding support for new extensions introduced with this header: VK_KHR_performance_query VK_KHR_separate_depth_stencil_layouts VK_KHR_buffer_device_address Aside from new support for these new extensions, this release also includes some small bugfixes related to surface extensions and adds a mapping for VK_PHYSICAL_DEVICE_T...| Sascha Willems
It’s finally here. Khronos just made the Unified Vulkan Samples repository publicly available. For more details see the official press release. About The goal of this project is a central source for high-quality Vulkan samples, with contributions both from Khronos members as well as external contributors like me. It also comes with an extensive framework that takes care of platform-related stuff like window and input handling and offers functionality for loading assets like glTF models, sha...| Sascha Willems
Version 2.02 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). This version has been updated to Vulkan Headers 1.1.124, adding support for all new extensions introduced with this header: VK_KHR_timeline_semaphore VK_KHR_shader_clock The reasons behind this new release just 3 days after the last one is the new new VK_KHR_timeline_semaphore extension, one that people have been anticipating for long. And as there are already drivers supporting...| Sascha Willems
Version 2.01 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). This version has been updated to Vulkan Headers 1.1.123, adding support for all new extensions introduced with this header: VK_KHR_shader_subgroup_extended_types The main reason for this update is another one though, as it also fixes a bug for extension properties with array values not being properly saved to json and thus not being stored in the database.| Sascha Willems
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 vulkan.gpuinfo.org/download.php. Appimage for Linux Deploying Qt applications on Linux is not as easy as on Windows, esp.| Sascha Willems
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 ap...| Sascha Willems
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 exten...| Sascha Willems
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.| Sascha Willems
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.| Sascha Willems
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) .| Sascha Willems
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.| Sascha Willems
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.| Sascha Willems
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.| Sascha Willems
| Sascha Willems
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.| Sascha Willems
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.| Sascha Willems
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 a...| Sascha Willems
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...| Sascha Willems
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://vulk...| Sascha Willems
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...| Sascha Willems
Version 1.7 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). As with 1.7 this version fully supports Vulkan 1.1 and adds support for new extensions: VK_EXT_conditional_rendering VK_KHR_8bit_storage You can download the new version from https://vulkan.gpuinfo.org/download.php.| Sascha Willems
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.| Sascha Willems
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 v...| Sascha Willems
After reworking the OpenGL ES hardware database some time ago (which was in dire need of an update to be usable again) I have also released a substantial update to the OpenGL hardware database. Server-side processing Biggest change is the use of server-side processing (as with the Vulkan and OpenGL ES databases), so gone are the days where each request to the report listing page would fetch all reports at once, and had the client do the heavy lifting, resulting in a long delay before any filt...| Sascha Willems
About To help people get started with the Vulkan graphics api I released a repository of examples C++ along with the start of Vulkan. I started developing these before Vulkan was publicly released while being a member of the Vulkan advisory panel, and have since then added more and more examples, demonstrating many different aspects of the api. The list of examples (already more than 60) range from basic api usage to more complex setups, and also include examples for different rendering metho...| Sascha Willems
Privacy policy This Privacy Policy is intended to inform the users of this website in accordance with the General Data Protection Regulation (GDPR) on the nature, scope and purpose of the collection and use of personal data by the website owner and operator Sascha Willems (webmaster [at] saschawillems.de). I take your privacy very seriously and will treat your personal information confidentially and in accordance with the law. Collected data This website collects usage data and statistics in ...| Sascha Willems
Version 1.7 of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). As with 1.6 this version fully supports Vulkan 1.1 and adds a few new features: Support for the new VK_KHR_push_descriptor extension Support for YCBCR formats You can download the new version from https://vulkan.gpuinfo.org/download.php.| Sascha Willems
After the recent overhaul I now also have added support for OpenGL ES 3.1 and 3.2 to the OpenGL ES hardware database and the Android app. Both versions added lots of new capabilities that have been lacking from the client application and database, so even though there are lots of reports for OpenGL ES 3.1 and 3.2 those only contain capabilities up to OpenGL ES 3.0. GLES 3.1 brought compute shaders, GLES 3.| Sascha Willems
I have released update 0.6 for the OpenGL ES CapsViewer. Changelog : Added OpenGL ES 3.2 capabilities (if supported by device) Added OpenGL ES 3.1 capabilities (if supported by device) Minor bugfixes The update should be automatically installed, and if you’ve submitted a device where 0.2 reported a wrong OpenGL ES version, please feel free to resubmit it.| Sascha Willems
I finally found some time to overhaul the OpenGL ES hardware database. I admittedly neglected my OpenGL databases in recent years (mainly due to Vulkan ® and a severe lack of spare time), and especially the OpenGL ES one was in dire need of an overhaul and a cleanup. So I spent a few days fixing lots of problems (both technical and data-related) as well as getting it (mostly) on par with the Vulkan hardware database and the changes are now live.| Sascha Willems
A bit later than initially planned Vulkan 1.1 was released to the public yesterday, as usual with day-one driver support by most of the IHVs. Vulkan 1.1 promoted several extension to the core and also adds interesting new functionality like vendor independent subgroup operations. You can get all the details at the Khronos Vulkan landing page. Note that all my open source examples, demos and applications will work fine with Vulkan 1.| Sascha Willems
I have added a new example to my open source C++ Vulkan examples that demonstrates the basic use of conservative rasterization using the VK_EXT_conservative_rasterization extension. This has been missing from Vulkan some time now (while other APIs already offer this feature) but has recently been added and is already support by at least NVIDIA. Conservative rasterization changes the way fragments are generated, and enabling over estimation generates fragments for every pixel touched instead o...| Sascha Willems
One of the most common Vulkan related that I’m seeing a lot is about rendering stuff that somehow ends up being not visible on the screen, even though technically everything looks okay (no validation layer errors, correct buffer uploads, etc.). Luckily there are debugging tools tools like RenderDoc that can help locating and fixing such problems. But not everyone knows about such tools or how to use them for debugging these kind of problems.| Sascha Willems
I have released the first working version of a separate (from the examples) Vulkan physical based rendering example that uses the glTF 2.0 model file format. The repository can be found at https://github.com/SaschaWillems/Vulkan-glTF-PBR. glTF is a royalty free format specification by the Khronos Group and is a new format for 3D models gaining lots of traction. With version 2.0 it also added several PBR extensions and definitions. I decided to make this a stand-alone project instead of “jus...| Sascha Willems
About A physically-Based Rendering Vulkan reference implementation in C++ with image based lighting using glTF 2.0 models. The lighting equation is based on the reference glTF PBR implementation from Khronos. The main component of this project was writing a Vulkan glTF model loader and renderer that uses tinygltf, supporting most of glTF 2.0’s features. The application supports both pbr material workflows (metallic-roughness, specular-glossiness), renders the whole scene hierarchy and fully...| Sascha Willems
In what is most probably my last Vulkan example for 2017 I have added a cascaded shadow mapping example to my open source Vulkan C++ example repository: One big problem of traditional shadow mapping, esp. with large outdoor scenes is the resolution you get as one single shadow map has to cover the whole camera spectrum. With cascaded shadow maps the frustum is split up into multiple frustums (along scene depth) with each getting it’s own, full-resolution, depth map.| Sascha Willems
About The “Vulkan hardware capability viewer” is a multi-platform client-side application that collects all available information from a Vulkan implementation that can be uploaded to a public database. The application is written in C++, uses Qt for the user interface and runs on Windows, Linux and Android. Goal of this tool is to create a database aimed at Vulkan programmers that need to check implementation specific information or just want to see what devices are supported or how far sp...| Sascha Willems
Upon popular request I finally got around combining android device data from my Vulkan and OpenGL ES hardware databases into a convenient table. This should be handy if you plan on supporting both apis on Vulkan or if you just need to check for general device support. The new page can be reached via https://android.gpuinfo.org/ It combines all android device reports from the Vulkan database with all reports from the OpenGL ES database and also uses google’s official device list for translat...| Sascha Willems
Starting point With my Vulkan C++ example github repository approaching 200 MB in size I decided it was about time to shrink it down to a reasonable size again. Shrinking a git(hub) repository isn’t just about deleting locally present files but requires cleaning up the history as files that have been removed are still present in the repository’s history and therefore still contribute to it’s size. A big chunk of the repo’s size is caused by binary assets like textures and 3d models.| Sascha Willems
The Delphi/Pascal OpenGL headers have been updated to support OpenGL 4.6. The current version of this header can always be found at the github repository, the 4.6 release has also been tagged. This version adds support for all ARB extensions added to OpenGL 4.6 and brings a few cross-platform fixes (mostly for Free Pascal) along with a few fixes and added constants for a few extensions that have been missing.| Sascha Willems
LunarG recently made the new Vulkan Device Simulation layer public. This is a Vulkan instance level layer that injects physical device properties, limits and features based on a json input file, simulating different features than the actual Vulkan device you are running on. The idea behind this is to help developers check if their Vulkan applications can handle devices with missing features and tighter limits without having to actually run on a such a device.| Sascha Willems
Thanks to a contribution from Bill Hollings, one of the developers from MoltenVK , my open source C++ Vulkan examples now also support Apple’s iOS and macOS platforms. MoltenVK is a commercial Vulkan implementation that runs on top of Apple’s Metal api with a free trial available. Details on how to build and run the examples for those platforms can be found in this readme. Note that not all examples will work on iOS or macOS due to the differences in supported features like geometry or te...| Sascha Willems
A new version of the Vulkan Hardware Capability Viewer is now available for all platforms (Windows, Linux, Android). This is the biggest update since I released this tool, including lots of new features that also brought along a few changes to the online database. I also decided to drop the “beta” tag now that more than 1,300 reports have been uploaded, making this the first non-beta release of the Vulkan Hardware Capability viewer.| Sascha Willems
Server-side processing (performance) In preparation for the next release of the Vulkan Hardware Capability Viewer I published a major change to the Vulkan online hardware database at http://vulkan.gpuinfo.org/. Up until now all data was handled client-side, so when loading up the report listing all reports were fetched and displayed by the client. While this was more or less fine in the beginning, delivering all reports to the client even if only the 25 newest ones were visible now takes seve...| Sascha Willems
The last days (and weeks) I’ve been working on a Vulkan example implementing physically based rendering with image based lighting (you can find a nice article with lots of details over at Trent Reed’s blog) and just pushed it to my public github repository. While working on this demo I realized that putting all the binary assets (models and esp. textures) in the repository might not have been a great idea.| Sascha Willems
1. Inhalt des Onlineangebotes Der Autor übernimmt keinerlei Gewähr für die Aktualität, Korrektheit, Vollständigkeit oder Qualität der bereitgestellten Informationen. Haftungsansprüche gegen den Autor, welche sich auf Schäden materieller oder ideeller Art beziehen, die durch die Nutzung oder Nichtnutzung der dargebotenen Informationen bzw. durch die Nutzung fehlerhafter und unvollständiger Informationen verursacht wurden sind grundsätzlich ausgeschlossen, sofern seitens des Autors ke...| Sascha Willems
I have released an updated version of the SPIR-V Extension for Visual Studio with support for VS 2017, VS 2015 is also still supported. The extension adds context menu entries to glsl shader files for compiling them to SPIR-V (Vulkan and OpenGL). You can find details about it over here.| Sascha Willems
Took a bit longer than expected, but I finally got around releasing updated binaries for my open source C++ Vulkan examples. Compared to the last updated (in 2016) there are numerous changes and lots of new examples added. One major addition is touch support on Android. 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.| Sascha Willems