diff --git a/CMakeLists.txt b/CMakeLists.txt index 00795f2d4..2c56ffbad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # ~~~ cmake_minimum_required(VERSION 3.22.1) -project(VULKAN_LOADER VERSION 1.4.358 LANGUAGES C) +project(VULKAN_LOADER VERSION 1.4.359 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 85fb71843..15f851ec7 100644 --- a/loader/generated/vk_layer_dispatch_table.h +++ b/loader/generated/vk_layer_dispatch_table.h @@ -322,6 +322,9 @@ typedef struct VkLayerInstanceDispatchTable_ { // ---- VK_ARM_data_graph_optical_flow extension commands PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM; + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + PFN_vkGetPhysicalDeviceCooperativeMatrixProperties2EXT GetPhysicalDeviceCooperativeMatrixProperties2EXT; + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) PFN_vkCreateUbmSurfaceSEC CreateUbmSurfaceSEC; diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c index e6c4fc5b1..1d259be17 100644 --- a/loader/generated/vk_loader_extensions.c +++ b/loader/generated/vk_loader_extensions.c @@ -346,6 +346,9 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, // ---- VK_ARM_data_graph_optical_flow extension commands LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM); + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixProperties2EXT); + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) LOOKUP_GIPA(CreateUbmSurfaceSEC); @@ -1769,6 +1772,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer // ---- VK_ARM_data_graph_optical_flow extension commands table->GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM"); + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + table->GetPhysicalDeviceCooperativeMatrixProperties2EXT = (PFN_vkGetPhysicalDeviceCooperativeMatrixProperties2EXT)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixProperties2EXT"); + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) table->CreateUbmSurfaceSEC = (PFN_vkCreateUbmSurfaceSEC)gpa(inst, "vkCreateUbmSurfaceSEC"); @@ -3870,6 +3876,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI // ---- VK_ARM_data_graph_optical_flow extension commands if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM; + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixProperties2EXT")) return (void *)table->GetPhysicalDeviceCooperativeMatrixProperties2EXT; + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) if (!strcmp(name, "CreateUbmSurfaceSEC")) return (void *)table->CreateUbmSurfaceSEC; @@ -12322,6 +12331,41 @@ VKAPI_ATTR void VKAPI_CALL CmdSetComputeOccupancyPriorityNV( } +// ---- VK_EXT_cooperative_matrix_maintenance1 extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixProperties2EXT( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceCooperativeMatrixInfo2EXT* pCooperativeMatrixInfo, + uint32_t* pPropertyCount, + VkCooperativeMatrixProperties2EXT* pProperties) { + 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, + "vkGetPhysicalDeviceCooperativeMatrixProperties2EXT: Invalid physicalDevice " + "[VUID-vkGetPhysicalDeviceCooperativeMatrixProperties2EXT-physicalDevice-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp = loader_get_instance_layer_dispatch(physicalDevice); + return disp->GetPhysicalDeviceCooperativeMatrixProperties2EXT(unwrapped_phys_dev, pCooperativeMatrixInfo, pPropertyCount, pProperties); +} + +VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixProperties2EXT( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceCooperativeMatrixInfo2EXT* pCooperativeMatrixInfo, + uint32_t* pPropertyCount, + VkCooperativeMatrixProperties2EXT* pProperties) { + 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.GetPhysicalDeviceCooperativeMatrixProperties2EXT) { + loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0, + "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixProperties2EXT"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixProperties2EXT(phys_dev_term->phys_dev, pCooperativeMatrixInfo, pPropertyCount, pProperties); +} + + // ---- VK_SEC_ubm_surface extension trampoline/terminators #if defined(VK_USE_PLATFORM_UBM_SEC) @@ -15369,6 +15413,12 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na return true; } + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixProperties2EXT", name)) { + *addr = (void *)GetPhysicalDeviceCooperativeMatrixProperties2EXT; + return true; + } + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) if (!strcmp("vkCreateUbmSurfaceSEC", name)) { @@ -16043,6 +16093,9 @@ const VkLayerInstanceDispatchTable instance_disp = { // ---- VK_ARM_data_graph_optical_flow extension commands .GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM, + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + .GetPhysicalDeviceCooperativeMatrixProperties2EXT = terminator_GetPhysicalDeviceCooperativeMatrixProperties2EXT, + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) .CreateUbmSurfaceSEC = terminator_CreateUbmSurfaceSEC, diff --git a/loader/generated/vk_loader_extensions.h b/loader/generated/vk_loader_extensions.h index 472e852e9..509266895 100644 --- a/loader/generated/vk_loader_extensions.h +++ b/loader/generated/vk_loader_extensions.h @@ -513,6 +513,9 @@ struct loader_icd_term_dispatch { // ---- VK_ARM_data_graph_optical_flow extension commands PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM; + // ---- VK_EXT_cooperative_matrix_maintenance1 extension commands + PFN_vkGetPhysicalDeviceCooperativeMatrixProperties2EXT GetPhysicalDeviceCooperativeMatrixProperties2EXT; + // ---- VK_SEC_ubm_surface extension commands #if defined(VK_USE_PLATFORM_UBM_SEC) PFN_vkCreateUbmSurfaceSEC CreateUbmSurfaceSEC; diff --git a/loader/loader.rc b/loader/loader.rc index 472fbaab9..397505823 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, 358, 0 -#define VER_FILE_DESCRIPTION_STR "1.4.358.Dev Build" +#define VER_FILE_VERSION 1, 4, 359, 0 +#define VER_FILE_DESCRIPTION_STR "1.4.359.Dev Build" #define VER_FILE_VERSION_STR "Vulkan Loader - Dev Build" #define VER_COPYRIGHT_STR "Copyright (C) 2015-2026" diff --git a/scripts/known_good.json b/scripts/known_good.json index c674c2023..268e661bf 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.358" + "commit": "v1.4.359" }, { "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 fef3738cb..9d87f78ce 100644 --- a/tests/framework/layer/generated/vk_dispatch_table_helper.h +++ b/tests/framework/layer/generated/vk_dispatch_table_helper.h @@ -1013,6 +1013,7 @@ static inline void layer_init_instance_dispatch_table(VkInstance instance, VkLay table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)gpa(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM"); table->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM = (PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM)gpa(instance, "vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM"); table->GetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM)gpa(instance, "vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM"); + table->GetPhysicalDeviceCooperativeMatrixProperties2EXT = (PFN_vkGetPhysicalDeviceCooperativeMatrixProperties2EXT)gpa(instance, "vkGetPhysicalDeviceCooperativeMatrixProperties2EXT"); #if defined(VK_USE_PLATFORM_UBM_SEC) table->CreateUbmSurfaceSEC = (PFN_vkCreateUbmSurfaceSEC)gpa(instance, "vkCreateUbmSurfaceSEC"); #endif // VK_USE_PLATFORM_UBM_SEC