From c457b12cf3c2040f37f9322095a20ad16a15b337 Mon Sep 17 00:00:00 2001 From: Qiu Date: Sat, 27 Mar 2021 16:17:24 +0100 Subject: [PATCH] render: schedule new frame on output commit failure This seems to fix issues with rendering freezing described in https://github.com/ifreund/river/issues/153. --- river/render.zig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/river/render.zig b/river/render.zig index 1878c6b..204d760 100644 --- a/river/render.zig +++ b/river/render.zig @@ -142,9 +142,10 @@ pub fn renderOutput(output: *Output) void { output.wlr_output.setDamage(&damage); } - // TODO: handle failure - output.wlr_output.commit() catch - log.err("output commit failed for {}", .{output.wlr_output.name}); + output.wlr_output.commit() catch { + log.err("output commit failed for {}, retrying", .{std.mem.spanZ(&output.wlr_output.name)}); + output.wlr_output.scheduleFrame(); + }; } fn renderFilter(view: *View, filter_tags: u32) bool {