vulkan: Update from version 0.189.0 to 0.190.0
Change-Id: I0ac3f2797b65ef49cca90e76a47f1e6ca3a341a3
(cherry picked from commit 888efcf06fdbfa02587ffbfaa8fe6ca8e1b6e58a)
diff --git a/vulkan/api/platform.api b/vulkan/api/platform.api
index 889ac2c..980722d 100644
--- a/vulkan/api/platform.api
+++ b/vulkan/api/platform.api
@@ -23,13 +23,15 @@
type u64 size_t
-// VK_USE_PLATFORM_X11_KHR
+// VK_USE_PLATFORM_XLIB_KHR
@internal class Display {}
@internal class Window {}
+@internal type u64 VisualID
// VK_USE_PLATFORM_XCB_KHR
@internal class xcb_connection_t {}
@internal type u32 xcb_window_t
+@internal type u32 xcb_visualid_t
// VK_USE_PLATFORM_WAYLAND_KHR
@internal class wl_display {}
diff --git a/vulkan/api/vulkan.api b/vulkan/api/vulkan.api
index 5d0a7f8..0c6a3cc 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 189
+define VERSION_MINOR 190
define VERSION_PATCH 0
// API limits
@@ -45,35 +45,35 @@
// API keyword, but needs special handling by some templates
define NULL_HANDLE 0
-@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_REVISION 19
+@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_REVISION 20
@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER 1
@extension("VK_EXT_KHR_surface") define VK_EXT_KHR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_surface"
-@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_REVISION 59
+@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_REVISION 62
@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
@extension("VK_EXT_KHR_swapchain") define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_swapchain"
-@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_REVISION 16
+@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_REVISION 17
@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 3
@extension("VK_EXT_KHR_display") define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display"
-@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_REVISION 14
+@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_REVISION 6
@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 4
@extension("VK_EXT_KHR_display_swapchain") define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display_swapchain"
-@extension("VK_EXT_KHR_x11_surface") define VK_EXT_KHR_X11_SURFACE_REVISION 1
-@extension("VK_EXT_KHR_x11_surface") define VK_EXT_KHR_X11_SURFACE_NUMBER 4
-@extension("VK_EXT_KHR_x11_surface") define VK_EXT_KHR_X11_SURFACE_NAME "VK_EXT_KHR_x11_surface"
+@extension("VK_EXT_KHR_xlib_surface") define VK_EXT_KHR_XLIB_SURFACE_REVISION 3
+@extension("VK_EXT_KHR_xlib_surface") define VK_EXT_KHR_XLIB_SURFACE_NUMBER 5
+@extension("VK_EXT_KHR_xlib_surface") define VK_EXT_KHR_XLIB_SURFACE_NAME "VK_EXT_KHR_xlib_surface"
-@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_REVISION 1
+@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_REVISION 3
@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_NUMBER 6
@extension("VK_EXT_KHR_xcb_surface") define VK_EXT_KHR_XCB_SURFACE_NAME "VK_EXT_KHR_xcb_surface"
-@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 1
+@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 2
@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_NUMBER 7
@extension("VK_EXT_KHR_wayland_surface") define VK_EXT_KHR_WAYLAND_SURFACE_NAME "VK_EXT_KHR_wayland_surface"
-@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_REVISION 1
+@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_REVISION 2
@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_NUMBER 8
@extension("VK_EXT_KHR_mir_surface") define VK_EXT_KHR_MIR_SURFACE_NAME "VK_EXT_KHR_mir_surface"
@@ -81,7 +81,7 @@
@extension("VK_EXT_KHR_android_surface") define VK_EXT_KHR_ANDROID_SURFACE_NUMBER 8
@extension("VK_EXT_KHR_android_surface") define VK_EXT_KHR_ANDROID_SURFACE_NAME "VK_EXT_KHR_android_surface"
-@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_REVISION 1
+@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_REVISION 2
@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_NUMBER 9
@extension("VK_EXT_KHR_win32_surface") define VK_EXT_KHR_WIN32_SURFACE_NAME "VK_EXT_KHR_win32_surface"
@@ -620,13 +620,14 @@
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_BIND_SPARSE_INFO = 51,
//@extension("VK_EXT_KHR_swapchain")
VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 0xc0000801,
//@extension("VK_EXT_KHR_display")
VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 0xc0000c00,
- VK_STRUCTURE_TYPE_SURFACE_DESCRIPTION_DISPLAY_PLAN_KHR = 0xc0000c01,
+ VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 0xc0000c01,
//@extension("VK_EXT_KHR_display_swapchain")
VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR = 0xc0001000,
@@ -663,6 +664,9 @@
VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8,
VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7,
+ //@extension("VK_EXT_KHR_surface")
+ VK_ERROR_SURFACE_LOST_KHR = 0xC0000400,
+
//@extension("VK_EXT_KHR_swapchain")
VK_ERROR_OUT_OF_DATE_KHR = 0xC0000804,
@@ -810,8 +814,8 @@
/// Descriptor pool reset flags
type VkFlags VkDescriptorPoolResetFlags
-bitfield VkDescriptorPoolResetFlagBits {
-}
+//bitfield VkDescriptorPoolResetFlagBits {
+//}
/// Image usage flags
type VkFlags VkImageUsageFlags
@@ -868,8 +872,8 @@
/// Semaphore creation flags
type VkFlags VkSemaphoreCreateFlags
-bitfield VkSemaphoreCreateFlagBits {
-}
+//bitfield VkSemaphoreCreateFlagBits {
+//}
/// Format capability flags
type VkFlags VkFormatFeatureFlags
@@ -906,18 +910,18 @@
/// Shader module creation flags
type VkFlags VkShaderModuleCreateFlags
-bitfield VkShaderModuleCreateFlagBits {
-}
+//bitfield VkShaderModuleCreateFlagBits {
+//}
/// Shader creation flags
type VkFlags VkShaderCreateFlags
-bitfield VkShaderCreateFlagBits {
-}
+//bitfield VkShaderCreateFlagBits {
+//}
/// Event creation flags
type VkFlags VkEventCreateFlags
-bitfield VkEventCreateFlagBits {
-}
+//bitfield VkEventCreateFlagBits {
+//}
/// Command buffer usage flags
type VkFlags VkCmdBufferUsageFlags
@@ -945,8 +949,8 @@
/// Memory mapping flags
type VkFlags VkMemoryMapFlags
-bitfield VkMemoryMapFlagBits {
-}
+//bitfield VkMemoryMapFlagBits {
+//}
/// Bitfield of image aspects
type VkFlags VkImageAspectFlags
@@ -1040,6 +1044,111 @@
VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
}
+/// Instance creation flags
+type VkFlags VkInstanceCreateFlags
+//bitfield VkInstanceCreateFlagBits {
+//}
+
+/// Device creation flags
+type VkFlags VkDeviceCreateFlags
+//bitfield VkDeviceCreateFlagBits {
+//}
+
+/// Device queue creation flags
+type VkFlags VkDeviceQueueCreateFlags
+//bitfield VkDeviceQueueCreateFlagBits {
+//}
+
+/// Query pool creation flags
+type VkFlags VkQueryPoolCreateFlags
+//bitfield VkQueryPoolCreateFlagBits {
+//}
+
+/// Buffer view creation flags
+type VkFlags VkBufferViewCreateFlags
+//bitfield VkBufferViewCreateFlagBits {
+//}
+
+/// Pipeline cache creation flags
+type VkFlags VkPipelineCacheCreateFlags
+//bitfield VkPipelineCacheCreateFlagBits {
+//}
+
+/// Pipeline shader stage creation flags
+type VkFlags VkPipelineShaderStageCreateFlags
+//bitfield VkPipelineShaderStageCreateFlagBits {
+//}
+
+/// Descriptor set layout creation flags
+type VkFlags VkDescriptorSetLayoutCreateFlags
+//bitfield VkDescriptorSetLayoutCreateFlagBits {
+//}
+
+/// Pipeline vertex input state creation flags
+type VkFlags VkPipelineVertexInputStateCreateFlags
+//bitfield VkPipelineVertexInputStateCreateFlagBits {
+//}
+
+/// Pipeline input assembly state creation flags
+type VkFlags VkPipelineInputAssemblyStateCreateFlags
+//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
+//}
+
+/// Tessellation state creation flags
+type VkFlags VkPipelineTessellationStateCreateFlags
+//bitfield VkPipelineTessellationStateCreateFlagBits {
+//}
+
+/// Viewport state creation flags
+type VkFlags VkPipelineViewportStateCreateFlags
+//bitfield VkPipelineViewportStateCreateFlagBits {
+//}
+
+/// Raster state creation flags
+type VkFlags VkPipelineRasterStateCreateFlags
+//bitfield VkPipelineRasterStateCreateFlagBits {
+//}
+
+/// Multisample state creation flags
+type VkFlags VkPipelineMultisampleStateCreateFlags
+//bitfield VkPipelineMultisampleStateCreateFlagBits {
+//}
+
+/// Color blend state creation flags
+type VkFlags VkPipelineColorBlendStateCreateFlags
+//bitfield VkPipelineColorBlendStateCreateFlagBits {
+//}
+
+/// Depth/stencil state creation flags
+type VkFlags VkPipelineDepthStencilStateCreateFlags
+//bitfield VkPipelineDepthStencilStateCreateFlagBits {
+//}
+
+/// Dynamic state creation flags
+type VkFlags VkPipelineDynamicStateCreateFlags
+//bitfield VkPipelineDynamicStateCreateFlagBits {
+//}
+
+/// Pipeline layout creation flags
+type VkFlags VkPipelineLayoutCreateFlags
+//bitfield VkPipelineLayoutCreateFlagBits {
+//}
+
+/// Sampler creation flags
+type VkFlags VkSamplerCreateFlags
+//bitfield VkSamplerCreateFlagBits {
+//}
+
+/// Render pass creation flags
+type VkFlags VkRenderPassCreateFlags
+//bitfield VkRenderPassCreateFlagBits {
+//}
+
+/// Framebuffer creation flags
+type VkFlags VkFramebufferCreateFlags
+//bitfield VkFramebufferCreateFlagBits {
+//}
+
@extension("VK_EXT_KHR_swapchain")
type VkFlags VkSurfaceTransformFlagsKHR
@extension("VK_EXT_KHR_swapchain")
@@ -1055,6 +1164,16 @@
VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
}
+@extension("VK_EXT_KHR_swapchain")
+type VkFlags VkCompositeAlphaFlagsKHR
+@extension("VK_EXT_KHR_swapchain")
+bitfield VkCompositeAlphaFlagBitsKHR {
+ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
+ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
+ VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
+ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
+}
+
@extension("VK_EXT_KHR_display")
type VkFlags VkDisplayPlaneAlphaFlagsKHR
@extension("VK_EXT_KHR_display")
@@ -1175,6 +1294,7 @@
class VkDeviceQueueCreateInfo {
VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkDeviceQueueCreateFlags flags
u32 queueFamilyIndex
u32 queuePriorityCount
const f32* pQueuePriorities
@@ -1183,6 +1303,7 @@
class VkDeviceCreateInfo {
VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkDeviceCreateFlags flags
u32 requestedQueueRecordCount
const VkDeviceQueueCreateInfo* pRequestedQueues
u32 enabledLayerNameCount
@@ -1195,6 +1316,7 @@
class VkInstanceCreateInfo {
VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkInstanceCreateFlags flags
const VkApplicationInfo* pAppInfo
u32 enabledLayerNameCount
const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
@@ -1314,9 +1436,9 @@
class VkBufferCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
const void* pNext /// Pointer to next structure.
+ VkBufferCreateFlags flags /// Buffer creation flags
VkDeviceSize size /// Specified in bytes
VkBufferUsageFlags usage /// Buffer usage flags
- VkBufferCreateFlags flags /// Buffer creation flags
VkSharingMode sharingMode
u32 queueFamilyIndexCount
const u32* pQueueFamilyIndices
@@ -1325,6 +1447,7 @@
class VkBufferViewCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
const void* pNext /// Pointer to next structure.
+ VkBufferViewCreateFlags flags
VkBuffer buffer
VkFormat format /// Optionally specifies format of elements
VkDeviceSize offset /// Specified in bytes
@@ -1380,6 +1503,7 @@
class VkImageCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
const void* pNext /// Pointer to next structure.
+ VkImageCreateFlags flags /// Image creation flags
VkImageType imageType
VkFormat format
VkExtent3D extent
@@ -1388,7 +1512,6 @@
u32 samples
VkImageTiling tiling
VkImageUsageFlags usage /// Image usage flags
- VkImageCreateFlags flags /// Image creation flags
VkSharingMode sharingMode /// Cross-queue-family sharing mode
u32 queueFamilyIndexCount /// Number of queue families to share across
const u32* pQueueFamilyIndices /// Array of queue family indices to share across
@@ -1405,12 +1528,12 @@
class VkImageViewCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkImageViewCreateFlags flags
VkImage image
VkImageViewType viewType
VkFormat format
VkChannelMapping channels
VkImageSubresourceRange subresourceRange
- VkImageViewCreateFlags flags
}
class VkBufferCopy {
@@ -1419,7 +1542,7 @@
VkDeviceSize copySize /// Specified in bytes
}
-class VkSparseMemoryBindInfo {
+class VkSparseMemoryBind {
VkDeviceSize rangeOffset /// Specified in bytes
VkDeviceSize rangeSize /// Specified in bytes
VkDeviceSize memOffset /// Specified in bytes
@@ -1427,7 +1550,7 @@
VkSparseMemoryBindFlags flags
}
-class VkSparseImageMemoryBindInfo {
+class VkSparseImageMemoryBind {
VkImageSubresource subresource
VkOffset3D offset
VkExtent3D extent
@@ -1436,6 +1559,39 @@
VkSparseMemoryBindFlags flags
}
+class VkSparseBufferMemoryBindInfo {
+ VkBuffer buffer
+ u32 bindCount
+ const VkSparseMemoryBind* pBinds
+}
+
+class VkSparseImageOpaqueMemoryBindInfo {
+ VkImage image
+ u32 bindCount
+ const VkSparseMemoryBind* pBinds
+}
+
+class VkSparseImageMemoryBindInfo {
+ VkImage image
+ u32 bindCount
+ const VkSparseMemoryBind* pBinds
+}
+
+class VkBindSparseInfo {
+ VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
+ const void* pNext
+ u32 waitSemaphoreCount
+ const VkSemaphore* pWaitSemaphores
+ u32 numBufferBinds
+ const VkSparseBufferMemoryBindInfo* pBufferBinds
+ u32 numImageOpaqueBinds
+ const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
+ u32 numImageBinds
+ const VkSparseImageMemoryBindInfo* pImageBinds
+ u32 signalSemaphoreCount
+ const VkSemaphore* pSignalSemaphores
+}
+
class VkImageSubresourceCopy {
VkImageAspectFlags aspect
u32 mipLevel
@@ -1480,17 +1636,17 @@
class VkShaderModuleCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkShaderModuleCreateFlags flags /// Reserved
platform.size_t codeSize /// Specified in bytes
const u32* pCode /// Binary code of size codeSize
- VkShaderModuleCreateFlags flags /// Reserved
}
class VkShaderCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkShaderCreateFlags flags /// Reserved
VkShaderModule module /// Module containing entry point
const char* pName /// Null-terminated entry point name
- VkShaderCreateFlags flags /// Reserved
VkShaderStageFlagBits stage
}
@@ -1504,6 +1660,7 @@
class VkDescriptorSetLayoutCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkDescriptorSetLayoutCreateFlags flags
u32 bindingCount /// Number of bindings in the descriptor set layout
const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
}
@@ -1546,6 +1703,7 @@
class VkPipelineShaderStageCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineShaderStageCreateFlags flags
VkShader shader
const VkSpecializationInfo* pSpecializationInfo
}
@@ -1553,8 +1711,8 @@
class VkComputePipelineCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
const void* pNext /// Pointer to next structure
- VkPipelineShaderStageCreateInfo stage
VkPipelineCreateFlags flags /// Pipeline creation flags
+ VkPipelineShaderStageCreateInfo stage
VkPipelineLayout layout /// Interface layout of the pipeline
VkPipeline basePipelineHandle /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
s32 basePipelineIndex /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
@@ -1576,6 +1734,7 @@
class VkPipelineVertexInputStateCreateInfo {
VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineVertexInputStateCreateFlags flags
u32 vertexBindingDescriptionCount /// number of bindings
const VkVertexInputBindingDescription* pVertexBindingDescriptions
u32 vertexAttributeDescriptionCount /// number of attributes
@@ -1585,6 +1744,7 @@
class VkPipelineInputAssemblyStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineInputAssemblyStateCreateFlags flags
VkPrimitiveTopology topology
VkBool32 primitiveRestartEnable
}
@@ -1592,12 +1752,14 @@
class VkPipelineTessellationStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineTessellationStateCreateFlags flags
u32 patchControlPoints
}
class VkPipelineViewportStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineViewportStateCreateFlags flags
u32 viewportCount
const VkViewport* pViewports
u32 scissorCount
@@ -1607,6 +1769,7 @@
class VkPipelineRasterStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTER_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineRasterStateCreateFlags flags
VkBool32 depthClampEnable
VkBool32 rasterizerDiscardEnable
VkFillMode fillMode /// optional (GL45)
@@ -1622,6 +1785,7 @@
class VkPipelineMultisampleStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineMultisampleStateCreateFlags flags
u32 rasterSamples /// Number of samples used for rasterization
VkBool32 sampleShadingEnable /// optional (GL45)
f32 minSampleShading /// optional (GL45)
@@ -1644,6 +1808,7 @@
class VkPipelineColorBlendStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineColorBlendStateCreateFlags flags
VkBool32 logicOpEnable
VkLogicOp logicOp
u32 attachmentCount /// # of pAttachments
@@ -1664,6 +1829,7 @@
class VkPipelineDepthStencilStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineDepthStencilStateCreateFlags flags
VkBool32 depthTestEnable
VkBool32 depthWriteEnable
VkCompareOp depthCompareOp
@@ -1678,15 +1844,17 @@
class VkPipelineDynamicStateCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineDynamicStateCreateFlags flags
u32 dynamicStateCount
const VkDynamicState* pDynamicStates
}
class VkGraphicsPipelineCreateInfo {
- VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
- const void* pNext /// Pointer to next structure
+ VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
+ const void* pNext /// Pointer to next structure
+ VkPipelineCreateFlags flags /// Pipeline creation flags
u32 stageCount
- const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
+ const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
const VkPipelineVertexInputStateCreateInfo* pVertexInputState
const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
const VkPipelineTessellationStateCreateInfo* pTessellationState
@@ -1696,17 +1864,17 @@
const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
const VkPipelineColorBlendStateCreateInfo* pColorBlendState
const VkPipelineDynamicStateCreateInfo* pDynamicState
- VkPipelineCreateFlags flags /// Pipeline creation flags
- VkPipelineLayout layout /// Interface layout of the pipeline
+ VkPipelineLayout layout /// Interface layout of the pipeline
VkRenderPass renderPass
u32 subpass
- VkPipeline basePipelineHandle /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
- s32 basePipelineIndex /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
+ VkPipeline basePipelineHandle /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
+ s32 basePipelineIndex /// If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
}
class VkPipelineCacheCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineCacheCreateFlags flags
platform.size_t initialSize /// Size of initial data to populate cache, in bytes
const void* initialData /// Initial data to populate cache
platform.size_t maxSize /// Maximum size cache can grow to, in bytes. If zero, then the cache may grow without bound.
@@ -1721,6 +1889,7 @@
class VkPipelineLayoutCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkPipelineLayoutCreateFlags flags
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
@@ -1730,6 +1899,7 @@
class VkSamplerCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkSamplerCreateFlags flags
VkFilter magFilter /// Filter mode for magnification
VkFilter minFilter /// Filter mode for minifiation
VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
@@ -1749,8 +1919,8 @@
class VkCmdPoolCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_CMD_POOL_CREATE_INFO
const void* pNext /// Pointer to next structure
- u32 queueFamilyIndex
VkCmdPoolCreateFlags flags /// Command pool creation flags
+ u32 queueFamilyIndex
}
class VkCmdBufferAllocInfo {
@@ -1809,6 +1979,7 @@
class VkAttachmentDescription {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION
const void* pNext /// Pointer to next structure
+ VkAttachmentDescriptionFlags flags
VkFormat format
u32 samples
VkAttachmentLoadOp loadOp /// Load op for color or depth data
@@ -1817,7 +1988,6 @@
VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
VkImageLayout initialLayout
VkImageLayout finalLayout
- VkAttachmentDescriptionFlags flags
}
class VkAttachmentReference {
@@ -1828,8 +1998,8 @@
class VkSubpassDescription {
VkStructureType sType /// Must be VK_STRUCTURE_SUBPASS_DESCRIPTION
const void* pNext /// Pointer to next structure
- VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
VkSubpassDescriptionFlags flags
+ VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
u32 inputAttachmentCount
const VkAttachmentReference* pInputAttachments
u32 colorAttachmentCount
@@ -1855,6 +2025,7 @@
class VkRenderPassCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkRenderPassCreateFlags flags
u32 attachmentCount
const VkAttachmentDescription* pAttachments
u32 subpassCount
@@ -2071,6 +2242,7 @@
class VkQueryPoolCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkQueryPoolCreateFlags flags
VkQueryType queryType
u32 slots
VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
@@ -2079,6 +2251,7 @@
class VkFramebufferCreateInfo {
VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
const void* pNext /// Pointer to next structure
+ VkFramebufferCreateFlags flags
VkRenderPass renderPass
u32 attachmentCount
const VkImageView* pAttachments
@@ -2117,6 +2290,7 @@
VkExtent2D maxImageExtent
VkSurfaceTransformFlagsKHR supportedTransforms
VkSurfaceTransformKHR currentTransform
+ VkCompositeAlphaFlagsKHR supportedCompositeAlpha
u32 maxImageArraySize
VkImageUsageFlags supportedUsageFlags
}
@@ -2138,6 +2312,7 @@
VkExtent2D imageExtent
VkImageUsageFlags imageUsageFlags
VkSurfaceTransformKHR preTransform
+ VkCompositeAlphaFlagBitsKHR compositeAlpha
u32 imageArraySize
VkSharingMode sharingMode
u32 queueFamilyIndexCount
@@ -2163,41 +2338,37 @@
VkExtent2D physicalDimensions
VkExtent2D physicalResolution
VkSurfaceTransformFlagsKHR supportedTransforms
- u32 planeCount
VkBool32 planeReorderPossible
+ VkBool32 persistentContent
}
@extension("VK_EXT_KHR_display")
-class VkDisplayTimingKHR {
- u32 pixelClock
+class VkDisplayModeParametersKHR {
VkExtent2D visibleRegion
- VkExtent2D totalRegion
- VkExtent2D physicalDimensions
- u32 hSyncStart
- u32 hSyncEnd
- u32 vSyncStart
- u32 vSyncEnd
- VkBool32 interlaced
- VkBool32 doublescan
- VkBool32 hSyncPos
- VkBool32 vSyncPos
+ u32 refreshRate
}
@extension("VK_EXT_KHR_display")
class VkDisplayModePropertiesKHR {
VkDisplayModeKHR displayMode
- VkDisplayTimingKHR timing
+ VkDisplayModeParametersKHR parameters
}
@extension("VK_EXT_KHR_display")
class VkDisplayModeCreateInfoKHR {
VkStructureType sType
const void* pNext
- VkDisplayTimingKHR timing
+ VkDisplayModeParametersKHR parameters
}
@extension("VK_EXT_KHR_display")
class VkDisplayPlanePropertiesKHR {
+ VkDisplayKHR currentDisplay
+ u32 currentStackIndex
+}
+
+@extension("VK_EXT_KHR_display")
+class VkDisplayPlaneCapabilitiesKHR {
VkDisplayPlaneAlphaFlagsKHR supportedAlpha
VkOffset2D minSrcPosition
VkOffset2D maxSrcPosition
@@ -2210,7 +2381,7 @@
}
@extension("VK_EXT_KHR_display")
-class VkSurfaceDescriptionDisplayPlaneKHR {
+class VkDisplaySurfaceCreateInfoKHR {
VkStructureType sType
const void* pNext
VkDisplayModeKHR displayMode
@@ -2235,6 +2406,7 @@
const void* pNext
VkRect2D srcRect
VkRect2D dstRect
+ VkBool32 persistent
}
@@ -2801,37 +2973,12 @@
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
}
-cmd VkResult vkQueueBindSparseBufferMemory(
+cmd VkResult vkQueueBindSparse(
VkQueue queue,
- VkBuffer buffer,
u32 bindInfoCount,
- const VkSparseMemoryBindInfo* pBindInfo) {
+ const VkBindSparseInfo* pBindInfo,
+ VkFence fence) {
queueObject := GetQueue(queue)
- bufferObject := GetBuffer(buffer)
- assert(bufferObject.device == queueObject.device)
-
- return ?
-}
-
-cmd VkResult vkQueueBindSparseImageOpaqueMemory(
- VkQueue queue,
- VkImage image,
- u32 bindInfoCount,
- const VkSparseMemoryBindInfo* pBindInfo) {
- queueObject := GetQueue(queue)
- imageObject := GetImage(image)
- assert(imageObject.device == queueObject.device)
-
- return ?
-}
-
-cmd VkResult vkQueueBindSparseImageMemory(
- VkQueue queue,
- VkImage image,
- u32 bindInfoCount,
- const VkSparseImageMemoryBindInfo* pBindInfo) {
- queueObject := GetQueue(queue)
- imageObject := GetImage(image)
return ?
}
@@ -4490,7 +4637,7 @@
}
@extension("VK_EXT_KHR_surface")
-cmd VkBool32 vkGetPhysicalDeviceSurfaceSupportKHR(
+cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
VkPhysicalDevice physicalDevice,
u32 queueFamilyIndex,
VkSurfaceKHR surface) {
@@ -4640,6 +4787,24 @@
}
@extension("VK_EXT_KHR_display")
+cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+ VkPhysicalDevice physicalDevice,
+ u32* pPropertyCount,
+ VkDisplayPlanePropertiesKHR* pProperties) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
+@extension("VK_EXT_KHR_display")
+cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
+ VkPhysicalDevice physicalDevice,
+ u32* pPropertyCount,
+ VkDisplayKHR* pProperties) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
+@extension("VK_EXT_KHR_display")
cmd VkResult vkGetDisplayModePropertiesKHR(
VkPhysicalDevice physicalDevice,
VkDisplayKHR display,
@@ -4660,38 +4825,63 @@
}
@extension("VK_EXT_KHR_display")
-cmd VkResult vkGetDisplayPlanePropertiesKHR(
+cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
VkPhysicalDevice physicalDevice,
- VkDisplayKHR display,
- VkDisplayModeKHR mode,
+ VkDisplayModeCreateInfoKHR mode,
u32 planeIndex,
- VkDisplayPlanePropertiesKHR* pProperties) {
+ VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
physicalDeviceObject := GetPhysicalDevice(physicalDevice)
return ?
}
-@extension("VK_EXT_KHR_x11_surface")
-cmd VkResult vkCreateX11SurfaceKHR(
+@extension("VK_EXT_KHR_display")
+cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
+ VkInstance instance,
+ const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
+ VkSurfaceKHR* pSurface) {
+ return ?
+}
+
+@extension("VK_EXT_KHR_xlib_surface")
+cmd VkResult vkCreateXlibSurfaceKHR(
VkInstance instance,
platform.Display* dpy,
- platform.Window root,
platform.Window window,
VkSurfaceKHR* pSurface) {
instanceObject := GetInstance(instance)
return ?
}
+@extension("VK_EXT_KHR_xlib_surface")
+cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ u32 queueFamilyIndex,
+ platform.Display* dpy,
+ platform.VisualID visualId) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
@extension("VK_EXT_KHR_xcb_surface")
cmd VkResult vkCreateXCBSurfaceKHR(
VkInstance instance,
platform.xcb_connection_t* connection,
- platform.xcb_window_t root,
platform.xcb_window_t window,
VkSurfaceKHR* pSurface) {
instanceObject := GetInstance(instance)
return ?
}
+@extension("VK_EXT_KHR_xlib_surface")
+cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ u32 queueFamilyIndex,
+ platform.xcb_connection_t* connection,
+ platform.xcb_visualid_t visual_id) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
@extension("VK_EXT_KHR_wayland_surface")
cmd VkResult vkCreateWaylandSurfaceKHR(
VkInstance instance,
@@ -4702,6 +4892,15 @@
return ?
}
+@extension("VK_EXT_KHR_wayland_surface")
+cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ u32 queueFamilyIndex,
+ platform.wl_display* display) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
@extension("VK_EXT_KHR_mir_surface")
cmd VkResult vkCreateMirSurfaceKHR(
VkInstance instance,
@@ -4712,6 +4911,15 @@
return ?
}
+@extension("VK_EXT_KHR_mir_surface")
+cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ u32 queueFamilyIndex,
+ platform.MirConnection* connection) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
@extension("VK_EXT_KHR_android_surface")
cmd VkResult vkCreateAndroidSurfaceKHR(
VkInstance instance,
@@ -4731,6 +4939,14 @@
return ?
}
+@extension("VK_EXT_KHR_win32_surface")
+cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ u32 queueFamilyIndex) {
+ physicalDeviceObject := GetPhysicalDevice(physicalDevice)
+ return ?
+}
+
////////////////
// Validation //
diff --git a/vulkan/include/vulkan/vk_platform.h b/vulkan/include/vulkan/vk_platform.h
index 14dc553..8d51524 100644
--- a/vulkan/include/vulkan/vk_platform.h
+++ b/vulkan/include/vulkan/vk_platform.h
@@ -91,7 +91,7 @@
#include <windows.h>
#endif
-#ifdef VK_USE_PLATFORM_X11_KHR
+#ifdef VK_USE_PLATFORM_XLIB_KHR
#include <X11/Xlib.h>
#endif
diff --git a/vulkan/include/vulkan/vulkan.h b/vulkan/include/vulkan/vulkan.h
index dc977e5..dcc5301 100644
--- a/vulkan/include/vulkan/vulkan.h
+++ b/vulkan/include/vulkan/vulkan.h
@@ -1,5 +1,5 @@
-#ifndef __vulkan_h_
-#define __vulkan_h_ 1
+#ifndef __vulkanext_h_
+#define __vulkanext_h_ 1
#ifdef __cplusplus
extern "C" {
@@ -41,7 +41,7 @@
((major << 22) | (minor << 12) | patch)
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 189, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 190, 0)
#define VK_NULL_HANDLE 0
@@ -59,8 +59,8 @@
-typedef uint32_t VkBool32;
typedef uint32_t VkFlags;
+typedef uint32_t VkBool32;
typedef uint64_t VkDeviceSize;
typedef uint32_t VkSampleMask;
@@ -182,9 +182,10 @@
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_BIND_SPARSE_INFO = 51,
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
- 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_END_RANGE = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO,
+ VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_BIND_SPARSE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
} VkStructureType;
@@ -763,6 +764,7 @@
VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
} VkRenderPassContents;
+typedef VkFlags VkInstanceCreateFlags;
typedef enum {
VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
@@ -833,6 +835,8 @@
VK_MEMORY_HEAP_HOST_LOCAL_BIT = 0x00000001,
} VkMemoryHeapFlagBits;
typedef VkFlags VkMemoryHeapFlags;
+typedef VkFlags VkDeviceCreateFlags;
+typedef VkFlags VkDeviceQueueCreateFlags;
typedef VkFlags VkMemoryMapFlags;
typedef enum {
@@ -860,6 +864,7 @@
typedef VkFlags VkFenceCreateFlags;
typedef VkFlags VkSemaphoreCreateFlags;
typedef VkFlags VkEventCreateFlags;
+typedef VkFlags VkQueryPoolCreateFlags;
typedef enum {
VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
@@ -886,6 +891,13 @@
typedef VkFlags VkQueryResultFlags;
typedef enum {
+ VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
+ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
+ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
+} VkBufferCreateFlagBits;
+typedef VkFlags VkBufferCreateFlags;
+
+typedef enum {
VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
@@ -897,20 +909,14 @@
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
} VkBufferUsageFlagBits;
typedef VkFlags VkBufferUsageFlags;
-
-typedef enum {
- VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
- VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
- VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
-} VkBufferCreateFlagBits;
-typedef VkFlags VkBufferCreateFlags;
-typedef VkFlags VkImageAspectFlags;
+typedef VkFlags VkBufferViewCreateFlags;
typedef enum {
VK_IMAGE_VIEW_CREATE_READ_ONLY_DEPTH_BIT = 0x00000001,
VK_IMAGE_VIEW_CREATE_READ_ONLY_STENCIL_BIT = 0x00000002,
} VkImageViewCreateFlagBits;
typedef VkFlags VkImageViewCreateFlags;
+typedef VkFlags VkImageAspectFlags;
typedef VkFlags VkShaderModuleCreateFlags;
typedef VkFlags VkShaderCreateFlags;
@@ -923,6 +929,23 @@
VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
} VkShaderStageFlagBits;
+typedef VkFlags VkPipelineCacheCreateFlags;
+
+typedef enum {
+ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
+ VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
+ VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
+} VkPipelineCreateFlagBits;
+typedef VkFlags VkPipelineCreateFlags;
+typedef VkFlags VkPipelineShaderStageCreateFlags;
+typedef VkFlags VkPipelineVertexInputStateCreateFlags;
+typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
+typedef VkFlags VkPipelineTesselationStateCreateFlags;
+typedef VkFlags VkPipelineViewportStateCreateFlags;
+typedef VkFlags VkPipelineRasterStateCreateFlags;
+typedef VkFlags VkPipelineMultisampleStateCreateFlags;
+typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
+typedef VkFlags VkPipelineColorBlendStateCreateFlags;
typedef enum {
VK_CHANNEL_R_BIT = 0x00000001,
@@ -931,20 +954,19 @@
VK_CHANNEL_A_BIT = 0x00000008,
} VkChannelFlagBits;
typedef VkFlags VkChannelFlags;
-
-typedef enum {
- VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
- VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
- VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
-} VkPipelineCreateFlagBits;
-typedef VkFlags VkPipelineCreateFlags;
+typedef VkFlags VkPipelineDynamicStateCreateFlags;
+typedef VkFlags VkPipelineLayoutCreateFlags;
typedef VkFlags VkShaderStageFlags;
+typedef VkFlags VkSamplerCreateFlags;
+typedef VkFlags VkDescriptorSetLayoutCreateFlags;
typedef enum {
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
} VkDescriptorPoolCreateFlagBits;
typedef VkFlags VkDescriptorPoolCreateFlags;
typedef VkFlags VkDescriptorPoolResetFlags;
+typedef VkFlags VkFramebufferCreateFlags;
+typedef VkFlags VkRenderPassCreateFlags;
typedef enum {
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
@@ -1074,6 +1096,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkInstanceCreateFlags flags;
const VkApplicationInfo* pAppInfo;
uint32_t enabledLayerNameCount;
const char*const* ppEnabledLayerNames;
@@ -1314,6 +1337,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkDeviceQueueCreateFlags flags;
uint32_t queueFamilyIndex;
uint32_t queuePriorityCount;
const float* pQueuePriorities;
@@ -1322,6 +1346,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkDeviceCreateFlags flags;
uint32_t requestedQueueCount;
const VkDeviceQueueCreateInfo* pRequestedQueues;
uint32_t enabledLayerNameCount;
@@ -1395,7 +1420,19 @@
VkDeviceSize memOffset;
VkDeviceMemory mem;
VkSparseMemoryBindFlags flags;
-} VkSparseMemoryBindInfo;
+} VkSparseMemoryBind;
+
+typedef struct {
+ VkBuffer buffer;
+ uint32_t bindCount;
+ const VkSparseMemoryBind* pBinds;
+} VkSparseBufferMemoryBindInfo;
+
+typedef struct {
+ VkImage image;
+ uint32_t bindCount;
+ const VkSparseMemoryBind* pBinds;
+} VkSparseImageOpaqueMemoryBindInfo;
typedef struct {
VkImageAspectFlagBits aspect;
@@ -1416,11 +1453,32 @@
VkDeviceSize memOffset;
VkDeviceMemory mem;
VkSparseMemoryBindFlags flags;
+} VkSparseImageMemoryBind;
+
+typedef struct {
+ VkImage image;
+ uint32_t bindCount;
+ const VkSparseImageMemoryBind* pBinds;
} VkSparseImageMemoryBindInfo;
typedef struct {
VkStructureType sType;
const void* pNext;
+ uint32_t waitSemaphoreCount;
+ const VkSemaphore* pWaitSemaphores;
+ uint32_t bufferBindCount;
+ const VkSparseBufferMemoryBindInfo* pBufferBinds;
+ uint32_t imageOpaqueBindCount;
+ const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
+ uint32_t imageBindCount;
+ const VkSparseImageMemoryBindInfo* pImageBinds;
+ uint32_t signalSemaphoreCount;
+ const VkSemaphore* pSignalSemaphores;
+} VkBindSparseInfo;
+
+typedef struct {
+ VkStructureType sType;
+ const void* pNext;
VkFenceCreateFlags flags;
} VkFenceCreateInfo;
@@ -1439,6 +1497,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkQueryPoolCreateFlags flags;
VkQueryType queryType;
uint32_t slots;
VkQueryPipelineStatisticFlags pipelineStatistics;
@@ -1447,9 +1506,9 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkBufferCreateFlags flags;
VkDeviceSize size;
VkBufferUsageFlags usage;
- VkBufferCreateFlags flags;
VkSharingMode sharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
@@ -1458,6 +1517,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkBufferViewCreateFlags flags;
VkBuffer buffer;
VkFormat format;
VkDeviceSize offset;
@@ -1467,6 +1527,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkImageCreateFlags flags;
VkImageType imageType;
VkFormat format;
VkExtent3D extent;
@@ -1475,7 +1536,6 @@
uint32_t samples;
VkImageTiling tiling;
VkImageUsageFlags usage;
- VkImageCreateFlags flags;
VkSharingMode sharingMode;
uint32_t queueFamilyIndexCount;
const uint32_t* pQueueFamilyIndices;
@@ -1507,34 +1567,35 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkImageViewCreateFlags flags;
VkImage image;
VkImageViewType viewType;
VkFormat format;
VkChannelMapping channels;
VkImageSubresourceRange subresourceRange;
- VkImageViewCreateFlags flags;
} VkImageViewCreateInfo;
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkShaderModuleCreateFlags flags;
size_t codeSize;
const uint32_t* pCode;
- VkShaderModuleCreateFlags flags;
} VkShaderModuleCreateInfo;
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkShaderCreateFlags flags;
VkShaderModule module;
const char* pName;
- VkShaderCreateFlags flags;
VkShaderStageFlagBits stage;
} VkShaderCreateInfo;
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineCacheCreateFlags flags;
size_t initialSize;
const void* initialData;
size_t maxSize;
@@ -1556,6 +1617,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineShaderStageCreateFlags flags;
VkShader shader;
const VkSpecializationInfo* pSpecializationInfo;
} VkPipelineShaderStageCreateInfo;
@@ -1576,6 +1638,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineVertexInputStateCreateFlags flags;
uint32_t vertexBindingDescriptionCount;
const VkVertexInputBindingDescription* pVertexBindingDescriptions;
uint32_t vertexAttributeDescriptionCount;
@@ -1585,6 +1648,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineInputAssemblyStateCreateFlags flags;
VkPrimitiveTopology topology;
VkBool32 primitiveRestartEnable;
} VkPipelineInputAssemblyStateCreateInfo;
@@ -1592,6 +1656,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineTesselationStateCreateFlags flags;
uint32_t patchControlPoints;
} VkPipelineTessellationStateCreateInfo;
@@ -1622,6 +1687,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineViewportStateCreateFlags flags;
uint32_t viewportCount;
const VkViewport* pViewports;
uint32_t scissorCount;
@@ -1631,6 +1697,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineRasterStateCreateFlags flags;
VkBool32 depthClampEnable;
VkBool32 rasterizerDiscardEnable;
VkFillMode fillMode;
@@ -1646,6 +1713,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineMultisampleStateCreateFlags flags;
uint32_t rasterSamples;
VkBool32 sampleShadingEnable;
float minSampleShading;
@@ -1667,6 +1735,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineDepthStencilStateCreateFlags flags;
VkBool32 depthTestEnable;
VkBool32 depthWriteEnable;
VkCompareOp depthCompareOp;
@@ -1692,6 +1761,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineColorBlendStateCreateFlags flags;
VkBool32 logicOpEnable;
VkLogicOp logicOp;
uint32_t attachmentCount;
@@ -1702,6 +1772,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineDynamicStateCreateFlags flags;
uint32_t dynamicStateCount;
const VkDynamicState* pDynamicStates;
} VkPipelineDynamicStateCreateInfo;
@@ -1709,6 +1780,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineCreateFlags flags;
uint32_t stageCount;
const VkPipelineShaderStageCreateInfo* pStages;
const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
@@ -1720,7 +1792,6 @@
const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
const VkPipelineDynamicStateCreateInfo* pDynamicState;
- VkPipelineCreateFlags flags;
VkPipelineLayout layout;
VkRenderPass renderPass;
uint32_t subpass;
@@ -1731,8 +1802,8 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- VkPipelineShaderStageCreateInfo stage;
VkPipelineCreateFlags flags;
+ VkPipelineShaderStageCreateInfo stage;
VkPipelineLayout layout;
VkPipeline basePipelineHandle;
int32_t basePipelineIndex;
@@ -1747,6 +1818,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkPipelineLayoutCreateFlags flags;
uint32_t setLayoutCount;
const VkDescriptorSetLayout* pSetLayouts;
uint32_t pushConstantRangeCount;
@@ -1756,6 +1828,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkSamplerCreateFlags flags;
VkFilter magFilter;
VkFilter minFilter;
VkSamplerMipmapMode mipmapMode;
@@ -1782,6 +1855,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkDescriptorSetLayoutCreateFlags flags;
uint32_t bindingCount;
const VkDescriptorSetLayoutBinding* pBindings;
} VkDescriptorSetLayoutCreateInfo;
@@ -1848,6 +1922,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkFramebufferCreateFlags flags;
VkRenderPass renderPass;
uint32_t attachmentCount;
const VkImageView* pAttachments;
@@ -1859,6 +1934,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkAttachmentDescriptionFlags flags;
VkFormat format;
uint32_t samples;
VkAttachmentLoadOp loadOp;
@@ -1867,7 +1943,6 @@
VkAttachmentStoreOp stencilStoreOp;
VkImageLayout initialLayout;
VkImageLayout finalLayout;
- VkAttachmentDescriptionFlags flags;
} VkAttachmentDescription;
typedef struct {
@@ -1878,8 +1953,8 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- VkPipelineBindPoint pipelineBindPoint;
VkSubpassDescriptionFlags flags;
+ VkPipelineBindPoint pipelineBindPoint;
uint32_t inputAttachmentCount;
const VkAttachmentReference* pInputAttachments;
uint32_t colorAttachmentCount;
@@ -1905,6 +1980,7 @@
typedef struct {
VkStructureType sType;
const void* pNext;
+ VkRenderPassCreateFlags flags;
uint32_t attachmentCount;
const VkAttachmentDescription* pAttachments;
uint32_t subpassCount;
@@ -1916,8 +1992,8 @@
typedef struct {
VkStructureType sType;
const void* pNext;
- uint32_t queueFamilyIndex;
VkCmdPoolCreateFlags flags;
+ uint32_t queueFamilyIndex;
} VkCmdPoolCreateInfo;
typedef struct {
@@ -2110,9 +2186,7 @@
typedef void (VKAPI *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
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_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
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);
@@ -2396,23 +2470,11 @@
uint32_t* pPropertyCount,
VkSparseImageFormatProperties* pProperties);
-VkResult VKAPI vkQueueBindSparseBufferMemory(
+VkResult VKAPI vkQueueBindSparse(
VkQueue queue,
- VkBuffer buffer,
uint32_t bindInfoCount,
- const VkSparseMemoryBindInfo* pBindInfo);
-
-VkResult VKAPI vkQueueBindSparseImageOpaqueMemory(
- VkQueue queue,
- VkImage image,
- uint32_t bindInfoCount,
- const VkSparseMemoryBindInfo* pBindInfo);
-
-VkResult VKAPI vkQueueBindSparseImageMemory(
- VkQueue queue,
- VkImage image,
- uint32_t bindInfoCount,
- const VkSparseImageMemoryBindInfo* pBindInfo);
+ const VkBindSparseInfo* pBindInfo,
+ VkFence fence);
VkResult VKAPI vkCreateFence(
VkDevice device,
@@ -3033,19 +3095,20 @@
#define vk_ext_khr_surface 1
VK_DEFINE_NONDISP_HANDLE(VkSurfaceKHR)
-#define VK_EXT_KHR_SURFACE_REVISION 19
+#define VK_EXT_KHR_SURFACE_REVISION 20
#define VK_EXT_KHR_SURFACE_EXTENSION_NUMBER 1
#define VK_EXT_KHR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_surface"
+#define VK_ERROR_SURFACE_LOST_KHR ((VkResult)(int)0xc0000400)
typedef void (VKAPI *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface);
-typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface);
+typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface);
#ifdef VK_PROTOTYPES
void VKAPI vkDestroySurfaceKHR(
VkInstance instance,
VkSurfaceKHR surface);
-VkBool32 VKAPI vkGetPhysicalDeviceSurfaceSupportKHR(
+VkResult VKAPI vkGetPhysicalDeviceSurfaceSupportKHR(
VkPhysicalDevice physicalDevice,
uint32_t queueFamilyIndex,
VkSurfaceKHR surface);
@@ -3054,7 +3117,7 @@
#define vk_ext_khr_swapchain 1
VK_DEFINE_NONDISP_HANDLE(VkSwapchainKHR)
-#define VK_EXT_KHR_SWAPCHAIN_REVISION 59
+#define VK_EXT_KHR_SWAPCHAIN_REVISION 62
#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NUMBER 2
#define VK_EXT_KHR_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_swapchain"
#define VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000800)
@@ -3113,6 +3176,14 @@
} VkSurfaceTransformFlagBitsKHR;
typedef VkFlags VkSurfaceTransformFlagsKHR;
+typedef enum {
+ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
+ VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
+ VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
+ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
+} VkCompositeAlphaFlagBitsKHR;
+typedef VkFlags VkCompositeAlphaFlagsKHR;
+
typedef struct {
uint32_t minImageCount;
uint32_t maxImageCount;
@@ -3121,6 +3192,7 @@
VkExtent2D maxImageExtent;
VkSurfaceTransformFlagsKHR supportedTransforms;
VkSurfaceTransformKHR currentTransform;
+ VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
uint32_t maxImageArraySize;
VkImageUsageFlags supportedUsageFlags;
} VkSurfacePropertiesKHR;
@@ -3140,6 +3212,7 @@
VkExtent2D imageExtent;
VkImageUsageFlags imageUsageFlags;
VkSurfaceTransformKHR preTransform;
+ VkCompositeAlphaFlagBitsKHR compositeAlpha;
uint32_t imageArraySize;
VkSharingMode sharingMode;
uint32_t queueFamilyIndexCount;
@@ -3217,11 +3290,11 @@
VK_DEFINE_NONDISP_HANDLE(VkDisplayKHR)
VK_DEFINE_NONDISP_HANDLE(VkDisplayModeKHR)
-#define VK_EXT_KHR_DISPLAY_REVISION 16
+#define VK_EXT_KHR_DISPLAY_REVISION 17
#define VK_EXT_KHR_DISPLAY_EXTENSION_NUMBER 3
#define VK_EXT_KHR_DISPLAY_EXTENSION_NAME "VK_EXT_KHR_display"
#define VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c00)
-#define VK_STRUCTURE_TYPE_SURFACE_DESCRIPTION_DISPLAY_PLANE_KHR ((VkStructureType)(int)0xc0000c01)
+#define VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR ((VkStructureType)(int)0xc0000c01)
typedef enum {
@@ -3237,37 +3310,32 @@
VkExtent2D physicalDimensions;
VkExtent2D physicalResolution;
VkSurfaceTransformFlagsKHR supportedTransforms;
- uint32_t planeCount;
VkBool32 planeReorderPossible;
+ VkBool32 persistentContent;
} VkDisplayPropertiesKHR;
typedef struct {
- uint32_t pixelClock;
VkExtent2D visibleRegion;
- VkExtent2D totalRegion;
- VkExtent2D physicalDimensions;
- uint32_t hSyncStart;
- uint32_t hSyncEnd;
- uint32_t vSyncStart;
- uint32_t vSyncEnd;
- VkBool32 interlaced;
- VkBool32 doublescan;
- VkBool32 hSyncPos;
- VkBool32 vSyncPos;
-} VkDisplayTimingKHR;
+ uint32_t refreshRate;
+} VkDisplayModeParametersKHR;
typedef struct {
VkDisplayModeKHR displayMode;
- VkDisplayTimingKHR timing;
+ VkDisplayModeParametersKHR parameters;
} VkDisplayModePropertiesKHR;
typedef struct {
VkStructureType sType;
const void* pNext;
- VkDisplayTimingKHR timing;
+ VkDisplayModeParametersKHR parameters;
} VkDisplayModeCreateInfoKHR;
typedef struct {
+ VkDisplayKHR currentDisplay;
+ uint32_t currentStackIndex;
+} VkDisplayPlanePropertiesKHR;
+
+typedef struct {
VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
VkOffset2D minSrcPosition;
VkOffset2D maxSrcPosition;
@@ -3277,7 +3345,7 @@
VkOffset2D maxDstPosition;
VkExtent2D minDstExtent;
VkExtent2D maxDstExtent;
-} VkDisplayPlanePropertiesKHR;
+} VkDisplayPlaneCapabilitiesKHR;
typedef struct {
VkStructureType sType;
@@ -3289,13 +3357,16 @@
float globalAlpha;
VkDisplayPlaneAlphaFlagsKHR alphaMode;
VkExtent2D imageSize;
-} VkSurfaceDescriptionDisplayPlaneKHR;
+} VkDisplaySurfaceCreateInfoKHR;
typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
+typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
+typedef VkResult (VKAPI *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayKHR* 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);
+typedef VkResult (VKAPI *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeCreateInfoKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
+typedef VkResult (VKAPI *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, VkSurfaceKHR* pSurface);
#ifdef VK_PROTOTYPES
VkResult VKAPI vkGetPhysicalDeviceDisplayPropertiesKHR(
@@ -3303,6 +3374,16 @@
uint32_t* pPropertyCount,
VkDisplayPropertiesKHR* pProperties);
+VkResult VKAPI vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t* pPropertyCount,
+ VkDisplayPlanePropertiesKHR* pProperties);
+
+VkResult VKAPI vkGetDisplayPlaneSupportedDisplaysKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t* pPropertyCount,
+ VkDisplayKHR* pProperties);
+
VkResult VKAPI vkGetDisplayModePropertiesKHR(
VkPhysicalDevice physicalDevice,
VkDisplayKHR display,
@@ -3315,16 +3396,20 @@
const VkDisplayModeCreateInfoKHR* pCreateInfo,
VkDisplayModeKHR* pMode);
-VkResult VKAPI vkGetDisplayPlanePropertiesKHR(
+VkResult VKAPI vkGetDisplayPlaneCapabilitiesKHR(
VkPhysicalDevice physicalDevice,
- VkDisplayKHR display,
- VkDisplayModeKHR mode,
+ VkDisplayModeCreateInfoKHR mode,
uint32_t planeIndex,
- VkDisplayPlanePropertiesKHR* pProperties);
+ VkDisplayPlaneCapabilitiesKHR* pCapabilities);
+
+VkResult VKAPI vkCreateDisplayPlaneSurfaceKHR(
+ VkInstance instance,
+ const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
+ VkSurfaceKHR* pSurface);
#endif
#define vk_ext_khr_display_swapchain 1
-#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_REVISION 4
+#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_REVISION 6
#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NUMBER 4
#define VK_EXT_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_EXT_KHR_display_swapchain"
#define VK_STRUCTURE_TYPE_DISPLAY_SWAPCHAIN_CREATE_INFO_KHR ((VkStructureType)(int)0xc0001000)
@@ -3342,47 +3427,60 @@
const void* pNext;
VkRect2D srcRect;
VkRect2D dstRect;
+ VkBool32 persistent;
} VkDisplayPresentInfoKHR;
-#ifdef VK_USE_PLATFORM_X11_KHR
-#define vk_ext_khr_x11_surface 1
+#ifdef VK_USE_PLATFORM_XLIB_KHR
+#define vk_ext_khr_xlib_surface 1
#include <X11/Xlib.h>
-#define VK_EXT_KHR_X11_SURFACE_REVISION 1
-#define VK_EXT_KHR_X11_SURFACE_EXTENSION_NUMBER 5
-#define VK_EXT_KHR_X11_SURFACE_EXTENSION_NAME "VK_EXT_KHR_x11_surface"
+#define VK_EXT_KHR_XLIB_SURFACE_REVISION 3
+#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NUMBER 5
+#define VK_EXT_KHR_XLIB_SURFACE_EXTENSION_NAME "vk_ext_khr_xlib_surface"
-typedef VkResult (VKAPI *PFN_vkCreateX11SurfaceKHR)(VkInstance instance, Display* dpy, Window root, Window window, VkSurfaceKHR* pSurface);
+typedef VkResult (VKAPI *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, Display* dpy, Window window, VkSurfaceKHR* pSurface);
+typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualId);
#ifdef VK_PROTOTYPES
-VkResult VKAPI vkCreateX11SurfaceKHR(
+VkResult VKAPI vkCreateXlibSurfaceKHR(
VkInstance instance,
Display* dpy,
- Window root,
Window window,
VkSurfaceKHR* pSurface);
+
+VkBool32 VKAPI vkGetPhysicalDeviceXlibPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t queueFamilyIndex,
+ Display* dpy,
+ VisualID visualId);
#endif
-#endif /* VK_USE_PLATFORM_X11_KHR */
+#endif /* VK_USE_PLATFORM_XLIB_KHR */
#ifdef VK_USE_PLATFORM_XCB_KHR
#define vk_ext_khr_xcb_surface 1
#include <xcb/xcb.h>
-#define VK_EXT_KHR_XCB_SURFACE_REVISION 1
+#define VK_EXT_KHR_XCB_SURFACE_REVISION 3
#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NUMBER 6
#define VK_EXT_KHR_XCB_SURFACE_EXTENSION_NAME "VK_EXT_KHR_xcb_surface"
-typedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t root, xcb_window_t window, VkSurfaceKHR* pSurface);
+typedef VkResult (VKAPI *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, xcb_connection_t* connection, xcb_window_t window, VkSurfaceKHR* pSurface);
+typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
#ifdef VK_PROTOTYPES
VkResult VKAPI vkCreateXcbSurfaceKHR(
VkInstance instance,
xcb_connection_t* connection,
- xcb_window_t root,
xcb_window_t window,
VkSurfaceKHR* pSurface);
+
+VkBool32 VKAPI vkGetPhysicalDeviceXcbPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t queueFamilyIndex,
+ xcb_connection_t* connection,
+ xcb_visualid_t visual_id);
#endif
#endif /* VK_USE_PLATFORM_XCB_KHR */
@@ -3390,11 +3488,12 @@
#define vk_ext_khr_wayland_surface 1
#include <wayland-client.h>
-#define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 1
+#define VK_EXT_KHR_WAYLAND_SURFACE_REVISION 2
#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NUMBER 7
#define VK_EXT_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_EXT_KHR_wayland_surface"
typedef VkResult (VKAPI *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, struct wl_display* display, struct wl_surface* surface, VkSurfaceKHR* pSurface);
+typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
#ifdef VK_PROTOTYPES
VkResult VKAPI vkCreateWaylandSurfaceKHR(
@@ -3402,6 +3501,11 @@
struct wl_display* display,
struct wl_surface* surface,
VkSurfaceKHR* pSurface);
+
+VkBool32 VKAPI vkGetPhysicalDeviceWaylandPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t queueFamilyIndex,
+ struct wl_display* display);
#endif
#endif /* VK_USE_PLATFORM_WAYLAND_KHR */
@@ -3409,11 +3513,12 @@
#define vk_ext_khr_mir_surface 1
#include <mir_toolkit/client_types.h>
-#define VK_EXT_KHR_MIR_SURFACE_REVISION 1
+#define VK_EXT_KHR_MIR_SURFACE_REVISION 2
#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NUMBER 8
#define VK_EXT_KHR_MIR_SURFACE_EXTENSION_NAME "VK_EXT_KHR_mir_surface"
typedef VkResult (VKAPI *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, MirConnection* connection, MirSurface* mirSurface, VkSurfaceKHR* pSurface);
+typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
#ifdef VK_PROTOTYPES
VkResult VKAPI vkCreateMirSurfaceKHR(
@@ -3421,6 +3526,11 @@
MirConnection* connection,
MirSurface* mirSurface,
VkSurfaceKHR* pSurface);
+
+VkBool32 VKAPI vkGetPhysicalDeviceMirPresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t queueFamilyIndex,
+ MirConnection* connection);
#endif
#endif /* VK_USE_PLATFORM_MIR_KHR */
@@ -3448,11 +3558,12 @@
#define vk_ext_khr_win32_surface 1
#include <windows.h>
-#define VK_EXT_KHR_WIN32_SURFACE_REVISION 1
+#define VK_EXT_KHR_WIN32_SURFACE_REVISION 2
#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NUMBER 10
#define VK_EXT_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_EXT_KHR_win32_surface"
typedef VkResult (VKAPI *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, HINSTANCE hinstance, HWND hwnd, VkSurfaceKHR* pSurface);
+typedef VkBool32 (VKAPI *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
#ifdef VK_PROTOTYPES
VkResult VKAPI vkCreateWin32SurfaceKHR(
@@ -3460,6 +3571,10 @@
HINSTANCE hinstance,
HWND hwnd,
VkSurfaceKHR* pSurface);
+
+VkBool32 VKAPI vkGetPhysicalDeviceWin32PresentationSupportKHR(
+ VkPhysicalDevice physicalDevice,
+ uint32_t queueFamilyIndex);
#endif
#endif /* VK_USE_PLATFORM_WIN32_KHR */
diff --git a/vulkan/libvulkan/entry.cpp b/vulkan/libvulkan/entry.cpp
index 386acbf..1360862 100644
--- a/vulkan/libvulkan/entry.cpp
+++ b/vulkan/libvulkan/entry.cpp
@@ -212,18 +212,8 @@
}
__attribute__((visibility("default")))
-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 bindInfoCount, const VkSparseMemoryBindInfo* pBindInfo) {
- return GetVtbl(queue).QueueBindSparseImageOpaqueMemory(queue, image, bindInfoCount, pBindInfo);
-}
-
-__attribute__((visibility("default")))
-VkResult vkQueueBindSparseImageMemory(VkQueue queue, VkImage image, uint32_t bindInfoCount, const VkSparseImageMemoryBindInfo* pBindInfo) {
- return GetVtbl(queue).QueueBindSparseImageMemory(queue, image, bindInfoCount, pBindInfo);
+VkResult vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
+ return GetVtbl(queue).QueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
}
__attribute__((visibility("default")))
@@ -752,7 +742,7 @@
}
__attribute__((visibility("default")))
-VkBool32 vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface) {
+VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface) {
return GetVtbl(physicalDevice).GetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface);
}
diff --git a/vulkan/libvulkan/get_proc_addr.cpp b/vulkan/libvulkan/get_proc_addr.cpp
index 68a77d5..a0987e2 100644
--- a/vulkan/libvulkan/get_proc_addr.cpp
+++ b/vulkan/libvulkan/get_proc_addr.cpp
@@ -188,9 +188,7 @@
{"vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(vkInvalidateMappedMemoryRanges)},
{"vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(vkMapMemory)},
{"vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(vkMergePipelineCaches)},
- {"vkQueueBindSparseBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(vkQueueBindSparseBufferMemory)},
- {"vkQueueBindSparseImageMemory", reinterpret_cast<PFN_vkVoidFunction>(vkQueueBindSparseImageMemory)},
- {"vkQueueBindSparseImageOpaqueMemory", reinterpret_cast<PFN_vkVoidFunction>(vkQueueBindSparseImageOpaqueMemory)},
+ {"vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(vkQueueBindSparse)},
{"vkQueuePresentKHR", reinterpret_cast<PFN_vkVoidFunction>(vkQueuePresentKHR)},
{"vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(vkQueueSubmit)},
{"vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(vkQueueWaitIdle)},
@@ -347,9 +345,7 @@
{"vkInvalidateMappedMemoryRanges", offsetof(DeviceVtbl, InvalidateMappedMemoryRanges)},
{"vkMapMemory", offsetof(DeviceVtbl, MapMemory)},
{"vkMergePipelineCaches", offsetof(DeviceVtbl, MergePipelineCaches)},
- {"vkQueueBindSparseBufferMemory", offsetof(DeviceVtbl, QueueBindSparseBufferMemory)},
- {"vkQueueBindSparseImageMemory", offsetof(DeviceVtbl, QueueBindSparseImageMemory)},
- {"vkQueueBindSparseImageOpaqueMemory", offsetof(DeviceVtbl, QueueBindSparseImageOpaqueMemory)},
+ {"vkQueueBindSparse", offsetof(DeviceVtbl, QueueBindSparse)},
{"vkQueuePresentKHR", offsetof(DeviceVtbl, QueuePresentKHR)},
{"vkQueueSubmit", offsetof(DeviceVtbl, QueueSubmit)},
{"vkQueueWaitIdle", offsetof(DeviceVtbl, QueueWaitIdle)},
@@ -591,19 +587,9 @@
ALOGE("missing device proc: %s", "vkGetImageSparseMemoryRequirements");
success = false;
}
- vtbl.QueueBindSparseBufferMemory = reinterpret_cast<PFN_vkQueueBindSparseBufferMemory>(get_proc_addr(device, "vkQueueBindSparseBufferMemory"));
- if (UNLIKELY(!vtbl.QueueBindSparseBufferMemory)) {
- ALOGE("missing device proc: %s", "vkQueueBindSparseBufferMemory");
- success = false;
- }
- vtbl.QueueBindSparseImageOpaqueMemory = reinterpret_cast<PFN_vkQueueBindSparseImageOpaqueMemory>(get_proc_addr(device, "vkQueueBindSparseImageOpaqueMemory"));
- if (UNLIKELY(!vtbl.QueueBindSparseImageOpaqueMemory)) {
- ALOGE("missing device proc: %s", "vkQueueBindSparseImageOpaqueMemory");
- success = false;
- }
- vtbl.QueueBindSparseImageMemory = reinterpret_cast<PFN_vkQueueBindSparseImageMemory>(get_proc_addr(device, "vkQueueBindSparseImageMemory"));
- if (UNLIKELY(!vtbl.QueueBindSparseImageMemory)) {
- ALOGE("missing device proc: %s", "vkQueueBindSparseImageMemory");
+ vtbl.QueueBindSparse = reinterpret_cast<PFN_vkQueueBindSparse>(get_proc_addr(device, "vkQueueBindSparse"));
+ if (UNLIKELY(!vtbl.QueueBindSparse)) {
+ ALOGE("missing device proc: %s", "vkQueueBindSparse");
success = false;
}
vtbl.CreateFence = reinterpret_cast<PFN_vkCreateFence>(get_proc_addr(device, "vkCreateFence"));
diff --git a/vulkan/libvulkan/get_proc_addr.cpp.tmpl b/vulkan/libvulkan/get_proc_addr.cpp.tmpl
index c6ec0d1..217647f 100644
--- a/vulkan/libvulkan/get_proc_addr.cpp.tmpl
+++ b/vulkan/libvulkan/get_proc_addr.cpp.tmpl
@@ -279,7 +279,7 @@
{{$ext := index $.Arguments 0}}
{{ if eq $ext "VK_EXT_KHR_display"}}true
{{else if eq $ext "VK_EXT_KHR_display_swapchain"}}true
- {{else if eq $ext "VK_EXT_KHR_x11_surface"}}true
+ {{else if eq $ext "VK_EXT_KHR_xlib_surface"}}true
{{else if eq $ext "VK_EXT_KHR_xcb_surface"}}true
{{else if eq $ext "VK_EXT_KHR_wayland_surface"}}true
{{else if eq $ext "VK_EXT_KHR_mir_surface"}}true
diff --git a/vulkan/libvulkan/loader.h b/vulkan/libvulkan/loader.h
index e166887..5c176db 100644
--- a/vulkan/libvulkan/loader.h
+++ b/vulkan/libvulkan/loader.h
@@ -136,9 +136,7 @@
PFN_vkQueueSubmit QueueSubmit;
PFN_vkQueueWaitIdle QueueWaitIdle;
- PFN_vkQueueBindSparseBufferMemory QueueBindSparseBufferMemory;
- PFN_vkQueueBindSparseImageOpaqueMemory QueueBindSparseImageOpaqueMemory;
- PFN_vkQueueBindSparseImageMemory QueueBindSparseImageMemory;
+ PFN_vkQueueBindSparse QueueBindSparse;
PFN_vkBeginCommandBuffer BeginCommandBuffer;
PFN_vkEndCommandBuffer EndCommandBuffer;
@@ -268,7 +266,7 @@
ANativeWindow* window,
VkSurfaceKHR* surface);
void DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface);
-VkBool32 GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice pdev,
+VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice pdev,
uint32_t queue_family,
VkSurfaceKHR surface);
VkResult GetSurfacePropertiesKHR(VkDevice device,
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp
index f6ab081..88619186 100644
--- a/vulkan/libvulkan/swapchain.cpp
+++ b/vulkan/libvulkan/swapchain.cpp
@@ -175,10 +175,10 @@
FreeMem(instance, surface);
}
-VkBool32 GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice /*pdev*/,
+VkResult GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice /*pdev*/,
uint32_t /*queue_family*/,
VkSurfaceKHR /*surface*/) {
- return VK_TRUE;
+ return VK_SUCCESS;
}
VkResult GetSurfacePropertiesKHR(VkDevice /*device*/,
diff --git a/vulkan/nulldrv/null_driver.cpp b/vulkan/nulldrv/null_driver.cpp
index 9c56982..d6a879e 100644
--- a/vulkan/nulldrv/null_driver.cpp
+++ b/vulkan/nulldrv/null_driver.cpp
@@ -815,17 +815,7 @@
ALOGV("TODO: vk%s", __FUNCTION__);
}
-VkResult QueueBindSparseBufferMemory(VkQueue queue, VkBuffer buffer, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo) {
- ALOGV("TODO: vk%s", __FUNCTION__);
- return VK_SUCCESS;
-}
-
-VkResult QueueBindSparseImageOpaqueMemory(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseMemoryBindInfo* pBindInfo) {
- ALOGV("TODO: vk%s", __FUNCTION__);
- return VK_SUCCESS;
-}
-
-VkResult QueueBindSparseImageMemory(VkQueue queue, VkImage image, uint32_t numBindings, const VkSparseImageMemoryBindInfo* pBindInfo) {
+VkResult QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
ALOGV("TODO: vk%s", __FUNCTION__);
return VK_SUCCESS;
}
diff --git a/vulkan/nulldrv/null_driver.h b/vulkan/nulldrv/null_driver.h
index dd6dc6b..70283c4 100644
--- a/vulkan/nulldrv/null_driver.h
+++ b/vulkan/nulldrv/null_driver.h
@@ -60,9 +60,7 @@
void GetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
void GetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint32_t* pNumRequirements, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
void GetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, uint32_t samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pNumProperties, VkSparseImageFormatProperties* pProperties);
-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 QueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, 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);
diff --git a/vulkan/nulldrv/null_driver_gen.cpp b/vulkan/nulldrv/null_driver_gen.cpp
index a026bbf..f836a70 100644
--- a/vulkan/nulldrv/null_driver_gen.cpp
+++ b/vulkan/nulldrv/null_driver_gen.cpp
@@ -178,9 +178,7 @@
{"vkInvalidateMappedMemoryRanges", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkInvalidateMappedMemoryRanges>(InvalidateMappedMemoryRanges))},
{"vkMapMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMapMemory>(MapMemory))},
{"vkMergePipelineCaches", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkMergePipelineCaches>(MergePipelineCaches))},
- {"vkQueueBindSparseBufferMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparseBufferMemory>(QueueBindSparseBufferMemory))},
- {"vkQueueBindSparseImageMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparseImageMemory>(QueueBindSparseImageMemory))},
- {"vkQueueBindSparseImageOpaqueMemory", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparseImageOpaqueMemory>(QueueBindSparseImageOpaqueMemory))},
+ {"vkQueueBindSparse", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueBindSparse>(QueueBindSparse))},
{"vkQueueSubmit", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueSubmit>(QueueSubmit))},
{"vkQueueWaitIdle", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkQueueWaitIdle>(QueueWaitIdle))},
{"vkResetCommandBuffer", reinterpret_cast<PFN_vkVoidFunction>(static_cast<PFN_vkResetCommandBuffer>(ResetCommandBuffer))},