diff --git a/renderdoc/driver/vulkan/vk_dispatchtables.cpp b/renderdoc/driver/vulkan/vk_dispatchtables.cpp index 644c56c71..68b7c9572 100644 --- a/renderdoc/driver/vulkan/vk_dispatchtables.cpp +++ b/renderdoc/driver/vulkan/vk_dispatchtables.cpp @@ -111,6 +111,17 @@ void InitInstanceExtensionTables(VkInstance instance, InstanceDeviceInfo *info) table->CONCAT(func, KHR) = table->CONCAT(func, EXT); \ } +#undef HookInitPromotedExtensionEXTtoKHR +#define HookInitPromotedExtensionEXTtoKHR(func) \ + { \ + if(table->CONCAT(func, EXT) == NULL) \ + table->CONCAT(func, EXT) = table->CONCAT(func, KHR); \ + if(table->CONCAT(func, KHR) == NULL) \ + table->CONCAT(func, KHR) = table->CONCAT(func, EXT); \ + if(table->func == NULL) \ + table->func = table->CONCAT(func, EXT); \ + } + DeclExts(); CheckInstanceExts(); @@ -161,6 +172,17 @@ void InitDeviceExtensionTables(VkDevice device, InstanceDeviceInfo *info) table->CONCAT(func, KHR) = table->CONCAT(func, EXT); \ } +#undef HookInitPromotedExtensionEXTtoKHR +#define HookInitPromotedExtensionEXTtoKHR(func) \ + { \ + if(table->CONCAT(func, EXT) == NULL) \ + table->CONCAT(func, EXT) = table->CONCAT(func, KHR); \ + if(table->CONCAT(func, KHR) == NULL) \ + table->CONCAT(func, KHR) = table->CONCAT(func, EXT); \ + if(table->func == NULL) \ + table->func = table->CONCAT(func, EXT); \ + } + DeclExts(); CheckInstanceExts(); diff --git a/renderdoc/driver/vulkan/vk_hookset_defs.h b/renderdoc/driver/vulkan/vk_hookset_defs.h index 54315e613..ae8fbc628 100644 --- a/renderdoc/driver/vulkan/vk_hookset_defs.h +++ b/renderdoc/driver/vulkan/vk_hookset_defs.h @@ -1050,7 +1050,7 @@ HookInitExtension(EXT_mesh_shader, CmdDrawMeshTasksIndirectCountEXT); \ HookInitExtension(KHR_calibrated_timestamps, GetCalibratedTimestampsKHR); \ HookInitPromotedExtension(KHR_line_rasterization, CmdSetLineStipple, KHR); \ - HookInitExtensionEXTtoKHR(CmdSetLineStipple); \ + HookInitPromotedExtensionEXTtoKHR(CmdSetLineStipple); \ HookInitExtension(KHR_deferred_host_operations, CreateDeferredOperationKHR); \ HookInitExtension(KHR_deferred_host_operations, DeferredOperationJoinKHR); \ HookInitExtension(KHR_deferred_host_operations, DestroyDeferredOperationKHR); \ diff --git a/renderdoc/driver/vulkan/vk_layer.cpp b/renderdoc/driver/vulkan/vk_layer.cpp index 295f875b3..ef12a6fe2 100644 --- a/renderdoc/driver/vulkan/vk_layer.cpp +++ b/renderdoc/driver/vulkan/vk_layer.cpp @@ -417,6 +417,9 @@ VK_LAYER_RENDERDOC_CaptureEnumerateInstanceExtensionProperties( #undef HookInitExtensionEXTtoKHR #define HookInitExtensionEXTtoKHR(func) (void)0; +#undef HookInitPromotedExtensionEXTtoKHR +#define HookInitPromotedExtensionEXTtoKHR(func) (void)0; + // proc addr routines VK_LAYER_EXPORT VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL @@ -529,6 +532,9 @@ VK_LAYER_RENDERDOC_CaptureGetInstanceProcAddr(VkInstance instance, const char *p #undef HookInitExtensionEXTtoKHR #define HookInitExtensionEXTtoKHR(func) (void)0; +#undef HookInitPromotedExtensionEXTtoKHR +#define HookInitPromotedExtensionEXTtoKHR(func) (void)0; + HookInitVulkanDevice(); HookInitVulkanDeviceExts(); @@ -610,6 +616,9 @@ VK_LAYER_RENDERDOC_Capture_layerGetPhysicalDeviceProcAddr(VkInstance instance, c #undef HookInitExtensionEXTtoKHR #define HookInitExtensionEXTtoKHR(func) (void)0; +#undef HookInitPromotedExtensionEXTtoKHR +#define HookInitPromotedExtensionEXTtoKHR(func) (void)0; + HookInitVulkanInstanceExts(); HookInitVulkanDeviceExts();