-
Notifications
You must be signed in to change notification settings - Fork 2
Description
I had been doing something very similar, built several versions of mesa testing hardware GPU acceleration in proot-distro Linux from termux without root. I had virgl test server running with virpipe on my v24 mesa deb I built, and tried getting zink to work forever, Gemini had me pulling .so libraries and hals just whatever was being called on next from actual android vendor drivers one at a time, get error now another .so is missing, pull it to proot, try again in an endless loop of dependency chasing hell saying it would work. So I finally asked on reddit if it was possible to achieve direct zink no virgl without chroot and root, and was told no, it's not, needs root, until someone linked this repo. Ok, so I installed, tried, something is out of whack with the kgl on my SD 8 adreno 740 red magic 8s pro, I got kernel invalid parameter 13 error, wasn't communicating right with kgl:
proot-distro login --user kali kali \
--shared-tmp \
--bind "$XDG_RUNTIME_DIR/.X11-unix:/tmp/.X11-unix" \
-- /bin/bash -lc '
export DISPLAY=:0
export MESA_LOADER_DRIVER_OVERRIDE=kgsl
export TU_DEBUG=noconform
export PULSE_SERVER=127.0.0.1 echo "--- Checking OpenGL Renderer ---"
glxinfo | grep "OpenGL renderer string"
'
--- Checking OpenGL Renderer ---
MESA-LOADER: failed to retrieve device information
MESA: error: kgsl_pipe_get_param:103: invalid param id: 13
OpenGL renderer string: FD740
os_same_file_description couldn't determine if two DRM fds reference the same file description. (Function not implemented)
Let's just assume that file descriptors for the same file probablyshare the file description instead. This may cause problems whenthat isn't the case.
So I tried many other environmental variables and tests, always that error 13, UNTIL I had some dumb idea that your build may have opengl libs or extras that weren't functioning right in mine, maybe my custom mesa Deb compiled with zink, freedreno, virgl, and llvm fallback would work if I over installed your container driver with mine, keeping any extras aside from base drivers. Just dpkg --install Zink-mesa-freedreno-custom_25.1.6-1_arm64.deb I built over yours, and was simply amazed by the results: https://katb.in/Test2_my_driver_over_container
glxinfo | grep "OpenGL renderer string" and glxgears test in proot gave:
OpenGL renderer string: zink Vulkan 1.4(Turnip Adreno (TM) 740 (MESA_TURNIP))
and
2345 frames in 5.0 seconds = 468.948 FPS
results, and a fully working zink hardware acceleration no root on adreno 740. I'm not sure what your package has that mine was missing, or what my build has that was more agreeable for my kernel once linked with other libs from your build, but I do know that together, they fully work and are running great launching kali with mate and testing from termux x11 in GUI mode: https://katb.in/Test3_full_gui_x11_kali perfect results. Thanks for this, together we tag teamed something experts and several AI said wasn't possible without root. If you want to look, my debs and launch scripts are here, the version 24 is for virgl, the 25 I compiled for zink is whats working over the top of your build:
https://drive.google.com/drive/folders/1UGE2ND3IgOD8TL6L-uxfoFt3ixSEcOP5
Thanks again just wanted to show you what I did to get it working in case it helped with anything I had already built these so just had an idea to test with extras from yours and boom, worked.