Repository navigation
Would this repo support Adreno 8xx GPUs? #2
Description
Activity
Not yet, because there's not any patches to support Adreno 8xx from upstream or other open-source repositories for now. But I will keep an eye on any news about patches which may come someday.
hello I found this reddit thread with mesa wrapper for snapdragon elite
https://www.reddit.com/r/termux/comments/1gmnf7s/qualcomm_drivers_its_here/I test the driver and it works with termux native. Can you bring support to chroot and proot?
Thank youhello I found this reddit thread with mesa wrapper for snapdragon elite https://www.reddit.com/r/termux/comments/1gmnf7s/qualcomm_drivers_its_here/
I test the driver and it works with termux native. Can you bring support to chroot and proot? Thank you
This driver supports Proot, Chroot and LXC containers simultaneously. You need to configure the container to mount the system’s
/devand share Termux’s${TMPDIR}:- For Proot containers, add the
--shared-tmpargument when running theproot-distrocommand. - For Chroot containers, you can refer to the following commands:
sudo busybox mount --bind ${PREFIX}/tmp ${CHROOT_ROOTFS_PATH}/tmp sudo busybox mount --bind /dev ${CHROOT_ROOTFS_PATH}/dev
- For LXC containers, you can try the following configuration snippet:
# Mount Termux tmp lxc.hook.pre-start = bash -c "mkdir -p '${LXC_ROOTFS_PATH}/tmp' 2>/dev/null; umount '${LXC_ROOTFS_PATH}/tmp' 2>/dev/null; mount --bind '/data/data/com.termux/files/usr/tmp' '${LXC_ROOTFS_PATH}/tmp'; true;" # Allow cgroup access to devices # (Note: Be sure to replace with your actual device numbers!) # kgsl-3d0 (e.g., 506:0) lxc.cgroup.devices.allow = c 506:0 rwm # DRM renderD128 (e.g., 226:128) lxc.cgroup.devices.allow = c 226:128 rwm # DRM card0 (e.g., 226:0) lxc.cgroup.devices.allow = c 226:0 rwm # ION (e.g., 10:127) lxc.cgroup.devices.allow = c 10:127 rwm # Create and bind device nodes inside the container lxc.mount.entry = /dev/kgsl-3d0 dev/kgsl-3d0 none bind,optional,create=file lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir lxc.mount.entry = /dev/ion dev/ion none bind,optional,create=file
- For Proot containers, add the
Thanks for your detailed instruction.
One thing I noticed is that when I installed the driver, glmark2 no longer works albeit vkmark2 got accelerated and used gpu. Does that mean this driver is only for vulkan?
Any proper to rollback the driver? Last time I tried to delete those files, my x11 got broken.And is there any ways for firefox to use gpu and accelerate 1. webgl and 2. hardware decode like youtube?
Right now when I launch firefox from console it just saying not detect any gpu.
and it only happens why this new wrapper driver is installed. Does this mean firefox only use opengl?Log from firefox
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: ManageChildProcess failed (t=0.430778) [GFX1-]: glxtest: ManageChildProcess failed Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: ManageChildProcess failed (t=0.430778) |[1][GFX1-]: No GPUs detected via PCI (t=0.430778) [GFX1-]: No GPUs detected via PCIOne thing I noticed is that when I installed the driver, glmark2 no longer works albeit vkmark2 got accelerated and used gpu. Does that mean this driver is only for vulkan?
What is your GPU model? So far, I have only tested the mesa-25.3.0-devel-20250725 driver on the following two devices, with the results shown below:
Device Model SoC GPU glmark2 glmark2-es2 vkmark Redmi K40 Pro M2012K11G Qualcomm Snapdragon 888 Adreno 660 842 771 1170 Xiaomi Pad 6 Pro 23046RP50C Qualcomm Snapdragon 8+ Gen 1 Adreno 730 1169 1143 Not working If only Vulkan is working, you can use Zink to translate OpenGL API calls into Vulkan API calls. Try changing the
MESA_LOADER_DRIVER_OVERRIDEenvironment variable, for example:
MESA_LOADER_DRIVER_OVERRIDE=zink TU_DEBUG=noconform glmark2I will strive to build a more compatible version in the next release.
Any proper to rollback the driver?
You can try manually deleting all files extracted from the archive, then reinstall the main Mesa drivers using the package manager. For example, on Debian, run the following command:
sudo apt install -y --reinstall libgl1-mesa-dri libglx-mesa0 mesa-vulkan-drivers mesa-va-drivers mesa-vdpau-drivers
Does this mean firefox only use opengl?
Currently, I have only successfully enabled WebGL hardware acceleration in the Chromium browser; hardware-accelerated video decoding is not supported. However, due to the lack of vertical sync support and other issues, severe screen tearing occurs. You can refer to the screenshots below:
Reacted by Huan NghiemWow, that's amazing and a lot of information to digest. I will test more and report back in.
So far I haven't got the driver to work with chroot ( I have mount bind 2 folder like you said ), is there anyway to install directly instead of being shared from termux?. Lots to learn, will dig more.
On Termux I can get roughly 8000fps with vkmark ( Cpu is elite 8 gen 4, adreno 830 ) using the qualcomm driver I said earlier.
Your result with Chrome is atonishing already, although getting firefox to work is much better as from my experience firefox is much more performant. Can you post your test result in chrome for webgl aquarium (default setting 500 fish)?This is not related to gpu driver, but this is my finding with software renderding
Device: Oneplus Pad 3
Gpu: andreno 830
Cpu: snap elite 8 gen 4
Webgl is tested using webgl aquarium default setting 500
Decode testing using youtube 1080p
Firefox v144.0Environment HW Accel (software) Firefox (webgl) Chrome (webgl) Firefox decode Chrome decode Chroot LLVM 15.0.6 OpenGL ES 3.2 Mesa 22.3.6 24 fps 11 fps little frame drop very choppy many dropped frames Termux LLVM 21.1.3 OpenGL ES 3.2 Mesa 25.2.5 6 fps N/A very smooth very choppy, slower than chroot In conclusion, in a non HW accel env, chroot with firefox has the best performance so far
But youtube playback on firefox (termux) is very very smooth, better than chroot version, and I cannot explain why, any ideas?The difference for webgl performance maybe because of different software driver version (but chroot has lower version while better performance?)
Another test with Vscode
Environment Edition Result Chroot Vscode Laggy, usable but noticable lag Termux Code - Oss Perfectly smooth, no issues Again very bizzare result, both vscode and code - oss is the same version (commit 7d842fb85a0275a4a8e4d7e040d2625abbf7f084).
Exactly the same software, same electron renderer but different behaviour.Again I have zero experience if drivers and gpu on android, can you investigate this matter, can there be related to x11 packages?
ThanksCpu is elite 8 gen 4, adreno 830
In fact, the Freedreno driver (Mesa’s driver for Adreno GPUs, supporting OpenGL, OpenGL ES, and Vulkan) currently does not support Adreno 8xx series GPUs. This is likely the root cause of the “Vulkan-only” issue you encountered. You are probably using Android’s native GPU driver (which only supports OpenGL ES and Vulkan) for hardware acceleration—see this package in the termux-packages repository. This may also explain why, in some scenarios, Termux Native containers outperform Chroot containers in terms of graphics performance.
I haven’t yet tested hardware acceleration in Chroot containers using Android’s native drivers, but I plan to experiment with it in the future.
Is there anyway to install directly instead of being shared from termux?
Theoretically, if your GPU is an Adreno 6xx/7xx series, rendering occurs directly through
/dev/kgsl-3d0, and the rendered frames are then delivered to thetermux-x11display server via shared Unix sockets. In other words, as long as you continue using Termux:X11 for display output, Termux remains essential—it acts as a crucial bridge.Can you post your test result in chrome for webgl aquarium (default setting 500 fish)?
Of course. On the Adreno 730, frame rates typically range between 50–55 FPS.
In conclusion, in a non HW accel env, chroot with firefox has the best performance so far But youtube playback on firefox (termux) is very very smooth, better than chroot version, and I cannot explain why, any ideas?
Again very bizzare result, both vscode and code - oss is the same version (commit 7d842fb85a0275a4a8e4d7e040d2625abbf7f084). Exactly the same software, same electron renderer but different behaviour.Software rendering performance depends on many factors and can sometimes be hard to explain. For example, on modern multi-core CPUs, LLVMpipe is generally considered faster than XRender (both are software renderers). However, in the specific environment of “Termux container + Termux:X11,” when running the same version of KDE Plasma 5, XRender significantly outperforms LLVMpipe. With LLVMpipe, you often need to disable KWin’s compositor effects just to achieve basic usability, whereas with XRender, the compositor runs smoothly with effects enabled.
So the driver provided in this repo is Mesa Freereno driver and it doesn't support andreno 8x just yet right?
You are probably using Android’s native GPU driver (which only supports OpenGL ES and Vulkan) for hardware acceleration
Yes, I'm using native driver. So there is a few questions
- If vkmark can use the driver, why chrome doesn't recognize it and use vulkan to hw accel?
- Does Zink work with native driver or only work with Freereno driver?
- Can we do translate layer from OpenGL ES to Open GL for apps that use opengl use the driver (Firefox in this case) ?
Of course. On the Adreno 730, frame rates typically range between 50–55 FPS.
I get around 50-60fps on a virgl android generic driver on snap 8 elite, usable for now. Before with llvmpipe is like 20-24fps. But apps like glmark2 is way slower, 300+fps (llvm) vs 100 fps (virpipe). Odd?
Software rendering performance depends on many factors and can sometimes be hard to explain. For example, on modern multi-core CPUs, LLVMpipe is generally considered faster than XRender (both are software renderers). However, in the specific environment of “Termux container + Termux:X11,” when running the same version of KDE Plasma 5, XRender significantly outperforms LLVMpipe. With LLVMpipe, you often need to disable KWin’s compositor effects just to achieve basic usability, whereas with XRender, the compositor runs smoothly with effects enabled.
Agree, and I suspect it has something to do with how termux dev has rebuild those app for termux env, maybe they tweak and optimize something, because termux 2d render seems to outperform chroot in my case.
I haven’t yet tested hardware acceleration in Chroot containers using Android’s native drivers, but I plan to experiment with it in the future.
Please please do it, as of right now I have no idea how to incorporate those drive inside chroot.
Also it seems like there are drivers extracted from gamehub that are usable in other emulator apps like Eden for Winlator.... What exactly is those drivers, how does it work?
Example gamehub driver: https://github.com/zoerakk/qualcomm-adreno-driverSo the driver provided in this repo is Mesa Freereno driver and it doesn't support andreno 8x just yet right?
Yes, and so far I haven’t found any Freedreno patches that support Adreno 8xx GPUs—possibly because Qualcomm introduced a new GPU architecture starting with the Snapdragon 8 Elite, making it extremely difficult for open-source community developers to adapt.
- Does Zink work with native driver or only work with Freereno driver?
- Can we do translate layer from OpenGL ES to Open GL for apps that use opengl use the driver (Firefox in this case) ?
Android’s native drivers can also work with Zink. Since Zink is a translation layer that converts OpenGL calls into Vulkan, and Vulkan itself remains unaffected by Zink, you can use Zink directly.
Also it seems like there are drivers extracted from gamehub that are usable in other emulator apps like Eden for Winlator.... What exactly is those drivers, how does it work?
These native Android drivers are Qualcomm’s proprietary drivers, preinstalled on Qualcomm-based devices. However, apps like GameHub may provide newer versions than those shipped with the device.
As for other issues, I’ll need more extensive testing, which could take considerable time. In the meantime, you might find some useful insights in this PR, which includes discussions about Firefox hardware acceleration. Although it’s based on Termux Native containers, it may still offer helpful references.
Reacted by Ruifeng YeThat cleared up quite a lot, thanks
As for other issues, I’ll need more extensive testing, which could take considerable time. In the meantime, you might find some useful insights in termux/termux-packages#26528, which includes discussions about Firefox hardware acceleration. Although it’s based on Termux Native containers, it may still offer helpful references.
Will dig into this too
Android’s native drivers can also work with Zink. Since Zink is a translation layer that converts OpenGL calls into Vulkan, and Vulkan itself remains unaffected by Zink, you can use Zink directly.
I haven't successfully achieved this (in termux) although the native vulkan driver running fine with vkmark.
When I tried Zink it showed this in firefox and glmark2u0_a357@localhost ~/s/s/termux> MESA_LOADER_DRIVER_OVERRIDE=zink TU_DEBUG=noconform firefox
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: ManageChildProcess failed (t=0.248721) [GFX1-]: glxtest: ManageChildProcess failed Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: ManageChildProcess failed (t=0.248721) |[1][GFX1-]: No GPUs detected via PCI (t=0.248721) [GFX1-]: No GPUs detected via PCIu0_a357@localhost ~/s/s/termux> MESA_LOADER_DRIVER_OVERRIDE=zink TU_DEBUG=noconform glmark2
fish: Job 1, 'MESA_LOADER_DRIVER_OVERRIDE=zin…' terminated by signal SIGSEGV (Address boundary error)Please help me run this native driver with zink.
Please help me run this native driver with zink.
After extensive build attempts and testing, I’ve confirmed that the
vulkan-wrapper-androidpackage works very well for enabling hardware acceleration via Android’s Vulkan driver on Adreno 830 GPUs within a Termux native container. You can give it a try:
lfdevs/termux-packages#1 (comment)Reacted by Huan NghiemI can't shake the feeling this discussion is heading in a strange direction, so I'd like to interject briefly.
First, unless a miracle happens, 8xx GPU support will not be provided.
We're just reciting a 17,350,585-character spell created by a genius, casting magic without understanding a thing.That aside, I have a few other things I'd like to mention.
vulkan-wrapper-androidcannot be used in Linux containers (proot or chroot). This is simply because it was not created for Linux, but for the Android OS.In Firefox, setting
gfx.webrender.alltotrueviaabout:configenables GPU rendering for the entire webpage, not just WebGL. However, using wrapper and Zink with my Adreno 740 causes severe artifacts.But since wrapper compatibility varies by device, I wonder how it would work. I don't know.
For Chromium, you can enable Vulkan rendering using
--use-angle=vulkan. Have you tried it?After extensive build attempts and testing, I’ve confirmed that the
vulkan-wrapper-androidpackage works very well for enabling hardware acceleration via Android’s Vulkan driver on Adreno 830 GPUs within a Termux native container. You can give it a try: lfdevs/termux-packages#1 (comment)Wow this driver work straight away without any hassle at all, I dont even need to include MESA_LOADER_DRIVER_OVERRIDE=zink. Everything just load correctly, Firefox can recognize gpu and utilize it, which is great. Thank you for pointing out 💃
First, unless a miracle happens, 8xx GPU support will not be provided.
We're just reciting a 17,350,585-character spell created by a genius, casting magic without understanding a thing.That is sad, this gpu is really powerful
vulkan-wrapper-android cannot be used in Linux containers (proot or chroot). This is simply because it was not created for Linux, but for the Android OS.
Yes right now is not, but I dont see any reason it can't be, maybe when the author decided to implement it
In Firefox, setting gfx.webrender.all to true via about:config enables GPU rendering for the entire webpage, not just WebGL. However, using wrapper and Zink with my Adreno 740 causes severe artifacts.
But since wrapper compatibility varies by device, I wonder how it would work. I don't know.
For Chromium, you can enable Vulkan rendering using --use-angle=vulkan. Have you tried it?Firefox crashed instantly when I tried to enable that flag. Since zink is usable right now, it is not necessary anymore.
Regarding chrome, I'm not successful in getting running in vulkan, do I need to install any packages?. It was firing this error
8811:8811:1111/083405.318028:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_surfaceThanks for joining the conversation, at least we have some progress going on here. Cheers
First, unless a miracle happens, 8xx GPU support will not be provided. We're just reciting a 17,350,585-character spell created by a genius, casting magic without understanding a thing.
So, as I mentioned in the first comment of my reply to this issue, Freedreno/Turnip currently does not support Adreno 8xx. Qualcomm has adopted a new architecture on Adreno 8xx that hasn't been open-sourced, so reverse-engineering is likely the only path for the open-source community to achieve compatibility—but this could take several years or even longer.
vulkan-wrapper-androidcannot be used in Linux containers (proot or chroot). This is simply because it was not created for Linux, but for the Android OS.That’s indeed the case. However, VirPipe (
MESA_LOADER_DRIVER_OVERRIDE=zink virgl_test_server_android --angle-vulkan) is still usable. But its performance is extremely poor—I testedglmark2in a PRoot container on Adreno 830 and scored less than 200 points. Moreover, whether it’s Chromium or Firefox, forcing hardware acceleration results in either full-windows tearing/artifacts or a completely blank screen.Perhaps
venuswould offer better performance, but I haven’t found a way to use it in Termux yet.In Firefox, setting
gfx.webrender.alltotrueviaabout:configenables GPU rendering for the entire webpage, not just WebGL. However, using wrapper and Zink with my Adreno 740 causes severe artifacts.But since wrapper compatibility varies by device, I wonder how it would work. I don't know.
When testing
vulkan-wrapper-androidon Adreno 730, Zink didn't work at all. Therefore, I had to use the Adreno 830 to test Firefox, setting bothlayers.acceleration.force-enabledandgfx.webrender.alltotrue, and launching Firefox with the command:MESA_LOADER_DRIVER_OVERRIDE= firefox. The performance is shown in the screenshots below. There are some image rendering issues, and the WebGL Aquarium test fails with the following error message:Firefox screenshots and logs
~ $ MESA_LOADER_DRIVER_OVERRIDE= firefox Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: ManageChildProcess failed (t=0.358709) [GFX1-]: glxtest: ManageChildProcess failed Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: ManageChildProcess failed (t=0.358709) |[1][GFX1-]: No GPUs detected via PCI (t=0.358709) [GFX1-]: No GPUs detected via PCIWebGL Aquarium test fails
It does not appear your computer supports WebGL. Click here for more information. Status: WebGL creation failed: * AllowWebgl2:false restricts context creation on this system. ()For Chromium, you can enable Vulkan rendering using
--use-angle=vulkan. Have you tried it?When using the command
chromium --use-angle=vulkanon Adreno 830, Chromium falls back to software rendering, as shown in the following log:chromium --use-angle=vulkan
~ $ chromium-browser --use-angle=vulkan [756:756:1112/212246.747106:ERROR:./../src/base/files/file_path_watcher_inotify.cc:923] Failed to read /proc/sys/fs/inotify/max_user_watches [755:755:1112/212246.747106:ERROR:./../src/base/files/file_path_watcher_inotify.cc:923] Failed to read /proc/sys/fs/inotify/max_user_watches [744:765:1112/212246.757696:ERROR:./../src/base/files/file_path_watcher_inotify.cc:923] Failed to read /proc/sys/fs/inotify/max_user_watches [744:766:1112/212246.757706:ERROR:./../src/dbus/bus.cc:408] Failed to connect to the bus: Failed to connect to socket /data/data/com.termux/files/usr/var/run/dbus/system_bus_socket: No such file or directory [744:766:1112/212246.986975:ERROR:./../src/dbus/bus.cc:408] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix") [744:766:1112/212246.987087:ERROR:./../src/dbus/bus.cc:408] Failed to connect to the bus: Failed to connect to socket /data/data/com.termux/files/usr/var/run/dbus/system_bus_socket: No such file or directory [744:766:1112/212246.987129:ERROR:./../src/dbus/bus.cc:408] Failed to connect to the bus: Failed to connect to socket /data/data/com.termux/files/usr/var/run/dbus/system_bus_socket: No such file or directory [744:767:1112/212246.987179:ERROR:../src/net/base/address_tracker_linux.cc:242] Could not bind NETLINK socket: Permission denied (13) [788:788:1112/212247.010920:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_surface ERR: vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_surface [788:788:1112/212247.011113:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_xcb_surface ERR: vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_xcb_surface [788:788:1112/212247.011287:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] Display.cpp:1093 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-7): A requested extension is not supported, in ../../../src/third_party/angle/src/libANGLE/renderer/vulkan/vk_renderer.cpp, enableInstanceExtensions:2252. ERR: Display.cpp:1093 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-7): A requested extension is not supported, in ../../../src/third_party/angle/src/libANGLE/renderer/vulkan/vk_renderer.cpp, enableInstanceExtensions:2252. [788:788:1112/212247.011465:ERROR:./../src/ui/gl/egl_util.cc:92] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-7): A requested extension is not supported, in ../../../src/third_party/angle/src/libANGLE/renderer/vulkan/vk_renderer.cpp, enableInstanceExtensions:2252. [788:788:1112/212247.011562:ERROR:./../src/ui/gl/gl_display.cc:639] eglInitialize Vulkan failed with error EGL_NOT_INITIALIZED [788:788:1112/212247.011678:ERROR:./../src/ui/gl/gl_display.cc:674] Initialization of all EGL display types failed. [788:788:1112/212247.012365:ERROR:../src/ui/ozone/common/gl_ozone_egl.cc:26] GLDisplayEGL::Initialize failed. [788:788:1112/212247.013828:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_surface ERR: vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_surface [788:788:1112/212247.013925:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_xcb_surface ERR: vk_renderer.cpp:187 (VerifyExtensionsPresent): Extension not supported: VK_KHR_xcb_surface [788:788:1112/212247.014012:ERROR:./../src/ui/gl/angle_platform_impl.cc:42] Display.cpp:1093 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-7): A requested extension is not supported, in ../../../src/third_party/angle/src/libANGLE/renderer/vulkan/vk_renderer.cpp, enableInstanceExtensions:2252. ERR: Display.cpp:1093 (initialize): ANGLE Display::initialize error 0: Internal Vulkan error (-7): A requested extension is not supported, in ../../../src/third_party/angle/src/libANGLE/renderer/vulkan/vk_renderer.cpp, enableInstanceExtensions:2252. [788:788:1112/212247.014107:ERROR:./../src/ui/gl/egl_util.cc:92] EGL Driver message (Critical) eglInitialize: Internal Vulkan error (-7): A requested extension is not supported, in ../../../src/third_party/angle/src/libANGLE/renderer/vulkan/vk_renderer.cpp, enableInstanceExtensions:2252. [788:788:1112/212247.014171:ERROR:./../src/ui/gl/gl_display.cc:639] eglInitialize Vulkan failed with error EGL_NOT_INITIALIZED [788:788:1112/212247.014227:ERROR:./../src/ui/gl/gl_display.cc:674] Initialization of all EGL display types failed. [788:788:1112/212247.014288:ERROR:../src/ui/ozone/common/gl_ozone_egl.cc:26] GLDisplayEGL::Initialize failed. [788:788:1112/212247.015658:ERROR:../src/components/viz/service/main/viz_main_impl.cc:189] Exiting GPU process due to errors during initializationHowever, when launching Chromium with either
chromiumorchromium --use-angle=gles, hardware acceleration is successfully enabled, and performance is noticeably better than Firefox. In the WebGL Aquarium test with 10,000 fish, the former achieves around 11 FPS, while the latter reaches approximately 45 FPS.
BTW, how does your Adreno 740 perform with the Freedreno driver in Chromium and Firefox when running the WebGL Aquarium test with 10,000 fish? When I tested on an Adreno 730, I got around 25 FPS in Chromium and 12–15 FPS in Firefox.
- added 5 commits that reference this issue
on Nov 19, 2025 The good news is that
the Linux kernel has finally added support for theAdreno 8xx seriestoMesa.It's possible that
Adreno 8xx seriessupport will be implemented inTurnipandFreedreno (kgsl)in the near future.https://lore.kernel.org/dri-devel/20250930-kaana-gpu-support-v1-0-73530b0700ed@oss.qualcomm.com/
The good news is that the Linux kernel has finally added support for the
Adreno 8xx seriestoMesa.It's possible that
Adreno 8xx seriessupport will be implemented inTurnipandFreedreno (kgsl)in the near future.https://lore.kernel.org/dri-devel/20250930-kaana-gpu-support-v1-0-73530b0700ed@oss.qualcomm.com/
It’s great news indeed!
BTW, Rob Clark (Qualcomm Principle Engineer) is currently working on adding Adreno 8xx GPU support to Freedreno:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38450Hoping his work progresses smoothly—and that Lucas Fryzek’s KGSL patches remain effective for Adreno 8xx as well.
@lfdevs
Hello Sir!
This isn't related to this issue, but I have a question!I've always applied the
Termux-X11 DRI3 patchand then buildTurnipfor use...Is the
Termux-X11 DRI3 patchalready applied to the release driver currently distributed through GitHub?@lfdevs Hello Sir! This isn't related to this issue, but I have a question!
I've always applied the
Termux-X11 DRI3 patchand then buildTurnipfor use...Is the
Termux-X11 DRI3 patchalready applied to the release driver currently distributed through GitHub?Yes, I believe the DRI3 patch is already included in @xMeM's original patchset. The output of the following command also confirms this:
lf@localhost:~$ xdpyinfo | grep DRI DRI3 lf@localhost:~$ LIBGL_DEBUG=verbose glxinfo | grep libgl libGL: Can't open configuration file /etc/drirc: No such file or directory. libGL: Can't open configuration file /home/lf/.drirc: No such file or directory. libGL: Can't open configuration file /etc/drirc: No such file or directory. libGL: Can't open configuration file /home/lf/.drirc: No such file or directory. MESA-LOADER: failed to retrieve device information MESA: error: kgsl_pipe_get_param:103: invalid param id: 13 libGL: Can't open configuration file /etc/drirc: No such file or directory. libGL: Can't open configuration file /home/lf/.drirc: No such file or directory. Using DRI3 for screen 0 GLX_EXT_get_drawable_type, GLX_EXT_libglvnd, GLX_EXT_no_config_context,- added a commit that references this issue
on Dec 9, 2025 OpenGL and OpenGL ES support for Adreno 840 is available now: https://github.com/lfdevs/mesa-for-android-container/releases/tag/mesa-26.0.0-devel-20251209
According to upstream mesa repo, support for Turnip or other models will arrive in the future, too.Reacted by Huan Nghiem- added a commit that references this issue
on Jan 16, 2026 - added a commit that references this issue
on Apr 4, 2026 - added a commit that references this issue
on May 26, 2026






This repo is absolutely fantastic, anyway I'm not sure wether this repo works for Adreno 8xx GPUs, since there were only Adreno 6xx/7xx GPUs mentioned in
README.md