Skip to content

gpu/kms: Turn off CRTCs as well for DPMS

This avoids some issues which could happen on some setups[0] due to meta-native-renderer.c:dummy_power_save_page_flip → meta_onscreen_native_swap_drm_fb implicitly turning of the primary plane (by destroying the KMS framebuffer assigned to it):

  • drmModeObjectSetProperty could return an "Invalid argument" error between setting a non-empty cursor with drmModeSetCursor(2) and enabling the primary plane again:

    Failed to DPMS: Failed to set connector 69 property 2: Invalid argument

    (This was harmless other than the error message, as we always re-set a mode on the CRTC after setting the DPMS property to on, which enables the primary plane and implicitly sets the DRM property to on)

  • drmModeSetCursor(2) could return an "Invalid argument" error between setting the DPMS property to on and enabling the primary plane again:

    Failed to set hardware cursor (drmModeSetCursor failed: Invalid argument), using OpenGL from now on

[0] E.g. with the amdgpu DC display code.

Might at least help for #1108 / #1165 (closed).

Edited by Robert Mader

Merge request reports