On 14.10.20 01:23, Zebediah Figura wrote:
On 10/13/20 4:54 PM, Joshua Ashton wrote:
Figured I should add the reason why, is because just passing it through will cause the device to fail to be created because nobody supports VK_EXT_full_screen_exclusive on Linux.
Sure, but they could.
It's an entirely Windows-centric extension.
Well, no, it's not really, but it does include some API-level integration with win32 monitors *if* KHR_win32_surface is supported. In that case, as far as I can see, we don't even need to do anything, because the VkSurfaceFullScreenExclusiveWin32InfoEXT structure would just be ignored.
No, according to the vulkan spec a VkSurfaceFullScreenExclusiveWin32InfoEXT is illegal in any chain unless the full screen + win32 surface exts are enabled. In practice, this will break layers like renderdoc. So we would still need code to remove that struct from pNext chains.
Georg
Not that this necessarily means that lower-level drivers should be the ones to implement the extension, but if nothing else, this information isn't present at all in the patch.
Also, do we really need a generic mechanism for this, wired into make_vulkan? Can't we just handle this extension specially in wine_vk_device_convert_create_info()?
- Joshie 🐸✨
On 10/13/20 10:42 PM, Joshua Ashton wrote:
winex11/winemac only does this for instance extensions.
VK_EXT_full_screen_exclusive is a device extension.
- Joshie 🐸✨
On 10/13/20 10:35 PM, Zebediah Figura wrote:
Why not do this the normal way, i.e. by modifying the code in winex11 and winemac?
Also, what's the point of faking the extension like this? Why not just pass it through?