Donner SVG 0.8.0-pre
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::gpu::vulkan::VulkanApi Struct Reference

Vulkan entry points this backend calls, resolved at runtime. More...

#include "donner/gpu/vulkan/VulkanLoader.h"

Public Attributes

Loader entry point
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = nullptr
 Resolves every other function.
Global entry points, resolved with a null instance
PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = nullptr
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = nullptr
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = nullptr
PFN_vkCreateInstance vkCreateInstance = nullptr
Instance-level entry points
PFN_vkDestroyInstance vkDestroyInstance = nullptr
PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = nullptr
PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = nullptr
PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = nullptr
PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = nullptr
PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = nullptr
PFN_vkCreateDevice vkCreateDevice = nullptr
PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = nullptr
PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = nullptr
 Optional: present only when the debug-utils extension is enabled. Null otherwise.
PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = nullptr
 Optional, paired with vkCreateDebugUtilsMessengerEXT.
Device-level entry points
PFN_vkDestroyDevice vkDestroyDevice = nullptr
PFN_vkDeviceWaitIdle vkDeviceWaitIdle = nullptr
PFN_vkGetDeviceQueue vkGetDeviceQueue = nullptr
PFN_vkQueueSubmit vkQueueSubmit = nullptr
PFN_vkAllocateMemory vkAllocateMemory = nullptr
PFN_vkFreeMemory vkFreeMemory = nullptr
PFN_vkMapMemory vkMapMemory = nullptr
PFN_vkCreateBuffer vkCreateBuffer = nullptr
PFN_vkDestroyBuffer vkDestroyBuffer = nullptr
PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = nullptr
PFN_vkBindBufferMemory vkBindBufferMemory = nullptr
PFN_vkCreateImage vkCreateImage = nullptr
PFN_vkDestroyImage vkDestroyImage = nullptr
PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = nullptr
PFN_vkBindImageMemory vkBindImageMemory = nullptr
PFN_vkCreateImageView vkCreateImageView = nullptr
PFN_vkDestroyImageView vkDestroyImageView = nullptr
PFN_vkCreateSampler vkCreateSampler = nullptr
PFN_vkDestroySampler vkDestroySampler = nullptr
PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = nullptr
PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = nullptr
PFN_vkCreateDescriptorPool vkCreateDescriptorPool = nullptr
PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = nullptr
PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = nullptr
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = nullptr
PFN_vkCreatePipelineLayout vkCreatePipelineLayout = nullptr
PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = nullptr
PFN_vkCreateShaderModule vkCreateShaderModule = nullptr
PFN_vkDestroyShaderModule vkDestroyShaderModule = nullptr
PFN_vkCreateRenderPass vkCreateRenderPass = nullptr
PFN_vkDestroyRenderPass vkDestroyRenderPass = nullptr
PFN_vkCreateFramebuffer vkCreateFramebuffer = nullptr
PFN_vkDestroyFramebuffer vkDestroyFramebuffer = nullptr
PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = nullptr
PFN_vkCreateComputePipelines vkCreateComputePipelines = nullptr
PFN_vkDestroyPipeline vkDestroyPipeline = nullptr
PFN_vkCreateCommandPool vkCreateCommandPool = nullptr
PFN_vkDestroyCommandPool vkDestroyCommandPool = nullptr
PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = nullptr
PFN_vkFreeCommandBuffers vkFreeCommandBuffers = nullptr
PFN_vkBeginCommandBuffer vkBeginCommandBuffer = nullptr
PFN_vkEndCommandBuffer vkEndCommandBuffer = nullptr
PFN_vkCreateFence vkCreateFence = nullptr
PFN_vkDestroyFence vkDestroyFence = nullptr
PFN_vkGetFenceStatus vkGetFenceStatus = nullptr
PFN_vkWaitForFences vkWaitForFences = nullptr
PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = nullptr
PFN_vkCmdEndRenderPass vkCmdEndRenderPass = nullptr
PFN_vkCmdBindPipeline vkCmdBindPipeline = nullptr
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = nullptr
PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = nullptr
PFN_vkCmdSetViewport vkCmdSetViewport = nullptr
PFN_vkCmdSetScissor vkCmdSetScissor = nullptr
PFN_vkCmdDraw vkCmdDraw = nullptr
PFN_vkCmdDispatch vkCmdDispatch = nullptr
PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = nullptr
PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = nullptr
PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = nullptr
PFN_vkCmdCopyImage vkCmdCopyImage = nullptr

Detailed Description

Vulkan entry points this backend calls, resolved at runtime.

Every member is null until the tier that provides it has been loaded, and each tier is resolved through the mechanism the Vulkan specification defines for it. Nothing here is a link-time symbol: the backend calls Vulkan exclusively through this table, so a build links without any Vulkan library present and a run without a loader installed fails closed at device creation instead of failing to start.

Resolving each entry point at the narrowest tier that can provide it also lets the loader hand back the implementation's own function for a specific device rather than a dispatch thunk that has to re-resolve the device on every call, which is why the draw-time entry points are device-level.

Member Data Documentation

◆ vkAllocateCommandBuffers

PFN_vkAllocateCommandBuffers donner::gpu::vulkan::VulkanApi::vkAllocateCommandBuffers = nullptr

◆ vkAllocateDescriptorSets

PFN_vkAllocateDescriptorSets donner::gpu::vulkan::VulkanApi::vkAllocateDescriptorSets = nullptr

◆ vkAllocateMemory

PFN_vkAllocateMemory donner::gpu::vulkan::VulkanApi::vkAllocateMemory = nullptr

◆ vkBeginCommandBuffer

PFN_vkBeginCommandBuffer donner::gpu::vulkan::VulkanApi::vkBeginCommandBuffer = nullptr

◆ vkBindBufferMemory

PFN_vkBindBufferMemory donner::gpu::vulkan::VulkanApi::vkBindBufferMemory = nullptr

◆ vkBindImageMemory

PFN_vkBindImageMemory donner::gpu::vulkan::VulkanApi::vkBindImageMemory = nullptr

◆ vkCmdBeginRenderPass

PFN_vkCmdBeginRenderPass donner::gpu::vulkan::VulkanApi::vkCmdBeginRenderPass = nullptr

◆ vkCmdBindDescriptorSets

PFN_vkCmdBindDescriptorSets donner::gpu::vulkan::VulkanApi::vkCmdBindDescriptorSets = nullptr

◆ vkCmdBindPipeline

PFN_vkCmdBindPipeline donner::gpu::vulkan::VulkanApi::vkCmdBindPipeline = nullptr

◆ vkCmdBindVertexBuffers

PFN_vkCmdBindVertexBuffers donner::gpu::vulkan::VulkanApi::vkCmdBindVertexBuffers = nullptr

◆ vkCmdCopyBufferToImage

PFN_vkCmdCopyBufferToImage donner::gpu::vulkan::VulkanApi::vkCmdCopyBufferToImage = nullptr

◆ vkCmdCopyImage

PFN_vkCmdCopyImage donner::gpu::vulkan::VulkanApi::vkCmdCopyImage = nullptr

◆ vkCmdCopyImageToBuffer

PFN_vkCmdCopyImageToBuffer donner::gpu::vulkan::VulkanApi::vkCmdCopyImageToBuffer = nullptr

◆ vkCmdDispatch

PFN_vkCmdDispatch donner::gpu::vulkan::VulkanApi::vkCmdDispatch = nullptr

◆ vkCmdDraw

PFN_vkCmdDraw donner::gpu::vulkan::VulkanApi::vkCmdDraw = nullptr

◆ vkCmdEndRenderPass

PFN_vkCmdEndRenderPass donner::gpu::vulkan::VulkanApi::vkCmdEndRenderPass = nullptr

◆ vkCmdPipelineBarrier

PFN_vkCmdPipelineBarrier donner::gpu::vulkan::VulkanApi::vkCmdPipelineBarrier = nullptr

◆ vkCmdSetScissor

PFN_vkCmdSetScissor donner::gpu::vulkan::VulkanApi::vkCmdSetScissor = nullptr

◆ vkCmdSetViewport

PFN_vkCmdSetViewport donner::gpu::vulkan::VulkanApi::vkCmdSetViewport = nullptr

◆ vkCreateBuffer

PFN_vkCreateBuffer donner::gpu::vulkan::VulkanApi::vkCreateBuffer = nullptr

◆ vkCreateCommandPool

PFN_vkCreateCommandPool donner::gpu::vulkan::VulkanApi::vkCreateCommandPool = nullptr

◆ vkCreateComputePipelines

PFN_vkCreateComputePipelines donner::gpu::vulkan::VulkanApi::vkCreateComputePipelines = nullptr

◆ vkCreateDebugUtilsMessengerEXT

PFN_vkCreateDebugUtilsMessengerEXT donner::gpu::vulkan::VulkanApi::vkCreateDebugUtilsMessengerEXT = nullptr

Optional: present only when the debug-utils extension is enabled. Null otherwise.

◆ vkCreateDescriptorPool

PFN_vkCreateDescriptorPool donner::gpu::vulkan::VulkanApi::vkCreateDescriptorPool = nullptr

◆ vkCreateDescriptorSetLayout

PFN_vkCreateDescriptorSetLayout donner::gpu::vulkan::VulkanApi::vkCreateDescriptorSetLayout = nullptr

◆ vkCreateDevice

PFN_vkCreateDevice donner::gpu::vulkan::VulkanApi::vkCreateDevice = nullptr

◆ vkCreateFence

PFN_vkCreateFence donner::gpu::vulkan::VulkanApi::vkCreateFence = nullptr

◆ vkCreateFramebuffer

PFN_vkCreateFramebuffer donner::gpu::vulkan::VulkanApi::vkCreateFramebuffer = nullptr

◆ vkCreateGraphicsPipelines

PFN_vkCreateGraphicsPipelines donner::gpu::vulkan::VulkanApi::vkCreateGraphicsPipelines = nullptr

◆ vkCreateImage

PFN_vkCreateImage donner::gpu::vulkan::VulkanApi::vkCreateImage = nullptr

◆ vkCreateImageView

PFN_vkCreateImageView donner::gpu::vulkan::VulkanApi::vkCreateImageView = nullptr

◆ vkCreateInstance

PFN_vkCreateInstance donner::gpu::vulkan::VulkanApi::vkCreateInstance = nullptr

◆ vkCreatePipelineLayout

PFN_vkCreatePipelineLayout donner::gpu::vulkan::VulkanApi::vkCreatePipelineLayout = nullptr

◆ vkCreateRenderPass

PFN_vkCreateRenderPass donner::gpu::vulkan::VulkanApi::vkCreateRenderPass = nullptr

◆ vkCreateSampler

PFN_vkCreateSampler donner::gpu::vulkan::VulkanApi::vkCreateSampler = nullptr

◆ vkCreateShaderModule

PFN_vkCreateShaderModule donner::gpu::vulkan::VulkanApi::vkCreateShaderModule = nullptr

◆ vkDestroyBuffer

PFN_vkDestroyBuffer donner::gpu::vulkan::VulkanApi::vkDestroyBuffer = nullptr

◆ vkDestroyCommandPool

PFN_vkDestroyCommandPool donner::gpu::vulkan::VulkanApi::vkDestroyCommandPool = nullptr

◆ vkDestroyDebugUtilsMessengerEXT

PFN_vkDestroyDebugUtilsMessengerEXT donner::gpu::vulkan::VulkanApi::vkDestroyDebugUtilsMessengerEXT = nullptr

Optional, paired with vkCreateDebugUtilsMessengerEXT.

◆ vkDestroyDescriptorPool

PFN_vkDestroyDescriptorPool donner::gpu::vulkan::VulkanApi::vkDestroyDescriptorPool = nullptr

◆ vkDestroyDescriptorSetLayout

PFN_vkDestroyDescriptorSetLayout donner::gpu::vulkan::VulkanApi::vkDestroyDescriptorSetLayout = nullptr

◆ vkDestroyDevice

PFN_vkDestroyDevice donner::gpu::vulkan::VulkanApi::vkDestroyDevice = nullptr

◆ vkDestroyFence

PFN_vkDestroyFence donner::gpu::vulkan::VulkanApi::vkDestroyFence = nullptr

◆ vkDestroyFramebuffer

PFN_vkDestroyFramebuffer donner::gpu::vulkan::VulkanApi::vkDestroyFramebuffer = nullptr

◆ vkDestroyImage

PFN_vkDestroyImage donner::gpu::vulkan::VulkanApi::vkDestroyImage = nullptr

◆ vkDestroyImageView

PFN_vkDestroyImageView donner::gpu::vulkan::VulkanApi::vkDestroyImageView = nullptr

◆ vkDestroyInstance

PFN_vkDestroyInstance donner::gpu::vulkan::VulkanApi::vkDestroyInstance = nullptr

◆ vkDestroyPipeline

PFN_vkDestroyPipeline donner::gpu::vulkan::VulkanApi::vkDestroyPipeline = nullptr

◆ vkDestroyPipelineLayout

PFN_vkDestroyPipelineLayout donner::gpu::vulkan::VulkanApi::vkDestroyPipelineLayout = nullptr

◆ vkDestroyRenderPass

PFN_vkDestroyRenderPass donner::gpu::vulkan::VulkanApi::vkDestroyRenderPass = nullptr

◆ vkDestroySampler

PFN_vkDestroySampler donner::gpu::vulkan::VulkanApi::vkDestroySampler = nullptr

◆ vkDestroyShaderModule

PFN_vkDestroyShaderModule donner::gpu::vulkan::VulkanApi::vkDestroyShaderModule = nullptr

◆ vkDeviceWaitIdle

PFN_vkDeviceWaitIdle donner::gpu::vulkan::VulkanApi::vkDeviceWaitIdle = nullptr

◆ vkEndCommandBuffer

PFN_vkEndCommandBuffer donner::gpu::vulkan::VulkanApi::vkEndCommandBuffer = nullptr

◆ vkEnumerateInstanceExtensionProperties

PFN_vkEnumerateInstanceExtensionProperties donner::gpu::vulkan::VulkanApi::vkEnumerateInstanceExtensionProperties = nullptr

◆ vkEnumerateInstanceLayerProperties

PFN_vkEnumerateInstanceLayerProperties donner::gpu::vulkan::VulkanApi::vkEnumerateInstanceLayerProperties = nullptr

◆ vkEnumerateInstanceVersion

PFN_vkEnumerateInstanceVersion donner::gpu::vulkan::VulkanApi::vkEnumerateInstanceVersion = nullptr

◆ vkEnumeratePhysicalDevices

PFN_vkEnumeratePhysicalDevices donner::gpu::vulkan::VulkanApi::vkEnumeratePhysicalDevices = nullptr

◆ vkFreeCommandBuffers

PFN_vkFreeCommandBuffers donner::gpu::vulkan::VulkanApi::vkFreeCommandBuffers = nullptr

◆ vkFreeMemory

PFN_vkFreeMemory donner::gpu::vulkan::VulkanApi::vkFreeMemory = nullptr

◆ vkGetBufferMemoryRequirements

PFN_vkGetBufferMemoryRequirements donner::gpu::vulkan::VulkanApi::vkGetBufferMemoryRequirements = nullptr

◆ vkGetDeviceProcAddr

PFN_vkGetDeviceProcAddr donner::gpu::vulkan::VulkanApi::vkGetDeviceProcAddr = nullptr

◆ vkGetDeviceQueue

PFN_vkGetDeviceQueue donner::gpu::vulkan::VulkanApi::vkGetDeviceQueue = nullptr

◆ vkGetFenceStatus

PFN_vkGetFenceStatus donner::gpu::vulkan::VulkanApi::vkGetFenceStatus = nullptr

◆ vkGetImageMemoryRequirements

PFN_vkGetImageMemoryRequirements donner::gpu::vulkan::VulkanApi::vkGetImageMemoryRequirements = nullptr

◆ vkGetInstanceProcAddr

PFN_vkGetInstanceProcAddr donner::gpu::vulkan::VulkanApi::vkGetInstanceProcAddr = nullptr

Resolves every other function.

◆ vkGetPhysicalDeviceFeatures

PFN_vkGetPhysicalDeviceFeatures donner::gpu::vulkan::VulkanApi::vkGetPhysicalDeviceFeatures = nullptr

◆ vkGetPhysicalDeviceMemoryProperties

PFN_vkGetPhysicalDeviceMemoryProperties donner::gpu::vulkan::VulkanApi::vkGetPhysicalDeviceMemoryProperties = nullptr

◆ vkGetPhysicalDeviceProperties

PFN_vkGetPhysicalDeviceProperties donner::gpu::vulkan::VulkanApi::vkGetPhysicalDeviceProperties = nullptr

◆ vkGetPhysicalDeviceQueueFamilyProperties

PFN_vkGetPhysicalDeviceQueueFamilyProperties donner::gpu::vulkan::VulkanApi::vkGetPhysicalDeviceQueueFamilyProperties = nullptr

◆ vkMapMemory

PFN_vkMapMemory donner::gpu::vulkan::VulkanApi::vkMapMemory = nullptr

◆ vkQueueSubmit

PFN_vkQueueSubmit donner::gpu::vulkan::VulkanApi::vkQueueSubmit = nullptr

◆ vkUpdateDescriptorSets

PFN_vkUpdateDescriptorSets donner::gpu::vulkan::VulkanApi::vkUpdateDescriptorSets = nullptr

◆ vkWaitForFences

PFN_vkWaitForFences donner::gpu::vulkan::VulkanApi::vkWaitForFences = nullptr

The documentation for this struct was generated from the following file: