[PATCH 2/2] winevulkan: Implement vkEnumerateDeviceLayerProperties
Liam Middlebrook
lmiddlebrook at nvidia.com
Thu Mar 18 13:53:35 CDT 2021
On 3/18/21 10:54 AM, Liam Middlebrook wrote:
>
>
> On 3/17/21 10:44 PM, Victor Chiletto wrote:
>> On 16/03/2021 19:59, Liam Middlebrook wrote:
>>>
>>>
>>> On 3/6/21 12:46 PM, Victor Hermann Chiletto wrote:
>>>> This is generally implemented by the system's Vulkan ICD, and
>>>> passing it
>>>> through results in applications (namely, Unreal Engine) attempting to
>>>
>>> It would be nice to name a specific UE4 application you're seeing
>>> this with for posterity.
>>>
>>
>> Project Wingman (Steam appid 895870), but inspection of the UE4 source
>> code [1] shows that this issue will happen in any UE4 application that
>> uses the Vulkan RHI.
>>
>> [1]
>> https://github.com/EpicGames/UnrealEngine/blob/5df54b7ef1714f28fb5da319c3e83d96f0bedf08/Engine/Source/Runtime/VulkanRHI/Private/VulkanLayers.cpp#L524
>
>
> Great, I'd just note that in the description as well (perhaps linking to
> the source would be most practical).
Actually I was logged into GitHub so I didn't notice that this is a
private repository. I think just citing the game and noting this should
affect all UE4 titles is more sensible than linking to a private
repository on GitHub.
Thanks,
Liam Middlebrook
>
>>
>>
>>>> query for layer extensions in vkEnumerateDeviceExtensionProperties.
>>>>
>>>
>>> I think the wording is a bit off here. Did you mean to cite
>>> vkEnumerateDeviceLayerProperties() rather than
>>> vkEnumerateDeviceExtensionProperties() here? Rather than saying
>>> "layer extensions" I think it would make sense to say "device layers".
>>>
>>
>> Currently, this function is passed through winevulkan to the system's
>> Vulkan loader, which causes the loader to write the system's device
>> layers properties in pProperties.
>>
>> UE4 then calls vkEnumerateDeviceExtensionProperties, using
>> VkLayerProperties::layerName as the pLayerName.
>>
>> winevulkan's implementation of vkEnumerateDeviceExtensionProperties
>> then returns VK_ERROR_LAYER_NOT_PRESENT, crashing UE4.
>>
>> If this is an okay description I can resubmit the patch.
>
> Yeah that looks good, it clears up the flow of events leading up to the
> crash, and why this change is not only more correct, but also necessary.
>
>
> Thanks,
>
> Liam Middlebrook
>
>>
More information about the wine-devel
mailing list