-
Notifications
You must be signed in to change notification settings - Fork 171
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
DPMS Support #1553
Comments
Wlroots does seem to disable planes when it sets Mutter seems to set |
I wonder if the easiest solution would be to just drop the Looking at (Slightly off-topic: This might contribute to some of the black screens we see on switching from cosmic-greeter to cosmic-session, perhaps we should make this behaviour configurable just like disabling all connectors on With the current api this obviously means also to drop So naively we might want to additionally introduce an api to "turn off" the underlying DrmSurface, that just internally drops the The annoying part of this proposal would be adding a new So I would propose to introduce api for |
Yeah, something like that is probably best. Something that sets I think that should work... |
pop-os/cosmic-comp#741 has code setting the
DPMS
connector property to disable monitors. But theDPMS
property is deprecated, not supported on atomic mode-setting, and for some reason setting it seems to take .5 to 1 second.https://www.kernel.org/doc/html/latest/gpu/drm-kms.html
I think to handle DPMS properly, it should be handled as part of the atomic commit within Smithay.
Apparently toggling the
ACTIVE
property of a CRTC should always succeed, if no other properties are changed. We can simply setACTIVE
to false, and then set it on again when we want to show things on screen again. (But not try to do more page flips withACTIVE
off, which errors.)I think though that we also want to release buffers used in direct scanout? So probably also a commit removing planes...
The compositor will also want to stop sending frame callbacks or throttle their rate, however it normally handles surfaces that aren't visible. But that doesn't require Smithay changes.
I guess if I right about how this should work, and there aren't other considerations I'm missing, the question is how to fit this in the API of
DrmCompositor
...The text was updated successfully, but these errors were encountered: