Merge branch 'feature/VNC-204_vulkan_support' into 'develop'

VNC-204 vulkan support

Closes VNC-204

See merge request kasm-technologies/internal/workspaces-images!306
This commit is contained in:
Richard Koliser 2025-08-22 20:31:20 +00:00
commit 9e628df557
5 changed files with 78 additions and 10 deletions

View file

@ -8,8 +8,8 @@ stages:
- template
- run
variables:
BASE_TAG: "develop"
USE_PRIVATE_IMAGES: 0
BASE_TAG: "feature_VNC-204_vulkan_support"
USE_PRIVATE_IMAGES: 1
KASM_RELEASE: "1.17.0"
TEST_INSTALLER: "https://kasm-static-content.s3.amazonaws.com/kasm_release_1.17.0.bbc15c.tar.gz"
MIRROR_ORG_NAME: "kasmtech"

View file

@ -24,14 +24,31 @@ chmod +x $HOME/Desktop/brave-browser.desktop
mv /usr/bin/brave-browser /usr/bin/brave-browser-orig
cat >/usr/bin/brave-browser <<EOL
#!/usr/bin/env bash
supports_vulkan() {
# Needs the CLI tool
command -v vulkaninfo >/dev/null 2>&1 || return 1
# Look for any non-CPU device
DISPLAY= vulkaninfo --summary 2>/dev/null |
grep -qE 'PHYSICAL_DEVICE_TYPE_(INTEGRATED_GPU|DISCRETE_GPU|VIRTUAL_GPU)'
}
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/BraveSoftware/Brave-Browser/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"None"/' ~/.config/BraveSoftware/Brave-Browser/Default/Preferences
VULKAN_FLAGS=
if supports_vulkan; then
VULKAN_FLAGS="--use-angle=vulkan"
echo 'vulkan supported'
fi
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "\${KASM_EGL_CARD}" ] && [ ! -z "\${KASM_RENDERD}" ] && [ -O "\${KASM_RENDERD}" ] && [ -O "\${KASM_EGL_CARD}" ] ; then
echo "Starting Brave with GPU Acceleration on EGL device \${KASM_EGL_CARD}"
vglrun -d "\${KASM_EGL_CARD}" /opt/brave.com/brave/brave-browser ${CHROME_ARGS} "\$@"
vglrun -d "\${KASM_EGL_CARD}" /opt/brave.com/brave/brave-browser ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
else
echo "Starting Brave"
/opt/brave.com/brave/brave-browser ${CHROME_ARGS} "\$@"
/opt/brave.com/brave/brave-browser ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
fi
EOL
chmod +x /usr/bin/brave-browser

View file

@ -63,17 +63,34 @@ chmod +x $HOME/Desktop/google-chrome.desktop
mv /usr/bin/google-chrome /usr/bin/google-chrome-orig
cat >/usr/bin/google-chrome <<EOL
#!/usr/bin/env bash
supports_vulkan() {
# Needs the CLI tool
command -v vulkaninfo >/dev/null 2>&1 || return 1
# Look for any non-CPU device
DISPLAY= vulkaninfo --summary 2>/dev/null |
grep -qE 'PHYSICAL_DEVICE_TYPE_(INTEGRATED_GPU|DISCRETE_GPU|VIRTUAL_GPU)'
}
if ! pgrep chrome > /dev/null;then
rm -f \$HOME/.config/google-chrome/Singleton*
fi
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/google-chrome/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"None"/' ~/.config/google-chrome/Default/Preferences
VULKAN_FLAGS=
if supports_vulkan; then
VULKAN_FLAGS="--use-angle=vulkan"
echo 'vulkan supported'
fi
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "\${KASM_EGL_CARD}" ] && [ ! -z "\${KASM_RENDERD}" ] && [ -O "\${KASM_RENDERD}" ] && [ -O "\${KASM_EGL_CARD}" ] ; then
echo "Starting Chrome with GPU Acceleration on EGL device \${KASM_EGL_CARD}"
vglrun -d "\${KASM_EGL_CARD}" /opt/google/chrome/google-chrome ${CHROME_ARGS} "\$@"
vglrun -d "\${KASM_EGL_CARD}" /opt/google/chrome/google-chrome ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
else
echo "Starting Chrome"
/opt/google/chrome/google-chrome ${CHROME_ARGS} "\$@"
/opt/google/chrome/google-chrome ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
fi
EOL
chmod +x /usr/bin/google-chrome

