From d57463f7dfbbe14515c0461f69f78a3e54dd835b Mon Sep 17 00:00:00 2001 From: matt Date: Thu, 26 Jun 2025 14:31:23 +0000 Subject: [PATCH] VNC-204 vulkan support --- .gitlab-ci.yml | 4 ++-- src/ubuntu/install/brave/install_brave.sh | 21 +++++++++++++++++-- src/ubuntu/install/chrome/install_chrome.sh | 21 +++++++++++++++++-- .../install/chromium/install_chromium.sh | 21 +++++++++++++++++-- src/ubuntu/install/edge/install_edge.sh | 21 +++++++++++++++++-- 5 files changed, 78 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f46a6a6..2ccf472 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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" diff --git a/src/ubuntu/install/brave/install_brave.sh b/src/ubuntu/install/brave/install_brave.sh index e1809ea..f85efd2 100644 --- a/src/ubuntu/install/brave/install_brave.sh +++ b/src/ubuntu/install/brave/install_brave.sh @@ -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 </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 diff --git a/src/ubuntu/install/chrome/install_chrome.sh b/src/ubuntu/install/chrome/install_chrome.sh index 5f192e7..7197b04 100644 --- a/src/ubuntu/install/chrome/install_chrome.sh +++ b/src/ubuntu/install/chrome/install_chrome.sh @@ -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 </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 diff --git a/src/ubuntu/install/chromium/install_chromium.sh b/src/ubuntu/install/chromium/install_chromium.sh index 985a3ee..74a3063 100644 --- a/src/ubuntu/install/chromium/install_chromium.sh +++ b/src/ubuntu/install/chromium/install_chromium.sh @@ -74,17 +74,34 @@ fi mv /usr/bin/${REAL_BIN} /usr/bin/${REAL_BIN}-orig cat >/usr/bin/${REAL_BIN} </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} diff --git a/src/ubuntu/install/edge/install_edge.sh b/src/ubuntu/install/edge/install_edge.sh index 6eaa511..38c5e1c 100644 --- a/src/ubuntu/install/edge/install_edge.sh +++ b/src/ubuntu/install/edge/install_edge.sh @@ -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 </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