Commit Graph

37 Commits

Author SHA1 Message Date
dec05eba
28ba2e8f3e gsr-kms-server 'security': only allow gpu-screen-recorder to get framebuffer 2024-10-06 22:26:47 +02:00
dec05eba
5863fda414 Comments 2024-09-22 19:58:54 +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
4bcf976a71 Improve capture performance on amd/intel when using monitor capture: capture display frame using purely vaapi unless the monitor is rotated 2024-09-16 23:31:53 +02:00
dec05eba
8acb346382 Set update fps to video fps, on x11 sync video to damage tracking 2024-09-14 01:15:01 +02:00
dec05eba
1d7c1e7d14 Enable recording on steam deck with warning, use vbr on steam deck and add -bm bitrate mode option for qp or vbr 2024-08-31 00:26:22 +02:00
dec05eba
45a10baf5f Disable steam deck support at the moment because the driver is broken (ignores qp, capture tearing) 2024-08-20 15:28:37 +02:00
dec05eba
4012d60dbc Remove unused include 2024-08-16 19:40:47 +02:00
dec05eba
da4925b23e Allow capture of external monitors on a laptop with dedicated gpu (prime) on x11, fix cursor not visible on some wayland compositors (hyprland) with multiple monitors 2024-08-16 19:37:00 +02:00
dec05eba
b5b4d6b2bd Fix portal capture on intel, support multiple planes in one egl image (might fix capture on intel iris) 2024-07-22 04:58:41 +02:00
dec05eba
048b8d21ec Add support for desktop portal capture (-w portal) 2024-07-15 19:02:34 +02:00
dec05eba
adbd5d9766 Take amd hevc video alignment padding into consideration to move video content to center of video with black bars on all sides instead of only right/bottom 2024-06-10 17:51:09 +02:00
dec05eba
55266f2a68 Wayland: match montitor by name before trying to match by place 2024-06-10 17:14:25 +02:00
dec05eba
c17a717326 Workaround amd driver bug: hevc ffmpeg/mesa misaligned resolution causing glitched video output on right/bottom side 2024-06-10 12:44:40 +02:00
dec05eba
3f0a58a1e6 Do not require a valid drm plane to capture a window on amd/intel x11 2024-06-10 12:28:53 +02:00
dec05eba
f1eb893493 Proper strncpy null termination 2024-05-09 16:17:38 +02:00
dec05eba
406f1092ca bad size 2024-03-10 23:25:22 +01:00
dec05eba
877465a702 Use dri card matching current egl context 2024-03-10 23:15:57 +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
c4ba5672b7 Wayland: handle eDP for rotation 2024-02-10 06:13:25 +01:00
dec05eba
b8843395ac Add screen rotation support (tested on amd/intel)
screen rotation in wayland is best effort,
wayland doesn't give the necessary information to make it robust.
2024-02-10 03:48:43 +01:00
dec05eba
ac73d9cb13 Remove wayland capture (wlroots) 2024-02-09 00:38:23 +01:00
dec05eba
3eb7bae12c Move card path to egl struct, use egl struct for monitor enumeration 2024-02-09 00:23:52 +01:00
dec05eba
a629c0bfb3 Make amd/intel nvidia/wayland capture display match x11 connector name, allow screen capture on amd/intel nvidia/wayland (select the first output for now) 2023-11-17 10:09:51 +01:00
dec05eba
a253be38b7 kms vaapi: fix capture bug (incorrect video size) caused by shadowed variable... 2023-08-13 01:55:56 +02:00
dec05eba
4ad0118f35 High priority egl context if possible, use eglBindAPI(EGL_OPENGL_ES_API) 2023-07-26 02:31:12 +02:00
dec05eba
a1d31a5cf0 Fix capture not working on intel + wayland
Ignore nouveau cards.
Fix lag on start of recording on amd/intel by only loading egl once,
on startup.
2023-07-21 18:56:34 +02:00
dec05eba
de019711d1 Support wlroots screen capture, which doesn't require kms root access and also captures cursor 2023-07-21 02:57:06 +02:00
dec05eba
a3beaeb0cc Fix green screen sometimes when capturing amd/intel window 2023-07-18 06:00:36 +02:00
dec05eba
0a2806972f Experimental wayland support, test 1 2023-07-18 02:14:27 +02:00
dec05eba
0b79f14443 p 2023-07-10 17:15:59 +02:00
dec05eba
d6d17e55e0 Attempt to make active card detection more robust 2023-07-10 01:29:43 +02:00
dec05eba
f38ed36271 Test fix using correct gpu when multiple gpus are connected 2023-07-09 23:30:38 +02:00
dec05eba
6cff1a49d2 Fix all warnings 2023-05-17 18:49:16 +02:00
dec05eba
c0ebae365d Find /dev/dri/card path that exists (the first one) 2023-04-16 22:50:43 +02:00
dec05eba
f6107a0c5d Fix AMD single monitor rotated display being rotated in recording
If there is only one monitor connected and it's rotated then
the drm buf will also be rotated. This only the case with AMD and
only when using one monitor!

To fix this, we perform color conversion with an opengl shader
which allows us to also rotate the texture.
VAAPI supports rotation but it's not implemented by AMD at least.

Performance seems to be the same as when using VAAPI, even when
GPU usage is 100%.
2023-04-15 19:06:08 +02:00
dec05eba
75ed160122 Implement kms vaapi capture 2023-04-07 05:31:46 +02:00