Fix triple-promotion handling of EXT line stipple. Closes #3841

This commit is contained in:
baldurk
2026-05-26 16:16:53 +01:00
parent 1cb44cb19d
commit 9fd549698b
3 changed files with 32 additions and 1 deletions
@@ -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();
+1 -1
View File
@@ -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); \
+9
View File
@@ -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();