From 17d9841d86b9f5a7863a45cdfc7a9a2153115621 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Fri, 6 Oct 2023 19:33:28 +0200 Subject: [PATCH] winevulkan: Update to VK spec version 1.3.267. --- dlls/winevulkan/loader_thunks.c | 62 ++ dlls/winevulkan/loader_thunks.h | 42 ++ dlls/winevulkan/make_vulkan | 2 +- dlls/winevulkan/vulkan_thunks.c | 1165 ++++++++++++++++++++++++++++++- dlls/winevulkan/vulkan_thunks.h | 10 + dlls/winevulkan/winevulkan.json | 2 +- include/wine/vulkan.h | 375 +++++++++- 7 files changed, 1627 insertions(+), 31 deletions(-) diff --git a/dlls/winevulkan/loader_thunks.c b/dlls/winevulkan/loader_thunks.c index f867ef78f8f..2fbdda50b0b 100644 --- a/dlls/winevulkan/loader_thunks.c +++ b/dlls/winevulkan/loader_thunks.c @@ -4446,6 +4446,18 @@ VkResult WINAPI vkGetImageViewOpaqueCaptureDescriptorDataEXT(VkDevice device, co return params.result; } +void WINAPI vkGetLatencyTimingsNV(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pTimingCount, VkGetLatencyMarkerInfoNV *pLatencyMarkerInfo) +{ + struct vkGetLatencyTimingsNV_params params; + NTSTATUS status; + params.device = device; + params.swapchain = swapchain; + params.pTimingCount = pTimingCount; + params.pLatencyMarkerInfo = pLatencyMarkerInfo; + status = UNIX_CALL(vkGetLatencyTimingsNV, ¶ms); + assert(!status && "vkGetLatencyTimingsNV"); +} + VkResult WINAPI vkGetMemoryHostPointerPropertiesEXT(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void *pHostPointer, VkMemoryHostPointerPropertiesEXT *pMemoryHostPointerProperties) { struct vkGetMemoryHostPointerPropertiesEXT_params params; @@ -5350,6 +5362,18 @@ VkResult WINAPI vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryR return params.result; } +VkResult WINAPI vkLatencySleepNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV *pSleepInfo) +{ + struct vkLatencySleepNV_params params; + NTSTATUS status; + params.device = device; + params.swapchain = swapchain; + params.pSleepInfo = pSleepInfo; + status = UNIX_CALL(vkLatencySleepNV, ¶ms); + assert(!status && "vkLatencySleepNV"); + return params.result; +} + VkResult WINAPI vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData) { struct vkMapMemory_params params; @@ -5445,6 +5469,16 @@ void WINAPI vkQueueInsertDebugUtilsLabelEXT(VkQueue queue, const VkDebugUtilsLab assert(!status && "vkQueueInsertDebugUtilsLabelEXT"); } +void WINAPI vkQueueNotifyOutOfBandNV(VkQueue queue, const VkOutOfBandQueueTypeInfoNV *pQueueTypeInfo) +{ + struct vkQueueNotifyOutOfBandNV_params params; + NTSTATUS status; + params.queue = queue; + params.pQueueTypeInfo = pQueueTypeInfo; + status = UNIX_CALL(vkQueueNotifyOutOfBandNV, ¶ms); + assert(!status && "vkQueueNotifyOutOfBandNV"); +} + VkResult WINAPI vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo) { struct vkQueuePresentKHR_params params; @@ -5685,6 +5719,29 @@ void WINAPI vkSetHdrMetadataEXT(VkDevice device, uint32_t swapchainCount, const assert(!status && "vkSetHdrMetadataEXT"); } +void WINAPI vkSetLatencyMarkerNV(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV *pLatencyMarkerInfo) +{ + struct vkSetLatencyMarkerNV_params params; + NTSTATUS status; + params.device = device; + params.swapchain = swapchain; + params.pLatencyMarkerInfo = pLatencyMarkerInfo; + status = UNIX_CALL(vkSetLatencyMarkerNV, ¶ms); + assert(!status && "vkSetLatencyMarkerNV"); +} + +VkResult WINAPI vkSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV *pSleepModeInfo) +{ + struct vkSetLatencySleepModeNV_params params; + NTSTATUS status; + params.device = device; + params.swapchain = swapchain; + params.pSleepModeInfo = pSleepModeInfo; + status = UNIX_CALL(vkSetLatencySleepModeNV, ¶ms); + assert(!status && "vkSetLatencySleepModeNV"); + return params.result; +} + VkResult WINAPI vkSetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data) { struct vkSetPrivateData_params params; @@ -6339,6 +6396,7 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkGetImageViewAddressNVX", vkGetImageViewAddressNVX}, {"vkGetImageViewHandleNVX", vkGetImageViewHandleNVX}, {"vkGetImageViewOpaqueCaptureDescriptorDataEXT", vkGetImageViewOpaqueCaptureDescriptorDataEXT}, + {"vkGetLatencyTimingsNV", vkGetLatencyTimingsNV}, {"vkGetMemoryHostPointerPropertiesEXT", vkGetMemoryHostPointerPropertiesEXT}, {"vkGetMicromapBuildSizesEXT", vkGetMicromapBuildSizesEXT}, {"vkGetPerformanceParameterINTEL", vkGetPerformanceParameterINTEL}, @@ -6371,6 +6429,7 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkGetValidationCacheDataEXT", vkGetValidationCacheDataEXT}, {"vkInitializePerformanceApiINTEL", vkInitializePerformanceApiINTEL}, {"vkInvalidateMappedMemoryRanges", vkInvalidateMappedMemoryRanges}, + {"vkLatencySleepNV", vkLatencySleepNV}, {"vkMapMemory", vkMapMemory}, {"vkMapMemory2KHR", vkMapMemory2KHR}, {"vkMergePipelineCaches", vkMergePipelineCaches}, @@ -6379,6 +6438,7 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkQueueBindSparse", vkQueueBindSparse}, {"vkQueueEndDebugUtilsLabelEXT", vkQueueEndDebugUtilsLabelEXT}, {"vkQueueInsertDebugUtilsLabelEXT", vkQueueInsertDebugUtilsLabelEXT}, + {"vkQueueNotifyOutOfBandNV", vkQueueNotifyOutOfBandNV}, {"vkQueuePresentKHR", vkQueuePresentKHR}, {"vkQueueSetPerformanceConfigurationINTEL", vkQueueSetPerformanceConfigurationINTEL}, {"vkQueueSubmit", vkQueueSubmit}, @@ -6400,6 +6460,8 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkSetDeviceMemoryPriorityEXT", vkSetDeviceMemoryPriorityEXT}, {"vkSetEvent", vkSetEvent}, {"vkSetHdrMetadataEXT", vkSetHdrMetadataEXT}, + {"vkSetLatencyMarkerNV", vkSetLatencyMarkerNV}, + {"vkSetLatencySleepModeNV", vkSetLatencySleepModeNV}, {"vkSetPrivateData", vkSetPrivateData}, {"vkSetPrivateDataEXT", vkSetPrivateDataEXT}, {"vkSignalSemaphore", vkSignalSemaphore}, diff --git a/dlls/winevulkan/loader_thunks.h b/dlls/winevulkan/loader_thunks.h index 59839d96946..07b53017143 100644 --- a/dlls/winevulkan/loader_thunks.h +++ b/dlls/winevulkan/loader_thunks.h @@ -444,6 +444,7 @@ enum unix_call unix_vkGetImageViewAddressNVX, unix_vkGetImageViewHandleNVX, unix_vkGetImageViewOpaqueCaptureDescriptorDataEXT, + unix_vkGetLatencyTimingsNV, unix_vkGetMemoryHostPointerPropertiesEXT, unix_vkGetMicromapBuildSizesEXT, unix_vkGetPerformanceParameterINTEL, @@ -521,6 +522,7 @@ enum unix_call unix_vkGetValidationCacheDataEXT, unix_vkInitializePerformanceApiINTEL, unix_vkInvalidateMappedMemoryRanges, + unix_vkLatencySleepNV, unix_vkMapMemory, unix_vkMapMemory2KHR, unix_vkMergePipelineCaches, @@ -529,6 +531,7 @@ enum unix_call unix_vkQueueBindSparse, unix_vkQueueEndDebugUtilsLabelEXT, unix_vkQueueInsertDebugUtilsLabelEXT, + unix_vkQueueNotifyOutOfBandNV, unix_vkQueuePresentKHR, unix_vkQueueSetPerformanceConfigurationINTEL, unix_vkQueueSubmit, @@ -550,6 +553,8 @@ enum unix_call unix_vkSetDeviceMemoryPriorityEXT, unix_vkSetEvent, unix_vkSetHdrMetadataEXT, + unix_vkSetLatencyMarkerNV, + unix_vkSetLatencySleepModeNV, unix_vkSetPrivateData, unix_vkSetPrivateDataEXT, unix_vkSignalSemaphore, @@ -3880,6 +3885,14 @@ struct vkGetImageViewOpaqueCaptureDescriptorDataEXT_params VkResult result; }; +struct vkGetLatencyTimingsNV_params +{ + VkDevice device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + uint32_t *pTimingCount; + VkGetLatencyMarkerInfoNV *pLatencyMarkerInfo; +}; + struct vkGetMemoryHostPointerPropertiesEXT_params { VkDevice device; @@ -4496,6 +4509,14 @@ struct vkInvalidateMappedMemoryRanges_params VkResult result; }; +struct vkLatencySleepNV_params +{ + VkDevice device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + const VkLatencySleepInfoNV *pSleepInfo; + VkResult result; +}; + struct vkMapMemory_params { VkDevice device; @@ -4559,6 +4580,12 @@ struct vkQueueInsertDebugUtilsLabelEXT_params const VkDebugUtilsLabelEXT *pLabelInfo; }; +struct vkQueueNotifyOutOfBandNV_params +{ + VkQueue queue; + const VkOutOfBandQueueTypeInfoNV *pQueueTypeInfo; +}; + struct vkQueuePresentKHR_params { VkQueue queue; @@ -4715,6 +4742,21 @@ struct vkSetHdrMetadataEXT_params const VkHdrMetadataEXT *pMetadata; }; +struct vkSetLatencyMarkerNV_params +{ + VkDevice device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + const VkSetLatencyMarkerInfoNV *pLatencyMarkerInfo; +}; + +struct vkSetLatencySleepModeNV_params +{ + VkDevice device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + const VkLatencySleepModeInfoNV *pSleepModeInfo; + VkResult result; +}; + struct vkSetPrivateData_params { VkDevice device; diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 4ce3eee178b..cf776079631 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -65,7 +65,7 @@ from enum import Enum LOGGER = logging.Logger("vulkan") LOGGER.addHandler(logging.StreamHandler()) -VK_XML_VERSION = "1.3.260" +VK_XML_VERSION = "1.3.267" WINE_VK_VERSION = (1, 3) # Filenames to create. diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 1e19b7e80ee..25e3bcd8f9b 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -603,6 +603,13 @@ typedef struct VkImageBlit232 } VkImageBlit232; typedef VkImageBlit232 VkImageBlit2KHR32; +typedef struct VkBlitImageCubicWeightsInfoQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkBlitImageCubicWeightsInfoQCOM32; + typedef struct VkBlitImageInfo232 { VkStructureType sType; @@ -2778,6 +2785,15 @@ typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE32 VkBool32 descriptorSetHostMapping; } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE32; +typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 nestedCommandBuffer; + VkBool32 nestedCommandBufferRendering; + VkBool32 nestedCommandBufferSimultaneousUse; +} VkPhysicalDeviceNestedCommandBufferFeaturesEXT32; + typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT32 { VkStructureType sType; @@ -2909,6 +2925,13 @@ typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM32 VkBool32 shaderCoreBuiltins; } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM32; +typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 frameBoundary; +} VkPhysicalDeviceFrameBoundaryFeaturesEXT32; + typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT32 { VkStructureType sType; @@ -2940,6 +2963,13 @@ typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV32 VkBool32 rayTracingInvocationReorder; } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV32; +typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 extendedSparseAddressSpace; +} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32; + typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM32 { VkStructureType sType; @@ -2985,6 +3015,41 @@ typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR32 VkBool32 cooperativeMatrixRobustBufferAccess; } VkPhysicalDeviceCooperativeMatrixFeaturesKHR32; +typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 cubicRangeClamp; +} VkPhysicalDeviceCubicClampFeaturesQCOM32; + +typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 ycbcrDegamma; +} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32; + +typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 selectableCubicWeights; +} VkPhysicalDeviceCubicWeightsFeaturesQCOM32; + +typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 textureBlockMatch2; +} VkPhysicalDeviceImageProcessing2FeaturesQCOM32; + +typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 descriptorPoolOverallocation; +} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32; + typedef struct VkDeviceCreateInfo32 { VkStructureType sType; @@ -4007,6 +4072,21 @@ typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT32 VkBool32 srgb; } VkSamplerBorderColorComponentMappingCreateInfoEXT32; +typedef struct VkSamplerCubicWeightsCreateInfoQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkSamplerCubicWeightsCreateInfoQCOM32; + +typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkExtent2D windowExtent; + VkBlockMatchWindowCompareModeQCOM windowCompareMode; +} VkSamplerBlockMatchWindowCreateInfoQCOM32; + typedef struct VkSamplerCreateInfo32 { VkStructureType sType; @@ -4029,6 +4109,14 @@ typedef struct VkSamplerCreateInfo32 VkBool32 unnormalizedCoordinates; } VkSamplerCreateInfo32; +typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 enableYDegamma; + VkBool32 enableCbCrDegamma; +} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM32; + typedef struct VkSamplerYcbcrConversionCreateInfo32 { VkStructureType sType; @@ -4124,6 +4212,13 @@ typedef struct VkSwapchainPresentScalingCreateInfoEXT32 VkPresentGravityFlagsEXT presentGravityY; } VkSwapchainPresentScalingCreateInfoEXT32; +typedef struct VkSwapchainLatencyCreateInfoNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 latencyModeEnable; +} VkSwapchainLatencyCreateInfoNV32; + typedef struct VkSwapchainCreateInfoKHR32 { VkStructureType sType; @@ -4602,6 +4697,33 @@ typedef struct VkImageViewCaptureDescriptorDataInfoEXT32 VkImageView DECLSPEC_ALIGN(8) imageView; } VkImageViewCaptureDescriptorDataInfoEXT32; +typedef struct VkLatencyTimingsFrameReportNV32 +{ + VkStructureType sType; + PTR32 pNext; + uint64_t DECLSPEC_ALIGN(8) presentID; + uint64_t DECLSPEC_ALIGN(8) inputSampleTimeUs; + uint64_t DECLSPEC_ALIGN(8) simStartTimeUs; + uint64_t DECLSPEC_ALIGN(8) simEndTimeUs; + uint64_t DECLSPEC_ALIGN(8) renderSubmitStartTimeUs; + uint64_t DECLSPEC_ALIGN(8) renderSubmitEndTimeUs; + uint64_t DECLSPEC_ALIGN(8) presentStartTimeUs; + uint64_t DECLSPEC_ALIGN(8) presentEndTimeUs; + uint64_t DECLSPEC_ALIGN(8) driverStartTimeUs; + uint64_t DECLSPEC_ALIGN(8) driverEndTimeUs; + uint64_t DECLSPEC_ALIGN(8) osRenderQueueStartTimeUs; + uint64_t DECLSPEC_ALIGN(8) osRenderQueueEndTimeUs; + uint64_t DECLSPEC_ALIGN(8) gpuRenderStartTimeUs; + uint64_t DECLSPEC_ALIGN(8) gpuRenderEndTimeUs; +} VkLatencyTimingsFrameReportNV32; + +typedef struct VkGetLatencyMarkerInfoNV32 +{ + VkStructureType sType; + PTR32 pNext; + PTR32 pTimings; +} VkGetLatencyMarkerInfoNV32; + typedef struct VkMemoryHostPointerPropertiesEXT32 { VkStructureType sType; @@ -5834,6 +5956,13 @@ typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT32 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT32; +typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT32 +{ + VkStructureType sType; + PTR32 pNext; + uint32_t maxCommandBufferNestingLevel; +} VkPhysicalDeviceNestedCommandBufferPropertiesEXT32; + typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT32 { VkStructureType sType; @@ -5902,6 +6031,15 @@ typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV32 VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint; } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV32; +typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkDeviceSize DECLSPEC_ALIGN(8) extendedSparseAddressSpaceSize; + VkImageUsageFlags extendedSparseImageUsageFlags; + VkBufferUsageFlags extendedSparseBufferUsageFlags; +} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV32; + typedef struct VkPhysicalDeviceShaderCorePropertiesARM32 { VkStructureType sType; @@ -5935,6 +6073,20 @@ typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR32 VkShaderStageFlags cooperativeMatrixSupportedStages; } VkPhysicalDeviceCooperativeMatrixPropertiesKHR32; +typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM32 +{ + VkStructureType sType; + PTR32 pNext; + VkExtent2D maxBlockMatchWindow; +} VkPhysicalDeviceImageProcessing2PropertiesQCOM32; + +typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT32 +{ + VkStructureType sType; + PTR32 pNext; + VkLayeredDriverUnderlyingApiMSFT underlyingAPI; +} VkPhysicalDeviceLayeredDriverPropertiesMSFT32; + typedef struct VkPhysicalDeviceProperties232 { VkStructureType sType; @@ -6044,6 +6196,14 @@ typedef struct VkSurfacePresentModeCompatibilityEXT32 PTR32 pPresentModes; } VkSurfacePresentModeCompatibilityEXT32; +typedef struct VkLatencySurfaceCapabilitiesNV32 +{ + VkStructureType sType; + PTR32 pNext; + uint32_t presentModeCount; + PTR32 pPresentModes; +} VkLatencySurfaceCapabilitiesNV32; + typedef struct VkSurfaceCapabilities2KHR32 { VkStructureType sType; @@ -6183,6 +6343,14 @@ typedef struct VkInitializePerformanceApiInfoINTEL32 PTR32 pUserData; } VkInitializePerformanceApiInfoINTEL32; +typedef struct VkLatencySleepInfoNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkSemaphore DECLSPEC_ALIGN(8) signalSemaphore; + uint64_t DECLSPEC_ALIGN(8) value; +} VkLatencySleepInfoNV32; + typedef struct VkMemoryMapInfoKHR32 { VkStructureType sType; @@ -6253,6 +6421,21 @@ typedef struct VkTimelineSemaphoreSubmitInfo32 } VkTimelineSemaphoreSubmitInfo32; typedef VkTimelineSemaphoreSubmitInfo32 VkTimelineSemaphoreSubmitInfoKHR32; +typedef struct VkFrameBoundaryEXT32 +{ + VkStructureType sType; + PTR32 pNext; + VkFrameBoundaryFlagsEXT flags; + uint64_t DECLSPEC_ALIGN(8) frameID; + uint32_t imageCount; + PTR32 pImages; + uint32_t bufferCount; + PTR32 pBuffers; + uint64_t DECLSPEC_ALIGN(8) tagName; + PTR32 tagSize; + PTR32 pTag; +} VkFrameBoundaryEXT32; + typedef struct VkBindSparseInfo32 { VkStructureType sType; @@ -6269,6 +6452,13 @@ typedef struct VkBindSparseInfo32 PTR32 pSignalSemaphores; } VkBindSparseInfo32; +typedef struct VkOutOfBandQueueTypeInfoNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkOutOfBandQueueTypeNV queueType; +} VkOutOfBandQueueTypeInfoNV32; + typedef struct VkPresentRegionKHR32 { uint32_t rectangleCount; @@ -6355,6 +6545,13 @@ typedef struct VkPerformanceQuerySubmitInfoKHR32 uint32_t counterPassIndex; } VkPerformanceQuerySubmitInfoKHR32; +typedef struct VkLatencySubmissionPresentIdNV32 +{ + VkStructureType sType; + PTR32 pNext; + uint64_t DECLSPEC_ALIGN(8) presentID; +} VkLatencySubmissionPresentIdNV32; + typedef struct VkSubmitInfo32 { VkStructureType sType; @@ -6436,6 +6633,23 @@ typedef struct VkHdrMetadataEXT32 float maxFrameAverageLightLevel; } VkHdrMetadataEXT32; +typedef struct VkSetLatencyMarkerInfoNV32 +{ + VkStructureType sType; + PTR32 pNext; + uint64_t DECLSPEC_ALIGN(8) presentID; + VkLatencyMarkerNV marker; +} VkSetLatencyMarkerInfoNV32; + +typedef struct VkLatencySleepModeInfoNV32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 lowLatencyMode; + VkBool32 lowLatencyBoost; + uint32_t minimumIntervalUs; +} VkLatencySleepModeInfoNV32; + typedef struct VkSemaphoreSignalInfo32 { VkStructureType sType; @@ -7857,6 +8071,9 @@ static inline const VkImageBlit2 *convert_VkImageBlit2_array_win32_to_host(struc static inline void convert_VkBlitImageInfo2_win32_to_host(struct conversion_context *ctx, const VkBlitImageInfo232 *in, VkBlitImageInfo2 *out) { + const VkBaseInStructure32 *in_header; + VkBaseOutStructure *out_header = (void *)out; + if (!in) return; out->sType = in->sType; @@ -7868,8 +8085,27 @@ static inline void convert_VkBlitImageInfo2_win32_to_host(struct conversion_cont out->regionCount = in->regionCount; out->pRegions = convert_VkImageBlit2_array_win32_to_host(ctx, (const VkImageBlit232 *)UlongToPtr(in->pRegions), in->regionCount); out->filter = in->filter; - if (in->pNext) - FIXME("Unexpected pNext\n"); + + for (in_header = UlongToPtr(in->pNext); in_header; in_header = UlongToPtr(in_header->pNext)) + { + switch (in_header->sType) + { + case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM: + { + VkBlitImageCubicWeightsInfoQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkBlitImageCubicWeightsInfoQCOM32 *in_ext = (const VkBlitImageCubicWeightsInfoQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM; + out_ext->pNext = NULL; + out_ext->cubicWeights = in_ext->cubicWeights; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + default: + FIXME("Unhandled sType %u.\n", in_header->sType); + break; + } + } } static inline void convert_VkGeometryTrianglesNV_win32_to_host(const VkGeometryTrianglesNV32 *in, VkGeometryTrianglesNV *out) @@ -12006,6 +12242,19 @@ static inline void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: + { + VkPhysicalDeviceNestedCommandBufferFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceNestedCommandBufferFeaturesEXT *in_ext = (const VkPhysicalDeviceNestedCommandBufferFeaturesEXT *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; + out_ext->pNext = NULL; + out_ext->nestedCommandBuffer = in_ext->nestedCommandBuffer; + out_ext->nestedCommandBufferRendering = in_ext->nestedCommandBufferRendering; + out_ext->nestedCommandBufferSimultaneousUse = in_ext->nestedCommandBufferSimultaneousUse; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: { VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -12209,6 +12458,17 @@ static inline void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: + { + VkPhysicalDeviceFrameBoundaryFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceFrameBoundaryFeaturesEXT *in_ext = (const VkPhysicalDeviceFrameBoundaryFeaturesEXT *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; + out_ext->pNext = NULL; + out_ext->frameBoundary = in_ext->frameBoundary; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: { VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -12256,6 +12516,17 @@ static inline void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: + { + VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *in_ext = (const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; + out_ext->pNext = NULL; + out_ext->extendedSparseAddressSpace = in_ext->extendedSparseAddressSpace; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: { VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -12325,6 +12596,61 @@ static inline void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: + { + VkPhysicalDeviceCubicClampFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceCubicClampFeaturesQCOM *in_ext = (const VkPhysicalDeviceCubicClampFeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->cubicRangeClamp = in_ext->cubicRangeClamp; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: + { + VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *in_ext = (const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->ycbcrDegamma = in_ext->ycbcrDegamma; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: + { + VkPhysicalDeviceCubicWeightsFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceCubicWeightsFeaturesQCOM *in_ext = (const VkPhysicalDeviceCubicWeightsFeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->selectableCubicWeights = in_ext->selectableCubicWeights; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: + { + VkPhysicalDeviceImageProcessing2FeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceImageProcessing2FeaturesQCOM *in_ext = (const VkPhysicalDeviceImageProcessing2FeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->textureBlockMatch2 = in_ext->textureBlockMatch2; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: + { + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *in_ext = (const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; + out_ext->pNext = NULL; + out_ext->descriptorPoolOverallocation = in_ext->descriptorPoolOverallocation; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -14030,6 +14356,19 @@ static inline void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: + { + VkPhysicalDeviceNestedCommandBufferFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceNestedCommandBufferFeaturesEXT32 *in_ext = (const VkPhysicalDeviceNestedCommandBufferFeaturesEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; + out_ext->pNext = NULL; + out_ext->nestedCommandBuffer = in_ext->nestedCommandBuffer; + out_ext->nestedCommandBufferRendering = in_ext->nestedCommandBufferRendering; + out_ext->nestedCommandBufferSimultaneousUse = in_ext->nestedCommandBufferSimultaneousUse; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: { VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -14233,6 +14572,17 @@ static inline void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: + { + VkPhysicalDeviceFrameBoundaryFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceFrameBoundaryFeaturesEXT32 *in_ext = (const VkPhysicalDeviceFrameBoundaryFeaturesEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; + out_ext->pNext = NULL; + out_ext->frameBoundary = in_ext->frameBoundary; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: { VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -14280,6 +14630,17 @@ static inline void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: + { + VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32 *in_ext = (const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; + out_ext->pNext = NULL; + out_ext->extendedSparseAddressSpace = in_ext->extendedSparseAddressSpace; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: { VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -14349,6 +14710,61 @@ static inline void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: + { + VkPhysicalDeviceCubicClampFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceCubicClampFeaturesQCOM32 *in_ext = (const VkPhysicalDeviceCubicClampFeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->cubicRangeClamp = in_ext->cubicRangeClamp; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: + { + VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32 *in_ext = (const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->ycbcrDegamma = in_ext->ycbcrDegamma; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: + { + VkPhysicalDeviceCubicWeightsFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceCubicWeightsFeaturesQCOM32 *in_ext = (const VkPhysicalDeviceCubicWeightsFeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->selectableCubicWeights = in_ext->selectableCubicWeights; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: + { + VkPhysicalDeviceImageProcessing2FeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceImageProcessing2FeaturesQCOM32 *in_ext = (const VkPhysicalDeviceImageProcessing2FeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->textureBlockMatch2 = in_ext->textureBlockMatch2; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: + { + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32 *in_ext = (const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; + out_ext->pNext = NULL; + out_ext->descriptorPoolOverallocation = in_ext->descriptorPoolOverallocation; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -17275,6 +17691,29 @@ static inline void convert_VkSamplerCreateInfo_win32_to_host(struct conversion_c out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM: + { + VkSamplerCubicWeightsCreateInfoQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkSamplerCubicWeightsCreateInfoQCOM32 *in_ext = (const VkSamplerCubicWeightsCreateInfoQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM; + out_ext->pNext = NULL; + out_ext->cubicWeights = in_ext->cubicWeights; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM: + { + VkSamplerBlockMatchWindowCreateInfoQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkSamplerBlockMatchWindowCreateInfoQCOM32 *in_ext = (const VkSamplerBlockMatchWindowCreateInfoQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM; + out_ext->pNext = NULL; + out_ext->windowExtent = in_ext->windowExtent; + out_ext->windowCompareMode = in_ext->windowCompareMode; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -17282,8 +17721,11 @@ static inline void convert_VkSamplerCreateInfo_win32_to_host(struct conversion_c } } -static inline void convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host(const VkSamplerYcbcrConversionCreateInfo32 *in, VkSamplerYcbcrConversionCreateInfo *out) +static inline void convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host(struct conversion_context *ctx, const VkSamplerYcbcrConversionCreateInfo32 *in, VkSamplerYcbcrConversionCreateInfo *out) { + const VkBaseInStructure32 *in_header; + VkBaseOutStructure *out_header = (void *)out; + if (!in) return; out->sType = in->sType; @@ -17296,8 +17738,28 @@ static inline void convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host(cons out->yChromaOffset = in->yChromaOffset; out->chromaFilter = in->chromaFilter; out->forceExplicitReconstruction = in->forceExplicitReconstruction; - if (in->pNext) - FIXME("Unexpected pNext\n"); + + for (in_header = UlongToPtr(in->pNext); in_header; in_header = UlongToPtr(in_header->pNext)) + { + switch (in_header->sType) + { + case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM: + { + VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM32 *in_ext = (const VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM; + out_ext->pNext = NULL; + out_ext->enableYDegamma = in_ext->enableYDegamma; + out_ext->enableCbCrDegamma = in_ext->enableCbCrDegamma; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + default: + FIXME("Unhandled sType %u.\n", in_header->sType); + break; + } + } } static inline void convert_VkSemaphoreCreateInfo_win32_to_host(struct conversion_context *ctx, const VkSemaphoreCreateInfo32 *in, VkSemaphoreCreateInfo *out) @@ -17579,6 +18041,17 @@ static inline void convert_VkSwapchainCreateInfoKHR_win32_to_host(struct convers out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV: + { + VkSwapchainLatencyCreateInfoNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkSwapchainLatencyCreateInfoNV32 *in_ext = (const VkSwapchainLatencyCreateInfoNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV; + out_ext->pNext = NULL; + out_ext->latencyModeEnable = in_ext->latencyModeEnable; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -18877,6 +19350,96 @@ static inline void convert_VkImageViewCaptureDescriptorDataInfoEXT_win32_to_host FIXME("Unexpected pNext\n"); } +static inline void convert_VkLatencyTimingsFrameReportNV_win32_to_host(const VkLatencyTimingsFrameReportNV32 *in, VkLatencyTimingsFrameReportNV *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + out->presentID = in->presentID; + out->inputSampleTimeUs = in->inputSampleTimeUs; + out->simStartTimeUs = in->simStartTimeUs; + out->simEndTimeUs = in->simEndTimeUs; + out->renderSubmitStartTimeUs = in->renderSubmitStartTimeUs; + out->renderSubmitEndTimeUs = in->renderSubmitEndTimeUs; + out->presentStartTimeUs = in->presentStartTimeUs; + out->presentEndTimeUs = in->presentEndTimeUs; + out->driverStartTimeUs = in->driverStartTimeUs; + out->driverEndTimeUs = in->driverEndTimeUs; + out->osRenderQueueStartTimeUs = in->osRenderQueueStartTimeUs; + out->osRenderQueueEndTimeUs = in->osRenderQueueEndTimeUs; + out->gpuRenderStartTimeUs = in->gpuRenderStartTimeUs; + out->gpuRenderEndTimeUs = in->gpuRenderEndTimeUs; + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + +static inline void convert_VkLatencyTimingsFrameReportNV_host_to_win32(const VkLatencyTimingsFrameReportNV *in, VkLatencyTimingsFrameReportNV32 *out) +{ + if (!in) return; + + out->presentID = in->presentID; + out->inputSampleTimeUs = in->inputSampleTimeUs; + out->simStartTimeUs = in->simStartTimeUs; + out->simEndTimeUs = in->simEndTimeUs; + out->renderSubmitStartTimeUs = in->renderSubmitStartTimeUs; + out->renderSubmitEndTimeUs = in->renderSubmitEndTimeUs; + out->presentStartTimeUs = in->presentStartTimeUs; + out->presentEndTimeUs = in->presentEndTimeUs; + out->driverStartTimeUs = in->driverStartTimeUs; + out->driverEndTimeUs = in->driverEndTimeUs; + out->osRenderQueueStartTimeUs = in->osRenderQueueStartTimeUs; + out->osRenderQueueEndTimeUs = in->osRenderQueueEndTimeUs; + out->gpuRenderStartTimeUs = in->gpuRenderStartTimeUs; + out->gpuRenderEndTimeUs = in->gpuRenderEndTimeUs; +} + +static inline VkLatencyTimingsFrameReportNV *convert_VkLatencyTimingsFrameReportNV_array_win32_to_host(struct conversion_context *ctx, const VkLatencyTimingsFrameReportNV32 *in, uint32_t count) +{ + VkLatencyTimingsFrameReportNV *out; + unsigned int i; + + if (!in || !count) return NULL; + + out = conversion_context_alloc(ctx, count * sizeof(*out)); + for (i = 0; i < count; i++) + { + convert_VkLatencyTimingsFrameReportNV_win32_to_host(&in[i], &out[i]); + } + + return out; +} + +static inline void convert_VkLatencyTimingsFrameReportNV_array_host_to_win32(const VkLatencyTimingsFrameReportNV *in, VkLatencyTimingsFrameReportNV32 *out, uint32_t count) +{ + unsigned int i; + + if (!in) return; + + for (i = 0; i < count; i++) + { + convert_VkLatencyTimingsFrameReportNV_host_to_win32(&in[i], &out[i]); + } +} + +static inline void convert_VkGetLatencyMarkerInfoNV_win32_to_host(struct conversion_context *ctx, const VkGetLatencyMarkerInfoNV32 *in, VkGetLatencyMarkerInfoNV *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + out->pTimings = convert_VkLatencyTimingsFrameReportNV_array_win32_to_host(ctx, (VkLatencyTimingsFrameReportNV32 *)UlongToPtr(in->pTimings), 1); + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + +static inline void convert_VkGetLatencyMarkerInfoNV_host_to_win32(const VkGetLatencyMarkerInfoNV *in, VkGetLatencyMarkerInfoNV32 *out) +{ + if (!in) return; + + convert_VkLatencyTimingsFrameReportNV_array_host_to_win32(in->pTimings, (VkLatencyTimingsFrameReportNV32 *)UlongToPtr(out->pTimings), 1); +} + static inline void convert_VkMemoryHostPointerPropertiesEXT_win32_to_host(const VkMemoryHostPointerPropertiesEXT32 *in, VkMemoryHostPointerPropertiesEXT *out) { if (!in) return; @@ -20824,6 +21387,19 @@ static inline void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conver out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: + { + VkPhysicalDeviceNestedCommandBufferFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceNestedCommandBufferFeaturesEXT32 *in_ext = (const VkPhysicalDeviceNestedCommandBufferFeaturesEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; + out_ext->pNext = NULL; + out_ext->nestedCommandBuffer = in_ext->nestedCommandBuffer; + out_ext->nestedCommandBufferRendering = in_ext->nestedCommandBufferRendering; + out_ext->nestedCommandBufferSimultaneousUse = in_ext->nestedCommandBufferSimultaneousUse; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: { VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -21027,6 +21603,17 @@ static inline void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conver out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: + { + VkPhysicalDeviceFrameBoundaryFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceFrameBoundaryFeaturesEXT32 *in_ext = (const VkPhysicalDeviceFrameBoundaryFeaturesEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; + out_ext->pNext = NULL; + out_ext->frameBoundary = in_ext->frameBoundary; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: { VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -21074,6 +21661,17 @@ static inline void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conver out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: + { + VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32 *in_ext = (const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; + out_ext->pNext = NULL; + out_ext->extendedSparseAddressSpace = in_ext->extendedSparseAddressSpace; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: { VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -21143,6 +21741,61 @@ static inline void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conver out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: + { + VkPhysicalDeviceCubicClampFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceCubicClampFeaturesQCOM32 *in_ext = (const VkPhysicalDeviceCubicClampFeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->cubicRangeClamp = in_ext->cubicRangeClamp; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: + { + VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32 *in_ext = (const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->ycbcrDegamma = in_ext->ycbcrDegamma; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: + { + VkPhysicalDeviceCubicWeightsFeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceCubicWeightsFeaturesQCOM32 *in_ext = (const VkPhysicalDeviceCubicWeightsFeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->selectableCubicWeights = in_ext->selectableCubicWeights; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: + { + VkPhysicalDeviceImageProcessing2FeaturesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceImageProcessing2FeaturesQCOM32 *in_ext = (const VkPhysicalDeviceImageProcessing2FeaturesQCOM32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; + out_ext->pNext = NULL; + out_ext->textureBlockMatch2 = in_ext->textureBlockMatch2; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: + { + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32 *in_ext = (const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; + out_ext->pNext = NULL; + out_ext->descriptorPoolOverallocation = in_ext->descriptorPoolOverallocation; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -22517,6 +23170,17 @@ static inline void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: + { + VkPhysicalDeviceNestedCommandBufferFeaturesEXT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT); + const VkPhysicalDeviceNestedCommandBufferFeaturesEXT *in_ext = (const VkPhysicalDeviceNestedCommandBufferFeaturesEXT *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT; + out_ext->nestedCommandBuffer = in_ext->nestedCommandBuffer; + out_ext->nestedCommandBufferRendering = in_ext->nestedCommandBufferRendering; + out_ext->nestedCommandBufferSimultaneousUse = in_ext->nestedCommandBufferSimultaneousUse; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: { VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT); @@ -22684,6 +23348,15 @@ static inline void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: + { + VkPhysicalDeviceFrameBoundaryFeaturesEXT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT); + const VkPhysicalDeviceFrameBoundaryFeaturesEXT *in_ext = (const VkPhysicalDeviceFrameBoundaryFeaturesEXT *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT; + out_ext->frameBoundary = in_ext->frameBoundary; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: { VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT); @@ -22723,6 +23396,15 @@ static inline void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: + { + VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV); + const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *in_ext = (const VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV; + out_ext->extendedSparseAddressSpace = in_ext->extendedSparseAddressSpace; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: { VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM); @@ -22780,6 +23462,51 @@ static inline void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: + { + VkPhysicalDeviceCubicClampFeaturesQCOM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM); + const VkPhysicalDeviceCubicClampFeaturesQCOM *in_ext = (const VkPhysicalDeviceCubicClampFeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM; + out_ext->cubicRangeClamp = in_ext->cubicRangeClamp; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: + { + VkPhysicalDeviceYcbcrDegammaFeaturesQCOM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM); + const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *in_ext = (const VkPhysicalDeviceYcbcrDegammaFeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM; + out_ext->ycbcrDegamma = in_ext->ycbcrDegamma; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: + { + VkPhysicalDeviceCubicWeightsFeaturesQCOM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM); + const VkPhysicalDeviceCubicWeightsFeaturesQCOM *in_ext = (const VkPhysicalDeviceCubicWeightsFeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM; + out_ext->selectableCubicWeights = in_ext->selectableCubicWeights; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: + { + VkPhysicalDeviceImageProcessing2FeaturesQCOM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM); + const VkPhysicalDeviceImageProcessing2FeaturesQCOM *in_ext = (const VkPhysicalDeviceImageProcessing2FeaturesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM; + out_ext->textureBlockMatch2 = in_ext->textureBlockMatch2; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: + { + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV); + const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *in_ext = (const VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV; + out_ext->descriptorPoolOverallocation = in_ext->descriptorPoolOverallocation; + out_header = (void *)out_ext; + break; + } default: break; } @@ -24042,6 +24769,17 @@ static inline void convert_VkPhysicalDeviceProperties2_win32_to_host(struct conv out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: + { + VkPhysicalDeviceNestedCommandBufferPropertiesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceNestedCommandBufferPropertiesEXT32 *in_ext = (const VkPhysicalDeviceNestedCommandBufferPropertiesEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; + out_ext->pNext = NULL; + out_ext->maxCommandBufferNestingLevel = in_ext->maxCommandBufferNestingLevel; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: { VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -24105,6 +24843,15 @@ static inline void convert_VkPhysicalDeviceProperties2_win32_to_host(struct conv out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV: + { + VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; + out_ext->pNext = NULL; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: { VkPhysicalDeviceShaderCorePropertiesARM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -24141,6 +24888,24 @@ static inline void convert_VkPhysicalDeviceProperties2_win32_to_host(struct conv out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM: + { + VkPhysicalDeviceImageProcessing2PropertiesQCOM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; + out_ext->pNext = NULL; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT: + { + VkPhysicalDeviceLayeredDriverPropertiesMSFT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; + out_ext->pNext = NULL; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -25105,6 +25870,15 @@ static inline void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhy out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: + { + VkPhysicalDeviceNestedCommandBufferPropertiesEXT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT); + const VkPhysicalDeviceNestedCommandBufferPropertiesEXT *in_ext = (const VkPhysicalDeviceNestedCommandBufferPropertiesEXT *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT; + out_ext->maxCommandBufferNestingLevel = in_ext->maxCommandBufferNestingLevel; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: { VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT); @@ -25187,6 +25961,17 @@ static inline void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhy out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV: + { + VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV); + const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *in_ext = (const VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV; + out_ext->extendedSparseAddressSpaceSize = in_ext->extendedSparseAddressSpaceSize; + out_ext->extendedSparseImageUsageFlags = in_ext->extendedSparseImageUsageFlags; + out_ext->extendedSparseBufferUsageFlags = in_ext->extendedSparseBufferUsageFlags; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: { VkPhysicalDeviceShaderCorePropertiesARM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM); @@ -25228,6 +26013,24 @@ static inline void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhy out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM: + { + VkPhysicalDeviceImageProcessing2PropertiesQCOM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM); + const VkPhysicalDeviceImageProcessing2PropertiesQCOM *in_ext = (const VkPhysicalDeviceImageProcessing2PropertiesQCOM *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM; + out_ext->maxBlockMatchWindow = in_ext->maxBlockMatchWindow; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT: + { + VkPhysicalDeviceLayeredDriverPropertiesMSFT32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT); + const VkPhysicalDeviceLayeredDriverPropertiesMSFT *in_ext = (const VkPhysicalDeviceLayeredDriverPropertiesMSFT *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT; + out_ext->underlyingAPI = in_ext->underlyingAPI; + out_header = (void *)out_ext; + break; + } default: break; } @@ -25564,6 +26367,18 @@ static inline void convert_VkSurfaceCapabilities2KHR_win32_to_host(struct conver out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: + { + VkLatencySurfaceCapabilitiesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkLatencySurfaceCapabilitiesNV32 *in_ext = (const VkLatencySurfaceCapabilitiesNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV; + out_ext->pNext = NULL; + out_ext->presentModeCount = in_ext->presentModeCount; + out_ext->pPresentModes = (VkPresentModeKHR *)UlongToPtr(in_ext->pPresentModes); + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -25616,6 +26431,16 @@ static inline void convert_VkSurfaceCapabilities2KHR_host_to_win32(const VkSurfa out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: + { + VkLatencySurfaceCapabilitiesNV32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV); + const VkLatencySurfaceCapabilitiesNV *in_ext = (const VkLatencySurfaceCapabilitiesNV *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV; + out_ext->presentModeCount = in_ext->presentModeCount; + out_ext->pPresentModes = PtrToUlong(in_ext->pPresentModes); + out_header = (void *)out_ext; + break; + } default: break; } @@ -26154,6 +26979,18 @@ static inline void convert_VkInitializePerformanceApiInfoINTEL_win32_to_host(con FIXME("Unexpected pNext\n"); } +static inline void convert_VkLatencySleepInfoNV_win32_to_host(const VkLatencySleepInfoNV32 *in, VkLatencySleepInfoNV *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + out->signalSemaphore = in->signalSemaphore; + out->value = in->value; + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + static inline void convert_VkMemoryMapInfoKHR_win32_to_unwrapped_host(const VkMemoryMapInfoKHR32 *in, VkMemoryMapInfoKHR *out) { if (!in) return; @@ -26518,6 +27355,25 @@ static inline void convert_VkBindSparseInfo_win32_to_host(struct conversion_cont out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: + { + VkFrameBoundaryEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkFrameBoundaryEXT32 *in_ext = (const VkFrameBoundaryEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT; + out_ext->pNext = NULL; + out_ext->flags = in_ext->flags; + out_ext->frameID = in_ext->frameID; + out_ext->imageCount = in_ext->imageCount; + out_ext->pImages = (const VkImage *)UlongToPtr(in_ext->pImages); + out_ext->bufferCount = in_ext->bufferCount; + out_ext->pBuffers = (const VkBuffer *)UlongToPtr(in_ext->pBuffers); + out_ext->tagName = in_ext->tagName; + out_ext->tagSize = in_ext->tagSize; + out_ext->pTag = (const void *)UlongToPtr(in_ext->pTag); + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -26559,6 +27415,17 @@ static inline const VkBindSparseInfo *convert_VkBindSparseInfo_array_win32_to_ho return out; } +static inline void convert_VkOutOfBandQueueTypeInfoNV_win32_to_host(const VkOutOfBandQueueTypeInfoNV32 *in, VkOutOfBandQueueTypeInfoNV *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + out->queueType = in->queueType; + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + static inline void convert_VkPresentRegionKHR_win32_to_host(const VkPresentRegionKHR32 *in, VkPresentRegionKHR *out) { if (!in) return; @@ -26640,6 +27507,25 @@ static inline void convert_VkPresentInfoKHR_win32_to_host(struct conversion_cont out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: + { + VkFrameBoundaryEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkFrameBoundaryEXT32 *in_ext = (const VkFrameBoundaryEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT; + out_ext->pNext = NULL; + out_ext->flags = in_ext->flags; + out_ext->frameID = in_ext->frameID; + out_ext->imageCount = in_ext->imageCount; + out_ext->pImages = (const VkImage *)UlongToPtr(in_ext->pImages); + out_ext->bufferCount = in_ext->bufferCount; + out_ext->pBuffers = (const VkBuffer *)UlongToPtr(in_ext->pBuffers); + out_ext->tagName = in_ext->tagName; + out_ext->tagSize = in_ext->tagSize; + out_ext->pTag = (const void *)UlongToPtr(in_ext->pTag); + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: { VkSwapchainPresentFenceInfoEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -26761,6 +27647,36 @@ static inline void convert_VkSubmitInfo_win32_to_host(struct conversion_context out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: + { + VkFrameBoundaryEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkFrameBoundaryEXT32 *in_ext = (const VkFrameBoundaryEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT; + out_ext->pNext = NULL; + out_ext->flags = in_ext->flags; + out_ext->frameID = in_ext->frameID; + out_ext->imageCount = in_ext->imageCount; + out_ext->pImages = (const VkImage *)UlongToPtr(in_ext->pImages); + out_ext->bufferCount = in_ext->bufferCount; + out_ext->pBuffers = (const VkBuffer *)UlongToPtr(in_ext->pBuffers); + out_ext->tagName = in_ext->tagName; + out_ext->tagSize = in_ext->tagSize; + out_ext->pTag = (const void *)UlongToPtr(in_ext->pTag); + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: + { + VkLatencySubmissionPresentIdNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkLatencySubmissionPresentIdNV32 *in_ext = (const VkLatencySubmissionPresentIdNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV; + out_ext->pNext = NULL; + out_ext->presentID = in_ext->presentID; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -26939,6 +27855,36 @@ static inline void convert_VkSubmitInfo2_win32_to_host(struct conversion_context out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: + { + VkFrameBoundaryEXT *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkFrameBoundaryEXT32 *in_ext = (const VkFrameBoundaryEXT32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT; + out_ext->pNext = NULL; + out_ext->flags = in_ext->flags; + out_ext->frameID = in_ext->frameID; + out_ext->imageCount = in_ext->imageCount; + out_ext->pImages = (const VkImage *)UlongToPtr(in_ext->pImages); + out_ext->bufferCount = in_ext->bufferCount; + out_ext->pBuffers = (const VkBuffer *)UlongToPtr(in_ext->pBuffers); + out_ext->tagName = in_ext->tagName; + out_ext->tagSize = in_ext->tagSize; + out_ext->pTag = (const void *)UlongToPtr(in_ext->pTag); + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } + case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: + { + VkLatencySubmissionPresentIdNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkLatencySubmissionPresentIdNV32 *in_ext = (const VkLatencySubmissionPresentIdNV32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV; + out_ext->pNext = NULL; + out_ext->presentID = in_ext->presentID; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } default: FIXME("Unhandled sType %u.\n", in_header->sType); break; @@ -27083,6 +28029,31 @@ static inline const VkHdrMetadataEXT *convert_VkHdrMetadataEXT_array_win32_to_ho return out; } +static inline void convert_VkSetLatencyMarkerInfoNV_win32_to_host(const VkSetLatencyMarkerInfoNV32 *in, VkSetLatencyMarkerInfoNV *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + out->presentID = in->presentID; + out->marker = in->marker; + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + +static inline void convert_VkLatencySleepModeInfoNV_win32_to_host(const VkLatencySleepModeInfoNV32 *in, VkLatencySleepModeInfoNV *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + out->lowLatencyMode = in->lowLatencyMode; + out->lowLatencyBoost = in->lowLatencyBoost; + out->minimumIntervalUs = in->minimumIntervalUs; + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + static inline void convert_VkSemaphoreSignalInfo_win32_to_host(const VkSemaphoreSignalInfo32 *in, VkSemaphoreSignalInfo *out) { if (!in) return; @@ -34981,11 +35952,15 @@ static NTSTATUS thunk32_vkCreateSamplerYcbcrConversion(void *args) VkResult result; } *params = args; VkSamplerYcbcrConversionCreateInfo pCreateInfo_host; + struct conversion_context local_ctx; + struct conversion_context *ctx = &local_ctx; TRACE("%#x, %#x, %#x, %#x\n", params->device, params->pCreateInfo, params->pAllocator, params->pYcbcrConversion); - convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host((const VkSamplerYcbcrConversionCreateInfo32 *)UlongToPtr(params->pCreateInfo), &pCreateInfo_host); + init_conversion_context(ctx); + convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host(ctx, (const VkSamplerYcbcrConversionCreateInfo32 *)UlongToPtr(params->pCreateInfo), &pCreateInfo_host); params->result = wine_device_from_handle((VkDevice)UlongToPtr(params->device))->funcs.p_vkCreateSamplerYcbcrConversion(wine_device_from_handle((VkDevice)UlongToPtr(params->device))->device, &pCreateInfo_host, NULL, (VkSamplerYcbcrConversion *)UlongToPtr(params->pYcbcrConversion)); + free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -35012,11 +35987,15 @@ static NTSTATUS thunk32_vkCreateSamplerYcbcrConversionKHR(void *args) VkResult result; } *params = args; VkSamplerYcbcrConversionCreateInfo pCreateInfo_host; + struct conversion_context local_ctx; + struct conversion_context *ctx = &local_ctx; TRACE("%#x, %#x, %#x, %#x\n", params->device, params->pCreateInfo, params->pAllocator, params->pYcbcrConversion); - convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host((const VkSamplerYcbcrConversionCreateInfo32 *)UlongToPtr(params->pCreateInfo), &pCreateInfo_host); + init_conversion_context(ctx); + convert_VkSamplerYcbcrConversionCreateInfo_win32_to_host(ctx, (const VkSamplerYcbcrConversionCreateInfo32 *)UlongToPtr(params->pCreateInfo), &pCreateInfo_host); params->result = wine_device_from_handle((VkDevice)UlongToPtr(params->device))->funcs.p_vkCreateSamplerYcbcrConversionKHR(wine_device_from_handle((VkDevice)UlongToPtr(params->device))->device, &pCreateInfo_host, NULL, (VkSamplerYcbcrConversion *)UlongToPtr(params->pYcbcrConversion)); + free_conversion_context(ctx); return STATUS_SUCCESS; } @@ -38860,6 +39839,41 @@ static NTSTATUS thunk32_vkGetImageViewOpaqueCaptureDescriptorDataEXT(void *args) return STATUS_SUCCESS; } +#ifdef _WIN64 +static NTSTATUS thunk64_vkGetLatencyTimingsNV(void *args) +{ + struct vkGetLatencyTimingsNV_params *params = args; + + TRACE("%p, 0x%s, %p, %p\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pTimingCount, params->pLatencyMarkerInfo); + + wine_device_from_handle(params->device)->funcs.p_vkGetLatencyTimingsNV(wine_device_from_handle(params->device)->device, params->swapchain, params->pTimingCount, params->pLatencyMarkerInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkGetLatencyTimingsNV(void *args) +{ + struct + { + PTR32 device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + PTR32 pTimingCount; + PTR32 pLatencyMarkerInfo; + } *params = args; + VkGetLatencyMarkerInfoNV pLatencyMarkerInfo_host; + struct conversion_context local_ctx; + struct conversion_context *ctx = &local_ctx; + + TRACE("%#x, 0x%s, %#x, %#x\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pTimingCount, params->pLatencyMarkerInfo); + + init_conversion_context(ctx); + convert_VkGetLatencyMarkerInfoNV_win32_to_host(ctx, (VkGetLatencyMarkerInfoNV32 *)UlongToPtr(params->pLatencyMarkerInfo), &pLatencyMarkerInfo_host); + wine_device_from_handle((VkDevice)UlongToPtr(params->device))->funcs.p_vkGetLatencyTimingsNV(wine_device_from_handle((VkDevice)UlongToPtr(params->device))->device, params->swapchain, (uint32_t *)UlongToPtr(params->pTimingCount), &pLatencyMarkerInfo_host); + convert_VkGetLatencyMarkerInfoNV_host_to_win32(&pLatencyMarkerInfo_host, (VkGetLatencyMarkerInfoNV32 *)UlongToPtr(params->pLatencyMarkerInfo)); + free_conversion_context(ctx); + return STATUS_SUCCESS; +} + #ifdef _WIN64 static NTSTATUS thunk64_vkGetMemoryHostPointerPropertiesEXT(void *args) { @@ -41367,6 +42381,36 @@ static NTSTATUS thunk32_vkInvalidateMappedMemoryRanges(void *args) return STATUS_SUCCESS; } +#ifdef _WIN64 +static NTSTATUS thunk64_vkLatencySleepNV(void *args) +{ + struct vkLatencySleepNV_params *params = args; + + TRACE("%p, 0x%s, %p\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pSleepInfo); + + params->result = wine_device_from_handle(params->device)->funcs.p_vkLatencySleepNV(wine_device_from_handle(params->device)->device, params->swapchain, params->pSleepInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkLatencySleepNV(void *args) +{ + struct + { + PTR32 device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + PTR32 pSleepInfo; + VkResult result; + } *params = args; + VkLatencySleepInfoNV pSleepInfo_host; + + TRACE("%#x, 0x%s, %#x\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pSleepInfo); + + convert_VkLatencySleepInfoNV_win32_to_host((const VkLatencySleepInfoNV32 *)UlongToPtr(params->pSleepInfo), &pSleepInfo_host); + params->result = wine_device_from_handle((VkDevice)UlongToPtr(params->device))->funcs.p_vkLatencySleepNV(wine_device_from_handle((VkDevice)UlongToPtr(params->device))->device, params->swapchain, &pSleepInfo_host); + return STATUS_SUCCESS; +} + #ifdef _WIN64 static NTSTATUS thunk64_vkMapMemory(void *args) { @@ -41608,6 +42652,34 @@ static NTSTATUS thunk32_vkQueueInsertDebugUtilsLabelEXT(void *args) return STATUS_SUCCESS; } +#ifdef _WIN64 +static NTSTATUS thunk64_vkQueueNotifyOutOfBandNV(void *args) +{ + struct vkQueueNotifyOutOfBandNV_params *params = args; + + TRACE("%p, %p\n", params->queue, params->pQueueTypeInfo); + + wine_queue_from_handle(params->queue)->device->funcs.p_vkQueueNotifyOutOfBandNV(wine_queue_from_handle(params->queue)->queue, params->pQueueTypeInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkQueueNotifyOutOfBandNV(void *args) +{ + struct + { + PTR32 queue; + PTR32 pQueueTypeInfo; + } *params = args; + VkOutOfBandQueueTypeInfoNV pQueueTypeInfo_host; + + TRACE("%#x, %#x\n", params->queue, params->pQueueTypeInfo); + + convert_VkOutOfBandQueueTypeInfoNV_win32_to_host((const VkOutOfBandQueueTypeInfoNV32 *)UlongToPtr(params->pQueueTypeInfo), &pQueueTypeInfo_host); + wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->device->funcs.p_vkQueueNotifyOutOfBandNV(wine_queue_from_handle((VkQueue)UlongToPtr(params->queue))->queue, &pQueueTypeInfo_host); + return STATUS_SUCCESS; +} + #ifdef _WIN64 static NTSTATUS thunk64_vkQueuePresentKHR(void *args) { @@ -42242,6 +43314,65 @@ static NTSTATUS thunk32_vkSetHdrMetadataEXT(void *args) return STATUS_SUCCESS; } +#ifdef _WIN64 +static NTSTATUS thunk64_vkSetLatencyMarkerNV(void *args) +{ + struct vkSetLatencyMarkerNV_params *params = args; + + TRACE("%p, 0x%s, %p\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pLatencyMarkerInfo); + + wine_device_from_handle(params->device)->funcs.p_vkSetLatencyMarkerNV(wine_device_from_handle(params->device)->device, params->swapchain, params->pLatencyMarkerInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkSetLatencyMarkerNV(void *args) +{ + struct + { + PTR32 device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + PTR32 pLatencyMarkerInfo; + } *params = args; + VkSetLatencyMarkerInfoNV pLatencyMarkerInfo_host; + + TRACE("%#x, 0x%s, %#x\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pLatencyMarkerInfo); + + convert_VkSetLatencyMarkerInfoNV_win32_to_host((const VkSetLatencyMarkerInfoNV32 *)UlongToPtr(params->pLatencyMarkerInfo), &pLatencyMarkerInfo_host); + wine_device_from_handle((VkDevice)UlongToPtr(params->device))->funcs.p_vkSetLatencyMarkerNV(wine_device_from_handle((VkDevice)UlongToPtr(params->device))->device, params->swapchain, &pLatencyMarkerInfo_host); + return STATUS_SUCCESS; +} + +#ifdef _WIN64 +static NTSTATUS thunk64_vkSetLatencySleepModeNV(void *args) +{ + struct vkSetLatencySleepModeNV_params *params = args; + + TRACE("%p, 0x%s, %p\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pSleepModeInfo); + + params->result = wine_device_from_handle(params->device)->funcs.p_vkSetLatencySleepModeNV(wine_device_from_handle(params->device)->device, params->swapchain, params->pSleepModeInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkSetLatencySleepModeNV(void *args) +{ + struct + { + PTR32 device; + VkSwapchainKHR DECLSPEC_ALIGN(8) swapchain; + PTR32 pSleepModeInfo; + VkResult result; + } *params = args; + VkLatencySleepModeInfoNV pSleepModeInfo_host; + + TRACE("%#x, 0x%s, %#x\n", params->device, wine_dbgstr_longlong(params->swapchain), params->pSleepModeInfo); + + convert_VkLatencySleepModeInfoNV_win32_to_host((const VkLatencySleepModeInfoNV32 *)UlongToPtr(params->pSleepModeInfo), &pSleepModeInfo_host); + params->result = wine_device_from_handle((VkDevice)UlongToPtr(params->device))->funcs.p_vkSetLatencySleepModeNV(wine_device_from_handle((VkDevice)UlongToPtr(params->device))->device, params->swapchain, &pSleepModeInfo_host); + return STATUS_SUCCESS; +} + #ifdef _WIN64 static NTSTATUS thunk64_vkSetPrivateData(void *args) { @@ -42891,6 +44022,7 @@ static const char * const vk_device_extensions[] = "VK_EXT_fragment_density_map", "VK_EXT_fragment_density_map2", "VK_EXT_fragment_shader_interlock", + "VK_EXT_frame_boundary", "VK_EXT_global_priority", "VK_EXT_global_priority_query", "VK_EXT_graphics_pipeline_library", @@ -42914,6 +44046,7 @@ static const char * const vk_device_extensions[] = "VK_EXT_multi_draw", "VK_EXT_multisampled_render_to_single_sampled", "VK_EXT_mutable_descriptor_type", + "VK_EXT_nested_command_buffer", "VK_EXT_non_seamless_cube_map", "VK_EXT_opacity_micromap", "VK_EXT_pageable_device_local_memory", @@ -43039,6 +44172,7 @@ static const char * const vk_device_extensions[] = "VK_KHR_vulkan_memory_model", "VK_KHR_workgroup_memory_explicit_layout", "VK_KHR_zero_initialize_workgroup_memory", + "VK_MSFT_layered_driver", "VK_NVX_binary_import", "VK_NVX_image_view_handle", "VK_NV_clip_space_w_scaling", @@ -43049,10 +44183,12 @@ static const char * const vk_device_extensions[] = "VK_NV_coverage_reduction_mode", "VK_NV_dedicated_allocation", "VK_NV_dedicated_allocation_image_aliasing", + "VK_NV_descriptor_pool_overallocation", "VK_NV_device_diagnostic_checkpoints", "VK_NV_device_diagnostics_config", "VK_NV_device_generated_commands", "VK_NV_device_generated_commands_compute", + "VK_NV_extended_sparse_address_space", "VK_NV_fill_rectangle", "VK_NV_fragment_coverage_to_color", "VK_NV_fragment_shader_barycentric", @@ -43063,6 +44199,7 @@ static const char * const vk_device_extensions[] = "VK_NV_inherited_viewport_scissor", "VK_NV_linear_color_attachment", "VK_NV_low_latency", + "VK_NV_low_latency2", "VK_NV_memory_decompression", "VK_NV_mesh_shader", "VK_NV_optical_flow", @@ -43079,8 +44216,11 @@ static const char * const vk_device_extensions[] = "VK_NV_shading_rate_image", "VK_NV_viewport_array2", "VK_NV_viewport_swizzle", + "VK_QCOM_filter_cubic_clamp", + "VK_QCOM_filter_cubic_weights", "VK_QCOM_fragment_density_map_offset", "VK_QCOM_image_processing", + "VK_QCOM_image_processing2", "VK_QCOM_multiview_per_view_render_areas", "VK_QCOM_multiview_per_view_viewports", "VK_QCOM_render_pass_shader_resolve", @@ -43088,6 +44228,7 @@ static const char * const vk_device_extensions[] = "VK_QCOM_render_pass_transform", "VK_QCOM_rotated_copy_commands", "VK_QCOM_tile_properties", + "VK_QCOM_ycbcr_degamma", "VK_VALVE_descriptor_set_host_mapping", "VK_VALVE_mutable_descriptor_type", }; @@ -43583,6 +44724,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_vkGetImageViewAddressNVX, thunk64_vkGetImageViewHandleNVX, thunk64_vkGetImageViewOpaqueCaptureDescriptorDataEXT, + thunk64_vkGetLatencyTimingsNV, thunk64_vkGetMemoryHostPointerPropertiesEXT, thunk64_vkGetMicromapBuildSizesEXT, thunk64_vkGetPerformanceParameterINTEL, @@ -43660,6 +44802,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_vkGetValidationCacheDataEXT, thunk64_vkInitializePerformanceApiINTEL, thunk64_vkInvalidateMappedMemoryRanges, + thunk64_vkLatencySleepNV, thunk64_vkMapMemory, thunk64_vkMapMemory2KHR, thunk64_vkMergePipelineCaches, @@ -43668,6 +44811,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_vkQueueBindSparse, thunk64_vkQueueEndDebugUtilsLabelEXT, thunk64_vkQueueInsertDebugUtilsLabelEXT, + thunk64_vkQueueNotifyOutOfBandNV, thunk64_vkQueuePresentKHR, thunk64_vkQueueSetPerformanceConfigurationINTEL, thunk64_vkQueueSubmit, @@ -43689,6 +44833,8 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_vkSetDeviceMemoryPriorityEXT, thunk64_vkSetEvent, thunk64_vkSetHdrMetadataEXT, + thunk64_vkSetLatencyMarkerNV, + thunk64_vkSetLatencySleepModeNV, thunk64_vkSetPrivateData, thunk64_vkSetPrivateDataEXT, thunk64_vkSignalSemaphore, @@ -44150,6 +45296,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk32_vkGetImageViewAddressNVX, thunk32_vkGetImageViewHandleNVX, thunk32_vkGetImageViewOpaqueCaptureDescriptorDataEXT, + thunk32_vkGetLatencyTimingsNV, thunk32_vkGetMemoryHostPointerPropertiesEXT, thunk32_vkGetMicromapBuildSizesEXT, thunk32_vkGetPerformanceParameterINTEL, @@ -44227,6 +45374,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk32_vkGetValidationCacheDataEXT, thunk32_vkInitializePerformanceApiINTEL, thunk32_vkInvalidateMappedMemoryRanges, + thunk32_vkLatencySleepNV, thunk32_vkMapMemory, thunk32_vkMapMemory2KHR, thunk32_vkMergePipelineCaches, @@ -44235,6 +45383,7 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk32_vkQueueBindSparse, thunk32_vkQueueEndDebugUtilsLabelEXT, thunk32_vkQueueInsertDebugUtilsLabelEXT, + thunk32_vkQueueNotifyOutOfBandNV, thunk32_vkQueuePresentKHR, thunk32_vkQueueSetPerformanceConfigurationINTEL, thunk32_vkQueueSubmit, @@ -44256,6 +45405,8 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk32_vkSetDeviceMemoryPriorityEXT, thunk32_vkSetEvent, thunk32_vkSetHdrMetadataEXT, + thunk32_vkSetLatencyMarkerNV, + thunk32_vkSetLatencySleepModeNV, thunk32_vkSetPrivateData, thunk32_vkSetPrivateDataEXT, thunk32_vkSignalSemaphore, diff --git a/dlls/winevulkan/vulkan_thunks.h b/dlls/winevulkan/vulkan_thunks.h index 12110ffdf29..085c5fc94de 100644 --- a/dlls/winevulkan/vulkan_thunks.h +++ b/dlls/winevulkan/vulkan_thunks.h @@ -473,6 +473,7 @@ struct vulkan_device_funcs VkResult (*p_vkGetImageViewAddressNVX)(VkDevice, VkImageView, VkImageViewAddressPropertiesNVX *); uint32_t (*p_vkGetImageViewHandleNVX)(VkDevice, const VkImageViewHandleInfoNVX *); VkResult (*p_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkImageViewCaptureDescriptorDataInfoEXT *, void *); + void (*p_vkGetLatencyTimingsNV)(VkDevice, VkSwapchainKHR, uint32_t *, VkGetLatencyMarkerInfoNV *); VkResult (*p_vkGetMemoryHostPointerPropertiesEXT)(VkDevice, VkExternalMemoryHandleTypeFlagBits, const void *, VkMemoryHostPointerPropertiesEXT *); void (*p_vkGetMicromapBuildSizesEXT)(VkDevice, VkAccelerationStructureBuildTypeKHR, const VkMicromapBuildInfoEXT *, VkMicromapBuildSizesInfoEXT *); VkResult (*p_vkGetPerformanceParameterINTEL)(VkDevice, VkPerformanceParameterTypeINTEL, VkPerformanceValueINTEL *); @@ -505,6 +506,7 @@ struct vulkan_device_funcs VkResult (*p_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *); VkResult (*p_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *); VkResult (*p_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *); + VkResult (*p_vkLatencySleepNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepInfoNV *); VkResult (*p_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **); VkResult (*p_vkMapMemory2KHR)(VkDevice, const VkMemoryMapInfoKHR *, void **); VkResult (*p_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *); @@ -513,6 +515,7 @@ struct vulkan_device_funcs VkResult (*p_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo *, VkFence); void (*p_vkQueueEndDebugUtilsLabelEXT)(VkQueue); void (*p_vkQueueInsertDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *); + void (*p_vkQueueNotifyOutOfBandNV)(VkQueue, const VkOutOfBandQueueTypeInfoNV *); VkResult (*p_vkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *); VkResult (*p_vkQueueSetPerformanceConfigurationINTEL)(VkQueue, VkPerformanceConfigurationINTEL); VkResult (*p_vkQueueSubmit)(VkQueue, uint32_t, const VkSubmitInfo *, VkFence); @@ -534,6 +537,8 @@ struct vulkan_device_funcs void (*p_vkSetDeviceMemoryPriorityEXT)(VkDevice, VkDeviceMemory, float); VkResult (*p_vkSetEvent)(VkDevice, VkEvent); void (*p_vkSetHdrMetadataEXT)(VkDevice, uint32_t, const VkSwapchainKHR *, const VkHdrMetadataEXT *); + void (*p_vkSetLatencyMarkerNV)(VkDevice, VkSwapchainKHR, const VkSetLatencyMarkerInfoNV *); + VkResult (*p_vkSetLatencySleepModeNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepModeInfoNV *); VkResult (*p_vkSetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); VkResult (*p_vkSetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); VkResult (*p_vkSignalSemaphore)(VkDevice, const VkSemaphoreSignalInfo *); @@ -1024,6 +1029,7 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkGetImageViewAddressNVX) \ USE_VK_FUNC(vkGetImageViewHandleNVX) \ USE_VK_FUNC(vkGetImageViewOpaqueCaptureDescriptorDataEXT) \ + USE_VK_FUNC(vkGetLatencyTimingsNV) \ USE_VK_FUNC(vkGetMemoryHostPointerPropertiesEXT) \ USE_VK_FUNC(vkGetMicromapBuildSizesEXT) \ USE_VK_FUNC(vkGetPerformanceParameterINTEL) \ @@ -1056,6 +1062,7 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkGetValidationCacheDataEXT) \ USE_VK_FUNC(vkInitializePerformanceApiINTEL) \ USE_VK_FUNC(vkInvalidateMappedMemoryRanges) \ + USE_VK_FUNC(vkLatencySleepNV) \ USE_VK_FUNC(vkMapMemory) \ USE_VK_FUNC(vkMapMemory2KHR) \ USE_VK_FUNC(vkMergePipelineCaches) \ @@ -1064,6 +1071,7 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkQueueBindSparse) \ USE_VK_FUNC(vkQueueEndDebugUtilsLabelEXT) \ USE_VK_FUNC(vkQueueInsertDebugUtilsLabelEXT) \ + USE_VK_FUNC(vkQueueNotifyOutOfBandNV) \ USE_VK_FUNC(vkQueuePresentKHR) \ USE_VK_FUNC(vkQueueSetPerformanceConfigurationINTEL) \ USE_VK_FUNC(vkQueueSubmit) \ @@ -1085,6 +1093,8 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkSetDeviceMemoryPriorityEXT) \ USE_VK_FUNC(vkSetEvent) \ USE_VK_FUNC(vkSetHdrMetadataEXT) \ + USE_VK_FUNC(vkSetLatencyMarkerNV) \ + USE_VK_FUNC(vkSetLatencySleepModeNV) \ USE_VK_FUNC(vkSetPrivateData) \ USE_VK_FUNC(vkSetPrivateDataEXT) \ USE_VK_FUNC(vkSignalSemaphore) \ diff --git a/dlls/winevulkan/winevulkan.json b/dlls/winevulkan/winevulkan.json index 503433bc9e7..03c47f5176e 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.3.260" + "api_version": "1.3.267" } } diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index a572decba42..d76d1fc1f45 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -512,6 +512,8 @@ #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask" #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1 #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties" +#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1 +#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary" #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1 #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled" #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 @@ -570,6 +572,8 @@ #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain" #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1 #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing" +#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1 +#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer" #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1 #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified" #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2 @@ -598,6 +602,8 @@ #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports" #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1 #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder" +#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1 +#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space" #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type" #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2 @@ -606,12 +612,26 @@ #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles" #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1 #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments" +#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 1 +#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2" #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2 #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix" #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1 #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas" +#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1 +#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2" +#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1 +#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights" +#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1 +#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma" +#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1 +#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp" #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1 #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state" +#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1 +#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver" +#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1 +#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation" #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1 @@ -638,7 +658,7 @@ #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0) #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0) #define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0) -#define VK_HEADER_VERSION 260 +#define VK_HEADER_VERSION 267 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; #define VK_USE_64_BIT_PTR_DEFINES 0 @@ -801,6 +821,7 @@ typedef VkFenceImportFlags VkFenceImportFlagsKHR; typedef VkFlags VkFormatFeatureFlags; typedef VkFlags64 VkFormatFeatureFlags2; typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR; +typedef VkFlags VkFrameBoundaryFlagsEXT; typedef VkFlags VkFramebufferCreateFlags; typedef VkFlags VkGeometryFlagsKHR; typedef VkGeometryFlagsKHR VkGeometryFlagsNV; @@ -1219,6 +1240,13 @@ typedef enum VkBlendOverlapEXT VK_BLEND_OVERLAP_EXT_MAX_ENUM = 0x7fffffff, } VkBlendOverlapEXT; +typedef enum VkBlockMatchWindowCompareModeQCOM +{ + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0, + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1, + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_QCOM_MAX_ENUM = 0x7fffffff, +} VkBlockMatchWindowCompareModeQCOM; + typedef enum VkBorderColor { VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, @@ -1285,11 +1313,11 @@ static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_KHR = 0x00000200ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_KHR = 0x00000400ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_KHR = 0x00000800ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_KHR = 0x00001000ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ull; @@ -1297,11 +1325,11 @@ static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KH static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ull; static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_KHR = 0x00200000ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_KHR = 0x00400000ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00800000ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_KHR = 0x01000000ull; -static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_KHR = 0x04000000ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ull; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ull; typedef enum VkBuildAccelerationStructureFlagBitsKHR { @@ -1543,6 +1571,15 @@ typedef enum VkCoverageReductionModeNV VK_COVERAGE_REDUCTION_MODE_NV_MAX_ENUM = 0x7fffffff, } VkCoverageReductionModeNV; +typedef enum VkCubicFilterWeightsQCOM +{ + VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0, + VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1, + VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2, + VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3, + VK_CUBIC_FILTER_WEIGHTS_QCOM_MAX_ENUM = 0x7fffffff, +} VkCubicFilterWeightsQCOM; + typedef enum VkCullModeFlagBits { VK_CULL_MODE_NONE = 0, @@ -1665,6 +1702,8 @@ typedef enum VkDescriptorPoolCreateFlagBits VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004, + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008, + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010, VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT, VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7fffffff, @@ -1805,6 +1844,7 @@ typedef enum VkDriverId VK_DRIVER_ID_MESA_DOZEN = 23, VK_DRIVER_ID_MESA_NVK = 24, VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25, + VK_DRIVER_ID_MESA_AGXV = 26, VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, @@ -2484,6 +2524,12 @@ typedef enum VkFragmentShadingRateTypeNV VK_FRAGMENT_SHADING_RATE_TYPE_NV_MAX_ENUM = 0x7fffffff, } VkFragmentShadingRateTypeNV; +typedef enum VkFrameBoundaryFlagBitsEXT +{ + VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001, + VK_FRAME_BOUNDARY_FLAG_BITS_EXT_MAX_ENUM = 0x7fffffff, +} VkFrameBoundaryFlagBitsEXT; + typedef enum VkFramebufferCreateFlagBits { VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, @@ -2780,6 +2826,30 @@ typedef enum VkInternalAllocationType VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7fffffff, } VkInternalAllocationType; +typedef enum VkLatencyMarkerNV +{ + VK_LATENCY_MARKER_SIMULATION_START_NV = 0, + VK_LATENCY_MARKER_SIMULATION_END_NV = 1, + VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2, + VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3, + VK_LATENCY_MARKER_PRESENT_START_NV = 4, + VK_LATENCY_MARKER_PRESENT_END_NV = 5, + VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6, + VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11, + VK_LATENCY_MARKER_NV_MAX_ENUM = 0x7fffffff, +} VkLatencyMarkerNV; + +typedef enum VkLayeredDriverUnderlyingApiMSFT +{ + VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0, + VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1, + VK_LAYERED_DRIVER_UNDERLYING_API_MSFT_MAX_ENUM = 0x7fffffff, +} VkLayeredDriverUnderlyingApiMSFT; + typedef enum VkLineRasterizationModeEXT { VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0, @@ -2995,6 +3065,13 @@ typedef enum VkOpticalFlowUsageFlagBitsNV VK_OPTICAL_FLOW_USAGE_FLAG_BITS_NV_MAX_ENUM = 0x7fffffff, } VkOpticalFlowUsageFlagBitsNV; +typedef enum VkOutOfBandQueueTypeNV +{ + VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0, + VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1, + VK_OUT_OF_BAND_QUEUE_TYPE_NV_MAX_ENUM = 0x7fffffff, +} VkOutOfBandQueueTypeNV; + typedef enum VkPeerMemoryFeatureFlagBits { VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, @@ -3180,12 +3257,12 @@ static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_KHR = 0x00000020ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_KHR = 0x00000400ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ull; @@ -3193,18 +3270,19 @@ static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NU static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_KHR = 0x00040000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_KHR = 0x00100000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ull; static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_KHR = 0x00400000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_KHR = 0x00800000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR = 0x01000000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_KHR = 0x02000000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_KHR = 0x04000000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_KHR = 0x08000000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_KHR = 0x20000000ull; -static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_KHR = 0x40000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ull; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ull; typedef enum VkPipelineCreationFeedbackFlagBits { @@ -3574,6 +3652,7 @@ typedef enum VkRenderingFlagBits VK_RENDERING_SUSPENDING_BIT = 0x00000002, VK_RENDERING_RESUMING_BIT = 0x00000004, VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008, + VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010, VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT, VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT, @@ -3692,6 +3771,7 @@ typedef enum VkSamplerReductionMode VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, VK_SAMPLER_REDUCTION_MODE_MIN = 1, VK_SAMPLER_REDUCTION_MODE_MAX = 2, + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000, VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN, VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX, @@ -4432,6 +4512,8 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000, VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000, + VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000, VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001, VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002, @@ -4491,6 +4573,8 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001, VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001, @@ -4526,16 +4610,38 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001, + VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002, + VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003, + VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004, + VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005, + VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006, + VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007, + VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000, VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000, VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001, + VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002, + VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001, + VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000, 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, VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, @@ -4740,6 +4846,7 @@ typedef enum VkSubpassContents { VK_SUBPASS_CONTENTS_INLINE = 0, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, + VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000, VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7fffffff, } VkSubpassContents; @@ -5238,6 +5345,13 @@ typedef struct VkBindVertexBufferIndirectCommandNV uint32_t stride; } VkBindVertexBufferIndirectCommandNV; +typedef struct VkBlitImageCubicWeightsInfoQCOM +{ + VkStructureType sType; + const void *pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkBlitImageCubicWeightsInfoQCOM; + typedef struct VkBufferCaptureDescriptorDataInfoEXT { VkStructureType sType; @@ -6289,6 +6403,21 @@ typedef struct VkFragmentShadingRateAttachmentInfoKHR VkExtent2D shadingRateAttachmentTexelSize; } VkFragmentShadingRateAttachmentInfoKHR; +typedef struct VkFrameBoundaryEXT +{ + VkStructureType sType; + const void *pNext; + VkFrameBoundaryFlagsEXT flags; + uint64_t WINE_VK_ALIGN(8) frameID; + uint32_t imageCount; + const VkImage *pImages; + uint32_t bufferCount; + const VkBuffer *pBuffers; + uint64_t WINE_VK_ALIGN(8) tagName; + size_t tagSize; + const void *pTag; +} VkFrameBoundaryEXT; + typedef struct VkFramebufferAttachmentImageInfo { VkStructureType sType; @@ -6662,6 +6791,58 @@ typedef struct VkInstanceCreateInfo const char * const*ppEnabledExtensionNames; } VkInstanceCreateInfo; +typedef struct VkLatencySleepInfoNV +{ + VkStructureType sType; + const void *pNext; + VkSemaphore WINE_VK_ALIGN(8) signalSemaphore; + uint64_t WINE_VK_ALIGN(8) value; +} VkLatencySleepInfoNV; + +typedef struct VkLatencySleepModeInfoNV +{ + VkStructureType sType; + const void *pNext; + VkBool32 lowLatencyMode; + VkBool32 lowLatencyBoost; + uint32_t minimumIntervalUs; +} VkLatencySleepModeInfoNV; + +typedef struct VkLatencySubmissionPresentIdNV +{ + VkStructureType sType; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) presentID; +} VkLatencySubmissionPresentIdNV; + +typedef struct VkLatencySurfaceCapabilitiesNV +{ + VkStructureType sType; + const void *pNext; + uint32_t presentModeCount; + VkPresentModeKHR *pPresentModes; +} VkLatencySurfaceCapabilitiesNV; + +typedef struct VkLatencyTimingsFrameReportNV +{ + VkStructureType sType; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) presentID; + uint64_t WINE_VK_ALIGN(8) inputSampleTimeUs; + uint64_t WINE_VK_ALIGN(8) simStartTimeUs; + uint64_t WINE_VK_ALIGN(8) simEndTimeUs; + uint64_t WINE_VK_ALIGN(8) renderSubmitStartTimeUs; + uint64_t WINE_VK_ALIGN(8) renderSubmitEndTimeUs; + uint64_t WINE_VK_ALIGN(8) presentStartTimeUs; + uint64_t WINE_VK_ALIGN(8) presentEndTimeUs; + uint64_t WINE_VK_ALIGN(8) driverStartTimeUs; + uint64_t WINE_VK_ALIGN(8) driverEndTimeUs; + uint64_t WINE_VK_ALIGN(8) osRenderQueueStartTimeUs; + uint64_t WINE_VK_ALIGN(8) osRenderQueueEndTimeUs; + uint64_t WINE_VK_ALIGN(8) gpuRenderStartTimeUs; + uint64_t WINE_VK_ALIGN(8) gpuRenderEndTimeUs; +} VkLatencyTimingsFrameReportNV; + typedef struct VkLayerProperties { char layerName[VK_MAX_EXTENSION_NAME_SIZE]; @@ -6959,6 +7140,13 @@ typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV const void *pPrivateData; } VkOpticalFlowSessionCreatePrivateDataInfoNV; +typedef struct VkOutOfBandQueueTypeInfoNV +{ + VkStructureType sType; + const void *pNext; + VkOutOfBandQueueTypeNV queueType; +} VkOutOfBandQueueTypeInfoNV; + typedef struct VkPerformanceConfigurationAcquireInfoINTEL { VkStructureType sType; @@ -7298,6 +7486,20 @@ typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV VkBool32 coverageReductionMode; } VkPhysicalDeviceCoverageReductionModeFeaturesNV; +typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM +{ + VkStructureType sType; + void *pNext; + VkBool32 cubicRangeClamp; +} VkPhysicalDeviceCubicClampFeaturesQCOM; + +typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM +{ + VkStructureType sType; + void *pNext; + VkBool32 selectableCubicWeights; +} VkPhysicalDeviceCubicWeightsFeaturesQCOM; + typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { VkStructureType sType; @@ -7475,6 +7677,13 @@ typedef struct VkPhysicalDeviceDescriptorIndexingProperties } VkPhysicalDeviceDescriptorIndexingProperties; typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; +typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 descriptorPoolOverallocation; +} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { VkStructureType sType; @@ -7620,6 +7829,22 @@ typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT VkBool32 extendedDynamicState; } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; +typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV +{ + VkStructureType sType; + void *pNext; + VkBool32 extendedSparseAddressSpace; +} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + +typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV +{ + VkStructureType sType; + void *pNext; + VkDeviceSize WINE_VK_ALIGN(8) extendedSparseAddressSpaceSize; + VkImageUsageFlags extendedSparseImageUsageFlags; + VkBufferUsageFlags extendedSparseBufferUsageFlags; +} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + typedef struct VkPhysicalDeviceExternalBufferInfo { VkStructureType sType; @@ -7889,6 +8114,13 @@ typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR VkBool32 fragmentShadingRateStrictMultiplyCombiner; } VkPhysicalDeviceFragmentShadingRatePropertiesKHR; +typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 frameBoundary; +} VkPhysicalDeviceFrameBoundaryFeaturesEXT; + typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { VkStructureType sType; @@ -7995,6 +8227,20 @@ typedef struct VkPhysicalDeviceImageFormatInfo2 } VkPhysicalDeviceImageFormatInfo2; typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; +typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM +{ + VkStructureType sType; + void *pNext; + VkBool32 textureBlockMatch2; +} VkPhysicalDeviceImageProcessing2FeaturesQCOM; + +typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM +{ + VkStructureType sType; + void *pNext; + VkExtent2D maxBlockMatchWindow; +} VkPhysicalDeviceImageProcessing2PropertiesQCOM; + typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM { VkStructureType sType; @@ -8093,6 +8339,13 @@ typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI VkBool32 invocationMask; } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; +typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT +{ + VkStructureType sType; + void *pNext; + VkLayeredDriverUnderlyingApiMSFT underlyingAPI; +} VkPhysicalDeviceLayeredDriverPropertiesMSFT; + typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT { VkStructureType sType; @@ -8460,6 +8713,22 @@ typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT; typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; +typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 nestedCommandBuffer; + VkBool32 nestedCommandBufferRendering; + VkBool32 nestedCommandBufferSimultaneousUse; +} VkPhysicalDeviceNestedCommandBufferFeaturesEXT; + +typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT +{ + VkStructureType sType; + void *pNext; + uint32_t maxCommandBufferNestingLevel; +} VkPhysicalDeviceNestedCommandBufferPropertiesEXT; + typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT { VkStructureType sType; @@ -9631,6 +9900,13 @@ typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT VkBool32 ycbcr2plane444Formats; } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; +typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM +{ + VkStructureType sType; + void *pNext; + VkBool32 ycbcrDegamma; +} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM; + typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { VkStructureType sType; @@ -10362,6 +10638,14 @@ typedef struct VkSampleLocationsInfoEXT const VkSampleLocationEXT *pSampleLocations; } VkSampleLocationsInfoEXT; +typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM +{ + VkStructureType sType; + const void *pNext; + VkExtent2D windowExtent; + VkBlockMatchWindowCompareModeQCOM windowCompareMode; +} VkSamplerBlockMatchWindowCreateInfoQCOM; + typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { VkStructureType sType; @@ -10399,6 +10683,13 @@ typedef struct VkSamplerCreateInfo VkBool32 unnormalizedCoordinates; } VkSamplerCreateInfo; +typedef struct VkSamplerCubicWeightsCreateInfoQCOM +{ + VkStructureType sType; + const void *pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkSamplerCubicWeightsCreateInfoQCOM; + typedef struct VkSamplerCustomBorderColorCreateInfoEXT { VkStructureType sType; @@ -10446,6 +10737,14 @@ typedef struct VkSamplerYcbcrConversionInfo } VkSamplerYcbcrConversionInfo; typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; +typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM +{ + VkStructureType sType; + void *pNext; + VkBool32 enableYDegamma; + VkBool32 enableCbCrDegamma; +} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + typedef struct VkSemaphoreCreateInfo { VkStructureType sType; @@ -10493,6 +10792,14 @@ typedef struct VkSemaphoreWaitInfo } VkSemaphoreWaitInfo; typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR; +typedef struct VkSetLatencyMarkerInfoNV +{ + VkStructureType sType; + const void *pNext; + uint64_t WINE_VK_ALIGN(8) presentID; + VkLatencyMarkerNV marker; +} VkSetLatencyMarkerInfoNV; + typedef struct VkSetStateFlagsIndirectCommandNV { uint32_t data; @@ -10869,6 +11176,13 @@ typedef struct VkSwapchainCreateInfoKHR VkSwapchainKHR WINE_VK_ALIGN(8) oldSwapchain; } VkSwapchainCreateInfoKHR; +typedef struct VkSwapchainLatencyCreateInfoNV +{ + VkStructureType sType; + const void *pNext; + VkBool32 latencyModeEnable; +} VkSwapchainLatencyCreateInfoNV; + typedef struct VkSwapchainPresentBarrierCreateInfoNV { VkStructureType sType; @@ -11509,6 +11823,13 @@ typedef struct VkGeometryNV VkGeometryFlagsKHR flags; } VkGeometryNV; +typedef struct VkGetLatencyMarkerInfoNV +{ + VkStructureType sType; + const void *pNext; + VkLatencyTimingsFrameReportNV *pTimings; +} VkGetLatencyMarkerInfoNV; + typedef struct VkHdrMetadataEXT { VkStructureType sType; @@ -12672,6 +12993,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice, VkImageView typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice, const VkImageViewHandleInfoNVX *); typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice, const VkImageViewCaptureDescriptorDataInfoEXT *, void *); typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance, const char *); +typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice, VkSwapchainKHR, uint32_t *, VkGetLatencyMarkerInfoNV *); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice, VkExternalMemoryHandleTypeFlagBits, const void *, VkMemoryHostPointerPropertiesEXT *); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice, const VkMemoryGetWin32HandleInfoKHR *, HANDLE *); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice, VkExternalMemoryHandleTypeFlagBits, HANDLE, VkMemoryWin32HandlePropertiesKHR *); @@ -12751,6 +13073,7 @@ typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice, VkSwapchainK typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *); typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *); typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice, uint32_t, const VkMappedMemoryRange *); +typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepInfoNV *); typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice, VkDeviceMemory, VkDeviceSize, VkDeviceSize, VkMemoryMapFlags, void **); typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice, const VkMemoryMapInfoKHR *, void **); typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice, VkPipelineCache, uint32_t, const VkPipelineCache *); @@ -12759,6 +13082,7 @@ typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue, const VkDe typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue, uint32_t, const VkBindSparseInfo *, VkFence); typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue); typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue, const VkDebugUtilsLabelEXT *); +typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue, const VkOutOfBandQueueTypeInfoNV *); typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue, const VkPresentInfoKHR *); typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue, VkPerformanceConfigurationINTEL); typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue, uint32_t, const VkSubmitInfo *, VkFence); @@ -12780,6 +13104,8 @@ typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice, const Vk typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice, VkDeviceMemory, float); typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice, VkEvent); typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice, uint32_t, const VkSwapchainKHR *, const VkHdrMetadataEXT *); +typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice, VkSwapchainKHR, const VkSetLatencyMarkerInfoNV *); +typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice, VkSwapchainKHR, const VkLatencySleepModeInfoNV *); typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice, VkObjectType, uint64_t, VkPrivateDataSlot, uint64_t); typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice, const VkSemaphoreSignalInfo *); @@ -13232,6 +13558,7 @@ VkResult VKAPI_CALL vkGetImageViewAddressNVX(VkDevice device, VkImageView imageV uint32_t VKAPI_CALL vkGetImageViewHandleNVX(VkDevice device, const VkImageViewHandleInfoNVX *pInfo); VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT *pInfo, void *pData); PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(VkInstance instance, const char *pName); +void VKAPI_CALL vkGetLatencyTimingsNV(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pTimingCount, VkGetLatencyMarkerInfoNV *pLatencyMarkerInfo); VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void *pHostPointer, VkMemoryHostPointerPropertiesEXT *pMemoryHostPointerProperties); VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo, HANDLE *pHandle); VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR *pMemoryWin32HandleProperties); @@ -13311,6 +13638,7 @@ VkResult VKAPI_CALL vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swap VkResult VKAPI_CALL vkGetValidationCacheDataEXT(VkDevice device, VkValidationCacheEXT validationCache, size_t *pDataSize, void *pData); VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(VkDevice device, const VkInitializePerformanceApiInfoINTEL *pInitializeInfo); VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges); +VkResult VKAPI_CALL vkLatencySleepNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV *pSleepInfo); VkResult VKAPI_CALL vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData); VkResult VKAPI_CALL vkMapMemory2KHR(VkDevice device, const VkMemoryMapInfoKHR *pMemoryMapInfo, void **ppData); VkResult VKAPI_CALL vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache *pSrcCaches); @@ -13319,6 +13647,7 @@ void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(VkQueue queue, const VkDebugUtils VkResult VKAPI_CALL vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo *pBindInfo, VkFence fence); void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(VkQueue queue); void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(VkQueue queue, const VkDebugUtilsLabelEXT *pLabelInfo); +void VKAPI_CALL vkQueueNotifyOutOfBandNV(VkQueue queue, const VkOutOfBandQueueTypeInfoNV *pQueueTypeInfo); VkResult VKAPI_CALL vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo); VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(VkQueue queue, VkPerformanceConfigurationINTEL configuration); VkResult VKAPI_CALL vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo *pSubmits, VkFence fence); @@ -13340,6 +13669,8 @@ VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(VkDevice device, const VkDebugUt void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(VkDevice device, VkDeviceMemory memory, float priority); VkResult VKAPI_CALL vkSetEvent(VkDevice device, VkEvent event); void VKAPI_CALL vkSetHdrMetadataEXT(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR *pSwapchains, const VkHdrMetadataEXT *pMetadata); +void VKAPI_CALL vkSetLatencyMarkerNV(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV *pLatencyMarkerInfo); +VkResult VKAPI_CALL vkSetLatencySleepModeNV(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV *pSleepModeInfo); VkResult VKAPI_CALL vkSetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); VkResult VKAPI_CALL vkSetPrivateDataEXT(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); VkResult VKAPI_CALL vkSignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo *pSignalInfo);