‹ Reports
The Dispatch

OSS Report: LizardByte/Sunshine


Sunshine Project Sees Surge in User-Reported GPU Compatibility Issues

Sunshine, a self-hosted game streaming host designed to work with Moonlight for low-latency cloud gaming, has experienced a significant increase in user-reported issues related to GPU compatibility and performance. This uptick highlights ongoing challenges with hardware encoding across different platforms.

Recent Activity

Recent issues and pull requests (PRs) indicate a focus on resolving compatibility problems and enhancing video encoding capabilities. Notable issues include #3134 and #3133, both concerning VAAPI encoding failures on Intel and Debian systems, respectively. These issues suggest persistent difficulties with hardware-specific configurations. Additionally, audio capture problems (#2909) and mouse input latency (#3012) are recurring themes that affect user experience.

The development team has been active, with contributions from members such as ReenigneArcher, Cameron Gutman, and ns6089. Their recent work includes fixes for keyboard layout handling, enhancements in video encoding, and updates to documentation. The team collaborates frequently, as seen in the joint efforts of ReenigneArcher and Cameron Gutman on various fixes.

Recent Contributions (Reverse Chronological)

  1. ReenigneArcher

    • Fixed CI workflow typo for Windows.
    • Implemented shared web components feature.
    • Updated game database URL.
    • Contributed to dependency updates and localization.
  2. Cameron Gutman

    • Fixed keyboard layout handling issues.
    • Ensured compatibility with AMD_DEBUG variables.
  3. ns6089

    • Enhanced video encoding with native YUV 4:4:4 support.
    • Refactored tests and logging mechanisms.
  4. Gilles Schintgen

    • Updated troubleshooting documentation.
  5. LizardByte-bot

    • Managed gh-pages synchronization.
  6. Vithorio Polten

    • Addressed macOS compatibility issues.
  7. Insanemal

    • Fixed NvFBC capture on Linux.
  8. Dependabot[bot]

    • Automated dependency updates.

Of Note

  1. GPU Compatibility Issues: Persistent problems with VAAPI encoding on Intel and Debian systems indicate ongoing hardware-specific challenges.

  2. Audio Capture Problems: Recurring audio-related issues across different operating systems highlight a need for improved audio management solutions.

  3. Mouse Input Latency: Reports of high network latency caused by mouse movement suggest critical performance concerns affecting gameplay.

  4. Video Encoding Enhancements: Active development in video encoding reflects the project's focus on improving streaming performance.

  5. Community Engagement: The project exhibits strong community involvement, evidenced by frequent issue reports and collaborative PR discussions.

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 3 3 2 3 1
30 Days 24 26 42 24 1
90 Days 90 81 294 76 2
1 Year 267 200 1215 203 5
All Time 772 697 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
ns6089 1 9/5/2 6 65 2941
ReenigneArcher 1 22/21/2 21 62 1270
LizardByte-bot 2 3/3/0 5 12 587
Cameron Gutman 1 5/5/0 5 12 170
Gilles Schintgen 1 1/1/0 1 1 31
dependabot[bot] 3 31/11/22 13 11 28
Vithorio Polten 1 2/1/0 1 1 6
Insanemal 1 1/1/0 1 1 1
Chase Payne (Nonary) 0 1/0/0 0 0 0
Inder (wiseindy) 0 0/0/1 0 0 0
Radu Grecu (radugrecu97) 0 1/0/1 0 0 0
Static Reflection (StaticReflection) 0 1/0/1 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The Sunshine project has seen a notable uptick in recent activity, with 75 open issues currently logged on GitHub. Among these, several issues have been created or updated in the past few days, indicating ongoing user engagement and potential areas of concern that require attention. A recurring theme is the interaction between different GPU types and encoding methods, particularly with Intel and AMD hardware, as well as issues related to audio capture and display configurations.

