kms: New backend
New backend utilizing a thread per surface for precise frame scheduling.
This commit is contained in:
parent
3b7bba3add
commit
469a366207
24 changed files with 3219 additions and 1958 deletions
|
|
@ -342,11 +342,7 @@ impl BackendData {
|
|||
// Winit has a very strict render-loop and skipping frames breaks atleast the wayland winit-backend.
|
||||
// Swapping with damage (which should be empty on these frames) is likely good enough anyway.
|
||||
BackendData::X11(ref mut state) => state.schedule_render(output),
|
||||
BackendData::Kms(ref mut state) => {
|
||||
if let Err(err) = state.schedule_render(loop_handle, output, None) {
|
||||
error!(?err, "Failed to schedule event, are we shutting down?");
|
||||
}
|
||||
}
|
||||
BackendData::Kms(ref mut state) => state.schedule_render(output),
|
||||
_ => unreachable!("No backend was initialized"),
|
||||
}
|
||||
}
|
||||
|
|
@ -554,7 +550,7 @@ impl State {
|
|||
compositor_client_state: CompositorClientState::default(),
|
||||
workspace_client_state: WorkspaceClientState::default(),
|
||||
advertised_drm_node: match &self.backend {
|
||||
BackendData::Kms(kms_state) => Some(kms_state.primary_node),
|
||||
BackendData::Kms(kms_state) => kms_state.primary_node,
|
||||
_ => None,
|
||||
},
|
||||
privileged: !enable_wayland_security(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue