vulkan: Update from version 0.186.0 to 0.188.0
Change-Id: Ida08d51f4e892202b594072d1e765ba5c55444db
(cherry picked from commit 2ca0449bdeecd0257c7473f663896b00d0082def)
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index bbf9cfe..b95c96e 100644
--- a/vulkan/api/vulkan.api
+++ b/vulkan/api/vulkan.api
@@ -27,7 +27,7 @@
// API version (major.minor.patch)
define VERSION_MAJOR 0
-define VERSION_MINOR 186
+define VERSION_MINOR 188
define VERSION_PATCH 0
// API limits
@@ -364,12 +364,16 @@
VK_LOGIC_OP_SET = 0x0000000f,
}
-enum VkSystemAllocType {
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT = 0x00000000,
- VK_SYSTEM_ALLOC_TYPE_INTERNAL = 0x00000001,
- VK_SYSTEM_ALLOC_TYPE_INTERNAL_TEMP = 0x00000002,
- VK_SYSTEM_ALLOC_TYPE_INTERNAL_SHADER = 0x00000003,
- VK_SYSTEM_ALLOC_TYPE_DEBUG = 0x00000004,
+enum VkSystemAllocScope {
+ VK_SYSTEM_ALLOC_SCOPE_FUNCTION = 0x00000000,
+ VK_SYSTEM_ALLOC_SCOPE_OBJECT = 0x00000001,
+ VK_SYSTEM_ALLOC_SCOPE_CACHE = 0x00000002,
+ VK_SYSTEM_ALLOC_SCOPE_DEVICE = 0x00000003,
+ VK_SYSTEM_ALLOC_SCOPE_INSTANCE = 0x00000004,
+}
+
+enum VkInternalAllocType {
+ VK_INTERNAL_ALLOC_TYPE_EXECUTABLE = 0x00000000,
}
enum VkPhysicalDeviceType {
@@ -613,6 +617,9 @@
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 45,
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 46,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 47,
+ VK_STRUCTURE_TYPE_SUBMIT_INFO = 48,
+ VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 49,
+ VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 50,
//@extension("VK_EXT_KHR_swapchain")
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 0xc0000801,
@@ -697,6 +704,7 @@
VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
+ VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
}
@extension("VK_EXT_KHR_swapchain")
@@ -1135,11 +1143,13 @@
}
class VkSubmitInfo {
- u32 waitSemCount
+ VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
+ const void* pNext /// Next structure in chain
+ u32 waitSemaphoreCount
const VkSemaphore* pWaitSemaphores
- u32 cmdBufferCount
+ u32 commandBufferCount
const VkCmdBuffer* pCommandBuffers
- u32 signalSemCount
+ u32 signalSemaphoreCount
const VkSemaphore* pSignalSemaphores
}
@@ -1156,14 +1166,17 @@
class VkAllocCallbacks {
void* pUserData
PFN_vkAllocFunction pfnAlloc
+ PFN_vkReallocFunction pfnRealloc
PFN_vkFreeFunction pfnFree
+ PFN_vkInternalAllocNotification pfnInternalAlloc
+ PFN_vkInternalFreeNotification pfnInternalFree
}
class VkDeviceQueueCreateInfo {
VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
const void* pNext /// Pointer to next structure
u32 queueFamilyIndex
- u32 queueCount
+ u32 queuePriorityCount
const f32* pQueuePriorities
}
@@ -1172,9 +1185,9 @@
const void* pNext /// Pointer to next structure
u32 requestedQueueRecordCount
const VkDeviceQueueCreateInfo* pRequestedQueues
- u32 layerCount
+ u32 enabledLayerNameCount
const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
- u32 extensionCount
+ u32 enabledExtensionNameCount
const char* const* ppEnabledExtensionNames
const VkPhysicalDeviceFeatures* pEnabledFeatures
}
@@ -1183,10 +1196,9 @@
VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
const void* pNext /// Pointer to next structure
const VkApplicationInfo* pAppInfo
- const VkAllocCallbacks* pAllocCb
- u32 layerCount
+ u32 enabledLayerNameCount
const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
- u32 extensionCount
+ u32 enabledExtensionNameCount
const char* const* ppEnabledExtensionNames /// Extension names to be enabled
}
@@ -1280,7 +1292,7 @@
VkDescriptorSet destSet /// Destination descriptor set
u32 destBinding /// Binding within the destination descriptor set to write
u32 destArrayElement /// Array element within the destination binding to write
- u32 count /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
+ u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
VkDescriptorType descriptorType /// Descriptor type to write (determines which fields of the array pointed by <pDescriptors> are going to be used)
const VkDescriptorImageInfo* pImageInfo
const VkDescriptorBufferInfo* pBufferInfo
@@ -1296,7 +1308,7 @@
VkDescriptorSet destSet /// Destination descriptor set
u32 destBinding /// Binding within the destination descriptor set to copy to
u32 destArrayElement /// Array element within the destination binding to copy to
- u32 count /// Number of descriptors to copy
+ u32 descriptorCount /// Number of descriptors to copy
}
class VkBufferCreateInfo {
@@ -1306,7 +1318,7 @@
VkBufferUsageFlags usage /// Buffer usage flags
VkBufferCreateFlags flags /// Buffer creation flags
VkSharingMode sharingMode
- u32 queueFamilyCount
+ u32 queueFamilyIndexCount
const u32* pQueueFamilyIndices
}
@@ -1378,7 +1390,7 @@
VkImageUsageFlags usage /// Image usage flags
VkImageCreateFlags flags /// Image creation flags
VkSharingMode sharingMode /// Cross-queue-family sharing mode
- u32 queueFamilyCount /// Number of queue families to share across
+ u32 queueFamilyIndexCount /// Number of queue families to share across
const u32* pQueueFamilyIndices /// Array of queue family indices to share across
VkImageLayout initialLayout /// Initial image layout for all subresources
}
@@ -1492,13 +1504,13 @@
class VkDescriptorSetLayoutCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
const void* pNext /// Pointer to next structure
- u32 count /// Number of bindings in the descriptor set layout
- const VkDescriptorSetLayoutBinding* pBinding /// Array of descriptor set layout bindings
+ u32 bindingCount /// Number of bindings in the descriptor set layout
+ const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
}
class VkDescriptorTypeCount {
VkDescriptorType type
- u32 count
+ u32 descriptorCount
}
class VkDescriptorPoolCreateInfo {
@@ -1506,15 +1518,15 @@
const void* pNext /// Pointer to next structure
VkDescriptorPoolCreateFlags flags
u32 maxSets
- u32 count
- const VkDescriptorTypeCount* pTypeCount
+ u32 typeCount
+ const VkDescriptorTypeCount* pTypeCounts
}
class VkDescriptorSetAllocInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO
const void* pNext /// Pointer to next structure
VkDescriptorPool descriptorPool
- u32 count
+ u32 setCount
const VkDescriptorSetLayout* pSetLayouts
}
@@ -1562,11 +1574,11 @@
}
class VkPipelineVertexInputStateCreateInfo {
- VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
- const void* pNext /// Pointer to next structure
- u32 bindingCount /// number of bindings
+ VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
+ const void* pNext /// Pointer to next structure
+ u32 vertexBindingDescriptionCount /// number of bindings
const VkVertexInputBindingDescription* pVertexBindingDescriptions
- u32 attributeCount /// number of attributes
+ u32 vertexAttributeDescriptionCount /// number of attributes
const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
}
@@ -1702,14 +1714,14 @@
class VkPushConstantRange {
VkShaderStageFlags stageFlags /// Which stages use the range
- u32 start /// Start of the range, in bytes
- u32 length /// Length of the range, in bytes
+ u32 offset /// Start of the range, in bytes
+ u32 size /// Length of the range, in bytes
}
class VkPipelineLayoutCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
const void* pNext /// Pointer to next structure
- u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
+ u32 setLayoutCount /// Number of descriptor sets interfaced by the pipeline
const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
@@ -1746,7 +1758,7 @@
const void* pNext /// Pointer to next structure
VkCmdPool cmdPool
VkCmdBufferLevel level
- u32 count
+ u32 bufferCount
}
class VkCmdBufferBeginInfo {
@@ -1818,13 +1830,13 @@
const void* pNext /// Pointer to next structure
VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
VkSubpassDescriptionFlags flags
- u32 inputCount
+ u32 inputAttachmentCount
const VkAttachmentReference* pInputAttachments
- u32 colorCount
+ u32 colorAttachmentCount
const VkAttachmentReference* pColorAttachments
const VkAttachmentReference* pResolveAttachments
VkAttachmentReference depthStencilAttachment
- u32 preserveCount
+ u32 preserveAttachmentCount
const VkAttachmentReference* pPreserveAttachments
}
@@ -1879,7 +1891,6 @@
VkBool32 fillModeNonSolid /// point and wireframe fill modes
VkBool32 depthBounds /// depth bounds test
VkBool32 wideLines /// lines with width greater than 1
- VkBool32 strictLines
VkBool32 largePoints /// points with size greater than 1
VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
VkBool32 multiViewport
@@ -1988,7 +1999,6 @@
u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
u32 maxDrawIndirectInstanceCount /// max instance count for indirect draw calls
- VkBool32 primitiveRestartForPatches /// is primitive restart supported for PATCHES
f32 maxSamplerLodBias /// max absolute sampler level of detail bias
f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
@@ -2037,6 +2047,7 @@
f32[2] lineWidthRange /// range (min,max) of supported line widths
f32 pointSizeGranularity /// granularity of supported point sizes
f32 lineWidthGranularity /// granularity of supported line widths
+ VkBool32 strictLines
u32 recommendedBufferCopyOffsetAlignment
u32 recommendedBufferCopyRowPitchAlignment
@@ -2129,7 +2140,7 @@
VkSurfaceTransformKHR preTransform
u32 imageArraySize
VkSharingMode sharingMode
- u32 queueFamilyCount
+ u32 queueFamilyIndexCount
const u32* pQueueFamilyIndices
VkPresentModeKHR presentMode
VkSwapchainKHR oldSwapchain
@@ -2141,7 +2152,7 @@
VkStructureType sType
const void* pNext
u32 swapchainCount
- const VkSwapchainKHR* swapchains
+ const VkSwapchainKHR* pSwapchains
const u32* imageIndices
}
@@ -2242,7 +2253,17 @@
void* pUserData,
platform.size_t size,
platform.size_t alignment,
- VkSystemAllocType allocType) {
+ VkSystemAllocScope allocScope) {
+ return ?
+}
+
+@external type void* PFN_vkReallocFunction
+@pfn cmd void* vkReallocFunction(
+ void* pUserData,
+ void* pOriginal,
+ platform.size_t size,
+ platform.size_t alignment,
+ VkSystemAllocScope allocScope) {
return ?
}
@@ -2252,12 +2273,28 @@
void* pMem) {
}
+@external type void* PFN_vkInternalAllocNotification
+@pfn cmd void vkInternalAllocNotification(
+ void* pUserData,
+ platform.size_t size,
+ VkInternalAllocType allocType,
+ VkSystemAllocScope allocScope) {
+}
+
+@external type void* PFN_vkInternalFreeNotification
+@pfn cmd void vkInternalFreeNotification(
+ void* pUserData,
+ platform.size_t size,
+ VkInternalAllocType allocType,
+ VkSystemAllocScope allocScope) {
+}
// Global functions
@threadSafety("system")
cmd VkResult vkCreateInstance(
const VkInstanceCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkInstance* pInstance) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
@@ -2265,15 +2302,16 @@
pInstance[0] = instance
State.Instances[instance] = new!InstanceObject()
- layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.layerCount]
- extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.extensionCount]
+ layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerNameCount]
+ extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionNameCount]
return ?
}
@threadSafety("system")
cmd void vkDestroyInstance(
- VkInstance instance) {
+ VkInstance instance,
+ const VkAllocCallbacks* pAllocator) {
instanceObject := GetInstance(instance)
State.Instances[instance] = null
@@ -2332,7 +2370,7 @@
cmd void vkGetPhysicalDeviceQueueFamilyProperties(
VkPhysicalDevice physicalDevice,
- u32* pCount,
+ u32* pQueueFamilyPropertyCount,
VkQueueFamilyProperties* pQueueFamilyProperties) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
// TODO: Figure out how to express fetch-count-or-properties
@@ -2400,6 +2438,7 @@
cmd VkResult vkCreateDevice(
VkPhysicalDevice physicalDevice,
const VkDeviceCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkDevice* pDevice) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
@@ -2413,7 +2452,8 @@
@threadSafety("system")
cmd void vkDestroyDevice(
- VkDevice device) {
+ VkDevice device,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
State.Devices[device] = null
@@ -2423,10 +2463,10 @@
// Extension discovery functions
cmd VkResult vkEnumerateInstanceLayerProperties(
- u32* pCount,
+ u32* pPropertyCount,
VkLayerProperties* pProperties) {
count := as!u32(?)
- pCount[0] = count
+ pPropertyCount[0] = count
properties := pProperties[0:count]
for i in (0 .. count) {
@@ -2439,10 +2479,10 @@
cmd VkResult vkEnumerateInstanceExtensionProperties(
const char* pLayerName,
- u32* pCount,
+ u32* pPropertyCount,
VkExtensionProperties* pProperties) {
count := as!u32(?)
- pCount[0] = count
+ pPropertyCount[0] = count
properties := pProperties[0:count]
for i in (0 .. count) {
@@ -2455,11 +2495,11 @@
cmd VkResult vkEnumerateDeviceLayerProperties(
VkPhysicalDevice physicalDevice,
- u32* pCount,
+ u32* pPropertyCount,
VkLayerProperties* pProperties) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
count := as!u32(?)
- pCount[0] = count
+ pPropertyCount[0] = count
properties := pProperties[0:count]
for i in (0 .. count) {
@@ -2473,12 +2513,12 @@
cmd VkResult vkEnumerateDeviceExtensionProperties(
VkPhysicalDevice physicalDevice,
const char* pLayerName,
- u32* pCount,
+ u32* pPropertyCount,
VkExtensionProperties* pProperties) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
count := as!u32(?)
- pCount[0] = count
+ pPropertyCount[0] = count
properties := pProperties[0:count]
for i in (0 .. count) {
@@ -2557,6 +2597,7 @@
cmd VkResult vkAllocMemory(
VkDevice device,
const VkMemoryAllocInfo* pAllocInfo,
+ const VkAllocCallbacks* pAllocator,
VkDeviceMemory* pMem) {
assert(pAllocInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO)
deviceObject := GetDevice(device)
@@ -2573,7 +2614,8 @@
@threadSafety("system")
cmd void vkFreeMemory(
VkDevice device,
- VkDeviceMemory mem) {
+ VkDeviceMemory mem,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
memObject := GetDeviceMemory(mem)
assert(memObject.device == device)
@@ -2740,7 +2782,7 @@
cmd void vkGetImageSparseMemoryRequirements(
VkDevice device,
VkImage image,
- u32* pNumRequirements,
+ u32* pSparseMemoryRequirementCount,
VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
deviceObject := GetDevice(device)
imageObject := GetImage(image)
@@ -2754,7 +2796,7 @@
u32 samples,
VkImageUsageFlags usage,
VkImageTiling tiling,
- u32* pNumProperties,
+ u32* pPropertyCount,
VkSparseImageFormatProperties* pProperties) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
}
@@ -2762,7 +2804,7 @@
cmd VkResult vkQueueBindSparseBufferMemory(
VkQueue queue,
VkBuffer buffer,
- u32 numBindings,
+ u32 bindInfoCount,
const VkSparseMemoryBindInfo* pBindInfo) {
queueObject := GetQueue(queue)
bufferObject := GetBuffer(buffer)
@@ -2774,7 +2816,7 @@
cmd VkResult vkQueueBindSparseImageOpaqueMemory(
VkQueue queue,
VkImage image,
- u32 numBindings,
+ u32 bindInfoCount,
const VkSparseMemoryBindInfo* pBindInfo) {
queueObject := GetQueue(queue)
imageObject := GetImage(image)
@@ -2783,11 +2825,10 @@
return ?
}
-
cmd VkResult vkQueueBindSparseImageMemory(
VkQueue queue,
VkImage image,
- u32 numBindings,
+ u32 bindInfoCount,
const VkSparseImageMemoryBindInfo* pBindInfo) {
queueObject := GetQueue(queue)
imageObject := GetImage(image)
@@ -2802,6 +2843,7 @@
cmd VkResult vkCreateFence(
VkDevice device,
const VkFenceCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkFence* pFence) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -2817,7 +2859,8 @@
@threadSafety("system")
cmd void vkDestroyFence(
VkDevice device,
- VkFence fence) {
+ VkFence fence,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
fenceObject := GetFence(fence)
assert(fenceObject.device == device)
@@ -2880,6 +2923,7 @@
cmd VkResult vkCreateSemaphore(
VkDevice device,
const VkSemaphoreCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkSemaphore* pSemaphore) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -2894,7 +2938,8 @@
@threadSafety("system")
cmd void vkDestroySemaphore(
VkDevice device,
- VkSemaphore semaphore) {
+ VkSemaphore semaphore,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
semaphoreObject := GetSemaphore(semaphore)
assert(semaphoreObject.device == device)
@@ -2909,6 +2954,7 @@
cmd VkResult vkCreateEvent(
VkDevice device,
const VkEventCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkEvent* pEvent) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -2923,7 +2969,8 @@
@threadSafety("system")
cmd void vkDestroyEvent(
VkDevice device,
- VkEvent event) {
+ VkEvent event,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
eventObject := GetEvent(event)
assert(eventObject.device == device)
@@ -2971,6 +3018,7 @@
cmd VkResult vkCreateQueryPool(
VkDevice device,
const VkQueryPoolCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkQueryPool* pQueryPool) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -2985,7 +3033,8 @@
@threadSafety("system")
cmd void vkDestroyQueryPool(
VkDevice device,
- VkQueryPool queryPool) {
+ VkQueryPool queryPool,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
queryPoolObject := GetQueryPool(queryPool)
assert(queryPoolObject.device == device)
@@ -3018,6 +3067,7 @@
cmd VkResult vkCreateBuffer(
VkDevice device,
const VkBufferCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkBuffer* pBuffer) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3032,7 +3082,8 @@
@threadSafety("system")
cmd void vkDestroyBuffer(
VkDevice device,
- VkBuffer buffer) {
+ VkBuffer buffer,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
bufferObject := GetBuffer(buffer)
assert(bufferObject.device == device)
@@ -3048,6 +3099,7 @@
cmd VkResult vkCreateBufferView(
VkDevice device,
const VkBufferViewCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkBufferView* pView) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3065,7 +3117,8 @@
@threadSafety("system")
cmd void vkDestroyBufferView(
VkDevice device,
- VkBufferView bufferView) {
+ VkBufferView bufferView,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
bufferViewObject := GetBufferView(bufferView)
assert(bufferViewObject.device == device)
@@ -3080,6 +3133,7 @@
cmd VkResult vkCreateImage(
VkDevice device,
const VkImageCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkImage* pImage) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3094,7 +3148,8 @@
@threadSafety("system")
cmd void vkDestroyImage(
VkDevice device,
- VkImage image) {
+ VkImage image,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
imageObject := GetImage(image)
assert(imageObject.device == device)
@@ -3120,6 +3175,7 @@
cmd VkResult vkCreateImageView(
VkDevice device,
const VkImageViewCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkImageView* pView) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3137,7 +3193,8 @@
@threadSafety("system")
cmd void vkDestroyImageView(
VkDevice device,
- VkImageView imageView) {
+ VkImageView imageView,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
imageViewObject := GetImageView(imageView)
assert(imageViewObject.device == device)
@@ -3151,6 +3208,7 @@
cmd VkResult vkCreateShaderModule(
VkDevice device,
const VkShaderModuleCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkShaderModule* pShaderModule) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3164,7 +3222,8 @@
cmd void vkDestroyShaderModule(
VkDevice device,
- VkShaderModule shaderModule) {
+ VkShaderModule shaderModule,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
shaderModuleObject := GetShaderModule(shaderModule)
assert(shaderModuleObject.device == device)
@@ -3176,6 +3235,7 @@
cmd VkResult vkCreateShader(
VkDevice device,
const VkShaderCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkShader* pShader) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3190,7 +3250,8 @@
@threadSafety("system")
cmd void vkDestroyShader(
VkDevice device,
- VkShader shader) {
+ VkShader shader,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
shaderObject := GetShader(shader)
assert(shaderObject.device == device)
@@ -3204,6 +3265,7 @@
cmd VkResult vkCreatePipelineCache(
VkDevice device,
const VkPipelineCacheCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkPipelineCache* pPipelineCache) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3217,7 +3279,8 @@
cmd void vkDestroyPipelineCache(
VkDevice device,
- VkPipelineCache pipelineCache) {
+ VkPipelineCache pipelineCache,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
pipelineCacheObject := GetPipelineCache(pipelineCache)
assert(pipelineCacheObject.device == device)
@@ -3259,8 +3322,9 @@
cmd VkResult vkCreateGraphicsPipelines(
VkDevice device,
VkPipelineCache pipelineCache,
- u32 count,
+ u32 createInfoCount,
const VkGraphicsPipelineCreateInfo* pCreateInfos,
+ const VkAllocCallbacks* pAllocator,
VkPipeline* pPipelines) {
deviceObject := GetDevice(device)
if pipelineCache != NULL_HANDLE {
@@ -3268,9 +3332,9 @@
assert(pipelineCacheObject.device == device)
}
- createInfos := pCreateInfos[0:count]
- pipelines := pPipelines[0:count]
- for i in (0 .. count) {
+ createInfos := pCreateInfos[0:createInfoCount]
+ pipelines := pPipelines[0:createInfoCount]
+ for i in (0 .. createInfoCount) {
pipeline := ?
pipelines[i] = pipeline
State.Pipelines[pipeline] = new!PipelineObject(device: device)
@@ -3282,8 +3346,9 @@
cmd VkResult vkCreateComputePipelines(
VkDevice device,
VkPipelineCache pipelineCache,
- u32 count,
+ u32 createInfoCount,
const VkComputePipelineCreateInfo* pCreateInfos,
+ const VkAllocCallbacks* pAllocator,
VkPipeline* pPipelines) {
deviceObject := GetDevice(device)
if pipelineCache != NULL_HANDLE {
@@ -3291,9 +3356,9 @@
assert(pipelineCacheObject.device == device)
}
- createInfos := pCreateInfos[0:count]
- pipelines := pPipelines[0:count]
- for i in (0 .. count) {
+ createInfos := pCreateInfos[0:createInfoCount]
+ pipelines := pPipelines[0:createInfoCount]
+ for i in (0 .. createInfoCount) {
pipeline := ?
pipelines[i] = pipeline
State.Pipelines[pipeline] = new!PipelineObject(device: device)
@@ -3305,7 +3370,8 @@
@threadSafety("system")
cmd void vkDestroyPipeline(
VkDevice device,
- VkPipeline pipeline) {
+ VkPipeline pipeline,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
pipelineObjects := GetPipeline(pipeline)
assert(pipelineObjects.device == device)
@@ -3320,6 +3386,7 @@
cmd VkResult vkCreatePipelineLayout(
VkDevice device,
const VkPipelineLayoutCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkPipelineLayout* pPipelineLayout) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3334,7 +3401,8 @@
@threadSafety("system")
cmd void vkDestroyPipelineLayout(
VkDevice device,
- VkPipelineLayout pipelineLayout) {
+ VkPipelineLayout pipelineLayout,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
assert(pipelineLayoutObjects.device == device)
@@ -3349,6 +3417,7 @@
cmd VkResult vkCreateSampler(
VkDevice device,
const VkSamplerCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkSampler* pSampler) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3363,7 +3432,8 @@
@threadSafety("system")
cmd void vkDestroySampler(
VkDevice device,
- VkSampler sampler) {
+ VkSampler sampler,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
samplerObject := GetSampler(sampler)
assert(samplerObject.device == device)
@@ -3378,6 +3448,7 @@
cmd VkResult vkCreateDescriptorSetLayout(
VkDevice device,
const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkDescriptorSetLayout* pSetLayout) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3392,7 +3463,8 @@
@threadSafety("system")
cmd void vkDestroyDescriptorSetLayout(
VkDevice device,
- VkDescriptorSetLayout descriptorSetLayout) {
+ VkDescriptorSetLayout descriptorSetLayout,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
assert(descriptorSetLayoutObject.device == device)
@@ -3403,7 +3475,8 @@
@threadSafety("system")
cmd VkResult vkCreateDescriptorPool(
VkDevice device,
- const VkDescriptorPoolCreateInfo* pCreateInfo
+ const VkDescriptorPoolCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkDescriptorPool* pDescriptorPool) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3418,7 +3491,8 @@
@threadSafety("system")
cmd void vkDestroyDescriptorPool(
VkDevice device,
- VkDescriptorPool descriptorPool) {
+ VkDescriptorPool descriptorPool,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
descriptorPoolObject := GetDescriptorPool(descriptorPool)
assert(descriptorPoolObject.device == device)
@@ -3447,15 +3521,15 @@
allocInfo := pAllocInfo[0]
descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
- setLayouts := allocInfo.pSetLayouts[0:allocInfo.count]
- for i in (0 .. allocInfo.count) {
+ setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
+ for i in (0 .. allocInfo.setCount) {
setLayout := setLayouts[i]
setLayoutObject := GetDescriptorSetLayout(setLayout)
assert(setLayoutObject.device == device)
}
- descriptorSets := pDescriptorSets[0:allocInfo.count]
- for i in (0 .. allocInfo.count) {
+ descriptorSets := pDescriptorSets[0:allocInfo.setCount]
+ for i in (0 .. allocInfo.setCount) {
descriptorSet := ?
descriptorSets[i] = descriptorSet
State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
@@ -3467,13 +3541,13 @@
cmd VkResult vkFreeDescriptorSets(
VkDevice device,
VkDescriptorPool descriptorPool,
- u32 count,
+ u32 descriptorSetCount,
const VkDescriptorSet* pDescriptorSets) {
deviceObject := GetDevice(device)
descriptorPoolObject := GetDescriptorPool(descriptorPool)
- descriptorSets := pDescriptorSets[0:count]
- for i in (0 .. count) {
+ descriptorSets := pDescriptorSets[0:descriptorSetCount]
+ for i in (0 .. descriptorSetCount) {
descriptorSet := descriptorSets[i]
descriptorSetObject := GetDescriptorSet(descriptorSet)
assert(descriptorSetObject.device == device)
@@ -3513,6 +3587,7 @@
cmd VkResult vkCreateFramebuffer(
VkDevice device,
const VkFramebufferCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkFramebuffer* pFramebuffer) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3527,7 +3602,8 @@
@threadSafety("system")
cmd void vkDestroyFramebuffer(
VkDevice device,
- VkFramebuffer framebuffer) {
+ VkFramebuffer framebuffer,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
framebufferObject := GetFramebuffer(framebuffer)
assert(framebufferObject.device == device)
@@ -3542,6 +3618,7 @@
cmd VkResult vkCreateRenderPass(
VkDevice device,
const VkRenderPassCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkRenderPass* pRenderPass) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3556,7 +3633,8 @@
@threadSafety("system")
cmd void vkDestroyRenderPass(
VkDevice device,
- VkRenderPass renderPass) {
+ VkRenderPass renderPass,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
renderPassObject := GetRenderPass(renderPass)
assert(renderPassObject.device == device)
@@ -3580,6 +3658,7 @@
cmd VkResult vkCreateCommandPool(
VkDevice device,
const VkCmdPoolCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkCmdPool* pCmdPool) {
assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO)
deviceObject := GetDevice(device)
@@ -3593,7 +3672,8 @@
cmd void vkDestroyCommandPool(
VkDevice device,
- VkCmdPool cmdPool) {
+ VkCmdPool cmdPool,
+ const VkAllocCallbacks* pAllocator) {
deviceObject := GetDevice(device)
cmdPoolObject := GetCmdPool(cmdPool)
assert(cmdPoolObject.device == device)
@@ -3637,7 +3717,7 @@
VkCmdBuffer* pCmdBuffers) {
assert(pAllocInfo[0].sType == VK_STRUCTURE_TYPE_CMD_BUFFER_ALLOC_INFO)
- count := pAllocInfo[0].count
+ count := pAllocInfo[0].bufferCount
cmdBuffers := pCmdBuffers[0:count]
for i in (0 .. count) {
cmdBuffer := ?
@@ -3652,12 +3732,12 @@
cmd void vkFreeCommandBuffers(
VkDevice device,
VkCmdPool cmdPool,
- u32 count,
+ u32 commandBufferCount,
const VkCmdBuffer* pCommandBuffers) {
deviceObject := GetDevice(device)
- cmdBuffers := pCommandBuffers[0:count]
- for i in (0 .. count) {
+ cmdBuffers := pCommandBuffers[0:commandBufferCount]
+ for i in (0 .. commandBufferCount) {
cmdBufferObject := GetCmdBuffer(cmdBuffers[i])
assert(cmdBufferObject.device == device)
// TODO: iterate over boundObjects and clear memory bindings
@@ -3804,14 +3884,14 @@
VkPipelineBindPoint pipelineBindPoint,
VkPipelineLayout layout,
u32 firstSet,
- u32 setCount,
+ u32 descriptorSetCount,
const VkDescriptorSet* pDescriptorSets,
u32 dynamicOffsetCount,
const u32* pDynamicOffsets) {
cmdBufferObject := GetCmdBuffer(cmdBuffer)
- descriptorSets := pDescriptorSets[0:setCount]
- for i in (0 .. setCount) {
+ descriptorSets := pDescriptorSets[0:descriptorSetCount]
+ for i in (0 .. descriptorSetCount) {
descriptorSet := descriptorSets[i]
descriptorSetObject := GetDescriptorSet(descriptorSet)
assert(cmdBufferObject.device == descriptorSetObject.device)
@@ -3898,7 +3978,7 @@
VkCmdBuffer cmdBuffer,
VkBuffer buffer,
VkDeviceSize offset,
- u32 count,
+ u32 drawCount,
u32 stride) {
cmdBufferObject := GetCmdBuffer(cmdBuffer)
bufferObject := GetBuffer(buffer)
@@ -3914,7 +3994,7 @@
VkCmdBuffer cmdBuffer,
VkBuffer buffer,
VkDeviceSize offset,
- u32 count,
+ u32 drawCount,
u32 stride) {
cmdBufferObject := GetCmdBuffer(cmdBuffer)
bufferObject := GetBuffer(buffer)
@@ -4348,8 +4428,8 @@
VkCmdBuffer cmdBuffer,
VkPipelineLayout layout,
VkShaderStageFlags stageFlags,
- u32 start,
- u32 length,
+ u32 offset,
+ u32 size,
const void* values) {
cmdBufferObject := GetCmdBuffer(cmdBuffer)
layoutObject := GetPipelineLayout(layout)
@@ -4438,12 +4518,12 @@
cmd VkResult vkGetSurfaceFormatsKHR(
VkDevice device,
VkSurfaceKHR surface,
- u32* pCount,
+ u32* pSurfaceFormatCount,
VkSurfaceFormatKHR* pSurfaceFormats) {
deviceObject := GetDevice(device)
count := as!u32(?)
- pCount[0] = count
+ pSurfaceFormatCount[0] = count
surfaceFormats := pSurfaceFormats[0:count]
for i in (0 .. count) {
@@ -4458,12 +4538,12 @@
cmd VkResult vkGetSurfacePresentModesKHR(
VkDevice device,
VkSurfaceKHR surface,
- u32* pCount,
+ u32* pPresentModeCount,
VkPresentModeKHR* pPresentModes) {
deviceObject := GetDevice(device)
count := as!u32(?)
- pCount[0] = count
+ pPresentModeCount[0] = count
presentModes := pPresentModes[0:count]
for i in (0 .. count) {
@@ -4504,12 +4584,12 @@
cmd VkResult vkGetSwapchainImagesKHR(
VkDevice device,
VkSwapchainKHR swapchain,
- u32* pCount,
+ u32* pSwapchainImageCount,
VkImage* pSwapchainImages) {
deviceObject := GetDevice(device)
count := as!u32(?)
- pCount[0] = count
+ pSwapchainImageCount[0] = count
swapchainImages := pSwapchainImages[0:count]
for i in (0 .. count) {
@@ -4553,7 +4633,7 @@
@extension("VK_EXT_KHR_display")
cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
VkPhysicalDevice physicalDevice,
- u32* count,
+ u32* pPropertyCount,
VkDisplayPropertiesKHR* pProperties) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
return ?
@@ -4563,8 +4643,8 @@
cmd VkResult vkGetDisplayModePropertiesKHR(
VkPhysicalDevice physicalDevice,
VkDisplayKHR display,
- u32* pCount,
- VkDisplayModePropertiesKHR* pModeProperties) {
+ u32* pPropertyCount,
+ VkDisplayModePropertiesKHR* pProperties) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
return ?
}
diff --git a/vulkan/include/vulkan/vulkan.h b/vulkan/include/vulkan/vulkan.h
index ca2ff85..d061988 100644
--- a/vulkan/include/vulkan/vulkan.h
+++ b/vulkan/include/vulkan/vulkan.h
@@ -41,7 +41,7 @@
((major << 22) | (minor << 12) | patch)
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 186, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 188, 0)
#define VK_NULL_HANDLE 0
@@ -179,23 +179,34 @@
VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 45,
VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 46,
VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO = 47,
+ VK_STRUCTURE_TYPE_SUBMIT_INFO = 48,
+ VK_STRUCTURE_TYPE_LAYER_INSTANCE_CREATE_INFO = 49,
+ VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO = 50,
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
- VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO,
- VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOC_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
+ VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO,
+ VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_LAYER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkStructureType;
typedef enum {
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT = 0,
- VK_SYSTEM_ALLOC_TYPE_INTERNAL = 1,
- VK_SYSTEM_ALLOC_TYPE_INTERNAL_TEMP = 2,
- VK_SYSTEM_ALLOC_TYPE_INTERNAL_SHADER = 3,
- VK_SYSTEM_ALLOC_TYPE_DEBUG = 4,
- VK_SYSTEM_ALLOC_TYPE_BEGIN_RANGE = VK_SYSTEM_ALLOC_TYPE_API_OBJECT,
- VK_SYSTEM_ALLOC_TYPE_END_RANGE = VK_SYSTEM_ALLOC_TYPE_DEBUG,
- VK_SYSTEM_ALLOC_TYPE_NUM = (VK_SYSTEM_ALLOC_TYPE_DEBUG - VK_SYSTEM_ALLOC_TYPE_API_OBJECT + 1),
- VK_SYSTEM_ALLOC_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkSystemAllocType;
+ VK_SYSTEM_ALLOC_SCOPE_FUNCTION = 0,
+ VK_SYSTEM_ALLOC_SCOPE_OBJECT = 1,
+ VK_SYSTEM_ALLOC_SCOPE_CACHE = 2,
+ VK_SYSTEM_ALLOC_SCOPE_DEVICE = 3,
+ VK_SYSTEM_ALLOC_SCOPE_INSTANCE = 4,
+ VK_SYSTEM_ALLOC_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOC_SCOPE_FUNCTION,
+ VK_SYSTEM_ALLOC_SCOPE_END_RANGE = VK_SYSTEM_ALLOC_SCOPE_INSTANCE,
+ VK_SYSTEM_ALLOC_SCOPE_NUM = (VK_SYSTEM_ALLOC_SCOPE_INSTANCE - VK_SYSTEM_ALLOC_SCOPE_FUNCTION + 1),
+ VK_SYSTEM_ALLOC_SCOPE_MAX_ENUM = 0x7FFFFFFF
+} VkSystemAllocScope;
+
+typedef enum {
+ VK_INTERNAL_ALLOC_TYPE_EXECUTABLE = 0,
+ VK_INTERNAL_ALLOC_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOC_TYPE_EXECUTABLE,
+ VK_INTERNAL_ALLOC_TYPE_END_RANGE = VK_INTERNAL_ALLOC_TYPE_EXECUTABLE,
+ VK_INTERNAL_ALLOC_TYPE_NUM = (VK_INTERNAL_ALLOC_TYPE_EXECUTABLE - VK_INTERNAL_ALLOC_TYPE_EXECUTABLE + 1),
+ VK_INTERNAL_ALLOC_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkInternalAllocType;
typedef enum {
VK_FORMAT_UNDEFINED = 0,
@@ -1020,15 +1031,34 @@
typedef VkFlags VkQueryControlFlags;
typedef void* (VKAPI *PFN_vkAllocFunction)(
- void* pUserData,
- size_t size,
- size_t alignment,
- VkSystemAllocType allocType);
+ void* pUserData,
+ size_t size,
+ size_t alignment,
+ VkSystemAllocScope allocScope);
+
+typedef void* (VKAPI *PFN_vkReallocFunction)(
+ void* pUserData,
+ void* pOriginal,
+ size_t size,
+ size_t alignment,
+ VkSystemAllocScope allocScope);
typedef void (VKAPI *PFN_vkFreeFunction)(
void* pUserData,
void* pMem);
+typedef void (VKAPI *PFN_vkInternalAllocNotification)(
+ void* pUserData,
+ size_t size,
+ VkInternalAllocType allocType,
+ VkSystemAllocScope allocScope);
+
+typedef void (VKAPI *PFN_vkInternalFreeNotification)(
+ void* pUserData,
+ size_t size,
+ VkInternalAllocType allocType,
+ VkSystemAllocScope allocScope);
+
typedef void (VKAPI *PFN_vkVoidFunction)(void);
typedef struct {
@@ -1042,23 +1072,25 @@
} VkApplicationInfo;
typedef struct {
- void* pUserData;
- PFN_vkAllocFunction pfnAlloc;
- PFN_vkFreeFunction pfnFree;
-} VkAllocCallbacks;
-
-typedef struct {
VkStructureType sType;
const void* pNext;
const VkApplicationInfo* pAppInfo;
- const VkAllocCallbacks* pAllocCb;
- uint32_t layerCount;
+ uint32_t enabledLayerNameCount;
const char*const* ppEnabledLayerNames;
- uint32_t extensionCount;
+ uint32_t enabledExtensionNameCount;
const char*const* ppEnabledExtensionNames;
} VkInstanceCreateInfo;
typedef struct {
+ void* pUserData;
+ PFN_vkAllocFunction pfnAlloc;
+ PFN_vkReallocFunction pfnRealloc;
+ PFN_vkFreeFunction pfnFree;
+ PFN_vkInternalAllocNotification pfnInternalAlloc;
+ PFN_vkInternalFreeNotification pfnInternalFree;
+} VkAllocCallbacks;
+
+typedef struct {
VkBool32 robustBufferAccess;
VkBool32 fullDrawIndexUint32;
VkBool32 imageCubeArray;
@@ -1074,7 +1106,6 @@
VkBool32 fillModeNonSolid;
VkBool32 depthBounds;
VkBool32 wideLines;
- VkBool32 strictLines;
VkBool32 largePoints;
VkBool32 alphaToOne;
VkBool32 multiViewport;
@@ -1193,7 +1224,6 @@
uint32_t mipmapPrecisionBits;
uint32_t maxDrawIndexedIndexValue;
uint32_t maxDrawIndirectInstanceCount;
- VkBool32 primitiveRestartForPatches;
float maxSamplerLodBias;
float maxSamplerAnisotropy;
uint32_t maxViewports;
@@ -1232,6 +1262,7 @@
float lineWidthRange[2];
float pointSizeGranularity;
float lineWidthGranularity;
+ VkBool32 strictLines;
uint32_t recommendedBufferCopyOffsetAlignment;
uint32_t recommendedBufferCopyRowPitchAlignment;
} VkPhysicalDeviceLimits;
@@ -1284,7 +1315,7 @@
VkStructureType sType;
const void* pNext;
uint32_t queueFamilyIndex;
- uint32_t queueCount;
+ uint32_t queuePriorityCount;
const float* pQueuePriorities;
} VkDeviceQueueCreateInfo;
@@ -1293,9 +1324,9 @@
const void* pNext;
uint32_t requestedQueueCount;
const VkDeviceQueueCreateInfo* pRequestedQueues;
- uint32_t layerCount;
+ uint32_t enabledLayerNameCount;
const char*const* ppEnabledLayerNames;
- uint32_t extensionCount;
+ uint32_t enabledExtensionNameCount;
const char*const* ppEnabledExtensionNames;
const VkPhysicalDeviceFeatures* pEnabledFeatures;
} VkDeviceCreateInfo;
@@ -1313,11 +1344,13 @@
} VkLayerProperties;
typedef struct {
- uint32_t waitSemCount;
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t waitSemaphoreCount;
const VkSemaphore* pWaitSemaphores;
- uint32_t cmdBufferCount;
+ uint32_t commandBufferCount;
const VkCmdBuffer* pCommandBuffers;
- uint32_t signalSemCount;
+ uint32_t signalSemaphoreCount;
const VkSemaphore* pSignalSemaphores;
} VkSubmitInfo;
@@ -1418,7 +1451,7 @@
VkBufferUsageFlags usage;
VkBufferCreateFlags flags;
VkSharingMode sharingMode;
- uint32_t queueFamilyCount;
+ uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
} VkBufferCreateInfo;
@@ -1444,7 +1477,7 @@
VkImageUsageFlags usage;
VkImageCreateFlags flags;
VkSharingMode sharingMode;
- uint32_t queueFamilyCount;
+ uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
VkImageLayout initialLayout;
} VkImageCreateInfo;
@@ -1543,9 +1576,9 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- uint32_t bindingCount;
+ uint32_t vertexBindingDescriptionCount;
const VkVertexInputBindingDescription* pVertexBindingDescriptions;
- uint32_t attributeCount;
+ uint32_t vertexAttributeDescriptionCount;
const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
} VkPipelineVertexInputStateCreateInfo;
@@ -1707,14 +1740,14 @@
typedef struct {
VkShaderStageFlags stageFlags;
- uint32_t start;
- uint32_t length;
+ uint32_t offset;
+ uint32_t size;
} VkPushConstantRange;
typedef struct {
VkStructureType sType;
const void* pNext;
- uint32_t descriptorSetCount;
+ uint32_t setLayoutCount;
const VkDescriptorSetLayout* pSetLayouts;
uint32_t pushConstantRangeCount;
const VkPushConstantRange* pPushConstantRanges;
@@ -1749,13 +1782,13 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- uint32_t count;
- const VkDescriptorSetLayoutBinding* pBinding;
+ uint32_t bindingCount;
+ const VkDescriptorSetLayoutBinding* pBindings;
} VkDescriptorSetLayoutCreateInfo;
typedef struct {
VkDescriptorType type;
- uint32_t count;
+ uint32_t descriptorCount;
} VkDescriptorTypeCount;
typedef struct {
@@ -1763,15 +1796,15 @@
const void* pNext;
VkDescriptorPoolCreateFlags flags;
uint32_t maxSets;
- uint32_t count;
- const VkDescriptorTypeCount* pTypeCount;
+ uint32_t typeCount;
+ const VkDescriptorTypeCount* pTypeCounts;
} VkDescriptorPoolCreateInfo;
typedef struct {
VkStructureType sType;
const void* pNext;
VkDescriptorPool descriptorPool;
- uint32_t count;
+ uint32_t setLayoutCount;
const VkDescriptorSetLayout* pSetLayouts;
} VkDescriptorSetAllocInfo;
@@ -1793,7 +1826,7 @@
VkDescriptorSet destSet;
uint32_t destBinding;
uint32_t destArrayElement;
- uint32_t count;
+ uint32_t descriptorCount;
VkDescriptorType descriptorType;
const VkDescriptorImageInfo* pImageInfo;
const VkDescriptorBufferInfo* pBufferInfo;
@@ -1809,7 +1842,7 @@
VkDescriptorSet destSet;
uint32_t destBinding;
uint32_t destArrayElement;
- uint32_t count;
+ uint32_t descriptorCount;
} VkCopyDescriptorSet;
typedef struct {
@@ -1847,13 +1880,13 @@
const void* pNext;
VkPipelineBindPoint pipelineBindPoint;
VkSubpassDescriptionFlags flags;
- uint32_t inputCount;
+ uint32_t inputAttachmentCount;
const VkAttachmentReference* pInputAttachments;
- uint32_t colorCount;
+ uint32_t colorAttachmentCount;
const VkAttachmentReference* pColorAttachments;
const VkAttachmentReference* pResolveAttachments;
VkAttachmentReference depthStencilAttachment;
- uint32_t preserveCount;
+ uint32_t preserveAttachmentCount;
const VkAttachmentReference* pPreserveAttachments;
} VkSubpassDescription;
@@ -1892,7 +1925,7 @@
const void* pNext;
VkCmdPool cmdPool;
VkCmdBufferLevel level;
- uint32_t count;
+ uint32_t bufferCount;
} VkCmdBufferAllocInfo;
typedef struct {
@@ -2043,29 +2076,29 @@
} VkMemoryBarrier;
-typedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance);
-typedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance);
+typedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkInstance* pInstance);
+typedef void (VKAPI *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
typedef void (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
typedef void (VKAPI *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
typedef void (VKAPI *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
typedef void (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
-typedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkQueueFamilyProperties* pQueueFamilyProperties);
+typedef void (VKAPI *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
typedef void (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
-typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
-typedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
-typedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
-typedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
-typedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pCount, VkLayerProperties* pProperties);
-typedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties);
+typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDevice* pDevice);
+typedef void (VKAPI *PFN_vkDestroyDevice)(VkDevice device, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
+typedef VkResult (VKAPI *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
+typedef VkResult (VKAPI *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
+typedef VkResult (VKAPI *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
typedef void (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
typedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
typedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
-typedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
-typedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem);
+typedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, const VkAllocCallbacks* pAllocator, VkDeviceMemory* pMem);
+typedef void (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
typedef void (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory mem);
typedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
@@ -2075,68 +2108,68 @@
typedef VkResult (VKAPI *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory mem, VkDeviceSize memOffset);
typedef void (VKAPI *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
typedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
-typedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
-typedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties);
-typedef VkResult (VKAPI *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
-typedef VkResult (VKAPI *PFN_vkQueueBindSparseImageOpaqueMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
-typedef VkResult (VKAPI *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo);
-typedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
-typedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence);
+typedef void (VKAPI *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
+typedef void (VKAPI *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
+typedef VkResult (VKAPI *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, uint32_t bindInfoCount, const VkSparseMemoryBindInfo* pBindInfo);
+typedef VkResult (VKAPI *PFN_vkQueueBindSparseImageOpaqueMemory)(VkQueue queue, VkImage image, uint32_t bindInfoCount, const VkSparseMemoryBindInfo* pBindInfo);
+typedef VkResult (VKAPI *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, uint32_t bindInfoCount, const VkSparseImageMemoryBindInfo* pBindInfo);
+typedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkFence* pFence);
+typedef void (VKAPI *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
typedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
typedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
-typedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore);
-typedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore);
-typedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent);
-typedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event);
+typedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkSemaphore* pSemaphore);
+typedef void (VKAPI *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkEvent* pEvent);
+typedef void (VKAPI *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
typedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
typedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
-typedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
-typedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool);
+typedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkQueryPool* pQueryPool);
+typedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
-typedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
-typedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer);
-typedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
-typedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView);
-typedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage);
-typedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image);
+typedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkBuffer* pBuffer);
+typedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkBufferView* pView);
+typedef void (VKAPI *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkImage* pImage);
+typedef void (VKAPI *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocCallbacks* pAllocator);
typedef void (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
-typedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView);
-typedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView);
-typedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule);
-typedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule);
-typedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader);
-typedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader);
-typedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
-typedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache);
+typedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkImageView* pView);
+typedef void (VKAPI *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkShaderModule* pShaderModule);
+typedef void (VKAPI *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkShader* pShader);
+typedef void (VKAPI *PFN_vkDestroyShader)(VkDevice device, VkShader shader, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
+typedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
typedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
-typedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
-typedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
-typedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline);
-typedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
-typedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout);
-typedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
-typedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler);
-typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
-typedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
-typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
-typedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
+typedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef void (VKAPI *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
+typedef void (VKAPI *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkSampler* pSampler);
+typedef void (VKAPI *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
+typedef void (VKAPI *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
+typedef void (VKAPI *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
typedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
-typedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
+typedef VkResult (VKAPI *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
typedef void (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
-typedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
-typedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer);
-typedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass);
-typedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass);
+typedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
+typedef void (VKAPI *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocCallbacks* pAllocator);
+typedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkRenderPass* pRenderPass);
+typedef void (VKAPI *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocCallbacks* pAllocator);
typedef void (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
-typedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
-typedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool);
+typedef VkResult (VKAPI *PFN_vkCreateCommandPool)(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkCmdPool* pCmdPool);
+typedef void (VKAPI *PFN_vkDestroyCommandPool)(VkDevice device, VkCmdPool cmdPool, const VkAllocCallbacks* pAllocator);
typedef VkResult (VKAPI *PFN_vkResetCommandPool)(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
typedef VkResult (VKAPI *PFN_vkAllocCommandBuffers)(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
-typedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers);
+typedef void (VKAPI *PFN_vkFreeCommandBuffers)(VkDevice device, VkCmdPool cmdPool, uint32_t commandBufferCount, const VkCmdBuffer* pCommandBuffers);
typedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
typedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer, VkCmdBufferResetFlags flags);
@@ -2150,13 +2183,13 @@
typedef void (VKAPI *PFN_vkCmdSetStencilCompareMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask);
typedef void (VKAPI *PFN_vkCmdSetStencilWriteMask)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask);
typedef void (VKAPI *PFN_vkCmdSetStencilReference)(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference);
-typedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
+typedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
typedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
typedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
typedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
typedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
-typedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
-typedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
+typedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
+typedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
typedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
typedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset);
typedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
@@ -2179,7 +2212,7 @@
typedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
typedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot);
typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize stride, VkQueryResultFlags flags);
-typedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values);
+typedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values);
typedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
typedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
typedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer);
@@ -2188,10 +2221,12 @@
#ifdef VK_PROTOTYPES
VkResult VKAPI vkCreateInstance(
const VkInstanceCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkInstance* pInstance);
void VKAPI vkDestroyInstance(
- VkInstance instance);
+ VkInstance instance,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkEnumeratePhysicalDevices(
VkInstance instance,
@@ -2222,7 +2257,7 @@
void VKAPI vkGetPhysicalDeviceQueueFamilyProperties(
VkPhysicalDevice physicalDevice,
- uint32_t* pCount,
+ uint32_t* pQueueFamilyPropertyCount,
VkQueueFamilyProperties* pQueueFamilyProperties);
void VKAPI vkGetPhysicalDeviceMemoryProperties(
@@ -2240,29 +2275,31 @@
VkResult VKAPI vkCreateDevice(
VkPhysicalDevice physicalDevice,
const VkDeviceCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkDevice* pDevice);
void VKAPI vkDestroyDevice(
- VkDevice device);
+ VkDevice device,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkEnumerateInstanceExtensionProperties(
const char* pLayerName,
- uint32_t* pCount,
+ uint32_t* pPropertyCount,
VkExtensionProperties* pProperties);
VkResult VKAPI vkEnumerateDeviceExtensionProperties(
VkPhysicalDevice physicalDevice,
const char* pLayerName,
- uint32_t* pCount,
+ uint32_t* pPropertyCount,
VkExtensionProperties* pProperties);
VkResult VKAPI vkEnumerateInstanceLayerProperties(
- uint32_t* pCount,
+ uint32_t* pPropertyCount,
VkLayerProperties* pProperties);
VkResult VKAPI vkEnumerateDeviceLayerProperties(
VkPhysicalDevice physicalDevice,
- uint32_t* pCount,
+ uint32_t* pPropertyCount,
VkLayerProperties* pProperties);
void VKAPI vkGetDeviceQueue(
@@ -2286,11 +2323,13 @@
VkResult VKAPI vkAllocMemory(
VkDevice device,
const VkMemoryAllocInfo* pAllocInfo,
+ const VkAllocCallbacks* pAllocator,
VkDeviceMemory* pMem);
void VKAPI vkFreeMemory(
VkDevice device,
- VkDeviceMemory mem);
+ VkDeviceMemory mem,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkMapMemory(
VkDevice device,
@@ -2344,7 +2383,7 @@
void VKAPI vkGetImageSparseMemoryRequirements(
VkDevice device,
VkImage image,
- uint32_t* pNumRequirements,
+ uint32_t* pSparseMemoryRequirementCount,
VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
void VKAPI vkGetPhysicalDeviceSparseImageFormatProperties(
@@ -2354,35 +2393,37 @@
uint32_t samples,
VkImageUsageFlags usage,
VkImageTiling tiling,
- uint32_t* pNumProperties,
+ uint32_t* pPropertyCount,
VkSparseImageFormatProperties* pProperties);
VkResult VKAPI vkQueueBindSparseBufferMemory(
VkQueue queue,
VkBuffer buffer,
- uint32_t numBindings,
+ uint32_t bindInfoCount,
const VkSparseMemoryBindInfo* pBindInfo);
VkResult VKAPI vkQueueBindSparseImageOpaqueMemory(
VkQueue queue,
VkImage image,
- uint32_t numBindings,
+ uint32_t bindInfoCount,
const VkSparseMemoryBindInfo* pBindInfo);
VkResult VKAPI vkQueueBindSparseImageMemory(
VkQueue queue,
VkImage image,
- uint32_t numBindings,
+ uint32_t bindInfoCount,
const VkSparseImageMemoryBindInfo* pBindInfo);
VkResult VKAPI vkCreateFence(
VkDevice device,
const VkFenceCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkFence* pFence);
void VKAPI vkDestroyFence(
VkDevice device,
- VkFence fence);
+ VkFence fence,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkResetFences(
VkDevice device,
@@ -2403,20 +2444,24 @@
VkResult VKAPI vkCreateSemaphore(
VkDevice device,
const VkSemaphoreCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkSemaphore* pSemaphore);
void VKAPI vkDestroySemaphore(
VkDevice device,
- VkSemaphore semaphore);
+ VkSemaphore semaphore,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateEvent(
VkDevice device,
const VkEventCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkEvent* pEvent);
void VKAPI vkDestroyEvent(
VkDevice device,
- VkEvent event);
+ VkEvent event,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkGetEventStatus(
VkDevice device,
@@ -2433,11 +2478,13 @@
VkResult VKAPI vkCreateQueryPool(
VkDevice device,
const VkQueryPoolCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkQueryPool* pQueryPool);
void VKAPI vkDestroyQueryPool(
VkDevice device,
- VkQueryPool queryPool);
+ VkQueryPool queryPool,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkGetQueryPoolResults(
VkDevice device,
@@ -2452,29 +2499,35 @@
VkResult VKAPI vkCreateBuffer(
VkDevice device,
const VkBufferCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkBuffer* pBuffer);
void VKAPI vkDestroyBuffer(
VkDevice device,
- VkBuffer buffer);
+ VkBuffer buffer,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateBufferView(
VkDevice device,
const VkBufferViewCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkBufferView* pView);
void VKAPI vkDestroyBufferView(
VkDevice device,
- VkBufferView bufferView);
+ VkBufferView bufferView,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateImage(
VkDevice device,
const VkImageCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkImage* pImage);
void VKAPI vkDestroyImage(
VkDevice device,
- VkImage image);
+ VkImage image,
+ const VkAllocCallbacks* pAllocator);
void VKAPI vkGetImageSubresourceLayout(
VkDevice device,
@@ -2485,38 +2538,46 @@
VkResult VKAPI vkCreateImageView(
VkDevice device,
const VkImageViewCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkImageView* pView);
void VKAPI vkDestroyImageView(
VkDevice device,
- VkImageView imageView);
+ VkImageView imageView,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateShaderModule(
VkDevice device,
const VkShaderModuleCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkShaderModule* pShaderModule);
void VKAPI vkDestroyShaderModule(
VkDevice device,
- VkShaderModule shaderModule);
+ VkShaderModule shaderModule,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateShader(
VkDevice device,
const VkShaderCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkShader* pShader);
void VKAPI vkDestroyShader(
VkDevice device,
- VkShader shader);
+ VkShader shader,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreatePipelineCache(
VkDevice device,
const VkPipelineCacheCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkPipelineCache* pPipelineCache);
void VKAPI vkDestroyPipelineCache(
VkDevice device,
- VkPipelineCache pipelineCache);
+ VkPipelineCache pipelineCache,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkGetPipelineCacheData(
VkDevice device,
@@ -2533,56 +2594,67 @@
VkResult VKAPI vkCreateGraphicsPipelines(
VkDevice device,
VkPipelineCache pipelineCache,
- uint32_t count,
+ uint32_t createInfoCount,
const VkGraphicsPipelineCreateInfo* pCreateInfos,
+ const VkAllocCallbacks* pAllocator,
VkPipeline* pPipelines);
VkResult VKAPI vkCreateComputePipelines(
VkDevice device,
VkPipelineCache pipelineCache,
- uint32_t count,
+ uint32_t createInfoCount,
const VkComputePipelineCreateInfo* pCreateInfos,
+ const VkAllocCallbacks* pAllocator,
VkPipeline* pPipelines);
void VKAPI vkDestroyPipeline(
VkDevice device,
- VkPipeline pipeline);
+ VkPipeline pipeline,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreatePipelineLayout(
VkDevice device,
const VkPipelineLayoutCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkPipelineLayout* pPipelineLayout);
void VKAPI vkDestroyPipelineLayout(
VkDevice device,
- VkPipelineLayout pipelineLayout);
+ VkPipelineLayout pipelineLayout,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateSampler(
VkDevice device,
const VkSamplerCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkSampler* pSampler);
void VKAPI vkDestroySampler(
VkDevice device,
- VkSampler sampler);
+ VkSampler sampler,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateDescriptorSetLayout(
VkDevice device,
const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkDescriptorSetLayout* pSetLayout);
void VKAPI vkDestroyDescriptorSetLayout(
VkDevice device,
- VkDescriptorSetLayout descriptorSetLayout);
+ VkDescriptorSetLayout descriptorSetLayout,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateDescriptorPool(
VkDevice device,
const VkDescriptorPoolCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkDescriptorPool* pDescriptorPool);
void VKAPI vkDestroyDescriptorPool(
VkDevice device,
- VkDescriptorPool descriptorPool);
+ VkDescriptorPool descriptorPool,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkResetDescriptorPool(
VkDevice device,
@@ -2597,7 +2669,7 @@
VkResult VKAPI vkFreeDescriptorSets(
VkDevice device,
VkDescriptorPool descriptorPool,
- uint32_t count,
+ uint32_t descriptorSetCount,
const VkDescriptorSet* pDescriptorSets);
void VKAPI vkUpdateDescriptorSets(
@@ -2610,20 +2682,24 @@
VkResult VKAPI vkCreateFramebuffer(
VkDevice device,
const VkFramebufferCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkFramebuffer* pFramebuffer);
void VKAPI vkDestroyFramebuffer(
VkDevice device,
- VkFramebuffer framebuffer);
+ VkFramebuffer framebuffer,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkCreateRenderPass(
VkDevice device,
const VkRenderPassCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkRenderPass* pRenderPass);
void VKAPI vkDestroyRenderPass(
VkDevice device,
- VkRenderPass renderPass);
+ VkRenderPass renderPass,
+ const VkAllocCallbacks* pAllocator);
void VKAPI vkGetRenderAreaGranularity(
VkDevice device,
@@ -2633,11 +2709,13 @@
VkResult VKAPI vkCreateCommandPool(
VkDevice device,
const VkCmdPoolCreateInfo* pCreateInfo,
+ const VkAllocCallbacks* pAllocator,
VkCmdPool* pCmdPool);
void VKAPI vkDestroyCommandPool(
VkDevice device,
- VkCmdPool cmdPool);
+ VkCmdPool cmdPool,
+ const VkAllocCallbacks* pAllocator);
VkResult VKAPI vkResetCommandPool(
VkDevice device,
@@ -2652,7 +2730,7 @@
void VKAPI vkFreeCommandBuffers(
VkDevice device,
VkCmdPool cmdPool,
- uint32_t count,
+ uint32_t commandBufferCount,
const VkCmdBuffer* pCommandBuffers);
VkResult VKAPI vkBeginCommandBuffer(
@@ -2720,7 +2798,7 @@
VkPipelineBindPoint pipelineBindPoint,
VkPipelineLayout layout,
uint32_t firstSet,
- uint32_t setCount,
+ uint32_t descriptorSetCount,
const VkDescriptorSet* pDescriptorSets,
uint32_t dynamicOffsetCount,
const uint32_t* pDynamicOffsets);
@@ -2757,14 +2835,14 @@
VkCmdBuffer cmdBuffer,
VkBuffer buffer,
VkDeviceSize offset,
- uint32_t count,
+ uint32_t drawCount,
uint32_t stride);
void VKAPI vkCmdDrawIndexedIndirect(
VkCmdBuffer cmdBuffer,
VkBuffer buffer,
VkDeviceSize offset,
- uint32_t count,
+ uint32_t drawCount,
uint32_t stride);
void VKAPI vkCmdDispatch(
@@ -2930,8 +3008,8 @@
VkCmdBuffer cmdBuffer,
VkPipelineLayout layout,
VkShaderStageFlags stageFlags,
- uint32_t start,
- uint32_t length,
+ uint32_t offset,
+ uint32_t size,
const void* values);
void VKAPI vkCmdBeginRenderPass(
@@ -3014,9 +3092,10 @@
VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
VK_PRESENT_MODE_MAILBOX_KHR = 1,
VK_PRESENT_MODE_FIFO_KHR = 2,
+ VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
- VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_KHR,
- VK_PRESENT_MODE_NUM = (VK_PRESENT_MODE_FIFO_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
+ VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
+ VK_PRESENT_MODE_NUM = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
} VkPresentModeKHR;
@@ -3063,7 +3142,7 @@
VkSurfaceTransformKHR preTransform;
uint32_t imageArraySize;
VkSharingMode sharingMode;
- uint32_t queueFamilyCount;
+ uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
VkPresentModeKHR presentMode;
VkSwapchainKHR oldSwapchain;
@@ -3074,17 +3153,17 @@
VkStructureType sType;
const void* pNext;
uint32_t swapchainCount;
- const VkSwapchainKHR* swapchains;
+ const VkSwapchainKHR* pSwapchains;
const uint32_t* imageIndices;
} VkPresentInfoKHR;
typedef VkResult (VKAPI *PFN_vkGetSurfacePropertiesKHR)(VkDevice device, VkSurfaceKHR surface, VkSurfacePropertiesKHR* pSurfaceProperties);
-typedef VkResult (VKAPI *PFN_vkGetSurfaceFormatsKHR)(VkDevice device, VkSurfaceKHR surface, uint32_t* pCount, VkSurfaceFormatKHR* pSurfaceFormats);
-typedef VkResult (VKAPI *PFN_vkGetSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, uint32_t* pCount, VkPresentModeKHR* pPresentModes);
+typedef VkResult (VKAPI *PFN_vkGetSurfaceFormatsKHR)(VkDevice device, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
+typedef VkResult (VKAPI *PFN_vkGetSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
typedef VkResult (VKAPI *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, VkSwapchainKHR* pSwapchain);
typedef void (VKAPI *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain);
-typedef VkResult (VKAPI *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pCount, VkImage* pSwapchainImages);
+typedef VkResult (VKAPI *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
typedef VkResult (VKAPI *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
typedef VkResult (VKAPI *PFN_vkQueuePresentKHR)(VkQueue queue, VkPresentInfoKHR* pPresentInfo);
@@ -3097,13 +3176,13 @@
VkResult VKAPI vkGetSurfaceFormatsKHR(
VkDevice device,
VkSurfaceKHR surface,
- uint32_t* pCount,
+ uint32_t* pSurfaceFormatCount,
VkSurfaceFormatKHR* pSurfaceFormats);
VkResult VKAPI vkGetSurfacePresentModesKHR(
VkDevice device,
VkSurfaceKHR surface,
- uint32_t* pCount,
+ uint32_t* pPresentModeCount,
VkPresentModeKHR* pPresentModes);
VkResult VKAPI vkCreateSwapchainKHR(
@@ -3118,7 +3197,7 @@
VkResult VKAPI vkGetSwapchainImagesKHR(
VkDevice device,
VkSwapchainKHR swapchain,
- uint32_t* pCount,
+ uint32_t* pSwapchainImageCount,
VkImage* pSwapchainImages);
VkResult VKAPI vkAcquireNextImageKHR(
@@ -3154,7 +3233,7 @@
typedef struct {
VkDisplayKHR display;
- const char* displayName;
+ const char* displayName;
VkExtent2D physicalDimensions;
VkExtent2D physicalResolution;
VkSurfaceTransformFlagsKHR supportedTransforms;
@@ -3213,22 +3292,22 @@
} VkSurfaceDescriptionDisplayPlaneKHR;
-typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkDisplayPropertiesKHR* pProperties);
-typedef VkResult (VKAPI *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pCount, VkDisplayModePropertiesKHR* pModeProperties);
+typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
+typedef VkResult (VKAPI *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
typedef VkResult (VKAPI *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR*pCreateInfo, VkDisplayModeKHR* pMode);
typedef VkResult (VKAPI *PFN_vkGetDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlanePropertiesKHR* pProperties);
#ifdef VK_PROTOTYPES
VkResult VKAPI vkGetPhysicalDeviceDisplayPropertiesKHR(
VkPhysicalDevice physicalDevice,
- uint32_t* pCount,
+ uint32_t* pPropertyCount,
VkDisplayPropertiesKHR* pProperties);
VkResult VKAPI vkGetDisplayModePropertiesKHR(
VkPhysicalDevice physicalDevice,
VkDisplayKHR display,
- uint32_t* pCount,
- VkDisplayModePropertiesKHR* pModeProperties);
+ uint32_t* pPropertyCount,
+ VkDisplayModePropertiesKHR* pProperties);
VkResult VKAPI vkCreateDisplayModeKHR(
VkPhysicalDevice physicalDevice,
diff --git a/vulkan/libvulkan/entry.cpp b/vulkan/libvulkan/entry.cpp
index 255ad97..7622e4d 100644
--- a/vulkan/libvulkan/entry.cpp
+++ b/vulkan/libvulkan/entry.cpp
@@ -42,13 +42,13 @@
} // namespace
__attribute__((visibility("default")))
-VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance) {
- return vulkan::CreateInstance(pCreateInfo, pInstance);
+VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkInstance* pInstance) {
+ return vulkan::CreateInstance(pCreateInfo, pAllocator, pInstance);
}
__attribute__((visibility("default")))
-void vkDestroyInstance(VkInstance instance) {
- GetVtbl(instance).DestroyInstance(instance);
+void vkDestroyInstance(VkInstance instance, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(instance).DestroyInstance(instance, pAllocator);
}
__attribute__((visibility("default")))
@@ -72,8 +72,8 @@
}
__attribute__((visibility("default")))
-void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
- GetVtbl(physicalDevice).GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pCount, pQueueFamilyProperties);
+void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties) {
+ GetVtbl(physicalDevice).GetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
}
__attribute__((visibility("default")))
@@ -97,33 +97,33 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice) {
- return GetVtbl(physicalDevice).CreateDevice(physicalDevice, pCreateInfo, pDevice);
+VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDevice* pDevice) {
+ return GetVtbl(physicalDevice).CreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
}
__attribute__((visibility("default")))
-void vkDestroyDevice(VkDevice device) {
- vulkan::DestroyDevice(device);
+void vkDestroyDevice(VkDevice device, const VkAllocCallbacks* pAllocator) {
+ vulkan::DestroyDevice(device, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkEnumerateInstanceLayerProperties(uint32_t* pCount, VkLayerProperties* pProperties) {
- return vulkan::EnumerateInstanceLayerProperties(pCount, pProperties);
+VkResult vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
+ return vulkan::EnumerateInstanceLayerProperties(pPropertyCount, pProperties);
}
__attribute__((visibility("default")))
-VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties) {
- return vulkan::EnumerateInstanceExtensionProperties(pLayerName, pCount, pProperties);
+VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
+ return vulkan::EnumerateInstanceExtensionProperties(pLayerName, pPropertyCount, pProperties);
}
__attribute__((visibility("default")))
-VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pCount, VkLayerProperties* pProperties) {
- return GetVtbl(physicalDevice).EnumerateDeviceLayerProperties(physicalDevice, pCount, pProperties);
+VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
+ return GetVtbl(physicalDevice).EnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
}
__attribute__((visibility("default")))
-VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties) {
- return GetVtbl(physicalDevice).EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pCount, pProperties);
+VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
+ return GetVtbl(physicalDevice).EnumerateDeviceExtensionProperties(physicalDevice, pLayerName, pPropertyCount, pProperties);
}
__attribute__((visibility("default")))
@@ -147,13 +147,13 @@
}
__attribute__((visibility("default")))
-VkResult vkAllocMemory(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem) {
- return GetVtbl(device).AllocMemory(device, pAllocInfo, pMem);
+VkResult vkAllocMemory(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, const VkAllocCallbacks* pAllocator, VkDeviceMemory* pMem) {
+ return GetVtbl(device).AllocMemory(device, pAllocInfo, pAllocator, pMem);
}
__attribute__((visibility("default")))
-void vkFreeMemory(VkDevice device, VkDeviceMemory mem) {
- GetVtbl(device).FreeMemory(device, mem);
+void vkFreeMemory(VkDevice device, VkDeviceMemory mem, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).FreeMemory(device, mem, pAllocator);
}
__attribute__((visibility("default")))
@@ -202,38 +202,38 @@
}
__attribute__((visibility("default")))
-void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
- GetVtbl(device).GetImageSparseMemoryRequirements(device, image, pNumRequirements, pSparseMemoryRequirements);
+void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
+ GetVtbl(device).GetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
}
__attribute__((visibility("default")))
-void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties) {
- GetVtbl(physicalDevice).GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pNumProperties, pProperties);
+void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
+ GetVtbl(physicalDevice).GetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
}
__attribute__((visibility("default")))
-VkResult vkQueueBindSparseBufferMemory(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo) {
- return GetVtbl(queue).QueueBindSparseBufferMemory(queue, buffer, numBindings, pBindInfo);
+VkResult vkQueueBindSparseBufferMemory(VkQueue queue, VkBuffer buffer, uint32_t bindInfoCount, const VkSparseMemoryBindInfo* pBindInfo) {
+ return GetVtbl(queue).QueueBindSparseBufferMemory(queue, buffer, bindInfoCount, pBindInfo);
}
__attribute__((visibility("default")))
-VkResult vkQueueBindSparseImageOpaqueMemory(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo) {
- return GetVtbl(queue).QueueBindSparseImageOpaqueMemory(queue, image, numBindings, pBindInfo);
+VkResult vkQueueBindSparseImageOpaqueMemory(VkQueue queue, VkImage image, uint32_t bindInfoCount, const VkSparseMemoryBindInfo* pBindInfo) {
+ return GetVtbl(queue).QueueBindSparseImageOpaqueMemory(queue, image, bindInfoCount, pBindInfo);
}
__attribute__((visibility("default")))
-VkResult vkQueueBindSparseImageMemory(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo) {
- return GetVtbl(queue).QueueBindSparseImageMemory(queue, image, numBindings, pBindInfo);
+VkResult vkQueueBindSparseImageMemory(VkQueue queue, VkImage image, uint32_t bindInfoCount, const VkSparseImageMemoryBindInfo* pBindInfo) {
+ return GetVtbl(queue).QueueBindSparseImageMemory(queue, image, bindInfoCount, pBindInfo);
}
__attribute__((visibility("default")))
-VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence) {
- return GetVtbl(device).CreateFence(device, pCreateInfo, pFence);
+VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkFence* pFence) {
+ return GetVtbl(device).CreateFence(device, pCreateInfo, pAllocator, pFence);
}
__attribute__((visibility("default")))
-void vkDestroyFence(VkDevice device, VkFence fence) {
- GetVtbl(device).DestroyFence(device, fence);
+void vkDestroyFence(VkDevice device, VkFence fence, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyFence(device, fence, pAllocator);
}
__attribute__((visibility("default")))
@@ -252,23 +252,23 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore) {
- return GetVtbl(device).CreateSemaphore(device, pCreateInfo, pSemaphore);
+VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkSemaphore* pSemaphore) {
+ return GetVtbl(device).CreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
}
__attribute__((visibility("default")))
-void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore) {
- GetVtbl(device).DestroySemaphore(device, semaphore);
+void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroySemaphore(device, semaphore, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent) {
- return GetVtbl(device).CreateEvent(device, pCreateInfo, pEvent);
+VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkEvent* pEvent) {
+ return GetVtbl(device).CreateEvent(device, pCreateInfo, pAllocator, pEvent);
}
__attribute__((visibility("default")))
-void vkDestroyEvent(VkDevice device, VkEvent event) {
- GetVtbl(device).DestroyEvent(device, event);
+void vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyEvent(device, event, pAllocator);
}
__attribute__((visibility("default")))
@@ -287,13 +287,13 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool) {
- return GetVtbl(device).CreateQueryPool(device, pCreateInfo, pQueryPool);
+VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkQueryPool* pQueryPool) {
+ return GetVtbl(device).CreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
}
__attribute__((visibility("default")))
-void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool) {
- GetVtbl(device).DestroyQueryPool(device, queryPool);
+void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyQueryPool(device, queryPool, pAllocator);
}
__attribute__((visibility("default")))
@@ -302,33 +302,33 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer) {
- return GetVtbl(device).CreateBuffer(device, pCreateInfo, pBuffer);
+VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkBuffer* pBuffer) {
+ return GetVtbl(device).CreateBuffer(device, pCreateInfo, pAllocator, pBuffer);
}
__attribute__((visibility("default")))
-void vkDestroyBuffer(VkDevice device, VkBuffer buffer) {
- GetVtbl(device).DestroyBuffer(device, buffer);
+void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyBuffer(device, buffer, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView) {
- return GetVtbl(device).CreateBufferView(device, pCreateInfo, pView);
+VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkBufferView* pView) {
+ return GetVtbl(device).CreateBufferView(device, pCreateInfo, pAllocator, pView);
}
__attribute__((visibility("default")))
-void vkDestroyBufferView(VkDevice device, VkBufferView bufferView) {
- GetVtbl(device).DestroyBufferView(device, bufferView);
+void vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyBufferView(device, bufferView, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage) {
- return GetVtbl(device).CreateImage(device, pCreateInfo, pImage);
+VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkImage* pImage) {
+ return GetVtbl(device).CreateImage(device, pCreateInfo, pAllocator, pImage);
}
__attribute__((visibility("default")))
-void vkDestroyImage(VkDevice device, VkImage image) {
- GetVtbl(device).DestroyImage(device, image);
+void vkDestroyImage(VkDevice device, VkImage image, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyImage(device, image, pAllocator);
}
__attribute__((visibility("default")))
@@ -337,43 +337,43 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView) {
- return GetVtbl(device).CreateImageView(device, pCreateInfo, pView);
+VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkImageView* pView) {
+ return GetVtbl(device).CreateImageView(device, pCreateInfo, pAllocator, pView);
}
__attribute__((visibility("default")))
-void vkDestroyImageView(VkDevice device, VkImageView imageView) {
- GetVtbl(device).DestroyImageView(device, imageView);
+void vkDestroyImageView(VkDevice device, VkImageView imageView, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyImageView(device, imageView, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule) {
- return GetVtbl(device).CreateShaderModule(device, pCreateInfo, pShaderModule);
+VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkShaderModule* pShaderModule) {
+ return GetVtbl(device).CreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
}
__attribute__((visibility("default")))
-void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule) {
- GetVtbl(device).DestroyShaderModule(device, shaderModule);
+void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyShaderModule(device, shaderModule, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader) {
- return GetVtbl(device).CreateShader(device, pCreateInfo, pShader);
+VkResult vkCreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkShader* pShader) {
+ return GetVtbl(device).CreateShader(device, pCreateInfo, pAllocator, pShader);
}
__attribute__((visibility("default")))
-void vkDestroyShader(VkDevice device, VkShader shader) {
- GetVtbl(device).DestroyShader(device, shader);
+void vkDestroyShader(VkDevice device, VkShader shader, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyShader(device, shader, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache) {
- return GetVtbl(device).CreatePipelineCache(device, pCreateInfo, pPipelineCache);
+VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
+ return GetVtbl(device).CreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
}
__attribute__((visibility("default")))
-void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache) {
- GetVtbl(device).DestroyPipelineCache(device, pipelineCache);
+void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyPipelineCache(device, pipelineCache, pAllocator);
}
__attribute__((visibility("default")))
@@ -387,58 +387,58 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines) {
- return GetVtbl(device).CreateGraphicsPipelines(device, pipelineCache, count, pCreateInfos, pPipelines);
+VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* pAllocator, VkPipeline* pPipelines) {
+ return GetVtbl(device).CreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
}
__attribute__((visibility("default")))
-VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines) {
- return GetVtbl(device).CreateComputePipelines(device, pipelineCache, count, pCreateInfos, pPipelines);
+VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* pAllocator, VkPipeline* pPipelines) {
+ return GetVtbl(device).CreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
}
__attribute__((visibility("default")))
-void vkDestroyPipeline(VkDevice device, VkPipeline pipeline) {
- GetVtbl(device).DestroyPipeline(device, pipeline);
+void vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyPipeline(device, pipeline, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout) {
- return GetVtbl(device).CreatePipelineLayout(device, pCreateInfo, pPipelineLayout);
+VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
+ return GetVtbl(device).CreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
}
__attribute__((visibility("default")))
-void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout) {
- GetVtbl(device).DestroyPipelineLayout(device, pipelineLayout);
+void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyPipelineLayout(device, pipelineLayout, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler) {
- return GetVtbl(device).CreateSampler(device, pCreateInfo, pSampler);
+VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkSampler* pSampler) {
+ return GetVtbl(device).CreateSampler(device, pCreateInfo, pAllocator, pSampler);
}
__attribute__((visibility("default")))
-void vkDestroySampler(VkDevice device, VkSampler sampler) {
- GetVtbl(device).DestroySampler(device, sampler);
+void vkDestroySampler(VkDevice device, VkSampler sampler, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroySampler(device, sampler, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout) {
- return GetVtbl(device).CreateDescriptorSetLayout(device, pCreateInfo, pSetLayout);
+VkResult vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
+ return GetVtbl(device).CreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
}
__attribute__((visibility("default")))
-void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout) {
- GetVtbl(device).DestroyDescriptorSetLayout(device, descriptorSetLayout);
+void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool) {
- return GetVtbl(device).CreateDescriptorPool(device, pCreateInfo, pDescriptorPool);
+VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
+ return GetVtbl(device).CreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
}
__attribute__((visibility("default")))
-void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool) {
- GetVtbl(device).DestroyDescriptorPool(device, descriptorPool);
+void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyDescriptorPool(device, descriptorPool, pAllocator);
}
__attribute__((visibility("default")))
@@ -452,8 +452,8 @@
}
__attribute__((visibility("default")))
-VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets) {
- return GetVtbl(device).FreeDescriptorSets(device, descriptorPool, count, pDescriptorSets);
+VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets) {
+ return GetVtbl(device).FreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
}
__attribute__((visibility("default")))
@@ -462,23 +462,23 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer) {
- return GetVtbl(device).CreateFramebuffer(device, pCreateInfo, pFramebuffer);
+VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
+ return GetVtbl(device).CreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
}
__attribute__((visibility("default")))
-void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer) {
- GetVtbl(device).DestroyFramebuffer(device, framebuffer);
+void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyFramebuffer(device, framebuffer, pAllocator);
}
__attribute__((visibility("default")))
-VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass) {
- return GetVtbl(device).CreateRenderPass(device, pCreateInfo, pRenderPass);
+VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkRenderPass* pRenderPass) {
+ return GetVtbl(device).CreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
}
__attribute__((visibility("default")))
-void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass) {
- GetVtbl(device).DestroyRenderPass(device, renderPass);
+void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyRenderPass(device, renderPass, pAllocator);
}
__attribute__((visibility("default")))
@@ -487,13 +487,13 @@
}
__attribute__((visibility("default")))
-VkResult vkCreateCommandPool(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool) {
- return GetVtbl(device).CreateCommandPool(device, pCreateInfo, pCmdPool);
+VkResult vkCreateCommandPool(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* pAllocator, VkCmdPool* pCmdPool) {
+ return GetVtbl(device).CreateCommandPool(device, pCreateInfo, pAllocator, pCmdPool);
}
__attribute__((visibility("default")))
-void vkDestroyCommandPool(VkDevice device, VkCmdPool cmdPool) {
- GetVtbl(device).DestroyCommandPool(device, cmdPool);
+void vkDestroyCommandPool(VkDevice device, VkCmdPool cmdPool, const VkAllocCallbacks* pAllocator) {
+ GetVtbl(device).DestroyCommandPool(device, cmdPool, pAllocator);
}
__attribute__((visibility("default")))
@@ -507,8 +507,8 @@
}
__attribute__((visibility("default")))
-void vkFreeCommandBuffers(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers) {
- GetVtbl(device).FreeCommandBuffers(device, cmdPool, count, pCommandBuffers);
+void vkFreeCommandBuffers(VkDevice device, VkCmdPool cmdPool, uint32_t commandBufferCount, const VkCmdBuffer* pCommandBuffers) {
+ GetVtbl(device).FreeCommandBuffers(device, cmdPool, commandBufferCount, pCommandBuffers);
}
__attribute__((visibility("default")))
@@ -577,8 +577,8 @@
}
__attribute__((visibility("default")))
-void vkCmdBindDescriptorSets(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
- GetVtbl(cmdBuffer).CmdBindDescriptorSets(cmdBuffer, pipelineBindPoint, layout, firstSet, setCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
+void vkCmdBindDescriptorSets(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
+ GetVtbl(cmdBuffer).CmdBindDescriptorSets(cmdBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
}
__attribute__((visibility("default")))
@@ -602,13 +602,13 @@
}
__attribute__((visibility("default")))
-void vkCmdDrawIndirect(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride) {
- GetVtbl(cmdBuffer).CmdDrawIndirect(cmdBuffer, buffer, offset, count, stride);
+void vkCmdDrawIndirect(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
+ GetVtbl(cmdBuffer).CmdDrawIndirect(cmdBuffer, buffer, offset, drawCount, stride);
}
__attribute__((visibility("default")))
-void vkCmdDrawIndexedIndirect(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride) {
- GetVtbl(cmdBuffer).CmdDrawIndexedIndirect(cmdBuffer, buffer, offset, count, stride);
+void vkCmdDrawIndexedIndirect(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
+ GetVtbl(cmdBuffer).CmdDrawIndexedIndirect(cmdBuffer, buffer, offset, drawCount, stride);
}
__attribute__((visibility("default")))
@@ -722,8 +722,8 @@
}
__attribute__((visibility("default")))
-void vkCmdPushConstants(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values) {
- GetVtbl(cmdBuffer).CmdPushConstants(cmdBuffer, layout, stageFlags, start, length, values);
+void vkCmdPushConstants(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* values) {
+ GetVtbl(cmdBuffer).CmdPushConstants(cmdBuffer, layout, stageFlags, offset, size, values);
}
__attribute__((visibility("default")))
@@ -762,13 +762,13 @@
}
__attribute__((visibility("default")))
-VkResult vkGetSurfaceFormatsKHR(VkDevice device, VkSurfaceKHR surface, uint32_t* pCount, VkSurfaceFormatKHR* pSurfaceFormats) {
- return GetVtbl(device).GetSurfaceFormatsKHR(device, surface, pCount, pSurfaceFormats);
+VkResult vkGetSurfaceFormatsKHR(VkDevice device, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats) {
+ return GetVtbl(device).GetSurfaceFormatsKHR(device, surface, pSurfaceFormatCount, pSurfaceFormats);
}
__attribute__((visibility("default")))
-VkResult vkGetSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface, uint32_t* pCount, VkPresentModeKHR* pPresentModes) {
- return GetVtbl(device).GetSurfacePresentModesKHR(device, surface, pCount, pPresentModes);
+VkResult vkGetSurfacePresentModesKHR(VkDevice device, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes) {
+ return GetVtbl(device).GetSurfacePresentModesKHR(device, surface, pPresentModeCount, pPresentModes);
}
__attribute__((visibility("default")))
@@ -782,8 +782,8 @@
}
__attribute__((visibility("default")))
-VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pCount, VkImage* pSwapchainImages) {
- return GetVtbl(device).GetSwapchainImagesKHR(device, swapchain, pCount, pSwapchainImages);
+VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
+ return GetVtbl(device).GetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
}
__attribute__((visibility("default")))
diff --git a/vulkan/libvulkan/loader.cpp b/vulkan/libvulkan/loader.cpp
index a44026f..10877c5 100644
--- a/vulkan/libvulkan/loader.cpp
+++ b/vulkan/libvulkan/loader.cpp
@@ -22,8 +22,8 @@
#include <dirent.h>
#include <dlfcn.h>
#include <inttypes.h>
-#include <malloc.h>
#include <pthread.h>
+#include <stdlib.h>
#include <string.h>
// standard C++ headers
#include <algorithm>
@@ -58,7 +58,13 @@
// Define Handle typedef to be void* as returned from dlopen.
typedef void* SharedLibraryHandle;
-// Custom versions of std classes that use the vulkan alloc callback.
+// Standard-library allocator that delegates to VkAllocCallbacks.
+//
+// TODO(jessehall): This class currently always uses
+// VK_SYSTEM_ALLOC_SCOPE_INSTANCE. The scope to use could be a template
+// parameter or a constructor parameter. The former would help catch bugs
+// where we use the wrong scope, e.g. adding a command-scope string to an
+// instance-scope vector. But that might also be pretty annoying to deal with.
template <class T>
class CallbackAllocator {
public:
@@ -73,7 +79,7 @@
T* allocate(std::size_t n) {
void* mem = alloc->pfnAlloc(alloc->pUserData, n * sizeof(T), alignof(T),
- VK_SYSTEM_ALLOC_TYPE_INTERNAL);
+ VK_SYSTEM_ALLOC_SCOPE_INSTANCE);
return static_cast<T*>(mem);
}
@@ -208,8 +214,43 @@
return *reinterpret_cast<DeviceVtbl**>(queue);
}
-void* DefaultAlloc(void*, size_t size, size_t alignment, VkSystemAllocType) {
- return memalign(alignment, size);
+void* DefaultAlloc(void*, size_t size, size_t alignment, VkSystemAllocScope) {
+ void* ptr = nullptr;
+ // Vulkan requires 'alignment' to be a power of two, but posix_memalign
+ // additionally requires that it be at least sizeof(void*).
+ return posix_memalign(&ptr, std::max(alignment, sizeof(void*)), size) == 0
+ ? ptr
+ : nullptr;
+}
+
+void* DefaultRealloc(void*,
+ void* ptr,
+ size_t size,
+ size_t alignment,
+ VkSystemAllocScope) {
+ if (size == 0) {
+ free(ptr);
+ return nullptr;
+ }
+
+ // TODO(jessehall): Right now we never shrink allocations; if the new
+ // request is smaller than the existing chunk, we just continue using it.
+ // Right now the loader never reallocs, so this doesn't matter. If that
+ // changes, or if this code is copied into some other project, this should
+ // probably have a heuristic to allocate-copy-free when doing so will save
+ // "enough" space.
+ size_t old_size = ptr ? malloc_usable_size(ptr) : 0;
+ if (size <= old_size)
+ return ptr;
+
+ void* new_ptr = nullptr;
+ if (posix_memalign(&new_ptr, alignment, size) != 0)
+ return nullptr;
+ if (ptr) {
+ memcpy(new_ptr, ptr, std::min(old_size, size));
+ free(ptr);
+ }
+ return new_ptr;
}
void DefaultFree(void*, void* pMem) {
@@ -219,6 +260,7 @@
const VkAllocCallbacks kDefaultAllocCallbacks = {
.pUserData = nullptr,
.pfnAlloc = DefaultAlloc,
+ .pfnRealloc = DefaultRealloc,
.pfnFree = DefaultFree,
};
@@ -418,7 +460,7 @@
}
}
// Load app layers
- for (uint32_t i = 0; i < create_info->layerCount; ++i) {
+ for (uint32_t i = 0; i < create_info->enabledLayerNameCount; ++i) {
String layer_name(create_info->ppEnabledLayerNames[i],
string_allocator);
auto element = instance->layers.find(layer_name);
@@ -439,17 +481,18 @@
bool AddExtensionToCreateInfo(TCreateInfo& local_create_info,
const char* extension_name,
const VkAllocCallbacks* alloc) {
- for (uint32_t i = 0; i < local_create_info.extensionCount; ++i) {
+ for (uint32_t i = 0; i < local_create_info.enabledExtensionNameCount; ++i) {
if (!strcmp(extension_name,
local_create_info.ppEnabledExtensionNames[i])) {
return false;
}
}
- uint32_t extension_count = local_create_info.extensionCount;
- local_create_info.extensionCount++;
+ uint32_t extension_count = local_create_info.enabledExtensionNameCount;
+ local_create_info.enabledExtensionNameCount++;
void* mem = alloc->pfnAlloc(
- alloc->pUserData, local_create_info.extensionCount * sizeof(char*),
- alignof(char*), VK_SYSTEM_ALLOC_TYPE_INTERNAL);
+ alloc->pUserData,
+ local_create_info.enabledExtensionNameCount * sizeof(char*),
+ alignof(char*), VK_SYSTEM_ALLOC_SCOPE_INSTANCE);
if (mem) {
const char** enabled_extensions = static_cast<const char**>(mem);
for (uint32_t i = 0; i < extension_count; ++i) {
@@ -461,7 +504,7 @@
} else {
ALOGW("%s extension cannot be enabled: memory allocation failed",
extension_name);
- local_create_info.extensionCount--;
+ local_create_info.enabledExtensionNameCount--;
return false;
}
return true;
@@ -537,12 +580,14 @@
// "Bottom" functions. These are called at the end of the instance dispatch
// chain.
-void DestroyInstanceBottom(VkInstance instance) {
+void DestroyInstanceBottom(VkInstance instance,
+ const VkAllocCallbacks* allocator) {
// These checks allow us to call DestroyInstanceBottom from any error path
// in CreateInstanceBottom, before the driver instance is fully initialized.
if (instance->drv.vtbl.instance != VK_NULL_HANDLE &&
instance->drv.vtbl.DestroyInstance) {
- instance->drv.vtbl.DestroyInstance(instance->drv.vtbl.instance);
+ instance->drv.vtbl.DestroyInstance(instance->drv.vtbl.instance,
+ allocator);
}
if (instance->message) {
PFN_vkDbgDestroyMsgCallback DebugDestroyMessageCallback;
@@ -561,21 +606,22 @@
}
VkResult CreateInstanceBottom(const VkInstanceCreateInfo* create_info,
+ const VkAllocCallbacks* allocator,
VkInstance* instance_ptr) {
Instance* instance = *instance_ptr;
VkResult result;
- result =
- g_hwdevice->CreateInstance(create_info, &instance->drv.vtbl.instance);
+ result = g_hwdevice->CreateInstance(create_info, instance->alloc,
+ &instance->drv.vtbl.instance);
if (result != VK_SUCCESS) {
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return result;
}
if (!LoadInstanceVtbl(
instance->drv.vtbl.instance, instance->drv.vtbl.instance,
g_hwdevice->GetInstanceProcAddr, instance->drv.vtbl)) {
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
@@ -587,7 +633,7 @@
"vkGetDeviceProcAddr"));
if (!instance->drv.GetDeviceProcAddr) {
ALOGE("missing instance proc: \"%s\"", "vkGetDeviceProcAddr");
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
@@ -600,7 +646,7 @@
} else {
ALOGE("invalid VkInstance dispatch magic: 0x%" PRIxPTR,
dispatch->magic);
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
@@ -608,7 +654,7 @@
result = instance->drv.vtbl.EnumeratePhysicalDevices(
instance->drv.vtbl.instance, &num_physical_devices, nullptr);
if (result != VK_SUCCESS) {
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
num_physical_devices = std::min(num_physical_devices, kMaxPhysicalDevices);
@@ -616,7 +662,7 @@
instance->drv.vtbl.instance, &num_physical_devices,
instance->physical_devices);
if (result != VK_SUCCESS) {
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
for (uint32_t i = 0; i < num_physical_devices; i++) {
@@ -625,7 +671,7 @@
if (dispatch->magic != HWVULKAN_DISPATCH_MAGIC) {
ALOGE("invalid VkPhysicalDevice dispatch magic: 0x%" PRIxPTR,
dispatch->magic);
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
dispatch->vtbl = instance->vtbl;
@@ -696,13 +742,21 @@
VkResult CreateDeviceBottom(VkPhysicalDevice pdev,
const VkDeviceCreateInfo* create_info,
+ const VkAllocCallbacks* allocator,
VkDevice* out_device) {
Instance& instance = *static_cast<Instance*>(GetVtbl(pdev)->instance);
VkResult result;
- void* mem = instance.alloc->pfnAlloc(instance.alloc->pUserData,
- sizeof(Device), alignof(Device),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT);
+ if (!allocator) {
+ if (instance.alloc)
+ allocator = instance.alloc;
+ else
+ allocator = &kDefaultAllocCallbacks;
+ }
+
+ void* mem =
+ allocator->pfnAlloc(allocator->pUserData, sizeof(Device),
+ alignof(Device), VK_SYSTEM_ALLOC_SCOPE_DEVICE);
if (!mem)
return VK_ERROR_OUT_OF_HOST_MEMORY;
Device* device = new (mem) Device(&instance);
@@ -714,7 +768,8 @@
}
VkDevice drv_device;
- result = instance.drv.vtbl.CreateDevice(pdev, create_info, &drv_device);
+ result = instance.drv.vtbl.CreateDevice(pdev, create_info, allocator,
+ &drv_device);
if (result != VK_SUCCESS) {
DestroyDevice(device);
return result;
@@ -727,7 +782,7 @@
PFN_vkDestroyDevice destroy_device =
reinterpret_cast<PFN_vkDestroyDevice>(
instance.drv.GetDeviceProcAddr(drv_device, "vkDestroyDevice"));
- destroy_device(drv_device);
+ destroy_device(drv_device, allocator);
DestroyDevice(device);
return VK_ERROR_INITIALIZATION_FAILED;
}
@@ -778,7 +833,7 @@
reinterpret_cast<PFN_vkCreateDevice>(
device->vtbl_storage.GetDeviceProcAddr(drv_device,
"vkCreateDevice"));
- layer_createDevice(pdev, create_info, &drv_device);
+ layer_createDevice(pdev, create_info, allocator, &drv_device);
// TODO(mlentine) : This is needed to use WSI layer validation. Remove this
// when new version of layer initialization exits.
@@ -896,23 +951,25 @@
}
VkResult CreateInstance(const VkInstanceCreateInfo* create_info,
+ const VkAllocCallbacks* allocator,
VkInstance* out_instance) {
VkResult result;
if (!EnsureInitialized())
return VK_ERROR_INITIALIZATION_FAILED;
+ if (!allocator)
+ allocator = &kDefaultAllocCallbacks;
+
VkInstanceCreateInfo local_create_info = *create_info;
- if (!local_create_info.pAllocCb)
- local_create_info.pAllocCb = &kDefaultAllocCallbacks;
create_info = &local_create_info;
- void* instance_mem = create_info->pAllocCb->pfnAlloc(
- create_info->pAllocCb->pUserData, sizeof(Instance), alignof(Instance),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT);
+ void* instance_mem =
+ allocator->pfnAlloc(allocator->pUserData, sizeof(Instance),
+ alignof(Instance), VK_SYSTEM_ALLOC_SCOPE_INSTANCE);
if (!instance_mem)
return VK_ERROR_OUT_OF_HOST_MEMORY;
- Instance* instance = new (instance_mem) Instance(create_info->pAllocCb);
+ Instance* instance = new (instance_mem) Instance(allocator);
instance->vtbl_storage = kBottomInstanceFunctions;
instance->vtbl_storage.instance = instance;
@@ -930,7 +987,7 @@
result = ActivateAllLayers(create_info, instance, instance);
if (result != VK_SUCCESS) {
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return result;
}
@@ -973,7 +1030,7 @@
if (!LoadInstanceVtbl(static_cast<VkInstance>(base_object),
static_cast<VkInstance>(next_object),
next_get_proc_addr, instance->vtbl_storage)) {
- DestroyInstanceBottom(instance);
+ DestroyInstanceBottom(instance, allocator);
return VK_ERROR_INITIALIZATION_FAILED;
}
@@ -988,7 +1045,8 @@
}
*out_instance = instance;
- result = instance->vtbl_storage.CreateInstance(create_info, out_instance);
+ result = instance->vtbl_storage.CreateInstance(create_info, allocator,
+ out_instance);
if (enable_callback)
FreeAllocatedCreateInfo(local_create_info, instance->alloc);
if (result <= 0) {
@@ -1079,7 +1137,7 @@
VkResult result = vtbl->AllocCommandBuffers(device, alloc_info, cmdbuffers);
if (result != VK_SUCCESS)
return result;
- for (uint32_t i = 0; i < alloc_info->count; i++) {
+ for (uint32_t i = 0; i < alloc_info->bufferCount; i++) {
hwvulkan_dispatch_t* dispatch =
reinterpret_cast<hwvulkan_dispatch_t*>(cmdbuffers[i]);
ALOGE_IF(dispatch->magic != HWVULKAN_DISPATCH_MAGIC,
@@ -1090,14 +1148,15 @@
return VK_SUCCESS;
}
-VkResult DestroyDevice(VkDevice drv_device) {
+VkResult DestroyDevice(VkDevice drv_device,
+ const VkAllocCallbacks* /*allocator*/) {
const DeviceVtbl* vtbl = GetVtbl(drv_device);
Device* device = static_cast<Device*>(vtbl->device);
for (auto it = device->active_layers.begin();
it != device->active_layers.end(); ++it) {
DeactivateLayer(device->instance, it);
}
- vtbl->DestroyDevice(drv_device);
+ vtbl->DestroyDevice(drv_device, device->instance->alloc);
DestroyDevice(device);
return VK_SUCCESS;
}
@@ -1105,9 +1164,9 @@
void* AllocMem(VkInstance instance,
size_t size,
size_t align,
- VkSystemAllocType type) {
+ VkSystemAllocScope scope) {
const VkAllocCallbacks* alloc_cb = instance->alloc;
- return alloc_cb->pfnAlloc(alloc_cb->pUserData, size, align, type);
+ return alloc_cb->pfnAlloc(alloc_cb->pUserData, size, align, scope);
}
void FreeMem(VkInstance instance, void* ptr) {
@@ -1118,10 +1177,10 @@
void* AllocMem(VkDevice device,
size_t size,
size_t align,
- VkSystemAllocType type) {
+ VkSystemAllocScope scope) {
const VkAllocCallbacks* alloc_cb =
static_cast<Device*>(GetVtbl(device)->device)->instance->alloc;
- return alloc_cb->pfnAlloc(alloc_cb->pUserData, size, align, type);
+ return alloc_cb->pfnAlloc(alloc_cb->pUserData, size, align, scope);
}
void FreeMem(VkDevice device, void* ptr) {
diff --git a/vulkan/libvulkan/loader.h b/vulkan/libvulkan/loader.h
index 15e2779..e166887 100644
--- a/vulkan/libvulkan/loader.h
+++ b/vulkan/libvulkan/loader.h
@@ -216,6 +216,7 @@
VkResult EnumerateInstanceLayerProperties(uint32_t* count,
VkLayerProperties* properties);
VkResult CreateInstance(const VkInstanceCreateInfo* create_info,
+ const VkAllocCallbacks* pAllocator,
VkInstance* instance);
PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* name);
PFN_vkVoidFunction GetDeviceProcAddr(VkDevice drv_device, const char* name);
@@ -226,17 +227,17 @@
VkResult AllocCommandBuffers(VkDevice device,
const VkCmdBufferAllocInfo* alloc_info,
VkCmdBuffer* cmdbuffers);
-VkResult DestroyDevice(VkDevice drv_device);
+VkResult DestroyDevice(VkDevice drv_device, const VkAllocCallbacks* pAllocator);
void* AllocMem(VkInstance instance,
size_t size,
size_t align,
- VkSystemAllocType type);
+ VkSystemAllocScope scope);
void FreeMem(VkInstance instance, void* ptr);
void* AllocMem(VkDevice device,
size_t size,
size_t align,
- VkSystemAllocType type);
+ VkSystemAllocScope scope);
void FreeMem(VkDevice device, void* ptr);
const DeviceVtbl& GetDriverVtbl(VkDevice device);
const DeviceVtbl& GetDriverVtbl(VkQueue queue);
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp
index 2922465..f6ab081 100644
--- a/vulkan/libvulkan/swapchain.cpp
+++ b/vulkan/libvulkan/swapchain.cpp
@@ -49,6 +49,19 @@
void operator()(T* obj) { obj->common.decRef(&obj->common); }
};
+template <typename Host>
+struct AllocScope {};
+
+template <>
+struct AllocScope<VkInstance> {
+ static const VkSystemAllocScope kScope = VK_SYSTEM_ALLOC_SCOPE_INSTANCE;
+};
+
+template <>
+struct AllocScope<VkDevice> {
+ static const VkSystemAllocScope kScope = VK_SYSTEM_ALLOC_SCOPE_DEVICE;
+};
+
template <typename T, typename Host>
class VulkanAllocator {
public:
@@ -62,7 +75,7 @@
T* allocate(size_t n) const {
return static_cast<T*>(AllocMem(host_, n * sizeof(T), alignof(T),
- VK_SYSTEM_ALLOC_TYPE_INTERNAL));
+ AllocScope<Host>::kScope));
}
void deallocate(T* p, size_t) const { return FreeMem(host_, p); }
@@ -129,7 +142,7 @@
ANativeWindow* window,
VkSurfaceKHR* out_surface) {
void* mem = AllocMem(instance, sizeof(Surface), alignof(Surface),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT);
+ VK_SYSTEM_ALLOC_SCOPE_OBJECT);
if (!mem)
return VK_ERROR_OUT_OF_HOST_MEMORY;
Surface* surface = new (mem) Surface;
@@ -362,7 +375,7 @@
// After this point, we must deallocate the swapchain on error.
void* mem = AllocMem(device, sizeof(Swapchain), alignof(Swapchain),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT);
+ VK_SYSTEM_ALLOC_SCOPE_OBJECT);
if (!mem)
return VK_ERROR_OUT_OF_HOST_MEMORY;
Swapchain* swapchain = new (mem) Swapchain(surface, num_images);
@@ -391,7 +404,7 @@
.usage = create_info->imageUsageFlags,
.flags = 0,
.sharingMode = create_info->sharingMode,
- .queueFamilyCount = create_info->queueFamilyCount,
+ .queueFamilyIndexCount = create_info->queueFamilyIndexCount,
.pQueueFamilyIndices = create_info->pQueueFamilyIndices,
};
@@ -418,7 +431,8 @@
image_native_buffer.format = img.buffer->format;
image_native_buffer.usage = img.buffer->usage;
- result = driver_vtbl.CreateImage(device, &image_create, &img.image);
+ result =
+ driver_vtbl.CreateImage(device, &image_create, nullptr, &img.image);
if (result != VK_SUCCESS) {
ALOGD("vkCreateImage w/ native buffer failed: %u", result);
break;
@@ -441,7 +455,7 @@
}
if (result != VK_SUCCESS) {
if (img.image)
- driver_vtbl.DestroyImage(device, img.image);
+ driver_vtbl.DestroyImage(device, img.image, nullptr);
}
}
@@ -469,7 +483,7 @@
img.dequeued = false;
}
if (img.image) {
- driver_vtbl.DestroyImage(device, img.image);
+ driver_vtbl.DestroyImage(device, img.image, nullptr);
}
}
@@ -592,7 +606,7 @@
VkResult final_result = VK_SUCCESS;
for (uint32_t sc = 0; sc < present_info->swapchainCount; sc++) {
Swapchain& swapchain =
- *SwapchainFromHandle(present_info->swapchains[sc]);
+ *SwapchainFromHandle(present_info->pSwapchains[sc]);
ANativeWindow* window = swapchain.surface.window.get();
uint32_t image_idx = present_info->imageIndices[sc];
Swapchain::Image& img = swapchain.images[image_idx];
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index 0f8382f..fe6a1e8 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -35,7 +35,7 @@
struct VkInstance_T {
hwvulkan_dispatch_t dispatch;
- const VkAllocCallbacks* alloc;
+ VkAllocCallbacks allocator;
VkPhysicalDevice_T physical_device;
};
@@ -67,7 +67,6 @@
namespace HandleType {
enum Enum {
kBufferView,
- kCmdPool,
kDescriptorPool,
kDescriptorSet,
kDescriptorSetLayout,
@@ -96,6 +95,7 @@
struct VkDevice_T {
hwvulkan_dispatch_t dispatch;
+ VkAllocCallbacks allocator;
VkInstance_T* instance;
VkQueue_T queue;
std::array<uint64_t, HandleType::kNumTypes> next_handle;
@@ -130,22 +130,22 @@
namespace {
-VkResult CreateInstance(const VkInstanceCreateInfo* create_info,
+VkResult CreateInstance(const VkInstanceCreateInfo* /*create_info*/,
+ const VkAllocCallbacks* allocator,
VkInstance* out_instance) {
// Assume the loader provided alloc callbacks even if the app didn't.
ALOG_ASSERT(
- create_info->pAllocCb,
+ allocator,
"Missing alloc callbacks, loader or app should have provided them");
- VkInstance_T* instance =
- static_cast<VkInstance_T*>(create_info->pAllocCb->pfnAlloc(
- create_info->pAllocCb->pUserData, sizeof(VkInstance_T),
- alignof(VkInstance_T), VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ VkInstance_T* instance = static_cast<VkInstance_T*>(allocator->pfnAlloc(
+ allocator->pUserData, sizeof(VkInstance_T), alignof(VkInstance_T),
+ VK_SYSTEM_ALLOC_SCOPE_INSTANCE));
if (!instance)
return VK_ERROR_OUT_OF_HOST_MEMORY;
instance->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
- instance->alloc = create_info->pAllocCb;
+ instance->allocator = *allocator;
instance->physical_device.dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
*out_instance = instance;
@@ -244,8 +244,9 @@
// -----------------------------------------------------------------------------
// Instance
-void DestroyInstance(VkInstance instance) {
- instance->alloc->pfnFree(instance->alloc->pUserData, instance);
+void DestroyInstance(VkInstance instance,
+ const VkAllocCallbacks* /*allocator*/) {
+ instance->allocator.pfnFree(instance->allocator.pUserData, instance);
}
// -----------------------------------------------------------------------------
@@ -302,15 +303,19 @@
VkResult CreateDevice(VkPhysicalDevice physical_device,
const VkDeviceCreateInfo*,
+ const VkAllocCallbacks* allocator,
VkDevice* out_device) {
VkInstance_T* instance = GetInstanceFromPhysicalDevice(physical_device);
- VkDevice_T* device = static_cast<VkDevice_T*>(instance->alloc->pfnAlloc(
- instance->alloc->pUserData, sizeof(VkDevice_T), alignof(VkDevice_T),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ if (!allocator)
+ allocator = &instance->allocator;
+ VkDevice_T* device = static_cast<VkDevice_T*>(
+ allocator->pfnAlloc(allocator->pUserData, sizeof(VkDevice_T),
+ alignof(VkDevice_T), VK_SYSTEM_ALLOC_SCOPE_DEVICE));
if (!device)
return VK_ERROR_OUT_OF_HOST_MEMORY;
device->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
+ device->allocator = *allocator;
device->instance = instance;
device->queue.dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
std::fill(device->next_handle.begin(), device->next_handle.end(),
@@ -320,11 +325,10 @@
return VK_SUCCESS;
}
-void DestroyDevice(VkDevice device) {
+void DestroyDevice(VkDevice device, const VkAllocCallbacks* /*allocator*/) {
if (!device)
return;
- const VkAllocCallbacks* alloc = device->instance->alloc;
- alloc->pfnFree(alloc->pUserData, device);
+ device->allocator.pfnFree(device->allocator.pUserData, device);
}
void GetDeviceQueue(VkDevice device, uint32_t, uint32_t, VkQueue* queue) {
@@ -332,19 +336,50 @@
}
// -----------------------------------------------------------------------------
+// CmdPool
+
+struct CmdPool {
+ typedef VkCmdPool HandleType;
+ VkAllocCallbacks allocator;
+};
+DEFINE_OBJECT_HANDLE_CONVERSION(CmdPool)
+
+VkResult CreateCommandPool(VkDevice device,
+ const VkCmdPoolCreateInfo* /*create_info*/,
+ const VkAllocCallbacks* allocator,
+ VkCmdPool* cmd_pool) {
+ if (!allocator)
+ allocator = &device->allocator;
+ CmdPool* pool = static_cast<CmdPool*>(
+ allocator->pfnAlloc(allocator->pUserData, sizeof(CmdPool),
+ alignof(CmdPool), VK_SYSTEM_ALLOC_SCOPE_OBJECT));
+ if (!pool)
+ return VK_ERROR_OUT_OF_HOST_MEMORY;
+ pool->allocator = *allocator;
+ *cmd_pool = GetHandleToCmdPool(pool);
+ return VK_SUCCESS;
+}
+
+void DestroyCommandPool(VkDevice /*device*/,
+ VkCmdPool cmd_pool,
+ const VkAllocCallbacks* /*allocator*/) {
+ CmdPool* pool = GetCmdPoolFromHandle(cmd_pool);
+ pool->allocator.pfnFree(pool->allocator.pUserData, pool);
+}
+
+// -----------------------------------------------------------------------------
// CmdBuffer
-VkResult AllocCommandBuffers(VkDevice device,
+VkResult AllocCommandBuffers(VkDevice /*device*/,
const VkCmdBufferAllocInfo* alloc_info,
VkCmdBuffer* cmdbufs) {
VkResult result = VK_SUCCESS;
- const VkAllocCallbacks* alloc = device->instance->alloc;
-
- std::fill(cmdbufs, cmdbufs + alloc_info->count, nullptr);
- for (uint32_t i = 0; i < alloc_info->count; i++) {
- cmdbufs[i] = static_cast<VkCmdBuffer_T*>(alloc->pfnAlloc(
- alloc->pUserData, sizeof(VkCmdBuffer_T), alignof(VkCmdBuffer_T),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ CmdPool& pool = *GetCmdPoolFromHandle(alloc_info->cmdPool);
+ std::fill(cmdbufs, cmdbufs + alloc_info->bufferCount, nullptr);
+ for (uint32_t i = 0; i < alloc_info->bufferCount; i++) {
+ cmdbufs[i] = static_cast<VkCmdBuffer_T*>(pool.allocator.pfnAlloc(
+ pool.allocator.pUserData, sizeof(VkCmdBuffer_T),
+ alignof(VkCmdBuffer_T), VK_SYSTEM_ALLOC_SCOPE_OBJECT));
if (!cmdbufs[i]) {
result = VK_ERROR_OUT_OF_HOST_MEMORY;
break;
@@ -352,23 +387,22 @@
cmdbufs[i]->dispatch.magic = HWVULKAN_DISPATCH_MAGIC;
}
if (result != VK_SUCCESS) {
- for (uint32_t i = 0; i < alloc_info->count; i++) {
+ for (uint32_t i = 0; i < alloc_info->bufferCount; i++) {
if (!cmdbufs[i])
break;
- alloc->pfnFree(alloc->pUserData, cmdbufs[i]);
+ pool.allocator.pfnFree(pool.allocator.pUserData, cmdbufs[i]);
}
}
-
return result;
}
-void FreeCommandBuffers(VkDevice device,
- VkCmdPool,
+void FreeCommandBuffers(VkDevice /*device*/,
+ VkCmdPool cmd_pool,
uint32_t count,
const VkCmdBuffer* cmdbufs) {
- const VkAllocCallbacks* alloc = device->instance->alloc;
+ CmdPool& pool = *GetCmdPoolFromHandle(cmd_pool);
for (uint32_t i = 0; i < count; i++)
- alloc->pfnFree(alloc->pUserData, cmdbufs[i]);
+ pool.allocator.pfnFree(pool.allocator.pUserData, cmdbufs[i]);
}
// -----------------------------------------------------------------------------
@@ -383,15 +417,17 @@
VkResult AllocMemory(VkDevice device,
const VkMemoryAllocInfo* alloc_info,
+ const VkAllocCallbacks* allocator,
VkDeviceMemory* mem_handle) {
if (SIZE_MAX - sizeof(DeviceMemory) <= alloc_info->allocationSize)
return VK_ERROR_OUT_OF_HOST_MEMORY;
+ if (!allocator)
+ allocator = &device->allocator;
- const VkAllocCallbacks* alloc = device->instance->alloc;
size_t size = sizeof(DeviceMemory) + size_t(alloc_info->allocationSize);
DeviceMemory* mem = static_cast<DeviceMemory*>(
- alloc->pfnAlloc(alloc->pUserData, size, alignof(DeviceMemory),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ allocator->pfnAlloc(allocator->pUserData, size, alignof(DeviceMemory),
+ VK_SYSTEM_ALLOC_SCOPE_OBJECT));
if (!mem)
return VK_ERROR_OUT_OF_HOST_MEMORY;
mem->size = size;
@@ -399,10 +435,13 @@
return VK_SUCCESS;
}
-void FreeMemory(VkDevice device, VkDeviceMemory mem_handle) {
- const VkAllocCallbacks* alloc = device->instance->alloc;
+void FreeMemory(VkDevice device,
+ VkDeviceMemory mem_handle,
+ const VkAllocCallbacks* allocator) {
+ if (!allocator)
+ allocator = &device->allocator;
DeviceMemory* mem = GetDeviceMemoryFromHandle(mem_handle);
- alloc->pfnFree(alloc->pUserData, mem);
+ allocator->pfnFree(allocator->pUserData, mem);
}
VkResult MapMemory(VkDevice,
@@ -427,16 +466,17 @@
VkResult CreateBuffer(VkDevice device,
const VkBufferCreateInfo* create_info,
+ const VkAllocCallbacks* allocator,
VkBuffer* buffer_handle) {
ALOGW_IF(create_info->size > kMaxDeviceMemory,
"CreateBuffer: requested size 0x%" PRIx64
" exceeds max device memory size 0x%" PRIx64,
create_info->size, kMaxDeviceMemory);
-
- const VkAllocCallbacks* alloc = device->instance->alloc;
+ if (!allocator)
+ allocator = &device->allocator;
Buffer* buffer = static_cast<Buffer*>(
- alloc->pfnAlloc(alloc->pUserData, sizeof(Buffer), alignof(Buffer),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ allocator->pfnAlloc(allocator->pUserData, sizeof(Buffer),
+ alignof(Buffer), VK_SYSTEM_ALLOC_SCOPE_OBJECT));
if (!buffer)
return VK_ERROR_OUT_OF_HOST_MEMORY;
buffer->size = create_info->size;
@@ -453,10 +493,13 @@
requirements->memoryTypeBits = 0x1;
}
-void DestroyBuffer(VkDevice device, VkBuffer buffer_handle) {
- const VkAllocCallbacks* alloc = device->instance->alloc;
+void DestroyBuffer(VkDevice device,
+ VkBuffer buffer_handle,
+ const VkAllocCallbacks* allocator) {
+ if (!allocator)
+ allocator = &device->allocator;
Buffer* buffer = GetBufferFromHandle(buffer_handle);
- alloc->pfnFree(alloc->pUserData, buffer);
+ allocator->pfnFree(allocator->pUserData, buffer);
}
// -----------------------------------------------------------------------------
@@ -470,6 +513,7 @@
VkResult CreateImage(VkDevice device,
const VkImageCreateInfo* create_info,
+ const VkAllocCallbacks* allocator,
VkImage* image_handle) {
if (create_info->imageType != VK_IMAGE_TYPE_2D ||
create_info->format != VK_FORMAT_R8G8B8A8_UNORM ||
@@ -488,10 +532,11 @@
" exceeds max device memory size 0x%" PRIx64,
size, kMaxDeviceMemory);
- const VkAllocCallbacks* alloc = device->instance->alloc;
+ if (!allocator)
+ allocator = &device->allocator;
Image* image = static_cast<Image*>(
- alloc->pfnAlloc(alloc->pUserData, sizeof(Image), alignof(Image),
- VK_SYSTEM_ALLOC_TYPE_API_OBJECT));
+ allocator->pfnAlloc(allocator->pUserData, sizeof(Image), alignof(Image),
+ VK_SYSTEM_ALLOC_SCOPE_OBJECT));
if (!image)
return VK_ERROR_OUT_OF_HOST_MEMORY;
image->size = size;
@@ -508,10 +553,13 @@
requirements->memoryTypeBits = 0x1;
}
-void DestroyImage(VkDevice device, VkImage image_handle) {
- const VkAllocCallbacks* alloc = device->instance->alloc;
+void DestroyImage(VkDevice device,
+ VkImage image_handle,
+ const VkAllocCallbacks* allocator) {
+ if (!allocator)
+ allocator = &device->allocator;
Image* image = GetImageFromHandle(image_handle);
- alloc->pfnFree(alloc->pUserData, image);
+ allocator->pfnFree(allocator->pUserData, image);
}
// -----------------------------------------------------------------------------
@@ -519,20 +567,15 @@
VkResult CreateBufferView(VkDevice device,
const VkBufferViewCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkBufferView* view) {
*view = AllocHandle(device, HandleType::kBufferView);
return VK_SUCCESS;
}
-VkResult CreateCommandPool(VkDevice device,
- const VkCmdPoolCreateInfo*,
- VkCmdPool* pool) {
- *pool = AllocHandle(device, HandleType::kCmdPool);
- return VK_SUCCESS;
-}
-
VkResult CreateDescriptorPool(VkDevice device,
const VkDescriptorPoolCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkDescriptorPool* pool) {
*pool = AllocHandle(device, HandleType::kDescriptorPool);
return VK_SUCCESS;
@@ -541,13 +584,14 @@
VkResult AllocDescriptorSets(VkDevice device,
const VkDescriptorSetAllocInfo* alloc_info,
VkDescriptorSet* descriptor_sets) {
- for (uint32_t i = 0; i < alloc_info->count; i++)
+ for (uint32_t i = 0; i < alloc_info->setLayoutCount; i++)
descriptor_sets[i] = AllocHandle(device, HandleType::kDescriptorSet);
return VK_SUCCESS;
}
VkResult CreateDescriptorSetLayout(VkDevice device,
const VkDescriptorSetLayoutCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkDescriptorSetLayout* layout) {
*layout = AllocHandle(device, HandleType::kDescriptorSetLayout);
return VK_SUCCESS;
@@ -555,6 +599,7 @@
VkResult CreateEvent(VkDevice device,
const VkEventCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkEvent* event) {
*event = AllocHandle(device, HandleType::kEvent);
return VK_SUCCESS;
@@ -562,6 +607,7 @@
VkResult CreateFence(VkDevice device,
const VkFenceCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkFence* fence) {
*fence = AllocHandle(device, HandleType::kFence);
return VK_SUCCESS;
@@ -569,6 +615,7 @@
VkResult CreateFramebuffer(VkDevice device,
const VkFramebufferCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkFramebuffer* framebuffer) {
*framebuffer = AllocHandle(device, HandleType::kFramebuffer);
return VK_SUCCESS;
@@ -576,6 +623,7 @@
VkResult CreateImageView(VkDevice device,
const VkImageViewCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkImageView* view) {
*view = AllocHandle(device, HandleType::kImageView);
return VK_SUCCESS;
@@ -585,6 +633,7 @@
VkPipelineCache,
uint32_t count,
const VkGraphicsPipelineCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkPipeline* pipelines) {
for (uint32_t i = 0; i < count; i++)
pipelines[i] = AllocHandle(device, HandleType::kPipeline);
@@ -595,6 +644,7 @@
VkPipelineCache,
uint32_t count,
const VkComputePipelineCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkPipeline* pipelines) {
for (uint32_t i = 0; i < count; i++)
pipelines[i] = AllocHandle(device, HandleType::kPipeline);
@@ -603,6 +653,7 @@
VkResult CreatePipelineCache(VkDevice device,
const VkPipelineCacheCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkPipelineCache* cache) {
*cache = AllocHandle(device, HandleType::kPipelineCache);
return VK_SUCCESS;
@@ -610,6 +661,7 @@
VkResult CreatePipelineLayout(VkDevice device,
const VkPipelineLayoutCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkPipelineLayout* layout) {
*layout = AllocHandle(device, HandleType::kPipelineLayout);
return VK_SUCCESS;
@@ -617,6 +669,7 @@
VkResult CreateQueryPool(VkDevice device,
const VkQueryPoolCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkQueryPool* pool) {
*pool = AllocHandle(device, HandleType::kQueryPool);
return VK_SUCCESS;
@@ -624,6 +677,7 @@
VkResult CreateRenderPass(VkDevice device,
const VkRenderPassCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkRenderPass* renderpass) {
*renderpass = AllocHandle(device, HandleType::kRenderPass);
return VK_SUCCESS;
@@ -631,6 +685,7 @@
VkResult CreateSampler(VkDevice device,
const VkSamplerCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkSampler* sampler) {
*sampler = AllocHandle(device, HandleType::kSampler);
return VK_SUCCESS;
@@ -638,6 +693,7 @@
VkResult CreateSemaphore(VkDevice device,
const VkSemaphoreCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkSemaphore* semaphore) {
*semaphore = AllocHandle(device, HandleType::kSemaphore);
return VK_SUCCESS;
@@ -645,6 +701,7 @@
VkResult CreateShader(VkDevice device,
const VkShaderCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkShader* shader) {
*shader = AllocHandle(device, HandleType::kShader);
return VK_SUCCESS;
@@ -652,6 +709,7 @@
VkResult CreateShaderModule(VkDevice device,
const VkShaderModuleCreateInfo*,
+ const VkAllocCallbacks* /*allocator*/,
VkShaderModule* module) {
*module = AllocHandle(device, HandleType::kShaderModule);
return VK_SUCCESS;
@@ -772,7 +830,7 @@
return VK_SUCCESS;
}
-void DestroyFence(VkDevice device, VkFence fence) {
+void DestroyFence(VkDevice device, VkFence fence, const VkAllocCallbacks* allocator) {
}
VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
@@ -788,10 +846,10 @@
return VK_SUCCESS;
}
-void DestroySemaphore(VkDevice device, VkSemaphore semaphore) {
+void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocCallbacks* allocator) {
}
-void DestroyEvent(VkDevice device, VkEvent event) {
+void DestroyEvent(VkDevice device, VkEvent event, const VkAllocCallbacks* allocator) {
}
VkResult GetEventStatus(VkDevice device, VkEvent event) {
@@ -809,7 +867,7 @@
return VK_SUCCESS;
}
-void DestroyQueryPool(VkDevice device, VkQueryPool queryPool) {
+void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocCallbacks* allocator) {
}
VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) {
@@ -817,23 +875,23 @@
return VK_SUCCESS;
}
-void DestroyBufferView(VkDevice device, VkBufferView bufferView) {
+void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocCallbacks* allocator) {
}
void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) {
ALOGV("TODO: vk%s", __FUNCTION__);
}
-void DestroyImageView(VkDevice device, VkImageView imageView) {
+void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocCallbacks* allocator) {
}
-void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule) {
+void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocCallbacks* allocator) {
}
-void DestroyShader(VkDevice device, VkShader shader) {
+void DestroyShader(VkDevice device, VkShader shader, const VkAllocCallbacks* allocator) {
}
-void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache) {
+void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocCallbacks* allocator) {
}
VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData) {
@@ -846,19 +904,19 @@
return VK_SUCCESS;
}
-void DestroyPipeline(VkDevice device, VkPipeline pipeline) {
+void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocCallbacks* allocator) {
}
-void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout) {
+void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocCallbacks* allocator) {
}
-void DestroySampler(VkDevice device, VkSampler sampler) {
+void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocCallbacks* allocator) {
}
-void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout) {
+void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocCallbacks* allocator) {
}
-void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool) {
+void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocCallbacks* allocator) {
}
VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) {
@@ -875,19 +933,16 @@
return VK_SUCCESS;
}
-void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer) {
+void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocCallbacks* allocator) {
}
-void DestroyRenderPass(VkDevice device, VkRenderPass renderPass) {
+void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocCallbacks* allocator) {
}
void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) {
ALOGV("TODO: vk%s", __FUNCTION__);
}
-void DestroyCommandPool(VkDevice device, VkCmdPool cmdPool) {
-}
-
VkResult ResetCommandPool(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags) {
ALOGV("TODO: vk%s", __FUNCTION__);
return VK_SUCCESS;
diff --git a/vulkan/nulldrv/null_driver.h b/vulkan/nulldrv/null_driver.h
index f07d61c..557d0db 100644
--- a/vulkan/nulldrv/null_driver.h
+++ b/vulkan/nulldrv/null_driver.h
@@ -27,7 +27,7 @@
PFN_vkVoidFunction LookupDeviceProcAddr(const char* name);
// clang-format off
-void DestroyInstance(VkInstance instance);
+void DestroyInstance(VkInstance instance, const VkAllocCallbacks* allocator);
VkResult EnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
void GetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
void GetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
@@ -37,8 +37,8 @@
void GetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const char* pName);
PFN_vkVoidFunction GetDeviceProcAddr(VkDevice device, const char* pName);
-VkResult CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
-void DestroyDevice(VkDevice device);
+VkResult CreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkDevice* pDevice);
+void DestroyDevice(VkDevice device, const VkAllocCallbacks* allocator);
VkResult EnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
VkResult EnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pCount, VkExtensionProperties* pProperties);
VkResult EnumerateInstanceLayerProperties(uint32_t* pCount, VkLayerProperties* pProperties);
@@ -47,8 +47,8 @@
VkResult QueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmitInfo, VkFence fence);
VkResult QueueWaitIdle(VkQueue queue);
VkResult DeviceWaitIdle(VkDevice device);
-VkResult AllocMemory(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
-void FreeMemory(VkDevice device, VkDeviceMemory mem);
+VkResult AllocMemory(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, const VkAllocCallbacks* allocator, VkDeviceMemory* pMem);
+void FreeMemory(VkDevice device, VkDeviceMemory mem, const VkAllocCallbacks* allocator);
VkResult MapMemory(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
void UnmapMemory(VkDevice device, VkDeviceMemory mem);
VkResult FlushMappedMemoryRanges(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
@@ -63,60 +63,60 @@
VkResult QueueBindSparseBufferMemory(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
VkResult QueueBindSparseImageOpaqueMemory(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo);
VkResult QueueBindSparseImageMemory(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo);
-VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
-void DestroyFence(VkDevice device, VkFence fence);
+VkResult CreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkFence* pFence);
+void DestroyFence(VkDevice device, VkFence fence, const VkAllocCallbacks* allocator);
VkResult ResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
VkResult GetFenceStatus(VkDevice device, VkFence fence);
VkResult WaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
-VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore);
-void DestroySemaphore(VkDevice device, VkSemaphore semaphore);
-VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent);
-void DestroyEvent(VkDevice device, VkEvent event);
+VkResult CreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkSemaphore* pSemaphore);
+void DestroySemaphore(VkDevice device, VkSemaphore semaphore, const VkAllocCallbacks* allocator);
+VkResult CreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkEvent* pEvent);
+void DestroyEvent(VkDevice device, VkEvent event, const VkAllocCallbacks* allocator);
VkResult GetEventStatus(VkDevice device, VkEvent event);
VkResult SetEvent(VkDevice device, VkEvent event);
VkResult ResetEvent(VkDevice device, VkEvent event);
-VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
-void DestroyQueryPool(VkDevice device, VkQueryPool queryPool);
+VkResult CreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkQueryPool* pQueryPool);
+void DestroyQueryPool(VkDevice device, VkQueryPool queryPool, const VkAllocCallbacks* allocator);
VkResult GetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
-VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
-void DestroyBuffer(VkDevice device, VkBuffer buffer);
-VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
-void DestroyBufferView(VkDevice device, VkBufferView bufferView);
-VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage);
-void DestroyImage(VkDevice device, VkImage image);
+VkResult CreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkBuffer* pBuffer);
+void DestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocCallbacks* allocator);
+VkResult CreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkBufferView* pView);
+void DestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocCallbacks* allocator);
+VkResult CreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkImage* pImage);
+void DestroyImage(VkDevice device, VkImage image, const VkAllocCallbacks* allocator);
void GetImageSubresourceLayout(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
-VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView);
-void DestroyImageView(VkDevice device, VkImageView imageView);
-VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule);
-void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule);
-VkResult CreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader);
-void DestroyShader(VkDevice device, VkShader shader);
-VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
-void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache);
+VkResult CreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkImageView* pView);
+void DestroyImageView(VkDevice device, VkImageView imageView, const VkAllocCallbacks* allocator);
+VkResult CreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkShaderModule* pShaderModule);
+void DestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocCallbacks* allocator);
+VkResult CreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkShader* pShader);
+void DestroyShader(VkDevice device, VkShader shader, const VkAllocCallbacks* allocator);
+VkResult CreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkPipelineCache* pPipelineCache);
+void DestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const VkAllocCallbacks* allocator);
VkResult GetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
VkResult MergePipelineCaches(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
-VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
-VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
-void DestroyPipeline(VkDevice device, VkPipeline pipeline);
-VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
-void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout);
-VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
-void DestroySampler(VkDevice device, VkSampler sampler);
-VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
-void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout);
-VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
-void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool);
+VkResult CreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* allocator, VkPipeline* pPipelines);
+VkResult CreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocCallbacks* allocator, VkPipeline* pPipelines);
+void DestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocCallbacks* allocator);
+VkResult CreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkPipelineLayout* pPipelineLayout);
+void DestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocCallbacks* allocator);
+VkResult CreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkSampler* pSampler);
+void DestroySampler(VkDevice device, VkSampler sampler, const VkAllocCallbacks* allocator);
+VkResult CreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkDescriptorSetLayout* pSetLayout);
+void DestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocCallbacks* allocator);
+VkResult CreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkDescriptorPool* pDescriptorPool);
+void DestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocCallbacks* allocator);
VkResult ResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
VkResult AllocDescriptorSets(VkDevice device, const VkDescriptorSetAllocInfo* pAllocInfo, VkDescriptorSet* pDescriptorSets);
VkResult FreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t count, const VkDescriptorSet* pDescriptorSets);
void UpdateDescriptorSets(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
-VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
-void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer);
-VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass);
-void DestroyRenderPass(VkDevice device, VkRenderPass renderPass);
+VkResult CreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkFramebuffer* pFramebuffer);
+void DestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocCallbacks* allocator);
+VkResult CreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkRenderPass* pRenderPass);
+void DestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocCallbacks* allocator);
void GetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
-VkResult CreateCommandPool(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, VkCmdPool* pCmdPool);
-void DestroyCommandPool(VkDevice device, VkCmdPool cmdPool);
+VkResult CreateCommandPool(VkDevice device, const VkCmdPoolCreateInfo* pCreateInfo, const VkAllocCallbacks* allocator, VkCmdPool* pCmdPool);
+void DestroyCommandPool(VkDevice device, VkCmdPool cmdPool, const VkAllocCallbacks* allocator);
VkResult ResetCommandPool(VkDevice device, VkCmdPool cmdPool, VkCmdPoolResetFlags flags);
VkResult AllocCommandBuffers(VkDevice device, const VkCmdBufferAllocInfo* pAllocInfo, VkCmdBuffer* pCmdBuffers);
void FreeCommandBuffers(VkDevice device, VkCmdPool cmdPool, uint32_t count, const VkCmdBuffer* pCommandBuffers);
diff --git a/vulkan/tools/vkinfo.cpp b/vulkan/tools/vkinfo.cpp
index f92b62c..63e0d5f 100644
--- a/vulkan/tools/vkinfo.cpp
+++ b/vulkan/tools/vkinfo.cpp
@@ -158,13 +158,12 @@
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
.pNext = nullptr,
.pAppInfo = nullptr,
- .pAllocCb = nullptr,
- .layerCount = 0,
+ .enabledLayerNameCount = 0,
.ppEnabledLayerNames = nullptr,
- .extensionCount = 0,
+ .enabledExtensionNameCount = 0,
.ppEnabledExtensionNames = nullptr,
};
- result = vkCreateInstance(&create_info, &instance);
+ result = vkCreateInstance(&create_info, nullptr, &instance);
if (result != VK_SUCCESS)
die("vkCreateInstance", result);
@@ -189,7 +188,7 @@
for (uint32_t i = 0; i < physical_devices.size(); i++)
DumpPhysicalDevice(i, physical_devices[i]);
- vkDestroyInstance(instance);
+ vkDestroyInstance(instance, nullptr);
return 0;
}