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 8c4f6ecc..6aefd3a2 100644 --- a/packages/scripts/entrypoint.sh +++ b/packages/scripts/entrypoint.sh @@ -38,7 +38,8 @@ 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, 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..60007468 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 @@ -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 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() {