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 “just” another example in my Vulkan C++ example repository to make it easier getting into the code.
[Read More]
New Vulkan example: Cascaded shadow mapping
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.
[Read More]
Combined Vulkan and OpenGL ES listing for android
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 translating device IDs (stored with Vulkan and OpenGL ES reports) into actual retail names.
[Read More]
Headless Vulkan examples
I have just added two minimal, mostly self-contained cross-platform headless Vulkan examples to my open source C++ Vulkan repository. Unlike the other examples in my repository these two don’t require a surface (created from a window) and as such can be run on systems with no window compositor.
The intention behind the two examples is to show how Vulkan can be used for running graphics and compute tasks without the need for an actual user interface to be present i.
[Read More]
How to shrink down a git(hub) repository
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.
[Read More]
Delphi/Pascal OpenGL Header updated to 4.6
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.
[Read More]
The Vulkan Device Simulation Layer
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.
[Read More]
iOS and macOS support added to the Vulkan examples
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 tessellation shaders not being available in Metal.
[Read More]
Vulkan Hardware Capability Viewer 1.4 released
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.
[Read More]
Updates to the Vulkan hardware database
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 several seconds (even on a fast connection) and fetching all rows for each visitor is also putting strain on the database.
[Read More]