diff options
author | Sean Paul <seanpaul@chromium.org> | 2015-09-19 09:14:34 -0400 |
---|---|---|
committer | Sean Paul <seanpaul@chromium.org> | 2015-10-01 14:11:24 -0400 |
commit | 573554106db499d323bea12ff00363b1816f8c8a (patch) | |
tree | d9f5fe8cace780a4c44fb964474ca9f9560663b9 /drmdisplaycomposition.h | |
parent | 7acc59be7f12ad45b9abfa56c2d21726edf6224e (diff) |
drm_hwcomposer: Process modesets via compositor
This patch queues modeset in the compositor for application on
the next frame. This allows us to perform the modeset atomically
with the first frame that comes in after the mode is changed.
Change-Id: I6bb9edd17bbdd6dbee5c0474f2e43599781cc7a7
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Diffstat (limited to 'drmdisplaycomposition.h')
-rw-r--r-- | drmdisplaycomposition.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drmdisplaycomposition.h b/drmdisplaycomposition.h index 06784f1..57e8521 100644 --- a/drmdisplaycomposition.h +++ b/drmdisplaycomposition.h @@ -35,6 +35,7 @@ enum DrmCompositionType { DRM_COMPOSITION_TYPE_EMPTY, DRM_COMPOSITION_TYPE_FRAME, DRM_COMPOSITION_TYPE_DPMS, + DRM_COMPOSITION_TYPE_MODESET, }; struct DrmCompositionLayer { @@ -79,6 +80,7 @@ class DrmDisplayComposition { std::vector<DrmPlane *> *overlay_planes); int AddPlaneDisable(DrmPlane *plane); int SetDpmsMode(uint32_t dpms_mode); + int SetDisplayMode(const DrmMode &display_mode); void RemoveNoPlaneLayers(); int SignalPreCompositionDone(); @@ -87,6 +89,7 @@ class DrmDisplayComposition { std::vector<DrmCompositionLayer> *GetCompositionLayers(); int pre_composition_layer_index() const; uint32_t dpms_mode() const; + const DrmMode &display_mode() const; uint64_t frame_no() const; @@ -116,6 +119,7 @@ class DrmDisplayComposition { std::vector<DrmCompositionLayer> layers_; int pre_composition_layer_index_; uint32_t dpms_mode_; + DrmMode display_mode_; uint64_t frame_no_; }; |