From: Georg Lehmann Subject: [PATCH v2 1/1] winevulkan: Update to VK spec version 1.3.219. Message-Id: Date: Thu, 30 Jun 2022 21:34:52 +0000 In-Reply-To: References: From: Georg Lehmann Signed-off-by: Georg Lehmann --- dlls/winevulkan/loader_thunks.c | 20 +++++++++ dlls/winevulkan/loader_thunks.h | 16 ++++++++ dlls/winevulkan/make_vulkan | 2 +- dlls/winevulkan/vulkan_thunks.c | 52 ++++++++++++++++++++++++ dlls/winevulkan/vulkan_thunks.h | 4 ++ dlls/winevulkan/winevulkan.json | 2 +- include/wine/vulkan.h | 72 ++++++++++++++++++++++++++++++++- 7 files changed, 165 insertions(+), 3 deletions(-) diff --git a/dlls/winevulkan/loader_thunks.c b/dlls/winevulkan/loader_thunks.c index 9ba1d09703e..4a7c755da32 100644 --- a/dlls/winevulkan/loader_thunks.c +++ b/dlls/winevulkan/loader_thunks.c @@ -3857,6 +3857,24 @@ VkResult WINAPI vkGetShaderInfoAMD(VkDevice device, VkPipeline pipeline, VkShade return vk_unix_call(unix_vkGetShaderInfoAMD, ¶ms); } +void WINAPI vkGetShaderModuleCreateInfoIdentifierEXT(VkDevice device, const VkShaderModuleCreateInfo *pCreateInfo, VkShaderModuleIdentifierEXT *pIdentifier) +{ + struct vkGetShaderModuleCreateInfoIdentifierEXT_params params; + params.device = device; + params.pCreateInfo = pCreateInfo; + params.pIdentifier = pIdentifier; + vk_unix_call(unix_vkGetShaderModuleCreateInfoIdentifierEXT, ¶ms); +} + +void WINAPI vkGetShaderModuleIdentifierEXT(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT *pIdentifier) +{ + struct vkGetShaderModuleIdentifierEXT_params params; + params.device = device; + params.shaderModule = shaderModule; + params.pIdentifier = pIdentifier; + vk_unix_call(unix_vkGetShaderModuleIdentifierEXT, ¶ms); +} + VkResult WINAPI vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount, VkImage *pSwapchainImages) { struct vkGetSwapchainImagesKHR_params params; @@ -4635,6 +4653,8 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkGetSemaphoreCounterValue", vkGetSemaphoreCounterValue}, {"vkGetSemaphoreCounterValueKHR", vkGetSemaphoreCounterValueKHR}, {"vkGetShaderInfoAMD", vkGetShaderInfoAMD}, + {"vkGetShaderModuleCreateInfoIdentifierEXT", vkGetShaderModuleCreateInfoIdentifierEXT}, + {"vkGetShaderModuleIdentifierEXT", vkGetShaderModuleIdentifierEXT}, {"vkGetSwapchainImagesKHR", vkGetSwapchainImagesKHR}, {"vkGetValidationCacheDataEXT", vkGetValidationCacheDataEXT}, {"vkInitializePerformanceApiINTEL", vkInitializePerformanceApiINTEL}, diff --git a/dlls/winevulkan/loader_thunks.h b/dlls/winevulkan/loader_thunks.h index 56bfb13bf90..761e82289be 100644 --- a/dlls/winevulkan/loader_thunks.h +++ b/dlls/winevulkan/loader_thunks.h @@ -421,6 +421,8 @@ enum unix_call unix_vkGetSemaphoreCounterValue, unix_vkGetSemaphoreCounterValueKHR, unix_vkGetShaderInfoAMD, + unix_vkGetShaderModuleCreateInfoIdentifierEXT, + unix_vkGetShaderModuleIdentifierEXT, unix_vkGetSwapchainImagesKHR, unix_vkGetValidationCacheDataEXT, unix_vkInitializePerformanceApiINTEL, @@ -3546,6 +3548,20 @@ struct vkGetShaderInfoAMD_params void *pInfo; }; +struct vkGetShaderModuleCreateInfoIdentifierEXT_params +{ + VkDevice device; + const VkShaderModuleCreateInfo *pCreateInfo; + VkShaderModuleIdentifierEXT *pIdentifier; +}; + +struct vkGetShaderModuleIdentifierEXT_params +{ + VkDevice device; + VkShaderModule shaderModule; + VkShaderModuleIdentifierEXT *pIdentifier; +}; + struct vkGetSwapchainImagesKHR_params { VkDevice device; diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index 69e2f0cd256..52052f15bdd 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -64,7 +64,7 @@ from enum import Enum LOGGER = logging.Logger("vulkan") LOGGER.addHandler(logging.StreamHandler()) -VK_XML_VERSION = "1.3.217" +VK_XML_VERSION = "1.3.219" WINE_VK_VERSION = (1, 3) # Filenames to create. diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index c3df8357431..28f6107b83a 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -4662,6 +4662,22 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: + { + const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *in = (const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *)in_header; + VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT *out; + + if (!(out = malloc(sizeof(*out)))) goto out_of_memory; + + out->sType = in->sType; + out->pNext = NULL; + out->multisampledRenderToSingleSampled = in->multisampledRenderToSingleSampled; + + out_header->pNext = (VkBaseOutStructure *)out; + out_header = out_header->pNext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: { const VkPhysicalDeviceInheritedViewportScissorFeaturesNV *in = (const VkPhysicalDeviceInheritedViewportScissorFeaturesNV *)in_header; @@ -4874,6 +4890,22 @@ VkResult convert_VkDeviceCreateInfo_struct_chain(const void *pNext, VkDeviceCrea break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: + { + const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *in = (const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *)in_header; + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT *out; + + if (!(out = malloc(sizeof(*out)))) goto out_of_memory; + + out->sType = in->sType; + out->pNext = NULL; + out->shaderModuleIdentifier = in->shaderModuleIdentifier; + + out_header->pNext = (VkBaseOutStructure *)out; + out_header = out_header->pNext; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: { const VkPhysicalDeviceImageCompressionControlFeaturesEXT *in = (const VkPhysicalDeviceImageCompressionControlFeaturesEXT *)in_header; @@ -9344,6 +9376,22 @@ static NTSTATUS wine_vkGetShaderInfoAMD(void *args) return params->device->funcs.p_vkGetShaderInfoAMD(params->device->device, params->pipeline, params->shaderStage, params->infoType, params->pInfoSize, params->pInfo); } +static NTSTATUS wine_vkGetShaderModuleCreateInfoIdentifierEXT(void *args) +{ + struct vkGetShaderModuleCreateInfoIdentifierEXT_params *params = args; + TRACE("%p, %p, %p\n", params->device, params->pCreateInfo, params->pIdentifier); + params->device->funcs.p_vkGetShaderModuleCreateInfoIdentifierEXT(params->device->device, params->pCreateInfo, params->pIdentifier); + return STATUS_SUCCESS; +} + +static NTSTATUS wine_vkGetShaderModuleIdentifierEXT(void *args) +{ + struct vkGetShaderModuleIdentifierEXT_params *params = args; + TRACE("%p, 0x%s, %p\n", params->device, wine_dbgstr_longlong(params->shaderModule), params->pIdentifier); + params->device->funcs.p_vkGetShaderModuleIdentifierEXT(params->device->device, params->shaderModule, params->pIdentifier); + return STATUS_SUCCESS; +} + static NTSTATUS wine_vkGetSwapchainImagesKHR(void *args) { struct vkGetSwapchainImagesKHR_params *params = args; @@ -9906,6 +9954,7 @@ static const char * const vk_device_extensions[] = "VK_EXT_memory_budget", "VK_EXT_memory_priority", "VK_EXT_multi_draw", + "VK_EXT_multisampled_render_to_single_sampled", "VK_EXT_non_seamless_cube_map", "VK_EXT_pageable_device_local_memory", "VK_EXT_pci_bus_info", @@ -9928,6 +9977,7 @@ static const char * const vk_device_extensions[] = "VK_EXT_shader_atomic_float2", "VK_EXT_shader_demote_to_helper_invocation", "VK_EXT_shader_image_atomic_int64", + "VK_EXT_shader_module_identifier", "VK_EXT_shader_stencil_export", "VK_EXT_shader_subgroup_ballot", "VK_EXT_shader_subgroup_vote", @@ -10549,6 +10599,8 @@ const unixlib_entry_t __wine_unix_call_funcs[] = wine_vkGetSemaphoreCounterValue, wine_vkGetSemaphoreCounterValueKHR, wine_vkGetShaderInfoAMD, + wine_vkGetShaderModuleCreateInfoIdentifierEXT, + wine_vkGetShaderModuleIdentifierEXT, wine_vkGetSwapchainImagesKHR, wine_vkGetValidationCacheDataEXT, wine_vkInitializePerformanceApiINTEL, diff --git a/dlls/winevulkan/vulkan_thunks.h b/dlls/winevulkan/vulkan_thunks.h index a26f450e26a..af88eaf4195 100644 --- a/dlls/winevulkan/vulkan_thunks.h +++ b/dlls/winevulkan/vulkan_thunks.h @@ -2176,6 +2176,8 @@ struct vulkan_device_funcs VkResult (*p_vkGetSemaphoreCounterValue)(VkDevice, VkSemaphore, uint64_t *); VkResult (*p_vkGetSemaphoreCounterValueKHR)(VkDevice, VkSemaphore, uint64_t *); VkResult (*p_vkGetShaderInfoAMD)(VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, size_t *, void *); + void (*p_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice, const VkShaderModuleCreateInfo *, VkShaderModuleIdentifierEXT *); + void (*p_vkGetShaderModuleIdentifierEXT)(VkDevice, VkShaderModule, VkShaderModuleIdentifierEXT *); VkResult (*p_vkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *); VkResult (*p_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *); VkResult (*p_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *); @@ -2629,6 +2631,8 @@ struct vulkan_instance_funcs USE_VK_FUNC(vkGetSemaphoreCounterValue) \ USE_VK_FUNC(vkGetSemaphoreCounterValueKHR) \ USE_VK_FUNC(vkGetShaderInfoAMD) \ + USE_VK_FUNC(vkGetShaderModuleCreateInfoIdentifierEXT) \ + USE_VK_FUNC(vkGetShaderModuleIdentifierEXT) \ USE_VK_FUNC(vkGetSwapchainImagesKHR) \ USE_VK_FUNC(vkGetValidationCacheDataEXT) \ USE_VK_FUNC(vkInitializePerformanceApiINTEL) \ diff --git a/dlls/winevulkan/winevulkan.json b/dlls/winevulkan/winevulkan.json index 9165c08b55e..b0e1a8c23c6 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.217" + "api_version": "1.3.219" } } diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index bf6fead4b8c..8d7b6e1bcfc 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -63,6 +63,7 @@ #define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16 #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE_KHR +#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32 #define VK_KHR_SURFACE_SPEC_VERSION 25 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 @@ -483,6 +484,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_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 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1 @@ -521,6 +524,8 @@ #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain" #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2 #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback" +#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1 +#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier" #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 @@ -543,7 +548,7 @@ #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0) #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 VK_HEADER_VERSION 217 +#define VK_HEADER_VERSION 219 #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 @@ -1554,6 +1559,7 @@ typedef enum VkDriverId VK_DRIVER_ID_MESA_PANVK = 20, VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21, VK_DRIVER_ID_MESA_VENUS = 22, + VK_DRIVER_ID_MESA_DOZEN = 23, 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, @@ -2321,6 +2327,7 @@ typedef enum VkImageCreateFlagBits VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000, VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000, + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, @@ -3838,6 +3845,9 @@ 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_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, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, @@ -3870,6 +3880,10 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001, VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002, VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002, + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003, 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, @@ -5911,6 +5925,14 @@ typedef struct VkMultisamplePropertiesEXT VkExtent2D maxSampleLocationGridSize; } VkMultisamplePropertiesEXT; +typedef struct VkMultisampledRenderToSingleSampledInfoEXT +{ + VkStructureType sType; + const void *pNext; + VkBool32 multisampledRenderToSingleSampledEnable; + VkSampleCountFlagBits rasterizationSamples; +} VkMultisampledRenderToSingleSampledInfoEXT; + typedef struct VkMultiviewPerViewAttributesInfoNVX { VkStructureType sType; @@ -7044,6 +7066,13 @@ typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT uint32_t maxMultiDrawCount; } VkPhysicalDeviceMultiDrawPropertiesEXT; +typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 multisampledRenderToSingleSampled; +} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; + typedef struct VkPhysicalDeviceMultiviewFeatures { VkStructureType sType; @@ -7543,6 +7572,20 @@ typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL VkBool32 shaderIntegerFunctions2; } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; +typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 shaderModuleIdentifier; +} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT; + +typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT +{ + VkStructureType sType; + void *pNext; + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE]; +} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT; + typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { VkStructureType sType; @@ -8374,6 +8417,14 @@ typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV VkBool32 representativeFragmentTestEnable; } VkPipelineRepresentativeFragmentTestStateCreateInfoNV; +typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT +{ + VkStructureType sType; + const void *pNext; + uint32_t identifierSize; + const uint8_t *pIdentifier; +} VkPipelineShaderStageModuleIdentifierCreateInfoEXT; + typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { VkStructureType sType; @@ -8862,6 +8913,14 @@ typedef struct VkShaderModuleCreateInfo const uint32_t *pCode; } VkShaderModuleCreateInfo; +typedef struct VkShaderModuleIdentifierEXT +{ + VkStructureType sType; + void *pNext; + uint32_t identifierSize; + uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT]; +} VkShaderModuleIdentifierEXT; + typedef struct VkShaderModuleValidationCacheCreateInfoEXT { VkStructureType sType; @@ -9096,6 +9155,13 @@ typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM const VkOffset2D *pFragmentDensityOffsets; } VkSubpassFragmentDensityMapOffsetEndInfoQCOM; +typedef struct VkSubpassResolvePerformanceQueryEXT +{ + VkStructureType sType; + void *pNext; + VkBool32 optimal; +} VkSubpassResolvePerformanceQueryEXT; + typedef struct VkSubpassSampleLocationsEXT { uint32_t subpassIndex; @@ -10670,6 +10736,8 @@ typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice, VkRenderPass, typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice, VkSemaphore, uint64_t *); typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice, VkSemaphore, uint64_t *); typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice, VkPipeline, VkShaderStageFlagBits, VkShaderInfoTypeAMD, size_t *, void *); +typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice, const VkShaderModuleCreateInfo *, VkShaderModuleIdentifierEXT *); +typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice, VkShaderModule, VkShaderModuleIdentifierEXT *); typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice, VkSwapchainKHR, uint32_t *, VkImage *); typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice, VkValidationCacheEXT, size_t *, void *); typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice, const VkInitializePerformanceApiInfoINTEL *); @@ -11130,6 +11198,8 @@ void VKAPI_CALL vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderP VkResult VKAPI_CALL vkGetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore, uint64_t *pValue); VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(VkDevice device, VkSemaphore semaphore, uint64_t *pValue); VkResult VKAPI_CALL vkGetShaderInfoAMD(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t *pInfoSize, void *pInfo); +void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(VkDevice device, const VkShaderModuleCreateInfo *pCreateInfo, VkShaderModuleIdentifierEXT *pIdentifier); +void VKAPI_CALL vkGetShaderModuleIdentifierEXT(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT *pIdentifier); VkResult VKAPI_CALL vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint32_t *pSwapchainImageCount, VkImage *pSwapchainImages); VkResult VKAPI_CALL vkGetValidationCacheDataEXT(VkDevice device, VkValidationCacheEXT validationCache, size_t *pDataSize, void *pData); VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(VkDevice device, const VkInitializePerformanceApiInfoINTEL *pInitializeInfo); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/350