Output: check scene damage before rendering

This should fix adaptive sync/VRR, which was regressed by db7de8151.

(cherry picked from commit ab879e245cbc317e3a2f5ec0379143d4b25b3cfe)
This commit is contained in:
Isaac Freund 2024-12-29 16:09:44 -06:00
parent 6254211a26
commit a5f94268e6
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 { 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(); var state = wlr.Output.State.init();
defer state.finish(); defer state.finish();