backend: reset EGL surface after buffer swap

This prevents GL commands to affect a previously current EGL surface
after a buffer swap.
This commit is contained in:
Simon Ser 2020-04-06 11:43:58 +02:00 committed by Drew DeVault
parent 6977f3a843
commit d3bd5f2a7b
4 changed files with 11 additions and 0 deletions

View File

@ -569,6 +569,8 @@ static bool drm_connector_commit(struct wlr_output *output) {
}
}
wlr_egl_make_current(&drm->renderer.egl, EGL_NO_SURFACE, NULL);
return true;
}

View File

@ -71,6 +71,9 @@ static bool output_test(struct wlr_output *wlr_output) {
}
static bool output_commit(struct wlr_output *wlr_output) {
struct wlr_headless_output *output =
headless_output_from_output(wlr_output);
if (!output_test(wlr_output)) {
return false;
}
@ -89,6 +92,8 @@ static bool output_commit(struct wlr_output *wlr_output) {
wlr_output_send_present(wlr_output, NULL);
}
wlr_egl_make_current(&output->backend->egl, EGL_NO_SURFACE, NULL);
return true;
}

View File

@ -297,6 +297,8 @@ static bool output_commit(struct wlr_output *wlr_output) {
}
}
wlr_egl_make_current(&output->backend->egl, EGL_NO_SURFACE, NULL);
return true;
}

View File

@ -157,6 +157,8 @@ static bool output_commit(struct wlr_output *wlr_output) {
wlr_output_send_present(wlr_output, NULL);
}
wlr_egl_make_current(&x11->egl, EGL_NO_SURFACE, NULL);
return true;
}