Fix VK_EXT_full_screen_exclusive functions

Hook up AcquireFullScreenExclusiveModeEXT, ReleaseFullScreenExclusiveModeEXT,
and GetDeviceGroupSurfacePresentModes2EXT functions.
This commit is contained in:
amhagan
2019-05-14 11:21:08 -04:00
committed by Baldur Karlsson
parent 3791dee78d
commit 8a4f7c918b
3 changed files with 11 additions and 5 deletions
+4 -1
View File
@@ -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, \
+1 -1
View File
@@ -7383,7 +7383,7 @@ void Deserialise(const VkWin32KeyedMutexAcquireReleaseInfoKHR &el)
template <typename SerialiserType>
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);
@@ -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(