aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/renderer.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/drm/renderer.c')
-rw-r--r--backend/drm/renderer.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/backend/drm/renderer.c b/backend/drm/renderer.c
index 09546ee6..4d83bf31 100644
--- a/backend/drm/renderer.c
+++ b/backend/drm/renderer.c
@@ -361,15 +361,17 @@ void drm_fb_move(struct wlr_drm_fb *new, struct wlr_drm_fb *old) {
}
bool drm_surface_render_black_frame(struct wlr_drm_surface *surf) {
- struct wlr_renderer *renderer = surf->renderer->wlr_rend;
-
if (!drm_surface_make_current(surf, NULL)) {
return false;
}
+ struct wlr_renderer *renderer = surf->renderer->wlr_rend;
wlr_renderer_begin(renderer, surf->width, surf->height);
wlr_renderer_clear(renderer, (float[]){ 0.0, 0.0, 0.0, 1.0 });
wlr_renderer_end(renderer);
+
+ wlr_egl_unset_current(&surf->renderer->egl);
+
return true;
}
@@ -413,6 +415,8 @@ struct gbm_bo *drm_fb_acquire(struct wlr_drm_fb *fb, struct wlr_drm_backend *drm
return NULL;
}
+ wlr_egl_unset_current(&mgpu->renderer->egl);
+
fb->mgpu_bo = gbm_surface_lock_front_buffer(mgpu->gbm);
if (!fb->mgpu_bo) {
wlr_log(WLR_ERROR, "Failed to lock front buffer");