-
-
Notifications
You must be signed in to change notification settings - Fork 295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows On ARM - Vulkan renderer on Snapdragon X Series CPUs #1878
Comments
I managed to remove the Vulkan DX12 Wrapper, by installing the compatibility pack and brutally deleting the Vulkan wrapper dlls (dzn_layer.dll and vulkan_dzn.dll) from now that's the error I get: this is the new log:
Ironically VK_KHR_external_memory is available in the DX12 wrapper 😁. |
The irony even goes further, as all who want Dozen (needed e.g. for the grandpa generation of Snapdragons) can not get it and not few who could use, would rather get rid of it in favour of a native Vulkan driver. 😏 Perhaps we should skip informal requests to MS like this one, and create an official issue aksing for a switch mechanism for all 3 wrappers @ https://github.com/microsoft/OpenCLOn12 . As for Xemu's Vulkan renderer on WinARM64, I can confirm the behaviour:
|
A small update after some tests. I tried to debug with vkconfig to check what the native driver is missing that Xemu require. This I think is the full list:
Here is my debug log with the Native driver:
I tried also with the DX12 wrapper. Seems that this one is only missing VK_EXT_memory_budget.
vkconfig also seems to let you decide what Vulkan device you can use, so I can try both the drivers without uninstalling completely or partially the compatibility pack. @ArminiusTux I agree with you about opening an official issue in the Microsoft repo. Later I will open it. |
Bug Description
Following #791 issue, on Snapdragon X Series PCs, we stated that OpenGL renderer works fine but Vulkan renderer has issues.
I have made some research about the topic, especially about the error:
Error: Device does not support required feature shaderTessellationAndGeometryPointSize
It turns out that by installing OpenCL™, OpenGL®, and Vulkan® Compatibility Pack, that is actually required to get OpenGL working for Xemu, also replaces the Vulkan native driver (Qualcomm(R) Adreno(TM) X1-85 GPU) to a wrapper to DirectX12 Microsoft Direct3D12 (Qualcomm(R) Adreno(TM) X1-85 GPU).
Comparing the two "drivers" (not sure it's also the correct name to name the Vulkan Wrapper on DirectX12), we can see the native one has more feature support, including shaderTessellationAndGeometryPointSize, that is missing in the DX12 wrapper:
The only way to get back the Native Vulkan driver that I found out, is uninstalling the "OpenCL™, OpenGL®, and Vulkan® Compatibility Pack".
Doing this I lost most of the OpenGL compatibility.
I set the default renderer in Xemu via the xemu.toml file to Vulkan:
Trying to launch Xemu I anyway get an error about OpenGL:
Since I don't think Microsoft decides to provide the wrappers separately, in the next few days I will try to find a way to install the compatibility package excluding the Vulkan wrapper installation and see if it works.
In the meantime, I was wondering, if the backend set up is Vulkan, is it correct for Xemu to check for OpenGL availability? Even with the Vulkan backend, is there still a need for OpenGL for some features?
Expected Behavior
Skip OpenGL check and run directly Xemu with Vulkan
xemu Version
0.8.10-4-g928f84d06b
System Information
OS: Windows 11 On ARM (Home) 24H2
CPU: Snapdragon(R) X Plus - X1P42100 - Qualcomm(R) Oryon(TM) CPU 3.24 GHz
GPU: Qualcomm(R) Adreno(TM) X1-45 GPU (Adreno 726)
GPU Driver: 31.0.82.0 / Win 11 Arm64
Additional Context
The text was updated successfully, but these errors were encountered: