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]

OpenGL hardware database overhaul

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 filtering or sorting could be done. [Read More]

OpenGL ES database ES 3.1 and 3.2 support, capability listing pages

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

OpenGL ES CapsViewer updated to 0.6

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.

OpenGL ES hardware database overhaul

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

Vulkan 1.1 is here

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

Conservative rasterization in Vulkan using VK_EXT_conservative_rasterization

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 of only pixels that are fully covered. [Read More]

How-to video: Debugging a non-visible model in Vulkan using RenderDoc

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