diff --git a/CMakeLists.txt b/CMakeLists.txt index 181ae5edb..e07370426 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # ~~~ cmake_minimum_required(VERSION 3.17.2) -project(VULKAN_LOADER VERSION 1.3.299 LANGUAGES C) +project(VULKAN_LOADER VERSION 1.3.300 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 2ca1e97ac..f96dfc088 100644 --- a/loader/generated/vk_layer_dispatch_table.h +++ b/loader/generated/vk_layer_dispatch_table.h @@ -290,6 +290,9 @@ typedef struct VkLayerInstanceDispatchTable_ { // ---- VK_NV_optical_flow extension commands PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV GetPhysicalDeviceOpticalFlowImageFormatsNV; + + // ---- VK_NV_cooperative_matrix2 extension commands + PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; } VkLayerInstanceDispatchTable; // Device function pointer dispatch table diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c index d5d607dd4..393c1becd 100644 --- a/loader/generated/vk_loader_extensions.c +++ b/loader/generated/vk_loader_extensions.c @@ -312,6 +312,9 @@ VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, // ---- VK_NV_optical_flow extension commands LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV); + // ---- VK_NV_cooperative_matrix2 extension commands + LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV); + #undef LOOKUP_REQUIRED_GIPA #undef LOOKUP_GIPA @@ -1479,6 +1482,9 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer // ---- VK_NV_optical_flow extension commands table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); + + // ---- VK_NV_cooperative_matrix2 extension commands + table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"); } // Functions that required a terminator need to have a separate dispatch table which contains their corresponding @@ -3262,6 +3268,9 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerI // ---- VK_NV_optical_flow extension commands if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV; + // ---- VK_NV_cooperative_matrix2 extension commands + if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; + *found_name = false; return NULL; } @@ -9682,6 +9691,39 @@ VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetShaderEXT( } +// ---- VK_NV_cooperative_matrix2 extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixFlexibleDimensionsPropertiesNV* 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, + "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: Invalid physicalDevice " + "[VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-physicalDevice-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp = loader_get_instance_layer_dispatch(physicalDevice); + return disp->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties); +} + +VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixFlexibleDimensionsPropertiesNV* 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.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) { + loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0, + "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties); +} + + // ---- VK_KHR_acceleration_structure extension trampoline/terminators VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR( @@ -12061,6 +12103,12 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na return true; } + // ---- VK_NV_cooperative_matrix2 extension commands + if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", name)) { + *addr = (void *)GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; + return true; + } + // ---- VK_KHR_acceleration_structure extension commands if (!strcmp("vkCreateAccelerationStructureKHR", name)) { *addr = (void *)CreateAccelerationStructureKHR; @@ -12563,6 +12611,9 @@ const VkLayerInstanceDispatchTable instance_disp = { // ---- VK_NV_optical_flow extension commands .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV, + + // ---- VK_NV_cooperative_matrix2 extension commands + .GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, }; // A null-terminated list of all of the instance extensions supported by the loader. diff --git a/loader/generated/vk_loader_extensions.h b/loader/generated/vk_loader_extensions.h index df59d91b8..689a3ae90 100644 --- a/loader/generated/vk_loader_extensions.h +++ b/loader/generated/vk_loader_extensions.h @@ -476,6 +476,9 @@ struct loader_icd_term_dispatch { // ---- VK_NV_optical_flow extension commands PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV GetPhysicalDeviceOpticalFlowImageFormatsNV; + + // ---- VK_NV_cooperative_matrix2 extension commands + PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV; }; struct loader_instance_extension_enables { diff --git a/loader/loader.rc b/loader/loader.rc index 3fa70867e..7860670f3 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, 3, 299, 0 -#define VER_FILE_DESCRIPTION_STR "1.3.299.Dev Build" +#define VER_FILE_VERSION 1, 3, 300, 0 +#define VER_FILE_DESCRIPTION_STR "1.3.300.Dev Build" #define VER_FILE_VERSION_STR "Vulkan Loader - Dev Build" #define VER_COPYRIGHT_STR "Copyright (C) 2015-2024" diff --git a/scripts/known_good.json b/scripts/known_good.json index 2c30d5f32..bc7ca396f 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.3.299" + "commit": "v1.3.300" }, { "name": "googletest",