View file

@ -74,17 +74,34 @@ fi
mv /usr/bin/${REAL_BIN} /usr/bin/${REAL_BIN}-orig
cat >/usr/bin/${REAL_BIN} <<EOL
#!/usr/bin/env bash
supports_vulkan() {
# Needs the CLI tool
command -v vulkaninfo >/dev/null 2>&1 || return 1
# Look for any non-CPU device
DISPLAY= vulkaninfo --summary 2>/dev/null |
grep -qE 'PHYSICAL_DEVICE_TYPE_(INTEGRATED_GPU|DISCRETE_GPU|VIRTUAL_GPU)'
}
if ! pgrep chromium > /dev/null;then
rm -f \$HOME/.config/chromium/Singleton*
fi
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"None"/' ~/.config/chromium/Default/Preferences
VULKAN_FLAGS=
if supports_vulkan; then
VULKAN_FLAGS="--use-angle=vulkan"
echo 'vulkan supported'
fi
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "\${KASM_EGL_CARD}" ] && [ ! -z "\${KASM_RENDERD}" ] && [ -O "\${KASM_RENDERD}" ] && [ -O "\${KASM_EGL_CARD}" ] ; then
echo "Starting Chrome with GPU Acceleration on EGL device \${KASM_EGL_CARD}"
vglrun -d "\${KASM_EGL_CARD}" /usr/bin/${REAL_BIN}-orig ${CHROME_ARGS} "\$@"
vglrun -d "\${KASM_EGL_CARD}" /usr/bin/${REAL_BIN}-orig ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
else
echo "Starting Chrome"
/usr/bin/${REAL_BIN}-orig ${CHROME_ARGS} "\$@"
/usr/bin/${REAL_BIN}-orig ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
fi
EOL
chmod +x /usr/bin/${REAL_BIN}

View file

@ -18,14 +18,31 @@ chmod +x $HOME/Desktop/microsoft-edge.desktop
mv /usr/bin/microsoft-edge-stable /usr/bin/microsoft-edge-stable-orig
cat >/usr/bin/microsoft-edge-stable <<EOL
#!/usr/bin/env bash
supports_vulkan() {
# Needs the CLI tool
command -v vulkaninfo >/dev/null 2>&1 || return 1
# Look for any non-CPU device
DISPLAY= vulkaninfo --summary 2>/dev/null |
grep -qE 'PHYSICAL_DEVICE_TYPE_(INTEGRATED_GPU|DISCRETE_GPU|VIRTUAL_GPU)'
}
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/microsoft-edge/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"None"/' ~/.config/microsoft-edge/Default/Preferences
VULKAN_FLAGS=
if supports_vulkan; then
VULKAN_FLAGS="--use-angle=vulkan"
echo 'vulkan supported'
fi
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "\${KASM_EGL_CARD}" ] && [ ! -z "\${KASM_RENDERD}" ] && [ -O "\${KASM_RENDERD}" ] && [ -O "\${KASM_EGL_CARD}" ] ; then
echo "Starting Edge with GPU Acceleration on EGL device \${KASM_EGL_CARD}"
vglrun -d "\${KASM_EGL_CARD}" /opt/microsoft/msedge/microsoft-edge ${CHROME_ARGS} "\$@"
vglrun -d "\${KASM_EGL_CARD}" /opt/microsoft/msedge/microsoft-edge ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
else
echo "Starting Edge"
/opt/microsoft/msedge/microsoft-edge ${CHROME_ARGS} "\$@"
/opt/microsoft/msedge/microsoft-edge ${CHROME_ARGS} "\${VULKAN_FLAGS}" "\$@"
fi
EOL
chmod +x /usr/bin/microsoft-edge-stable