mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-22 17:29:50 +01:00
output: minor tearing fixes
This commit is contained in:
parent
1c221240d0
commit
cc7c117fe7
2 changed files with 4 additions and 6 deletions
|
@ -812,7 +812,8 @@ bool CMonitor::attemptDirectScanout() {
|
|||
// and comes from the appropriate device. This may implode on multi-gpu!!
|
||||
|
||||
output->state->setBuffer(PSURFACE->current.buffer);
|
||||
output->state->setPresentationMode(Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_VSYNC);
|
||||
output->state->setPresentationMode(tearingState.activelyTearing ? Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_IMMEDIATE :
|
||||
Aquamarine::eOutputPresentationMode::AQ_OUTPUT_PRESENTATION_VSYNC);
|
||||
|
||||
if (!state.test())
|
||||
return false;
|
||||
|
|
|
@ -1193,6 +1193,8 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
|
|||
shouldTear = true;
|
||||
}
|
||||
|
||||
pMonitor->tearingState.activelyTearing = shouldTear;
|
||||
|
||||
if (!*PNODIRECTSCANOUT && !shouldTear) {
|
||||
if (pMonitor->attemptDirectScanout()) {
|
||||
return;
|
||||
|
@ -1202,11 +1204,6 @@ void CHyprRenderer::renderMonitor(CMonitor* pMonitor) {
|
|||
}
|
||||
}
|
||||
|
||||
if (pMonitor->tearingState.activelyTearing != shouldTear) {
|
||||
// change of state
|
||||
pMonitor->tearingState.activelyTearing = shouldTear;
|
||||
}
|
||||
|
||||
EMIT_HOOK_EVENT("preRender", pMonitor);
|
||||
|
||||
timespec now;
|
||||
|
|
Loading…
Reference in a new issue