diff --git a/src/backend/driver.c b/src/backend/driver.c index 34406bf..a41d2fd 100644 --- a/src/backend/driver.c +++ b/src/backend/driver.c @@ -15,7 +15,8 @@ /// Apply driver specified global workarounds. It's safe to call this multiple times. void apply_driver_workarounds(struct session *ps, enum driver driver) { if (driver & DRIVER_NVIDIA) { - setenv("__GL_YIELD", "usleep", true); + // setenv("__GL_YIELD", "usleep", true); + setenv("__GL_MaxFramesAllowed", "1", true); ps->o.xrender_sync_fence = true; } } diff --git a/src/backend/gl/glx.c b/src/backend/gl/glx.c index 6cccaa9..1397d19 100644 --- a/src/backend/gl/glx.c +++ b/src/backend/gl/glx.c @@ -467,7 +467,9 @@ static void glx_present(backend_t *base, const region_t *region attr_unused) { struct _glx_data *gd = (void *)base; gl_present(base, region); glXSwapBuffers(gd->display, gd->target_win); - glFinish(); + if (!gd->gl.is_nvidia) { + glFinish(); + } } static int glx_buffer_age(backend_t *base) {