这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@xMeM
Copy link
Contributor

@xMeM xMeM commented Dec 10, 2024

Wrap the Android system Vulkan library into an ICD and provides X11 platform surface support.

@twaik
Copy link
Member

twaik commented Dec 10, 2024

@truboxl @licy183 @sylirre probably this driver can replace vulkan-loader-android and implement default vulkan ICD at the same time. Probably you want to test it a bit more deep.

@twaik
Copy link
Member

twaik commented Dec 10, 2024

For some reasons latest termux-x11 falls with segmentation fault if I launch vkcube. Will investigate it.

@Biswa96
Copy link
Member

Biswa96 commented Dec 10, 2024

Does this support Adreno 505 GPU? I got the following errors.

$ termux-x11 -xstartup vkcube
Selected WSI platform: xcb
Selected GPU 0: Adreno (TM) 505, type: IntegratedGpu
ERROR(/home/builder/.termux-build/vulkan-wsi-layer/src/wsi/swapchain_base.cpp:323): init_platform(device, swapchain_create_info, use_presentation_thread)
ERROR(/home/builder/.termux-build/vulkan-wsi-layer/src/layer/swapchain_api.cpp:65): Failed to initialise swapchain
23377 killed by signal 11

$ termux-x11 -xstartup vulkaninfo
WARNING: [Loader Message] Code 0 : Layer VK_LAYER_window_system_integration uses API version 1.3 which is older than the application specified API version of 1.4. May cause issues.
...more info...

@xMeM
Copy link
Contributor Author

xMeM commented Dec 10, 2024

Uninstall vulkan-wsi-layer , it is no longer needed.

@Biswa96
Copy link
Member

Biswa96 commented Dec 10, 2024

Thanks for the hint. Now, vkcube is working but vulkaninfo fails.

$ vulkaninfo
../src/src/vulkan/wsi/wsi_common_x11.c:938: VkResult x11_surface_get_formats2(VkIcdSurfaceBase *, struct wsi_device *, const void *, uint32_t *, VkSurfaceFormat2KHR *): assertion "f->sType == VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" failed
Aborted

@twaik
Copy link
Member

twaik commented Dec 10, 2024

Does not work fine on my device. I get this in X server log.

12-10 12:33:14.825 10980 10992 E [Gralloc-ERROR]: validate_lock_input_parameters:227 Lock is not supported for AFBC enabled buffers. wxh(500 500) Internal Format:0x100000001
12-10 12:33:14.825 10980 10992 W Gralloc2: lock(0x7e50a94500, ...) failed: 7
12-10 12:33:14.825 10980 10992 E LorieNative: DRI3: AHardwareBuffer_lock failed: 7

@xMeM
Copy link
Contributor Author

xMeM commented Dec 10, 2024

Thanks for the hint. Now, vkcube is working but vulkaninfo fails.

$ vulkaninfo
../src/src/vulkan/wsi/wsi_common_x11.c:938: VkResult x11_surface_get_formats2(VkIcdSurfaceBase *, struct wsi_device *, const void *, uint32_t *, VkSurfaceFormat2KHR *): assertion "f->sType == VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" failed
Aborted

This is an issue with vulkan-tools , fixed by KhronosGroup/Vulkan-Tools@2744de9.

@twaik
Copy link
Member

twaik commented Dec 10, 2024

Is there any reason why CI built libwayland-protocols and not the actual package? @sylirre ?

@twaik twaik closed this Dec 10, 2024
@twaik twaik reopened this Dec 10, 2024
@sylirre
Copy link
Member

sylirre commented Dec 10, 2024

@twaik CI built these packages:

  • libwayland-protocols_1.38_all.deb
  • mesa-vulkan-icd-wrapper_24.3.1-1_aarch64.deb
  • mesa-vulkan-icd-wrapper_24.3.1-1_arm.deb

icd wrapper has TERMUX_PKG_BLACKLISTED_ARCHES="i686, x86_64"

I don't see missing packages.

@twaik
Copy link
Member

twaik commented Dec 10, 2024

Oh, I was checking the x86_64 version.
@xMeM is there any reason to make it only arm and arm64?

@xMeM
Copy link
Contributor Author

xMeM commented Dec 10, 2024

Not tested on x86_64 devices.

@xMeM
Copy link
Contributor Author

xMeM commented Dec 10, 2024

Does not work fine on my device. I get this in X server log.

12-10 12:33:14.825 10980 10992 E [Gralloc-ERROR]: validate_lock_input_parameters:227 Lock is not supported for AFBC enabled buffers. wxh(500 500) Internal Format:0x100000001
12-10 12:33:14.825 10980 10992 W Gralloc2: lock(0x7e50a94500, ...) failed: 7
12-10 12:33:14.825 10980 10992 E LorieNative: DRI3: AHardwareBuffer_lock failed: 7

I changed the Usage of AHardwareBuffer, can you try again?

@twaik
Copy link
Member

twaik commented Dec 10, 2024

Unfortunately the package is stripped and debug symbols are disabled so there is no much info.

Selected WSI platform: xlib
Selected GPU 0: Mali-G77, type: IntegratedGpu                                                   
Segmentation fault                                                                              
--------- beginning of crash
12-10 16:32:52.306  9822  9822 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), faul
t addr 0xe0 in tid 9822 (vkcube), pid 9822 (vkcube)
--------- beginning of main                                                                     
12-10 16:32:52.324  9831  9831 I crash_dump64: obtaining output fd from tombstoned, type: kDebug
gerdTombstoneProto                                                                              
12-10 16:32:52.326  9831  9831 I crash_dump64: performing dump of process 9822 (target tid = 982
2)                                                                                              
12-10 16:32:52.369  9831  9831 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *
** *** ***                                                                                      
12-10 16:32:52.369  9831  9831 F DEBUG   : Build fingerprint: 'samsung/r8sxx/r8s:13/TP1A.220624.
014/G780FXXSLFXK8:user/release-keys'
12-10 16:32:52.369  9831  9831 F DEBUG   : Revision: '5'                                        
12-10 16:32:52.369  9831  9831 F DEBUG   : ABI: 'arm64'
12-10 16:32:52.369  9831  9831 F DEBUG   : Processor: '4'                                       
12-10 16:32:52.369  9831  9831 F DEBUG   : Timestamp: 2024-12-10 16:32:52.330705687+0200        
12-10 16:32:52.369  9831  9831 F DEBUG   : Process uptime: 1s                                   
12-10 16:32:52.369  9831  9831 F DEBUG   : Cmdline: vkcube                                      
12-10 16:32:52.369  9831  9831 F DEBUG   : pid: 9822, tid: 9822, name: vkcube  >>> vkcube <<<   
12-10 16:32:52.369  9831  9831 F DEBUG   : uid: 10677                                           
12-10 16:32:52.369  9831  9831 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
 0x00000000000000e0                                                                             
12-10 16:32:52.369  9831  9831 F DEBUG   : Cause: null pointer dereference                      
12-10 16:32:52.369  9831  9831 F DEBUG   :     x0  0000000000000000  x1  00000074a6c02800  x2  0
0000074a9a6a008  x3  000000000000001d                                                           
12-10 16:32:52.369  9831  9831 F DEBUG   :     x4  0000000000000000  x5  0000000000000000  x6  0
000000000000000  x7  7f7f7f7f7f7f7f7f
12-10 16:32:52.369  9831  9831 F DEBUG   :     x8  0a032e85271b5fb7  x9  0a032e85271b5fb7  x10 0
0000074a6c00ae0  x11 00000074a6c01450                                                           
12-10 16:32:52.369  9831  9831 F DEBUG   :     x12 00000074a6c01430  x13 0000000000081708  x14 0
000000000080308  x15 ffffffffffffffff
12-10 16:32:52.369  9831  9831 F DEBUG   :     x16 00000074a71d2a60  x17 00000074a71c227c  x18 0
0000074a9574000  x19 0000007fe2413590
12-10 16:32:52.369  9831  9831 F DEBUG   :     x20 0000005a79ed9180  x21 0000005a79e89f09  x22 0
0000074a6d71754  x23 0000000000000001
12-10 16:32:52.369  9831  9831 F DEBUG   :     x24 0000005a79ed7000  x25 0000000000000000  x26 0
000000000000055  x27 0000007fe2413590                                                           
12-10 16:32:52.369  9831  9831 F DEBUG   :     x28 0000000000000000  x29 0000007fe2414690
12-10 16:32:52.369  9831  9831 F DEBUG   :     lr  0000005a79e9de24  sp  0000007fe24134d0  pc  0
000005a79e9de28  pst 0000000060000000
12-10 16:32:52.369  9831  9831 F DEBUG   : backtrace:                                           
12-10 16:32:52.369  9831  9831 F DEBUG   :   NOTE: Function names and BuildId information is mis
sing for some frames due                                                                        
12-10 16:32:52.369  9831  9831 F DEBUG   :   NOTE: to unreadable libraries. For unwinds of apps,
 only shared libraries
