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");
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;
}
+// ---- 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(
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;
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,
"VideoSessionKHR",
"VideoSessionParametersKHR",
"DeferredOperationKHR",
+ "PipelineBinaryKHR",
"DebugReportCallbackEXT",
"CuModuleNVX",
"CuFunctionNVX",
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
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