Waking up from DPMS sleep shows stale frame buffer data of unlocked screen

Open
#751 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
c, linux

Research direction

Reproduce the issue on the internal display using the listed lock, DPMS sleep, and wake-up steps, then trace Muffin's DPMS and screen-lock handling. Confirm that every relevant framebuffer is cleared before sleep and that waking shows the lock screen without stale desktop frames.

Written by the indexing model from the issue text.

Description

Distribution

Mint 22

Package version

6.2.0+wilma

Graphics hardware in use

Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]

Frequency

Always

Bug description

When locking the screen, the monitor is put into DPMS sleep mode. After waking up, the lock screen should be shown. Instead the unlocked desktop from before is visible.

(Note that this also occurs with the default screen locker, not just xscreensaver as seen in the video. I just use xscreensaver because the mint screen locker is horribly insecure and allows typing into windows behind the lock screen when waking up, e.g. https://github.com/linuxmint/cinnamon/issues/12805 and https://github.com/linuxmint/cinnamon/issues/12954 and many more)

Steps to reproduce
  • Use internal laptop screen and disconnect external monitors if possible, because external monitors take way longer to show an image after waking up. This makes it sometimes impossible to see the effect.
  • Lock screen with Win+L or send the computer to sleep (suspend to RAM)
  • Wait some time, 1-2 Seconds is enough, but waiting longer also works
  • Press a key to wake up the screen
  • Note the image of the unlocked desktop, where the clock in the task bar shows the time when you locked the screen, not the current time.
  • It some fast movement was occuring before the the locking, you can even see two distinct consecutive frames after waking up (see attached video: Terminal is updating for 1-2 frames before going black after wakeup). Again, this is old data: If you wait for a few minutes, the spurious frames will show the old time in the task bar clock.

https://github.com/user-attachments/assets/ea50258f-8169-4e4f-be49-375aac5a04fc

Expected behavior

All framebuffers (also double and triple buffers, if applicable) should be wiped to black before sending screen to sleep.

Additional information

I use a Lenovo ThinkPad X390 Yoga, but I don't think that it is hardware-specific.

Dominant language
C
Stars
245
Forks
127
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from linuxmint/muffin

All issues in linuxmint/muffin

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.