Files
VulkanDriver/README.md
T
kbz_8 9a2cd20019
Build / build (push) Failing after 58s
Test / build_and_test (push) Failing after 1m6s
fixing Phi device upload, adding actions for bidirectionnal git mirrors
2026-07-23 22:26:43 +02:00

643 lines
40 KiB
Markdown

# Ape Vulkan ICD <a href="https://git.kbz8.me/kbz_8/VulkanDriver/actions?workflows=Build.yml"><img src="https://git.kbz8.me/kbz_8/VulkanDriver/actions/workflows/Build.yml/badge.svg"></a> <a href="https://git.kbz8.me/kbz_8/VulkanDriver/actions?workflows=Test.yml"><img src="https://git.kbz8.me/kbz_8/VulkanDriver/actions/workflows/Test.yml/badge.svg"></a>
<img align="right" width="250px" src="./logo.png"/>
For I feel as an ape, smiting sticks together in the vain hope of forging a driver.
Here lies the source code of a rather calamitous attempt at the Vulkan specification, shaped into an Installable Client Driver all written in Zig.
It was forged for my own learning and amusement alone. Pray, do not wield it in any earnest project, lest thy hopes and frame rates both find themselves entombed.
## Purpose
To understand Vulkan - not as a humble API mere mortals call upon, but as a labyrinthine system where one may craft a driver by hand.
It does not seek to produce a performant or production-worthy driver. \
_The gods are merciful, but not that merciful._
## Soft [software]
Soft be a software implementation of the Vulkan specification, abiding within this driver's own codebase.\
It maketh use of a bespoke [SPIR-V interpreter](https://git.kbz8.me/kbz_8/SPIRV-Interpreter) and renderer, by whose workings its labours are carried forth.
### Build
If thou art truly determined:
```
zig build soft --release=[fast|safe|small]
```
And should thou seek additional build options with:
```
zig build --help
```
Then ensure thy Vulkan loader is pointed toward the ICD manifest.
The precise ritual varies by system - consult the tomes of your operating system, or wander the web's endless mausoleum of documentation.
Use at your own risk. If thy machine shudders, weeps, or attempts to flee - know that it was warned.
#### Vulkan 1.0 specification
<details>
<summary>
The present standing of thy Vulkan 1.0 specification's implementation
</summary>
\
⚠️ Implemented, yet perchance not fully tested nor proven conformant, but rather working in a manner most general to thee and thine.\
Assume thou that functions lacking in this array are, for now, not intended to be wrought.
| Name | Status |
| ------------------------------------------------ | -------------- |
| vkAcquireNextImage2KHR | ✅ Implemented |
| vkAcquireNextImageKHR | ✅ Implemented |
| vkAllocateCommandBuffers | ✅ Implemented |
| vkAllocateDescriptorSets | ✅ Implemented |
| vkAllocateMemory | ✅ Implemented |
| vkBeginCommandBuffer | ✅ Implemented |
| vkBindBufferMemory | ✅ Implemented |
| vkBindImageMemory | ✅ Implemented |
| vkCmdBeginQuery | ✅ Implemented |
| vkCmdBeginRenderPass | ✅ Implemented |
| vkCmdBindDescriptorSets | ✅ Implemented |
| vkCmdBindIndexBuffer | ✅ Implemented |
| vkCmdBindPipeline | ✅ Implemented |
| vkCmdBindVertexBuffers | ✅ Implemented |
| vkCmdBlitImage | ✅ Implemented |
| vkCmdClearAttachments | ✅ Implemented |
| vkCmdClearColorImage | ✅ Implemented |
| vkCmdClearDepthStencilImage | ✅ Implemented |
| vkCmdCopyBuffer | ✅ Implemented |
| vkCmdCopyBufferToImage | ✅ Implemented |
| vkCmdCopyImage | ✅ Implemented |
| vkCmdCopyImageToBuffer | ✅ Implemented |
| vkCmdCopyQueryPoolResults | ✅ Implemented |
| vkCmdDispatch | ✅ Implemented |
| vkCmdDispatchBaseKHR | ✅ Implemented |
| vkCmdDispatchIndirect | ✅ Implemented |
| vkCmdDraw | ✅ Implemented |
| vkCmdDrawIndexed | ✅ Implemented |
| vkCmdDrawIndexedIndirect | ✅ Implemented |
| vkCmdDrawIndirect | ✅ Implemented |
| vkCmdEndQuery | ✅ Implemented |
| vkCmdEndRenderPass | ✅ Implemented |
| vkCmdExecuteCommands | ✅ Implemented |
| vkCmdFillBuffer | ✅ Implemented |
| vkCmdNextSubpass | ✅ Implemented |
| vkCmdPipelineBarrier | ✅ Implemented |
| vkCmdPushConstants | ✅ Implemented |
| vkCmdResetEvent | ✅ Implemented |
| vkCmdResetQueryPool | ✅ Implemented |
| vkCmdResolveImage | ✅ Implemented |
| vkCmdSetBlendConstants | ✅ Implemented |
| vkCmdSetDepthBias | ✅ Implemented |
| vkCmdSetDepthBounds | ✅ Implemented |
| vkCmdSetDeviceMaskKHR | ✅ Implemented |
| vkCmdSetEvent | ✅ Implemented |
| vkCmdSetLineWidth | ✅ Implemented |
| vkCmdSetScissor | ✅ Implemented |
| vkCmdSetStencilCompareMask | ✅ Implemented |
| vkCmdSetStencilReference | ✅ Implemented |
| vkCmdSetStencilWriteMask | ✅ Implemented |
| vkCmdSetViewport | ✅ Implemented |
| vkCmdUpdateBuffer | ✅ Implemented |
| vkCmdWaitEvents | ✅ Implemented |
| vkCmdWriteTimestamp | ✅ Implemented |
| vkCreateBuffer | ✅ Implemented |
| vkCreateBufferView | ✅ Implemented |
| vkCreateCommandPool | ✅ Implemented |
| vkCreateComputePipelines | ✅ Implemented |
| vkCreateDescriptorPool | ✅ Implemented |
| vkCreateDescriptorSetLayout | ✅ Implemented |
| vkCreateDevice | ✅ Implemented |
| vkCreateEvent | ✅ Implemented |
| vkCreateFence | ✅ Implemented |
| vkCreateFramebuffer | ✅ Implemented |
| vkCreateGraphicsPipelines | ✅ Implemented |
| vkCreateImage | ✅ Implemented |
| vkCreateImageView | ✅ Implemented |
| vkCreateInstance | ✅ Implemented |
| vkCreatePipelineCache | ✅ Implemented |
| vkCreatePipelineLayout | ✅ Implemented |
| vkCreateQueryPool | ✅ Implemented |
| vkCreateRenderPass | ✅ Implemented |
| vkCreateSampler | ✅ Implemented |
| vkCreateSemaphore | ✅ Implemented |
| vkCreateShaderModule | ✅ Implemented |
| vkCreateSwapchainKHR | ✅ Implemented |
| vkCreateWaylandSurfaceKHR | ✅ Implemented |
| vkCreateWin32SurfaceKHR | ⚙️ WIP |
| vkCreateXcbSurfaceKHR | ⚙️ WIP |
| vkCreateXlibSurfaceKHR | ⚙️ WIP |
| vkDestroyBuffer | ✅ Implemented |
| vkDestroyBufferView | ✅ Implemented |
| vkDestroyCommandPool | ✅ Implemented |
| vkDestroyDescriptorPool | ✅ Implemented |
| vkDestroyDescriptorSetLayout | ✅ Implemented |
| vkDestroyDevice | ✅ Implemented |
| vkDestroyEvent | ✅ Implemented |
| vkDestroyFence | ✅ Implemented |
| vkDestroyFramebuffer | ✅ Implemented |
| vkDestroyImage | ✅ Implemented |
| vkDestroyImageView | ✅ Implemented |
| vkDestroyInstance | ✅ Implemented |
| vkDestroyPipeline | ✅ Implemented |
| vkDestroyPipelineCache | ✅ Implemented |
| vkDestroyPipelineLayout | ✅ Implemented |
| vkDestroyQueryPool | ✅ Implemented |
| vkDestroyRenderPass | ✅ Implemented |
| vkDestroySampler | ✅ Implemented |
| vkDestroySemaphore | ✅ Implemented |
| vkDestroyShaderModule | ✅ Implemented |
| vkDestroySurfaceKHR | ✅ Implemented |
| vkDestroySwapchainKHR | ✅ Implemented |
| vkDeviceWaitIdle | ✅ Implemented |
| vkEndCommandBuffer | ✅ Implemented |
| vkEnumerateDeviceExtensionProperties | ✅ Implemented |
| vkEnumerateDeviceLayerProperties | ✅ Implemented |
| vkEnumerateInstanceExtensionProperties | ✅ Implemented |
| vkEnumerateInstanceLayerProperties | ✅ Implemented |
| vkEnumeratePhysicalDeviceGroupsKHR | ✅ Implemented |
| vkEnumeratePhysicalDevices | ✅ Implemented |
| vkFlushMappedMemoryRanges | ✅ Implemented |
| vkFreeCommandBuffers | ✅ Implemented |
| vkFreeDescriptorSets | ✅ Implemented |
| vkFreeMemory | ✅ Implemented |
| vkGetBufferDeviceAddress | ✅ Implemented |
| vkGetBufferDeviceAddressEXT | ✅ Implemented |
| vkGetBufferDeviceAddressKHR | ✅ Implemented |
| vkGetBufferMemoryRequirements | ✅ Implemented |
| vkGetDeviceGroupPeerMemoryFeaturesKHR | ✅ Implemented |
| vkGetDeviceGroupPresentCapabilitiesKHR | ✅ Implemented |
| vkGetDeviceGroupSurfacePresentModesKHR | ✅ Implemented |
| vkGetDeviceMemoryCommitment | ✅ Implemented |
| vkGetDeviceProcAddr | ✅ Implemented |
| vkGetDeviceQueue | ✅ Implemented |
| vkGetEventStatus | ✅ Implemented |
| vkGetFenceStatus | ✅ Implemented |
| vkGetImageMemoryRequirements | ✅ Implemented |
| vkGetImageSparseMemoryRequirements | ❎ Unsupported |
| vkGetImageSubresourceLayout | ✅ Implemented |
| vkGetInstanceProcAddr | ✅ Implemented |
| vkGetPhysicalDeviceFeatures | ✅ Implemented |
| vkGetPhysicalDeviceFormatProperties | ✅ Implemented |
| vkGetPhysicalDeviceImageFormatProperties | ✅ Implemented |
| vkGetPhysicalDeviceMemoryProperties | ✅ Implemented |
| vkGetPhysicalDeviceProperties | ✅ Implemented |
| vkGetPhysicalDeviceQueueFamilyProperties | ✅ Implemented |
| vkGetPhysicalDeviceSparseImageFormatProperties | ❎ Unsupported |
| vkGetPhysicalDeviceSurfaceCapabilitiesKHR | ✅ Implemented |
| vkGetPhysicalDeviceSurfaceFormatsKHR | ✅ Implemented |
| vkGetPhysicalDeviceSurfacePresentModesKHR | ✅ Implemented |
| vkGetPhysicalDeviceSurfaceSupportKHR | ✅ Implemented |
| vkGetPhysicalDeviceWaylandPresentationSupportKHR | ✅ Implemented |
| vkGetPhysicalDeviceWin32PresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceXcbPresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceXlibPresentationSupportKHR | ⚙️ WIP |
| vkGetPipelineCacheData | ✅ Implemented |
| vkGetQueryPoolResults | ✅ Implemented |
| vkGetRenderAreaGranularity | ✅ Implemented |
| vkGetSwapchainImagesKHR | ✅ Implemented |
| vkInvalidateMappedMemoryRanges | ✅ Implemented |
| vkMapMemory | ✅ Implemented |
| vkMergePipelineCaches | ✅ Implemented |
| vkQueueBindSparse | ❎ Unsupported |
| vkQueuePresentKHR | ✅ Implemented |
| vkQueueSubmit | ✅ Implemented |
| vkQueueWaitIdle | ✅ Implemented |
| vkResetCommandBuffer | ✅ Implemented |
| vkResetCommandPool | ✅ Implemented |
| vkResetDescriptorPool | ✅ Implemented |
| vkResetEvent | ✅ Implemented |
| vkResetFences | ✅ Implemented |
| vkResetQueryPool | ✅ Implemented |
| vkSetEvent | ✅ Implemented |
| vkUnmapMemory | ✅ Implemented |
| vkUpdateDescriptorSets | ✅ Implemented |
| vkWaitForFences | ✅ Implemented |
</details>
[Here](https://vulkan-driver.kbz8.me/cts/soft/) shalt thou find a most meticulous account of the Vulkan 1.0 conformance trials, set forth for thy scrutiny.
## Phi [Xeon Phi KNC]
Phi be an implementation of the Vulkan specification, wrought for the Xeon Phi Knights Corner cards.
Whether the Knights Landing cards shall one day receive the same providence remaineth to be seen.
### Build
To bring forth the driver:
```
zig build phi --release=[fast|safe|small]
```
And for those who seek another manner of building:
```
zig build --help
```
The same rites apply as for the Soft build.
#### Vulkan 1.0 specification
<details>
<summary>
Here standeth the present reckoning of thy Vulkan 1.0 implementation
</summary>
\
⚠️ Implemented, yet perchance not fully tested nor proven conformant, but rather working in a manner most general to thee and thine.\
Assume thou that functions lacking in this array are, for now, not intended to be wrought.
| Name | Status |
| ------------------------------------------------ | -------------- |
| vkAcquireNextImage2KHR | ⚙️ WIP |
| vkAcquireNextImageKHR | ⚙️ WIP |
| vkAllocateCommandBuffers | ✅ Implemented |
| vkAllocateDescriptorSets | ⚙️ WIP |
| vkAllocateMemory | ✅ Implemented |
| vkBeginCommandBuffer | ✅ Implemented |
| vkBindBufferMemory | ⚙️ WIP |
| vkBindImageMemory | ✅ Implemented |
| vkCmdBeginQuery | ⚙️ WIP |
| vkCmdBeginRenderPass | ⚙️ WIP |
| vkCmdBindDescriptorSets | ⚙️ WIP |
| vkCmdBindIndexBuffer | ⚙️ WIP |
| vkCmdBindPipeline | ⚙️ WIP |
| vkCmdBindVertexBuffers | ⚙️ WIP |
| vkCmdBlitImage | ✅ Implemented |
| vkCmdClearAttachments | ⚙️ WIP |
| vkCmdClearColorImage | ⚙️ WIP |
| vkCmdClearDepthStencilImage | ⚙️ WIP |
| vkCmdCopyBuffer | ✅ Implemented |
| vkCmdCopyBufferToImage | ✅ Implemented |
| vkCmdCopyImage | ⚙️ WIP |
| vkCmdCopyImageToBuffer | ✅ Implemented |
| vkCmdCopyQueryPoolResults | ⚙️ WIP |
| vkCmdDispatch | ⚙️ WIP |
| vkCmdDispatchBaseKHR | ⚙️ WIP |
| vkCmdDispatchIndirect | ⚙️ WIP |
| vkCmdDraw | ⚙️ WIP |
| vkCmdDrawIndexed | ⚙️ WIP |
| vkCmdDrawIndexedIndirect | ⚙️ WIP |
| vkCmdDrawIndirect | ⚙️ WIP |
| vkCmdEndQuery | ⚙️ WIP |
| vkCmdEndRenderPass | ⚙️ WIP |
| vkCmdExecuteCommands | ⚙️ WIP |
| vkCmdFillBuffer | ✅ Implemented |
| vkCmdNextSubpass | ⚙️ WIP |
| vkCmdPipelineBarrier | ⚙️ WIP |
| vkCmdPushConstants | ⚙️ WIP |
| vkCmdResetEvent | ⚙️ WIP |
| vkCmdResetQueryPool | ⚙️ WIP |
| vkCmdResolveImage | ⚙️ WIP |
| vkCmdSetBlendConstants | ⚙️ WIP |
| vkCmdSetDepthBias | ⚙️ WIP |
| vkCmdSetDepthBounds | ⚙️ WIP |
| vkCmdSetDeviceMaskKHR | ⚙️ WIP |
| vkCmdSetEvent | ⚙️ WIP |
| vkCmdSetLineWidth | ⚙️ WIP |
| vkCmdSetScissor | ⚙️ WIP |
| vkCmdSetStencilCompareMask | ⚙️ WIP |
| vkCmdSetStencilReference | ⚙️ WIP |
| vkCmdSetStencilWriteMask | ⚙️ WIP |
| vkCmdSetViewport | ⚙️ WIP |
| vkCmdUpdateBuffer | ⚙️ WIP |
| vkCmdWaitEvents | ⚙️ WIP |
| vkCmdWriteTimestamp | ⚙️ WIP |
| vkCreateBuffer | ⚙️ WIP |
| vkCreateBufferView | ⚙️ WIP |
| vkCreateCommandPool | ✅ Implemented |
| vkCreateComputePipelines | ⚙️ WIP |
| vkCreateDescriptorPool | ⚙️ WIP |
| vkCreateDescriptorSetLayout | ⚙️ WIP |
| vkCreateDevice | ✅ Implemented |
| vkCreateEvent | ⚙️ WIP |
| vkCreateFence | ⚙️ WIP |
| vkCreateFramebuffer | ⚙️ WIP |
| vkCreateGraphicsPipelines | ⚙️ WIP |
| vkCreateImage | ✅ Implemented |
| vkCreateImageView | ⚙️ WIP |
| vkCreateInstance | ✅ Implemented |
| vkCreatePipelineCache | ⚙️ WIP |
| vkCreatePipelineLayout | ⚙️ WIP |
| vkCreateQueryPool | ⚙️ WIP |
| vkCreateRenderPass | ⚙️ WIP |
| vkCreateSampler | ⚙️ WIP |
| vkCreateSemaphore | ⚙️ WIP |
| vkCreateShaderModule | ⚙️ WIP |
| vkCreateSwapchainKHR | ⚙️ WIP |
| vkCreateWaylandSurfaceKHR | ⚙️ WIP |
| vkCreateWin32SurfaceKHR | ⚙️ WIP |
| vkCreateXcbSurfaceKHR | ⚙️ WIP |
| vkCreateXlibSurfaceKHR | ⚙️ WIP |
| vkDestroyBuffer | ⚙️ WIP |
| vkDestroyBufferView | ⚙️ WIP |
| vkDestroyCommandPool | ✅ Implemented |
| vkDestroyDescriptorPool | ⚙️ WIP |
| vkDestroyDescriptorSetLayout | ⚙️ WIP |
| vkDestroyDevice | ✅ Implemented |
| vkDestroyEvent | ⚙️ WIP |
| vkDestroyFence | ⚙️ WIP |
| vkDestroyFramebuffer | ⚙️ WIP |
| vkDestroyImage | ✅ Implemented |
| vkDestroyImageView | ⚙️ WIP |
| vkDestroyInstance | ✅ Implemented |
| vkDestroyPipeline | ⚙️ WIP |
| vkDestroyPipelineCache | ⚙️ WIP |
| vkDestroyPipelineLayout | ⚙️ WIP |
| vkDestroyQueryPool | ⚙️ WIP |
| vkDestroyRenderPass | ⚙️ WIP |
| vkDestroySampler | ⚙️ WIP |
| vkDestroySemaphore | ⚙️ WIP |
| vkDestroyShaderModule | ⚙️ WIP |
| vkDestroySurfaceKHR | ⚙️ WIP |
| vkDestroySwapchainKHR | ⚙️ WIP |
| vkDeviceWaitIdle | ⚙️ WIP |
| vkEndCommandBuffer | ✅ Implemented |
| vkEnumerateDeviceExtensionProperties | ⚙️ WIP |
| vkEnumerateDeviceLayerProperties | ⚙️ WIP |
| vkEnumerateInstanceExtensionProperties | ⚙️ WIP |
| vkEnumerateInstanceLayerProperties | ⚙️ WIP |
| vkEnumeratePhysicalDeviceGroupsKHR | ⚙️ WIP |
| vkEnumeratePhysicalDevices | ✅ Implemented |
| vkFlushMappedMemoryRanges | ⚙️ WIP |
| vkFreeCommandBuffers | ⚙️ WIP |
| vkFreeDescriptorSets | ⚙️ WIP |
| vkFreeMemory | ✅ Implemented |
| vkGetBufferDeviceAddress | ⚙️ WIP |
| vkGetBufferDeviceAddressEXT | ⚙️ WIP |
| vkGetBufferDeviceAddressKHR | ⚙️ WIP |
| vkGetBufferMemoryRequirements | ⚙️ WIP |
| vkGetDeviceGroupPeerMemoryFeaturesKHR | ⚙️ WIP |
| vkGetDeviceGroupPresentCapabilitiesKHR | ⚙️ WIP |
| vkGetDeviceGroupSurfacePresentModesKHR | ⚙️ WIP |
| vkGetDeviceMemoryCommitment | ⚙️ WIP |
| vkGetDeviceProcAddr | ⚙️ WIP |
| vkGetDeviceQueue | ⚙️ WIP |
| vkGetEventStatus | ⚙️ WIP |
| vkGetFenceStatus | ⚙️ WIP |
| vkGetImageMemoryRequirements | ✅ Implemented |
| vkGetImageSparseMemoryRequirements | ⚙️ WIP |
| vkGetImageSubresourceLayout | ✅ Implemented |
| vkGetInstanceProcAddr | ⚙️ WIP |
| vkGetPhysicalDeviceFeatures | ✅ Implemented |
| vkGetPhysicalDeviceFormatProperties | ⚙️ WIP |
| vkGetPhysicalDeviceImageFormatProperties | ✅ Implemented |
| vkGetPhysicalDeviceMemoryProperties | ✅ Implemented |
| vkGetPhysicalDeviceProperties | ✅ Implemented |
| vkGetPhysicalDeviceQueueFamilyProperties | ⚙️ WIP |
| vkGetPhysicalDeviceSparseImageFormatProperties | ⚙️ WIP |
| vkGetPhysicalDeviceSurfaceCapabilitiesKHR | ⚙️ WIP |
| vkGetPhysicalDeviceSurfaceFormatsKHR | ⚙️ WIP |
| vkGetPhysicalDeviceSurfacePresentModesKHR | ⚙️ WIP |
| vkGetPhysicalDeviceSurfaceSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceWaylandPresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceWin32PresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceXcbPresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceXlibPresentationSupportKHR | ⚙️ WIP |
| vkGetPipelineCacheData | ⚙️ WIP |
| vkGetQueryPoolResults | ⚙️ WIP |
| vkGetRenderAreaGranularity | ⚙️ WIP |
| vkGetSwapchainImagesKHR | ⚙️ WIP |
| vkInvalidateMappedMemoryRanges | ⚙️ WIP |
| vkMapMemory | ⚙️ WIP |
| vkMergePipelineCaches | ⚙️ WIP |
| vkQueueBindSparse | ⚙️ WIP |
| vkQueuePresentKHR | ⚙️ WIP |
| vkQueueSubmit | ✅ Implemented |
| vkQueueWaitIdle | ⚙️ WIP |
| vkResetCommandBuffer | ⚙️ WIP |
| vkResetCommandPool | ✅ Implemented |
| vkResetDescriptorPool | ⚙️ WIP |
| vkResetEvent | ⚙️ WIP |
| vkResetFences | ⚙️ WIP |
| vkResetQueryPool | ⚙️ WIP |
| vkSetEvent | ⚙️ WIP |
| vkUnmapMemory | ⚙️ WIP |
| vkUpdateDescriptorSets | ⚙️ WIP |
| vkWaitForFences | ⚙️ WIP |
</details>
[The present reckoning](https://vulkan-driver.kbz8.me/cts/phi/) of thy Vulkan 1.0 implementation standeth thus.
## Flint [Intel]
Flint be an implementation of the Vulkan specification, fashioned for the elder Intel iGPUs of generations 9 through 11.
Whether Haswell and those that followed-even the Xe kindred-shall one day partake of its workings remaineth unwritten.
### Build
The rite of forging the driver:
```
zig build flint --release=[fast|safe|small]
```
Should the foregoing not suffice, further build options await thee:
```
zig build --help
```
The same rites apply as for the Soft and Phi build.
#### Vulkan 1.0 specification
<details>
<summary>
Behold the present state of thy Vulkan 1.0 implementation
</summary>
\
⚠️ Implemented, yet perchance not fully tested nor proven conformant, but rather working in a manner most general to thee and thine.\
Assume thou that functions lacking in this array are, for now, not intended to be wrought.
| Name | Status |
| ------------------------------------------------ | -------------- |
| vkAcquireNextImage2KHR | ⚙️ WIP |
| vkAcquireNextImageKHR | ⚙️ WIP |
| vkAllocateCommandBuffers | ✅ Implemented |
| vkAllocateDescriptorSets | ⚙️ WIP |
| vkAllocateMemory | ✅ Implemented |
| vkBeginCommandBuffer | ✅ Implemented |
| vkBindBufferMemory | ✅ Implemented |
| vkBindImageMemory | ✅ Implemented |
| vkCmdBeginQuery | ⚙️ WIP |
| vkCmdBeginRenderPass | ⚙️ WIP |
| vkCmdBindDescriptorSets | ⚙️ WIP |
| vkCmdBindIndexBuffer | ⚙️ WIP |
| vkCmdBindPipeline | ⚙️ WIP |
| vkCmdBindVertexBuffers | ⚙️ WIP |
| vkCmdBlitImage | ⚙️ WIP |
| vkCmdClearAttachments | ⚙️ WIP |
| vkCmdClearColorImage | ⚙️ WIP |
| vkCmdClearDepthStencilImage | ⚙️ WIP |
| vkCmdCopyBuffer | ✅ Implemented |
| vkCmdCopyBufferToImage | ✅ Implemented |
| vkCmdCopyImage | ✅ Implemented |
| vkCmdCopyImageToBuffer | ✅ Implemented |
| vkCmdCopyQueryPoolResults | ⚙️ WIP |
| vkCmdDispatch | ⚙️ WIP |
| vkCmdDispatchBaseKHR | ⚙️ WIP |
| vkCmdDispatchIndirect | ⚙️ WIP |
| vkCmdDraw | ⚙️ WIP |
| vkCmdDrawIndexed | ⚙️ WIP |
| vkCmdDrawIndexedIndirect | ⚙️ WIP |
| vkCmdDrawIndirect | ⚙️ WIP |
| vkCmdEndQuery | ⚙️ WIP |
| vkCmdEndRenderPass | ⚙️ WIP |
| vkCmdExecuteCommands | ✅ Implemented |
| vkCmdFillBuffer | ✅ Implemented |
| vkCmdNextSubpass | ⚙️ WIP |
| vkCmdPipelineBarrier | ⚙️ WIP |
| vkCmdPushConstants | ⚙️ WIP |
| vkCmdResetEvent | ⚙️ WIP |
| vkCmdResetQueryPool | ⚙️ WIP |
| vkCmdResolveImage | ⚙️ WIP |
| vkCmdSetBlendConstants | ⚙️ WIP |
| vkCmdSetDepthBias | ⚙️ WIP |
| vkCmdSetDepthBounds | ⚙️ WIP |
| vkCmdSetDeviceMaskKHR | ⚙️ WIP |
| vkCmdSetEvent | ⚙️ WIP |
| vkCmdSetLineWidth | ⚙️ WIP |
| vkCmdSetScissor | ⚙️ WIP |
| vkCmdSetStencilCompareMask | ⚙️ WIP |
| vkCmdSetStencilReference | ⚙️ WIP |
| vkCmdSetStencilWriteMask | ⚙️ WIP |
| vkCmdSetViewport | ⚙️ WIP |
| vkCmdUpdateBuffer | ⚙️ WIP |
| vkCmdWaitEvents | ⚙️ WIP |
| vkCmdWriteTimestamp | ⚙️ WIP |
| vkCreateBuffer | ✅ Implemented |
| vkCreateBufferView | ⚙️ WIP |
| vkCreateCommandPool | ✅ Implemented |
| vkCreateComputePipelines | ⚙️ WIP |
| vkCreateDescriptorPool | ⚙️ WIP |
| vkCreateDescriptorSetLayout | ⚙️ WIP |
| vkCreateDevice | ✅ Implemented |
| vkCreateEvent | ⚙️ WIP |
| vkCreateFence | ✅ Implemented |
| vkCreateFramebuffer | ⚙️ WIP |
| vkCreateGraphicsPipelines | ⚙️ WIP |
| vkCreateImage | ✅ Implemented |
| vkCreateImageView | ⚙️ WIP |
| vkCreateInstance | ✅ Implemented |
| vkCreatePipelineCache | ⚙️ WIP |
| vkCreatePipelineLayout | ⚙️ WIP |
| vkCreateQueryPool | ⚙️ WIP |
| vkCreateRenderPass | ⚙️ WIP |
| vkCreateSampler | ⚙️ WIP |
| vkCreateSemaphore | ✅ Implemented |
| vkCreateShaderModule | ⚙️ WIP |
| vkCreateSwapchainKHR | ⚙️ WIP |
| vkCreateWaylandSurfaceKHR | ⚙️ WIP |
| vkCreateWin32SurfaceKHR | ⚙️ WIP |
| vkCreateXcbSurfaceKHR | ⚙️ WIP |
| vkCreateXlibSurfaceKHR | ⚙️ WIP |
| vkDestroyBuffer | ✅ Implemented |
| vkDestroyBufferView | ⚙️ WIP |
| vkDestroyCommandPool | ✅ Implemented |
| vkDestroyDescriptorPool | ⚙️ WIP |
| vkDestroyDescriptorSetLayout | ⚙️ WIP |
| vkDestroyDevice | ✅ Implemented |
| vkDestroyEvent | ⚙️ WIP |
| vkDestroyFence | ✅ Implemented |
| vkDestroyFramebuffer | ⚙️ WIP |
| vkDestroyImage | ✅ Implemented |
| vkDestroyImageView | ⚙️ WIP |
| vkDestroyInstance | ✅ Implemented |
| vkDestroyPipeline | ⚙️ WIP |
| vkDestroyPipelineCache | ⚙️ WIP |
| vkDestroyPipelineLayout | ⚙️ WIP |
| vkDestroyQueryPool | ⚙️ WIP |
| vkDestroyRenderPass | ⚙️ WIP |
| vkDestroySampler | ⚙️ WIP |
| vkDestroySemaphore | ✅ Implemented |
| vkDestroyShaderModule | ⚙️ WIP |
| vkDestroySurfaceKHR | ⚙️ WIP |
| vkDestroySwapchainKHR | ⚙️ WIP |
| vkDeviceWaitIdle | ✅ Implemented |
| vkEndCommandBuffer | ✅ Implemented |
| vkEnumerateDeviceExtensionProperties | ✅ Implemented |
| vkEnumerateDeviceLayerProperties | ⚙️ WIP |
| vkEnumerateInstanceExtensionProperties | ⚙️ WIP |
| vkEnumerateInstanceLayerProperties | ⚙️ WIP |
| vkEnumeratePhysicalDeviceGroupsKHR | ⚙️ WIP |
| vkEnumeratePhysicalDevices | ✅ Implemented |
| vkFlushMappedMemoryRanges | ✅ Implemented |
| vkFreeCommandBuffers | ✅ Implemented |
| vkFreeDescriptorSets | ⚙️ WIP |
| vkFreeMemory | ✅ Implemented |
| vkGetBufferDeviceAddress | ⚙️ WIP |
| vkGetBufferDeviceAddressEXT | ⚙️ WIP |
| vkGetBufferDeviceAddressKHR | ⚙️ WIP |
| vkGetBufferMemoryRequirements | ⚙️ WIP |
| vkGetDeviceGroupPeerMemoryFeaturesKHR | ⚙️ WIP |
| vkGetDeviceGroupPresentCapabilitiesKHR | ⚙️ WIP |
| vkGetDeviceGroupSurfacePresentModesKHR | ⚙️ WIP |
| vkGetDeviceMemoryCommitment | ⚙️ WIP |
| vkGetDeviceProcAddr | ✅ Implemented |
| vkGetDeviceQueue | ✅ Implemented |
| vkGetEventStatus | ⚙️ WIP |
| vkGetFenceStatus | ✅ Implemented |
| vkGetImageMemoryRequirements | ⚙️ WIP |
| vkGetImageSparseMemoryRequirements | ⚙️ WIP |
| vkGetImageSubresourceLayout | ⚙️ WIP |
| vkGetInstanceProcAddr | ⚙️ WIP |
| vkGetPhysicalDeviceFeatures | ✅ Implemented |
| vkGetPhysicalDeviceFormatProperties | ⚙️ WIP |
| vkGetPhysicalDeviceImageFormatProperties | ⚙️ WIP |
| vkGetPhysicalDeviceMemoryProperties | ✅ Implemented |
| vkGetPhysicalDeviceProperties | ✅ Implemented |
| vkGetPhysicalDeviceQueueFamilyProperties | ⚙️ WIP |
| vkGetPhysicalDeviceSparseImageFormatProperties | ⚙️ WIP |
| vkGetPhysicalDeviceSurfaceCapabilitiesKHR | ⚙️ WIP |
| vkGetPhysicalDeviceSurfaceFormatsKHR | ⚙️ WIP |
| vkGetPhysicalDeviceSurfacePresentModesKHR | ⚙️ WIP |
| vkGetPhysicalDeviceSurfaceSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceWaylandPresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceWin32PresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceXcbPresentationSupportKHR | ⚙️ WIP |
| vkGetPhysicalDeviceXlibPresentationSupportKHR | ⚙️ WIP |
| vkGetPipelineCacheData | ⚙️ WIP |
| vkGetQueryPoolResults | ⚙️ WIP |
| vkGetRenderAreaGranularity | ⚙️ WIP |
| vkGetSwapchainImagesKHR | ⚙️ WIP |
| vkInvalidateMappedMemoryRanges | ✅ Implemented |
| vkMapMemory | ✅ Implemented |
| vkMergePipelineCaches | ⚙️ WIP |
| vkQueueBindSparse | ⚙️ WIP |
| vkQueuePresentKHR | ⚙️ WIP |
| vkQueueSubmit | ✅ Implemented |
| vkQueueWaitIdle | ✅ Implemented |
| vkResetCommandBuffer | ✅ Implemented |
| vkResetCommandPool | ✅ Implemented |
| vkResetDescriptorPool | ⚙️ WIP |
| vkResetEvent | ⚙️ WIP |
| vkResetFences | ✅ Implemented |
| vkResetQueryPool | ⚙️ WIP |
| vkSetEvent | ⚙️ WIP |
| vkUnmapMemory | ✅ Implemented |
| vkUpdateDescriptorSets | ⚙️ WIP |
| vkWaitForFences | ✅ Implemented |
</details>
[herein](https://vulkan-driver.kbz8.me/cts/flint/) is the reckoning of the vulkan 1.0 conformance trials laid bare. judge it as thou wilt.
## License
Released unto the world as MIT for study, experimentation, and the occasional horrified whisper.
Do with it as thou wilt, but accept the consequences as thine own.
## Mirrors
This codebase is maintained chiefly upon [mine own Git forge](https://git.kbz8.me/kbz_8/VulkanDriver), though thou may also find an active mirror upon [GitHub](https://github.com/Kbz-8/VulkanDriver).