aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md4
-rw-r--r--src/color_conversion.c2
-rw-r--r--src/egl.c3
3 files changed, 7 insertions, 2 deletions
diff --git a/README.md b/README.md
index a5346fc..43be0d9 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,9 @@ where only the last few seconds are saved.
## Note
This software works with x11 and wayland, but when using AMD/Intel or Wayland then only monitors can be recorded and root access is required. An authentication window will show up automatically if you have a polkit agent running and pkexec installed.\
If you are using a variable refresh rate monitor on nvidia on x11 then choose to record "screen-direct-force". This will allow variable refresh rate to work when recording fullscreen applications. Note that some applications such as mpv will not work in fullscreen mode. A fix is being developed for this.\
-GPU Screen Recorder only supports h264 and hevc codecs at the moment which means that webm files are not supported.
+GPU Screen Recorder only supports h264 and hevc codecs at the moment which means that webm files are not supported.\
+CPU usage is much higher on wayland than on x11 when using nvidia. This is likely a nvidia driver issue. GPU Screen Recorder is still the fastest
+screen recorder on wayland, but x11 is recommended for nvidia users (in general).
### TEMPORARY ISSUES
1) screen-direct capture has been temporary disabled as it causes issues with stuttering. This might be a nvfbc bug.
2) Recording the monitor on steam deck might fail sometimes. This happens even when using ffmpeg directly. This might be a steam deck driver bug. Recording a single window doesn't have this issue.
diff --git a/src/color_conversion.c b/src/color_conversion.c
index 06d3ebe..6d9f9d2 100644
--- a/src/color_conversion.c
+++ b/src/color_conversion.c
@@ -21,7 +21,7 @@ static float abs_f(float v) {
#define RGB_TO_YUV "const mat4 RGBtoYUV = mat4(0.2126, 0.5000, -0.1146, 0.0,\n" \
" 0.7152, -0.4542, -0.3854, 0.0,\n" \
" 0.0722, -0.0468, 0.5000, 0.0,\n" \
- " 0.0, 0.500, 0.500, 1.0);"
+ " 0.0000, 0.5000, 0.5000, 1.0);"
static int load_shader_rgb(gsr_shader *shader, gsr_egl *egl, int *rotation_uniform) {
char vertex_shader[2048];
diff --git a/src/egl.c b/src/egl.c
index 9fd5925..3892cdc 100644
--- a/src/egl.c
+++ b/src/egl.c
@@ -11,6 +11,8 @@
#include "../external/wlr-export-dmabuf-unstable-v1-client-protocol.h"
#include <unistd.h>
+// Move this shit to a separate wayland file, and have a separate file for x11.
+
static void output_handle_geometry(void *data, struct wl_output *wl_output,
int32_t x, int32_t y, int32_t phys_width, int32_t phys_height,
int32_t subpixel, const char *make, const char *model,
@@ -566,6 +568,7 @@ void gsr_egl_update(gsr_egl *self) {
if(!self->wayland.dpy)
return;
+ // TODO: pselect on wl_display_get_fd before doing dispatch
wl_display_dispatch(self->wayland.dpy);
}