Adamantium.Vulkan.Spirv
1.0.9
dotnet add package Adamantium.Vulkan.Spirv --version 1.0.9
NuGet\Install-Package Adamantium.Vulkan.Spirv -Version 1.0.9
<PackageReference Include="Adamantium.Vulkan.Spirv" Version="1.0.9" />
<PackageVersion Include="Adamantium.Vulkan.Spirv" Version="1.0.9" />
<PackageReference Include="Adamantium.Vulkan.Spirv" />
paket add Adamantium.Vulkan.Spirv --version 1.0.9
#r "nuget: Adamantium.Vulkan.Spirv, 1.0.9"
#:package Adamantium.Vulkan.Spirv@1.0.9
#addin nuget:?package=Adamantium.Vulkan.Spirv&version=1.0.9
#tool nuget:?package=Adamantium.Vulkan.Spirv&version=1.0.9
AdamantiumVulkan
C# bindings to the Vulkan API, generated from the Khronos registry, with hand-written wrappers over the generated interop so that calling Vulkan reads as C# rather than as marshalling.
The Vulkan bindings come from vk.xml and video.xml - the registry Khronos publishes as the specification's own
machine-readable form - so extensions, aliases, enum extensions and the structure chains arrive as the registry
defines them rather than as a parse of the headers happened to see them.
The other three packages have no registry to read from, so their bindings are generated from the C headers by QuantumBinding, which parses through Clang's own front end rather than a bespoke parser: macros, bitfields, anonymous unions and platform conditionals mean there what they mean to a C compiler.
These packages are what the Adamantium engine is built on, but they carry no dependency on it and can be used on their own.
Packages
| Package | What it is |
|---|---|
Adamantium.Vulkan |
The bindings themselves: structures, handles, enums and commands |
Adamantium.Vulkan.Loader |
Finds the Vulkan loader at run time and resolves its entry points |
Adamantium.Vulkan.Slang |
Bindings to the Slang shader compiler, shipping the compiler itself |
Adamantium.Vulkan.Spirv |
Bindings to SPIRV-Cross, for reading back what a compiled shader declares |
dotnet add package Adamantium.Vulkan
dotnet add package Adamantium.Vulkan.Loader
Requirements
- .NET 10 or later. The shader packages also target
netstandard2.0. - x64. The projects build for that platform only; other architectures have not been tried.
- A Vulkan driver on the machine at run time. No SDK is needed to build: the loader resolves the driver's own library, and the Slang package carries the shader compiler with it.
Why the loader is a separate package
Adamantium.Vulkan.Loader resolves Vulkan at run time instead of linking an import library at build time. An
application therefore binds to whichever Vulkan the machine actually has, and a machine without one fails with an
error you can catch rather than refusing to start.
Third-party binaries
The Slang and SPIRV-Cross packages ship compiled binaries of projects that are not ours - among them the Slang compiler (Apache-2.0 with the LLVM exception, itself carrying glslang, SPIRV-Tools, LLVM, mimalloc and lz4), SPIRV-Cross and SPIRV-Tools (Apache-2.0, Khronos). Every one of those licences is permissive, and the notices travel with the binaries in THIRD-PARTY-NOTICES.md.
Nothing here derives from the Vulkan logo or any other Khronos trademark.
Building from source
git clone https://github.com/QuantumDeveloper/AdamantiumVulkan
cd AdamantiumVulkan
dotnet build Adamantium.Vulkan/Adamantium.Vulkan.csproj -c Release -p:Platform=x64
The four published projects build from a clone on their own. Regenerating the bindings - which is only needed when
the Vulkan registry moves - additionally requires
QuantumBinding cloned beside this repository, because
Adamantium.Vulkan.Generator uses it directly:
<parent>/
AdamantiumVulkan/
QuantumBinding/
Status
In use, and under active development alongside the engine that depends on it. The API follows the Vulkan registry, so it changes when the registry does.
Licence
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- QuantumBinding.Utils (>= 2.0.1)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.9 | 33 | 9/21/2026 |