From 1768cb03cf1ea51ec18f2514f8afa086b6314ba5 Mon Sep 17 00:00:00 2001 From: Huihong Luo Date: Tue, 11 Oct 2022 11:10:34 -0700 Subject: Variable refresh rate for virtual display Allow virtual display to request a refresh rate, so it can be different from VSYNC frequencies. SurfaceFlinger drops frames for the corresponding virtual display based on the refresh rate. Bug: 241286579 Test: atest libgui_test libsurfaceflinger_unittest SurfaceFlinger_test Change-Id: I4fba0e553618bb4c7333514b16206ae4277acf72 --- libs/gui/SurfaceComposerClient.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libs/gui/SurfaceComposerClient.cpp') diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index cf9828b2f8..9092f5fe67 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -1182,12 +1182,14 @@ void SurfaceComposerClient::Transaction::setDefaultApplyToken(sp applyT } // --------------------------------------------------------------------------- -sp SurfaceComposerClient::createDisplay(const String8& displayName, bool secure) { +sp SurfaceComposerClient::createDisplay(const String8& displayName, bool secure, + float requestedRefereshRate) { sp display = nullptr; binder::Status status = ComposerServiceAIDL::getComposerService()->createDisplay(std::string( displayName.string()), - secure, &display); + secure, requestedRefereshRate, + &display); return status.isOk() ? display : nullptr; } -- cgit v1.2.3-59-g8ed1b