kms: Don't queue frames only after vblank
This commit is contained in:
parent
a8e0f99e4b
commit
5057dec552
1 changed files with 2 additions and 7 deletions
|
|
@ -94,7 +94,6 @@ pub struct Surface {
|
||||||
damage_tracker: DamageTrackedRenderer,
|
damage_tracker: DamageTrackedRenderer,
|
||||||
connector: connector::Handle,
|
connector: connector::Handle,
|
||||||
output: Output,
|
output: Output,
|
||||||
last_submit: Option<RenderElementStates>,
|
|
||||||
refresh_rate: u32,
|
refresh_rate: u32,
|
||||||
vrr: bool,
|
vrr: bool,
|
||||||
pending: bool,
|
pending: bool,
|
||||||
|
|
@ -382,10 +381,6 @@ impl State {
|
||||||
Some(Ok(_)) => {
|
Some(Ok(_)) => {
|
||||||
let _submit_time = metadata.take().map(|data| data.time);
|
let _submit_time = metadata.take().map(|data| data.time);
|
||||||
surface.pending = false;
|
surface.pending = false;
|
||||||
data.state.common.send_frames(
|
|
||||||
&surface.output,
|
|
||||||
&surface.last_submit.take().unwrap(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
Some(Err(err)) => {
|
Some(Err(err)) => {
|
||||||
slog_scope::warn!("Failed to submit frame: {}", err)
|
slog_scope::warn!("Failed to submit frame: {}", err)
|
||||||
|
|
@ -701,7 +696,6 @@ impl Device {
|
||||||
connector: conn,
|
connector: conn,
|
||||||
vrr,
|
vrr,
|
||||||
refresh_rate,
|
refresh_rate,
|
||||||
last_submit: None,
|
|
||||||
pending: false,
|
pending: false,
|
||||||
render_timer_token: None,
|
render_timer_token: None,
|
||||||
#[cfg(feature = "debug")]
|
#[cfg(feature = "debug")]
|
||||||
|
|
@ -791,7 +785,7 @@ impl Surface {
|
||||||
Some(&mut self.fps),
|
Some(&mut self.fps),
|
||||||
) {
|
) {
|
||||||
Ok((_damage, states)) => {
|
Ok((_damage, states)) => {
|
||||||
self.last_submit = Some(states);
|
state.send_frames(&self.output, &states);
|
||||||
surface
|
surface
|
||||||
.queue_buffer()
|
.queue_buffer()
|
||||||
.with_context(|| "Failed to submit buffer for display")?;
|
.with_context(|| "Failed to submit buffer for display")?;
|
||||||
|
|
@ -801,6 +795,7 @@ impl Surface {
|
||||||
anyhow::bail!("Rendering failed: {}", err);
|
anyhow::bail!("Rendering failed: {}", err);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue