From 155d57b01d6870bec6f1d865f1693dddf0a1e6ff Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 19 Jun 2020 16:07:49 +0200 Subject: output: fix dangling renderer context after wlr_output_preferred_read_format attach_render was called without un-setting the current rendering context afterwards. Closes: https://github.com/swaywm/wlroots/issues/2164 --- types/wlr_output.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/types/wlr_output.c b/types/wlr_output.c index c0849e84..ce05f97b 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -448,15 +448,16 @@ bool wlr_output_attach_render(struct wlr_output *output, int *buffer_age) { bool wlr_output_preferred_read_format(struct wlr_output *output, enum wl_shm_format *fmt) { - if (!output->impl->attach_render(output, NULL)) { + struct wlr_renderer *renderer = wlr_backend_get_renderer(output->backend); + if (!renderer->impl->preferred_read_format || !renderer->impl->read_pixels) { return false; } - struct wlr_renderer *renderer = wlr_backend_get_renderer(output->backend); - if (!renderer->impl->preferred_read_format || !renderer->impl->read_pixels) { + if (!output->impl->attach_render(output, NULL)) { return false; } *fmt = renderer->impl->preferred_read_format(renderer); + output->impl->rollback_render(output); return true; } -- cgit v1.2.3