From 406e06d94371f67e09964698bafef17650484955 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 30 Aug 2015 19:09:44 +0200 Subject: [PATCH] ultra hack to propogate WSI extensions on replay --- renderdoc/driver/vulkan/vk_core.cpp | 4 ++++ renderdoc/driver/vulkan/vk_hooks_linux.cpp | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index b7a1ce118..7b94186b6 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -598,6 +598,10 @@ bool WrappedVulkan::Serialise_vkCreateDevice( { if(m_PhysicalReplayData[i].phys == physicalDevice) { + // VKTODO super ultra mega hyper hack of great justice + void PopulateDeviceHooks(VkDevice d); + PopulateDeviceHooks(device); + m_PhysicalReplayData[i].dev = device; // VKTODO: shouldn't be 0, 0 m_Real.vkGetDeviceQueue(device, 0, 0, &m_PhysicalReplayData[i].q); diff --git a/renderdoc/driver/vulkan/vk_hooks_linux.cpp b/renderdoc/driver/vulkan/vk_hooks_linux.cpp index 9692d3f08..a28e8a713 100644 --- a/renderdoc/driver/vulkan/vk_hooks_linux.cpp +++ b/renderdoc/driver/vulkan/vk_hooks_linux.cpp @@ -241,6 +241,17 @@ class VulkanHook : LibraryHook DefineHooks(); +void PopulateDeviceHooks(VkDevice d) +{ +#define HACK_WSI(func) VulkanHook::vkhooks.VK.func = (CONCAT(PFN_, func))VulkanHook::vkhooks.GPA_Device(d, STRINGIZE(func)); + HACK_WSI(vkCreateSwapChainWSI) + HACK_WSI(vkDestroySwapChainWSI) + HACK_WSI(vkGetSwapChainInfoWSI) + HACK_WSI(vkAcquireNextImageWSI) + HACK_WSI(vkQueuePresentWSI) +#undef HACK_WSI +} + bool VulkanHook::SetupHooks(VulkanFunctions &VK) { bool success = true;