diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index 6356add1f87..9cf527ef297 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -32,7 +32,9 @@ body: id: description attributes: label: Describe the Bug - description: A clear and concise description of the bug, list the reproduction steps. + description: | + A clear and concise description of the bug, list the reproduction steps. + :warning: Errors in log messages are NOT bugs. Read the message and fix what it's telling you. :warning: validations: required: true - type: textarea @@ -52,6 +54,7 @@ body: description: What version operating system are you running the software on? options: - Docker + - FreeBSD - Linux - macOS - Windows @@ -75,15 +78,6 @@ body: - other, n/a validations: required: true - - type: input - id: version - attributes: - label: Sunshine commit or version - description: | - Use `sunshine --verison` to get the version, or get the version from web UI. - Please don't just copy the latest commit from our repo, if that's not the commit you're actually using. - validations: - required: true - type: dropdown id: package_type attributes: @@ -103,10 +97,10 @@ body: - Linux - solus (Third Party) - Linux - Unraid (Third Party) - macOS - Homebrew - - macOS - Portfile - Windows - Chocolatey (Third Party) - - Windows - installer (recommended) - - Windows - portable (not recommended) + - Windows - exe installer + - Windows - msi installer (recommended) + - Windows - portable (NOT recommended) - Windows - Scoop (Third Party) - Windows - Winget - other (not listed) @@ -154,19 +148,11 @@ body: - NvFBC (Linux) - wlroots (Linux) - X11 (Linux) + - XDG Portal Grab (Linux) - Desktop Duplication API (Windows) - Windows.Graphics.Capture (Windows) validations: required: false - - type: textarea - id: config - attributes: - label: Config - description: | - Please copy and paste your config (`sunshine.conf`) file. - render: Shell - validations: - required: false - type: textarea id: apps attributes: @@ -179,10 +165,20 @@ body: - type: textarea id: logs attributes: - label: Relevant log output + label: Log output description: | - Please copy and paste any relevant log output. This will be automatically formatted into code, - so no need for backticks. + Copy and paste logs from web-ui troubleshooting page. + This will be automatically formatted into code, so no need for backticks. + :warning: If full logs are not provided, the issue will be closed! :warning: render: shell validations: - required: true + required: false + - type: input + id: logs_link + attributes: + label: Online logs + description: | + If logs are too long to include in the field above, + create a [gist](https://gist.github.com/) of the logs and paste the link here. + validations: + required: false diff --git a/docs/Doxyfile b/docs/Doxyfile index 8549dbba13b..36196192614 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = Sunshine # project specific settings DOT_GRAPH_MAX_NODES = 60 -# IMAGE_PATH = ../docs/images +IMAGE_PATH = ../docs/images PREDEFINED += SUNSHINE_BUILD_WAYLAND PREDEFINED += SUNSHINE_TRAY=1 diff --git a/docs/getting_started.md b/docs/getting_started.md index 106e077a68d..5daccc041c2 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -100,22 +100,10 @@ CUDA is used for NVFBC capture. > [!CAUTION] > Use distro-specific packages instead of the AppImage if they are available. +> AppImage does not support KMS capture. -According to AppImageLint the supported distro matrix of the AppImage is below. - -- ✖ Debian bullseye -- ✔ Debian bookworm -- ✔ Debian trixie -- ✔ Debian sid -- ✔ Ubuntu plucky -- ✔ Ubuntu noble -- ✔ Ubuntu jammy -- ✖ Ubuntu focal -- ✖ Ubuntu bionic -- ✖ Ubuntu xenial -- ✖ Ubuntu trusty -- ✖ Rocky Linux 8 -- ✖ Rocky Linux 9 +> [!NOTE] +> The AppImage is built on Ubuntu 22.04, which requires `glibc 2.35` or newer and `libstdc++ 3.4.11` or newer. ##### Install 1. Download [sunshine.AppImage](https://github.com/LizardByte/Sunshine/releases/latest/download/sunshine.AppImage) @@ -214,6 +202,12 @@ sudo dnf remove sunshine ``` ##### Install (Copr) + +> [!IMPORTANT] +> Stable builds are only available if the Sunshine release was made after the Fedora version release. +> Because of this, it is often recommended to use the beta copr; however, you do not need to regularly update. +> This could lead to annoyances in rare cases where there may be a breaking change. + 1. Enable copr repository. ```bash sudo dnf copr enable lizardbyte/stable @@ -238,6 +232,7 @@ sudo dnf remove Sunshine > [!CAUTION] > Use distro-specific packages instead of the Flatpak if they are available. +> Flatpak does not support KMS capture. Using this package requires that you have [Flatpak](https://flatpak.org/setup) installed. @@ -305,6 +300,9 @@ brew install sunshine brew uninstall sunshine ``` +> [!TIP] +> For beta you can replace `sunshine` with `sunshine-beta` in the above commands. + ### macOS > [!IMPORTANT] @@ -315,6 +313,8 @@ This package requires that you have [Homebrew](https://docs.brew.sh/Installation ##### Install ```bash +brew update +brew upgrade brew tap LizardByte/homebrew brew install sunshine ``` @@ -461,6 +461,8 @@ In order for virtual gamepads to work, you must install ViGEmBus. You can do thi in the web UI, as long as you are running Sunshine as a service or as an administrator. After installation, it is recommended to restart your computer. +![ViGEmBus Installation](images/vigembus-installer.png) + ## Usage ### Basic usage @@ -481,9 +483,8 @@ sunshine /sunshine.conf ``` > [!NOTE] -> You do not need to specify a config file. If no config file is entered, the default location will be used. - -> [!TIP] +> This step is optional, you do not need to specify a config file. +> If no config file is entered, the default location will be used. > The configuration file specified will be created if it doesn't exist. ### Start Sunshine over SSH (Linux/X11) @@ -519,16 +520,27 @@ by default. You may replace *localhost* with your internal ip address. > [!CAUTION] > If running for the first time, make sure to note the username and password that you created. -1. Add games and applications. -2. Adjust any configuration settings as needed. -3. In Moonlight, you may need to add the PC manually. -4. When Moonlight requests for you insert the pin: - - - Login to the web ui +1. Change the web-ui to your desired theme, using the dropdown menu in the navbar. + ![Theme Selection](images/split-themes.png) +2. Add games and applications. + ![Applications](images/applications.png) +3. Adjust any configuration settings as needed. You can search for options in the search bar. + ![Configuration](images/configuration-search.png) +4. Find Moonlight clients and other tools for Sunshine in the `Featured Apps` tab. + ![Featured Apps](images/featured-apps.png) +5. In Moonlight, you may need to add the PC manually. +6. When Moonlight requests for you insert the pin: + + - Login to the web-ui - Go to "PIN" in the Navbar - - Type in your PIN and press Enter, you should get a Success Message + - Type in your PIN and press `Enter`, and enter a name of your choosing for the device. + You should get a Success Message! - In Moonlight, select one of the Applications listed +7. If you run into issues, logs are available in the `Troubleshooting` tab. + You can navigate through each warning/error message for clues to the issue. + ![Logs](images/troubleshooting-logs.png) + ### Arguments To get a list of available arguments, run the following command. diff --git a/docs/images/applications.png b/docs/images/applications.png new file mode 100644 index 00000000000..42f7605fc05 Binary files /dev/null and b/docs/images/applications.png differ diff --git a/docs/images/configuration-search.png b/docs/images/configuration-search.png new file mode 100644 index 00000000000..c9c573ecd4b Binary files /dev/null and b/docs/images/configuration-search.png differ diff --git a/docs/images/featured-apps.png b/docs/images/featured-apps.png new file mode 100644 index 00000000000..489ad710673 Binary files /dev/null and b/docs/images/featured-apps.png differ diff --git a/docs/images/split-themes.png b/docs/images/split-themes.png new file mode 100644 index 00000000000..22b42e02e1a Binary files /dev/null and b/docs/images/split-themes.png differ diff --git a/docs/images/troubleshooting-logs.png b/docs/images/troubleshooting-logs.png new file mode 100644 index 00000000000..ea57c7bc530 Binary files /dev/null and b/docs/images/troubleshooting-logs.png differ diff --git a/docs/images/vigembus-installer.png b/docs/images/vigembus-installer.png new file mode 100644 index 00000000000..fb68d5e0385 Binary files /dev/null and b/docs/images/vigembus-installer.png differ diff --git a/src/main.cpp b/src/main.cpp index 20a733d885b..b41174502a0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -383,7 +383,7 @@ int main(int argc, char *argv[]) { BOOST_LOG(info) << "Starting system tray"sv; #ifdef _WIN32 // TODO: Windows has a weird bug where when running as a service and on the first Windows boot, - // he tray icon would not appear even though Sunshine is running correctly otherwise. + // the tray icon would not appear even though Sunshine is running correctly otherwise. // Restarting the service would allow the icon to appear normally. // For now we will keep the Windows tray icon on a separate thread. // Ideally, we would run the system tray on the main thread for all platforms. diff --git a/src/platform/linux/kmsgrab.cpp b/src/platform/linux/kmsgrab.cpp index e8bcc37f5db..c0012dd658d 100644 --- a/src/platform/linux/kmsgrab.cpp +++ b/src/platform/linux/kmsgrab.cpp @@ -1661,9 +1661,14 @@ namespace platf { if (!fb->handles[0]) { BOOST_LOG(error) << "Couldn't get handle for DRM Framebuffer ["sv << plane->fb_id << "]: Probably not permitted"sv; BOOST_LOG((config::video.capture == "kms") ? fatal : error) - << "If you installed from AppImage or Flatpak, KMS capture is not supported.\n"sv +#if defined(SUNSHINE_BUILD_FLATPAK) || defined(SUNSHINE_BUILD_APPIMAGE) + << "AppImage and Flatpak do not support KMS capture. Use another capture method."sv; +#else + << "You must use the 'sunshine-kms' service instead of the 'sunshine' service for KMS capture.\n"sv << "Please refer to the official documentation:\n"sv - << "https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html#linux"sv; + << " stable: https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html#linux-1"sv + << " beta: https://docs.lizardbyte.dev/projects/sunshine/master/md_docs_2getting__started.html#linux-1"sv; +#endif break; }