aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--types/scene/wlr_scene.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c
index 04fa292f..cf6eb81c 100644
--- a/types/scene/wlr_scene.c
+++ b/types/scene/wlr_scene.c
@@ -1424,13 +1424,16 @@ static bool scene_node_try_direct_scanout(struct wlr_scene_node *node,
return false;
}
- wlr_output_attach_buffer(output, buffer->buffer);
- if (!wlr_output_test(output)) {
- wlr_output_rollback(output);
+ struct wlr_output_state state = {
+ .committed = WLR_OUTPUT_STATE_BUFFER,
+ .buffer = buffer->buffer,
+ };
+
+ if (!wlr_output_test_state(output, &state)) {
return false;
}
- return wlr_output_commit(output);
+ return wlr_output_commit_state(output, &state);
}
bool wlr_scene_output_commit(struct wlr_scene_output *scene_output) {