From 3434ea25f4050c006d51b607c7eb2922b0eaf8b3 Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Fri, 26 Jul 2019 20:25:12 +0100 Subject: [PATCH] new xrender: fix nothing gets rendered without vsync Signed-off-by: Yuxuan Shui --- src/backend/xrender/xrender.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/backend/xrender/xrender.c b/src/backend/xrender/xrender.c index 9d88f5a..4e28ea9 100644 --- a/src/backend/xrender/xrender.c +++ b/src/backend/xrender/xrender.c @@ -360,15 +360,16 @@ static void present(backend_t *base, const region_t *region) { xcb_render_composite(base->c, XCB_RENDER_PICT_OP_SRC, xd->back[2], XCB_NONE, xd->target, orig_x, orig_y, 0, 0, orig_x, orig_y, region_width, region_height); - - // Only the target picture really holds the screen content, and its - // content is always up to date. So buffer age is always 1. - xd->buffer_age[xd->curr_back] = 1; } } static int buffer_age(backend_t *backend_data) { struct _xrender_data *xd = (void *)backend_data; + if (!xd->vsync) { + // Only the target picture really holds the screen content, and its + // content is always up to date. So buffer age is always 1. + return 1; + } return xd->buffer_age[xd->curr_back]; }