12-10 16:32:52.369  9831  9831 F DEBUG   :   NOTE: found under the lib/ directory are readable.
12-10 16:32:52.369  9831  9831 F DEBUG   :   NOTE: On this device, run setenforce 0 to make the 
libraries readable.
12-10 16:32:52.369  9831  9831 F DEBUG   :   NOTE: Unreadable libraries:
12-10 16:32:52.369  9831  9831 F DEBUG   :   NOTE:   /data/data/com.termux/files/usr/bin/vkcube
12-10 16:32:52.369  9831  9831 F DEBUG   :       #00 pc 000000000001de28  /data/data/com.termux/
files/usr/bin/vkcube
12-10 16:32:52.369  9831  9831 F DEBUG   :       #01 pc 0000000000083198  /apex/com.android.runt
ime/lib64/bionic/libc.so (__libc_init+96) (BuildId: ae97b4676db8ce3f620ba6bf7932eba6)
12-10 16:32:52.376  9831  9831 E crash_dump64: AM data write failed: Broken pipe
~/.../downloads/debs $

@hansm629
Copy link

@xMeM
Xclipse 940 GPU : vkmark [clear] flickering issue

vkmark_clear_flickering_issue.mp4

@hansm629
Copy link

@xMeM
Adreno 750 GPU : clvk not work Issue

~$ clinfo
[CLVK] Could not initialise any device!

@hansm629
Copy link

@xMeM
Could you please make MESA_VK_WSI_DEBUG=nosync environment variable work like it did in the old debug build version?

@Artewar67
Copy link

Artewar67 commented Dec 10, 2024

This version (24.3.1) stopped working with all applications except vulkaninfo compared to 24.2.5. I tested all variations of 24.3.1 and none of them works.

Selected WSI platform: xcb
Selected GPU 0: Mali-G76, type: IntegratedGpu
termux :0 -xstartup "vkmark"
7482 killed by signal 11

@paulowesll
Copy link

It's working with lasted termux-x11 update

https://github.com/termux/termux-x11/releases/tag/nightly

This version (24.3.1) stopped working with all applications except vulkaninfo compared to 24.2.5. I tested all variations of 24.3.1 and none of them works.

Selected WSI platform: xcb
Selected GPU 0: Mali-G76, type: IntegratedGpu
termux :0 -xstartup "vkmark"
7482 killed by signal 11

@Artewar67
Copy link

It's working with lasted termux-x11 update

https://github.com/termux/termux-x11/releases/tag/nightly

Updated termux-x11 and install new version of termux-x11-nightly. Nothing change

@twaik
Copy link
Member

twaik commented Dec 10, 2024

I managed to get better crash log

twaik@twaik:~/termux-x11$ adb -s phone:5555 logcat -c; adb -s phone:5555 logcat | ~/Android/Sdk/ndk/28.0.12674087/ndk-stack -i /dev/stdin --sym=/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/src/vulkan/wrapper
********** Crash dump: **********
Build fingerprint: 'samsung/r8sxx/r8s:13/TP1A.220624.014/G780FXXSLFXK8:user/release-keys'
#00 0x000000000076dacc /vendor/lib64/egl/libGLES_mali.so (vulkan::image::image_init_info::handle_image_format(gfx::host_mem_allocator&)+216) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#01 0x000000000076e46c /vendor/lib64/egl/libGLES_mali.so (vulkan::image::image_init_info::parse_image_info(gfx::host_mem_allocator&, bool, hal::surface_metadata const*)+376) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#02 0x000000000076b5b4 /vendor/lib64/egl/libGLES_mali.so (vulkan::image::init(vulkan::device*, VkImageCreateInfo const&, gfx::host_mem_allocator const&, bool, hal::surface_metadata const*, unsigned long const*, unsigned long const*)+276) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#03 0x000000000076f8cc /vendor/lib64/egl/libGLES_mali.so (vulkan::image::init_external_common(vulkan::device*, VkImageCreateInfo const&, unsigned long const*, unsigned long const*, gfx::host_mem_allocator const&, bool, hal::surface_metadata const&, int, hal::drm_format_modifier)+272) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#04 0x0000000000783960 /vendor/lib64/egl/libGLES_mali.so (vulkan::android_deferred_image_init_and_bind(vulkan::device*, vulkan::image*, vulkan::device_memory*)+612) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#05 0x000000000076baf4 /vendor/lib64/egl/libGLES_mali.so (vkBindImageMemory+20) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#06 0x00000000001f7f60 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
wsi_create_ahardware_buffer_blit_context
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common.c:2359:13
#07 0x00000000001f4b70 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
wsi_create_image
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common.c:777:13
#08 0x00000000001fce0c /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
x11_image_init
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common_x11.c:2073:13
#09 0x00000000001fbb90 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
x11_surface_create_swapchain
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common_x11.c:2791:16
#10 0x00000000001f52e0 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
wsi_CreateSwapchainKHR
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common.c:1058:22
#11 0x000000000007a254 /data/data/com.termux/files/usr/lib/libvulkan.so.1.3.302
#12 0x000000000007c0ec /data/data/com.termux/files/usr/lib/vkmark/xcb.so
#13 0x000000000005c0c4 /data/data/com.termux/files/usr/lib/vkmark/xcb.so
#14 0x00000000000501d4 /data/data/com.termux/files/usr/lib/vkmark/xcb.so
#15 0x00000000000ad458 /data/data/com.termux/files/usr/bin/vkmark
#16 0x0000000000083198 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+96) (BuildId: ae97b4676db8ce3f620ba6bf7932eba6)
Crash dump is completed

********** Crash dump: **********
Build fingerprint: 'samsung/r8sxx/r8s:13/TP1A.220624.014/G780FXXSLFXK8:user/release-keys'
#00 0x000000000076dacc /vendor/lib64/egl/libGLES_mali.so (vulkan::image::image_init_info::handle_image_format(gfx::host_mem_allocator&)+216) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#01 0x000000000076e46c /vendor/lib64/egl/libGLES_mali.so (vulkan::image::image_init_info::parse_image_info(gfx::host_mem_allocator&, bool, hal::surface_metadata const*)+376) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#02 0x000000000076b5b4 /vendor/lib64/egl/libGLES_mali.so (vulkan::image::init(vulkan::device*, VkImageCreateInfo const&, gfx::host_mem_allocator const&, bool, hal::surface_metadata const*, unsigned long const*, unsigned long const*)+276) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#03 0x000000000076f8cc /vendor/lib64/egl/libGLES_mali.so (vulkan::image::init_external_common(vulkan::device*, VkImageCreateInfo const&, unsigned long const*, unsigned long const*, gfx::host_mem_allocator const&, bool, hal::surface_metadata const&, int, hal::drm_format_modifier)+272) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#04 0x0000000000783960 /vendor/lib64/egl/libGLES_mali.so (vulkan::android_deferred_image_init_and_bind(vulkan::device*, vulkan::image*, vulkan::device_memory*)+612) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#05 0x000000000076baf4 /vendor/lib64/egl/libGLES_mali.so (vkBindImageMemory+20) (BuildId: 6ee02575d06e4ab1887c2e4c9f5e690b)
#06 0x00000000001f7f60 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
wsi_create_ahardware_buffer_blit_context
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common.c:2359:13
#07 0x00000000001f4b70 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
wsi_create_image
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common.c:777:13
#08 0x00000000001fce0c /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
x11_image_init
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common_x11.c:2073:13
#09 0x00000000001fbb90 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
x11_surface_create_swapchain
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common_x11.c:2791:16
#10 0x00000000001f52e0 /data/data/com.termux/files/usr/lib/libvulkan_wrapper.so
wsi_CreateSwapchainKHR
/home/twaik/.termux-build/mesa-vulkan-icd-wrapper/build/../src/src/vulkan/wsi/wsi_common.c:1058:22
#11 0x000000000007a254 /data/data/com.termux/files/usr/lib/libvulkan.so.1.3.302
#12 0x000000000001f8ac /data/data/com.termux/files/usr/bin/vkcube
#13 0x000000000001e70c /data/data/com.termux/files/usr/bin/vkcube
#14 0x0000000000083198 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+96) (BuildId: ae97b4676db8ce3f620ba6bf7932eba6)
Crash dump is completed

@paulowesll
Copy link

It's working with lasted termux-x11 update
https://github.com/termux/termux-x11/releases/tag/nightly

Updated termux-x11 and install new version of termux-x11-nightly. Nothing change

It's working here with lasted mesa wrapper and lasted termux-x11

~ $ termux-x11 -xstartup vkcube
Selected WSI platform: xcb
Selected GPU 0: Samsung Xclipse 530, type: IntegratedGpu

@twaik
Copy link
Member

twaik commented Dec 10, 2024

