automate/glxinfo-extraction.sh

41 lines
1.2 KiB
Bash

should_use_software() {
if ! command -v glxinfo >/dev/null 2>&1; then
echo "glxinfo missing → assuming software fallback needed"
return 0
fi
local direct core_ver
direct=$(glxinfo | grep -i '^direct rendering:' | awk '{print $3}' || echo "No")
if [[ "$direct" != "Yes" ]]; then
echo "No direct rendering → force software"
return 0
fi
# Prefer core profile version string (most reliable)
core_ver=$(glxinfo | grep -i "OpenGL core profile version string" | grep -oE '[0-9]+\.[0-9]+' | head -n1)
if [[ -z "$core_ver" ]]; then
# Fallback to max core profile line if present
core_ver=$(glxinfo | grep -i "Max core profile" | grep -oE '[0-9]+\.[0-9]+' | head -n1)
fi
echo "Detected OpenGL core: ${core_ver:-unknown}"
if [[ "$core_ver" =~ ^(3\.[3-9]|[4-9]\.) ]]; then
echo "Hardware OK (≥3.3 core)"
return 1
fi
# Optional GLES fallback check (as you had)
if command -v eglinfo >/dev/null 2>&1; then
local es_ver=$(eglinfo | grep -oE 'OpenGL ES [0-9]+\.[0-9]+' | grep -oE '[0-9]+\.[0-9]+' | head -n1)
if [[ "$es_ver" =~ ^[3-9]\. ]]; then
echo "GLES ${es_ver} fallback OK"
return 1
fi
fi
echo "Insufficient OpenGL → force software"
return 0
}