diff --git a/CMakeLists.txt b/CMakeLists.txt index 0fc8cdb83..9bb64c957 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ # ~~~ cmake_minimum_required(VERSION 3.17.2) -project(VULKAN_LOADER VERSION 1.3.293 LANGUAGES C) +project(VULKAN_LOADER VERSION 1.3.294 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 908dccb2e..5d6875d60 100644 --- a/loader/generated/vk_layer_dispatch_table.h +++ b/loader/generated/vk_layer_dispatch_table.h @@ -679,6 +679,13 @@ typedef struct VkLayerDispatchTable_ { PFN_vkGetDeviceImageSubresourceLayoutKHR GetDeviceImageSubresourceLayoutKHR; PFN_vkGetImageSubresourceLayout2KHR GetImageSubresourceLayout2KHR; + // ---- VK_KHR_pipeline_binary extension commands + PFN_vkCreatePipelineBinariesKHR CreatePipelineBinariesKHR; + PFN_vkDestroyPipelineBinaryKHR DestroyPipelineBinaryKHR; + PFN_vkGetPipelineKeyKHR GetPipelineKeyKHR; + PFN_vkGetPipelineBinaryDataKHR GetPipelineBinaryDataKHR; + PFN_vkReleaseCapturedPipelineDataKHR ReleaseCapturedPipelineDataKHR; + // ---- VK_KHR_line_rasterization extension commands PFN_vkCmdSetLineStippleKHR CmdSetLineStippleKHR; diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c index 4eae34746..1c8a3fbb7 100644 --- a/loader/generated/vk_loader_extensions.c +++ b/loader/generated/vk_loader_extensions.c @@ -720,6 +720,13 @@ 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_pipeline_binary extension commands + table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gdpa(dev, "vkCreatePipelineBinariesKHR"); + table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gdpa(dev, "vkDestroyPipelineBinaryKHR"); + table->GetPipelineKeyKHR = (PFN_vkGetPipelineKeyKHR)gdpa(dev, "vkGetPipelineKeyKHR"); + table->GetPipelineBinaryDataKHR = (PFN_vkGetPipelineBinaryDataKHR)gdpa(dev, "vkGetPipelineBinaryDataKHR"); + table->ReleaseCapturedPipelineDataKHR = (PFN_vkReleaseCapturedPipelineDataKHR)gdpa(dev, "vkReleaseCapturedPipelineDataKHR"); + // ---- VK_KHR_line_rasterization extension commands table->CmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)gdpa(dev, "vkCmdSetLineStippleKHR"); @@ -2478,6 +2485,13 @@ 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_pipeline_binary extension commands + if (!strcmp(name, "CreatePipelineBinariesKHR")) return (void *)table->CreatePipelineBinariesKHR; + if (!strcmp(name, "DestroyPipelineBinaryKHR")) return (void *)table->DestroyPipelineBinaryKHR; + if (!strcmp(name, "GetPipelineKeyKHR")) return (void *)table->GetPipelineKeyKHR; + if (!strcmp(name, "GetPipelineBinaryDataKHR")) return (void *)table->GetPipelineBinaryDataKHR; + if (!strcmp(name, "ReleaseCapturedPipelineDataKHR")) return (void *)table->ReleaseCapturedPipelineDataKHR; + // ---- VK_KHR_line_rasterization extension commands if (!strcmp(name, "CmdSetLineStippleKHR")) return (void *)table->CmdSetLineStippleKHR; @@ -4872,6 +4886,82 @@ VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR( } +// ---- VK_KHR_pipeline_binary extension trampoline/terminators + +VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineBinariesKHR( + VkDevice device, + const VkPipelineBinaryCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPipelineBinaryHandlesInfoKHR* pBinaries) { + 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, + "vkCreatePipelineBinariesKHR: Invalid device " + "[VUID-vkCreatePipelineBinariesKHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->CreatePipelineBinariesKHR(device, pCreateInfo, pAllocator, pBinaries); +} + +VKAPI_ATTR void VKAPI_CALL DestroyPipelineBinaryKHR( + VkDevice device, + VkPipelineBinaryKHR pipelineBinary, + 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, + "vkDestroyPipelineBinaryKHR: Invalid device " + "[VUID-vkDestroyPipelineBinaryKHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + disp->DestroyPipelineBinaryKHR(device, pipelineBinary, pAllocator); +} + +VKAPI_ATTR VkResult VKAPI_CALL GetPipelineKeyKHR( + VkDevice device, + const VkPipelineCreateInfoKHR* pPipelineCreateInfo, + VkPipelineBinaryKeyKHR* pPipelineKey) { + 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, + "vkGetPipelineKeyKHR: Invalid device " + "[VUID-vkGetPipelineKeyKHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey); +} + +VKAPI_ATTR VkResult VKAPI_CALL GetPipelineBinaryDataKHR( + VkDevice device, + const VkPipelineBinaryDataInfoKHR* pInfo, + VkPipelineBinaryKeyKHR* pPipelineBinaryKey, + size_t* pPipelineBinaryDataSize, + void* pPipelineBinaryData) { + 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, + "vkGetPipelineBinaryDataKHR: Invalid device " + "[VUID-vkGetPipelineBinaryDataKHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->GetPipelineBinaryDataKHR(device, pInfo, pPipelineBinaryKey, pPipelineBinaryDataSize, pPipelineBinaryData); +} + +VKAPI_ATTR VkResult VKAPI_CALL ReleaseCapturedPipelineDataKHR( + VkDevice device, + const VkReleaseCapturedPipelineDataInfoKHR* pInfo, + 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, + "vkReleaseCapturedPipelineDataKHR: Invalid device " + "[VUID-vkReleaseCapturedPipelineDataKHR-device-parameter]"); + abort(); /* Intentionally fail so user can correct issue. */ + } + return disp->ReleaseCapturedPipelineDataKHR(device, pInfo, pAllocator); +} + + // ---- VK_KHR_cooperative_matrix extension trampoline/terminators VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR( @@ -10376,6 +10466,28 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na return true; } + // ---- VK_KHR_pipeline_binary extension commands + if (!strcmp("vkCreatePipelineBinariesKHR", name)) { + *addr = (void *)CreatePipelineBinariesKHR; + return true; + } + if (!strcmp("vkDestroyPipelineBinaryKHR", name)) { + *addr = (void *)DestroyPipelineBinaryKHR; + return true; + } + if (!strcmp("vkGetPipelineKeyKHR", name)) { + *addr = (void *)GetPipelineKeyKHR; + return true; + } + if (!strcmp("vkGetPipelineBinaryDataKHR", name)) { + *addr = (void *)GetPipelineBinaryDataKHR; + return true; + } + if (!strcmp("vkReleaseCapturedPipelineDataKHR", name)) { + *addr = (void *)ReleaseCapturedPipelineDataKHR; + return true; + } + // ---- VK_KHR_cooperative_matrix extension commands if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", name)) { *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesKHR; diff --git a/loader/generated/vk_object_types.h b/loader/generated/vk_object_types.h index 08f3bef78..d43a1d53f 100644 --- a/loader/generated/vk_object_types.h +++ b/loader/generated/vk_object_types.h @@ -73,22 +73,23 @@ typedef enum VulkanObjectType { kVulkanObjectTypeVideoSessionKHR = 33, kVulkanObjectTypeVideoSessionParametersKHR = 34, kVulkanObjectTypeDeferredOperationKHR = 35, - kVulkanObjectTypeDebugReportCallbackEXT = 36, - kVulkanObjectTypeCuModuleNVX = 37, - kVulkanObjectTypeCuFunctionNVX = 38, - kVulkanObjectTypeDebugUtilsMessengerEXT = 39, - kVulkanObjectTypeValidationCacheEXT = 40, - kVulkanObjectTypeAccelerationStructureNV = 41, - kVulkanObjectTypePerformanceConfigurationINTEL = 42, - kVulkanObjectTypeIndirectCommandsLayoutNV = 43, - kVulkanObjectTypeCudaModuleNV = 44, - kVulkanObjectTypeCudaFunctionNV = 45, - kVulkanObjectTypeAccelerationStructureKHR = 46, - kVulkanObjectTypeBufferCollectionFUCHSIA = 47, - kVulkanObjectTypeMicromapEXT = 48, - kVulkanObjectTypeOpticalFlowSessionNV = 49, - kVulkanObjectTypeShaderEXT = 50, - kVulkanObjectTypeMax = 51, + kVulkanObjectTypePipelineBinaryKHR = 36, + kVulkanObjectTypeDebugReportCallbackEXT = 37, + kVulkanObjectTypeCuModuleNVX = 38, + kVulkanObjectTypeCuFunctionNVX = 39, + kVulkanObjectTypeDebugUtilsMessengerEXT = 40, + kVulkanObjectTypeValidationCacheEXT = 41, + kVulkanObjectTypeAccelerationStructureNV = 42, + kVulkanObjectTypePerformanceConfigurationINTEL = 43, + kVulkanObjectTypeIndirectCommandsLayoutNV = 44, + kVulkanObjectTypeCudaModuleNV = 45, + kVulkanObjectTypeCudaFunctionNV = 46, + kVulkanObjectTypeAccelerationStructureKHR = 47, + kVulkanObjectTypeBufferCollectionFUCHSIA = 48, + kVulkanObjectTypeMicromapEXT = 49, + kVulkanObjectTypeOpticalFlowSessionNV = 50, + kVulkanObjectTypeShaderEXT = 51, + kVulkanObjectTypeMax = 52, // Aliases for backwards compatibilty of "promoted" types kVulkanObjectTypeDescriptorUpdateTemplateKHR = kVulkanObjectTypeDescriptorUpdateTemplate, kVulkanObjectTypeSamplerYcbcrConversionKHR = kVulkanObjectTypeSamplerYcbcrConversion, @@ -133,6 +134,7 @@ static const char * const object_string[kVulkanObjectTypeMax] = { "VideoSessionKHR", "VideoSessionParametersKHR", "DeferredOperationKHR", + "PipelineBinaryKHR", "DebugReportCallbackEXT", "CuModuleNVX", "CuFunctionNVX", @@ -188,6 +190,7 @@ const VkDebugReportObjectTypeEXT get_debug_report_enum[] = { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeVideoSessionKHR VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeVideoSessionParametersKHR VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypeDeferredOperationKHR + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, // kVulkanObjectTypePipelineBinaryKHR VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, // kVulkanObjectTypeDebugReportCallbackEXT VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT, // kVulkanObjectTypeCuModuleNVX VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT, // kVulkanObjectTypeCuFunctionNVX @@ -243,6 +246,7 @@ const VkObjectType get_object_type_enum[] = { VK_OBJECT_TYPE_VIDEO_SESSION_KHR, // kVulkanObjectTypeVideoSessionKHR VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR, // kVulkanObjectTypeVideoSessionParametersKHR VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR, // kVulkanObjectTypeDeferredOperationKHR + VK_OBJECT_TYPE_PIPELINE_BINARY_KHR, // kVulkanObjectTypePipelineBinaryKHR VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT, // kVulkanObjectTypeDebugReportCallbackEXT VK_OBJECT_TYPE_CU_MODULE_NVX, // kVulkanObjectTypeCuModuleNVX VK_OBJECT_TYPE_CU_FUNCTION_NVX, // kVulkanObjectTypeCuFunctionNVX diff --git a/loader/loader.rc b/loader/loader.rc index b8a28d32b..4e11e5dfa 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, 293, 0 -#define VER_FILE_DESCRIPTION_STR "1.3.293.Dev Build" +#define VER_FILE_VERSION 1, 3, 294, 0 +#define VER_FILE_DESCRIPTION_STR "1.3.294.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 5c5b01eb2..7e6d8dc8a 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.293" + "commit": "v1.3.294" }, { "name": "googletest",