diff options
| author | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-02-20 11:39:17 +1100 |
|---|---|---|
| committer | Nicolas James <Eele1Ephe7uZahRie@tutanota.com> | 2026-02-20 11:39:17 +1100 |
| commit | 008dfc5d0ba524c308540cf90aef6432362fbc3b (patch) | |
| tree | 67493f0a4c54c4f56ced5163644f94c8e0e41f14 | |
| parent | ed90d0388f1127b24e6a784bface2bcef7748be3 (diff) | |
Do not use designated initializers for positionally unstable dispatch table entries
| -rw-r--r-- | src/layer.cc | 74 |
1 files changed, 36 insertions, 38 deletions
diff --git a/src/layer.cc b/src/layer.cc index 02acb03..c54dc9f 100644 --- a/src/layer.cc +++ b/src/layer.cc @@ -84,15 +84,14 @@ CreateInstance(const VkInstanceCreateInfo* pCreateInfo, const auto key = layer_context.get_key(*pInstance); #define INSTANCE_VTABLE_LOAD(name) \ - .name = reinterpret_cast<PFN_vk##name>(gipa(*pInstance, "vk" #name)) - auto vtable = VkuInstanceDispatchTable{ - INSTANCE_VTABLE_LOAD(DestroyInstance), - INSTANCE_VTABLE_LOAD(EnumeratePhysicalDevices), - INSTANCE_VTABLE_LOAD(GetPhysicalDeviceProperties), - INSTANCE_VTABLE_LOAD(GetInstanceProcAddr), - INSTANCE_VTABLE_LOAD(CreateDevice), - INSTANCE_VTABLE_LOAD(EnumerateDeviceExtensionProperties), - }; + vtable.name = reinterpret_cast<PFN_vk##name>(gipa(*pInstance, "vk" #name)) + auto vtable = VkuInstanceDispatchTable{}; + INSTANCE_VTABLE_LOAD(DestroyInstance); + INSTANCE_VTABLE_LOAD(EnumeratePhysicalDevices); + INSTANCE_VTABLE_LOAD(GetPhysicalDeviceProperties); + INSTANCE_VTABLE_LOAD(GetInstanceProcAddr); + INSTANCE_VTABLE_LOAD(CreateDevice); + INSTANCE_VTABLE_LOAD(EnumerateDeviceExtensionProperties); #undef INSTANCE_VTABLE_LOAD const auto lock = std::scoped_lock{layer_context.mutex}; @@ -274,35 +273,34 @@ static VKAPI_ATTR VkResult VKAPI_CALL CreateDevice( } #define DEVICE_VTABLE_LOAD(name) \ - .name = reinterpret_cast<PFN_vk##name>(gdpa(*pDevice, "vk" #name)) - auto vtable = VkuDeviceDispatchTable{ - DEVICE_VTABLE_LOAD(GetDeviceProcAddr), - DEVICE_VTABLE_LOAD(DestroyDevice), - DEVICE_VTABLE_LOAD(GetDeviceQueue), - DEVICE_VTABLE_LOAD(QueueSubmit), - DEVICE_VTABLE_LOAD(CreateQueryPool), - DEVICE_VTABLE_LOAD(DestroyQueryPool), - DEVICE_VTABLE_LOAD(GetQueryPoolResults), - DEVICE_VTABLE_LOAD(CreateCommandPool), - DEVICE_VTABLE_LOAD(DestroyCommandPool), - DEVICE_VTABLE_LOAD(AllocateCommandBuffers), - DEVICE_VTABLE_LOAD(FreeCommandBuffers), - DEVICE_VTABLE_LOAD(BeginCommandBuffer), - DEVICE_VTABLE_LOAD(EndCommandBuffer), - DEVICE_VTABLE_LOAD(ResetCommandBuffer), - DEVICE_VTABLE_LOAD(CmdDraw), - DEVICE_VTABLE_LOAD(CmdDrawIndexed), - DEVICE_VTABLE_LOAD(CmdResetQueryPool), - DEVICE_VTABLE_LOAD(GetDeviceQueue2), - DEVICE_VTABLE_LOAD(QueueSubmit2), - DEVICE_VTABLE_LOAD(AcquireNextImageKHR), - DEVICE_VTABLE_LOAD(QueuePresentKHR), - DEVICE_VTABLE_LOAD(AcquireNextImage2KHR), - DEVICE_VTABLE_LOAD(CmdWriteTimestamp2KHR), - DEVICE_VTABLE_LOAD(QueueSubmit2KHR), - DEVICE_VTABLE_LOAD(GetCalibratedTimestampsKHR), - DEVICE_VTABLE_LOAD(ResetQueryPoolEXT), - }; + vtable.name = reinterpret_cast<PFN_vk##name>(gdpa(*pDevice, "vk" #name)) + auto vtable = VkuDeviceDispatchTable{}; + DEVICE_VTABLE_LOAD(GetDeviceProcAddr); + DEVICE_VTABLE_LOAD(DestroyDevice); + DEVICE_VTABLE_LOAD(GetDeviceQueue); + DEVICE_VTABLE_LOAD(QueueSubmit); + DEVICE_VTABLE_LOAD(CreateQueryPool); + DEVICE_VTABLE_LOAD(DestroyQueryPool); + DEVICE_VTABLE_LOAD(GetQueryPoolResults); + DEVICE_VTABLE_LOAD(CreateCommandPool); + DEVICE_VTABLE_LOAD(DestroyCommandPool); + DEVICE_VTABLE_LOAD(AllocateCommandBuffers); + DEVICE_VTABLE_LOAD(FreeCommandBuffers); + DEVICE_VTABLE_LOAD(BeginCommandBuffer); + DEVICE_VTABLE_LOAD(EndCommandBuffer); + DEVICE_VTABLE_LOAD(ResetCommandBuffer); + DEVICE_VTABLE_LOAD(CmdDraw); + DEVICE_VTABLE_LOAD(CmdDrawIndexed); + DEVICE_VTABLE_LOAD(CmdResetQueryPool); + DEVICE_VTABLE_LOAD(GetDeviceQueue2); + DEVICE_VTABLE_LOAD(QueueSubmit2); + DEVICE_VTABLE_LOAD(AcquireNextImageKHR); + DEVICE_VTABLE_LOAD(QueuePresentKHR); + DEVICE_VTABLE_LOAD(AcquireNextImage2KHR); + DEVICE_VTABLE_LOAD(CmdWriteTimestamp2KHR); + DEVICE_VTABLE_LOAD(QueueSubmit2KHR); + DEVICE_VTABLE_LOAD(GetCalibratedTimestampsKHR); + DEVICE_VTABLE_LOAD(ResetQueryPoolEXT); #undef DEVICE_VTABLE_LOAD const auto physical_context = layer_context.get_context(physical_device); |
