Commit Graph

68 Commits

Author SHA1 Message Date
dec05eba
62e180903e Add support for camera (yuyv, mjpeg) and multiple capture sources 2025-12-23 18:57:43 +01:00
dec05eba
5906a0c06f nvfbc: fix scaled monitor capture not working correctly 2025-12-08 02:53:29 +01:00
dec05eba
c1614e4f30 nvfbc: mitigate x11 display leak on monitor off
When the monitor is turned off gsr will attempt to recreate the nvfbc
session once a second. If that fails (because the monitor is still
turned off) then nvfbc will leak an x11 display. This seems to be a bug
in the nvidia driver.

Mitigate this by only attempting to recreate the nvfbc session if the
capture target monitor can be found (predicting if nvfbc recreate will
fail).

Thanks to Lim Ding Wen for finding the issue and suggesting the
mitigation.
2025-12-04 20:06:47 +01:00
dec05eba
ab5988a2bb Dont scale image frame to padding in video 2025-11-18 02:52:11 +01:00
dec05eba
cc43ca0336 Scale video/image to output size instead of adding black bars or no scaling 2025-11-17 23:19:26 +01:00
dec05eba
d34a1036ef color_conversion: remove unused alpha_blending parameter 2025-11-14 03:43:25 +01:00
dec05eba
9e59f5f5cd Disable overclocking if set and gpu supports CUDA_DISABLE_PERF_BOOST 2025-11-08 13:35:30 +01:00
dec05eba
23fd8065b6 Consistent info/warning/error message structure 2025-05-26 16:33:06 +02:00
dec05eba
12dd2cd3e1 Optimize compute shaders 2025-04-04 01:15:07 +02:00
dec05eba
8feb94f518 Fix incorrect region when monitor is rotated 2025-03-30 23:00:54 +02:00
dec05eba
b8a521a785 Reapply "WIP: use compute shader instead of graphics shader for better performance (especially on amd)"
This reverts commit f85a7ab205.
2025-03-29 15:38:05 +01:00
dec05eba
f85a7ab205 Revert "WIP: use compute shader instead of graphics shader for better performance (especially on amd)"
This reverts commit a41a32cb90.
2025-03-29 15:37:53 +01:00
dec05eba
a41a32cb90 WIP: use compute shader instead of graphics shader for better performance (especially on amd) 2025-03-29 13:29:10 +01:00
dec05eba
190c775a08 Fix screenshot of window not working after latest change 2025-03-14 08:54:12 +01:00
dec05eba
b0de8588f2 Take screenshot with XGetImage on x11 to workaround nvidia driver (nvfbc) limitation that only allows one nvfbc session at a time 2025-03-13 22:34:29 +01:00
dec05eba
f63409bdd7 nvfbc region capture work 2025-03-13 01:50:36 +01:00
dec05eba
af54684103 Fix screenshot with region not working correctly for some sizes and possibly crashing 2025-03-13 01:38:26 +01:00
dec05eba
92492db788 Add region capture with -w region -region WxH+X+Y 2025-03-13 00:18:28 +01:00
dec05eba
000da7d640 Make image output lossy (use stb image writer), also significantly improves performance for jpeg 2025-02-22 01:05:29 +01:00
dec05eba
c259a19b9d Refactor windowing from egl to window_x11/window_wayland, yolo 2024-12-08 02:17:41 +01:00
dec05eba
f1b4979365 Fix incorrect color format in x11 cursor (bgr instead of rgb) 2024-11-09 02:45:20 +01:00
dec05eba
112640282d Add option to change output resolution (-s) 2024-10-26 20:58:00 +02:00
dec05eba
412cf0dbae Revert "Temp fix for nvfbc"
This reverts commit 8ab1150fb8.
2024-09-26 18:15:15 +02:00
dec05eba
8ab1150fb8 Temp fix for nvfbc 2024-09-26 17:53:08 +02:00
dec05eba
ddbb2f63b7 Revert 2024-09-26 17:49:30 +02:00
dec05eba
77fea88fe6 debug 2024-09-26 17:37:00 +02:00
dec05eba
52bd102a26 Revert "temp debug output"
This reverts commit 97998f1bab.
2024-09-26 16:56:36 +02:00
dec05eba
97998f1bab temp debug output 2024-09-26 16:41:55 +02:00
dec05eba
0b20a46e58 Name capture/encoder variable self 2024-09-26 02:36:31 +02:00
dec05eba
25b7b4e84e Pure vaapi capture (for capture target) and opengl composition for cursor only when capturing window and portal as well, clear background on resize for monitor capture 2024-09-16 23:31:53 +02:00
dec05eba
954a41de9c Explicit glFlush/glFinish before and after render operations to fix tearing and stutter on amd 2024-09-06 12:41:14 +02:00
dec05eba
b7c5df3c4b Faster startup (faster video codec query), fix some video codec callback logic 2024-08-31 03:17:18 +02:00
dec05eba
b1d8346ed9 Move glClear and glx/eglSwapBuffers from capture backends to main 2024-07-26 10:55:24 +02:00
dec05eba
b7da16a932 nvidia x11: fix screen-direct-force not working because it was ignored 2024-07-25 05:30:31 +02:00
dec05eba
7d719a44c6 Fix hdr capture causing crash when in replay mode 2024-07-23 18:11:38 +02:00
dec05eba
f9a41041ec Fix HDR capture (HDR metadata is now correct). Note that HDR capture is only available on Wayland and when recording a monitor without the desktop portal option 2024-07-21 19:12:06 +02:00
dec05eba
2bc05a4a7f Minor nvfbc 2024-07-06 02:29:07 +02:00
dec05eba
56e9d15e0f Fix capture incorrect alignment with cpu encoding for some window sizes 2024-07-05 11:34:34 +02:00
dec05eba
b9fa7f2fa2 Separate video encoding method from capture method
With this instead of kms_cuda/kms_vaapi/kms_software and
xcomposite_cuda/xcomposite_vaapi/xcomposite_software there
is now only kms and xcomposite.
2024-07-05 10:33:47 +02:00
dec05eba
62d61fda12 Add support for software video encoding with '-encoder cpu' option, currently h264 only 2024-07-04 01:35:03 +02:00
dec05eba
d5bf41fed6 X11 nvidia monitor capture: fix capture broken after sleep/suspend or monitor reconfiguration 2024-04-08 00:51:33 +02:00
dec05eba
ba096a3ba7 Add -cursor option to not record cursor 2024-03-11 19:01:46 +01:00
dec05eba
f3c32a880a Fix cursor capture in nvidia wayland, hdr, clear background immediately in window capture 2024-03-10 20:59:17 +01:00
dec05eba
45ad3695b6 Refactor capture base 2024-03-09 18:54:53 +01:00
dec05eba
a3fedae329 Draw cursor in window capture 2024-03-09 16:59:09 +01:00
dec05eba
5e05bbbbcb Refactor xcomposite
Move common code between cuda/vaapi implementations
into xcomposite file.
This also fixes limited/full range colors on nvidia.
2024-03-09 15:36:45 +01:00
dec05eba
3d9a706528 Set frame size to video codec context size, nicer rgb to nv12 2024-03-08 11:35:30 +01:00
dec05eba
0d89378021 Use opengl capture for nvfbc (prepare for vulkan capture without cuda) 2024-03-08 11:35:26 +01:00
dec05eba
d0c221a233 Refactor kms_vaapi and kms_cuda
Also fixes color metadata, color range and hdr on nvidia wayland.
2024-03-08 11:34:36 +01:00
dec05eba
4d8a9e2e1d Pool size 20 for vaapi 2024-03-08 11:34:36 +01:00