gitextract_mnfxyeca/ ├── .clang-format ├── .dockerignore ├── .flake8 ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug-report.yml │ │ └── config.yml │ ├── copilot-instructions.md │ ├── dependabot.yml │ ├── matchers/ │ │ ├── copr-ci.json │ │ ├── docker.json │ │ ├── gcc-strip3.json │ │ └── gcc.json │ ├── semantic.yml │ └── workflows/ │ ├── _codeql.yml │ ├── _common-lint.yml │ ├── _release-notifier.yml │ ├── _update-changelog.yml │ ├── _update-docs.yml │ ├── _update-flathub-repo.yml │ ├── _update-homebrew-repo.yml │ ├── _update-pacman-repo.yml │ ├── _update-winget-repo.yml │ ├── ci-archlinux.yml │ ├── ci-bundle.yml │ ├── ci-copr.yml │ ├── ci-flatpak.yml │ ├── ci-freebsd.yml │ ├── ci-homebrew.yml │ ├── ci-linux.yml │ ├── ci-macos.yml │ ├── ci-windows.yml │ ├── ci.yml │ ├── localize.yml │ ├── release-notifier-moonlight.yml │ └── update-pages.yml ├── .gitignore ├── .gitmodules ├── .prettierrc.json ├── .readthedocs.yaml ├── .rstcheck.cfg ├── CMakeLists.txt ├── DOCKER_README.md ├── LICENSE ├── NOTICE ├── README.md ├── cmake/ │ ├── FindLIBCAP.cmake │ ├── FindLIBDRM.cmake │ ├── FindLibva.cmake │ ├── FindSystemd.cmake │ ├── FindUdev.cmake │ ├── FindWayland.cmake │ ├── compile_definitions/ │ │ ├── common.cmake │ │ ├── linux.cmake │ │ ├── macos.cmake │ │ ├── unix.cmake │ │ └── windows.cmake │ ├── dependencies/ │ │ ├── Boost_Sunshine.cmake │ │ ├── FindOpus.cmake │ │ ├── common.cmake │ │ ├── ffmpeg.cmake │ │ ├── glad.cmake │ │ ├── libevdev_Sunshine.cmake │ │ ├── linux.cmake │ │ ├── macos.cmake │ │ ├── nlohmann_json.cmake │ │ ├── unix.cmake │ │ └── windows.cmake │ ├── macros/ │ │ ├── common.cmake │ │ ├── linux.cmake │ │ ├── macos.cmake │ │ ├── unix.cmake │ │ └── windows.cmake │ ├── packaging/ │ │ ├── common.cmake │ │ ├── freebsd_custom_cpack.cmake │ │ ├── linux.cmake │ │ ├── macos.cmake │ │ ├── unix.cmake │ │ ├── windows.cmake │ │ ├── windows_nsis.cmake │ │ ├── windows_wix.cmake │ │ └── wix_resources/ │ │ ├── patch.xml │ │ └── sunshine-installer.wxs │ ├── prep/ │ │ ├── build_version.cmake │ │ ├── constants.cmake │ │ ├── init.cmake │ │ ├── options.cmake │ │ └── special_package_configuration.cmake │ └── targets/ │ ├── common.cmake │ ├── linux.cmake │ ├── macos.cmake │ ├── unix.cmake │ └── windows.cmake ├── codecov.yml ├── crowdin.yml ├── docker/ │ ├── clion-toolchain.dockerfile │ ├── debian-trixie.dockerfile │ ├── ubuntu-22.04.dockerfile │ └── ubuntu-24.04.dockerfile ├── docs/ │ ├── Doxyfile │ ├── api.js │ ├── api.md │ ├── app_examples.md │ ├── awesome_sunshine.md │ ├── building.md │ ├── changelog.md │ ├── configuration.js │ ├── configuration.md │ ├── contributing.md │ ├── doc-styles.css │ ├── gamestream_migration.md │ ├── getting_started.md │ ├── guides.md │ ├── legal.md │ ├── maintainers/ │ │ ├── README.md │ │ └── release.md │ ├── performance_tuning.md │ ├── third_party_packages.md │ └── troubleshooting.md ├── gh-pages-template/ │ ├── .readthedocs.yaml │ ├── _config.yml │ ├── _data/ │ │ ├── clients.yml │ │ └── features.yml │ └── index.html ├── package.json ├── packaging/ │ ├── linux/ │ │ ├── AppImage/ │ │ │ ├── AppRun │ │ │ └── dev.lizardbyte.app.Sunshine.desktop │ │ ├── Arch/ │ │ │ ├── PKGBUILD │ │ │ └── sunshine.install │ │ ├── app-dev.lizardbyte.app.Sunshine.service.in │ │ ├── copr/ │ │ │ └── Sunshine.spec │ │ ├── dev.lizardbyte.app.Sunshine.desktop │ │ ├── dev.lizardbyte.app.Sunshine.metainfo.xml │ │ ├── dev.lizardbyte.app.Sunshine.terminal.desktop │ │ ├── flatpak/ │ │ │ ├── README.md │ │ │ ├── apps.json │ │ │ ├── dev.lizardbyte.app.Sunshine.desktop │ │ │ ├── dev.lizardbyte.app.Sunshine.yml │ │ │ ├── exceptions.json │ │ │ ├── flathub.json │ │ │ ├── modules/ │ │ │ │ ├── avahi.json │ │ │ │ ├── boost.json │ │ │ │ ├── cuda.json │ │ │ │ ├── ffmpeg.json │ │ │ │ ├── libevdev.json │ │ │ │ ├── miniupnpc.json │ │ │ │ ├── nlohmann_json.json │ │ │ │ ├── numactl.json │ │ │ │ └── xvfb/ │ │ │ │ ├── xvfb-run │ │ │ │ └── xvfb.json │ │ │ └── scripts/ │ │ │ ├── additional-install.sh │ │ │ ├── remove-additional-install.sh │ │ │ └── sunshine.sh │ │ └── patches/ │ │ ├── aarch64/ │ │ │ ├── cuda-12-math_functions.patch │ │ │ └── cuda-13-math_functions.patch │ │ └── x86_64/ │ │ ├── cuda-12-math_functions.patch │ │ └── cuda-13-math_functions.patch │ └── sunshine.rb ├── pyproject.toml ├── scripts/ │ ├── _locale.py │ ├── icons/ │ │ └── convert_and_pack.sh │ ├── linux_build.sh │ ├── macos_build.sh │ └── update_clang_format.py ├── src/ │ ├── audio.cpp │ ├── audio.h │ ├── cbs.cpp │ ├── cbs.h │ ├── config.cpp │ ├── config.h │ ├── confighttp.cpp │ ├── confighttp.h │ ├── crypto.cpp │ ├── crypto.h │ ├── display_device.cpp │ ├── display_device.h │ ├── entry_handler.cpp │ ├── entry_handler.h │ ├── file_handler.cpp │ ├── file_handler.h │ ├── globals.cpp │ ├── globals.h │ ├── httpcommon.cpp │ ├── httpcommon.h │ ├── input.cpp │ ├── input.h │ ├── logging.cpp │ ├── logging.h │ ├── main.cpp │ ├── main.h │ ├── move_by_copy.h │ ├── network.cpp │ ├── network.h │ ├── nvenc/ │ │ ├── nvenc_base.cpp │ │ ├── nvenc_base.h │ │ ├── nvenc_colorspace.h │ │ ├── nvenc_config.h │ │ ├── nvenc_d3d11.cpp │ │ ├── nvenc_d3d11.h │ │ ├── nvenc_d3d11_native.cpp │ │ ├── nvenc_d3d11_native.h │ │ ├── nvenc_d3d11_on_cuda.cpp │ │ ├── nvenc_d3d11_on_cuda.h │ │ ├── nvenc_encoded_frame.h │ │ ├── nvenc_utils.cpp │ │ └── nvenc_utils.h │ ├── nvhttp.cpp │ ├── nvhttp.h │ ├── platform/ │ │ ├── common.h │ │ ├── linux/ │ │ │ ├── audio.cpp │ │ │ ├── cuda.cpp │ │ │ ├── cuda.cu │ │ │ ├── cuda.h │ │ │ ├── graphics.cpp │ │ │ ├── graphics.h │ │ │ ├── input/ │ │ │ │ ├── inputtino.cpp │ │ │ │ ├── inputtino_common.h │ │ │ │ ├── inputtino_gamepad.cpp │ │ │ │ ├── inputtino_gamepad.h │ │ │ │ ├── inputtino_keyboard.cpp │ │ │ │ ├── inputtino_keyboard.h │ │ │ │ ├── inputtino_mouse.cpp │ │ │ │ ├── inputtino_mouse.h │ │ │ │ ├── inputtino_pen.cpp │ │ │ │ ├── inputtino_pen.h │ │ │ │ ├── inputtino_touch.cpp │ │ │ │ └── inputtino_touch.h │ │ │ ├── kmsgrab.cpp │ │ │ ├── misc.cpp │ │ │ ├── misc.h │ │ │ ├── portalgrab.cpp │ │ │ ├── publish.cpp │ │ │ ├── vaapi.cpp │ │ │ ├── vaapi.h │ │ │ ├── wayland.cpp │ │ │ ├── wayland.h │ │ │ ├── wlgrab.cpp │ │ │ ├── x11grab.cpp │ │ │ └── x11grab.h │ │ ├── macos/ │ │ │ ├── av_audio.h │ │ │ ├── av_audio.m │ │ │ ├── av_img_t.h │ │ │ ├── av_video.h │ │ │ ├── av_video.m │ │ │ ├── display.mm │ │ │ ├── input.cpp │ │ │ ├── microphone.mm │ │ │ ├── misc.h │ │ │ ├── misc.mm │ │ │ ├── nv12_zero_device.cpp │ │ │ ├── nv12_zero_device.h │ │ │ └── publish.cpp │ │ └── windows/ │ │ ├── PolicyConfig.h │ │ ├── audio.cpp │ │ ├── display.h │ │ ├── display_base.cpp │ │ ├── display_ram.cpp │ │ ├── display_vram.cpp │ │ ├── display_wgc.cpp │ │ ├── input.cpp │ │ ├── keylayout.h │ │ ├── misc.cpp │ │ ├── misc.h │ │ ├── nvprefs/ │ │ │ ├── driver_settings.cpp │ │ │ ├── driver_settings.h │ │ │ ├── nvapi_opensource_wrapper.cpp │ │ │ ├── nvprefs_common.cpp │ │ │ ├── nvprefs_common.h │ │ │ ├── nvprefs_interface.cpp │ │ │ ├── nvprefs_interface.h │ │ │ ├── undo_data.cpp │ │ │ ├── undo_data.h │ │ │ ├── undo_file.cpp │ │ │ └── undo_file.h │ │ ├── publish.cpp │ │ ├── utf_utils.cpp │ │ ├── utf_utils.h │ │ └── windows.rc │ ├── process.cpp │ ├── process.h │ ├── round_robin.h │ ├── rswrapper.c │ ├── rswrapper.h │ ├── rtsp.cpp │ ├── rtsp.h │ ├── stat_trackers.cpp │ ├── stat_trackers.h │ ├── stream.cpp │ ├── stream.h │ ├── sync.h │ ├── system_tray.cpp │ ├── system_tray.h │ ├── task_pool.h │ ├── thread_pool.h │ ├── thread_safe.h │ ├── upnp.cpp │ ├── upnp.h │ ├── utility.h │ ├── uuid.h │ ├── video.cpp │ ├── video.h │ ├── video_colorspace.cpp │ └── video_colorspace.h ├── src_assets/ │ ├── bsd/ │ │ └── misc/ │ │ ├── +POST_INSTALL │ │ └── +PRE_DEINSTALL │ ├── common/ │ │ └── assets/ │ │ └── web/ │ │ ├── Checkbox.vue │ │ ├── Navbar.vue │ │ ├── PlatformLayout.vue │ │ ├── ResourceCard.vue │ │ ├── SimpleIcon.vue │ │ ├── ThemeToggle.vue │ │ ├── apps.html │ │ ├── config.html │ │ ├── configs/ │ │ │ └── tabs/ │ │ │ ├── Advanced.vue │ │ │ ├── AudioVideo.vue │ │ │ ├── ContainerEncoders.vue │ │ │ ├── Files.vue │ │ │ ├── General.vue │ │ │ ├── Inputs.vue │ │ │ ├── Network.vue │ │ │ ├── audiovideo/ │ │ │ │ ├── AdapterNameSelector.vue │ │ │ │ ├── DisplayDeviceOptions.vue │ │ │ │ ├── DisplayModesSettings.vue │ │ │ │ └── DisplayOutputSelector.vue │ │ │ └── encoders/ │ │ │ ├── AmdAmfEncoder.vue │ │ │ ├── IntelQuickSyncEncoder.vue │ │ │ ├── NvidiaNvencEncoder.vue │ │ │ ├── SoftwareEncoder.vue │ │ │ ├── VAAPIEncoder.vue │ │ │ └── VideotoolboxEncoder.vue │ │ ├── featured.html │ │ ├── index.html │ │ ├── init.js │ │ ├── locale.js │ │ ├── password.html │ │ ├── pin.html │ │ ├── platform-i18n.js │ │ ├── public/ │ │ │ └── assets/ │ │ │ ├── css/ │ │ │ │ └── sunshine.css │ │ │ └── locale/ │ │ │ ├── bg.json │ │ │ ├── cs.json │ │ │ ├── de.json │ │ │ ├── en.json │ │ │ ├── en_GB.json │ │ │ ├── en_US.json │ │ │ ├── es.json │ │ │ ├── fr.json │ │ │ ├── hu.json │ │ │ ├── it.json │ │ │ ├── ja.json │ │ │ ├── ko.json │ │ │ ├── pl.json │ │ │ ├── pt.json │ │ │ ├── pt_BR.json │ │ │ ├── ru.json │ │ │ ├── sv.json │ │ │ ├── tr.json │ │ │ ├── uk.json │ │ │ ├── vi.json │ │ │ ├── zh.json │ │ │ └── zh_TW.json │ │ ├── sunshine_version.js │ │ ├── template_header.html │ │ ├── theme.js │ │ ├── troubleshooting.html │ │ └── welcome.html │ ├── linux/ │ │ ├── assets/ │ │ │ ├── apps.json │ │ │ └── shaders/ │ │ │ └── opengl/ │ │ │ ├── ConvertUV.frag │ │ │ ├── ConvertUV.vert │ │ │ ├── ConvertY.frag │ │ │ ├── Scene.frag │ │ │ └── Scene.vert │ │ └── misc/ │ │ ├── 60-sunshine.conf │ │ ├── 60-sunshine.rules │ │ └── postinst │ ├── macos/ │ │ └── assets/ │ │ └── apps.json │ └── windows/ │ ├── assets/ │ │ ├── apps.json │ │ └── shaders/ │ │ └── directx/ │ │ ├── convert_yuv420_packed_uv_type0_ps.hlsl │ │ ├── convert_yuv420_packed_uv_type0_ps_linear.hlsl │ │ ├── convert_yuv420_packed_uv_type0_ps_perceptual_quantizer.hlsl │ │ ├── convert_yuv420_packed_uv_type0_vs.hlsl │ │ ├── convert_yuv420_packed_uv_type0s_ps.hlsl │ │ ├── convert_yuv420_packed_uv_type0s_ps_linear.hlsl │ │ ├── convert_yuv420_packed_uv_type0s_ps_perceptual_quantizer.hlsl │ │ ├── convert_yuv420_packed_uv_type0s_vs.hlsl │ │ ├── convert_yuv420_planar_y_ps.hlsl │ │ ├── convert_yuv420_planar_y_ps_linear.hlsl │ │ ├── convert_yuv420_planar_y_ps_perceptual_quantizer.hlsl │ │ ├── convert_yuv420_planar_y_vs.hlsl │ │ ├── convert_yuv444_packed_ayuv_ps.hlsl │ │ ├── convert_yuv444_packed_ayuv_ps_linear.hlsl │ │ ├── convert_yuv444_packed_vs.hlsl │ │ ├── convert_yuv444_packed_y410_ps.hlsl │ │ ├── convert_yuv444_packed_y410_ps_linear.hlsl │ │ ├── convert_yuv444_packed_y410_ps_perceptual_quantizer.hlsl │ │ ├── convert_yuv444_planar_ps.hlsl │ │ ├── convert_yuv444_planar_ps_linear.hlsl │ │ ├── convert_yuv444_planar_ps_perceptual_quantizer.hlsl │ │ ├── convert_yuv444_planar_vs.hlsl │ │ ├── cursor_ps.hlsl │ │ ├── cursor_ps_normalize_white.hlsl │ │ ├── cursor_vs.hlsl │ │ └── include/ │ │ ├── base_vs.hlsl │ │ ├── base_vs_types.hlsl │ │ ├── common.hlsl │ │ ├── convert_base.hlsl │ │ ├── convert_linear_base.hlsl │ │ ├── convert_perceptual_quantizer_base.hlsl │ │ ├── convert_yuv420_packed_uv_ps_base.hlsl │ │ ├── convert_yuv420_planar_y_ps_base.hlsl │ │ └── convert_yuv444_ps_base.hlsl │ └── misc/ │ ├── autostart/ │ │ └── autostart-service.bat │ ├── firewall/ │ │ ├── add-firewall-rule.bat │ │ └── delete-firewall-rule.bat │ ├── migration/ │ │ └── migrate-config.bat │ ├── path/ │ │ └── update-path.bat │ ├── service/ │ │ ├── install-service.bat │ │ └── uninstall-service.bat │ └── sunshine-setup.ps1 ├── tests/ │ ├── CMakeLists.txt │ ├── fixtures/ │ │ └── http/ │ │ ├── hello-redirect.txt │ │ └── hello.txt │ ├── integration/ │ │ ├── test_config_consistency.cpp │ │ ├── test_external_commands.cpp │ │ └── test_locale_consistency.cpp │ ├── tests_common.h │ ├── tests_environment.h │ ├── tests_events.h │ ├── tests_log_checker.h │ ├── tests_main.cpp │ └── unit/ │ ├── platform/ │ │ ├── test_common.cpp │ │ └── windows/ │ │ └── test_utf_utils.cpp │ ├── test_audio.cpp │ ├── test_confighttp.cpp │ ├── test_display_device.cpp │ ├── test_entry_handler.cpp │ ├── test_file_handler.cpp │ ├── test_http_pairing.cpp │ ├── test_httpcommon.cpp │ ├── test_logging.cpp │ ├── test_mouse.cpp │ ├── test_network.cpp │ ├── test_process.cpp │ ├── test_rswrapper.cpp │ ├── test_stream.cpp │ └── test_video.cpp ├── third-party/ │ ├── .clang-format-ignore │ └── nvfbc/ │ ├── NvFBC.h │ └── helper_math.h ├── tools/ │ ├── CMakeLists.txt │ ├── audio.cpp │ ├── dxgi.cpp │ └── sunshinesvc.cpp └── vite.config.js