This is the third (and last) part of the Wayland driver Vulkan subseries:
1. Implement `vkQueuePresentKHR` and support reporting `VK_ERROR_OUT_OF_DATE_KHR` and `VK_ERROR_SURFACE_LOST_KHR`.
2. Misc. enhancements/fixes to ensure the subsurface containing the vulkan rendering is displayed properly.
3. Implement a couple of remaining Vulkan functions.
With this MR you can start enjoying some of your games with the Wayland driver (either directly with Vulkan or with a D3D->Vulkan translation). Please note, however, that we don't currently support what's needed for mouselook (you will currently get erratic view movement), so most first-person 3D games are not playable yet.
Thanks!
--
v3: winewayland.drv: Implement vkGetPhysicalDevicePresentRectanglesKHR.
winewayland.drv: Implement vkGetDeviceGroupSurfacePresentModesKHR.
winewayland.drv: Apply client subsurface position on creation.
winewayland.drv: Ensure Vulkan parent surface is mapped with proper size.
winewayland.drv: Detect and report vkQueuePresentKHR errors.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4522
Starting with LLVM 17, having non-private labels between `.cfi_startproc`/`.cfi_endproc` triggers "invalid CFI advance_loc expression" errors when targeting Mach-O.
Use local labels instead, and store the pointer in `.data` so it can be read by `handle_syscall_trap()`.
Based on a patch by Jacek Caban.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55863
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4547