-
Notifications
You must be signed in to change notification settings - Fork 34
fix: fix wrong display render issue when switching VT too quickly #516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
When cooperating with DDM, switching VT will not drop DRM FD. This makes treeland still able to draw to the DRM after VT switch, which will cause wrong display rendering when switching VT too quickly. This commit cooperate new treeland-ddm-v1 protocol and expose interface to enable / disable global rendering, which is used in DDM to control render before / after TTY switching, to solve the render issue.
|
Hi @apr3vau. Thanks for your PR. I'm waiting for a linuxdeepin member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Reviewer's GuideImplements new treeland-ddm-v1 interface methods to enable/disable global rendering, adds a renderEnabled flag in the QtQuick render window that gates the doRender process, and exposes corresponding Helper layer methods; this enables DDM to suspend/resume rendering around VT switches and resolves incorrect display outputs when switching too quickly. Sequence diagram for enabling/disabling global rendering via DDM interfacesequenceDiagram
participant DDM
participant treeland_ddm_interface
participant Helper
participant WOutputRenderWindow
DDM->>treeland_ddm_interface: enable_render/disable_render
treeland_ddm_interface->>Helper: enableRender()/disableRender()
Helper->>WOutputRenderWindow: setRenderEnabled(true/false)
WOutputRenderWindow->>WOutputRenderWindow: doRender() (gated by renderEnabled)
Entity relationship diagram for DDM interface and Helper integrationerDiagram
TREELAND_DDM_INTERFACE {
switch_to_greeter
switch_to_user
activate_session
deactivate_session
enable_render
disable_render
}
HELPER {
enableRender
disableRender
}
TREELAND_DDM_INTERFACE ||--o| HELPER: calls
Class diagram for updated Helper and WOutputRenderWindow classesclassDiagram
class Helper {
+activateSession()
+deactivateSession()
+enableRender()
+disableRender()
-m_renderWindow: WOutputRenderWindow*
}
class WOutputRenderWindow {
+setRenderEnabled(bool enabled)
+inRendering() const
-renderEnabled: bool
+doRender(...)
}
Helper --> WOutputRenderWindow: uses
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
Other two PR link: linuxdeepin/ddm#35 linuxdeepin/treeland-protocols#21 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: apr3vau, zccrs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
add render enable interface. cherry-pick form linuxdeepin#516
add render enable interface. cherry-pick form #516
When cooperating with DDM, switching VT will not drop DRM FD. This makes treeland still able to draw to the DRM after VT switch, which will cause wrong display rendering when switching VT too quickly. This commit cooperate new treeland-ddm-v1 protocol and expose interface to enable / disable global rendering, which is used in DDM to control render before / after TTY switching, to solve the render issue.
Summary by Sourcery
Add global rendering control to fix display glitches during rapid VT switches by pausing and resuming output rendering via the treeland-ddm-v1 protocol.
New Features:
Bug Fixes:
Enhancements: