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/5df54b7ef1714f28fb5da319c3e83...
Great, I'd just note that in the description as well (perhaps linking to the source would be most practical).
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