summaryrefslogtreecommitdiff
path: root/drmdisplaycomposition.h
diff options
context:
space:
mode:
authorSean Paul <seanpaul@chromium.org>2015-09-19 09:14:34 -0400
committerSean Paul <seanpaul@chromium.org>2015-10-01 14:11:24 -0400
commit573554106db499d323bea12ff00363b1816f8c8a (patch)
treed9f5fe8cace780a4c44fb964474ca9f9560663b9 /drmdisplaycomposition.h
parent7acc59be7f12ad45b9abfa56c2d21726edf6224e (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.h4
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_;
};