diff --git a/renderdoc/driver/vulkan/vk_hookset_defs.h b/renderdoc/driver/vulkan/vk_hookset_defs.h index d4e916069..96e1140db 100644 --- a/renderdoc/driver/vulkan/vk_hookset_defs.h +++ b/renderdoc/driver/vulkan/vk_hookset_defs.h @@ -47,7 +47,10 @@ HookInitExtension(VK_KHR_external_semaphore_win32, ImportSemaphoreWin32HandleKHR); \ HookInitExtension(VK_KHR_external_semaphore_win32, GetSemaphoreWin32HandleKHR); \ HookInitExtension(VK_KHR_external_fence_win32, ImportFenceWin32HandleKHR); \ - HookInitExtension(VK_KHR_external_fence_win32, GetFenceWin32HandleKHR); + HookInitExtension(VK_KHR_external_fence_win32, GetFenceWin32HandleKHR); \ + HookInitExtension(VK_EXT_full_screen_exclusive, AcquireFullScreenExclusiveModeEXT); \ + HookInitExtension(VK_EXT_full_screen_exclusive, ReleaseFullScreenExclusiveModeEXT); \ + HookInitExtension(VK_EXT_full_screen_exclusive, GetDeviceGroupSurfacePresentModes2EXT); #define HookDefine_PlatformSpecific() \ HookDefine4(VkResult, vkCreateWin32SurfaceKHR, VkInstance, instance, \ diff --git a/renderdoc/driver/vulkan/vk_serialise.cpp b/renderdoc/driver/vulkan/vk_serialise.cpp index c684729be..427162ae3 100644 --- a/renderdoc/driver/vulkan/vk_serialise.cpp +++ b/renderdoc/driver/vulkan/vk_serialise.cpp @@ -7383,7 +7383,7 @@ void Deserialise(const VkWin32KeyedMutexAcquireReleaseInfoKHR &el) template void DoSerialise(SerialiserType &ser, VkSurfaceFullScreenExclusiveInfoEXT &el) { - RDCASSERT(ser.IsReading() || el.sType == VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT); + RDCASSERT(ser.IsReading() || el.sType == VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT); SerialiseNext(ser, el.sType, el.pNext); SERIALISE_MEMBER(fullScreenExclusive); diff --git a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp index 928cae868..a6d2b08f4 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp @@ -73,17 +73,20 @@ VkResult WrappedVulkan::vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR *pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR *pModes) { - return ObjDisp(device)->GetDeviceGroupSurfacePresentModes2EXT(Unwrap(device), pSurfaceInfo, pModes); + VkPhysicalDeviceSurfaceInfo2KHR unwrapped = *pSurfaceInfo; + unwrapped.surface = Unwrap(unwrapped.surface); + + return ObjDisp(device)->GetDeviceGroupSurfacePresentModes2EXT(Unwrap(device), &unwrapped, pModes); } VkResult WrappedVulkan::vkAcquireFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain) { - return ObjDisp(device)->AcquireFullScreenExclusiveModeEXT(Unwrap(device), swapchain); + return ObjDisp(device)->AcquireFullScreenExclusiveModeEXT(Unwrap(device), Unwrap(swapchain)); } VkResult WrappedVulkan::vkReleaseFullScreenExclusiveModeEXT(VkDevice device, VkSwapchainKHR swapchain) { - return ObjDisp(device)->ReleaseFullScreenExclusiveModeEXT(Unwrap(device), swapchain); + return ObjDisp(device)->ReleaseFullScreenExclusiveModeEXT(Unwrap(device), Unwrap(swapchain)); } VkResult WrappedVulkan::vkGetPhysicalDeviceSurfacePresentModes2EXT(