From de0c8684281443e24d4634bf731a6f923bcd770f Mon Sep 17 00:00:00 2001 From: Val Packett Date: Thu, 25 Sep 2025 22:36:39 -0300 Subject: [PATCH] Probe the GPUs/kernel and select an appropriate accel method, fix #3 Only use vDRM on supported drivers, introduce Venus for others, and fall back to software on kernels older than 6.13 due to missing PFNMAP support. --- munix | 32 ++++++++++++++++++++++++++++++++ muvm | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/munix b/munix index 59e9ea0..e828fa3 100755 --- a/munix +++ b/munix @@ -56,8 +56,40 @@ if [ "$GPU" -eq 1 ]; then "--dev-bind" "/dev/dri" "/dev/dri" "--ro-bind" "$HOST_OPENGL_DRIVER" "/run/opengl-driver" ) + GPU_MODE=venus + kernel_ver="$(uname -r)" + kernel_ver_arr=(${kernel_ver//./ }) + kernel_major="${kernel_ver_arr:-0}" + kernel_ver_arr=("${kernel_ver_arr[@]:1}") + kernel_minor="${kernel_ver_arr:-0}" + if [[ "$kernel_major" -gt 6 || ("$kernel_major" -eq 6 && "$kernel_minor" -gt 12) ]]; then + for card in /dev/dri/card*; do + driver_link="/sys/class/drm/${card##*/}/device/driver" + if [ -L "$driver_link" ]; then + driver_mod="$(readlink "$driver_link")" + driver_name="${driver_mod##*/}" + case "$driver_name" in + amdgpu|msm) # TODO: i915 + echo "munix: ${card##*/} gpu driver is '$driver_name', using vdrm" >&2; + GPU_MODE=drm + break;; + *) echo "munix: ${card##*/} gpu driver is '$driver_name', using venus unless more gpus are found" >&2;; + esac + else + echo "munix: ${card##*/} has no gpu driver" >&2; + fi + done + else + echo "munix: kernel version '$kernel_ver' is older than 6.13, not using gpu due to missing support" >&2; + GPU_MODE=software + fi + MUVM_ARGS+=("--gpu-mode=$GPU_MODE") + if [ "$GPU_MODE" = "venus" ]; then + MUVM_ARGS+=("-e" "MESA_LOADER_DRIVER_OVERRIDE=zink") + fi else BWRAP_ARGS+=("--dir" "/dev/dri") + MUVM_ARGS+=("--gpu-mode=software") fi if [ "$WAYLAND" -eq 1 ]; then diff --git a/muvm b/muvm index 70badbc..53d416f 160000 --- a/muvm +++ b/muvm @@ -1 +1 @@ -Subproject commit 70badbc44d421c49f82130321e35b949f8b4ed14 +Subproject commit 53d416fb3f96b04a5bd3dd40f94fa4d8fbf1d7f1