diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index bb0e2d42c..096def07b 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -559,6 +559,7 @@ public: // return the pre-selected device and queue VkDevice GetDev() { RDCASSERT(m_Device != VK_NULL_HANDLE); return m_Device; } + uint32_t GetQFamilyIdx() { return m_QueueFamilyIdx; } VkQueue GetQ() { RDCASSERT(m_Device != VK_NULL_HANDLE); return m_Queue; } VkInstance GetInstance() { RDCASSERT(m_Instance != VK_NULL_HANDLE); return m_Instance; } VkPhysicalDevice GetPhysDev() { RDCASSERT(m_PhysicalDevice != VK_NULL_HANDLE); return m_PhysicalDevice; } diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index e865b319d..c939b5af8 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -261,6 +261,12 @@ void VulkanReplay::OutputWindow::Create(WrappedVulkan *driver, VkDevice device, } } + VkBool32 supported = false; + ObjDisp(inst)->GetPhysicalDeviceSurfaceSupportKHR(Unwrap(phys), driver->GetQFamilyIdx(), Unwrap(surface), &supported); + + // can't really recover from this anyway + RDCASSERT(supported); + VkSwapchainCreateInfoKHR swapInfo = { VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR, NULL, 0, Unwrap(surface),