#!/usr/bin/env bash echo "--- Force-stopping any old processes..." pkill -9 -f com.termux.x11 || true pkill -9 virgl_test_server_android || true sleep 1 echo "--- Starting services..." export TMPDIR=/data/data/com.termux/files/usr/tmp export XDG_RUNTIME_DIR=/data/data/com.termux/files/usr/tmp termux-x11 :0 & virgl_test_server_android & echo "--- Waiting for X socket..." COUNT=0 while [ ! -e "$XDG_RUNTIME_DIR/.X11-unix/X0" ] && [ $COUNT -lt 15 ]; do sleep 1; echo -n "."; COUNT=$((COUNT+1)) done echo if [ ! -e "$XDG_RUNTIME_DIR/.X11-unix/X0" ]; then echo "Error: X server failed to start." >&2; exit 1 fi echo "--- X socket ready! Granting access..." sleep 1 export DISPLAY=:0 xhost + pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1 echo "--- Logging into Debian environment..." proot-distro login --user debian debian \ --shared-tmp \ --bind "$XDG_RUNTIME_DIR/.X11-unix:/tmp/.X11-unix" \ -- /bin/bash -lc ' export DISPLAY=:0 export GALLIUM_DRIVER=virpipe export PULSE_SERVER=127.0.0.1 echo "--- Checking OpenGL Renderer ---" glxinfo | grep "OpenGL renderer string" echo "--- Launching xfce4---" dbus-launch --exit-with-session startxfce4 ' echo "--- Session finished. Cleaning up. ---" echo "--- Session finished. Cleaning up. ---" pkill -9 termux-x11 || true pkill -9 virgl_test_server_android || true $ vulkaninfo --summary ========== VULKANINFO ========== Vulkan Instance Version: 1.3.327 Instance Extensions: count = 14 ------------------------------- VK_EXT_debug_report                    : extension revision 10 VK_EXT_debug_utils                     : extension revision 2 VK_EXT_surface_maintenance1            : extension revision 1 VK_EXT_swapchain_colorspace            : extension revision 4 VK_GOOGLE_surfaceless_query            : extension revision 2 VK_KHR_android_surface                 : extension revision 6 VK_KHR_device_group_creation           : extension revision 1 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_physical_device_properties2 : extension revision 1 VK_KHR_get_surface_capabilities2       : extension revision 1 VK_KHR_surface                         : extension revision 25 VK_KHR_surface_protected_capabilities  : extension revision 1 Instance Layers: ---------------- Devices: ======== GPU0:         apiVersion         = 1.3.128         driverVersion      = 0.676.67         vendorID           = 0x5143         deviceID           = 0x43050a01         deviceType         = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU         deviceName         = Adreno (TM) 740         driverID           = DRIVER_ID_QUALCOMM_PROPRIETARY         driverName         = Qualcomm Technologies Inc. Adreno Vulkan Driver         driverInfo         = Driver Build: a6844907d4, Ie667bba6d9, 1733827973 Date: 12/10/24 Compiler Version: E031.41.03.58 Driver Branch:          conformanceVersion = 1.3.1.0         deviceUUID         = 43510000-0600-0000-10c5-6000140010c5         driverUUID         = 04000000-0100-0000-0100-000000000000 $ glxgears 1548 frames in 5.0 seconds = 309.429 FPS 1577 frames in 5.0 seconds = 315.331 FPS 1550 frames in 5.0 seconds = 309.881 FPS 1571 frames in 5.0 seconds = 314.200 FPS 1577 frames in 5.0 seconds = 315.225 FPS 1632 frames in 5.0 seconds = 326.332 FPS