From 8cd0ae0162221bf39729734070918dec97cfc824 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 21 Jul 2023 15:11:13 +0200 Subject: vfr on wayland (even on nvidia), add uninstall script --- src/egl.c | 2 +- src/main.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/egl.c b/src/egl.c index 482b3df..ad51c4c 100644 --- a/src/egl.c +++ b/src/egl.c @@ -249,7 +249,7 @@ static bool gsr_egl_create_window(gsr_egl *self, bool wayland) { } } - self->eglBindAPI(EGL_OPENGL_ES_API); + self->eglBindAPI(EGL_OPENGL_ES2_BIT); self->egl_display = self->eglGetDisplay(self->wayland.dpy ? (EGLNativeDisplayType)self->wayland.dpy : (EGLNativeDisplayType)self->x11.dpy); if(!self->egl_display) { diff --git a/src/main.cpp b/src/main.cpp index af7b224..cbbc594 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1326,10 +1326,11 @@ int main(int argc, char **argv) { // TODO: Fix constant framerate not working properly on amd/intel because capture framerate gets locked to the same framerate as // game framerate, which doesn't work well when you need to encode multiple duplicate frames (AMD/Intel is slow at encoding!). + // It also appears to skip audio frames on nvidia wayland? why? that should be fine, but it causes video stuttering because of audio/video sync. FramerateMode framerate_mode; const char *framerate_mode_str = args["-fm"].value(); if(!framerate_mode_str) - framerate_mode_str = gpu_inf.vendor == GSR_GPU_VENDOR_NVIDIA ? "cfr" : "vfr"; + framerate_mode_str = (gpu_inf.vendor == GSR_GPU_VENDOR_NVIDIA && !wayland) ? "cfr" : "vfr"; if(strcmp(framerate_mode_str, "cfr") == 0) { framerate_mode = FramerateMode::CONSTANT; -- cgit v1.2.3-70-g09d2