From e05a85327ff17d00d30b8e03c9f7f5f6d2e4c441 Mon Sep 17 00:00:00 2001 From: Andri Yngvason Date: Sun, 28 Jun 2020 13:48:59 +0000 Subject: [PATCH] render: gles2: Fix y-inversion in gles2_blit_dmabuf() --- render/gles2/renderer.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index 511b7f8b..914f5b77 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -384,7 +384,9 @@ static bool gles2_blit_dmabuf(struct wlr_renderer *wlr_renderer, bool dst_inverted_y = !!(dst_attr->flags & WLR_DMABUF_ATTRIBUTES_FLAGS_Y_INVERT); struct wlr_gles2_texture *gles2_src_tex = gles2_get_texture(src_tex); - gles2_src_tex->inverted_y = src_inverted_y ^ dst_inverted_y; + // The result is negated because wlr_matrix_projection y-inverts the + // texture. + gles2_src_tex->inverted_y = !(src_inverted_y ^ dst_inverted_y); struct wlr_egl *egl = wlr_gles2_renderer_get_egl(wlr_renderer); if (!wlr_egl_make_current(egl, EGL_NO_SURFACE, NULL)) {