@xMeM suggestion. Some devices support BGRA format of AHardwareBuffers. It is enough to pass 5 as AHardwareBuffer_Desc::format to make it work. It will work on most devices (works fine in termux-x11), but you can write a runtime check for it (probe for this feature and check for errors?). So you can avoid blitting in this case and improve performance.

@Artewar67
Copy link

Artewar67 commented Dec 10, 2024

I also that when running vulkaninfo with termux-x11 this error occurs

~ $ termux-x11 -xstartup "vulkaninfo"
../src/src/vulkan/wsi/wsi_common_x11.c:938: VkResult x11_surface_get_formats2(VkIcdSurfaceBase *, struct wsi_device *, const void *, uint32_t *, VkSurfaceFormat2KHR *): assertion "f->sType == VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" failed
19564 killed by signal 6

This error also occurs in version 24.2.5 vulkan wrapper

@Xtr126
Copy link

Xtr126 commented Dec 11, 2024

Even though the blacklist was removed it does not work on x86_64:

 ~ $ termux-x11 -xstartup vkcube
Selected WSI platform: xcb
12183 killed by signal 11

vulkaninfo and glxgears with zink works fine somehow.

@robertkirkman robertkirkman mentioned this pull request Apr 9, 2025
@hansm629
Copy link

Here are my Galaxy S24+ (SM-S926N) test results.

It is a model equipped with Samsung Exynos2400
The GPU is Samsung Xclipse 940 (AMD RDNA3 Custom 6WGP).

It works very well in most environments.

but
There is an issue with 3D viewer coordinates being misaligned in OpenGL 3.x & OpenGL ES 3.x environments, but this seems to be a simple mesa zink compatibility issue.
(Compatibility guarantees for mesa zink are limited to Turnip and RADV.)

vulkaninfo

~$ vulkaninfo
==========
VULKANINFO
==========

Vulkan Instance Version: 1.4.312


Instance Extensions: count = 25
===============================
	VK_EXT_acquire_drm_display             : extension revision 1
	VK_EXT_acquire_xlib_display            : extension revision 1
	VK_EXT_debug_report                    : extension revision 10
	VK_EXT_debug_utils                     : extension revision 2
	VK_EXT_direct_mode_display             : extension revision 1
	VK_EXT_display_surface_counter         : extension revision 1
	VK_EXT_headless_surface                : extension revision 1
	VK_EXT_surface_maintenance1            : extension revision 1
	VK_EXT_swapchain_colorspace            : extension revision 5
	VK_GOOGLE_surfaceless_query            : extension revision 2
	VK_KHR_device_group_creation           : extension revision 1
	VK_KHR_display                         : extension revision 23
	VK_KHR_external_fence_capabilities     : extension revision 1
	VK_KHR_external_memory_capabilities    : extension revision 1
	VK_KHR_external_semaphore_capabilities : extension revision 1
	VK_KHR_get_display_properties2         : extension revision 1
	VK_KHR_get_physical_device_properties2 : extension revision 2
	VK_KHR_get_surface_capabilities2       : extension revision 1
	VK_KHR_portability_enumeration         : extension revision 1
	VK_KHR_surface                         : extension revision 25
	VK_KHR_surface_protected_capabilities  : extension revision 1
	VK_KHR_wayland_surface                 : extension revision 6
	VK_KHR_xcb_surface                     : extension revision 6
	VK_KHR_xlib_surface                    : extension revision 6
	VK_LUNARG_direct_driver_loading        : extension revision 1

Layers:
=======
Presentable Surfaces:
=====================
GPU id : 0 (Samsung Xclipse 940):
	Surface types: count = 2
		VK_KHR_xcb_surface
		VK_KHR_xlib_surface
	Formats: count = 2
		SurfaceFormat[0]:
			format = FORMAT_B8G8R8A8_UNORM
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
		SurfaceFormat[1]:
			format = FORMAT_B8G8R8A8_SRGB
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
	Present Modes: count = 3
		PRESENT_MODE_MAILBOX_KHR
		PRESENT_MODE_FIFO_KHR
		PRESENT_MODE_FIFO_RELAXED_KHR
	VkSurfaceCapabilitiesKHR:
	-------------------------
		minImageCount = 3
		maxImageCount = 0
		currentExtent:
			width  = 256
			height = 256
		minImageExtent:
			width  = 256
			height = 256
		maxImageExtent:
			width  = 256
			height = 256
		maxImageArrayLayers = 1
		supportedTransforms: count = 1
			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		supportedCompositeAlpha: count = 2
			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
			COMPOSITE_ALPHA_INHERIT_BIT_KHR
		supportedUsageFlags: count = 7
			IMAGE_USAGE_TRANSFER_SRC_BIT
			IMAGE_USAGE_TRANSFER_DST_BIT
			IMAGE_USAGE_SAMPLED_BIT
			IMAGE_USAGE_STORAGE_BIT
			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
			IMAGE_USAGE_INPUT_ATTACHMENT_BIT
			IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false

	VK_EXT_surface_maintenance1:
	----------------------------
		PRESENT_MODE_MAILBOX_KHR:
			minImageCount = 4
			maxImageCount = 0
			VkSurfacePresentScalingCapabilitiesEXT:
				supportedPresentScaling:
					None
				supportedPresentGravityX:
					None
				supportedPresentGravityY:
					None
				minScaledImageExtent:
					width  = 256
					height = 256
				maxScaledImageExtent:
					width  = 256
					height = 256
			VkSurfacePresentModeCompatibilityEXT:
				presentModeCount                = 3
				pPresentModes: count = 3
					PRESENT_MODE_MAILBOX_KHR
					PRESENT_MODE_FIFO_KHR
					PRESENT_MODE_FIFO_RELAXED_KHR
		PRESENT_MODE_FIFO_KHR:
			minImageCount = 3
			maxImageCount = 0
			VkSurfacePresentScalingCapabilitiesEXT:
				supportedPresentScaling:
					None
				supportedPresentGravityX:
					None
				supportedPresentGravityY:
					None
				minScaledImageExtent:
					width  = 256
					height = 256
				maxScaledImageExtent:
					width  = 256
					height = 256
			VkSurfacePresentModeCompatibilityEXT:
				presentModeCount                = 3
				pPresentModes: count = 3
					PRESENT_MODE_FIFO_KHR
					PRESENT_MODE_MAILBOX_KHR
					PRESENT_MODE_FIFO_RELAXED_KHR
		PRESENT_MODE_FIFO_RELAXED_KHR:
			minImageCount = 3
			maxImageCount = 0
			VkSurfacePresentScalingCapabilitiesEXT:
				supportedPresentScaling:
					None
				supportedPresentGravityX:
					None
				supportedPresentGravityY:
					None
				minScaledImageExtent:
					width  = 256
					height = 256
				maxScaledImageExtent:
					width  = 256
					height = 256
			VkSurfacePresentModeCompatibilityEXT:
				presentModeCount                = 3
				pPresentModes: count = 3
					PRESENT_MODE_FIFO_RELAXED_KHR
					PRESENT_MODE_MAILBOX_KHR
					PRESENT_MODE_FIFO_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion        = 1.3.279 (4206871)
	driverVersion     = 24.3.9 (100675593)
	vendorID          = 0x144d
	deviceID          = 0x2600200
	deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
	deviceName        = Samsung Xclipse 940
	pipelineCacheUUID = 5050c88a-cf84-5cdc-a9cb-02f2ff6efa48

vkmark

~$ vkmark
=======================================================
    vkmark 2025.01
=======================================================
    Vendor ID:      0x144D
    Device ID:      0x2600200
    Device Name:    Samsung Xclipse 940
    Driver Version: 100675593
    Device UUID:    5050c88acf845cdca9cb02f2ff6efa48
=======================================================
[vertex] device-local=true: FPS: 6006 FrameTime: 0.167 ms
[vertex] device-local=false: FPS: 6484 FrameTime: 0.154 ms
[texture] anisotropy=0: FPS: 6226 FrameTime: 0.161 ms
[texture] anisotropy=16: FPS: 6398 FrameTime: 0.156 ms
[shading] shading=gouraud: FPS: 5558 FrameTime: 0.180 ms
[shading] shading=blinn-phong-inf: FPS: 5544 FrameTime: 0.180 ms
[shading] shading=phong: FPS: 5528 FrameTime: 0.181 ms
[shading] shading=cel: FPS: 5522 FrameTime: 0.181 ms
[effect2d] kernel=edge: FPS: 6652 FrameTime: 0.150 ms
[effect2d] kernel=blur: FPS: 6886 FrameTime: 0.145 ms
[desktop] <default>: FPS: 4440 FrameTime: 0.225 ms
[cube] <default>: FPS: 6576 FrameTime: 0.152 ms
[clear] <default>: FPS: 6572 FrameTime: 0.152 ms
=======================================================
                                   vkmark Score: 6030
=======================================================

glxinfo -B

