mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01:00
backend/headless: add support for direct scan-out
I was about to add a check to fail instead of crash when the compositor uses direct scan-out, but with renderer v6 it's so simple to just add support for direct scan-out, why bother? Closes: https://github.com/swaywm/wlroots/issues/2523
This commit is contained in:
parent
b790e5ea34
commit
eb5886ddbe
1 changed files with 17 additions and 7 deletions
|
@ -91,17 +91,27 @@ static bool output_commit(struct wlr_output *wlr_output) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wlr_output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
|
if (wlr_output->pending.committed & WLR_OUTPUT_STATE_BUFFER) {
|
||||||
assert(output->back_buffer != NULL);
|
struct wlr_buffer *buffer = NULL;
|
||||||
|
switch (wlr_output->pending.buffer_type) {
|
||||||
|
case WLR_OUTPUT_STATE_BUFFER_RENDER:
|
||||||
|
assert(output->back_buffer != NULL);
|
||||||
|
|
||||||
wlr_renderer_bind_buffer(output->backend->renderer, NULL);
|
wlr_renderer_bind_buffer(output->backend->renderer, NULL);
|
||||||
wlr_egl_unset_current(output->backend->egl);
|
wlr_egl_unset_current(output->backend->egl);
|
||||||
|
|
||||||
|
buffer = output->back_buffer;
|
||||||
|
output->back_buffer = NULL;
|
||||||
|
break;
|
||||||
|
case WLR_OUTPUT_STATE_BUFFER_SCANOUT:
|
||||||
|
buffer = wlr_buffer_lock(wlr_output->pending.buffer);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
assert(buffer != NULL);
|
||||||
|
|
||||||
wlr_buffer_unlock(output->front_buffer);
|
wlr_buffer_unlock(output->front_buffer);
|
||||||
output->front_buffer = output->back_buffer;
|
output->front_buffer = buffer;
|
||||||
output->back_buffer = NULL;
|
|
||||||
|
|
||||||
wlr_swapchain_set_buffer_submitted(output->swapchain,
|
wlr_swapchain_set_buffer_submitted(output->swapchain, buffer);
|
||||||
output->front_buffer);
|
|
||||||
|
|
||||||
wlr_output_send_present(wlr_output, NULL);
|
wlr_output_send_present(wlr_output, NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue