From 7bee923938bc1756110461c916a945979a7c197b Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 4 Aug 2024 17:49:42 +0200 Subject: Compressed plane now works, update readme and remove warning --- TODO | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index 0c87db9..90e4c89 100644 --- a/TODO +++ b/TODO @@ -77,12 +77,6 @@ Use SRC_W and SRC_H for screen plane instead of crtc_w and crtc_h. Make it possible to select which /dev/dri/card* to use, but that requires opengl to also use the same card. Not sure if that is possible for amd, intel and nvidia without using vulkan instead. -Support intel display framebuffer compression (I915_FORMAT_MOD_Y_TILED_CCS modifier) (and other power saving modifiers, see https://trac.ffmpeg.org/ticket/8542). The only fix may be to use desktop portal for recording. This issue doesn't appear on x11 since these modifiers are not used by xorg server. -This issue only appears on some intel iGPUs, such as Intel Iris Xe, see: https://github.com/dec05eba/gpu-screen-recorder-issues/issues/1. - The compression format is described in libdrm/drm_fourcc.h (I915_FORMAT_MOD_Y_TILED_CCS comment). The main surface is plane 0 while plane 1 contains the compression data. - The compression data (plane 1) is 1024x512 pixels and matches the main surface (plane 0) and it's divided into 128Bx32 blocks, - but the data is actually QWORD (bytes) so it's in 64Bx64 tiles (?). - Test if p2 state can be worked around by using pure nvenc api and overwriting cuInit/cuCtxCreate* to not do anything. Cuda might be loaded when using nvenc but it might not be used, with certain record options? (such as h264 p5). nvenc uses cuda when using b frames and rgb->yuv conversion, so convert the image ourselves instead.- @@ -104,8 +98,6 @@ Setup hardware video context so we can query constraints and capabilities for be Use CAP_SYS_NICE in flatpak too on the main gpu screen recorder binary. It makes recording smoother, especially with constant framerate. -Show error when using compressed kms plane which isn't supported. Also do that in the gui. - Modify ffmpeg to accept opengl texture for nvenc encoding. Removes extra buffers and copies. When vulkan encode is added, mention minimum nvidia driver required. (550.54.14?). @@ -146,8 +138,6 @@ Support hevc/av1 for software encoder and hdr support at the same time. Need sup Cleanup pipewire code and add more error checks. -Detect if recording monitor on intel and plane is compressed. In that case give an error and tell the user to use -w portal instead. - Make dbus code and pipewire setup non blocking. Support portal (pipewire) hdr capture when pipewire adds support for it. Maybe use the result of SelectSources and then query the hdr metadata with drm. -- cgit v1.2.3