~$ glxinfo -B
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa (0x144d)
    Device: zink Vulkan 1.3(Samsung Xclipse 940 (SAMSUNG_PROPRIETARY)) (0x2600200)
    Version: 25.0.3
    Accelerated: yes
    Video memory: 8256MB
    Unified memory: yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 8251 MB, largest block: 8251 MB
    VBO free aux. memory - total: 0 MB, largest block: 0 MB
    Texture free memory - total: 8251 MB, largest block: 8251 MB
    Texture free aux. memory - total: 0 MB, largest block: 0 MB
    Renderbuffer free memory - total: 8251 MB, largest block: 8251 MB
    Renderbuffer free aux. memory - total: 0 MB, largest block: 0 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 8256 MB
    Total available memory: 8256 MB
    Currently available dedicated video memory: 8251 MB
OpenGL vendor string: Mesa
OpenGL renderer string: zink Vulkan 1.3(Samsung Xclipse 940 (SAMSUNG_PROPRIETARY))
OpenGL core profile version string: 4.6 (Core Profile) Mesa 25.0.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.0.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

glmark2

~$ glmark2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.3(Samsung Xclipse 940 (SAMSUNG_PROPRIETARY))
    GL_VERSION:     4.6 (Compatibility Profile) Mesa 25.0.3
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 709 FrameTime: 1.411 ms
[build] use-vbo=true: FPS: 649 FrameTime: 1.541 ms
[texture] texture-filter=nearest: FPS: 657 FrameTime: 1.523 ms
[texture] texture-filter=linear: FPS: 626 FrameTime: 1.599 ms
[texture] texture-filter=mipmap: FPS: 642 FrameTime: 1.559 ms
[shading] shading=gouraud: FPS: 645 FrameTime: 1.553 ms
[shading] shading=blinn-phong-inf: FPS: 595 FrameTime: 1.681 ms
[shading] shading=phong: FPS: 627 FrameTime: 1.596 ms
[shading] shading=cel: FPS: 645 FrameTime: 1.552 ms
[bump] bump-render=high-poly: FPS: 580 FrameTime: 1.727 ms
[bump] bump-render=normals: FPS: 651 FrameTime: 1.538 ms
[bump] bump-render=height: FPS: 611 FrameTime: 1.638 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 583 FrameTime: 1.717 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 580 FrameTime: 1.724 ms
[pulsar] light=false:quads=5:texture=false: FPS: 606 FrameTime: 1.652 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 506 FrameTime: 1.980 ms
[desktop] effect=shadow:windows=4: FPS: 542 FrameTime: 1.845 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 194 FrameTime: 5.176 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 366 FrameTime: 2.732 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 210 FrameTime: 4.783 ms
[ideas] speed=duration: FPS: 591 FrameTime: 1.694 ms
[jellyfish] <default>: FPS: 481 FrameTime: 2.079 ms
[terrain] <default>: FPS: 361 FrameTime: 2.773 ms
[shadow] <default>: FPS: 539 FrameTime: 1.856 ms
[refract] <default>: FPS: 353 FrameTime: 2.836 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 627 FrameTime: 1.595 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 634 FrameTime: 1.578 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 620 FrameTime: 1.613 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 630 FrameTime: 1.590 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 622 FrameTime: 1.609 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 615 FrameTime: 1.628 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 625 FrameTime: 1.600 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 634 FrameTime: 1.579 ms
=======================================================
                                  glmark2 Score: 561 
=======================================================

glmark2-es2

~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.3(Samsung Xclipse 940 (SAMSUNG_PROPRIETARY))
    GL_VERSION:     OpenGL ES 3.2 Mesa 25.0.3
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 804 FrameTime: 1.244 ms
[build] use-vbo=true: FPS: 870 FrameTime: 1.151 ms
[texture] texture-filter=nearest: FPS: 800 FrameTime: 1.250 ms
[texture] texture-filter=linear: FPS: 801 FrameTime: 1.250 ms
[texture] texture-filter=mipmap: FPS: 807 FrameTime: 1.240 ms
[shading] shading=gouraud: FPS: 780 FrameTime: 1.282 ms
[shading] shading=blinn-phong-inf: FPS: 770 FrameTime: 1.300 ms
[shading] shading=phong: FPS: 779 FrameTime: 1.284 ms
[shading] shading=cel: FPS: 774 FrameTime: 1.294 ms
[bump] bump-render=high-poly: FPS: 656 FrameTime: 1.525 ms
[bump] bump-render=normals: FPS: 813 FrameTime: 1.231 ms
[bump] bump-render=height: FPS: 822 FrameTime: 1.217 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 679 FrameTime: 1.474 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 713 FrameTime: 1.404 ms
[pulsar] light=false:quads=5:texture=false: FPS: 676 FrameTime: 1.481 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 569 FrameTime: 1.758 ms
[desktop] effect=shadow:windows=4: FPS: 619 FrameTime: 1.617 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 208 FrameTime: 4.824 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 644 FrameTime: 1.554 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 245 FrameTime: 4.094 ms
[ideas] speed=duration: FPS: 597 FrameTime: 1.677 ms
[jellyfish] <default>: FPS: 547 FrameTime: 1.830 ms
[terrain] <default>: FPS: 396 FrameTime: 2.529 ms
[shadow] <default>: FPS: 586 FrameTime: 1.709 ms
[refract] <default>: FPS: 425 FrameTime: 2.358 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 760 FrameTime: 1.316 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 752 FrameTime: 1.331 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 750 FrameTime: 1.334 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 730 FrameTime: 1.370 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 743 FrameTime: 1.347 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 739 FrameTime: 1.354 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 756 FrameTime: 1.324 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 740 FrameTime: 1.352 ms
=======================================================
                                  glmark2 Score: 676 
=======================================================

clinfo

~$ clinfo
Number of platforms                               1
  Platform Name                                   clvk
  Platform Vendor                                 clvk
  Platform Version                                OpenCL 3.0 clvk
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_khr_extended_versioning 
  Platform Extensions with Version                cl_khr_icd                                                       0x400000 (1.0.0)
                                                  cl_khr_extended_versioning                                       0x400000 (1.0.0)
  Platform Numeric Version                        0xc00000 (3.0.0)
  Platform Extensions function suffix             clvk
  Platform Host timer resolution                  1ns

  Platform Name                                   clvk
Number of devices                                 1
  Device Name                                     Samsung Xclipse 940
  Device Vendor                                   Unknown vendor
  Device Vendor ID                                0x144d
  Device Version                                  OpenCL 3.0 CLVK on Vulkan v1.3.279 driver 100675593
  Device UUID                                     00000000-0000-0000-0000-000000000000
  Driver UUID                                     414d442d-4c49-4e55-582d-445256000000
  Valid Device LUID                               No
  Device LUID                                     0000-000000000000
  Device Node Mask                                0x1
  Device Numeric Version                          0xc00000 (3.0.0)
  Driver Version                                  3.0 CLVK on Vulkan v1.3.279 driver 100675593
  Device OpenCL C Version                         OpenCL C 1.2 CLVK on Vulkan v1.3.279 driver 100675593
  Device OpenCL C Numeric Version                 0x402000 (1.2.0)
  Device OpenCL C all versions                    OpenCL C                                                         0x400000 (1.0.0)
                                                  OpenCL C                                                         0x401000 (1.1.0)
                                                  OpenCL C                                                         0x402000 (1.2.0)
                                                  OpenCL C                                                         0xc00000 (3.0.0)
  Device OpenCL C features                        __opencl_c_images                                                0xc00000 (3.0.0)
                                                  __opencl_c_3d_image_writes                                       0xc00000 (3.0.0)
                                                  __opencl_c_read_write_images                                     0xc00000 (3.0.0)
                                                  __opencl_c_atomic_order_acq_rel                                  0xc00000 (3.0.0)
                                                  __opencl_c_atomic_scope_device                                   0xc00000 (3.0.0)
                                                  __opencl_c_subgroups                                             0xc00000 (3.0.0)
                                                  __opencl_c_int64                                                 0xc00000 (3.0.0)
                                                  __opencl_c_integer_dot_product_input_4x8bit                      0xc00000 (3.0.0)
                                                  __opencl_c_integer_dot_product_input_4x8bit_packed               0xc00000 (3.0.0)
  Latest conformance test passed                  v2023-12-12-00
  Device Type                                     GPU
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               1
  Max clock frequency                             0MHz
  Device Partition                                (core)
    Max number of sub-devices                     0
    Supported partition types                     None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                             1024x1024x1024
  Max work group size                             1024
  Preferred work group size multiple (device)     16
  Preferred work group size multiple (kernel)     16
  Max sub-groups per work group                   4294967295
  Sub-group sizes (Intel)                         32, 64
  Preferred / native vector sizes                 
    char                                                 1 / 1       
    short                                                1 / 1       
    int                                                  1 / 1       
    long                                                 1 / 1       
    half                                                 1 / 1        (cl_khr_fp16)
    float                                                1 / 1       
    double                                               0 / 0        (n/a)
  Half-precision Floating-point support           (cl_khr_fp16)
    Denormals                                     No
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Single-precision Floating-point support         (core)
    Denormals                                     No
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  No
  Double-precision Floating-point support         (n/a)
  Address bits                                    32, Little-Endian
  Global memory size                              8589934592 (8GiB)
  Error Correction support                        No
  Max memory allocation                           2147483648 (2GiB)
  Unified memory for Host and Device              Yes
  Shared Virtual Memory (SVM) capabilities        (core)
    Coarse-grained buffer sharing                 No
    Fine-grained buffer sharing                   No
    Fine-grained system sharing                   No
    Atomics                                       No
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       1024 bits (128 bytes)
  Preferred alignment for atomics                 
    SVM                                           0 bytes
    Global                                        0 bytes
    Local                                         0 bytes
  Atomic memory capabilities                      relaxed, acquire/release, work-group scope, device scope
  Atomic fence capabilities                       relaxed, acquire/release, work-item scope, work-group scope, device scope
  Max size for global variable                    0
  Preferred total size of global vars             0
  Global Memory cache type                        None
  Image support                                   Yes
    Max number of samplers per kernel             20
    Max size for 1D images from buffer            2147483648 pixels
    Max 1D or 2D image array size                 8192 images
    Base address alignment for 2D image buffers   0 bytes
    Pitch alignment for 2D image buffers          0 pixels
    Max 2D image size                             16384x16384 pixels
    Max 3D image size                             8192x8192x8192 pixels
    Max number of read image args                 4294967295
    Max number of write image args                4294967295
    Max number of read/write image args           4294967295
  Pipe support                                    No
  Max number of pipe args                         0
  Max active pipe reservations                    0
  Max pipe packet size                            0
  Local memory type                               Local
  Local memory size                               32768 (32KiB)
  Max number of constant args                     8
  Max constant buffer size                        65536 (64KiB)
  Generic address space support                   No
  Max size of kernel argument                     1024
  Queue properties (on host)                      
    Out-of-order execution                        No
    Profiling                                     Yes
  Device enqueue capabilities                     (n/a)
  Queue properties (on device)                    
    Out-of-order execution                        No
    Profiling                                     No
    Preferred size                                0
    Max size                                      0
  Max queues on device                            0
  Max events on device                            0
  Prefer user sync for interop                    Yes
  Profiling timer resolution                      1ns
  Execution capabilities                          
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    Non-uniform work-groups                       Yes
    Work-group collective functions               No
    Sub-group independent forward progress        No
    IL version                                    SPIR-V_1.0 
    ILs with version                              SPIR-V                                                           0x400000 (1.0.0)
  printf() buffer size                            1048576 (1024KiB)
  Built-in kernels                                (n/a)
  Built-in kernels with version                   (n/a)
  Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_extended_versioning cl_khr_create_command_queue cl_khr_il_program cl_khr_spirv_no_integer_wrap_decoration cl_arm_non_uniform_work_group_size cl_arm_printf cl_khr_suggested_local_work_size cl_khr_3d_image_writes cl_khr_spirv_linkonce_odr cl_khr_device_uuid cl_khr_fp16 cl_intel_required_subgroup_size cl_khr_integer_dot_product cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_integer_dot_product_accumulate_int16 
  Device Extensions with Version                  cl_khr_global_int32_base_atomics                                 0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                             0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_khr_extended_versioning                                       0x400000 (1.0.0)
                                                  cl_khr_create_command_queue                                      0x400000 (1.0.0)
                                                  cl_khr_il_program                                                0x400000 (1.0.0)
                                                  cl_khr_spirv_no_integer_wrap_decoration                          0x400000 (1.0.0)
                                                  cl_arm_non_uniform_work_group_size                               0x400000 (1.0.0)
                                                  cl_arm_printf                                                    0x400000 (1.0.0)
                                                  cl_khr_suggested_local_work_size                                 0x400000 (1.0.0)
                                                  cl_khr_3d_image_writes                                           0x400000 (1.0.0)
                                                  cl_khr_spirv_linkonce_odr                                        0x400000 (1.0.0)
                                                  cl_khr_device_uuid                                               0x400000 (1.0.0)
                                                  cl_khr_fp16                                                      0x400000 (1.0.0)
                                                  cl_intel_required_subgroup_size                                  0x400000 (1.0.0)
                                                  cl_khr_integer_dot_product                                       0x800000 (2.0.0)
                                                  cl_arm_integer_dot_product_int8                                  0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_accumulate_int8                       0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_accumulate_saturate_int8              0x400000 (1.0.0)
                                                  cl_arm_integer_dot_product_accumulate_int16                      0x400000 (1.0.0)

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  clvk
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [clvk]
  clCreateContext(NULL, ...) [default]            Success [clvk]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 clvk
    Device Name                                   Samsung Xclipse 940
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 clvk
    Device Name                                   Samsung Xclipse 940
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 clvk
    Device Name                                   Samsung Xclipse 940

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.3.3
  ICD loader Profile                              OpenCL 3.0

@hansm629
Copy link

hansm629 commented Jun 3, 2025

@xMeM
Hello sir
A common issue with Adreno GPU has been confirmed in the latest Android 15 & 16.
When running vkmark, the shader is broken in the [cube] item.

  • Galaxy S25 Ultra | Android 16 | Adreno 830
  • Galaxy S24 Ultra | Android 15 | Adreno 750
  • Galaxy Tab S9 Ultra | Android 15 | Adreno 740

Screenshot_2025-06-03_13-31-15
Screenshot_20250603_133524_TermuxX11
Screenshot_2025-06-03_13-28-35

This is a common symptom in the above devices.

Interestingly,
Galaxy S24+ | Android 15 | Xclipse 940
The symptom does not occur in the above environment.
Screenshot_2025-06-03_13-46-01

Can you fix it?

@DienoX
Copy link

DienoX commented Aug 18, 2025

Is there an option to make this package use a different qualcomm adreano Vulkan driver than the one in the system?
Gamehub has patched drivers for the Snapdragon 8 Elite. They work much better with Vulkan.
This is what the driver package looks like.
Screenshot_20250819_001625_Solid Explorer

How to use it in termux?

@robertkirkman
Copy link
Member

@DienoX unfortunately, I don't know, but I do know that if you have a rooted device and unlocked bootloader AND custom ROM, there is a way to edit your ROM to forcibly delete the original /system/lib64/libvulkan.so and replace it with the .so file from inside an AdrenoTools driver and it can work and become the system driver, I did it on the device: Samsung Galaxy A70, however, unfortunately it's not possible unless you have root and probably a custom ROM also.

@robertkirkman
Copy link
Member

September 25 2025 vulkan-wrapper-android on-device build guide

