linuxdeepin / developer-center

Deepin developer center, provide developer wiki and community forum.
449 stars 73 forks source link

【deepin_V23_beta】【一般】【紧急】【集成测试】【DDE】【桌面】设置自动锁屏和关闭显示器后,唤醒进入锁屏界面会出现闪屏的问题 #4252

Closed SuperEffie closed 1 year ago

SuperEffie commented 1 year ago

SUMMARY | 问题概要

【关联pms】:https://pms.uniontech.com/bug-view-148757.html

SOFTWARE/OS VERSIONS | 软件/系统版本信息

【镜像地址】:https://packagesupdate.uniontech.com/repo/uos-professional/image-beige/CUSTOM/lichenggang/20230426/deepin-23-beige-amd64-20230426-101953.iso
【版本信息】:dde-session-shell:6.0.8;dde-session:1.1.1

PRE-REQUIREMENT | 预置条件

设备外接电源

STEPS TO REPRODUCE | 复现步骤

  1. 打开控制中心-电源-使用电源,关闭显示器、自动锁屏项设置为1m
  2. 1分钟后,先进入锁屏状态,10s内关闭显示器
  3. 敲击键盘space键,进入锁屏界面,观察界面显示

OBSERVED RESULT | 观察到的结果

锁屏界面出现闪屏的情况

EXPECTED RESULT | 期望的结果

锁屏界面正常显示,未有闪屏的情况

ADDITIONAL INFORMATION | 额外补充

【问题备注】:使用ssh服务,远程在测试机终端输入以下命令也可复现:

  1. export DISPLAY=:0
  2. xset dpms force off && dde-lock && sleep 1 && xdotool key Return 正常机器远程输入以上命令不会出现屏幕闪烁的情况
zccrs commented 1 year ago

上游相关问题:https://gitlab.freedesktop.org/xorg/xserver/-/issues/1296

zccrs commented 1 year ago

经过分析应该是 mesa 的bug,从kwin中看到 buffer age最大会是3,说明当前环境在使用三缓冲,但是从 dpms off 的状态恢复后,只有前两个 buffer 的 age 会把重设会0,有一个 buffer 没有被重设,导致闪屏的现象是:三帧中有一帧是黑的,两位两帧正常。

zccrs commented 1 year ago

上游相关问题:https://gitlab.freedesktop.org/xorg/xserver/-/issues/1296

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20385 这个提交或许能解决问题。

zccrs commented 1 year ago

上游相关问题:https://gitlab.freedesktop.org/xorg/xserver/-/issues/1296

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20385 这个提交或许能解决问题。

mesa-patch.zip 试一下这几个patch @Zeno-sole

我本机测试可以解决问题。

SuperEffie commented 1 year ago

【验证环境】 【镜像地址】:https://cdimage.uniontech.com/daily-iso/image-beige/CUSTOM/lichenggang/20230504/deepin-23-beige-amd64-20230504-093553.iso 【相关集成】:#4277 【版本信息】:deepin-kwin-common : 5.25.2-kwin.5.24.3;libglapi-mesa:21.3.8-2deepin8 amd64 【验证结论】:验证通过,升级之前锁屏界面出现闪烁的情况,升级之后锁屏界面显示正常。关闭此issue~