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/5df54b7ef1714f28fb5da319c3e83...
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.