composer: Get vsync period in dummy display
Return previous vsync period in dummy display.
Change-Id: I3adddd21b85e75182606988ddd8168602952d456
diff --git a/composer/hwc_display.h b/composer/hwc_display.h
index 1232f92..751b941 100644
--- a/composer/hwc_display.h
+++ b/composer/hwc_display.h
@@ -417,6 +417,11 @@
uint64_t *samples[NUM_HISTOGRAM_COLOR_COMPONENTS]);
virtual HWC2::Error GetDisplayVsyncPeriod(VsyncPeriodNanos *vsync_period);
+ virtual HWC2::Error SetDisplayVsyncPeriod(VsyncPeriodNanos vsync_period) {
+ return HWC2::Error::None;
+ }
+
+
virtual HWC2::Error SetActiveConfigWithConstraints(
hwc2_config_t config, const VsyncPeriodChangeConstraints *vsync_period_change_constraints,
VsyncPeriodChangeTimeline *out_timeline);
diff --git a/composer/hwc_display_dummy.cpp b/composer/hwc_display_dummy.cpp
index 37f130d..0413ab7 100644
--- a/composer/hwc_display_dummy.cpp
+++ b/composer/hwc_display_dummy.cpp
@@ -103,6 +103,14 @@
bool HWCDisplayDummy::VsyncEnablePending() {
return vsync_enable_;
}
+HWC2::Error HWCDisplayDummy::GetDisplayVsyncPeriod(VsyncPeriodNanos *vsync_period) {
+ *vsync_period = vsync_period_;
+ return HWC2::Error::None;
+}
+HWC2::Error HWCDisplayDummy::SetDisplayVsyncPeriod(VsyncPeriodNanos vsync_period) {
+ vsync_period_ = vsync_period;
+ return HWC2::Error::None;
+}
HWC2::Error HWCDisplayDummy::SetClientTarget(buffer_handle_t target,
shared_ptr<Fence> acquire_fence,
diff --git a/composer/hwc_display_dummy.h b/composer/hwc_display_dummy.h
index 125d9a8..efd8a4b 100644
--- a/composer/hwc_display_dummy.h
+++ b/composer/hwc_display_dummy.h
@@ -51,12 +51,15 @@
virtual bool VsyncEnablePending();
virtual HWC2::Error SetClientTarget(buffer_handle_t target, shared_ptr<Fence> acquire_fence,
int32_t dataspace, hwc_region_t damage);
+ virtual HWC2::Error GetDisplayVsyncPeriod(VsyncPeriodNanos *vsync_period);
+ virtual HWC2::Error SetDisplayVsyncPeriod(VsyncPeriodNanos vsync_period);
private:
HWCDisplayDummy(CoreInterface *core_intf, BufferAllocator *buffer_allocator,
HWCCallbacks *callbacks, HWCDisplayEventHandler *event_handler,
qService::QService *qservice, hwc2_display_t id, int32_t sdm_id);
DisplayNull display_null_;
bool vsync_enable_ = false;
+ VsyncPeriodNanos vsync_period_ = 16600000;
};
} // namespace sdm
diff --git a/composer/hwc_session_services.cpp b/composer/hwc_session_services.cpp
index 7740055..0c12f80 100644
--- a/composer/hwc_session_services.cpp
+++ b/composer/hwc_session_services.cpp
@@ -723,12 +723,17 @@
shared_ptr<Fence> acquire_fence = nullptr;
int32_t dataspace = 0;
hwc_region_t damage = {};
+ VsyncPeriodNanos vsync_period = 16600000;
hwc_session_->hwc_display_[disp_id]->GetClientTarget(
target, acquire_fence, dataspace, damage);
hwc_session_->hwc_display_[dummy_disp_id]->SetClientTarget(
target, acquire_fence, dataspace, damage);
+
+ hwc_session_->hwc_display_[disp_id]->GetDisplayVsyncPeriod(&vsync_period);
+ hwc_session_->hwc_display_[dummy_disp_id]->SetDisplayVsyncPeriod(vsync_period);
+
hwc_session_->locker_[dummy_disp_id].Unlock(); // Release the dummy display.
// Release the display's power-state transition var read lock.
hwc_session_->power_state_[disp_id].Unlock();