Skip to content

backends/drm: invalidate renderloop when output changes enabled state

Harald Sitter requested to merge work/sitter/nofreeze into master

previously we could end up in cases where a frame was lodged in the loop when a screen got disabled. this would then cause wildly inaccurate presentation times when the screen later got enabled again and ultimately never let the frame present. causing a persistent visual freeze.

instead do a bit of on-demand house keeping. if a DrmOutput is changing enabled state we now invalidate the render loop to reset any and all pending frames. this way we always start with an empty loop when enabling an output at a later time.

BUG: 476340 BUG: 476342

possibly also improves CCBUG: 476412

Merge request reports