From 796ef0624cc4d1a83709db41fd2486ae2edc4f4d Mon Sep 17 00:00:00 2001 From: DatCaptainHorse Date: Sat, 1 Feb 2025 22:51:58 +0200 Subject: [PATCH 1/5] Potential fix for NVIDIA driver issue --- packages/scripts/entrypoint.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/scripts/entrypoint.sh b/packages/scripts/entrypoint.sh index 8c4f6ecc..1858d617 100644 --- a/packages/scripts/entrypoint.sh +++ b/packages/scripts/entrypoint.sh @@ -38,7 +38,10 @@ get_gpu_info # Check vendors in priority order if [[ -n "${vendor_devices[nvidia]:-}" ]]; then - echo "NVIDIA GPU detected. Assuming drivers are linked" + echo "NVIDIA GPU detected, doing a workaround..." + pacman -Sy downgrade + pacman -Sy nvidia-utils lib32-nvidia-utils --overwrite '*' + downgrade --prefer-cache lib32-libx11==1.8.1 -- --noconfirm elif [[ -n "${vendor_devices[intel]:-}" ]]; then echo "Intel GPU detected, installing required packages..." pacman -Sy --noconfirm gstreamer-vaapi gst-plugin-va gst-plugin-qsv From fe4bc9200fab14119dfda7b563d10fd916e3b2b8 Mon Sep 17 00:00:00 2001 From: DatCaptainHorse Date: Sun, 2 Feb 2025 07:33:16 +0200 Subject: [PATCH 2/5] Add missing flags --- packages/scripts/entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/scripts/entrypoint.sh b/packages/scripts/entrypoint.sh index 1858d617..f1ef4cd1 100644 --- a/packages/scripts/entrypoint.sh +++ b/packages/scripts/entrypoint.sh @@ -39,8 +39,8 @@ get_gpu_info # Check vendors in priority order if [[ -n "${vendor_devices[nvidia]:-}" ]]; then echo "NVIDIA GPU detected, doing a workaround..." - pacman -Sy downgrade - pacman -Sy nvidia-utils lib32-nvidia-utils --overwrite '*' + pacman -Sy --noconfirm downgrade + pacman -Sy --noconfirm nvidia-utils lib32-nvidia-utils --overwrite '*' downgrade --prefer-cache lib32-libx11==1.8.1 -- --noconfirm elif [[ -n "${vendor_devices[intel]:-}" ]]; then echo "Intel GPU detected, installing required packages..." From f3823e92417a8647ac3ab2db2a996b4e086c8416 Mon Sep 17 00:00:00 2001 From: DatCaptainHorse Date: Sun, 2 Feb 2025 15:39:43 +0200 Subject: [PATCH 3/5] Some minor fixes --- packages/scripts/entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/scripts/entrypoint.sh b/packages/scripts/entrypoint.sh index f1ef4cd1..21557ced 100644 --- a/packages/scripts/entrypoint.sh +++ b/packages/scripts/entrypoint.sh @@ -40,8 +40,8 @@ get_gpu_info if [[ -n "${vendor_devices[nvidia]:-}" ]]; then echo "NVIDIA GPU detected, doing a workaround..." pacman -Sy --noconfirm downgrade - pacman -Sy --noconfirm nvidia-utils lib32-nvidia-utils --overwrite '*' - downgrade --prefer-cache lib32-libx11==1.8.1 -- --noconfirm + pacman -Sy --noconfirm --ask=4 nvidia-utils lib32-nvidia-utils --overwrite '*' + N|sudo downgrade --prefer-cache lib32-libx11==1.8.1 -- --noconfirm elif [[ -n "${vendor_devices[intel]:-}" ]]; then echo "Intel GPU detected, installing required packages..." pacman -Sy --noconfirm gstreamer-vaapi gst-plugin-va gst-plugin-qsv From 2032b14cd6fcbff398ee13ab4e9a4d8c34fe067a Mon Sep 17 00:00:00 2001 From: DatCaptainHorse Date: Sun, 2 Feb 2025 17:55:46 +0200 Subject: [PATCH 4/5] Runs but steam is stinky, fix unkown gpu nestri-server issue --- containers/runner.Containerfile | 3 ++- packages/scripts/entrypoint.sh | 6 ++---- packages/scripts/entrypoint_nestri.sh | 2 +- packages/server/src/main.rs | 3 ++- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/containers/runner.Containerfile b/containers/runner.Containerfile index d600cc96..5d162ac0 100644 --- a/containers/runner.Containerfile +++ b/containers/runner.Containerfile @@ -120,7 +120,8 @@ RUN sed -i \ RUN pacman --noconfirm -Sy && \ # Core system components pacman -S --needed --noconfirm \ - archlinux-keyring mesa steam steam-native-runtime \ + archlinux-keyring vulkan-intel lib32-vulkan-intel mesa \ + steam steam-native-runtime \ sudo xorg-xwayland labwc wlr-randr mangohud \ pipewire pipewire-pulse pipewire-alsa wireplumber \ noto-fonts-cjk supervisor jq chwd lshw pacman-contrib && \ diff --git a/packages/scripts/entrypoint.sh b/packages/scripts/entrypoint.sh index 21557ced..6aefd3a2 100644 --- a/packages/scripts/entrypoint.sh +++ b/packages/scripts/entrypoint.sh @@ -38,10 +38,8 @@ get_gpu_info # Check vendors in priority order if [[ -n "${vendor_devices[nvidia]:-}" ]]; then - echo "NVIDIA GPU detected, doing a workaround..." - pacman -Sy --noconfirm downgrade - pacman -Sy --noconfirm --ask=4 nvidia-utils lib32-nvidia-utils --overwrite '*' - N|sudo downgrade --prefer-cache lib32-libx11==1.8.1 -- --noconfirm + echo "NVIDIA GPU detected, assuming driver is linked and applying Vulkan fix..." + echo "{\"file_format_version\":\"1.0.0\",\"ICD\":{\"library_path\":\"libGLX_nvidia.so.0\",\"api_version\":\"1.3\"}}" > /usr/share/vulkan/icd.d/nvidia_icd.json elif [[ -n "${vendor_devices[intel]:-}" ]]; then echo "Intel GPU detected, installing required packages..." pacman -Sy --noconfirm gstreamer-vaapi gst-plugin-va gst-plugin-qsv diff --git a/packages/scripts/entrypoint_nestri.sh b/packages/scripts/entrypoint_nestri.sh index f8559afb..0779368c 100644 --- a/packages/scripts/entrypoint_nestri.sh +++ b/packages/scripts/entrypoint_nestri.sh @@ -46,7 +46,7 @@ start_nestri_server() { for _ in {1..15}; do # Wait up to 15 seconds if [ -e "$WAYLAND_SOCKET" ]; then echo "Wayland display 'wayland-1' is ready." - sleep 1 # necessary sleep - reduces chance that non-ready socket is used + sleep 5 # necessary sleep - reduces chance that non-ready socket is used start_compositor return fi diff --git a/packages/server/src/main.rs b/packages/server/src/main.rs index cf32ecaa..a2d3ef89 100644 --- a/packages/server/src/main.rs +++ b/packages/server/src/main.rs @@ -10,6 +10,7 @@ mod proto; use crate::args::encoding_args; use crate::nestrisink::NestriSignaller; use crate::websocket::NestriWebSocket; +use crate::gpu::GPUVendor; use futures_util::StreamExt; use gst::prelude::*; use gstrswebrtc::signaller::Signallable; @@ -54,7 +55,7 @@ fn handle_gpus(args: &args::Args) -> Option { gpu = filtered_gpus.get(args.device.gpu_index as usize).cloned(); } else { // get first GPU - gpu = filtered_gpus.get(0).cloned(); + gpu = filtered_gpus.into_iter().find(|g| *g.vendor() != GPUVendor::UNKNOWN); } } if gpu.is_none() { From f66c27c882fab2bcc5fb89ad753f47b08e8cbaad Mon Sep 17 00:00:00 2001 From: DatCaptainHorse Date: Mon, 3 Feb 2025 15:27:41 +0200 Subject: [PATCH 5/5] Use steam-native --- packages/scripts/entrypoint_nestri.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/scripts/entrypoint_nestri.sh b/packages/scripts/entrypoint_nestri.sh index 0779368c..60007468 100644 --- a/packages/scripts/entrypoint_nestri.sh +++ b/packages/scripts/entrypoint_nestri.sh @@ -127,7 +127,7 @@ start_steam() { fi echo "Starting Steam with -tenfoot..." - WAYLAND_DISPLAY=wayland-0 steam -tenfoot & + WAYLAND_DISPLAY=wayland-0 steam-native -tenfoot & STEAM_PID=$! # Verify Steam started successfully