winlator icon indicating copy to clipboard operation
winlator copied to clipboard

Vortek: Add DXVK 2.0 support for mali GPU

Open babizisalim opened this issue 2 months ago • 14 comments

Hello @brunodev85 I am writing to u this because you are the only one who can do this better then. anyone else Winlator bionic dev released his own Update for winlator bionic ludich 2.6 this update comes with dxvk 2.0 support for mali GPU and this truly smothing suprssing us as mali user however the wrapper driver still missing Bcn texture which cause serval graphical issues even if it support dx 11 Games So I think the only man who can make vortek support Dxvk 2×× above it you since vortek support Bcn texture It will be amazing to see Mali GPU finaly support Dxvk 2.×× if the dev of bionic mange to make it became real so you also can do it But there an issue unfortunately Helio g series doesn't support Dxvk 2.×× above that disappointed us I which of somehow we will seeh Helio G series and DM series both of them support DXvk 2.0 in the next update of the official release for winlator 11

@brunodev85 thank you again I am looking forward to see how it will be The official release for winlator 11

babizisalim avatar Oct 21 '25 20:10 babizisalim

Good idea! Because my phone can run dxvk 2.0 ee need more for Mali 🙏

Limbodinbo881 avatar Oct 22 '25 06:10 Limbodinbo881

@brunodev85 These are some of the implementations that the developer of the driver wrapper made according to a conversation:

Did you write a Vulkan layer or modify DXVK?

A driver inside Mesa that takes advantage of the existing X WSI implementation to implement Android WSI on top of it. An AHB is used as a backend for swapchain images then it gets sent over to Winlator through AHardwareBuffer_sendHandleToUnixSocket using DRI3 so that it can be used XServer side to display directly with EGL. It was originally written by xmem, I forked it since the guy left long time ago.

I assume you decompress BCn textures when vkCmdCopyBufferToImage gets executed, preferably using a compute shader.

No, not for now. textureCompressionBC is faked but the BCn formats properties are not advertised inside GetPhysicalDeviceImageFormatProperties and GetPhysicalDeviceFormatProperties. So, only games that use uncompressed textures or have them as an option works.

Then there's robustness2. Mali GPUs support null descriptors, so it's just about returning 0 for OOB reads. That's not critical, just claim it's supported

robustness2 is indeed only faked for now.

Alongside this I had to:

  1. Fake dualSrcBlend to make dx11 feature level 11.0 to be available.

  2. Patch SPIR-V shader code to fix a driver bug that caused black screen with dxvk 1.7.3 and older related to this

  3. Patch SPIR-V code to remove OpCapability shaderClipDistance and OpDecorate Builtin ShaderClipDistance after faking shaderClipDistance.

I hope it helps you

yit777 avatar Oct 22 '25 13:10 yit777

Hope Bruno making real enchance for vortek in winlator 11🙏

Limbodinbo881 avatar Oct 22 '25 13:10 Limbodinbo881

Patch SPIR-V shader code to fix a driver bug that caused black screen with dxvk 1.7.3 and older related to this

Lee Gao fixed this on his wrapper

robot-stack-7 avatar Oct 22 '25 14:10 robot-stack-7

And a support to fix Xclipse GPU in Vortek

6ui99uhkllj avatar Oct 22 '25 22:10 6ui99uhkllj

Can you guys do a test that the dxvk-2.x.x-stripped versions here are working with Mali GPUs? https://github.com/khanh-it/dxvk/releases

khanh-it avatar Oct 23 '25 01:10 khanh-it

@khanh-it how to use theme

babizisalim avatar Oct 23 '25 11:10 babizisalim

Can you guys do a test that the dxvk-2.x.x-stripped versions here are working with Mali GPUs? https://github.com/khanh-it/dxvk/releases

I tested all of the DXVK v2.x ones in the official Winlator v11.0 (Beta) by placing them in /data/data/com.winlator/files/installed_components/dxvk (after extracting them, renaming the directories x32 -> syswow64 and x64 -> system32, compressing them with tar.zstd archive format, and renaming them to dxvk-<version>.tzst), testing them with Mali-G71 and Vortek the requirements are still being checked despite them being "stripped" versions: Screenshot_20251023-183735_Winlator.png

DXVK 2.7.1 one outright crashes the entire container.

VoltrexKeyva avatar Oct 23 '25 15:10 VoltrexKeyva

@babizisalim Just like official DXVK, download the archives from my link. Copying the *.dll files to the game's folder (x32 for 32-bits games, and x64 for 64-bits games) and enabling them (allow DLLs override) in winecfg.

khanh-it avatar Oct 24 '25 01:10 khanh-it

@VoltrexKeyva Just download and copy the *.dll files to the game's folder as what I said in the above comment.

khanh-it avatar Oct 24 '25 01:10 khanh-it

@VoltrexKeyva Just download and copy the *.dll files to the game's folder as what I said in the above comment.

I tried that and the exact same issues occur, my previous method is technically no different than this.

VoltrexKeyva avatar Oct 24 '25 01:10 VoltrexKeyva

@brunodev85 hello. I think @ babizisalim's opinion is good, and improving the Vortek driver is a good choice. However, the problem is that now the Snapdragon 8e5 and Dimensity 9500 have appeared. When using Vortek on Snapdragon processor phones, the Adreno driver can be downloaded from GitHub, but it seems difficult to find the Adreno driver for Dimensity processor phones (Mary devices). Nevertheless, these issues should not be a problem for you, and I believe you will definitely handle and improve them I am looking forward to the official version. Oh, by the way, I think if you install Bionic on this Winlator, it may solve some games. If you also install real-time updates of Wine+Adreno drivers, it would be even better

XXxiaoyizi avatar Oct 24 '25 11:10 XXxiaoyizi

Vulkan has released version 1.4, maybe you can update it> @brunodev85 hello.

I think @ babizisalim's opinion is good, and improving the Vortek driver is a good choice. However, the problem is that now the Snapdragon 8e5 and Dimensity 9500 have appeared. When using Vortek on Snapdragon processor phones, the Adreno driver can be downloaded from GitHub, but it seems difficult to find the Adreno driver for Dimensity processor phones (Mary devices). Nevertheless, these issues should not be a problem for you, and I believe you will definitely handle and improve them I am looking forward to the official version. Oh, by the way, I think if you install Bionic on this Winlator, it may solve some games. If you also install real-time updates of Wine+Adreno drivers, it would be even better

XXxiaoyizi avatar Oct 24 '25 15:10 XXxiaoyizi

There is a problem with winlator When you press joystickFrame drops occur for Mali processors.

KARARTK avatar Oct 26 '25 10:10 KARARTK