aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQiu <alex@alexslomka.xyz>2021-03-27 16:17:24 +0100
committerGitHub <noreply@github.com>2021-03-27 16:17:24 +0100
commitc457b12cf3c2040f37f9322095a20ad16a15b337 (patch)
treef0317c682f6dc2a54ae59a66ef007853464c5baf
parente1048e6add215641c31a27a35f0a6439dfc4ff2a (diff)
downloadriver-c457b12cf3c2040f37f9322095a20ad16a15b337.tar.gz
river-c457b12cf3c2040f37f9322095a20ad16a15b337.tar.xz
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.
-rw-r--r--river/render.zig7
1 files 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 {