[PATCH 2/3] winevulkan: Implement extension faking mechanism

Georg Lehmann dadschoorse at gmail.com
Tue Oct 13 18:37:54 CDT 2020


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?
>>>>
>



More information about the wine-devel mailing list