diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 5261c35360a..1f9bdc156c6 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -64,7 +64,7 @@ from enum import Enum LOGGER = logging.Logger("vulkan") LOGGER.addHandler(logging.StreamHandler()) -VK_XML_VERSION = "1.2.149" +VK_XML_VERSION = "1.2.154" WINE_VK_VERSION = (1, 2) # Filenames to create. diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 60a63efe84d..bb5414c2298 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -213,6 +213,21 @@ static inline void convert_VkRenderPassBeginInfo_win_to_host(const VkRenderPassB out->pClearValues = in->pClearValues; } +static inline void convert_VkBlitImageInfo2KHR_win_to_host(const VkBlitImageInfo2KHR *in, VkBlitImageInfo2KHR_host *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = in->pNext; + out->srcImage = in->srcImage; + out->srcImageLayout = in->srcImageLayout; + out->dstImage = in->dstImage; + out->dstImageLayout = in->dstImageLayout; + out->regionCount = in->regionCount; + out->pRegions = in->pRegions; + out->filter = in->filter; +} + static inline void convert_VkGeometryTrianglesNV_win_to_host(const VkGeometryTrianglesNV *in, VkGeometryTrianglesNV_host *out) { if (!in) return; @@ -322,6 +337,50 @@ static inline void free_VkBufferCopy_array(VkBufferCopy_host *in, uint32_t count heap_free(in); } +static inline VkBufferCopy2KHR_host *convert_VkBufferCopy2KHR_array_win_to_host(const VkBufferCopy2KHR *in, uint32_t count) +{ + VkBufferCopy2KHR_host *out; + unsigned int i; + + if (!in) return NULL; + + out = heap_alloc(count * sizeof(*out)); + for (i = 0; i < count; i++) + { + out[i].sType = in[i].sType; + out[i].pNext = in[i].pNext; + out[i].srcOffset = in[i].srcOffset; + out[i].dstOffset = in[i].dstOffset; + out[i].size = in[i].size; + } + + return out; +} + +static inline void free_VkBufferCopy2KHR_array(VkBufferCopy2KHR_host *in, uint32_t count) +{ + if (!in) return; + + heap_free(in); +} + +static inline void convert_VkCopyBufferInfo2KHR_win_to_host(const VkCopyBufferInfo2KHR *in, VkCopyBufferInfo2KHR_host *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = in->pNext; + out->srcBuffer = in->srcBuffer; + out->dstBuffer = in->dstBuffer; + out->regionCount = in->regionCount; + out->pRegions = convert_VkBufferCopy2KHR_array_win_to_host(in->pRegions, in->regionCount); +} + +static inline void free_VkCopyBufferInfo2KHR(VkCopyBufferInfo2KHR_host *in) +{ + free_VkBufferCopy2KHR_array((VkBufferCopy2KHR_host *)in->pRegions, in->regionCount); +} + static inline VkBufferImageCopy_host *convert_VkBufferImageCopy_array_win_to_host(const VkBufferImageCopy *in, uint32_t count) { VkBufferImageCopy_host *out; @@ -350,6 +409,86 @@ static inline void free_VkBufferImageCopy_array(VkBufferImageCopy_host *in, uint heap_free(in); } +static inline VkBufferImageCopy2KHR_host *convert_VkBufferImageCopy2KHR_array_win_to_host(const VkBufferImageCopy2KHR *in, uint32_t count) +{ + VkBufferImageCopy2KHR_host *out; + unsigned int i; + + if (!in) return NULL; + + out = heap_alloc(count * sizeof(*out)); + for (i = 0; i < count; i++) + { + out[i].sType = in[i].sType; + out[i].pNext = in[i].pNext; + out[i].bufferOffset = in[i].bufferOffset; + out[i].bufferRowLength = in[i].bufferRowLength; + out[i].bufferImageHeight = in[i].bufferImageHeight; + out[i].imageSubresource = in[i].imageSubresource; + out[i].imageOffset = in[i].imageOffset; + out[i].imageExtent = in[i].imageExtent; + } + + return out; +} + +static inline void free_VkBufferImageCopy2KHR_array(VkBufferImageCopy2KHR_host *in, uint32_t count) +{ + if (!in) return; + + heap_free(in); +} + +static inline void convert_VkCopyBufferToImageInfo2KHR_win_to_host(const VkCopyBufferToImageInfo2KHR *in, VkCopyBufferToImageInfo2KHR_host *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = in->pNext; + out->srcBuffer = in->srcBuffer; + out->dstImage = in->dstImage; + out->dstImageLayout = in->dstImageLayout; + out->regionCount = in->regionCount; + out->pRegions = convert_VkBufferImageCopy2KHR_array_win_to_host(in->pRegions, in->regionCount); +} + +static inline void free_VkCopyBufferToImageInfo2KHR(VkCopyBufferToImageInfo2KHR_host *in) +{ + free_VkBufferImageCopy2KHR_array((VkBufferImageCopy2KHR_host *)in->pRegions, in->regionCount); +} + +static inline void convert_VkCopyImageInfo2KHR_win_to_host(const VkCopyImageInfo2KHR *in, VkCopyImageInfo2KHR_host *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = in->pNext; + out->srcImage = in->srcImage; + out->srcImageLayout = in->srcImageLayout; + out->dstImage = in->dstImage; + out->dstImageLayout = in->dstImageLayout; + out->regionCount = in->regionCount; + out->pRegions = in->pRegions; +} + +static inline void convert_VkCopyImageToBufferInfo2KHR_win_to_host(const VkCopyImageToBufferInfo2KHR *in, VkCopyImageToBufferInfo2KHR_host *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = in->pNext; + out->srcImage = in->srcImage; + out->srcImageLayout = in->srcImageLayout; + out->dstBuffer = in->dstBuffer; + out->regionCount = in->regionCount; + out->pRegions = convert_VkBufferImageCopy2KHR_array_win_to_host(in->pRegions, in->regionCount); +} + +static inline void free_VkCopyImageToBufferInfo2KHR(VkCopyImageToBufferInfo2KHR_host *in) +{ + free_VkBufferImageCopy2KHR_array((VkBufferImageCopy2KHR_host *)in->pRegions, in->regionCount); +} + static inline VkIndirectCommandsStreamNV_host *convert_VkIndirectCommandsStreamNV_array_win_to_host(const VkIndirectCommandsStreamNV *in, uint32_t count) { VkIndirectCommandsStreamNV_host *out; @@ -552,6 +691,20 @@ static inline void free_VkWriteDescriptorSet_array(VkWriteDescriptorSet_host *in heap_free(in); } +static inline void convert_VkResolveImageInfo2KHR_win_to_host(const VkResolveImageInfo2KHR *in, VkResolveImageInfo2KHR_host *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = in->pNext; + out->srcImage = in->srcImage; + out->srcImageLayout = in->srcImageLayout; + out->dstImage = in->dstImage; + out->dstImageLayout = in->dstImageLayout; + out->regionCount = in->regionCount; + out->pRegions = in->pRegions; +} + static inline void convert_VkPerformanceMarkerInfoINTEL_win_to_host(const VkPerformanceMarkerInfoINTEL *in, VkPerformanceMarkerInfoINTEL_host *out) { if (!in) return; @@ -3202,6 +3355,21 @@ void WINAPI wine_vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, commandBuffer->device->funcs.p_vkCmdBlitImage(commandBuffer->command_buffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter); } +static void WINAPI wine_vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR *pBlitImageInfo) +{ +#if defined(USE_STRUCT_CONVERSION) + VkBlitImageInfo2KHR_host pBlitImageInfo_host; + TRACE("%p, %p\n", commandBuffer, pBlitImageInfo); + + convert_VkBlitImageInfo2KHR_win_to_host(pBlitImageInfo, &pBlitImageInfo_host); + commandBuffer->device->funcs.p_vkCmdBlitImage2KHR(commandBuffer->command_buffer, &pBlitImageInfo_host); + +#else + TRACE("%p, %p\n", commandBuffer, pBlitImageInfo); + commandBuffer->device->funcs.p_vkCmdBlitImage2KHR(commandBuffer->command_buffer, pBlitImageInfo); +#endif +} + static void WINAPI wine_vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV *pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset) { #if defined(USE_STRUCT_CONVERSION) @@ -3258,6 +3426,22 @@ void WINAPI wine_vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuff #endif } +static void WINAPI wine_vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR *pCopyBufferInfo) +{ +#if defined(USE_STRUCT_CONVERSION) + VkCopyBufferInfo2KHR_host pCopyBufferInfo_host; + TRACE("%p, %p\n", commandBuffer, pCopyBufferInfo); + + convert_VkCopyBufferInfo2KHR_win_to_host(pCopyBufferInfo, &pCopyBufferInfo_host); + commandBuffer->device->funcs.p_vkCmdCopyBuffer2KHR(commandBuffer->command_buffer, &pCopyBufferInfo_host); + + free_VkCopyBufferInfo2KHR(&pCopyBufferInfo_host); +#else + TRACE("%p, %p\n", commandBuffer, pCopyBufferInfo); + commandBuffer->device->funcs.p_vkCmdCopyBuffer2KHR(commandBuffer->command_buffer, pCopyBufferInfo); +#endif +} + void WINAPI wine_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy *pRegions) { #if defined(USE_STRUCT_CONVERSION) @@ -3274,12 +3458,43 @@ void WINAPI wine_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer #endif } +static void WINAPI wine_vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR *pCopyBufferToImageInfo) +{ +#if defined(USE_STRUCT_CONVERSION) + VkCopyBufferToImageInfo2KHR_host pCopyBufferToImageInfo_host; + TRACE("%p, %p\n", commandBuffer, pCopyBufferToImageInfo); + + convert_VkCopyBufferToImageInfo2KHR_win_to_host(pCopyBufferToImageInfo, &pCopyBufferToImageInfo_host); + commandBuffer->device->funcs.p_vkCmdCopyBufferToImage2KHR(commandBuffer->command_buffer, &pCopyBufferToImageInfo_host); + + free_VkCopyBufferToImageInfo2KHR(&pCopyBufferToImageInfo_host); +#else + TRACE("%p, %p\n", commandBuffer, pCopyBufferToImageInfo); + commandBuffer->device->funcs.p_vkCmdCopyBufferToImage2KHR(commandBuffer->command_buffer, pCopyBufferToImageInfo); +#endif +} + void WINAPI wine_vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy *pRegions) { TRACE("%p, 0x%s, %#x, 0x%s, %#x, %u, %p\n", commandBuffer, wine_dbgstr_longlong(srcImage), srcImageLayout, wine_dbgstr_longlong(dstImage), dstImageLayout, regionCount, pRegions); commandBuffer->device->funcs.p_vkCmdCopyImage(commandBuffer->command_buffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); } +static void WINAPI wine_vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR *pCopyImageInfo) +{ +#if defined(USE_STRUCT_CONVERSION) + VkCopyImageInfo2KHR_host pCopyImageInfo_host; + TRACE("%p, %p\n", commandBuffer, pCopyImageInfo); + + convert_VkCopyImageInfo2KHR_win_to_host(pCopyImageInfo, &pCopyImageInfo_host); + commandBuffer->device->funcs.p_vkCmdCopyImage2KHR(commandBuffer->command_buffer, &pCopyImageInfo_host); + +#else + TRACE("%p, %p\n", commandBuffer, pCopyImageInfo); + commandBuffer->device->funcs.p_vkCmdCopyImage2KHR(commandBuffer->command_buffer, pCopyImageInfo); +#endif +} + void WINAPI wine_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy *pRegions) { #if defined(USE_STRUCT_CONVERSION) @@ -3296,6 +3511,22 @@ void WINAPI wine_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage s #endif } +static void WINAPI wine_vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR *pCopyImageToBufferInfo) +{ +#if defined(USE_STRUCT_CONVERSION) + VkCopyImageToBufferInfo2KHR_host pCopyImageToBufferInfo_host; + TRACE("%p, %p\n", commandBuffer, pCopyImageToBufferInfo); + + convert_VkCopyImageToBufferInfo2KHR_win_to_host(pCopyImageToBufferInfo, &pCopyImageToBufferInfo_host); + commandBuffer->device->funcs.p_vkCmdCopyImageToBuffer2KHR(commandBuffer->command_buffer, &pCopyImageToBufferInfo_host); + + free_VkCopyImageToBufferInfo2KHR(&pCopyImageToBufferInfo_host); +#else + TRACE("%p, %p\n", commandBuffer, pCopyImageToBufferInfo); + commandBuffer->device->funcs.p_vkCmdCopyImageToBuffer2KHR(commandBuffer->command_buffer, pCopyImageToBufferInfo); +#endif +} + void WINAPI wine_vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) { TRACE("%p, 0x%s, %u, %u, 0x%s, 0x%s, 0x%s, %#x\n", commandBuffer, wine_dbgstr_longlong(queryPool), firstQuery, queryCount, wine_dbgstr_longlong(dstBuffer), wine_dbgstr_longlong(dstOffset), wine_dbgstr_longlong(stride), flags); @@ -3573,6 +3804,21 @@ void WINAPI wine_vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcIma commandBuffer->device->funcs.p_vkCmdResolveImage(commandBuffer->command_buffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions); } +static void WINAPI wine_vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR *pResolveImageInfo) +{ +#if defined(USE_STRUCT_CONVERSION) + VkResolveImageInfo2KHR_host pResolveImageInfo_host; + TRACE("%p, %p\n", commandBuffer, pResolveImageInfo); + + convert_VkResolveImageInfo2KHR_win_to_host(pResolveImageInfo, &pResolveImageInfo_host); + commandBuffer->device->funcs.p_vkCmdResolveImage2KHR(commandBuffer->command_buffer, &pResolveImageInfo_host); + +#else + TRACE("%p, %p\n", commandBuffer, pResolveImageInfo); + commandBuffer->device->funcs.p_vkCmdResolveImage2KHR(commandBuffer->command_buffer, pResolveImageInfo); +#endif +} + void WINAPI wine_vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]) { TRACE("%p, %p\n", commandBuffer, blendConstants); @@ -5470,15 +5716,20 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkCmdBindVertexBuffers", &wine_vkCmdBindVertexBuffers}, {"vkCmdBindVertexBuffers2EXT", &wine_vkCmdBindVertexBuffers2EXT}, {"vkCmdBlitImage", &wine_vkCmdBlitImage}, + {"vkCmdBlitImage2KHR", &wine_vkCmdBlitImage2KHR}, {"vkCmdBuildAccelerationStructureNV", &wine_vkCmdBuildAccelerationStructureNV}, {"vkCmdClearAttachments", &wine_vkCmdClearAttachments}, {"vkCmdClearColorImage", &wine_vkCmdClearColorImage}, {"vkCmdClearDepthStencilImage", &wine_vkCmdClearDepthStencilImage}, {"vkCmdCopyAccelerationStructureNV", &wine_vkCmdCopyAccelerationStructureNV}, {"vkCmdCopyBuffer", &wine_vkCmdCopyBuffer}, + {"vkCmdCopyBuffer2KHR", &wine_vkCmdCopyBuffer2KHR}, {"vkCmdCopyBufferToImage", &wine_vkCmdCopyBufferToImage}, + {"vkCmdCopyBufferToImage2KHR", &wine_vkCmdCopyBufferToImage2KHR}, {"vkCmdCopyImage", &wine_vkCmdCopyImage}, + {"vkCmdCopyImage2KHR", &wine_vkCmdCopyImage2KHR}, {"vkCmdCopyImageToBuffer", &wine_vkCmdCopyImageToBuffer}, + {"vkCmdCopyImageToBuffer2KHR", &wine_vkCmdCopyImageToBuffer2KHR}, {"vkCmdCopyQueryPoolResults", &wine_vkCmdCopyQueryPoolResults}, {"vkCmdDispatch", &wine_vkCmdDispatch}, {"vkCmdDispatchBase", &wine_vkCmdDispatchBase}, @@ -5519,6 +5770,7 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkCmdResetEvent", &wine_vkCmdResetEvent}, {"vkCmdResetQueryPool", &wine_vkCmdResetQueryPool}, {"vkCmdResolveImage", &wine_vkCmdResolveImage}, + {"vkCmdResolveImage2KHR", &wine_vkCmdResolveImage2KHR}, {"vkCmdSetBlendConstants", &wine_vkCmdSetBlendConstants}, {"vkCmdSetCheckpointNV", &wine_vkCmdSetCheckpointNV}, {"vkCmdSetCoarseSampleOrderNV", &wine_vkCmdSetCoarseSampleOrderNV}, @@ -5876,6 +6128,7 @@ static const char * const vk_device_extensions[] = "VK_KHR_8bit_storage", "VK_KHR_bind_memory2", "VK_KHR_buffer_device_address", + "VK_KHR_copy_commands2", "VK_KHR_create_renderpass2", "VK_KHR_dedicated_allocation", "VK_KHR_depth_stencil_resolve", diff --git a/dlls/winevulkan/vulkan_thunks.h b/dlls/winevulkan/vulkan_thunks.h index d35e8c42698..3291ec6220b 100644 --- a/dlls/winevulkan/vulkan_thunks.h +++ b/dlls/winevulkan/vulkan_thunks.h @@ -185,6 +185,20 @@ typedef struct VkRenderPassBeginInfo_host } VkRenderPassBeginInfo_host; +typedef struct VkBlitImageInfo2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2KHR *pRegions; + VkFilter filter; +} VkBlitImageInfo2KHR_host; + + typedef struct VkGeometryTrianglesNV_host { VkStructureType sType; @@ -251,6 +265,27 @@ typedef struct VkBufferCopy_host } VkBufferCopy_host; +typedef struct VkBufferCopy2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkDeviceSize srcOffset; + VkDeviceSize dstOffset; + VkDeviceSize size; +} VkBufferCopy2KHR_host; + + +typedef struct VkCopyBufferInfo2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkBuffer srcBuffer; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferCopy2KHR_host *pRegions; +} VkCopyBufferInfo2KHR_host; + + typedef struct VkBufferImageCopy_host { VkDeviceSize bufferOffset; @@ -262,6 +297,56 @@ typedef struct VkBufferImageCopy_host } VkBufferImageCopy_host; +typedef struct VkBufferImageCopy2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkDeviceSize bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2KHR_host; + + +typedef struct VkCopyBufferToImageInfo2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkBuffer srcBuffer; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2KHR_host *pRegions; +} VkCopyBufferToImageInfo2KHR_host; + + +typedef struct VkCopyImageInfo2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2KHR *pRegions; +} VkCopyImageInfo2KHR_host; + + +typedef struct VkCopyImageToBufferInfo2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2KHR_host *pRegions; +} VkCopyImageToBufferInfo2KHR_host; + + typedef struct VkIndirectCommandsStreamNV_host { VkBuffer buffer; @@ -349,6 +434,19 @@ typedef struct VkWriteDescriptorSet_host } VkWriteDescriptorSet_host; +typedef struct VkResolveImageInfo2KHR_host +{ + VkStructureType sType; + const void *pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2KHR *pRegions; +} VkResolveImageInfo2KHR_host; + + typedef struct VkPerformanceMarkerInfoINTEL_host { VkStructureType sType; @@ -1064,6 +1162,11 @@ struct vulkan_device_funcs void (*p_vkCmdBindVertexBuffers)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); void (*p_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *, const VkDeviceSize *); void (*p_vkCmdBlitImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageBlit *, VkFilter); +#if defined(USE_STRUCT_CONVERSION) + void (*p_vkCmdBlitImage2KHR)(VkCommandBuffer, const VkBlitImageInfo2KHR_host *); +#else + void (*p_vkCmdBlitImage2KHR)(VkCommandBuffer, const VkBlitImageInfo2KHR *); +#endif #if defined(USE_STRUCT_CONVERSION) void (*p_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer, const VkAccelerationStructureInfoNV_host *, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureKHR, VkAccelerationStructureKHR, VkBuffer, VkDeviceSize); #else @@ -1078,16 +1181,36 @@ struct vulkan_device_funcs #else void (*p_vkCmdCopyBuffer)(VkCommandBuffer, VkBuffer, VkBuffer, uint32_t, const VkBufferCopy *); #endif +#if defined(USE_STRUCT_CONVERSION) + void (*p_vkCmdCopyBuffer2KHR)(VkCommandBuffer, const VkCopyBufferInfo2KHR_host *); +#else + void (*p_vkCmdCopyBuffer2KHR)(VkCommandBuffer, const VkCopyBufferInfo2KHR *); +#endif #if defined(USE_STRUCT_CONVERSION) void (*p_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy_host *); #else void (*p_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy *); +#endif +#if defined(USE_STRUCT_CONVERSION) + void (*p_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer, const VkCopyBufferToImageInfo2KHR_host *); +#else + void (*p_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer, const VkCopyBufferToImageInfo2KHR *); #endif void (*p_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageCopy *); +#if defined(USE_STRUCT_CONVERSION) + void (*p_vkCmdCopyImage2KHR)(VkCommandBuffer, const VkCopyImageInfo2KHR_host *); +#else + void (*p_vkCmdCopyImage2KHR)(VkCommandBuffer, const VkCopyImageInfo2KHR *); +#endif #if defined(USE_STRUCT_CONVERSION) void (*p_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy_host *); #else void (*p_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy *); +#endif +#if defined(USE_STRUCT_CONVERSION) + void (*p_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer, const VkCopyImageToBufferInfo2KHR_host *); +#else + void (*p_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer, const VkCopyImageToBufferInfo2KHR *); #endif void (*p_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags); void (*p_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); @@ -1145,6 +1268,11 @@ struct vulkan_device_funcs void (*p_vkCmdResetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags); void (*p_vkCmdResetQueryPool)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t); void (*p_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageResolve *); +#if defined(USE_STRUCT_CONVERSION) + void (*p_vkCmdResolveImage2KHR)(VkCommandBuffer, const VkResolveImageInfo2KHR_host *); +#else + void (*p_vkCmdResolveImage2KHR)(VkCommandBuffer, const VkResolveImageInfo2KHR *); +#endif void (*p_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]); void (*p_vkCmdSetCheckpointNV)(VkCommandBuffer, const void *); void (*p_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer, VkCoarseSampleOrderTypeNV, uint32_t, const VkCoarseSampleOrderCustomNV *); @@ -1628,15 +1756,20 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkCmdBindVertexBuffers) \ USE_VK_FUNC(vkCmdBindVertexBuffers2EXT) \ USE_VK_FUNC(vkCmdBlitImage) \ + USE_VK_FUNC(vkCmdBlitImage2KHR) \ USE_VK_FUNC(vkCmdBuildAccelerationStructureNV) \ USE_VK_FUNC(vkCmdClearAttachments) \ USE_VK_FUNC(vkCmdClearColorImage) \ USE_VK_FUNC(vkCmdClearDepthStencilImage) \ USE_VK_FUNC(vkCmdCopyAccelerationStructureNV) \ USE_VK_FUNC(vkCmdCopyBuffer) \ + USE_VK_FUNC(vkCmdCopyBuffer2KHR) \ USE_VK_FUNC(vkCmdCopyBufferToImage) \ + USE_VK_FUNC(vkCmdCopyBufferToImage2KHR) \ USE_VK_FUNC(vkCmdCopyImage) \ + USE_VK_FUNC(vkCmdCopyImage2KHR) \ USE_VK_FUNC(vkCmdCopyImageToBuffer) \ + USE_VK_FUNC(vkCmdCopyImageToBuffer2KHR) \ USE_VK_FUNC(vkCmdCopyQueryPoolResults) \ USE_VK_FUNC(vkCmdDispatch) \ USE_VK_FUNC(vkCmdDispatchBase) \ @@ -1677,6 +1810,7 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkCmdResetEvent) \ USE_VK_FUNC(vkCmdResetQueryPool) \ USE_VK_FUNC(vkCmdResolveImage) \ + USE_VK_FUNC(vkCmdResolveImage2KHR) \ USE_VK_FUNC(vkCmdSetBlendConstants) \ USE_VK_FUNC(vkCmdSetCheckpointNV) \ USE_VK_FUNC(vkCmdSetCoarseSampleOrderNV) \ diff --git a/dlls/winevulkan/winevulkan.json b/dlls/winevulkan/winevulkan.json index 91abe61f0ad..84d7ce18346 100644 --- a/dlls/winevulkan/winevulkan.json +++ b/dlls/winevulkan/winevulkan.json @@ -2,6 +2,6 @@ "file_format_version": "1.0.0", "ICD": { "library_path": ".\\winevulkan.dll", - "api_version": "1.2.149" + "api_version": "1.2.154" } } diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index d41d5b00e25..4b4512e4483 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -381,6 +381,8 @@ #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2" #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" +#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 +#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" #define VK_EXT_4444_FORMATS_SPEC_VERSION 1 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" @@ -392,7 +394,7 @@ #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0) #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0) #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0) -#define VK_HEADER_VERSION 149 +#define VK_HEADER_VERSION 154 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; @@ -2887,6 +2889,17 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005, + VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006, + VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, @@ -3289,6 +3302,13 @@ typedef struct VkBindVertexBufferIndirectCommandNV uint32_t stride; } VkBindVertexBufferIndirectCommandNV; +typedef struct VkBufferCopy +{ + VkDeviceSize WINE_VK_ALIGN(8) srcOffset; + VkDeviceSize WINE_VK_ALIGN(8) dstOffset; + VkDeviceSize WINE_VK_ALIGN(8) size; +} VkBufferCopy; + typedef struct VkBufferCreateInfo { VkStructureType sType; @@ -3390,27 +3410,19 @@ typedef struct VkCopyDescriptorSet uint32_t descriptorCount; } VkCopyDescriptorSet; -typedef struct VkDedicatedAllocationBufferCreateInfoNV +typedef struct VkDedicatedAllocationImageCreateInfoNV { VkStructureType sType; const void *pNext; VkBool32 dedicatedAllocation; -} VkDedicatedAllocationBufferCreateInfoNV; +} VkDedicatedAllocationImageCreateInfoNV; -typedef struct VkDedicatedAllocationMemoryAllocateInfoNV +typedef struct VkDescriptorImageInfo { - VkStructureType sType; - const void *pNext; - VkImage WINE_VK_ALIGN(8) image; - VkBuffer WINE_VK_ALIGN(8) buffer; -} VkDedicatedAllocationMemoryAllocateInfoNV; - -typedef struct VkDescriptorBufferInfo -{ - VkBuffer WINE_VK_ALIGN(8) buffer; - VkDeviceSize WINE_VK_ALIGN(8) offset; - VkDeviceSize WINE_VK_ALIGN(8) range; -} VkDescriptorBufferInfo; + VkSampler WINE_VK_ALIGN(8) sampler; + VkImageView WINE_VK_ALIGN(8) imageView; + VkImageLayout imageLayout; +} VkDescriptorImageInfo; typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { @@ -4746,6 +4758,12 @@ typedef struct VkRenderPassTransformBeginInfoQCOM VkSurfaceTransformFlagBitsKHR transform; } VkRenderPassTransformBeginInfoQCOM; +typedef struct VkSampleLocationEXT +{ + float x; + float y; +} VkSampleLocationEXT; + typedef struct VkSamplerCreateInfo { VkStructureType sType; @@ -5034,12 +5052,14 @@ typedef struct VkBindImageMemoryInfo } VkBindImageMemoryInfo; typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; -typedef struct VkBufferCopy +typedef struct VkBufferCopy2KHR { + VkStructureType sType; + const void *pNext; VkDeviceSize WINE_VK_ALIGN(8) srcOffset; VkDeviceSize WINE_VK_ALIGN(8) dstOffset; VkDeviceSize WINE_VK_ALIGN(8) size; -} VkBufferCopy; +} VkBufferCopy2KHR; typedef struct VkBufferMemoryRequirementsInfo2 { @@ -5101,6 +5121,14 @@ typedef struct VkConformanceVersion } VkConformanceVersion; typedef VkConformanceVersion VkConformanceVersionKHR; +typedef struct VkDedicatedAllocationMemoryAllocateInfoNV +{ + VkStructureType sType; + const void *pNext; + VkImage WINE_VK_ALIGN(8) image; + VkBuffer WINE_VK_ALIGN(8) buffer; +} VkDedicatedAllocationMemoryAllocateInfoNV; + typedef struct VkDescriptorPoolSize { VkDescriptorType type; @@ -5496,19 +5524,6 @@ typedef struct VkPhysicalDevicePointClippingProperties } VkPhysicalDevicePointClippingProperties; typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; -typedef struct VkPhysicalDeviceProperties -{ - uint32_t apiVersion; - uint32_t driverVersion; - uint32_t vendorID; - uint32_t deviceID; - VkPhysicalDeviceType deviceType; - char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; - uint8_t pipelineCacheUUID[VK_UUID_SIZE]; - VkPhysicalDeviceLimits WINE_VK_ALIGN(8) limits; - VkPhysicalDeviceSparseProperties sparseProperties; -} VkPhysicalDeviceProperties; - typedef struct VkPhysicalDeviceProtectedMemoryFeatures { VkStructureType sType; @@ -5826,51 +5841,39 @@ typedef struct VkRenderPassInputAttachmentAspectCreateInfo } VkRenderPassInputAttachmentAspectCreateInfo; typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; -typedef struct VkSampleLocationEXT -{ - float x; - float y; -} VkSampleLocationEXT; - -typedef struct VkSamplerCustomBorderColorCreateInfoEXT +typedef struct VkSampleLocationsInfoEXT { VkStructureType sType; const void *pNext; - VkClearColorValue customBorderColor; - VkFormat format; -} VkSamplerCustomBorderColorCreateInfoEXT; + VkSampleCountFlagBits sampleLocationsPerPixel; + VkExtent2D sampleLocationGridSize; + uint32_t sampleLocationsCount; + const VkSampleLocationEXT *pSampleLocations; +} VkSampleLocationsInfoEXT; -typedef struct VkSamplerYcbcrConversionCreateInfo +typedef struct VkSamplerYcbcrConversionImageFormatProperties +{ + VkStructureType sType; + void *pNext; + uint32_t combinedImageSamplerDescriptorCount; +} VkSamplerYcbcrConversionImageFormatProperties; +typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; + +typedef struct VkSemaphoreCreateInfo { VkStructureType sType; const void *pNext; - VkFormat format; - VkSamplerYcbcrModelConversion ycbcrModel; - VkSamplerYcbcrRange ycbcrRange; - VkComponentMapping components; - VkChromaLocation xChromaOffset; - VkChromaLocation yChromaOffset; - VkFilter chromaFilter; - VkBool32 forceExplicitReconstruction; -} VkSamplerYcbcrConversionCreateInfo; -typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; + VkSemaphoreCreateFlags flags; +} VkSemaphoreCreateInfo; -typedef struct VkSamplerYcbcrConversionInfo +typedef struct VkShaderResourceUsageAMD { - VkStructureType sType; - const void *pNext; - VkSamplerYcbcrConversion WINE_VK_ALIGN(8) conversion; -} VkSamplerYcbcrConversionInfo; -typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; - -typedef struct VkShaderModuleCreateInfo -{ - VkStructureType sType; - const void *pNext; - VkShaderModuleCreateFlags flags; - size_t codeSize; - const uint32_t *pCode; -} VkShaderModuleCreateInfo; + uint32_t numUsedVgprs; + uint32_t numUsedSgprs; + uint32_t ldsSizePerLocalWorkGroup; + size_t ldsUsageSizeInBytes; + size_t scratchMemUsageInBytes; +} VkShaderResourceUsageAMD; typedef struct VkSparseImageFormatProperties2 { @@ -5978,6 +5981,12 @@ typedef struct VkAttachmentReference VkImageLayout layout; } VkAttachmentReference; +typedef struct VkAttachmentSampleLocationsEXT +{ + uint32_t attachmentIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkAttachmentSampleLocationsEXT; + typedef struct VkBindImageMemorySwapchainInfoKHR { VkStructureType sType; @@ -6030,12 +6039,12 @@ typedef struct VkCooperativeMatrixPropertiesNV VkScopeNV scope; } VkCooperativeMatrixPropertiesNV; -typedef struct VkDedicatedAllocationImageCreateInfoNV +typedef struct VkDedicatedAllocationBufferCreateInfoNV { VkStructureType sType; const void *pNext; VkBool32 dedicatedAllocation; -} VkDedicatedAllocationImageCreateInfoNV; +} VkDedicatedAllocationBufferCreateInfoNV; typedef struct VkDescriptorPoolCreateInfo { @@ -6265,67 +6274,119 @@ typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT VkBool32 pipelineCreationCacheControl; } VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; -typedef struct VkPhysicalDeviceProperties2 +typedef struct VkPhysicalDeviceProperties { - VkStructureType sType; - void *pNext; - VkPhysicalDeviceProperties WINE_VK_ALIGN(8) properties; -} VkPhysicalDeviceProperties2; -typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; + uint32_t apiVersion; + uint32_t driverVersion; + uint32_t vendorID; + uint32_t deviceID; + VkPhysicalDeviceType deviceType; + char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; + VkPhysicalDeviceLimits WINE_VK_ALIGN(8) limits; + VkPhysicalDeviceSparseProperties sparseProperties; +} VkPhysicalDeviceProperties; -typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV +typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { VkStructureType sType; void *pNext; - VkBool32 representativeFragmentTest; -} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + uint32_t maxPushDescriptors; +} VkPhysicalDevicePushDescriptorPropertiesKHR; -typedef struct VkPhysicalDeviceShaderClockFeaturesKHR +typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { VkStructureType sType; void *pNext; - VkBool32 shaderSubgroupClock; - VkBool32 shaderDeviceClock; -} VkPhysicalDeviceShaderClockFeaturesKHR; + VkSampleCountFlags sampleLocationSampleCounts; + VkExtent2D maxSampleLocationGridSize; + float sampleLocationCoordinateRange[2]; + uint32_t sampleLocationSubPixelBits; + VkBool32 variableSampleLocations; +} VkPhysicalDeviceSampleLocationsPropertiesEXT; -typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV +typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { VkStructureType sType; void *pNext; - VkBool32 imageFootprint; -} VkPhysicalDeviceShaderImageFootprintFeaturesNV; + VkBool32 shaderSubgroupExtendedTypes; +} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; +typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; -typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV +typedef struct VkPhysicalDeviceSubgroupProperties { VkStructureType sType; void *pNext; - VkExtent2D shadingRateTexelSize; - uint32_t shadingRatePaletteSize; - uint32_t shadingRateMaxCoarseSamples; -} VkPhysicalDeviceShadingRateImagePropertiesNV; + uint32_t subgroupSize; + VkShaderStageFlags supportedStages; + VkSubgroupFeatureFlags supportedOperations; + VkBool32 quadOperationsInAllStages; +} VkPhysicalDeviceSubgroupProperties; -typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT +typedef struct VkPhysicalDeviceVulkan12Features { VkStructureType sType; void *pNext; - VkBool32 texelBufferAlignment; -} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; + VkBool32 samplerMirrorClampToEdge; + VkBool32 drawIndirectCount; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; + VkBool32 descriptorIndexing; + VkBool32 shaderInputAttachmentArrayDynamicIndexing; + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; + VkBool32 shaderUniformBufferArrayNonUniformIndexing; + VkBool32 shaderSampledImageArrayNonUniformIndexing; + VkBool32 shaderStorageBufferArrayNonUniformIndexing; + VkBool32 shaderStorageImageArrayNonUniformIndexing; + VkBool32 shaderInputAttachmentArrayNonUniformIndexing; + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; + VkBool32 descriptorBindingUniformBufferUpdateAfterBind; + VkBool32 descriptorBindingSampledImageUpdateAfterBind; + VkBool32 descriptorBindingStorageImageUpdateAfterBind; + VkBool32 descriptorBindingStorageBufferUpdateAfterBind; + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingUpdateUnusedWhilePending; + VkBool32 descriptorBindingPartiallyBound; + VkBool32 descriptorBindingVariableDescriptorCount; + VkBool32 runtimeDescriptorArray; + VkBool32 samplerFilterMinmax; + VkBool32 scalarBlockLayout; + VkBool32 imagelessFramebuffer; + VkBool32 uniformBufferStandardLayout; + VkBool32 shaderSubgroupExtendedTypes; + VkBool32 separateDepthStencilLayouts; + VkBool32 hostQueryReset; + VkBool32 timelineSemaphore; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; + VkBool32 shaderOutputViewportIndex; + VkBool32 shaderOutputLayer; + VkBool32 subgroupBroadcastDynamicId; +} VkPhysicalDeviceVulkan12Features; -typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +typedef struct VkPipelineColorBlendAttachmentState { - VkStructureType sType; - void *pNext; - VkBool32 transformFeedback; - VkBool32 geometryStreams; -} VkPhysicalDeviceTransformFeedbackFeaturesEXT; - -typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT -{ - VkStructureType sType; - void *pNext; - VkBool32 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; -} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + VkBool32 blendEnable; + VkBlendFactor srcColorBlendFactor; + VkBlendFactor dstColorBlendFactor; + VkBlendOp colorBlendOp; + VkBlendFactor srcAlphaBlendFactor; + VkBlendFactor dstAlphaBlendFactor; + VkBlendOp alphaBlendOp; + VkColorComponentFlags colorWriteMask; +} VkPipelineColorBlendAttachmentState; typedef struct VkPipelineCoverageToColorStateCreateInfoNV { @@ -6359,16 +6420,21 @@ typedef struct VkPipelineMultisampleStateCreateInfo VkBool32 alphaToOneEnable; } VkPipelineMultisampleStateCreateInfo; -typedef struct VkPipelineShaderStageCreateInfo +typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { VkStructureType sType; const void *pNext; - VkPipelineShaderStageCreateFlags flags; - VkShaderStageFlagBits stage; - VkShaderModule WINE_VK_ALIGN(8) module; - const char *pName; - const VkSpecializationInfo *pSpecializationInfo; -} VkPipelineShaderStageCreateInfo; + VkBool32 sampleLocationsEnable; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkPipelineSampleLocationsStateCreateInfoEXT; + +typedef struct VkPipelineTessellationStateCreateInfo +{ + VkStructureType sType; + const void *pNext; + VkPipelineTessellationStateCreateFlags flags; + uint32_t patchControlPoints; +} VkPipelineTessellationStateCreateInfo; typedef struct VkPipelineVertexInputStateCreateInfo { @@ -6426,39 +6492,32 @@ typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT VkAttachmentReference fragmentDensityMapAttachment; } VkRenderPassFragmentDensityMapCreateInfoEXT; -typedef struct VkSampleLocationsInfoEXT +typedef struct VkSamplerCustomBorderColorCreateInfoEXT { VkStructureType sType; const void *pNext; - VkSampleCountFlagBits sampleLocationsPerPixel; - VkExtent2D sampleLocationGridSize; - uint32_t sampleLocationsCount; - const VkSampleLocationEXT *pSampleLocations; -} VkSampleLocationsInfoEXT; + VkClearColorValue customBorderColor; + VkFormat format; +} VkSamplerCustomBorderColorCreateInfoEXT; -typedef struct VkSamplerYcbcrConversionImageFormatProperties +typedef struct VkSamplerYcbcrConversionInfo { VkStructureType sType; - void *pNext; - uint32_t combinedImageSamplerDescriptorCount; -} VkSamplerYcbcrConversionImageFormatProperties; -typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; + const void *pNext; + VkSamplerYcbcrConversion WINE_VK_ALIGN(8) conversion; +} VkSamplerYcbcrConversionInfo; +typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; -typedef struct VkShaderResourceUsageAMD +typedef struct VkShaderStatisticsInfoAMD { - uint32_t numUsedVgprs; - uint32_t numUsedSgprs; - uint32_t ldsSizePerLocalWorkGroup; - size_t ldsUsageSizeInBytes; - size_t scratchMemUsageInBytes; -} VkShaderResourceUsageAMD; - -typedef struct VkSparseBufferMemoryBindInfo -{ - VkBuffer WINE_VK_ALIGN(8) buffer; - uint32_t bindCount; - const VkSparseMemoryBind *pBinds; -} VkSparseBufferMemoryBindInfo; + VkShaderStageFlags shaderStageMask; + VkShaderResourceUsageAMD resourceUsage; + uint32_t numPhysicalVgprs; + uint32_t numPhysicalSgprs; + uint32_t numAvailableVgprs; + uint32_t numAvailableSgprs; + uint32_t computeWorkGroupSize[3]; +} VkShaderStatisticsInfoAMD; typedef struct VkSparseImageOpaqueMemoryBindInfo { @@ -6516,10 +6575,16 @@ typedef struct VkAcquireProfilingLockInfoKHR uint64_t WINE_VK_ALIGN(8) timeout; } VkAcquireProfilingLockInfoKHR; -typedef struct VkBindShaderGroupIndirectCommandNV +typedef struct VkBindImageMemoryDeviceGroupInfo { - uint32_t groupIndex; -} VkBindShaderGroupIndirectCommandNV; + VkStructureType sType; + const void *pNext; + uint32_t deviceIndexCount; + const uint32_t *pDeviceIndices; + uint32_t splitInstanceBindRegionCount; + const VkRect2D *pSplitInstanceBindRegions; +} VkBindImageMemoryDeviceGroupInfo; +typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; typedef struct VkCheckpointDataNV { @@ -6537,16 +6602,15 @@ typedef struct VkCommandBufferBeginInfo const VkCommandBufferInheritanceInfo *pInheritanceInfo; } VkCommandBufferBeginInfo; -typedef struct VkComputePipelineCreateInfo +typedef struct VkCopyBufferInfo2KHR { VkStructureType sType; const void *pNext; - VkPipelineCreateFlags flags; - VkPipelineShaderStageCreateInfo WINE_VK_ALIGN(8) stage; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; - int32_t basePipelineIndex; -} VkComputePipelineCreateInfo; + VkBuffer WINE_VK_ALIGN(8) srcBuffer; + VkBuffer WINE_VK_ALIGN(8) dstBuffer; + uint32_t regionCount; + const VkBufferCopy2KHR *pRegions; +} VkCopyBufferInfo2KHR; typedef struct VkDescriptorSetLayoutBinding { @@ -6683,73 +6747,47 @@ typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; } VkPhysicalDeviceInlineUniformBlockPropertiesEXT; -typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR +typedef struct VkPhysicalDeviceProperties2 { VkStructureType sType; void *pNext; - uint32_t maxPushDescriptors; -} VkPhysicalDevicePushDescriptorPropertiesKHR; + VkPhysicalDeviceProperties WINE_VK_ALIGN(8) properties; +} VkPhysicalDeviceProperties2; +typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; -typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures +typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { VkStructureType sType; void *pNext; - VkBool32 shaderSubgroupExtendedTypes; -} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; -typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; -typedef struct VkPhysicalDeviceVulkan12Features +typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { VkStructureType sType; void *pNext; - VkBool32 samplerMirrorClampToEdge; - VkBool32 drawIndirectCount; - VkBool32 storageBuffer8BitAccess; - VkBool32 uniformAndStorageBuffer8BitAccess; - VkBool32 storagePushConstant8; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; - VkBool32 shaderFloat16; - VkBool32 shaderInt8; - VkBool32 descriptorIndexing; - VkBool32 shaderInputAttachmentArrayDynamicIndexing; - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; - VkBool32 shaderUniformBufferArrayNonUniformIndexing; - VkBool32 shaderSampledImageArrayNonUniformIndexing; - VkBool32 shaderStorageBufferArrayNonUniformIndexing; - VkBool32 shaderStorageImageArrayNonUniformIndexing; - VkBool32 shaderInputAttachmentArrayNonUniformIndexing; - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; - VkBool32 descriptorBindingUniformBufferUpdateAfterBind; - VkBool32 descriptorBindingSampledImageUpdateAfterBind; - VkBool32 descriptorBindingStorageImageUpdateAfterBind; - VkBool32 descriptorBindingStorageBufferUpdateAfterBind; - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingUpdateUnusedWhilePending; - VkBool32 descriptorBindingPartiallyBound; - VkBool32 descriptorBindingVariableDescriptorCount; - VkBool32 runtimeDescriptorArray; - VkBool32 samplerFilterMinmax; - VkBool32 scalarBlockLayout; - VkBool32 imagelessFramebuffer; - VkBool32 uniformBufferStandardLayout; - VkBool32 shaderSubgroupExtendedTypes; - VkBool32 separateDepthStencilLayouts; - VkBool32 hostQueryReset; - VkBool32 timelineSemaphore; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; - VkBool32 shaderOutputViewportIndex; - VkBool32 shaderOutputLayer; - VkBool32 subgroupBroadcastDynamicId; -} VkPhysicalDeviceVulkan12Features; + VkBool32 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; + +typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + +typedef struct VkPipelineColorBlendStateCreateInfo +{ + VkStructureType sType; + const void *pNext; + VkPipelineColorBlendStateCreateFlags flags; + VkBool32 logicOpEnable; + VkLogicOp logicOp; + uint32_t attachmentCount; + const VkPipelineColorBlendAttachmentState *pAttachments; + float blendConstants[4]; +} VkPipelineColorBlendStateCreateInfo; typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { @@ -6778,14 +6816,6 @@ typedef struct VkPipelineRasterizationStateCreateInfo float lineWidth; } VkPipelineRasterizationStateCreateInfo; -typedef struct VkPipelineTessellationStateCreateInfo -{ - VkStructureType sType; - const void *pNext; - VkPipelineTessellationStateCreateFlags flags; - uint32_t patchControlPoints; -} VkPipelineTessellationStateCreateInfo; - typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { VkStructureType sType; @@ -6814,33 +6844,14 @@ typedef struct VkPresentRegionsKHR const VkPresentRegionKHR *pRegions; } VkPresentRegionsKHR; -typedef struct VkRayTracingPipelineCreateInfoNV +typedef struct VkRenderPassAttachmentBeginInfo { VkStructureType sType; const void *pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo *pStages; - uint32_t groupCount; - const VkRayTracingShaderGroupCreateInfoNV *pGroups; - uint32_t maxRecursionDepth; - VkPipelineLayout WINE_VK_ALIGN(8) layout; - VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; - int32_t basePipelineIndex; -} VkRayTracingPipelineCreateInfoNV; - -typedef struct VkRenderPassCreateInfo -{ - VkStructureType sType; - const void *pNext; - VkRenderPassCreateFlags flags; uint32_t attachmentCount; - const VkAttachmentDescription *pAttachments; - uint32_t subpassCount; - const VkSubpassDescription *pSubpasses; - uint32_t dependencyCount; - const VkSubpassDependency *pDependencies; -} VkRenderPassCreateInfo; + const VkImageView *pAttachments; +} VkRenderPassAttachmentBeginInfo; +typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; typedef struct VkRenderPassMultiviewCreateInfo { @@ -6855,6 +6866,30 @@ typedef struct VkRenderPassMultiviewCreateInfo } VkRenderPassMultiviewCreateInfo; typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; +typedef struct VkSamplerYcbcrConversionCreateInfo +{ + VkStructureType sType; + const void *pNext; + VkFormat format; + VkSamplerYcbcrModelConversion ycbcrModel; + VkSamplerYcbcrRange ycbcrRange; + VkComponentMapping components; + VkChromaLocation xChromaOffset; + VkChromaLocation yChromaOffset; + VkFilter chromaFilter; + VkBool32 forceExplicitReconstruction; +} VkSamplerYcbcrConversionCreateInfo; +typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; + +typedef struct VkShaderModuleCreateInfo +{ + VkStructureType sType; + const void *pNext; + VkShaderModuleCreateFlags flags; + size_t codeSize; + const uint32_t *pCode; +} VkShaderModuleCreateInfo; + typedef struct VkStencilOpState { VkStencilOp failOp; @@ -6888,16 +6923,10 @@ typedef struct VkAttachmentDescription2 } VkAttachmentDescription2; typedef VkAttachmentDescription2 VkAttachmentDescription2KHR; -typedef struct VkBindImageMemoryDeviceGroupInfo +typedef struct VkBindShaderGroupIndirectCommandNV { - VkStructureType sType; - const void *pNext; - uint32_t deviceIndexCount; - const uint32_t *pDeviceIndices; - uint32_t splitInstanceBindRegionCount; - const VkRect2D *pSplitInstanceBindRegions; -} VkBindImageMemoryDeviceGroupInfo; -typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; + uint32_t groupIndex; +} VkBindShaderGroupIndirectCommandNV; typedef struct VkClearRect { @@ -6906,22 +6935,27 @@ typedef struct VkClearRect uint32_t layerCount; } VkClearRect; -typedef struct VkDescriptorSetLayoutCreateInfo +typedef struct VkDescriptorBufferInfo { - VkStructureType sType; - const void *pNext; - VkDescriptorSetLayoutCreateFlags flags; - uint32_t bindingCount; - const VkDescriptorSetLayoutBinding *pBindings; -} VkDescriptorSetLayoutCreateInfo; + VkBuffer WINE_VK_ALIGN(8) buffer; + VkDeviceSize WINE_VK_ALIGN(8) offset; + VkDeviceSize WINE_VK_ALIGN(8) range; +} VkDescriptorBufferInfo; -typedef struct VkExternalImageFormatProperties +typedef struct VkExternalBufferProperties { VkStructureType sType; void *pNext; VkExternalMemoryProperties externalMemoryProperties; -} VkExternalImageFormatProperties; -typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; +} VkExternalBufferProperties; +typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; + +typedef struct VkFormatProperties +{ + VkFormatFeatureFlags linearTilingFeatures; + VkFormatFeatureFlags optimalTilingFeatures; + VkFormatFeatureFlags bufferFeatures; +} VkFormatProperties; typedef struct VkGeometryNV { @@ -6932,16 +6966,6 @@ typedef struct VkGeometryNV VkGeometryFlagsKHR flags; } VkGeometryNV; -typedef struct VkGraphicsShaderGroupCreateInfoNV -{ - VkStructureType sType; - const void *pNext; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo *pStages; - const VkPipelineVertexInputStateCreateInfo *pVertexInputState; - const VkPipelineTessellationStateCreateInfo *pTessellationState; -} VkGraphicsShaderGroupCreateInfoNV; - typedef struct VkMemoryHeap { VkDeviceSize WINE_VK_ALIGN(8) size; @@ -6981,6 +7005,22 @@ typedef struct VkPhysicalDeviceImageFormatInfo2 } VkPhysicalDeviceImageFormatInfo2; typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; +typedef struct VkPhysicalDeviceShaderClockFeaturesKHR +{ + VkStructureType sType; + void *pNext; + VkBool32 shaderSubgroupClock; + VkBool32 shaderDeviceClock; +} VkPhysicalDeviceShaderClockFeaturesKHR; + +typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 transformFeedback; + VkBool32 geometryStreams; +} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + typedef struct VkPipelineDepthStencilStateCreateInfo { VkStructureType sType; @@ -6997,13 +7037,16 @@ typedef struct VkPipelineDepthStencilStateCreateInfo float maxDepthBounds; } VkPipelineDepthStencilStateCreateInfo; -typedef struct VkPipelineSampleLocationsStateCreateInfoEXT +typedef struct VkPipelineShaderStageCreateInfo { VkStructureType sType; const void *pNext; - VkBool32 sampleLocationsEnable; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkPipelineSampleLocationsStateCreateInfoEXT; + VkPipelineShaderStageCreateFlags flags; + VkShaderStageFlagBits stage; + VkShaderModule WINE_VK_ALIGN(8) module; + const char *pName; + const VkSpecializationInfo *pSpecializationInfo; +} VkPipelineShaderStageCreateInfo; typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { @@ -7022,28 +7065,42 @@ typedef struct VkQueryPoolPerformanceCreateInfoKHR const uint32_t *pCounterIndices; } VkQueryPoolPerformanceCreateInfoKHR; -typedef struct VkRenderPassCreateInfo2 +typedef struct VkRenderPassCreateInfo { VkStructureType sType; const void *pNext; VkRenderPassCreateFlags flags; uint32_t attachmentCount; - const VkAttachmentDescription2 *pAttachments; + const VkAttachmentDescription *pAttachments; uint32_t subpassCount; - const VkSubpassDescription2 *pSubpasses; + const VkSubpassDescription *pSubpasses; uint32_t dependencyCount; - const VkSubpassDependency2 *pDependencies; - uint32_t correlatedViewMaskCount; - const uint32_t *pCorrelatedViewMasks; -} VkRenderPassCreateInfo2; -typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; + const VkSubpassDependency *pDependencies; +} VkRenderPassCreateInfo; -typedef struct VkSemaphoreCreateInfo +typedef struct VkRenderPassSampleLocationsBeginInfoEXT { VkStructureType sType; const void *pNext; - VkSemaphoreCreateFlags flags; -} VkSemaphoreCreateInfo; + uint32_t attachmentInitialSampleLocationsCount; + const VkAttachmentSampleLocationsEXT *pAttachmentInitialSampleLocations; + uint32_t postSubpassSampleLocationsCount; + const VkSubpassSampleLocationsEXT *pPostSubpassSampleLocations; +} VkRenderPassSampleLocationsBeginInfoEXT; + +typedef struct VkWriteDescriptorSet +{ + VkStructureType sType; + const void *pNext; + VkDescriptorSet WINE_VK_ALIGN(8) dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; + VkDescriptorType descriptorType; + const VkDescriptorImageInfo *pImageInfo; + const VkDescriptorBufferInfo *pBufferInfo; + const VkBufferView *pTexelBufferView; +} VkWriteDescriptorSet; typedef struct VkAccelerationStructureInfoNV { @@ -7064,23 +7121,32 @@ typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM VkRect2D renderArea; } VkCommandBufferInheritanceRenderPassTransformInfoQCOM; -typedef struct VkExternalBufferProperties -{ - VkStructureType sType; - void *pNext; - VkExternalMemoryProperties externalMemoryProperties; -} VkExternalBufferProperties; -typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; - -typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV +typedef struct VkDescriptorSetLayoutCreateInfo { VkStructureType sType; const void *pNext; - uint32_t groupCount; - const VkGraphicsShaderGroupCreateInfoNV *pGroups; - uint32_t pipelineCount; - const VkPipeline *pPipelines; -} VkGraphicsPipelineShaderGroupsCreateInfoNV; + VkDescriptorSetLayoutCreateFlags flags; + uint32_t bindingCount; + const VkDescriptorSetLayoutBinding *pBindings; +} VkDescriptorSetLayoutCreateInfo; + +typedef struct VkFormatProperties2 +{ + VkStructureType sType; + void *pNext; + VkFormatProperties formatProperties; +} VkFormatProperties2; +typedef VkFormatProperties2 VkFormatProperties2KHR; + +typedef struct VkGraphicsShaderGroupCreateInfoNV +{ + VkStructureType sType; + const void *pNext; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo *pStages; + const VkPipelineVertexInputStateCreateInfo *pVertexInputState; + const VkPipelineTessellationStateCreateInfo *pTessellationState; +} VkGraphicsShaderGroupCreateInfoNV; typedef struct VkInstanceCreateInfo { @@ -7109,55 +7175,42 @@ typedef struct VkPhysicalDeviceMemoryProperties VkMemoryHeap WINE_VK_ALIGN(8) memoryHeaps[VK_MAX_MEMORY_HEAPS]; } VkPhysicalDeviceMemoryProperties; -typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT +typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { VkStructureType sType; void *pNext; - VkSampleCountFlags sampleLocationSampleCounts; - VkExtent2D maxSampleLocationGridSize; - float sampleLocationCoordinateRange[2]; - uint32_t sampleLocationSubPixelBits; - VkBool32 variableSampleLocations; -} VkPhysicalDeviceSampleLocationsPropertiesEXT; + VkBool32 representativeFragmentTest; +} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; -typedef struct VkPipelineColorBlendAttachmentState -{ - VkBool32 blendEnable; - VkBlendFactor srcColorBlendFactor; - VkBlendFactor dstColorBlendFactor; - VkBlendOp colorBlendOp; - VkBlendFactor srcAlphaBlendFactor; - VkBlendFactor dstAlphaBlendFactor; - VkBlendOp alphaBlendOp; - VkColorComponentFlags colorWriteMask; -} VkPipelineColorBlendAttachmentState; - -typedef struct VkPipelineInfoKHR +typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { VkStructureType sType; const void *pNext; - VkPipeline WINE_VK_ALIGN(8) pipeline; -} VkPipelineInfoKHR; + uint32_t vertexBindingDivisorCount; + const VkVertexInputBindingDivisorDescriptionEXT *pVertexBindingDivisors; +} VkPipelineVertexInputDivisorStateCreateInfoEXT; -typedef struct VkPipelineViewportWScalingStateCreateInfoNV +typedef struct VkRayTracingPipelineCreateInfoNV { VkStructureType sType; const void *pNext; - VkBool32 viewportWScalingEnable; - uint32_t viewportCount; - const VkViewportWScalingNV *pViewportWScalings; -} VkPipelineViewportWScalingStateCreateInfoNV; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo *pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoNV *pGroups; + uint32_t maxRecursionDepth; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoNV; -typedef struct VkShaderStatisticsInfoAMD +typedef struct VkSparseBufferMemoryBindInfo { - VkShaderStageFlags shaderStageMask; - VkShaderResourceUsageAMD resourceUsage; - uint32_t numPhysicalVgprs; - uint32_t numPhysicalSgprs; - uint32_t numAvailableVgprs; - uint32_t numAvailableSgprs; - uint32_t computeWorkGroupSize[3]; -} VkShaderStatisticsInfoAMD; + VkBuffer WINE_VK_ALIGN(8) buffer; + uint32_t bindCount; + const VkSparseMemoryBind *pBinds; +} VkSparseBufferMemoryBindInfo; typedef struct VkSurfaceCapabilities2KHR { @@ -7174,166 +7227,16 @@ typedef struct VkAccelerationStructureCreateInfoNV VkAccelerationStructureInfoNV info; } VkAccelerationStructureCreateInfoNV; -typedef struct VkDescriptorImageInfo -{ - VkSampler WINE_VK_ALIGN(8) sampler; - VkImageView WINE_VK_ALIGN(8) imageView; - VkImageLayout imageLayout; -} VkDescriptorImageInfo; - -typedef struct VkFormatProperties -{ - VkFormatFeatureFlags linearTilingFeatures; - VkFormatFeatureFlags optimalTilingFeatures; - VkFormatFeatureFlags bufferFeatures; -} VkFormatProperties; - -typedef struct VkOffset3D -{ - int32_t x; - int32_t y; - int32_t z; -} VkOffset3D; - -typedef struct VkPhysicalDeviceMemoryProperties2 -{ - VkStructureType sType; - void *pNext; - VkPhysicalDeviceMemoryProperties WINE_VK_ALIGN(8) memoryProperties; -} VkPhysicalDeviceMemoryProperties2; -typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; - -typedef struct VkPipelineColorBlendStateCreateInfo +typedef struct VkComputePipelineCreateInfo { VkStructureType sType; const void *pNext; - VkPipelineColorBlendStateCreateFlags flags; - VkBool32 logicOpEnable; - VkLogicOp logicOp; - uint32_t attachmentCount; - const VkPipelineColorBlendAttachmentState *pAttachments; - float blendConstants[4]; -} VkPipelineColorBlendStateCreateInfo; - -typedef struct VkRenderPassAttachmentBeginInfo -{ - VkStructureType sType; - const void *pNext; - uint32_t attachmentCount; - const VkImageView *pAttachments; -} VkRenderPassAttachmentBeginInfo; -typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; - -typedef struct VkSparseImageMemoryBind -{ - VkImageSubresource subresource; - VkOffset3D offset; - VkExtent3D extent; - VkDeviceMemory WINE_VK_ALIGN(8) memory; - VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; - VkSparseMemoryBindFlags flags; -} VkSparseImageMemoryBind; - -typedef struct VkWin32SurfaceCreateInfoKHR -{ - VkStructureType sType; - const void *pNext; - VkWin32SurfaceCreateFlagsKHR flags; - HINSTANCE hinstance; - HWND hwnd; -} VkWin32SurfaceCreateInfoKHR; - -typedef struct VkAttachmentSampleLocationsEXT -{ - uint32_t attachmentIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkAttachmentSampleLocationsEXT; - -typedef struct VkBufferImageCopy -{ - VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkBufferImageCopy; - -typedef struct VkFormatProperties2 -{ - VkStructureType sType; - void *pNext; - VkFormatProperties formatProperties; -} VkFormatProperties2; -typedef VkFormatProperties2 VkFormatProperties2KHR; - -typedef struct VkImageBlit -{ - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit; - -typedef struct VkImageResolve -{ - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageResolve; - -typedef struct VkPhysicalDeviceSubgroupProperties -{ - VkStructureType sType; - void *pNext; - uint32_t subgroupSize; - VkShaderStageFlags supportedStages; - VkSubgroupFeatureFlags supportedOperations; - VkBool32 quadOperationsInAllStages; -} VkPhysicalDeviceSubgroupProperties; - -typedef struct VkRenderPassSampleLocationsBeginInfoEXT -{ - VkStructureType sType; - const void *pNext; - uint32_t attachmentInitialSampleLocationsCount; - const VkAttachmentSampleLocationsEXT *pAttachmentInitialSampleLocations; - uint32_t postSubpassSampleLocationsCount; - const VkSubpassSampleLocationsEXT *pPostSubpassSampleLocations; -} VkRenderPassSampleLocationsBeginInfoEXT; - -typedef struct VkWriteDescriptorSet -{ - VkStructureType sType; - const void *pNext; - VkDescriptorSet WINE_VK_ALIGN(8) dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; - VkDescriptorType descriptorType; - const VkDescriptorImageInfo *pImageInfo; - const VkDescriptorBufferInfo *pBufferInfo; - const VkBufferView *pTexelBufferView; -} VkWriteDescriptorSet; - -typedef struct VkImageCopy -{ - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy; - -typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT -{ - VkStructureType sType; - const void *pNext; - uint32_t vertexBindingDivisorCount; - const VkVertexInputBindingDivisorDescriptionEXT *pVertexBindingDivisors; -} VkPipelineVertexInputDivisorStateCreateInfoEXT; + VkPipelineCreateFlags flags; + VkPipelineShaderStageCreateInfo WINE_VK_ALIGN(8) stage; + VkPipelineLayout WINE_VK_ALIGN(8) layout; + VkPipeline WINE_VK_ALIGN(8) basePipelineHandle; + int32_t basePipelineIndex; +} VkComputePipelineCreateInfo; typedef struct VkGraphicsPipelineCreateInfo { @@ -7358,6 +7261,116 @@ typedef struct VkGraphicsPipelineCreateInfo int32_t basePipelineIndex; } VkGraphicsPipelineCreateInfo; +typedef struct VkOffset3D +{ + int32_t x; + int32_t y; + int32_t z; +} VkOffset3D; + +typedef struct VkPhysicalDeviceMemoryProperties2 +{ + VkStructureType sType; + void *pNext; + VkPhysicalDeviceMemoryProperties WINE_VK_ALIGN(8) memoryProperties; +} VkPhysicalDeviceMemoryProperties2; +typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; + +typedef struct VkPipelineInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkPipeline WINE_VK_ALIGN(8) pipeline; +} VkPipelineInfoKHR; + +typedef struct VkRenderPassCreateInfo2 +{ + VkStructureType sType; + const void *pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription2 *pAttachments; + uint32_t subpassCount; + const VkSubpassDescription2 *pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency2 *pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t *pCorrelatedViewMasks; +} VkRenderPassCreateInfo2; +typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; + +typedef struct VkSparseImageMemoryBind +{ + VkImageSubresource subresource; + VkOffset3D offset; + VkExtent3D extent; + VkDeviceMemory WINE_VK_ALIGN(8) memory; + VkDeviceSize WINE_VK_ALIGN(8) memoryOffset; + VkSparseMemoryBindFlags flags; +} VkSparseImageMemoryBind; + +typedef struct VkWin32SurfaceCreateInfoKHR +{ + VkStructureType sType; + const void *pNext; + VkWin32SurfaceCreateFlagsKHR flags; + HINSTANCE hinstance; + HWND hwnd; +} VkWin32SurfaceCreateInfoKHR; + +typedef struct VkBufferImageCopy +{ + VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy; + +typedef struct VkExternalImageFormatProperties +{ + VkStructureType sType; + void *pNext; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalImageFormatProperties; +typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; + +typedef struct VkImageBlit +{ + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit; + +typedef struct VkImageCopy +{ + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy; + +typedef struct VkImageResolve +{ + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve; + +typedef struct VkPipelineViewportWScalingStateCreateInfoNV +{ + VkStructureType sType; + const void *pNext; + VkBool32 viewportWScalingEnable; + uint32_t viewportCount; + const VkViewportWScalingNV *pViewportWScalings; +} VkPipelineViewportWScalingStateCreateInfoNV; + typedef struct VkSparseImageMemoryBindInfo { VkImage WINE_VK_ALIGN(8) image; @@ -7381,6 +7394,128 @@ typedef struct VkBindSparseInfo const VkSemaphore *pSignalSemaphores; } VkBindSparseInfo; +typedef struct VkBufferImageCopy2KHR +{ + VkStructureType sType; + const void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2KHR; + +typedef struct VkCopyImageToBufferInfo2KHR +{ + VkStructureType sType; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkBuffer WINE_VK_ALIGN(8) dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2KHR *pRegions; +} VkCopyImageToBufferInfo2KHR; + +typedef struct VkImageBlit2KHR +{ + VkStructureType sType; + const void *pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit2KHR; + +typedef struct VkImageResolve2KHR +{ + VkStructureType sType; + const void *pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve2KHR; + +typedef struct VkResolveImageInfo2KHR +{ + VkStructureType sType; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2KHR *pRegions; +} VkResolveImageInfo2KHR; + +typedef struct VkBlitImageInfo2KHR +{ + VkStructureType sType; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2KHR *pRegions; + VkFilter filter; +} VkBlitImageInfo2KHR; + +typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV +{ + VkStructureType sType; + const void *pNext; + uint32_t groupCount; + const VkGraphicsShaderGroupCreateInfoNV *pGroups; + uint32_t pipelineCount; + const VkPipeline *pPipelines; +} VkGraphicsPipelineShaderGroupsCreateInfoNV; + +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV +{ + VkStructureType sType; + void *pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; + +typedef struct VkCopyBufferToImageInfo2KHR +{ + VkStructureType sType; + const void *pNext; + VkBuffer WINE_VK_ALIGN(8) srcBuffer; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2KHR *pRegions; +} VkCopyBufferToImageInfo2KHR; + +typedef struct VkImageCopy2KHR +{ + VkStructureType sType; + const void *pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy2KHR; + +typedef struct VkCopyImageInfo2KHR +{ + VkStructureType sType; + const void *pNext; + VkImage WINE_VK_ALIGN(8) srcImage; + VkImageLayout srcImageLayout; + VkImage WINE_VK_ALIGN(8) dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2KHR *pRegions; +} VkCopyImageInfo2KHR; + typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice, const VkAcquireNextImageInfoKHR *, uint32_t *); typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice, VkSwapchainKHR, uint64_t, VkSemaphore, VkFence, uint32_t *); typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice, const VkPerformanceConfigurationAcquireInfoINTEL *, VkPerformanceConfigurationINTEL *); @@ -7412,15 +7547,20 @@ typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuff typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *); typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer, uint32_t, uint32_t, const VkBuffer *, const VkDeviceSize *, const VkDeviceSize *, const VkDeviceSize *); typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageBlit *, VkFilter); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer, const VkBlitImageInfo2KHR *); typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer, const VkAccelerationStructureInfoNV *, VkBuffer, VkDeviceSize, VkBool32, VkAccelerationStructureKHR, VkAccelerationStructureKHR, VkBuffer, VkDeviceSize); typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer, uint32_t, const VkClearAttachment *, uint32_t, const VkClearRect *); typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearColorValue *, uint32_t, const VkImageSubresourceRange *); typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer, VkImage, VkImageLayout, const VkClearDepthStencilValue *, uint32_t, const VkImageSubresourceRange *); typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer, VkAccelerationStructureKHR, VkAccelerationStructureKHR, VkCopyAccelerationStructureModeKHR); typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer, VkBuffer, VkBuffer, uint32_t, const VkBufferCopy *); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer, const VkCopyBufferInfo2KHR *); typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer, VkBuffer, VkImage, VkImageLayout, uint32_t, const VkBufferImageCopy *); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer, const VkCopyBufferToImageInfo2KHR *); typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageCopy *); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer, const VkCopyImageInfo2KHR *); typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer, VkImage, VkImageLayout, VkBuffer, uint32_t, const VkBufferImageCopy *); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer, const VkCopyImageToBufferInfo2KHR *); typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t, VkBuffer, VkDeviceSize, VkDeviceSize, VkQueryResultFlags); typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer, uint32_t, uint32_t, uint32_t); typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); @@ -7461,6 +7601,7 @@ typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuf typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer, VkEvent, VkPipelineStageFlags); typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer, VkQueryPool, uint32_t, uint32_t); typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer, VkImage, VkImageLayout, VkImage, VkImageLayout, uint32_t, const VkImageResolve *); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer, const VkResolveImageInfo2KHR *); typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer, const float[4]); typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer, const void *); typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer, VkCoarseSampleOrderTypeNV, uint32_t, const VkCoarseSampleOrderCustomNV *); @@ -7739,15 +7880,20 @@ void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuff void VKAPI_CALL vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer *pBuffers, const VkDeviceSize *pOffsets); void VKAPI_CALL vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer *pBuffers, const VkDeviceSize *pOffsets, const VkDeviceSize *pSizes, const VkDeviceSize *pStrides); void VKAPI_CALL vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit *pRegions, VkFilter filter); +void VKAPI_CALL vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR *pBlitImageInfo); void VKAPI_CALL vkCmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV *pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset); void VKAPI_CALL vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment *pAttachments, uint32_t rectCount, const VkClearRect *pRects); void VKAPI_CALL vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue *pColor, uint32_t rangeCount, const VkImageSubresourceRange *pRanges); void VKAPI_CALL vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue *pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange *pRanges); void VKAPI_CALL vkCmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode); void VKAPI_CALL vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy *pRegions); +void VKAPI_CALL vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR *pCopyBufferInfo); void VKAPI_CALL vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy *pRegions); +void VKAPI_CALL vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR *pCopyBufferToImageInfo); void VKAPI_CALL vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy *pRegions); +void VKAPI_CALL vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR *pCopyImageInfo); void VKAPI_CALL vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy *pRegions); +void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR *pCopyImageToBufferInfo); void VKAPI_CALL vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); void VKAPI_CALL vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); void VKAPI_CALL vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); @@ -7788,6 +7934,7 @@ void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuf void VKAPI_CALL vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); void VKAPI_CALL vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); void VKAPI_CALL vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve *pRegions); +void VKAPI_CALL vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR *pResolveImageInfo); void VKAPI_CALL vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4]); void VKAPI_CALL vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer, const void *pCheckpointMarker); void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV *pCustomSampleOrders);