VulkanSpec.jl

Accessing the structure of the Vulkan API
Author serenity4
Popularity
0 Stars
Updated Last
7 Months Ago
Started In
October 2023

VulkanSpec

Stable Dev Build Status Coverage

Vulkan is a cross-platform graphics API for GPUs, created by the Khronos Group consortium. It is gigantic in size, and reflects the complexity found in modern day GPUs with varying designs and functionality. Fortunately, Khronos gives us tools to make sense of it, and to reduce the effort required in using it. The specification document is enormous however, and if you don't want to read it all, it's OK: you are just being a sane person. To the rescue, the specification repository hosts a machine-readable version of the specification under the form of an XML file.

If you were, say, trying to interface with the C Vulkan drivers (which are mere software libraries that conform to the API dictated by the Vulkan specification), you may find it (very) tedious to do everything by hand. Instead, you will want a wrapper for Vulkan written in your language of choice, e.g. Julia, such that you don't need to care about C interfacing details. For Julia, there is Vulkan.jl, and for other languages, you have quite a few existing wrappers.

The functionality provided by this package was originally meant to help automate the generation of bindings for Julia, and was living under Vulkan.jl. However, it seemed like a good idea to split it out and enable new uses: with access to the structure of the Vulkan API, you can do more than generating wrappers. Here are a few ideas:

  • Learning by inspecting the various parts of the API from the REPL.
  • Making a Vulkan-aware IDE extension to bring practical information to the coding activity directly.
  • Designing a web page targeted at exploration, learning and/or reference material.
  • Creating easy-to-read diffs between Vulkan versions to facilitate keeping up with new functionality.

... and probably more!

Check out the DOCUMENTATION to get started.

Used By Packages

No packages found.