Commit Graph

277 Commits

Author SHA1 Message Date
ns6089 f4dda21248 Migrate audio pipeline to float from 16-bit integer (#2873)
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-07-25 21:01:43 -04:00
Cameron Gutman 0ca560ced8 Fix invalid parameter passed to WSASendMsg() (#2890)
The third parameter is for flags, not number of messages.
2024-07-19 08:39:37 +00:00
Cameron Gutman 3935d305ae Implement S/G IO for batched sends and eliminate another frame copy (#2874) 2024-07-19 04:04:18 +00:00
Cameron Gutman 81c6e61594 Implement S/G IO for non-batched sends and eliminate more data copies (#2867) 2024-07-18 02:34:56 +00:00
Cameron Gutman 5f715d66cd fix(linux/input): don't pass unknown battery values (#2820) 2024-07-14 18:11:29 +00:00
ns6089 18e7dfb190 Refactor periodic loggers and limit batch size for small packets (#2835)
* Refactor periodic loggers

* Limit network batch size also by packet count

Previously it was limited only by size, and exceeding 64 packets in a
single batch is asking for problems.
2024-07-13 20:55:03 +00:00
Christos Falas 8187a28afc fix(linux/input): handle pen EVENT_MOVE events (#2841) 2024-07-13 19:53:06 +00:00
ns6089 037c61dc99 Implement basic network flow control (#2803)
Co-authored-by: Cameron Gutman <aicommander@gmail.com>
2024-07-11 00:03:16 +00:00
ns6089 30748dd916 Check API before trying to disable border on WGC capture (#2825) 2024-07-10 12:14:17 +00:00
Cameron Gutman 38c13c8fe1 Fix rate control for AMD cards using VAAPI (#2821) 2024-07-08 15:05:35 +00:00
Cathy J. Fitzpatrick 3cc12dfbe7 macOS: New implementation of service publication (#2786)
The current implementation of service publication on macOS uses
`avahi-client`, but the majority of macOS machines do not have Avahi
installed because macOS provides a native alternative (`mDNSresponder`),
meaning that there is no reason to install Avahi.

The current implementation also attempts to load the Avahi client
libraries using `dlopen(3)`, which has a variety of restrictions on
macOS, such as only being willing to load from certain directories.
Depending on where the Avahi binaries are installed, they might not
be loadable through the current invocation of `dlopen(3)`.

Instead of using an Avahi client on macOS, it makes more sense to use
the native macOS API for publishing services via `mDNSresponder`. This
commit supplies such an implementation that uses the macOS native API.
It also has the advantage of being much simpler than the previous
implementation. Furthermore, this new implementation works on all
macOS machines, because it relies only on native APIs, rather than on
third-party software that is not commonly installed on macOS.
2024-07-07 15:19:51 +00:00
ReenigneArcher 1dd4b68e1c docs(src): add examples alias and general cleanup (#2763) 2024-06-28 08:34:14 -04:00
ReenigneArcher acd9ae606e docs: more doxygen fixes (#2736) 2024-06-21 01:34:27 +00:00
ReenigneArcher f3abf59fbf docs(src): fix some doxygen warnings (#2731) 2024-06-20 01:36:09 +00:00
ReenigneArcher 9a82b6810a docs: fix ffmpeg include directory (#2727) 2024-06-19 02:54:35 +00:00
ABeltramo fb18b38f68 fix(linux/input): battery values conversion (#2715) 2024-06-17 22:37:48 +00:00
Vithorio Polten 509576d616 feat(input/linux): add support for more virtual input devices (#2606)
Co-authored-by: ABeltramo <beltramo.ale@gmail.com>
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-06-16 00:21:18 +00:00
Vithorio Polten 02ddbefd44 fix(macos): Mouse input broken in-game (#2550)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-06-12 17:26:02 -04:00
Hans Gaiser 9afb1aea00 Remove the need for a patched nvidia library for NvFBC. (#2471) 2024-06-01 19:30:42 +00:00
Tejas Rao 287ac4c0fb feat(win): new capture method, Windows.Graphics.Capture (#2580) 2024-05-27 18:16:14 +00:00
Vithorio Polten ff54ab2852 fix(macos): fix broken streaming on MacOS (#2485) 2024-05-14 14:14:40 -04:00
Gilles Schintgen 0a595dc7d2 fix(linux): add frame processing latency and logging improvements (#2502) 2024-05-12 18:55:43 -04:00
TimmyOVO 9d5ee2f57d fix(macos/input): incorrect mouse input for non-main display (#2461) 2024-05-02 13:52:29 -04:00
Tejas Rao 7fb8c76590 Use C++20. (#2322) 2024-04-26 15:49:15 -04:00
TimmyOVO 9288775351 feat(macos/capture): support for capture display other than main display (#2449) 2024-04-22 14:16:26 -04:00
Cameron Gutman 25d8e2b478 Fix discarded std::clamp() result compiler warning 2024-04-13 18:53:00 -05:00
Gilles Schintgen fcd4c07bd0 Improve frametiming for linux capture (#2333) 2024-04-12 19:36:56 -04:00
ReenigneArcher ad5b816261 fix(linux): use correct setap command in logs (#2400) 2024-04-10 18:12:03 -04:00
hdL6c 7f795f0e19 fix(linux/capture): fix logical comparison of texture size (#2349)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-04-06 18:03:54 -04:00
ReenigneArcher 2af0ce364d Revert "Add capture using WinRT Windows.Graphics.Capture API." (#2320) 2024-03-29 12:43:44 -04:00
KuleRucket 526121d81d Populate host latency for kms/x11 grab (#2273) 2024-03-28 17:52:53 -04:00
Tejas Rao 8f1692a5ac Add capture using WinRT Windows.Graphics.Capture API. (#2149)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2024-03-27 23:47:26 -04:00
ReenigneArcher 89e8b9628c ci(tests): add test framework (#1603) 2024-03-24 19:52:24 -04:00
Cameron Gutman 15c5e76ed4 Use a copy+delete instead of a move operation for config migration
This can handle migration across filesystems.
2024-03-15 01:59:13 -05:00
Cameron Gutman 8c9e14e335 Only attempt a config migration once per launch 2024-03-15 01:59:13 -05:00
Cameron Gutman aa1985dec8 Avoid calling Boost logging functions in appdata()
The app data directory is needed prior to logging initialization.
2024-03-15 01:59:13 -05:00
Cameron Gutman f66a7d5da6 Fix dereferencing a null pointer if SUNSHINE_MIGRATE_CONFIG doesn't exist 2024-03-15 01:59:13 -05:00
Cameron Gutman c13a30db78 Allow NVENC to be forced to try capturing non-Nvidia GPUs 2024-03-13 01:23:47 -05:00
Cameron Gutman d8877982ff Improve KMS debuggability and avoid known broken cases 2024-03-13 01:23:47 -05:00
Cameron Gutman 91744960c1 Avoid broken fallback to cross-adapter NVENC encoding with KMS 2024-03-11 19:02:16 -05:00
ReenigneArcher a2785baf0a fix(linux): automatically migrate config directory (#2240) 2024-03-10 22:03:20 -04:00
Cameron Gutman ce3b625983 Fix undefined behavior when computing cursor end pointer 2024-03-08 23:48:57 -06:00
Cameron Gutman 7cdd156bce Fix heap corruption with cursor pixel counts that aren't divisible by 8 2024-03-07 19:01:36 -06:00
Cameron Gutman 06c0ed1d1c Temporarily add the working directory to our path when starting an app
CreateProcess() doesn't search in the child's specified working directory by default.
2024-03-07 18:14:28 -06:00
Cameron Gutman 6aeaaf5ec9 Fix process tree tracking when the cmd.exe trampoline is used 2024-03-07 18:14:28 -06:00
Cameron Gutman 9f94eebd32 Fix mismatched case and unhandled exception in open_drm_fd_for_cuda_device() 2024-03-05 00:07:04 -06:00
Cameron Gutman 529f1b84f8 Fix CUDA context leak causing encoder init failures using X11 capture with NVENC 2024-03-03 19:57:46 -06:00
Cameron Gutman 5606840c89 Stop enumeration after finding a working capture backend 2024-03-02 12:08:35 -06:00
Cameron Gutman 1ab30aa70b Add log messages to indicate display numbers for KMS and Wlgrab 2024-03-02 12:08:35 -06:00
Cameron Gutman 75a97883e7 Rework dummy image handling to avoid RTX HDR driver bug
As a side effect, it avoids useless allocations and uploads of
a zeroed memory buffer to clear the dummy image textures.
2024-03-01 01:09:10 -06:00