Wayland compositor (wlroots)
git clone https://git.lucas.co/cce-compositor.git
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 {