Commit Graph

56 Commits

Author SHA1 Message Date
dec05eba
3ba1dbda98 Fix screen and portal capture not working on some intel gpus 2025-06-09 22:07:52 +02:00
dec05eba
1f3d28fc5c Tune av1 quality 2025-04-15 03:34:23 +02:00
dec05eba
3b617ddc53 Cleanup 2025-03-30 15:17:37 +02:00
dec05eba
ad26bc77db Fix incorrect compute size when scaling image 2025-03-30 13:46:06 +02:00
dec05eba
c679b2fdb6 Use sampler2D for alpha blending compute shader instead of output image2D 2025-03-30 03:36:39 +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
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
af54684103 Fix screenshot with region not working correctly for some sizes and possibly crashing 2025-03-13 01:38:26 +01:00
dec05eba
1b5cde0789 Support taking a screenshot (-o image.jpg/image.png) 2025-02-16 14:21:17 +01:00
dec05eba
b68400ca20 Add -gl-debug option to make it easier to debug user issues that cant easily be reproduced 2025-01-16 22:55:20 +01:00
dec05eba
c259a19b9d Refactor windowing from egl to window_x11/window_wayland, yolo 2024-12-08 02:17:41 +01:00
dec05eba
02673c4644 Fix portal capture on broken amd drivers: fallback to opengl copy instead of vaapi on known buggy mesa version 2024-11-21 00:25:56 +01:00
dec05eba
ebc8c69bac Add vulkan video encoding option (-k h264_vulkan). WIP, not fully hardware accelerated yet 2024-09-27 03:03:09 +02:00
dec05eba
51ee40f85d Revert "Better glx config selection"
This reverts commit 69c3102465.
2024-09-26 17:47:43 +02:00
dec05eba
69c3102465 Better glx config selection 2024-09-26 17:35:16 +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
714561987e Properly damage if moving cursor
Only damage if cursor is inside the target area
2024-09-14 02:27:48 +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
2682df9e0f Portal: fix external texture 2024-09-06 13:28:35 +02:00
dec05eba
111432f7dd Revert "Portal: fix external texture glitches"
This reverts commit 0f289b58bb.
2024-09-06 13:27:51 +02:00
dec05eba
0f289b58bb Portal: fix external texture glitches 2024-09-06 13:17:17 +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
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
0b9d232ce8 Fix crash, use opengl es instead of opengl desktop 2024-08-15 08:21:54 +02:00
dec05eba
b1d8346ed9 Move glClear and glx/eglSwapBuffers from capture backends to main 2024-07-26 10:55:24 +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
37107bac8d Fix deskto portal capture on nvidia (add missing modifiers) 2024-07-22 01:24:23 +02:00
dec05eba
048b8d21ec Add support for desktop portal capture (-w portal) 2024-07-15 19:02:34 +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
3e2e2444d9 Properly cut out cursor outside video area when dealing with hevc amd padding 2024-06-14 02:05:54 +02:00
dec05eba
c2af57a978 Destroy glx context on fail/deinit 2024-03-21 10:49:15 +01:00
dec05eba
877465a702 Use dri card matching current egl context 2024-03-10 23:15:57 +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
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
94cbed9471 Nvidia: use default p4 preset instead of p5, might fix frame issues 2024-01-11 10:50:14 +01:00
dec05eba
e63ecd2e02 egl es -> egl 2023-09-18 10:35:29 +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
60de2c47be Use correct offset for combined plane monitor capture 2023-07-22 04:12:02 +02:00
dec05eba
8cd0ae0162 vfr on wayland (even on nvidia), add uninstall script 2023-07-21 16:17:22 +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
0a2806972f Experimental wayland support, test 1 2023-07-18 02:14:27 +02:00
dec05eba
6cff1a49d2 Fix all warnings 2023-05-17 18:49:16 +02:00
dec05eba
e1c613666e kms_vaapi: add cursor capture for amd/intel monitor capture
Always find largest drm buf, to fix some cases
when there are multiple planes and we accidentally
capture a drm buf that isn't the target buf.
We always want the full SCREEN drm buf.
2023-04-22 02:13:11 +02:00
dec05eba
49ac7d7429 Add code to copy cursor image to opengl texture and update on event update (not used yet) 2023-04-21 20:59:06 +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