[PATCH 0/1] MR10522: winevulkan: Update to VK spec version 1.4.347.
From: Georg Lehmann <dadschoorse@gmail.com> --- dlls/winevulkan/loader_thunks.c | 26 ++ dlls/winevulkan/loader_thunks.h | 18 ++ dlls/winevulkan/make_vulkan | 2 +- dlls/winevulkan/vulkan_thunks.c | 468 ++++++++++++++++++++++++++++++-- dlls/winevulkan/winevulkan.json | 2 +- include/wine/vulkan.h | 170 ++++++++++-- 6 files changed, 636 insertions(+), 50 deletions(-) diff --git a/dlls/winevulkan/loader_thunks.c b/dlls/winevulkan/loader_thunks.c index 1cfe08caed2..ad1b8272b6f 100644 --- a/dlls/winevulkan/loader_thunks.c +++ b/dlls/winevulkan/loader_thunks.c @@ -5093,6 +5093,17 @@ uint64_t WINAPI vkGetDeviceCombinedImageSamplerIndexNVX(VkDevice device, uint64_ return params.result; } +VkResult WINAPI vkGetDeviceFaultDebugInfoKHR(VkDevice device, VkDeviceFaultDebugInfoKHR *pDebugInfo) +{ + struct vkGetDeviceFaultDebugInfoKHR_params params; + NTSTATUS status; + params.device = device; + params.pDebugInfo = pDebugInfo; + status = UNIX_CALL(vkGetDeviceFaultDebugInfoKHR, ¶ms); + assert(!status && "vkGetDeviceFaultDebugInfoKHR"); + return params.result; +} + VkResult WINAPI vkGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT *pFaultCounts, VkDeviceFaultInfoEXT *pFaultInfo) { struct vkGetDeviceFaultInfoEXT_params params; @@ -5105,6 +5116,19 @@ VkResult WINAPI vkGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT return params.result; } +VkResult WINAPI vkGetDeviceFaultReportsKHR(VkDevice device, uint64_t timeout, uint32_t *pFaultCounts, VkDeviceFaultInfoKHR *pFaultInfo) +{ + struct vkGetDeviceFaultReportsKHR_params params; + NTSTATUS status; + params.device = device; + params.timeout = timeout; + params.pFaultCounts = pFaultCounts; + params.pFaultInfo = pFaultInfo; + status = UNIX_CALL(vkGetDeviceFaultReportsKHR, ¶ms); + assert(!status && "vkGetDeviceFaultReportsKHR"); + return params.result; +} + void WINAPI vkGetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures) { struct vkGetDeviceGroupPeerMemoryFeatures_params params; @@ -8136,7 +8160,9 @@ static const struct vulkan_func vk_device_dispatch_table[] = {"vkGetDeviceBufferMemoryRequirements", vkGetDeviceBufferMemoryRequirements}, {"vkGetDeviceBufferMemoryRequirementsKHR", vkGetDeviceBufferMemoryRequirementsKHR}, {"vkGetDeviceCombinedImageSamplerIndexNVX", vkGetDeviceCombinedImageSamplerIndexNVX}, + {"vkGetDeviceFaultDebugInfoKHR", vkGetDeviceFaultDebugInfoKHR}, {"vkGetDeviceFaultInfoEXT", vkGetDeviceFaultInfoEXT}, + {"vkGetDeviceFaultReportsKHR", vkGetDeviceFaultReportsKHR}, {"vkGetDeviceGroupPeerMemoryFeatures", vkGetDeviceGroupPeerMemoryFeatures}, {"vkGetDeviceGroupPeerMemoryFeaturesKHR", vkGetDeviceGroupPeerMemoryFeaturesKHR}, {"vkGetDeviceGroupPresentCapabilitiesKHR", vkGetDeviceGroupPresentCapabilitiesKHR}, diff --git a/dlls/winevulkan/loader_thunks.h b/dlls/winevulkan/loader_thunks.h index f7613d6ae92..635e58f6c32 100644 --- a/dlls/winevulkan/loader_thunks.h +++ b/dlls/winevulkan/loader_thunks.h @@ -523,7 +523,9 @@ enum unix_call unix_vkGetDeviceBufferMemoryRequirements, unix_vkGetDeviceBufferMemoryRequirementsKHR, unix_vkGetDeviceCombinedImageSamplerIndexNVX, + unix_vkGetDeviceFaultDebugInfoKHR, unix_vkGetDeviceFaultInfoEXT, + unix_vkGetDeviceFaultReportsKHR, unix_vkGetDeviceGroupPeerMemoryFeatures, unix_vkGetDeviceGroupPeerMemoryFeaturesKHR, unix_vkGetDeviceGroupPresentCapabilitiesKHR, @@ -4548,6 +4550,13 @@ struct vkGetDeviceCombinedImageSamplerIndexNVX_params uint64_t result; }; +struct vkGetDeviceFaultDebugInfoKHR_params +{ + VkDevice device; + VkDeviceFaultDebugInfoKHR *pDebugInfo; + VkResult result; +}; + struct vkGetDeviceFaultInfoEXT_params { VkDevice device; @@ -4556,6 +4565,15 @@ struct vkGetDeviceFaultInfoEXT_params VkResult result; }; +struct vkGetDeviceFaultReportsKHR_params +{ + VkDevice device; + uint64_t DECLSPEC_ALIGN(8) timeout; + uint32_t *pFaultCounts; + VkDeviceFaultInfoKHR *pFaultInfo; + VkResult result; +}; + struct vkGetDeviceGroupPeerMemoryFeatures_params { VkDevice device; diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan index a00a32d0499..fb4f04f3af1 100755 --- a/dlls/winevulkan/make_vulkan +++ b/dlls/winevulkan/make_vulkan @@ -62,7 +62,7 @@ from enum import Enum LOGGER = logging.Logger("vulkan") LOGGER.addHandler(logging.StreamHandler()) -VK_XML_VERSION = "1.4.346" +VK_XML_VERSION = "1.4.347" # Filenames to create. WINE_VULKAN_H = "../../include/wine/vulkan.h" diff --git a/dlls/winevulkan/vulkan_thunks.c b/dlls/winevulkan/vulkan_thunks.c index 06d5b646c96..e3d4059af37 100644 --- a/dlls/winevulkan/vulkan_thunks.c +++ b/dlls/winevulkan/vulkan_thunks.c @@ -1127,19 +1127,21 @@ typedef struct VkDescriptorUpdateTemplateEntry32 } VkDescriptorUpdateTemplateEntry32; typedef VkDescriptorUpdateTemplateEntry32 VkDescriptorUpdateTemplateEntryKHR32; -typedef struct VkDeviceFaultAddressInfoEXT32 +typedef struct VkDeviceFaultAddressInfoKHR32 { - VkDeviceFaultAddressTypeEXT addressType; + VkDeviceFaultAddressTypeKHR addressType; VkDeviceAddress DECLSPEC_ALIGN(8) reportedAddress; VkDeviceSize DECLSPEC_ALIGN(8) addressPrecision; -} VkDeviceFaultAddressInfoEXT32; +} VkDeviceFaultAddressInfoKHR32; +typedef VkDeviceFaultAddressInfoKHR32 VkDeviceFaultAddressInfoEXT32; -typedef struct VkDeviceFaultVendorInfoEXT32 +typedef struct VkDeviceFaultVendorInfoKHR32 { char description[VK_MAX_DESCRIPTION_SIZE]; uint64_t DECLSPEC_ALIGN(8) vendorFaultCode; uint64_t DECLSPEC_ALIGN(8) vendorFaultData; -} VkDeviceFaultVendorInfoEXT32; +} VkDeviceFaultVendorInfoKHR32; +typedef VkDeviceFaultVendorInfoKHR32 VkDeviceFaultVendorInfoEXT32; typedef struct VkDeviceMemoryCopyKHR32 { @@ -3334,6 +3336,14 @@ typedef struct VkDeviceFaultCountsEXT32 VkDeviceSize DECLSPEC_ALIGN(8) vendorBinarySize; } VkDeviceFaultCountsEXT32; +typedef struct VkDeviceFaultDebugInfoKHR32 +{ + VkStructureType sType; + PTR32 pNext; + uint32_t vendorBinarySize; + PTR32 pVendorBinaryData; +} VkDeviceFaultDebugInfoKHR32; + typedef struct VkDeviceFaultInfoEXT32 { VkStructureType sType; @@ -3344,6 +3354,26 @@ typedef struct VkDeviceFaultInfoEXT32 PTR32 pVendorBinaryData; } VkDeviceFaultInfoEXT32; +typedef struct VkDeviceFaultInfoKHR32 +{ + VkStructureType sType; + PTR32 pNext; + VkDeviceFaultFlagsKHR flags; + uint64_t DECLSPEC_ALIGN(8) groupId; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkDeviceFaultAddressInfoKHR32 DECLSPEC_ALIGN(8) faultAddressInfo; + VkDeviceFaultAddressInfoKHR32 DECLSPEC_ALIGN(8) instructionAddressInfo; + VkDeviceFaultVendorInfoKHR32 DECLSPEC_ALIGN(8) vendorInfo; +} VkDeviceFaultInfoKHR32; + +typedef struct VkDeviceFaultShaderAbortMessageInfoKHR32 +{ + VkStructureType sType; + PTR32 pNext; + uint64_t DECLSPEC_ALIGN(8) messageDataSize; + PTR32 pMessageData; +} VkDeviceFaultShaderAbortMessageInfoKHR32; + typedef struct VkDeviceGroupBindSparseInfo32 { VkStructureType sType; @@ -5555,6 +5585,23 @@ typedef struct VkPhysicalDeviceFaultFeaturesEXT32 VkBool32 deviceFaultVendorBinary; } VkPhysicalDeviceFaultFeaturesEXT32; +typedef struct VkPhysicalDeviceFaultFeaturesKHR32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 deviceFault; + VkBool32 deviceFaultVendorBinary; + VkBool32 deviceFaultReportMasked; + VkBool32 deviceFaultDeviceLostOnMasked; +} VkPhysicalDeviceFaultFeaturesKHR32; + +typedef struct VkPhysicalDeviceFaultPropertiesKHR32 +{ + VkStructureType sType; + PTR32 pNext; + uint32_t maxDeviceFaultCount; +} VkPhysicalDeviceFaultPropertiesKHR32; + typedef struct VkPhysicalDeviceFeatures232 { VkStructureType sType; @@ -6992,6 +7039,20 @@ typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT32 VkBool32 shader64BitIndexing; } VkPhysicalDeviceShader64BitIndexingFeaturesEXT32; +typedef struct VkPhysicalDeviceShaderAbortFeaturesKHR32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 shaderAbort; +} VkPhysicalDeviceShaderAbortFeaturesKHR32; + +typedef struct VkPhysicalDeviceShaderAbortPropertiesKHR32 +{ + VkStructureType sType; + PTR32 pNext; + uint64_t DECLSPEC_ALIGN(8) maxShaderAbortMessageSize; +} VkPhysicalDeviceShaderAbortPropertiesKHR32; + typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV32 { VkStructureType sType; @@ -7061,6 +7122,13 @@ typedef struct VkPhysicalDeviceShaderClockFeaturesKHR32 VkBool32 shaderDeviceClock; } VkPhysicalDeviceShaderClockFeaturesKHR32; +typedef struct VkPhysicalDeviceShaderConstantDataFeaturesKHR32 +{ + VkStructureType sType; + PTR32 pNext; + VkBool32 shaderConstantData; +} VkPhysicalDeviceShaderConstantDataFeaturesKHR32; + typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM32 { VkStructureType sType; @@ -19194,6 +19262,20 @@ static void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_context * out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR: + { + VkPhysicalDeviceFaultFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceFaultFeaturesKHR *in_ext = (const VkPhysicalDeviceFaultFeaturesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->deviceFault = in_ext->deviceFault; + out_ext->deviceFaultVendorBinary = in_ext->deviceFaultVendorBinary; + out_ext->deviceFaultReportMasked = in_ext->deviceFaultReportMasked; + out_ext->deviceFaultDeviceLostOnMasked = in_ext->deviceFaultDeviceLostOnMasked; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: { VkPhysicalDeviceFeatures2 *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -20396,6 +20478,17 @@ static void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_context * out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR: + { + VkPhysicalDeviceShaderAbortFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderAbortFeaturesKHR *in_ext = (const VkPhysicalDeviceShaderAbortFeaturesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->shaderAbort = in_ext->shaderAbort; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV: { VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -20488,6 +20581,17 @@ static void convert_VkDeviceCreateInfo_win64_to_host(struct conversion_context * out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR: + { + VkPhysicalDeviceShaderConstantDataFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderConstantDataFeaturesKHR *in_ext = (const VkPhysicalDeviceShaderConstantDataFeaturesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->shaderConstantData = in_ext->shaderConstantData; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: { VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -21494,7 +21598,7 @@ static void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_context * out->queueCreateInfoCount = in->queueCreateInfoCount; out->pQueueCreateInfos = convert_VkDeviceQueueCreateInfo_array_win32_to_host(ctx, (const VkDeviceQueueCreateInfo32 *)UlongToPtr(in->pQueueCreateInfos), in->queueCreateInfoCount); out->enabledLayerCount = in->enabledLayerCount; - out->ppEnabledLayerNames = convert_char_pointer_array_win32_to_host(ctx, (const PTR32 *)UlongToPtr(in->ppEnabledLayerNames), in->enabledLayerCount); + out->ppEnabledLayerNames = UlongToPtr(in->ppEnabledLayerNames); out->enabledExtensionCount = in->enabledExtensionCount; out->ppEnabledExtensionNames = convert_char_pointer_array_win32_to_host(ctx, (const PTR32 *)UlongToPtr(in->ppEnabledExtensionNames), in->enabledExtensionCount); out->pEnabledFeatures = UlongToPtr(in->pEnabledFeatures); @@ -22360,6 +22464,20 @@ static void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_context * out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR: + { + VkPhysicalDeviceFaultFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceFaultFeaturesKHR32 *in_ext = (const VkPhysicalDeviceFaultFeaturesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->deviceFault = in_ext->deviceFault; + out_ext->deviceFaultVendorBinary = in_ext->deviceFaultVendorBinary; + out_ext->deviceFaultReportMasked = in_ext->deviceFaultReportMasked; + out_ext->deviceFaultDeviceLostOnMasked = in_ext->deviceFaultDeviceLostOnMasked; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: { VkPhysicalDeviceFeatures2 *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -23562,6 +23680,17 @@ static void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_context * out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR: + { + VkPhysicalDeviceShaderAbortFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderAbortFeaturesKHR32 *in_ext = (const VkPhysicalDeviceShaderAbortFeaturesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->shaderAbort = in_ext->shaderAbort; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV: { VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -23654,6 +23783,17 @@ static void convert_VkDeviceCreateInfo_win32_to_host(struct conversion_context * out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR: + { + VkPhysicalDeviceShaderConstantDataFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderConstantDataFeaturesKHR32 *in_ext = (const VkPhysicalDeviceShaderConstantDataFeaturesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->shaderConstantData = in_ext->shaderConstantData; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: { VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -30048,6 +30188,66 @@ static void convert_VkDeviceBufferMemoryRequirements_win32_to_host(struct conver FIXME("Unexpected pNext\n"); } +static void convert_VkDeviceFaultDebugInfoKHR_win32_to_host(struct conversion_context *ctx, const VkDeviceFaultDebugInfoKHR32 *in, VkDeviceFaultDebugInfoKHR *out) +{ + const VkBaseInStructure32 *in_header; + VkBaseOutStructure *out_header = (void *)out; + + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + + for (in_header = UlongToPtr(in->pNext); in_header; in_header = UlongToPtr(in_header->pNext)) + { + switch (in_header->sType) + { + case VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR: + { + VkDeviceFaultShaderAbortMessageInfoKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + out_ext->sType = VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR; + 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; + } + } +} + +static void convert_VkDeviceFaultDebugInfoKHR_host_to_win32(const VkDeviceFaultDebugInfoKHR *in, VkDeviceFaultDebugInfoKHR32 *out) +{ + const VkBaseInStructure *in_header; + VkBaseOutStructure32 *out_header = (void *)out; + + if (!in) return; + + out->vendorBinarySize = in->vendorBinarySize; + out->pVendorBinaryData = PtrToUlong(in->pVendorBinaryData); + + for (in_header = (void *)in->pNext; in_header; in_header = (void *)in_header->pNext) + { + switch (in_header->sType) + { + case VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR: + { + VkDeviceFaultShaderAbortMessageInfoKHR32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR); + const VkDeviceFaultShaderAbortMessageInfoKHR *in_ext = (const VkDeviceFaultShaderAbortMessageInfoKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR; + out_ext->messageDataSize = in_ext->messageDataSize; + out_ext->pMessageData = PtrToUlong(in_ext->pMessageData); + out_header = (void *)out_ext; + break; + } + default: + break; + } + } +} + static void convert_VkDeviceFaultCountsEXT_win32_to_host(const VkDeviceFaultCountsEXT32 *in, VkDeviceFaultCountsEXT *out) { if (!in) return; @@ -30061,9 +30261,9 @@ static void convert_VkDeviceFaultCountsEXT_win32_to_host(const VkDeviceFaultCoun FIXME("Unexpected pNext\n"); } -static VkDeviceFaultAddressInfoEXT *convert_VkDeviceFaultAddressInfoEXT_array_win32_to_host(struct conversion_context *ctx, const VkDeviceFaultAddressInfoEXT32 *in, uint32_t count) +static VkDeviceFaultAddressInfoKHR *convert_VkDeviceFaultAddressInfoKHR_array_win32_to_host(struct conversion_context *ctx, const VkDeviceFaultAddressInfoKHR32 *in, uint32_t count) { - VkDeviceFaultAddressInfoEXT *out; + VkDeviceFaultAddressInfoKHR *out; if (!in || !count) return NULL; out = conversion_context_alloc(ctx, count * sizeof(*out)); @@ -30071,9 +30271,9 @@ static VkDeviceFaultAddressInfoEXT *convert_VkDeviceFaultAddressInfoEXT_array_wi return out; } -static VkDeviceFaultVendorInfoEXT *convert_VkDeviceFaultVendorInfoEXT_array_win32_to_host(struct conversion_context *ctx, const VkDeviceFaultVendorInfoEXT32 *in, uint32_t count) +static VkDeviceFaultVendorInfoKHR *convert_VkDeviceFaultVendorInfoKHR_array_win32_to_host(struct conversion_context *ctx, const VkDeviceFaultVendorInfoKHR32 *in, uint32_t count) { - VkDeviceFaultVendorInfoEXT *out; + VkDeviceFaultVendorInfoKHR *out; if (!in || !count) return NULL; out = conversion_context_alloc(ctx, count * sizeof(*out)); @@ -30087,8 +30287,8 @@ static void convert_VkDeviceFaultInfoEXT_win32_to_host(struct conversion_context out->sType = in->sType; out->pNext = NULL; - out->pAddressInfos = convert_VkDeviceFaultAddressInfoEXT_array_win32_to_host(ctx, (VkDeviceFaultAddressInfoEXT32 *)UlongToPtr(in->pAddressInfos), 1); - out->pVendorInfos = convert_VkDeviceFaultVendorInfoEXT_array_win32_to_host(ctx, (VkDeviceFaultVendorInfoEXT32 *)UlongToPtr(in->pVendorInfos), 1); + out->pAddressInfos = convert_VkDeviceFaultAddressInfoKHR_array_win32_to_host(ctx, (VkDeviceFaultAddressInfoKHR32 *)UlongToPtr(in->pAddressInfos), 1); + out->pVendorInfos = convert_VkDeviceFaultVendorInfoKHR_array_win32_to_host(ctx, (VkDeviceFaultVendorInfoKHR32 *)UlongToPtr(in->pVendorInfos), 1); if (in->pNext) FIXME("Unexpected pNext\n"); } @@ -30102,7 +30302,7 @@ static void convert_VkDeviceFaultCountsEXT_host_to_win32(const VkDeviceFaultCoun out->vendorBinarySize = in->vendorBinarySize; } -static void convert_VkDeviceFaultAddressInfoEXT_host_to_win32(const VkDeviceFaultAddressInfoEXT *in, VkDeviceFaultAddressInfoEXT32 *out) +static void convert_VkDeviceFaultAddressInfoKHR_host_to_win32(const VkDeviceFaultAddressInfoKHR *in, VkDeviceFaultAddressInfoKHR32 *out) { if (!in) return; @@ -30111,7 +30311,7 @@ static void convert_VkDeviceFaultAddressInfoEXT_host_to_win32(const VkDeviceFaul out->addressPrecision = in->addressPrecision; } -static void convert_VkDeviceFaultAddressInfoEXT_array_host_to_win32(const VkDeviceFaultAddressInfoEXT *in, VkDeviceFaultAddressInfoEXT32 *out, uint32_t count) +static void convert_VkDeviceFaultAddressInfoKHR_array_host_to_win32(const VkDeviceFaultAddressInfoKHR *in, VkDeviceFaultAddressInfoKHR32 *out, uint32_t count) { unsigned int i; @@ -30119,11 +30319,11 @@ static void convert_VkDeviceFaultAddressInfoEXT_array_host_to_win32(const VkDevi for (i = 0; i < count; i++) { - convert_VkDeviceFaultAddressInfoEXT_host_to_win32(&in[i], &out[i]); + convert_VkDeviceFaultAddressInfoKHR_host_to_win32(&in[i], &out[i]); } } -static void convert_VkDeviceFaultVendorInfoEXT_host_to_win32(const VkDeviceFaultVendorInfoEXT *in, VkDeviceFaultVendorInfoEXT32 *out) +static void convert_VkDeviceFaultVendorInfoKHR_host_to_win32(const VkDeviceFaultVendorInfoKHR *in, VkDeviceFaultVendorInfoKHR32 *out) { if (!in) return; @@ -30132,7 +30332,7 @@ static void convert_VkDeviceFaultVendorInfoEXT_host_to_win32(const VkDeviceFault out->vendorFaultData = in->vendorFaultData; } -static void convert_VkDeviceFaultVendorInfoEXT_array_host_to_win32(const VkDeviceFaultVendorInfoEXT *in, VkDeviceFaultVendorInfoEXT32 *out, uint32_t count) +static void convert_VkDeviceFaultVendorInfoKHR_array_host_to_win32(const VkDeviceFaultVendorInfoKHR *in, VkDeviceFaultVendorInfoKHR32 *out, uint32_t count) { unsigned int i; @@ -30140,7 +30340,7 @@ static void convert_VkDeviceFaultVendorInfoEXT_array_host_to_win32(const VkDevic for (i = 0; i < count; i++) { - convert_VkDeviceFaultVendorInfoEXT_host_to_win32(&in[i], &out[i]); + convert_VkDeviceFaultVendorInfoKHR_host_to_win32(&in[i], &out[i]); } } @@ -30149,11 +30349,61 @@ static void convert_VkDeviceFaultInfoEXT_host_to_win32(const VkDeviceFaultInfoEX if (!in) return; memcpy(out->description, in->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)); - convert_VkDeviceFaultAddressInfoEXT_array_host_to_win32(in->pAddressInfos, (VkDeviceFaultAddressInfoEXT32 *)UlongToPtr(out->pAddressInfos), 1); - convert_VkDeviceFaultVendorInfoEXT_array_host_to_win32(in->pVendorInfos, (VkDeviceFaultVendorInfoEXT32 *)UlongToPtr(out->pVendorInfos), 1); + convert_VkDeviceFaultAddressInfoKHR_array_host_to_win32(in->pAddressInfos, (VkDeviceFaultAddressInfoKHR32 *)UlongToPtr(out->pAddressInfos), 1); + convert_VkDeviceFaultVendorInfoKHR_array_host_to_win32(in->pVendorInfos, (VkDeviceFaultVendorInfoKHR32 *)UlongToPtr(out->pVendorInfos), 1); out->pVendorBinaryData = PtrToUlong(in->pVendorBinaryData); } +static void convert_VkDeviceFaultInfoKHR_win32_to_host(const VkDeviceFaultInfoKHR32 *in, VkDeviceFaultInfoKHR *out) +{ + if (!in) return; + + out->sType = in->sType; + out->pNext = NULL; + if (in->pNext) + FIXME("Unexpected pNext\n"); +} + +static VkDeviceFaultInfoKHR *convert_VkDeviceFaultInfoKHR_array_win32_to_host(struct conversion_context *ctx, const VkDeviceFaultInfoKHR32 *in, uint32_t count) +{ + VkDeviceFaultInfoKHR *out; + unsigned int i; + + if (!in || !count) return NULL; + + out = conversion_context_alloc(ctx, count * sizeof(*out)); + for (i = 0; i < count; i++) + { + convert_VkDeviceFaultInfoKHR_win32_to_host(&in[i], &out[i]); + } + + return out; +} + +static void convert_VkDeviceFaultInfoKHR_host_to_win32(const VkDeviceFaultInfoKHR *in, VkDeviceFaultInfoKHR32 *out) +{ + if (!in) return; + + out->flags = in->flags; + out->groupId = in->groupId; + memcpy(out->description, in->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char)); + convert_VkDeviceFaultAddressInfoKHR_host_to_win32(&in->faultAddressInfo, &out->faultAddressInfo); + convert_VkDeviceFaultAddressInfoKHR_host_to_win32(&in->instructionAddressInfo, &out->instructionAddressInfo); + convert_VkDeviceFaultVendorInfoKHR_host_to_win32(&in->vendorInfo, &out->vendorInfo); +} + +static void convert_VkDeviceFaultInfoKHR_array_host_to_win32(const VkDeviceFaultInfoKHR *in, VkDeviceFaultInfoKHR32 *out, uint32_t count) +{ + unsigned int i; + + if (!in) return; + + for (i = 0; i < count; i++) + { + convert_VkDeviceFaultInfoKHR_host_to_win32(&in[i], &out[i]); + } +} + static void convert_VkDeviceGroupPresentCapabilitiesKHR_win32_to_host(const VkDeviceGroupPresentCapabilitiesKHR32 *in, VkDeviceGroupPresentCapabilitiesKHR *out) { if (!in) return; @@ -32390,6 +32640,20 @@ static void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR: + { + VkPhysicalDeviceFaultFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceFaultFeaturesKHR32 *in_ext = (const VkPhysicalDeviceFaultFeaturesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->deviceFault = in_ext->deviceFault; + out_ext->deviceFaultVendorBinary = in_ext->deviceFaultVendorBinary; + out_ext->deviceFaultReportMasked = in_ext->deviceFaultReportMasked; + out_ext->deviceFaultDeviceLostOnMasked = in_ext->deviceFaultDeviceLostOnMasked; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM: { VkPhysicalDeviceFormatPackFeaturesARM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -33581,6 +33845,17 @@ static void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR: + { + VkPhysicalDeviceShaderAbortFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderAbortFeaturesKHR32 *in_ext = (const VkPhysicalDeviceShaderAbortFeaturesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->shaderAbort = in_ext->shaderAbort; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV: { VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -33673,6 +33948,17 @@ static void convert_VkPhysicalDeviceFeatures2_win32_to_host(struct conversion_co out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR: + { + VkPhysicalDeviceShaderConstantDataFeaturesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderConstantDataFeaturesKHR32 *in_ext = (const VkPhysicalDeviceShaderConstantDataFeaturesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR; + out_ext->pNext = NULL; + out_ext->shaderConstantData = in_ext->shaderConstantData; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: { VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -35236,6 +35522,18 @@ static void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysicalDevi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR: + { + VkPhysicalDeviceFaultFeaturesKHR32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR); + const VkPhysicalDeviceFaultFeaturesKHR *in_ext = (const VkPhysicalDeviceFaultFeaturesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR; + out_ext->deviceFault = in_ext->deviceFault; + out_ext->deviceFaultVendorBinary = in_ext->deviceFaultVendorBinary; + out_ext->deviceFaultReportMasked = in_ext->deviceFaultReportMasked; + out_ext->deviceFaultDeviceLostOnMasked = in_ext->deviceFaultDeviceLostOnMasked; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM: { VkPhysicalDeviceFormatPackFeaturesARM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM); @@ -36219,6 +36517,15 @@ static void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysicalDevi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR: + { + VkPhysicalDeviceShaderAbortFeaturesKHR32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR); + const VkPhysicalDeviceShaderAbortFeaturesKHR *in_ext = (const VkPhysicalDeviceShaderAbortFeaturesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR; + out_ext->shaderAbort = in_ext->shaderAbort; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV: { VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV); @@ -36299,6 +36606,15 @@ static void convert_VkPhysicalDeviceFeatures2_host_to_win32(const VkPhysicalDevi out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR: + { + VkPhysicalDeviceShaderConstantDataFeaturesKHR32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR); + const VkPhysicalDeviceShaderConstantDataFeaturesKHR *in_ext = (const VkPhysicalDeviceShaderConstantDataFeaturesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR; + out_ext->shaderConstantData = in_ext->shaderConstantData; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: { VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM); @@ -38165,6 +38481,15 @@ static void convert_VkPhysicalDeviceProperties2_win32_to_host(struct conversion_ out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR: + { + VkPhysicalDeviceFaultPropertiesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR; + out_ext->pNext = NULL; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: { VkPhysicalDeviceFloatControlsProperties *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -38661,6 +38986,17 @@ static void convert_VkPhysicalDeviceProperties2_win32_to_host(struct conversion_ out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR: + { + VkPhysicalDeviceShaderAbortPropertiesKHR *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); + const VkPhysicalDeviceShaderAbortPropertiesKHR32 *in_ext = (const VkPhysicalDeviceShaderAbortPropertiesKHR32 *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR; + out_ext->pNext = NULL; + out_ext->maxShaderAbortMessageSize = in_ext->maxShaderAbortMessageSize; + out_header->pNext = (void *)out_ext; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: { VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM *out_ext = conversion_context_alloc(ctx, sizeof(*out_ext)); @@ -39321,6 +39657,15 @@ static void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhysicalDe out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR: + { + VkPhysicalDeviceFaultPropertiesKHR32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR); + const VkPhysicalDeviceFaultPropertiesKHR *in_ext = (const VkPhysicalDeviceFaultPropertiesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR; + out_ext->maxDeviceFaultCount = in_ext->maxDeviceFaultCount; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: { VkPhysicalDeviceFloatControlsProperties32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES); @@ -39972,6 +40317,15 @@ static void convert_VkPhysicalDeviceProperties2_host_to_win32(const VkPhysicalDe out_header = (void *)out_ext; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR: + { + VkPhysicalDeviceShaderAbortPropertiesKHR32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR); + const VkPhysicalDeviceShaderAbortPropertiesKHR *in_ext = (const VkPhysicalDeviceShaderAbortPropertiesKHR *)in_header; + out_ext->sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR; + out_ext->maxShaderAbortMessageSize = in_ext->maxShaderAbortMessageSize; + out_header = (void *)out_ext; + break; + } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: { VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM32 *out_ext = find_next_struct32(out_header, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM); @@ -58409,6 +58763,40 @@ static NTSTATUS thunk32_vkGetDeviceCombinedImageSamplerIndexNVX(void *args) return STATUS_SUCCESS; } +#ifdef _WIN64 +static NTSTATUS thunk64_vkGetDeviceFaultDebugInfoKHR(void *args) +{ + struct vkGetDeviceFaultDebugInfoKHR_params *params = args; + + TRACE("%p, %p\n", params->device, params->pDebugInfo); + + params->result = vulkan_device_from_handle(params->device)->p_vkGetDeviceFaultDebugInfoKHR(vulkan_device_from_handle(params->device)->host.device, params->pDebugInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkGetDeviceFaultDebugInfoKHR(void *args) +{ + struct + { + PTR32 device; + PTR32 pDebugInfo; + VkResult result; + } *params = args; + VkDeviceFaultDebugInfoKHR pDebugInfo_host; + struct conversion_context local_ctx; + struct conversion_context *ctx = &local_ctx; + + TRACE("%#x, %#x\n", params->device, params->pDebugInfo); + + init_conversion_context(ctx); + convert_VkDeviceFaultDebugInfoKHR_win32_to_host(ctx, (VkDeviceFaultDebugInfoKHR32 *)UlongToPtr(params->pDebugInfo), &pDebugInfo_host); + params->result = vulkan_device_from_handle((VkDevice)UlongToPtr(params->device))->p_vkGetDeviceFaultDebugInfoKHR(vulkan_device_from_handle((VkDevice)UlongToPtr(params->device))->host.device, &pDebugInfo_host); + convert_VkDeviceFaultDebugInfoKHR_host_to_win32(&pDebugInfo_host, (VkDeviceFaultDebugInfoKHR32 *)UlongToPtr(params->pDebugInfo)); + free_conversion_context(ctx); + return STATUS_SUCCESS; +} + #ifdef _WIN64 static NTSTATUS thunk64_vkGetDeviceFaultInfoEXT(void *args) { @@ -58451,6 +58839,42 @@ static NTSTATUS thunk32_vkGetDeviceFaultInfoEXT(void *args) return STATUS_SUCCESS; } +#ifdef _WIN64 +static NTSTATUS thunk64_vkGetDeviceFaultReportsKHR(void *args) +{ + struct vkGetDeviceFaultReportsKHR_params *params = args; + + TRACE("%p, 0x%s, %p, %p\n", params->device, wine_dbgstr_longlong(params->timeout), params->pFaultCounts, params->pFaultInfo); + + params->result = vulkan_device_from_handle(params->device)->p_vkGetDeviceFaultReportsKHR(vulkan_device_from_handle(params->device)->host.device, params->timeout, params->pFaultCounts, params->pFaultInfo); + return STATUS_SUCCESS; +} +#endif /* _WIN64 */ + +static NTSTATUS thunk32_vkGetDeviceFaultReportsKHR(void *args) +{ + struct + { + PTR32 device; + uint64_t DECLSPEC_ALIGN(8) timeout; + PTR32 pFaultCounts; + PTR32 pFaultInfo; + VkResult result; + } *params = args; + VkDeviceFaultInfoKHR *pFaultInfo_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->timeout), params->pFaultCounts, params->pFaultInfo); + + init_conversion_context(ctx); + pFaultInfo_host = convert_VkDeviceFaultInfoKHR_array_win32_to_host(ctx, (VkDeviceFaultInfoKHR32 *)UlongToPtr(params->pFaultInfo), *(uint32_t *)UlongToPtr(params->pFaultCounts)); + params->result = vulkan_device_from_handle((VkDevice)UlongToPtr(params->device))->p_vkGetDeviceFaultReportsKHR(vulkan_device_from_handle((VkDevice)UlongToPtr(params->device))->host.device, params->timeout, (uint32_t *)UlongToPtr(params->pFaultCounts), pFaultInfo_host); + convert_VkDeviceFaultInfoKHR_array_host_to_win32(pFaultInfo_host, (VkDeviceFaultInfoKHR32 *)UlongToPtr(params->pFaultInfo), *(uint32_t *)UlongToPtr(params->pFaultCounts)); + free_conversion_context(ctx); + return STATUS_SUCCESS; +} + #ifdef _WIN64 static NTSTATUS thunk64_vkGetDeviceGroupPeerMemoryFeatures(void *args) { @@ -66001,7 +66425,9 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk64_vkGetDeviceBufferMemoryRequirements, thunk64_vkGetDeviceBufferMemoryRequirementsKHR, thunk64_vkGetDeviceCombinedImageSamplerIndexNVX, + thunk64_vkGetDeviceFaultDebugInfoKHR, thunk64_vkGetDeviceFaultInfoEXT, + thunk64_vkGetDeviceFaultReportsKHR, thunk64_vkGetDeviceGroupPeerMemoryFeatures, thunk64_vkGetDeviceGroupPeerMemoryFeaturesKHR, thunk64_vkGetDeviceGroupPresentCapabilitiesKHR, @@ -66731,7 +67157,9 @@ const unixlib_entry_t __wine_unix_call_funcs[] = thunk32_vkGetDeviceBufferMemoryRequirements, thunk32_vkGetDeviceBufferMemoryRequirementsKHR, thunk32_vkGetDeviceCombinedImageSamplerIndexNVX, + thunk32_vkGetDeviceFaultDebugInfoKHR, thunk32_vkGetDeviceFaultInfoEXT, + thunk32_vkGetDeviceFaultReportsKHR, thunk32_vkGetDeviceGroupPeerMemoryFeatures, thunk32_vkGetDeviceGroupPeerMemoryFeaturesKHR, thunk32_vkGetDeviceGroupPresentCapabilitiesKHR, diff --git a/dlls/winevulkan/winevulkan.json b/dlls/winevulkan/winevulkan.json index 4f809f8a132..121873b64f7 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.4.346" + "api_version": "1.4.347" } } diff --git a/include/wine/vulkan.h b/include/wine/vulkan.h index 67b8cbd61b5..b0e3fe8e441 100644 --- a/include/wine/vulkan.h +++ b/include/wine/vulkan.h @@ -121,7 +121,7 @@ struct OH_NativeBuffer; #endif #endif #define VK_FALSE 0 -#define VK_HEADER_VERSION 346 +#define VK_HEADER_VERSION 347 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) #define VK_LOD_CLAMP_NONE 1000.0F #define VK_LUID_SIZE 8 @@ -642,6 +642,8 @@ typedef void* VkRemoteAddressNV; #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 #define VK_KHR_DEVICE_ADDRESS_COMMANDS_EXTENSION_NAME "VK_KHR_device_address_commands" #define VK_KHR_DEVICE_ADDRESS_COMMANDS_SPEC_VERSION 1 +#define VK_KHR_DEVICE_FAULT_EXTENSION_NAME "VK_KHR_device_fault" +#define VK_KHR_DEVICE_FAULT_SPEC_VERSION 1 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" @@ -776,12 +778,16 @@ typedef void* VkRemoteAddressNV; #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts" #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1 +#define VK_KHR_SHADER_ABORT_EXTENSION_NAME "VK_KHR_shader_abort" +#define VK_KHR_SHADER_ABORT_SPEC_VERSION 1 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 #define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16" #define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock" #define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1 +#define VK_KHR_SHADER_CONSTANT_DATA_EXTENSION_NAME "VK_KHR_shader_constant_data" +#define VK_KHR_SHADER_CONSTANT_DATA_SPEC_VERSION 1 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume" @@ -1218,6 +1224,7 @@ typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFl typedef VkFlags VkDeviceAddressBindingFlagsEXT; typedef VkFlags VkDeviceCreateFlags; typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; +typedef VkFlags VkDeviceFaultFlagsKHR; typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; typedef VkFlags VkEventCreateFlags; typedef VkFlags VkExternalFenceFeatureFlags; @@ -2849,23 +2856,44 @@ typedef enum VkDeviceDiagnosticsConfigFlagBitsNV VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_NV_MAX_ENUM = 0x7fffffff, } VkDeviceDiagnosticsConfigFlagBitsNV; -typedef enum VkDeviceFaultAddressTypeEXT -{ - VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0, - VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1, - VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2, - VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3, - VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4, - VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5, - VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6, - VK_DEVICE_FAULT_ADDRESS_TYPE_EXT_MAX_ENUM = 0x7fffffff, -} VkDeviceFaultAddressTypeEXT; - -typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT -{ - VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1, - VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_EXT_MAX_ENUM = 0x7fffffff, -} VkDeviceFaultVendorBinaryHeaderVersionEXT; +typedef enum VkDeviceFaultAddressTypeKHR +{ + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR = 0, + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR = 1, + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR = 2, + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR = 3, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR = 4, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR = 5, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR = 6, + VK_DEVICE_FAULT_ADDRESS_TYPE_KHR_MAX_ENUM = 0x7fffffff, + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR, + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR, + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR, + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR, +} VkDeviceFaultAddressTypeKHR; +typedef VkDeviceFaultAddressTypeKHR VkDeviceFaultAddressTypeEXT; + +typedef enum VkDeviceFaultFlagBitsKHR +{ + VK_DEVICE_FAULT_FLAG_DEVICE_LOST_KHR = 0x00000001, + VK_DEVICE_FAULT_FLAG_MEMORY_ADDRESS_KHR = 0x00000002, + VK_DEVICE_FAULT_FLAG_INSTRUCTION_ADDRESS_KHR = 0x00000004, + VK_DEVICE_FAULT_FLAG_VENDOR_KHR = 0x00000008, + VK_DEVICE_FAULT_FLAG_WATCHDOG_TIMEOUT_KHR = 0x00000010, + VK_DEVICE_FAULT_FLAG_OVERFLOW_KHR = 0x00000020, + VK_DEVICE_FAULT_FLAG_BITS_KHR_MAX_ENUM = 0x7fffffff, +} VkDeviceFaultFlagBitsKHR; + +typedef enum VkDeviceFaultVendorBinaryHeaderVersionKHR +{ + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR = 1, + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_KHR_MAX_ENUM = 0x7fffffff, + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR, +} VkDeviceFaultVendorBinaryHeaderVersionKHR; +typedef VkDeviceFaultVendorBinaryHeaderVersionKHR VkDeviceFaultVendorBinaryHeaderVersionEXT; typedef enum VkDeviceGroupPresentModeFlagBitsKHR { @@ -5924,9 +5952,13 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR = 1000231000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000, VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001, VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR = 1000233000, + VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR = 1000233001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR = 1000233002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, @@ -6480,6 +6512,10 @@ typedef enum VkStructureType VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012, VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013, VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR = 1000573000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR = 1000573001, + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_KHR = 1000573002, + VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR = 1000573003, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000, VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000, @@ -9838,19 +9874,21 @@ typedef struct VkDescriptorUpdateTemplateEntry } VkDescriptorUpdateTemplateEntry; typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; -typedef struct VkDeviceFaultAddressInfoEXT +typedef struct VkDeviceFaultAddressInfoKHR { - VkDeviceFaultAddressTypeEXT addressType; + VkDeviceFaultAddressTypeKHR addressType; VkDeviceAddress WINE_VK_ALIGN(8) reportedAddress; VkDeviceSize WINE_VK_ALIGN(8) addressPrecision; -} VkDeviceFaultAddressInfoEXT; +} VkDeviceFaultAddressInfoKHR; +typedef VkDeviceFaultAddressInfoKHR VkDeviceFaultAddressInfoEXT; -typedef struct VkDeviceFaultVendorInfoEXT +typedef struct VkDeviceFaultVendorInfoKHR { char description[VK_MAX_DESCRIPTION_SIZE]; uint64_t WINE_VK_ALIGN(8) vendorFaultCode; uint64_t WINE_VK_ALIGN(8) vendorFaultData; -} VkDeviceFaultVendorInfoEXT; +} VkDeviceFaultVendorInfoKHR; +typedef VkDeviceFaultVendorInfoKHR VkDeviceFaultVendorInfoEXT; typedef struct VkDeviceMemoryCopyKHR { @@ -12517,20 +12555,48 @@ typedef struct VkDeviceFaultCountsEXT VkDeviceSize WINE_VK_ALIGN(8) vendorBinarySize; } VkDeviceFaultCountsEXT; +typedef struct VkDeviceFaultDebugInfoKHR +{ + VkStructureType sType; + void *pNext; + uint32_t vendorBinarySize; + void *pVendorBinaryData; +} VkDeviceFaultDebugInfoKHR; + typedef struct VkDeviceFaultInfoEXT { VkStructureType sType; void *pNext; char description[VK_MAX_DESCRIPTION_SIZE]; - VkDeviceFaultAddressInfoEXT *pAddressInfos; - VkDeviceFaultVendorInfoEXT *pVendorInfos; + VkDeviceFaultAddressInfoKHR *pAddressInfos; + VkDeviceFaultVendorInfoKHR *pVendorInfos; void *pVendorBinaryData; } VkDeviceFaultInfoEXT; -typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT +typedef struct VkDeviceFaultInfoKHR +{ + VkStructureType sType; + void *pNext; + VkDeviceFaultFlagsKHR flags; + uint64_t WINE_VK_ALIGN(8) groupId; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkDeviceFaultAddressInfoKHR WINE_VK_ALIGN(8) faultAddressInfo; + VkDeviceFaultAddressInfoKHR WINE_VK_ALIGN(8) instructionAddressInfo; + VkDeviceFaultVendorInfoKHR WINE_VK_ALIGN(8) vendorInfo; +} VkDeviceFaultInfoKHR; + +typedef struct VkDeviceFaultShaderAbortMessageInfoKHR +{ + VkStructureType sType; + void *pNext; + uint64_t WINE_VK_ALIGN(8) messageDataSize; + void *pMessageData; +} VkDeviceFaultShaderAbortMessageInfoKHR; + +typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneKHR { uint32_t headerSize; - VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion; + VkDeviceFaultVendorBinaryHeaderVersionKHR headerVersion; uint32_t vendorID; uint32_t deviceID; uint32_t driverVersion; @@ -12540,7 +12606,8 @@ typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT uint32_t engineNameOffset; uint32_t engineVersion; uint32_t apiVersion; -} VkDeviceFaultVendorBinaryHeaderVersionOneEXT; +} VkDeviceFaultVendorBinaryHeaderVersionOneKHR; +typedef VkDeviceFaultVendorBinaryHeaderVersionOneKHR VkDeviceFaultVendorBinaryHeaderVersionOneEXT; typedef struct VkDeviceGroupBindSparseInfo { @@ -15038,6 +15105,23 @@ typedef struct VkPhysicalDeviceFaultFeaturesEXT VkBool32 deviceFaultVendorBinary; } VkPhysicalDeviceFaultFeaturesEXT; +typedef struct VkPhysicalDeviceFaultFeaturesKHR +{ + VkStructureType sType; + void *pNext; + VkBool32 deviceFault; + VkBool32 deviceFaultVendorBinary; + VkBool32 deviceFaultReportMasked; + VkBool32 deviceFaultDeviceLostOnMasked; +} VkPhysicalDeviceFaultFeaturesKHR; + +typedef struct VkPhysicalDeviceFaultPropertiesKHR +{ + VkStructureType sType; + void *pNext; + uint32_t maxDeviceFaultCount; +} VkPhysicalDeviceFaultPropertiesKHR; + typedef struct VkPhysicalDeviceFeatures2 { VkStructureType sType; @@ -16501,6 +16585,20 @@ typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT VkBool32 shader64BitIndexing; } VkPhysicalDeviceShader64BitIndexingFeaturesEXT; +typedef struct VkPhysicalDeviceShaderAbortFeaturesKHR +{ + VkStructureType sType; + void *pNext; + VkBool32 shaderAbort; +} VkPhysicalDeviceShaderAbortFeaturesKHR; + +typedef struct VkPhysicalDeviceShaderAbortPropertiesKHR +{ + VkStructureType sType; + void *pNext; + uint64_t WINE_VK_ALIGN(8) maxShaderAbortMessageSize; +} VkPhysicalDeviceShaderAbortPropertiesKHR; + typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV { VkStructureType sType; @@ -16570,6 +16668,13 @@ typedef struct VkPhysicalDeviceShaderClockFeaturesKHR VkBool32 shaderDeviceClock; } VkPhysicalDeviceShaderClockFeaturesKHR; +typedef struct VkPhysicalDeviceShaderConstantDataFeaturesKHR +{ + VkStructureType sType; + void *pNext; + VkBool32 shaderConstantData; +} VkPhysicalDeviceShaderConstantDataFeaturesKHR; + typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM { VkStructureType sType; @@ -20617,7 +20722,9 @@ typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(V typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements *pInfo, VkMemoryRequirements2 *pMemoryRequirements); typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements *pInfo, VkMemoryRequirements2 *pMemoryRequirements); typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceCombinedImageSamplerIndexNVX)(VkDevice device, uint64_t imageViewIndex, uint64_t samplerIndex); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultDebugInfoKHR)(VkDevice device, VkDeviceFaultDebugInfoKHR *pDebugInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT *pFaultCounts, VkDeviceFaultInfoEXT *pFaultInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultReportsKHR)(VkDevice device, uint64_t timeout, uint32_t *pFaultCounts, VkDeviceFaultInfoKHR *pFaultInfo); typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures); typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures); typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR *pDeviceGroupPresentCapabilities); @@ -21354,7 +21461,9 @@ void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(VkDevice device void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(VkDevice device, const VkDeviceBufferMemoryRequirements *pInfo, VkMemoryRequirements2 *pMemoryRequirements); void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(VkDevice device, const VkDeviceBufferMemoryRequirements *pInfo, VkMemoryRequirements2 *pMemoryRequirements); uint64_t VKAPI_CALL vkGetDeviceCombinedImageSamplerIndexNVX(VkDevice device, uint64_t imageViewIndex, uint64_t samplerIndex); +VkResult VKAPI_CALL vkGetDeviceFaultDebugInfoKHR(VkDevice device, VkDeviceFaultDebugInfoKHR *pDebugInfo); VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(VkDevice device, VkDeviceFaultCountsEXT *pFaultCounts, VkDeviceFaultInfoEXT *pFaultInfo); +VkResult VKAPI_CALL vkGetDeviceFaultReportsKHR(VkDevice device, uint64_t timeout, uint32_t *pFaultCounts, VkDeviceFaultInfoKHR *pFaultInfo); void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures); void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags *pPeerMemoryFeatures); VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR *pDeviceGroupPresentCapabilities); @@ -22066,7 +22175,9 @@ VkResult VKAPI_CALL vkWriteSamplerDescriptorsEXT(VkDevice device, uint32_t sampl USE_VK_FUNC(vkGetDeviceBufferMemoryRequirements) \ USE_VK_FUNC(vkGetDeviceBufferMemoryRequirementsKHR) \ USE_VK_FUNC(vkGetDeviceCombinedImageSamplerIndexNVX) \ + USE_VK_FUNC(vkGetDeviceFaultDebugInfoKHR) \ USE_VK_FUNC(vkGetDeviceFaultInfoEXT) \ + USE_VK_FUNC(vkGetDeviceFaultReportsKHR) \ USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeatures) \ USE_VK_FUNC(vkGetDeviceGroupPeerMemoryFeaturesKHR) \ USE_VK_FUNC(vkGetDeviceGroupPresentCapabilitiesKHR) \ @@ -22422,6 +22533,7 @@ VkResult VKAPI_CALL vkWriteSamplerDescriptorsEXT(VkDevice device, uint32_t sampl USE_VK_EXT(VK_KHR_depth_stencil_resolve) \ USE_VK_EXT(VK_KHR_descriptor_update_template) \ USE_VK_EXT(VK_KHR_device_address_commands) \ + USE_VK_EXT(VK_KHR_device_fault) \ USE_VK_EXT(VK_KHR_device_group) \ USE_VK_EXT(VK_KHR_draw_indirect_count) \ USE_VK_EXT(VK_KHR_driver_properties) \ @@ -22476,9 +22588,11 @@ VkResult VKAPI_CALL vkWriteSamplerDescriptorsEXT(VkDevice device, uint32_t sampl USE_VK_EXT(VK_KHR_sampler_mirror_clamp_to_edge) \ USE_VK_EXT(VK_KHR_sampler_ycbcr_conversion) \ USE_VK_EXT(VK_KHR_separate_depth_stencil_layouts) \ + USE_VK_EXT(VK_KHR_shader_abort) \ USE_VK_EXT(VK_KHR_shader_atomic_int64) \ USE_VK_EXT(VK_KHR_shader_bfloat16) \ USE_VK_EXT(VK_KHR_shader_clock) \ + USE_VK_EXT(VK_KHR_shader_constant_data) \ USE_VK_EXT(VK_KHR_shader_draw_parameters) \ USE_VK_EXT(VK_KHR_shader_expect_assume) \ USE_VK_EXT(VK_KHR_shader_float16_int8) \ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10522
This merge request was approved by Rémi Bernon. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10522
participants (3)
-
Georg Lehmann -
Georg Lehmann (@DadSchoorse) -
Rémi Bernon (@rbernon)