Skip to content

Commit 3a69a1a

Browse files
author
yokotoka
committed
Fix burn-in effect triggering redundant GPU shader passes
Move scheduleUpdate() inside the time-change conditional in BurnInEffect.completelyUpdate(). Previously, the recursive ShaderEffectSource was scheduled for update on every imagePainted signal — including cursor blinks every 500ms — regardless of whether timeManager.time had actually changed. With the default effectsFrameSkip=3, time only updates every 3rd frame, but the expensive recursive GPU shader pass was running every frame. This change skips the shader pass when time hasn't changed, reducing GPU work by ~67% at default settings. The burn-in visual effect is preserved because updates still occur whenever timeManager.time advances, which is the only time the burn-in fade calculation produces different output. Addresses #816 (graphics update rate slowly drops over time) Addresses #483 (keystroke to output delay)
1 parent 86ee7da commit 3a69a1a

1 file changed

Lines changed: 1 addition & 2 deletions

File tree

app/qml/BurnInEffect.qml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,8 @@ Loader {
4444
if (newTime > lastUpdate) {
4545
prevLastUpdate = lastUpdate
4646
lastUpdate = newTime
47+
item.source.scheduleUpdate()
4748
}
48-
49-
item.source.scheduleUpdate()
5049
}
5150

5251
function restartBlurSource() {

0 commit comments

Comments
 (0)