Output: check scene damage before rendering

This should fix adaptive sync/VRR, which was regressed by db7de8151.
This commit is contained in:
Isaac Freund 2024-12-29 16:09:44 -06:00
parent 9f8b689f8a
commit ab879e245c
No known key found for this signature in database
GPG Key ID: 86DED400DDFD7A11

View File

@ -542,6 +542,13 @@ fn handleFrame(listener: *wl.Listener(*wlr.Output), _: *wlr.Output) void {
}
fn renderAndCommit(output: *Output, scene_output: *wlr.SceneOutput) !void {
// TODO(wlroots): replace this with wlr_scene_output_needs_frame()
if (!output.wlr_output.needs_frame and !output.gamma_dirty and
!scene_output.pending_commit_damage.notEmpty())
{
return;
}
var state = wlr.Output.State.init();
defer state.finish();