Several issues exhibit anomalies, such as the inability to switch between GPUs effectively (#2078), problems with audio output on specific operating systems (#2909), and difficulties with video encoding across different hardware setups (#2540). Additionally, there are reports of performance regressions following updates, particularly concerning stream quality and latency when using VAAPI encoders (#2864).

Issue Details

Recently Created Issues

  1. Issue #3134: Intel Arc A380 (VA-API): Error: Couldn't import RGB Image: 00003009

    • Priority: High
    • Status: Open
    • Created: 5 days ago
    • Update: N/A
  2. Issue #3133: VAAPI encoding stopped working on Debian 12.7

    • Priority: High
    • Status: Open
    • Created: 5 days ago
    • Update: N/A
  3. Issue #3103: No scrolling in macOS

    • Priority: Medium
    • Status: Open
    • Created: 13 days ago
    • Update: N/A
  4. Issue #3012: Mouse movement will cause high network latency

    • Priority: Medium
    • Status: Open
    • Created: 26 days ago
    • Update: Edited 7 days ago
  5. Issue #2971: No Mouse Input on Nightly Builds in Fedora 40

    • Priority: High
    • Status: Open
    • Created: 33 days ago
    • Update: Edited 8 days ago

Recently Updated Issues

  1. Issue #2955: Can't stream a headless monitor created with Hyprland

    • Priority: Medium
    • Status: Open
    • Last Updated: 36 days ago
  2. Issue #2646: On my Minisforum HX99G running Bazzite OS, a sunshine stream of Gaming Mode to Moonlight Client results in distorted streamed image.

    • Priority: Medium
    • Status: Open
    • Last Updated: 2 days ago
  3. Issue #2614: [Linux] Keyboard not working in several games.

    • Priority: Medium
    • Status: Open
    • Last Updated: 0 days ago

Themes and Commonalities

  • Many issues revolve around compatibility and performance when using different GPU configurations, especially with Intel's VA-API and Nvidia's NVENC encoders.
  • Audio-related issues are prevalent, particularly concerning the ability to manage audio outputs effectively across various operating systems.
  • There is a noticeable concern regarding the stability of the software during updates, with users reporting regressions in stream quality and functionality post-update.
  • The interaction between mouse input and streaming applications appears to be a recurring problem, especially in gaming contexts where precise input is critical.

Overall, the Sunshine project is actively addressing user-reported issues while continuing to evolve its capabilities across various platforms and hardware configurations.

Report On: Fetch pull requests



Overview

The analysis of the pull requests (PRs) for the Sunshine project indicates a robust development activity with a focus on enhancing functionality, fixing bugs, and improving user experience. The current state shows 22 open PRs, with a mix of new features, dependency updates, and bug fixes.

Summary of Pull Requests

  1. PR #3152: Fix for file(TO_NATIVE_PATH) in CMake due to issues in the latest version. This PR addresses a critical bug affecting build processes.

  2. PR #3150: Dependency update for Vue from version 3.5.2 to 3.5.3, ensuring the project stays current with library improvements and bug fixes.

  3. PR #3061: A draft feature adding split frame encoding support for NVENC, indicating ongoing enhancements in video encoding capabilities.

  4. PR #3040: Another draft related to dynamic SDK version selection at runtime for NVENC, showcasing efforts to improve flexibility in handling different SDK versions.

  5. PR #3002: A bug fix improving GPU selection logic for hybrid GPU setups, addressing multiple issues reported by users.

  6. PR #2906: Fixes related to ensuring that uhid is loaded automatically for DualSense5 emulation, which is crucial for device compatibility.

  7. PR #2894: A feature introducing a new dependency on libdisplaydevice, aimed at improving display management across platforms.

  8. PR #2893: Bug fix for touch dislocation on multi-screen devices, enhancing usability for users with complex setups.

  9. PR #2507: Introduction of XDG portal support and Pipewire integration, indicating a significant step towards modernizing the project's architecture.

  10. PR #1818: Configuration PR for Renovate, aimed at automating dependency updates.

  11. PR #3154: Minor typo fix in CI configuration, reflecting ongoing maintenance efforts.

  12. PR #3151: Dependency update for Wayland protocols, ensuring compatibility with the latest standards.

  13. PR #3148: Update of game database URL due to CORS issues, demonstrating responsiveness to external changes affecting functionality.

  14. PR #3146: Bump of Vue.js version to 3.5.2 as part of regular maintenance and security updates.

  15. PR #3141: Update of third-party tray dependency, ensuring continued compatibility with external libraries.

  16. PR #2995: Major overhaul replacing Basic Authentication with JWT tokens and adding a new login page, significantly changing the authentication mechanism.

  17. PR #2885: Proof-of-concept for using output names in Wayland grabber instead of numeric IDs, enhancing user experience and usability.

  18. PR #2594: Refactor to split server and input files into separate groups for better organization and maintainability.

  19. PR #2582: New API additions for modifying display devices on Windows, allowing more control over display settings.

  20. PR #2508: Fix for macOS accessibility permissions to ensure proper handling of input events.

  21. PR #2490: Proposal to list available displays in a user-friendly manner instead of requiring manual ID entry.

  22. PR #1445: Draft PR aimed at enabling input-only sessions for specific use cases like Xbox clients.

Analysis of Pull Requests

The current set of open pull requests reflects a diverse range of activities within the Sunshine project, indicating both active maintenance and significant feature development:

Feature Enhancements

Several PRs focus on enhancing user experience and functionality:

  • The introduction of JWT tokens (#2995) represents a modern approach to authentication that aligns with contemporary web security practices.
  • The addition of dynamic SDK version selection (#3040) and split frame encoding support (#3061) highlights an ongoing effort to improve video processing capabilities.
  • The proposal to use output names instead of numeric IDs (#2885) aims to simplify user interactions with the software by making it more intuitive.

Bug Fixes

A notable number of PRs are dedicated to fixing bugs:

  • The GPU selection logic improvement (#3002) addresses critical issues that could affect performance on hybrid systems.
  • The fix for touch dislocation (#2893) demonstrates responsiveness to user feedback regarding usability on multi-screen setups.
  • The automatic loading of uhid (#2906) ensures that essential features work seamlessly across different environments.

Dependency Management

Regular updates to dependencies such as Vue.js (#3146) and Wayland protocols (#3151) indicate an active commitment to keeping the project secure and compatible with external libraries and frameworks.

Community Engagement

The discussions within PRs reveal an engaged community focused on collaboration and improvement:

  • Contributors actively discuss potential changes and enhancements, such as the need for better documentation or adjustments based on feedback from testing.
  • There are ongoing conversations about balancing new features with maintaining existing functionalities without introducing breaking changes, particularly concerning authentication methods (#2995).

Anomalies

While most PRs are progressing well, some face challenges:

  • Several PRs have been marked as drafts due to pending discussions or additional work needed before they can be merged.
  • Issues related to quality gates failing in SonarCloud indicate areas where code quality needs improvement before merging can occur (#3148).

Conclusion

Overall, the Sunshine project is experiencing healthy growth through its pull request activity, showcasing a blend of new features, bug fixes, and dependency management efforts that align with community needs and modern software practices. However, attention must be paid to maintaining code quality standards and addressing any outstanding issues raised during reviews to ensure smooth integration of these contributions into the main codebase.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Contributions

  1. ReenigneArcher

    • Recent Activity:
    • Fixed a typo in the CI workflow for Windows.
    • Implemented a feature to use shared web components.
    • Updated game database URL in the UI applications.
    • Updated translations and documentation, including metadata and URLs.
    • Contributed to various dependency bumps and localization updates.
    • Collaborations: Worked with dependabot on dependency updates; collaborated with Gilles Schintgen on documentation.
  2. Cameron Gutman (cgutman)

    • Recent Activity:
    • Fixed issues related to keyboard layout handling and false warnings in input handling.
    • Made changes to ensure compatibility with AMD_DEBUG environment variables.
    • Collaborations: Collaborated with ReenigneArcher on various fixes.
  3. ns6089

    • Recent Activity:
    • Made significant changes to video encoding, including support for native YUV 4:4:4 encoding.
    • Refactored tests and logging mechanisms.
    • Collaborations: Worked with ReenigneArcher on multiple features and fixes.
  4. Gilles Schintgen (gschintgen)

    • Recent Activity:
    • Updated troubleshooting documentation and contributed to various fixes.
    • Collaborations: Partnered with ReenigneArcher on documentation updates.
  5. LizardByte-bot

    • Recent Activity:
    • Managed synchronization of the gh-pages branch and global workflow updates.
    • Collaborations: Primarily operates independently but integrates changes from other team members.
  6. Vithorio Polten (Hazer)

    • Recent Activity:
    • Contributed fixes related to macOS compatibility and enhancements.
    • Collaborations: Worked alongside ReenigneArcher on several features.
  7. Insanemal

    • Recent Activity:
    • Implemented a fix for NvFBC capture functionality on Linux.
    • Collaborations: Primarily independent contributions.
  8. Dependabot[bot]

    • Recent Activity:
    • Automated dependency updates across various libraries, including Vue.js and third-party SDKs.
    • Collaborations: Co-authored many commits with ReenigneArcher.

Patterns, Themes, and Conclusions

  • Active Development: The team shows consistent activity, with multiple commits daily focusing on bug fixes, feature enhancements, and dependency management.
  • Collaboration: There is a strong collaborative effort among team members, particularly between ReenigneArcher, Cameron Gutman, and ns6089, indicating a cohesive development environment.
  • Focus Areas:
    • Enhancements in video encoding capabilities are prominent, reflecting the project's goal of improving streaming performance.
    • Regular updates to dependencies suggest an emphasis on maintaining up-to-date libraries for security and performance improvements.
    • Documentation improvements indicate a commitment to user support and community engagement.

Overall, the development team is actively engaged in enhancing the Sunshine project through continuous integration of new features, bug fixes, and collaborative efforts across various aspects of the codebase.