git clone -b dev/wrapper https://github.com/xMeM/termux-packages.git termux-packages-vulkan-wrapper-android
git clone https://github.com/termux/termux-packages.git termux-packages-vulkan-wrapper-android-ondevice
cp -r termux-packages-vulkan-wrapper-android/packages/vulkan-wrapper-android/ termux-packages-vulkan-wrapper-android-ondevice/packages/
cd termux-packages-vulkan-wrapper-android-ondevice/
git apply -v << 'EOF'
diff --git a/packages/vulkan-wrapper-android/0001-fix-for-anon-file.patch b/packages/vulkan-wrapper-android/0001-fix-for-anon-file.patch
index 85e6a033df..10ba5ff54f 100644
--- a/packages/vulkan-wrapper-android/0001-fix-for-anon-file.patch
+++ b/packages/vulkan-wrapper-android/0001-fix-for-anon-file.patch
@@ -14,3 +14,19 @@ Fallback to `@TERMUX_PREFIX@/tmp` if env `XDG_RUNTIME_DIR` is not set.
     if (!path) {
        errno = ENOENT;
        return -1;
+diff --git a/meson.build b/meson.build
+index b9edca30189..dbede3ca76a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1376,11 +1376,9 @@ endforeach
+ functions_to_detect = {
+   'strtof': '',
+   'mkostemp': '',
+-  'memfd_create': '',
+   'random_r': '',
+   'flock': '',
+   'strtok_r': '',
+-  'getrandom': '',
+   'qsort_s': '',
+   'posix_fallocate': '',
+   'secure_getenv': '',
diff --git a/packages/vulkan-wrapper-android/build.sh b/packages/vulkan-wrapper-android/build.sh
index 38663f123a..fdd4ac2744 100644
--- a/packages/vulkan-wrapper-android/build.sh
+++ b/packages/vulkan-wrapper-android/build.sh
@@ -19,7 +19,7 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
 -Dopengl=false
 -Dllvm=disabled
 -Dshared-llvm=disabled
--Dplatforms=x11,wayland
+-Dplatforms=x11
 -Dgallium-drivers=
 -Dxmlconfig=disabled
 -Dvulkan-drivers=wrapper
@@ -36,6 +36,10 @@ termux_step_post_get_source() {
 termux_step_pre_configure() {
 	termux_setup_cmake
 
+	if [ "$TERMUX_ON_DEVICE_BUILD" = "true" ]; then
+		CFLAGS+=" --target=$TERMUX_HOST_PLATFORM$TERMUX_PKG_API_LEVEL"
+	fi
+
 	CPPFLAGS+=" -D__USE_GNU"
 	LDFLAGS+=" -landroid-shmem"
 
diff --git a/scripts/build/termux_step_copy_into_massagedir.sh b/scripts/build/termux_step_copy_into_massagedir.sh
index b77eacd3d3..888ac35203 100644
--- a/scripts/build/termux_step_copy_into_massagedir.sh
+++ b/scripts/build/termux_step_copy_into_massagedir.sh
@@ -2,6 +2,6 @@ termux_step_copy_into_massagedir() {
 	local DEST="$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX_CLASSICAL"
 	mkdir -p "$DEST"
 	# Copy files changed during the build into massagedir in order to massage them
-	tar -C "$TERMUX_PREFIX_CLASSICAL" -N "$TERMUX_BUILD_TS_FILE" --exclude='tmp' -cf - . | \
+	tar -C "$TERMUX_PREFIX_CLASSICAL" -N "$TERMUX_BUILD_TS_FILE" --exclude='tmp' --exclude='__pycache__' -cf - . | \
 		tar -C "$DEST" -xf -
 }
EOF
scripts/setup-termux.sh
pip install mako pyyaml
./build-package.sh -I -f vulkan-wrapper-android

@DienoX
Copy link

DienoX commented Sep 25, 2025

@robertkirkman
And if in the file https://github.com/xMeM/mesa/blob/e65c7eb6ee2f9903c3256f2677beb1d98464103f/src/vulkan/wrapper/wrapper_instance.c in line 52 we change the path to the unpacked latest driver, do you think it would work?

@leegao
Copy link

leegao commented Sep 25, 2025

@robertkirkman And if in the file https://github.com/xMeM/mesa/blob/e65c7eb6ee2f9903c3256f2677beb1d98464103f/src/vulkan/wrapper/wrapper_instance.c in line 52 we change the path to the unpacked latest driver, do you think it would work?

I believe it's possible to just directly integrate adrenotools, e.g. https://github.com/leegao/bionic-vulkan-wrapper/blob/wrapper/src/vulkan/wrapper/wrapper_instance.c#L79

@DienoX
Copy link

DienoX commented Sep 25, 2025

@leegao
This seems to be an implementation for winlator. I didn't know winlator uses termux underneath.

Do you know how to use this ready-made .so file that is available for download to work in termux? I'm wondering how to use adrenotools with this file. But I can't think of anything quickly without searching through the source code.

@leegao
Copy link

leegao commented Sep 25, 2025

@DienoX that repo is a fork off of https://gitlab.freedesktop.org/Pipetto-crypto/mesa/-/tree/wrapper?ref_type=heads which was used in the Bionic/cmod forks of Winlator, which is itself a fork of xMem's wrapper with a few Winlator specific additions - including the ability to load other ICDs via Adrenotools.

It should be possible to yank out the get_vulkan_handle_icd() function and replace https://github.com/xMeM/mesa/blob/e65c7eb6ee2f9903c3256f2677beb1d98464103f/src/vulkan/wrapper/wrapper_instance.c#L68 with that, then add libadrenotools as a dependency in the build rules to get this to work in the OG wrapper

@robertkirkman
Copy link
Member

@leegao it sounds very interesting, if you know how, then you can make a PR of the "bionic-vulkan-wrapper" to termux-packages to replace this PR!

@DienoX
Copy link

DienoX commented Sep 25, 2025

If only it could be introduced to the official Termux repository and with support Adrenotools that would be amazing.

@fish4terrisa-MSDSM
Copy link

@xMeM Hello sir A common issue with Adreno GPU has been confirmed in the latest Android 15 & 16. When running vkmark, the shader is broken in the [cube] item.

  • Galaxy S25 Ultra | Android 16 | Adreno 830
  • Galaxy S24 Ultra | Android 15 | Adreno 750
  • Galaxy Tab S9 Ultra | Android 15 | Adreno 740

Screenshot_2025-06-03_13-31-15 Screenshot_20250603_133524_TermuxX11 Screenshot_2025-06-03_13-28-35

This is a common symptom in the above devices.

Interestingly, Galaxy S24+ | Android 15 | Xclipse 940 The symptom does not occur in the above environment. Screenshot_2025-06-03_13-46-01

Can you fix it?

Is this issue fixed for now? The same issues also happened when using the wrapper with qualcomm's glibc vulkan driver

@hansm629
Copy link

@fish4terrisa-MSDSM

Sorry for the late reply.

Currently, I'm experiencing the same issue in both vulkan-wrapper-android_25.0.0-2 and bionic-vulkan-wrapper environments.

By the way,
was there an officially distributed glibc driver from Qualcomm?

Or are you saying you loaded the Qualcomm vulkan driver into the glibc environment via libhybris?

@fish4terrisa-MSDSM
Copy link

fish4terrisa-MSDSM commented Oct 20, 2025

@fish4terrisa-MSDSM

Sorry for the late reply.

Currently, I'm experiencing the same issue in both vulkan-wrapper-android_25.0.0-2 and bionic-vulkan-wrapper environments.

By the way, was there an officially distributed glibc driver from Qualcomm?

Or are you saying you loaded the Qualcomm vulkan driver into the glibc environment via libhybris?

yes there are
check https://github.com/qualcomm-linux/meta-qcom there are link to the driver in the recipe for the driver
you can use my WIP vulkan wrapper(based on the android one) at here, the flyingfish branch is based on Trass3r/mesa and the pufferfish branch is newer and based on the mesa dev branch.(both of them are working just fine I think)
(you'll need a wayland only version of the driver, a little bit dig of the server qualcomm used to host the driver could give you plenty of drivers. A version linked with qualcomm's own libgbm is usually wayland only and thus suitable. Also even though they are marked for specific driver they usually support all models the codebase support, the only difference is the firmware shipped with the driver)
they are meant for IoT devices but also work with mobile phones and other devices that share the same chip.(like sm8550 devices can use the driver for qcs8550 since they all use the same adreno 740 gpu)
Also the problem might be because shader compile failure. I'm checking eden emulator's code related with qualcomm vulkan gpu driver and I noticed that many features are marked as broken, such as parallel shader compilation(which idk if is disabled in the wrapper and I didnt see any commits related with this issue)

@hansm629
Copy link

@fish4terrisa-MSDSM
Excellent!

So, does this mean that I can use the Qualcomm Adreno Vulkan driver in both the Termux native glibc environment and the PRoot-Distro Linux environment through the GitHub source you mentioned?

@fish4terrisa-MSDSM
Copy link

fish4terrisa-MSDSM commented Oct 20, 2025

@fish4terrisa-MSDSM Excellent!

So, does this mean that I can use the Qualcomm Adreno Vulkan driver in both the Termux native glibc environment and the PRoot-Distro Linux environment through the GitHub source you mentioned?

never tested in proot or termux glibc, only tested in lxc. Idk if selinux will do something and break the driver... I think it's gonna be working tho, given that with this wrapper it doesnt even use dma_heap, but i'm really not so sure
also btw in that glibc driver qualcomm also provided native opencl driver, which doesnt need any wrapper or any other things. It's confirmed to be working with llama.cpp(tested by myself with olmoe2)

@DienoX
Copy link

DienoX commented Oct 20, 2025

Which is currently the best wrapper/design for the Snapdragon Elite?

@lfdevs
Copy link

lfdevs commented Nov 10, 2025

September 25 2025 vulkan-wrapper-android on-device build guide

Sir, thank you for your guide and patches. After several attempts, I finally successfully built this package. I tested it on three devices, and it worked well on most of them, except that Zink didn't work on Adreno 730. The detailed test results are as follows:

Device Model SoC GPU vkmark glmark2 (Zink) glmark2-es2 (Zink)
REDMI K80 Pro 24122RKC7C Qualcomm Snapdragon 8 Elite Adreno 830 8078 1149 1185
Pixel 6 Pro GLU0G Google Tensor G1 Mali-G78 MP20 1047 441 481
Xiaomi Pad 6 Pro 23046RP50C Qualcomm Snapdragon 8+ Gen 1 Adreno 730 3241 Not working Fallback to llvmpipe

Adreno 830

vkmark
=======================================================
    vkmark 2025.01
=======================================================
    Vendor ID:      0x5143
    Device ID:      0x44050001
    Device Name:    Adreno (TM) 830
    Driver Version: 2150760496
    Device UUID:    64b1fb02435100000000010005440000
=======================================================
[vertex] device-local=true: FPS: 9153 FrameTime: 0.109 ms
[vertex] device-local=false: FPS: 7845 FrameTime: 0.127 ms
[texture] anisotropy=0: FPS: 7919 FrameTime: 0.126 ms
[texture] anisotropy=16: FPS: 7943 FrameTime: 0.126 ms
[shading] shading=gouraud: FPS: 7866 FrameTime: 0.127 ms
[shading] shading=blinn-phong-inf: FPS: 7867 FrameTime: 0.127 ms
[shading] shading=phong: FPS: 7833 FrameTime: 0.128 ms
[shading] shading=cel: FPS: 7868 FrameTime: 0.127 ms
[effect2d] kernel=edge: FPS: 8497 FrameTime: 0.118 ms
[effect2d] kernel=blur: FPS: 7878 FrameTime: 0.127 ms
[desktop] <default>: FPS: 8800 FrameTime: 0.114 ms
[cube] <default>: FPS: 7955 FrameTime: 0.126 ms
[clear] <default>: FPS: 7592 FrameTime: 0.132 ms
=======================================================
                                   vkmark Score: 8078
=======================================================
glmark2 (Zink)
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.3(Adreno (TM) 830 (QUALCOMM_PROPRIETARY))
    GL_VERSION:     4.6 (Compatibility Profile) Mesa 25.2.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 1653 FrameTime: 0.605 ms
[build] use-vbo=true: FPS: 1640 FrameTime: 0.610 ms
[texture] texture-filter=nearest: FPS: 1592 FrameTime: 0.628 ms
[texture] texture-filter=linear: FPS: 1707 FrameTime: 0.586 ms
[texture] texture-filter=mipmap: FPS: 1645 FrameTime: 0.608 ms
[shading] shading=gouraud: FPS: 1462 FrameTime: 0.684 ms
[shading] shading=blinn-phong-inf: FPS: 1453 FrameTime: 0.688 ms
[shading] shading=phong: FPS: 1361 FrameTime: 0.735 ms
[shading] shading=cel: FPS: 1358 FrameTime: 0.737 ms
[bump] bump-render=high-poly: FPS: 1165 FrameTime: 0.859 ms
[bump] bump-render=normals: FPS: 1537 FrameTime: 0.651 ms
[bump] bump-render=height: FPS: 1608 FrameTime: 0.622 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1158 FrameTime: 0.864 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 893 FrameTime: 1.121 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1401 FrameTime: 0.714 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 526 FrameTime: 1.904 ms
[desktop] effect=shadow:windows=4: FPS: 943 FrameTime: 1.061 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 395 FrameTime: 2.535 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 518 FrameTime: 1.932 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 469 FrameTime: 2.137 ms
[ideas] speed=duration: FPS: 591 FrameTime: 1.692 ms
[jellyfish] <default>: FPS: 929 FrameTime: 1.077 ms
[terrain] <default>: FPS: 264 FrameTime: 3.796 ms
[shadow] <default>: FPS: 919 FrameTime: 1.089 ms
[refract] <default>: FPS: 411 FrameTime: 2.437 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1317 FrameTime: 0.760 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1312 FrameTime: 0.762 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1318 FrameTime: 0.759 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1319 FrameTime: 0.758 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1282 FrameTime: 0.780 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1314 FrameTime: 0.761 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1314 FrameTime: 0.761 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1198 FrameTime: 0.835 ms
=======================================================
                                  glmark2 Score: 1149
=======================================================
glmark2-es2 (Zink)
libEGL warning: DRI3 error: Could not get DRI3 device
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.3(Adreno (TM) 830 (QUALCOMM_PROPRIETARY))
    GL_VERSION:     OpenGL ES 3.2 Mesa 25.2.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 1558 FrameTime: 0.642 ms
[build] use-vbo=true: FPS: 1615 FrameTime: 0.619 ms
[texture] texture-filter=nearest: FPS: 1069 FrameTime: 0.936 ms
[texture] texture-filter=linear: FPS: 1161 FrameTime: 0.862 ms
[texture] texture-filter=mipmap: FPS: 1134 FrameTime: 0.882 ms
[shading] shading=gouraud: FPS: 1044 FrameTime: 0.958 ms
[shading] shading=blinn-phong-inf: FPS: 1072 FrameTime: 0.934 ms
[shading] shading=phong: FPS: 1014 FrameTime: 0.986 ms
[shading] shading=cel: FPS: 1258 FrameTime: 0.795 ms
[bump] bump-render=high-poly: FPS: 1742 FrameTime: 0.574 ms
[bump] bump-render=normals: FPS: 1977 FrameTime: 0.506 ms
[bump] bump-render=height: FPS: 1821 FrameTime: 0.549 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1295 FrameTime: 0.772 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 904 FrameTime: 1.106 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1659 FrameTime: 0.603 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 588 FrameTime: 1.702 ms
[desktop] effect=shadow:windows=4: FPS: 1055 FrameTime: 0.948 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 442 FrameTime: 2.266 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 757 FrameTime: 1.322 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 520 FrameTime: 1.925 ms
[ideas] speed=duration: FPS: 619 FrameTime: 1.617 ms
[jellyfish] <default>: FPS: 1063 FrameTime: 0.941 ms
[terrain] <default>: FPS: 296 FrameTime: 3.385 ms
[shadow] <default>: FPS: 1014 FrameTime: 0.986 ms
[refract] <default>: FPS: 429 FrameTime: 2.333 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1504 FrameTime: 0.665 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1488 FrameTime: 0.672 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1490 FrameTime: 0.672 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1473 FrameTime: 0.679 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1509 FrameTime: 0.663 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1563 FrameTime: 0.640 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1537 FrameTime: 0.651 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1471 FrameTime: 0.680 ms
=======================================================
                                  glmark2 Score: 1185
=======================================================

Mali-G78 MP20

vkmark
=======================================================
    vkmark 2025.01
=======================================================
    Vendor ID:      0x13B5
    Device ID:      0x92020000
    Device Name:    Mali-G78
    Driver Version: 226496512
    Device UUID:    a77a84dbf6f534ddb5b88a99395ff94b
=======================================================
[vertex] device-local=true: FPS: 1203 FrameTime: 0.831 ms
[vertex] device-local=false: FPS: 1190 FrameTime: 0.840 ms
[texture] anisotropy=0: FPS: 1153 FrameTime: 0.867 ms
[texture] anisotropy=16: FPS: 1135 FrameTime: 0.881 ms
[shading] shading=gouraud: FPS: 1008 FrameTime: 0.992 ms
[shading] shading=blinn-phong-inf: FPS: 957 FrameTime: 1.045 ms
[shading] shading=phong: FPS: 980 FrameTime: 1.020 ms
[shading] shading=cel: FPS: 872 FrameTime: 1.147 ms
[effect2d] kernel=edge: FPS: 917 FrameTime: 1.091 ms
[effect2d] kernel=blur: FPS: 810 FrameTime: 1.235 ms
[desktop] <default>: FPS: 947 FrameTime: 1.056 ms
[cube] <default>: FPS: 1180 FrameTime: 0.847 ms
[clear] <default>: FPS: 1267 FrameTime: 0.789 ms
=======================================================
                                   vkmark Score: 1047
=======================================================
glmark2 (Zink)
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Mali-G78) doesn't support base Zink requirements: feats.features.fillModeNonSolid feats.features.shaderClipDistance
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.4(Mali-G78 (ARM_PROPRIETARY))
    GL_VERSION:     3.2 (Compatibility Profile) Mesa 25.2.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 503 FrameTime: 1.988 ms
[build] use-vbo=true: FPS: 547 FrameTime: 1.830 ms
[texture] texture-filter=nearest: FPS: 564 FrameTime: 1.775 ms
[texture] texture-filter=linear: FPS: 552 FrameTime: 1.814 ms
[texture] texture-filter=mipmap: FPS: 580 FrameTime: 1.726 ms
[shading] shading=gouraud: FPS: 519 FrameTime: 1.928 ms
[shading] shading=blinn-phong-inf: FPS: 544 FrameTime: 1.841 ms
[shading] shading=phong: FPS: 516 FrameTime: 1.940 ms
[shading] shading=cel: FPS: 528 FrameTime: 1.897 ms
[bump] bump-render=high-poly: FPS: 404 FrameTime: 2.476 ms
[bump] bump-render=normals: FPS: 615 FrameTime: 1.627 ms
[bump] bump-render=height: FPS: 598 FrameTime: 1.674 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 531 FrameTime: 1.886 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 399 FrameTime: 2.508 ms
[pulsar] light=false:quads=5:texture=false: FPS: 585 FrameTime: 1.712 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 261 FrameTime: 3.846 ms
[desktop] effect=shadow:windows=4: FPS: 357 FrameTime: 2.805 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 312 FrameTime: 3.211 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 412 FrameTime: 2.432 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 297 FrameTime: 3.371 ms
[ideas] speed=duration: FPS: 314 FrameTime: 3.191 ms
[jellyfish] <default>: FPS: 450 FrameTime: 2.224 ms
[terrain] <default>: FPS: 164 FrameTime: 6.101 ms
[shadow] <default>: FPS: 419 FrameTime: 2.390 ms
[refract] <default>: FPS: 267 FrameTime: 3.755 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 375 FrameTime: 2.672 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 494 FrameTime: 2.026 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 500 FrameTime: 2.002 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 436 FrameTime: 2.297 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 393 FrameTime: 2.549 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 329 FrameTime: 3.045 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 351 FrameTime: 2.854 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 482 FrameTime: 2.076 ms
=======================================================
                                  glmark2 Score: 441
=======================================================
glmark2-es2 (Zink)
libEGL warning: DRI3 error: Could not get DRI3 device
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Mali-G78) doesn't support base Zink requirements: feats.features.fillModeNonSolid feats.features.shaderClipDistance
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.4(Mali-G78 (ARM_PROPRIETARY))
    GL_VERSION:     OpenGL ES 3.1 Mesa 25.2.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 461 FrameTime: 2.173 ms
[build] use-vbo=true: FPS: 461 FrameTime: 2.170 ms
[texture] texture-filter=nearest: FPS: 447 FrameTime: 2.241 ms
[texture] texture-filter=linear: FPS: 491 FrameTime: 2.040 ms
[texture] texture-filter=mipmap: FPS: 461 FrameTime: 2.173 ms
[shading] shading=gouraud: FPS: 419 FrameTime: 2.387 ms
[shading] shading=blinn-phong-inf: FPS: 447 FrameTime: 2.240 ms
[shading] shading=phong: FPS: 426 FrameTime: 2.351 ms
[shading] shading=cel: FPS: 426 FrameTime: 2.352 ms
[bump] bump-render=high-poly: FPS: 373 FrameTime: 2.686 ms
[bump] bump-render=normals: FPS: 709 FrameTime: 1.411 ms
[bump] bump-render=height: FPS: 571 FrameTime: 1.754 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 576 FrameTime: 1.738 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 464 FrameTime: 2.156 ms
[pulsar] light=false:quads=5:texture=false: FPS: 575 FrameTime: 1.740 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 331 FrameTime: 3.026 ms
[desktop] effect=shadow:windows=4: FPS: 489 FrameTime: 2.047 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 349 FrameTime: 2.873 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 577 FrameTime: 1.734 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 312 FrameTime: 3.209 ms
[ideas] speed=duration: FPS: 431 FrameTime: 2.323 ms
[jellyfish] <default>: FPS: 508 FrameTime: 1.972 ms
[terrain] <default>: FPS: 178 FrameTime: 5.642 ms
[shadow] <default>: FPS: 471 FrameTime: 2.126 ms
[refract] <default>: FPS: 283 FrameTime: 3.544 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 603 FrameTime: 1.661 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 588 FrameTime: 1.703 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 585 FrameTime: 1.712 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 567 FrameTime: 1.765 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 568 FrameTime: 1.763 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 598 FrameTime: 1.674 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 611 FrameTime: 1.637 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 556 FrameTime: 1.801 ms
=======================================================
                                  glmark2 Score: 481
=======================================================

Adreno 730

vkmark
=======================================================
    vkmark 2025.01
=======================================================
    Vendor ID:      0x5143
    Device ID:      0x7030002
    Device Name:    Adreno (TM) 730
    Driver Version: 2150002783
    Device UUID:    39e31f0c435100000000020003070000
=======================================================
[vertex] device-local=true: FPS: 3929 FrameTime: 0.255 ms
[vertex] device-local=false: FPS: 4687 FrameTime: 0.213 ms
[texture] anisotropy=0: FPS: 4769 FrameTime: 0.210 ms
[texture] anisotropy=16: FPS: 2957 FrameTime: 0.338 ms
[shading] shading=gouraud: FPS: 2888 FrameTime: 0.346 ms
[shading] shading=blinn-phong-inf: FPS: 3041 FrameTime: 0.329 ms
[shading] shading=phong: FPS: 2950 FrameTime: 0.339 ms
[shading] shading=cel: FPS: 2814 FrameTime: 0.355 ms
[effect2d] kernel=edge: FPS: 2888 FrameTime: 0.346 ms
[effect2d] kernel=blur: FPS: 2844 FrameTime: 0.352 ms
[desktop] <default>: FPS: 2909 FrameTime: 0.344 ms
[cube] <default>: FPS: 2669 FrameTime: 0.375 ms
[clear] <default>: FPS: 2795 FrameTime: 0.358 ms
=======================================================
                                   vkmark Score: 3241
=======================================================
glmark2 (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: glXChooseFBConfig() failed
Error: Error: Couldn't get GL visual config!
Error: main: Could not initialize canvas
glmark2-es2 (Zink)
libEGL warning: DRI3 error: Could not get DRI3 device
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering
libEGL warning: egl: failed to create dri2 screen
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    llvmpipe (LLVM 21.1.3, 128 bits)
    GL_VERSION:     OpenGL ES 3.2 Mesa 25.2.5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 153 FrameTime: 6.570 ms
[build] use-vbo=true: FPS: 136 FrameTime: 7.402 ms
[texture] texture-filter=nearest: FPS: 120 FrameTime: 8.393 ms
[texture] texture-filter=linear: FPS: 120 FrameTime: 8.390 ms
[texture] texture-filter=mipmap: FPS: 109 FrameTime: 9.205 ms
[shading] shading=gouraud: FPS: 105 FrameTime: 9.561 ms
[shading] shading=blinn-phong-inf: FPS: 85 FrameTime: 11.814 ms
[shading] shading=phong: FPS: 80 FrameTime: 12.629 ms
[shading] shading=cel: FPS: 81 FrameTime: 12.491 ms
[bump] bump-render=high-poly: FPS: 47 FrameTime: 21.691 ms
[bump] bump-render=normals: FPS: 112 FrameTime: 8.968 ms
[bump] bump-render=height: FPS: 113 FrameTime: 8.918 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 61 FrameTime: 16.571 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 39 FrameTime: 26.147 ms
[pulsar] light=false:quads=5:texture=false: FPS: 98 FrameTime: 10.240 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 17 FrameTime: 58.825 ms
[desktop] effect=shadow:windows=4: FPS: 40 FrameTime: 25.233 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 59 FrameTime: 17.081 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 60 FrameTime: 16.944 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 60 FrameTime: 16.861 ms
[ideas] speed=duration: FPS: 72 FrameTime: 13.934 ms
[jellyfish] <default>: FPS: 35 FrameTime: 29.157 ms
[terrain] <default>: FPS: 2 FrameTime: 505.722 ms
[shadow] <default>: FPS: 71 FrameTime: 14.102 ms
[refract] <default>: FPS: 8 FrameTime: 132.474 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 94 FrameTime: 10.714 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 90 FrameTime: 11.115 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 102 FrameTime: 9.863 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 105 FrameTime: 9.535 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 84 FrameTime: 11.968 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 103 FrameTime: 9.714 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 98 FrameTime: 10.279 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 77 FrameTime: 13.101 ms
=======================================================
                                  glmark2 Score: 78
=======================================================

Moreover, it’s encouraging that blender4’s Vulkan backend (blender-4.5 --gpu-backend vulkan) runs very smoothly on the Adreno 830, though some rendering artifacts appeared. The performance is shown in the video below:

Screenrecorder-2025-11-10-17-10-38-526_1.mp4
`blender4` on the other two devices (using `vulkan-wrapper-android`)
# Xiaomi Pad 6 Pro (Adreno 730)
~ $ blender-4.5 --gpu-backend vulkan
WARN (gpu.vulkan): source/blender/gpu/vulkan/vk_backend.cc:282 is_supported: Device [Adreno (TM) 730] does not meet minimum requirements. Missing features are [multi viewport]
[Vulkan Loader] ERROR:          vkGetDeviceQueue: Invalid device [VUID-vkGetDeviceQueue-device-parameter]
Aborted                    blender-4.5 --gpu-backend vulkan

# Pixel 6 Pro (Mali-G78 MP20)
~ $ blender-4.5 --gpu-backend vulkan
WARN (gpu.vulkan): source/blender/gpu/vulkan/vk_backend.cc:282 is_supported: Device [Mali-G78] does not meet minimum requirements. Missing features are [multi draw indirect, multi viewport, shader clip distance]
[Vulkan Loader] ERROR:          vkGetDeviceQueue: Invalid device [VUID-vkGetDeviceQueue-device-parameter]
Aborted                    blender-4.5 --gpu-backend vulkan
~ $ blender-4.5 --gpu-backend opengl
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Mali-G78) doesn't support base Zink requirements: feats.features.fillModeNonSolid feats.features.shaderClipDistance
libc++abi: terminating
Aborted                    blender-4.5 --gpu-backend opengl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.