From a809bd9a01047f6147bee52e65879b20b294396f Mon Sep 17 00:00:00 2001 From: Mike Schuchardt Date: Fri, 6 Jun 2025 08:37:54 -0700 Subject: [PATCH] build: Update to header 1.4.317 --- CMakeLists.txt | 2 +- loader/generated/vk_layer_dispatch_table.h | 18 ++ loader/generated/vk_loader_extensions.c | 285 ++++++++++++++++++ loader/generated/vk_loader_extensions.h | 3 + loader/generated/vk_object_types.h | 20 +- loader/loader.rc | 4 +- scripts/known_good.json | 2 +- .../generated/vk_dispatch_table_helper.h | 12 + 8 files changed, 336 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab846cf92..b76c73f08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # ~~~ cmake_minimum_required(VERSION 3.22.1) -project(VULKAN_LOADER VERSION 1.4.316 LANGUAGES C) +project(VULKAN_LOADER VERSION 1.4.317 LANGUAGES C) option(CODE_COVERAGE "Enable Code Coverage" OFF) if (CODE_COVERAGE) diff --git a/loader/generated/vk_layer_dispatch_table.h b/loader/generated/vk_layer_dispatch_table.h index 58b047788..3ff60fd85 100644 --- a/loader/generated/vk_layer_dispatch_table.h +++ b/loader/generated/vk_layer_dispatch_table.h @@ -289,6 +289,9 @@ typedef struct VkLayerInstanceDispatchTable_ { PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX GetPhysicalDeviceScreenPresentationSupportQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX + // ---- VK_ARM_tensors extension commands + PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM GetPhysicalDeviceExternalTensorPropertiesARM; + // ---- VK_NV_optical_flow extension commands PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV GetPhysicalDeviceOpticalFlowImageFormatsNV; @@ -707,6 +710,9 @@ typedef struct VkLayerDispatchTable_ { PFN_vkGetDeviceImageSubresourceLayoutKHR GetDeviceImageSubresourceLayoutKHR; PFN_vkGetImageSubresourceLayout2KHR GetImageSubresourceLayout2KHR; + // ---- VK_KHR_present_wait2 extension commands + PFN_vkWaitForPresent2KHR WaitForPresent2KHR; + // ---- VK_KHR_pipeline_binary extension commands PFN_vkCreatePipelineBinariesKHR CreatePipelineBinariesKHR; PFN_vkDestroyPipelineBinaryKHR DestroyPipelineBinaryKHR; @@ -1153,6 +1159,18 @@ typedef struct VkLayerDispatchTable_ { PFN_vkCmdSetRepresentativeFragmentTestEnableNV CmdSetRepresentativeFragmentTestEnableNV; PFN_vkCmdSetCoverageReductionModeNV CmdSetCoverageReductionModeNV; + // ---- VK_ARM_tensors extension commands + PFN_vkCreateTensorARM CreateTensorARM; + PFN_vkDestroyTensorARM DestroyTensorARM; + PFN_vkCreateTensorViewARM CreateTensorViewARM; + PFN_vkDestroyTensorViewARM DestroyTensorViewARM; + PFN_vkGetTensorMemoryRequirementsARM GetTensorMemoryRequirementsARM; + PFN_vkBindTensorMemoryARM BindTensorMemoryARM; + PFN_vkGetDeviceTensorMemoryRequirementsARM GetDeviceTensorMemoryRequirementsARM; + PFN_vkCmdCopyTensorARM CmdCopyTensorARM; + PFN_vkGetTensorOpaqueCaptureDescriptorDataARM GetTensorOpaqueCaptureDescriptorDataARM; + PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM GetTensorViewOpaqueCaptureDescriptorDataARM; + // ---- VK_EXT_shader_module_identifier extension commands PFN_vkGetShaderModuleIdentifierEXT GetShaderModuleIdentifierEXT; PFN_vkGetShaderModuleCreateInfoIdentifierEXT GetShaderModuleCreateInfoIdentifierEXT; diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c index 0a8a15677..6a7e2ed5c 100644 --- a/loader/generated/vk_loader_extensions.c +++ b/loader/generated/vk_loader_extensions.c @@ -310,6 +310,9 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, LOOKUP_GIPA(GetPhysicalDeviceScreenPresentationSupportQNX); #endif // VK_USE_PLATFORM_SCREEN_QNX + // ---- VK_ARM_tensors extension commands + LOOKUP_GIPA(GetPhysicalDeviceExternalTensorPropertiesARM); + // ---- VK_NV_optical_flow extension commands LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV); @@ -745,6 +748,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gdpa(dev, "vkGetDeviceImageSubresourceLayoutKHR"); table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gdpa(dev, "vkGetImageSubresourceLayout2KHR"); + // ---- VK_KHR_present_wait2 extension commands + table->WaitForPresent2KHR = (PFN_vkWaitForPresent2KHR)gdpa(dev, "vkWaitForPresent2KHR"); + // ---- VK_KHR_pipeline_binary extension commands table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gdpa(dev, "vkCreatePipelineBinariesKHR"); table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gdpa(dev, "vkDestroyPipelineBinaryKHR"); @@ -1191,6 +1197,18 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV"); table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV"); + // ---- VK_ARM_tensors extension commands + table->CreateTensorARM = (PFN_vkCreateTensorARM)gdpa(dev, "vkCreateTensorARM"); + table->DestroyTensorARM = (PFN_vkDestroyTensorARM)gdpa(dev, "vkDestroyTensorARM"); + table->CreateTensorViewARM = (PFN_vkCreateTensorViewARM)gdpa(dev, "vkCreateTensorViewARM"); + table->DestroyTensorViewARM = (PFN_vkDestroyTensorViewARM)gdpa(dev, "vkDestroyTensorViewARM"); + table->GetTensorMemoryRequirementsARM = (PFN_vkGetTensorMemoryRequirementsARM)gdpa(dev, "vkGetTensorMemoryRequirementsARM"); + table->BindTensorMemoryARM = (PFN_vkBindTensorMemoryARM)gdpa(dev, "vkBindTensorMemoryARM"); + table->GetDeviceTensorMemoryRequirementsARM = (PFN_vkGetDeviceTensorMemoryRequirementsARM)gdpa(dev, "vkGetDeviceTensorMemoryRequirementsARM"); + table->CmdCopyTensorARM = (PFN_vkCmdCopyTensorARM)gdpa(dev, "vkCmdCopyTensorARM"); + table->GetTensorOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorOpaqueCaptureDescriptorDataARM"); + table->GetTensorViewOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorViewOpaqueCaptureDescriptorDataARM"); + // ---- VK_EXT_shader_module_identifier extension commands table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT"); table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT"); @@ -1558,6 +1576,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX"); #endif // VK_USE_PLATFORM_SCREEN_QNX + // ---- VK_ARM_tensors extension commands + table->GetPhysicalDeviceExternalTensorPropertiesARM = (PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)gpa(inst, "vkGetPhysicalDeviceExternalTensorPropertiesARM"); + // ---- VK_NV_optical_flow extension commands table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); @@ -2666,6 +2687,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis if (!strcmp(name, "GetDeviceImageSubresourceLayoutKHR")) return (void *)table->GetDeviceImageSubresourceLayoutKHR; if (!strcmp(name, "GetImageSubresourceLayout2KHR")) return (void *)table->GetImageSubresourceLayout2KHR; + // ---- VK_KHR_present_wait2 extension commands + if (!strcmp(name, "WaitForPresent2KHR")) return (void *)table->WaitForPresent2KHR; + // ---- VK_KHR_pipeline_binary extension commands if (!strcmp(name, "CreatePipelineBinariesKHR")) return (void *)table->CreatePipelineBinariesKHR; if (!strcmp(name, "DestroyPipelineBinaryKHR")) return (void *)table->DestroyPipelineBinaryKHR; @@ -3112,6 +3136,18 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV; if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV; + // ---- VK_ARM_tensors extension commands + if (!strcmp(name, "CreateTensorARM")) return (void *)table->CreateTensorARM; + if (!strcmp(name, "DestroyTensorARM")) return (void *)table->DestroyTensorARM; + if (!strcmp(name, "CreateTensorViewARM")) return (void *)table->CreateTensorViewARM; + if (!strcmp(name, "DestroyTensorViewARM")) return (void *)table->DestroyTensorViewARM; + if (!strcmp(name, "GetTensorMemoryRequirementsARM")) return (void *)table->GetTensorMemoryRequirementsARM; + if (!strcmp(name, "BindTensorMemoryARM")) return (void *)table->BindTensorMemoryARM; + if (!strcmp(name, "GetDeviceTensorMemoryRequirementsARM")) return (void *)table->GetDeviceTensorMemoryRequirementsARM; + if (!strcmp(name, "CmdCopyTensorARM")) return (void *)table->CmdCopyTensorARM; + if (!strcmp(name, "GetTensorOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorOpaqueCaptureDescriptorDataARM; + if (!strcmp(name, "GetTensorViewOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorViewOpaqueCaptureDescriptorDataARM; + // ---- VK_EXT_shader_module_identifier extension commands if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT; if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT; @@ -3484,6 +3520,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX + // ---- VK_ARM_tensors extension commands + if (!strcmp(name, "GetPhysicalDeviceExternalTensorPropertiesARM")) return (void *)table->GetPhysicalDeviceExternalTensorPropertiesARM; + // ---- VK_NV_optical_flow extension commands if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV; @@ -5110,6 +5149,23 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR( } +// ---- VK_KHR_present_wait2 extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL WaitForPresent2KHR( + VkDevice device, + VkSwapchainKHR swapchain, + const VkPresentWait2InfoKHR* pPresentWait2Info) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkWaitForPresent2KHR: Invalid device " + "[VUID-vkWaitForPresent2KHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->WaitForPresent2KHR(device, swapchain, pPresentWait2Info); +} + + // ---- VK_KHR_pipeline_binary extension trampoline/terminators VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineBinariesKHR( @@ -9492,6 +9548,180 @@ VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV( } +// ---- VK_ARM_tensors extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL CreateTensorARM( + VkDevice device, + const VkTensorCreateInfoARM* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkTensorARM* pTensor) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkCreateTensorARM: Invalid device " + "[VUID-vkCreateTensorARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->CreateTensorARM(device, pCreateInfo, pAllocator, pTensor); +} + +VKAPI_ATTR void VKAPI_CALL DestroyTensorARM( + VkDevice device, + VkTensorARM tensor, + const VkAllocationCallbacks* pAllocator) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkDestroyTensorARM: Invalid device " + "[VUID-vkDestroyTensorARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->DestroyTensorARM(device, tensor, pAllocator); +} + +VKAPI_ATTR VkResult VKAPI_CALL CreateTensorViewARM( + VkDevice device, + const VkTensorViewCreateInfoARM* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkTensorViewARM* pView) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkCreateTensorViewARM: Invalid device " + "[VUID-vkCreateTensorViewARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->CreateTensorViewARM(device, pCreateInfo, pAllocator, pView); +} + +VKAPI_ATTR void VKAPI_CALL DestroyTensorViewARM( + VkDevice device, + VkTensorViewARM tensorView, + const VkAllocationCallbacks* pAllocator) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkDestroyTensorViewARM: Invalid device " + "[VUID-vkDestroyTensorViewARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->DestroyTensorViewARM(device, tensorView, pAllocator); +} + +VKAPI_ATTR void VKAPI_CALL GetTensorMemoryRequirementsARM( + VkDevice device, + const VkTensorMemoryRequirementsInfoARM* pInfo, + VkMemoryRequirements2* pMemoryRequirements) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkGetTensorMemoryRequirementsARM: Invalid device " + "[VUID-vkGetTensorMemoryRequirementsARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->GetTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements); +} + +VKAPI_ATTR VkResult VKAPI_CALL BindTensorMemoryARM( + VkDevice device, + uint32_t bindInfoCount, + const VkBindTensorMemoryInfoARM* pBindInfos) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkBindTensorMemoryARM: Invalid device " + "[VUID-vkBindTensorMemoryARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->BindTensorMemoryARM(device, bindInfoCount, pBindInfos); +} + +VKAPI_ATTR void VKAPI_CALL GetDeviceTensorMemoryRequirementsARM( + VkDevice device, + const VkDeviceTensorMemoryRequirementsARM* pInfo, + VkMemoryRequirements2* pMemoryRequirements) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkGetDeviceTensorMemoryRequirementsARM: Invalid device " + "[VUID-vkGetDeviceTensorMemoryRequirementsARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->GetDeviceTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements); +} + +VKAPI_ATTR void VKAPI_CALL CmdCopyTensorARM( + VkCommandBuffer commandBuffer, + const VkCopyTensorInfoARM* pCopyTensorInfo) { + const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkCmdCopyTensorARM: Invalid commandBuffer " + "[VUID-vkCmdCopyTensorARM-commandBuffer-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->CmdCopyTensorARM(commandBuffer, pCopyTensorInfo); +} + +VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalTensorPropertiesARM( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, + VkExternalTensorPropertiesARM* pExternalTensorProperties) { + const VkLayerInstanceDispatchTable *disp; + VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice); + if (VK_NULL_HANDLE == unwrapped_phys_dev) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkGetPhysicalDeviceExternalTensorPropertiesARM: Invalid physicalDevice " + "[VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-physicalDevice-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp = loader_get_instance_layer_dispatch(physicalDevice); + disp->GetPhysicalDeviceExternalTensorPropertiesARM(unwrapped_phys_dev, pExternalTensorInfo, pExternalTensorProperties); +} + +VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalTensorPropertiesARM( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, + VkExternalTensorPropertiesARM* pExternalTensorProperties) { + struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice; + struct loader_icd_term *icd_term = phys_dev_term->this_icd_term; + if (NULL == icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM) { + loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0, + "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceExternalTensorPropertiesARM"); + abort(); /* Intentionally fail so user can correct issue. */ + } + icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM(phys_dev_term->phys_dev, pExternalTensorInfo, pExternalTensorProperties); +} + +VKAPI_ATTR VkResult VKAPI_CALL GetTensorOpaqueCaptureDescriptorDataARM( + VkDevice device, + const VkTensorCaptureDescriptorDataInfoARM* pInfo, + void* pData) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkGetTensorOpaqueCaptureDescriptorDataARM: Invalid device " + "[VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->GetTensorOpaqueCaptureDescriptorDataARM(device, pInfo, pData); +} + +VKAPI_ATTR VkResult VKAPI_CALL GetTensorViewOpaqueCaptureDescriptorDataARM( + VkDevice device, + const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, + void* pData) { + const VkLayerDispatchTable *disp = loader_get_dispatch(device); + if (NULL == disp) { + loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, + "vkGetTensorViewOpaqueCaptureDescriptorDataARM: Invalid device " + "[VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->GetTensorViewOpaqueCaptureDescriptorDataARM(device, pInfo, pData); +} + + // ---- VK_EXT_shader_module_identifier extension trampoline/terminators VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT( @@ -11200,6 +11430,12 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na return true; } + // ---- VK_KHR_present_wait2 extension commands + if (!strcmp("vkWaitForPresent2KHR", name)) { + *addr = (void *)WaitForPresent2KHR; + return true; + } + // ---- VK_KHR_pipeline_binary extension commands if (!strcmp("vkCreatePipelineBinariesKHR", name)) { *addr = (void *)CreatePipelineBinariesKHR; @@ -12518,6 +12754,52 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na return true; } + // ---- VK_ARM_tensors extension commands + if (!strcmp("vkCreateTensorARM", name)) { + *addr = (void *)CreateTensorARM; + return true; + } + if (!strcmp("vkDestroyTensorARM", name)) { + *addr = (void *)DestroyTensorARM; + return true; + } + if (!strcmp("vkCreateTensorViewARM", name)) { + *addr = (void *)CreateTensorViewARM; + return true; + } + if (!strcmp("vkDestroyTensorViewARM", name)) { + *addr = (void *)DestroyTensorViewARM; + return true; + } + if (!strcmp("vkGetTensorMemoryRequirementsARM", name)) { + *addr = (void *)GetTensorMemoryRequirementsARM; + return true; + } + if (!strcmp("vkBindTensorMemoryARM", name)) { + *addr = (void *)BindTensorMemoryARM; + return true; + } + if (!strcmp("vkGetDeviceTensorMemoryRequirementsARM", name)) { + *addr = (void *)GetDeviceTensorMemoryRequirementsARM; + return true; + } + if (!strcmp("vkCmdCopyTensorARM", name)) { + *addr = (void *)CmdCopyTensorARM; + return true; + } + if (!strcmp("vkGetPhysicalDeviceExternalTensorPropertiesARM", name)) { + *addr = (void *)GetPhysicalDeviceExternalTensorPropertiesARM; + return true; + } + if (!strcmp("vkGetTensorOpaqueCaptureDescriptorDataARM", name)) { + *addr = (void *)GetTensorOpaqueCaptureDescriptorDataARM; + return true; + } + if (!strcmp("vkGetTensorViewOpaqueCaptureDescriptorDataARM", name)) { + *addr = (void *)GetTensorViewOpaqueCaptureDescriptorDataARM; + return true; + } + // ---- VK_EXT_shader_module_identifier extension commands if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) { *addr = (void *)GetShaderModuleIdentifierEXT; @@ -13343,6 +13625,9 @@ const VkLayerInstanceDispatchTable instance_disp = { .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX, #endif // VK_USE_PLATFORM_SCREEN_QNX + // ---- VK_ARM_tensors extension commands + .GetPhysicalDeviceExternalTensorPropertiesARM = terminator_GetPhysicalDeviceExternalTensorPropertiesARM, + // ---- VK_NV_optical_flow extension commands .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV, diff --git a/loader/generated/vk_loader_extensions.h b/loader/generated/vk_loader_extensions.h index d9df6827b..ba0c0ad53 100644 --- a/loader/generated/vk_loader_extensions.h +++ b/loader/generated/vk_loader_extensions.h @@ -477,6 +477,9 @@ struct loader_icd_term_dispatch { PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX GetPhysicalDeviceScreenPresentationSupportQNX; #endif // VK_USE_PLATFORM_SCREEN_QNX + // ---- VK_ARM_tensors extension commands + PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM GetPhysicalDeviceExternalTensorPropertiesARM; + // ---- VK_NV_optical_flow extension commands PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV GetPhysicalDeviceOpticalFlowImageFormatsNV; diff --git a/loader/generated/vk_object_types.h b/loader/generated/vk_object_types.h index c2cf5e0d0..89eabfb43 100644 --- a/loader/generated/vk_object_types.h +++ b/loader/generated/vk_object_types.h @@ -88,12 +88,14 @@ typedef enum VulkanObjectType { kVulkanObjectTypeAccelerationStructureKHR = 47, kVulkanObjectTypeBufferCollectionFUCHSIA = 48, kVulkanObjectTypeMicromapEXT = 49, - kVulkanObjectTypeOpticalFlowSessionNV = 50, - kVulkanObjectTypeShaderEXT = 51, - kVulkanObjectTypeExternalComputeQueueNV = 52, - kVulkanObjectTypeIndirectExecutionSetEXT = 53, - kVulkanObjectTypeIndirectCommandsLayoutEXT = 54, - kVulkanObjectTypeMax = 55, + kVulkanObjectTypeTensorARM = 50, + kVulkanObjectTypeTensorViewARM = 51, + kVulkanObjectTypeOpticalFlowSessionNV = 52, + kVulkanObjectTypeShaderEXT = 53, + kVulkanObjectTypeExternalComputeQueueNV = 54, + kVulkanObjectTypeIndirectExecutionSetEXT = 55, + kVulkanObjectTypeIndirectCommandsLayoutEXT = 56, + kVulkanObjectTypeMax = 57, // Aliases for backwards compatibilty of "promoted" types kVulkanObjectTypeSamplerYcbcrConversionKHR = kVulkanObjectTypeSamplerYcbcrConversion, kVulkanObjectTypeDescriptorUpdateTemplateKHR = kVulkanObjectTypeDescriptorUpdateTemplate, @@ -152,6 +154,8 @@ static const char * const object_string[kVulkanObjectTypeMax] = { "AccelerationStructureKHR", "BufferCollectionFUCHSIA", "MicromapEXT", + "TensorARM", + "TensorViewARM", "OpticalFlowSessionNV", "ShaderEXT", "ExternalComputeQueueNV", @@ -211,6 +215,8 @@ const VkDebugReportObjectTypeEXT get_debug_report_enum[] = { VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, // kVulkanObjectTypeAccelerationStructureKHR VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT, // kVulkanObjectTypeBufferCollectionFUCHSIA VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeMicromapEXT + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeTensorARM + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeTensorViewARM VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeOpticalFlowSessionNV VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeShaderEXT VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeExternalComputeQueueNV @@ -270,6 +276,8 @@ const VkObjectType get_object_type_enum[] = { VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR, // kVulkanObjectTypeAccelerationStructureKHR VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA, // kVulkanObjectTypeBufferCollectionFUCHSIA VK_OBJECT_TYPE_MICROMAP_EXT, // kVulkanObjectTypeMicromapEXT + VK_OBJECT_TYPE_TENSOR_ARM, // kVulkanObjectTypeTensorARM + VK_OBJECT_TYPE_TENSOR_VIEW_ARM, // kVulkanObjectTypeTensorViewARM VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV, // kVulkanObjectTypeOpticalFlowSessionNV VK_OBJECT_TYPE_SHADER_EXT, // kVulkanObjectTypeShaderEXT VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV, // kVulkanObjectTypeExternalComputeQueueNV diff --git a/loader/loader.rc b/loader/loader.rc index 76f85048c..6b4076d08 100644 --- a/loader/loader.rc +++ b/loader/loader.rc @@ -22,8 +22,8 @@ #include "winres.h" // All set through CMake -#define VER_FILE_VERSION 1, 4, 316, 0 -#define VER_FILE_DESCRIPTION_STR "1.4.316.Dev Build" +#define VER_FILE_VERSION 1, 4, 317, 0 +#define VER_FILE_DESCRIPTION_STR "1.4.317.Dev Build" #define VER_FILE_VERSION_STR "Vulkan Loader - Dev Build" #define VER_COPYRIGHT_STR "Copyright (C) 2015-2025" diff --git a/scripts/known_good.json b/scripts/known_good.json index 9b9aead78..6381f4bbf 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -7,7 +7,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.4.316" + "commit": "v1.4.317" }, { "name": "googletest", diff --git a/tests/framework/layer/generated/vk_dispatch_table_helper.h b/tests/framework/layer/generated/vk_dispatch_table_helper.h index e554df025..a313ba8f8 100644 --- a/tests/framework/layer/generated/vk_dispatch_table_helper.h +++ b/tests/framework/layer/generated/vk_dispatch_table_helper.h @@ -355,6 +355,7 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp table->GetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)gpa(device, "vkGetRenderingAreaGranularityKHR"); table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gpa(device, "vkGetDeviceImageSubresourceLayoutKHR"); table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gpa(device, "vkGetImageSubresourceLayout2KHR"); + table->WaitForPresent2KHR = (PFN_vkWaitForPresent2KHR)gpa(device, "vkWaitForPresent2KHR"); table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gpa(device, "vkCreatePipelineBinariesKHR"); table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gpa(device, "vkDestroyPipelineBinaryKHR"); table->GetPipelineKeyKHR = (PFN_vkGetPipelineKeyKHR)gpa(device, "vkGetPipelineKeyKHR"); @@ -661,6 +662,16 @@ static inline void layer_init_device_dispatch_table(VkDevice device, VkLayerDisp table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gpa(device, "vkCmdSetShadingRateImageEnableNV"); table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gpa(device, "vkCmdSetRepresentativeFragmentTestEnableNV"); table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gpa(device, "vkCmdSetCoverageReductionModeNV"); + table->CreateTensorARM = (PFN_vkCreateTensorARM)gpa(device, "vkCreateTensorARM"); + table->DestroyTensorARM = (PFN_vkDestroyTensorARM)gpa(device, "vkDestroyTensorARM"); + table->CreateTensorViewARM = (PFN_vkCreateTensorViewARM)gpa(device, "vkCreateTensorViewARM"); + table->DestroyTensorViewARM = (PFN_vkDestroyTensorViewARM)gpa(device, "vkDestroyTensorViewARM"); + table->GetTensorMemoryRequirementsARM = (PFN_vkGetTensorMemoryRequirementsARM)gpa(device, "vkGetTensorMemoryRequirementsARM"); + table->BindTensorMemoryARM = (PFN_vkBindTensorMemoryARM)gpa(device, "vkBindTensorMemoryARM"); + table->GetDeviceTensorMemoryRequirementsARM = (PFN_vkGetDeviceTensorMemoryRequirementsARM)gpa(device, "vkGetDeviceTensorMemoryRequirementsARM"); + table->CmdCopyTensorARM = (PFN_vkCmdCopyTensorARM)gpa(device, "vkCmdCopyTensorARM"); + table->GetTensorOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)gpa(device, "vkGetTensorOpaqueCaptureDescriptorDataARM"); + table->GetTensorViewOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)gpa(device, "vkGetTensorViewOpaqueCaptureDescriptorDataARM"); table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gpa(device, "vkGetShaderModuleIdentifierEXT"); table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gpa(device, "vkGetShaderModuleCreateInfoIdentifierEXT"); table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gpa(device, "vkCreateOpticalFlowSessionNV"); @@ -899,6 +910,7 @@ static inline void layer_init_instance_dispatch_table(VkInstance instance, VkLay #if defined(VK_USE_PLATFORM_SCREEN_QNX) table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX"); #endif // VK_USE_PLATFORM_SCREEN_QNX + table->GetPhysicalDeviceExternalTensorPropertiesARM = (PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)gpa(instance, "vkGetPhysicalDeviceExternalTensorPropertiesARM"); table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); table->GetPhysicalDeviceCooperativeVectorPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(instance, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV"); table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(instance, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");