mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-11 00:05:36 +02:00
## Description Whew.. - Steam can now run without namespaces using live-patcher (because Docker..) - Improved NVIDIA GPU selection and handling - Pipeline tests for GPU picking logic - Optimizations and cleanup all around - SSH (by default disabled) for easier instance debugging. - CachyOS' Proton because that works without namespaces (couldn't figure out how to enable automatically in Steam yet..) - Package updates and partial removal of futures (libp2p is going to switch to Tokio in next release hopefully) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - SSH server can now be enabled within the container for remote access when configured. - Added persistent live patching for Steam runtime entrypoints to improve compatibility with namespace-less applications. - Enhanced GPU selection with multi-GPU support and PCI bus ID matching for improved hardware compatibility. - Improved encoder selection by runtime testing of video encoders for better reliability. - Added WebSocket transport support in peer-to-peer networking. - Added flexible compositor and application launching with configurable commands and improved socket handling. - **Bug Fixes** - Addressed NVIDIA-specific GStreamer issues by setting new environment variables. - Improved error handling and logging for GPU and encoder selection. - Fixed process monitoring to handle patcher restarts and added cleanup logic. - Added GStreamer cache clearing workaround for Wayland socket failures. - **Improvements** - Real-time logging of container processes to standard output and error for easier monitoring. - Enhanced process management and reduced CPU usage in protocol handling loops. - Updated dependency versions for greater stability and feature support. - Improved audio capture defaults and expanded audio pipeline support. - Enhanced video pipeline setup with conditional handling for different encoder APIs and DMA-BUF support. - Refined concurrency and lifecycle management in protocol messaging for increased robustness. - Consistent namespace usage and updated crate references across the codebase. - Enhanced SSH configuration with key management, port customization, and startup verification. - Improved GPU and video encoder integration in pipeline construction. - Simplified error handling and consolidated write operations in protocol streams. - Removed Ludusavi installation from container image and updated package installations. - **Other** - Minor formatting and style changes for better code readability and maintainability. - Docker build context now ignores `.idea` directory to streamline builds. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
38 lines
1.3 KiB
Rust
38 lines
1.3 KiB
Rust
pub struct DeviceArgs {
|
|
/// GPU vendor (e.g. "intel")
|
|
pub gpu_vendor: String,
|
|
/// GPU name (e.g. "a770")
|
|
pub gpu_name: String,
|
|
/// GPU index, if multiple same GPUs are present, -1 for auto-selection
|
|
pub gpu_index: i32,
|
|
/// GPU card/render path, sets card explicitly from such path
|
|
pub gpu_card_path: String,
|
|
}
|
|
impl DeviceArgs {
|
|
pub fn from_matches(matches: &clap::ArgMatches) -> Self {
|
|
Self {
|
|
gpu_vendor: matches
|
|
.get_one::<String>("gpu-vendor")
|
|
.unwrap_or(&"".to_string())
|
|
.clone(),
|
|
gpu_name: matches
|
|
.get_one::<String>("gpu-name")
|
|
.unwrap_or(&"".to_string())
|
|
.clone(),
|
|
gpu_index: matches.get_one::<i32>("gpu-index").unwrap_or(&-1).clone(),
|
|
gpu_card_path: matches
|
|
.get_one::<String>("gpu-card-path")
|
|
.unwrap_or(&"".to_string())
|
|
.clone(),
|
|
}
|
|
}
|
|
|
|
pub fn debug_print(&self) {
|
|
tracing::info!("DeviceArgs:");
|
|
tracing::info!("> gpu_vendor: '{}'", self.gpu_vendor);
|
|
tracing::info!("> gpu_name: '{}'", self.gpu_name);
|
|
tracing::info!("> gpu_index: {}", self.gpu_index);
|
|
tracing::info!("> gpu_card_path: '{}'", self.gpu_card_path);
|
|
}
|
|
}
|