xMeM / vulkan-wsi-layer

Other
21 stars 4 forks source link

"mesa-vulkan-icd-wrapper" issues Reporting 2024-11-06 (GPU : Qualcomm Adreno 650) #24

Closed hansm629 closed 1 week ago

hansm629 commented 3 weeks ago

@xMeM Thank you so much for the new build! Vulkan is now work on the Adreno 650 GPU!

I have reported the newly discovered issues.

https://github.com/xMeM/termux-packages/actions/runs/11684577142

Termux-info

``` Termux Variables: TERMUX_API_VERSION=0.50.1 TERMUX_APK_RELEASE=F_DROID TERMUX_APP_PACKAGE_MANAGER=apt TERMUX_APP_PID=31399 TERMUX_IS_DEBUGGABLE_BUILD=0 TERMUX_MAIN_PACKAGE_FORMAT=debian TERMUX_VERSION=0.118.0 TERMUX__USER_ID=0 Packages CPU architecture: aarch64 Subscribed repositories: # sources.list deb https://packages.termux.org/apt/termux-main stable main # tur-repo (sources.list.d/tur.list) deb https://tur.kcubeterm.com tur-packages tur tur-on-device tur-continuous # x11-repo (sources.list.d/x11.list) deb https://packages-cf.termux.dev/apt/termux-x11/ x11 main Updatable packages: All packages up to date termux-tools version: 1.44.2 Android version: 13 Kernel build information: Linux localhost 4.19.113-27166950 #1 SMP PREEMPT Wed Aug 7 11:41:11 KST 2024 aarch64 Android Device manufacturer: samsung Device model: SM-G988N LD Variables: LD_LIBRARY_PATH= LD_PRELOAD=/data/data/com.termux/files/usr/lib/libtermux-exec.so Installed termux plugins: com.termux.widget versionCode:13 com.termux.x11 versionCode:14 com.termux.api versionCode:51 ```

issue list


1. mesa-24.x.x Zink work issue

vkcube and vkmark work, but Zink does not work in mesa-24.x.x.

$ MESA_LOADER_DRIVER_OVERRIDE=zink glxinfo -B
name of display: :1.0
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
Error: couldn't find RGB GLX visual or fbconfig
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
$ MESA_LOADER_DRIVER_OVERRIDE=zink glmark2
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
Error: glXChooseFBConfig() failed
Error: Error: Couldn't get GL visual config!
Error: main: Could not initialize canvas
$ MESA_LOADER_DRIVER_OVERRIDE=zink blender
Warning: Falling back to the standard locale ("C")
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
Error! Unsupported graphics card or driver.
A graphics card and driver with support for OpenGL 3.3 or higher is required.
The program will now close.
$ MESA_LOADER_DRIVER_OVERRIDE=zink shotcut
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
Aborted
MESA_LOADER_DRIVER_OVERRIDE=zink kdenlive
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QColorSpace(), profile  QSurfaceFormat::NoProfile)
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
glx: failed to create drisw screen
failed to load driver: zink
Could not initialize GLX
Aborted

2. Supertuxkart Vulkan mode screen issue (update : 2024-11-06)

Supertuxkart in Vulkan mode, severe artifacts appear in the menu. While there are no artifacts in the game screen, there is significant stuttering. (This is a common issue for both the Adreno 650 GPU, Adreno 740 GPU and Adreno 750 GPU.)

supertuxkart --render-driver=vulkan

https://github.com/user-attachments/assets/794c80c2-d19a-4af3-a56d-cef49e7f89ed


Extra Test

The vkmark performance is excellent, almost 2000 score. It feels like the performance is on par with the actual capabilities of the Adreno 650 GPU. (The performance is 2x as high as in mesa-vulkan-icd-freedreno-dri3-24.0.4.deb.)

Interestingly, in the latest build of mesa-vulkan-icd-wrapper_24.2.5_aarch64.deb, the Adreno 650 GPU is showing higher vkmark performance than both the Adreno 750 GPU and the Xclipse 940 GPU.

$ vkmark
=======================================================
    vkmark 2017.08
=======================================================
    Vendor ID:      0x5143
    Device ID:      0x6050002
    Device Name:    Adreno (TM) 650
    Driver Version: 2149539840
    Device UUID:    eeb29301435100000000020005060000
=======================================================
[vertex] device-local=true: FPS: 2939 FrameTime: 0.340 ms
[vertex] device-local=false: FPS: 2074 FrameTime: 0.482 ms
[texture] anisotropy=0: FPS: 1999 FrameTime: 0.500 ms
[texture] anisotropy=16: FPS: 1942 FrameTime: 0.515 ms
[shading] shading=gouraud: FPS: 1785 FrameTime: 0.560 ms
[shading] shading=blinn-phong-inf: FPS: 1749 FrameTime: 0.572 ms
[shading] shading=phong: FPS: 1672 FrameTime: 0.598 ms
[shading] shading=cel: FPS: 1662 FrameTime: 0.602 ms
[effect2d] kernel=edge: FPS: 1519 FrameTime: 0.658 ms
[effect2d] kernel=blur: FPS: 1144 FrameTime: 0.874 ms
[desktop] <default>: FPS: 1525 FrameTime: 0.656 ms
[cube] <default>: FPS: 2482 FrameTime: 0.403 ms
[clear] <default>: FPS: 2911 FrameTime: 0.344 ms
=======================================================
                                   vkmark Score: 1954
=======================================================

Zink in mesa-24.x.x did not work, but mesa-zink_22.0.5 (tur-repo) did.

Aside from a minor artifact issue in the [buffer] of glmark2 & glmark2-es2 and Blender 3D not working,

$ GALLIUM_DRIVER=zink blender
Warning: Falling back to the standard locale ("C")
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Adreno (TM) 650) doesn't support base Zink requirements: feats.features.logicOp have_EXT_custom_border_color 
Warning: Could not find a matching GPU name. Things may not behave as expected.
Detected OpenGL configuration:
Vendor: Collabora Ltd
Renderer: zink (Adreno (TM) 650)
ZINK: warning, this is cpu-based conditional rendering, say bye-bye to fps
Writing: /data/data/com.termux/files/usr/tmp/blender.crash.txt
Segmentation fault

glmark2 & glmark2-es2 benchmarks could complete successfully, and Shotcut, Kdenlive, and Supertuxkart also worked well.

Screenshot_2024-10-31_01-08-16 Screenshot_2024-10-31_01-24-14 Screenshot_2024-10-31_01-25-56 Screenshot_2024-10-31_01-26-57

hansm629 commented 3 weeks ago

@xMeM I tested with the latest build. The reported issue is still occurring on the Adreno 650 GPU.

https://github.com/xMeM/termux-packages/actions/runs/11684577142 mesa-vulkan-icd-wrapper-dbg_24.2.5-4_aarch64.deb

And when running Supertuxkart in Vulkan mode, severe artifacts appear in the menu. While there are no artifacts in the game screen, there is significant stuttering. (This is a common issue for both the Adreno 650 GPU, Adreno 740 GPU and Adreno 750 GPU.)

https://github.com/user-attachments/assets/794c80c2-d19a-4af3-a56d-cef49e7f89ed

hansm629 commented 3 weeks ago

@xMeM I have updated the issue description as well! 😀

hansm629 commented 1 week ago

@xMeM For the Adreno 650 GPU, it seems to work perfectly in most scenarios, except for Zink.

I will close this issue, and if any additional Vulkan related issues are found, I’ll report them separately. 😀