This introduces a custom `VkPresentSurfacesInfoWine` struct to the driver queue present. It could very well be a separate vkQueuePresent parameter, now that the driver interface is manually written.
For now it provides the swapchains HWND, for vulkan_surface_presented, which is mostly just for winewayland purposes. Later I intend to change it to pass win32u surfaces wrappers.
--
v4: winevulkan: Remove now unnecessary vkCreateSwapchainKHR driver entry.
winevulkan: Remove now unnecessary vkDestroySwapchain driver entry.
win32u: Move vkQueuePresent implementation out of the user drivers.
winewayland: Remove now unnecessary swapchain wrapper.
winewayland: Remove now unnecessary swapchain extents checks.
win32u: Introduce a new vulkan_surface_presented driver entry.
winevulkan: Pass surface info for each vkQueuePresent swapchain to win32u.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5482
On Mon Apr 22 12:40:26 2024 +0000, Zhiyi Zhang wrote:
> What is this fake source supposed to do now? Virtual desktop has its own
> virtual source.
Was it ever related to virtual desktop mode? I don't know what it was for, I'm fine dropping it altogether.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5422#note_67597
Calling write_current_mode() in add_gpu seems weird. Not to mention write_current_mode() actually writes the current mode for the last source. write_current_mode() is also called at multiple places. It just seems that it should be called at one appropriate place and that's it.
Also, why is this patch necessary?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5422#note_67593
'add_physical_source' here just doesn't look consistent with other functions in device_manager. Maybe add a "BOOL is_physical" or something in struct device_manager_ctx so that when both is_physical and is_virtual_desktop() are TRUE we report sources as detached. Then we set is_physical to FALSE and start adding sources for the virtual desktop. Use your best judgment.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5422#note_67592
I don't think These physical sources should be visible in EnumDisplayDevices(). If you report a physical source, doesn't that mean I can attach it? by calling ChangeDisplaySettings() with a valid mode?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5422#note_67589