add upstream wrapper to Use Zink bypassing the problematic NVIDIA OpenGL stack while retaining hardware acceleration
This commit is contained in:
parent
f7483c78ae
commit
f23f04c99b
3 changed files with 48 additions and 5 deletions
29
orca-slicer-wrapper.sh
Normal file
29
orca-slicer-wrapper.sh
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
DIR="/usr/lib/orca-slicer"
|
||||
export LD_LIBRARY_PATH="$DIR/bin:$LD_LIBRARY_PATH"
|
||||
|
||||
# OrcaSlicer will segfault on systems where locale info is not as expected
|
||||
export LC_ALL=C
|
||||
|
||||
#Use Zink to run OpenGL on top of Vulkan bypassing the problematic NVIDIA OpenGL stack while retaining hardware acceleration.
|
||||
if [ "$XDG_SESSION_TYPE" = "wayland" ] && [ "$ZINK_DISABLE_OVERRIDE" != "1" ]; then
|
||||
if command -v glxinfo >/dev/null 2>&1; then
|
||||
RENDERER=$(glxinfo | grep "OpenGL renderer string:" | sed 's/.*: //')
|
||||
if echo "$RENDERER" | grep -qi "NVIDIA"; then
|
||||
if command -v nvidia-smi >/dev/null 2>&1; then
|
||||
DRIVER_VERSION=$(nvidia-smi --query-gpu=driver_version --format=csv,noheader | head -n1)
|
||||
DRIVER_MAJOR=$(echo "$DRIVER_VERSION" | cut -d. -f1)
|
||||
[ "$DRIVER_MAJOR" -gt 555 ] && ZINK_FORCE_OVERRIDE=1
|
||||
fi
|
||||
if [ "$ZINK_FORCE_OVERRIDE" = "1" ]; then
|
||||
export __GLX_VENDOR_LIBRARY_NAME=mesa
|
||||
export __EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json
|
||||
export MESA_LOADER_DRIVER_OVERRIDE=zink
|
||||
export GALLIUM_DRIVER=zink
|
||||
export WEBKIT_DISABLE_DMABUF_RENDERER=1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
exec "$DIR/orca-slicer" "$@"
|
Loading…
Add table
Add a link
Reference in a new issue