SF: Remove display config functions from HWC2
HWC2 is unnecessary stateful stopgap between HWComposer and
ComposerHal. In this CL the following functions are removed from HWC2
* getActiveConfig
* getActiveConfigIndex
* getDisplayVsyncPeriod
and ComposerHal is called directly from HWComposer. This way display
configs are stored only in HWComposer.
Additionally HWC2::Display::Config is renamed to DisplayMode and
it's extracted in its own file.
From the perspective of SurfaceFlinger this CL is not modifying
behaviour.
Bug: 159590486
Bug: 175678215
Test: atest libsurfaceflinger_unittest
Change-Id: I8cb450209adf038d891cff00d1c2690c8e6d94f7
diff --git a/services/surfaceflinger/tests/unittests/Android.bp b/services/surfaceflinger/tests/unittests/Android.bp
index 13c7c8b..a42daae 100644
--- a/services/surfaceflinger/tests/unittests/Android.bp
+++ b/services/surfaceflinger/tests/unittests/Android.bp
@@ -80,7 +80,6 @@
"VSyncReactorTest.cpp",
"VsyncConfigurationTest.cpp",
"mock/DisplayHardware/MockComposer.cpp",
- "mock/DisplayHardware/MockDisplay.cpp",
"mock/DisplayHardware/MockPowerAdvisor.cpp",
"mock/MockEventThread.cpp",
"mock/MockFrameTimeline.cpp",
diff --git a/services/surfaceflinger/tests/unittests/HWComposerTest.cpp b/services/surfaceflinger/tests/unittests/HWComposerTest.cpp
index bc1e88a..5bab534 100644
--- a/services/surfaceflinger/tests/unittests/HWComposerTest.cpp
+++ b/services/surfaceflinger/tests/unittests/HWComposerTest.cpp
@@ -190,10 +190,10 @@
.WillRepeatedly(DoAll(SetArgPointee<3>(1), Return(V2_1::Error::NONE)));
}
- void testSetActiveConfigWithConstraintsCommon(bool isVsyncPeriodSwitchSupported);
+ void testSetActiveModeWithConstraintsCommon(bool isVsyncPeriodSwitchSupported);
};
-void HWComposerConfigsTest::testSetActiveConfigWithConstraintsCommon(
+void HWComposerConfigsTest::testSetActiveModeWithConstraintsCommon(
bool isVsyncPeriodSwitchSupported) {
EXPECT_CALL(*mHal, getMaxVirtualDisplayCount()).WillOnce(Return(0));
EXPECT_CALL(*mHal, getCapabilities()).WillOnce(Return(std::vector<hal::Capability>{}));
@@ -229,9 +229,9 @@
constraints.seamlessRequired = false;
hal::VsyncPeriodChangeTimeline timeline = {0, 0, 0};
- constexpr size_t kConfigIndex = 0;
+ constexpr HwcConfigIndexType kConfigIndex(0);
const auto status =
- hwc.setActiveConfigWithConstraints(physicalId, kConfigIndex, constraints, &timeline);
+ hwc.setActiveModeWithConstraints(physicalId, kConfigIndex, constraints, &timeline);
EXPECT_EQ(NO_ERROR, status);
const std::vector<Config> kConfigs{7, 8, 9, 10, 11};
@@ -243,17 +243,18 @@
for (size_t configIndex = 0; configIndex < kConfigs.size(); configIndex++) {
const auto status =
- hwc.setActiveConfigWithConstraints(physicalId, configIndex, constraints, &timeline);
+ hwc.setActiveModeWithConstraints(physicalId, HwcConfigIndexType(configIndex),
+ constraints, &timeline);
EXPECT_EQ(NO_ERROR, status) << "Error when switching to config " << configIndex;
}
}
-TEST_F(HWComposerConfigsTest, setActiveConfigWithConstraintsWithVsyncSwitchingSupported) {
- testSetActiveConfigWithConstraintsCommon(/*supported=*/true);
+TEST_F(HWComposerConfigsTest, setActiveModeWithConstraintsWithVsyncSwitchingSupported) {
+ testSetActiveModeWithConstraintsCommon(/*supported=*/true);
}
-TEST_F(HWComposerConfigsTest, setActiveConfigWithConstraintsWithVsyncSwitchingNotSupported) {
- testSetActiveConfigWithConstraintsCommon(/*supported=*/false);
+TEST_F(HWComposerConfigsTest, setActiveModeWithConstraintsWithVsyncSwitchingNotSupported) {
+ testSetActiveModeWithConstraintsCommon(/*supported=*/false);
}
} // namespace
diff --git a/services/surfaceflinger/tests/unittests/LayerHistoryTest.cpp b/services/surfaceflinger/tests/unittests/LayerHistoryTest.cpp
index 2ee9c64..5abe38b 100644
--- a/services/surfaceflinger/tests/unittests/LayerHistoryTest.cpp
+++ b/services/surfaceflinger/tests/unittests/LayerHistoryTest.cpp
@@ -110,12 +110,11 @@
<< "Frame rate is " << frameRate;
}
- Hwc2::mock::Display mDisplay;
- RefreshRateConfigs mConfigs{{HWC2::Display::Config::Builder(mDisplay, 0)
+ RefreshRateConfigs mConfigs{{DisplayMode::Builder(0)
.setVsyncPeriod(int32_t(LO_FPS_PERIOD))
.setConfigGroup(0)
.build(),
- HWC2::Display::Config::Builder(mDisplay, 1)
+ DisplayMode::Builder(1)
.setVsyncPeriod(int32_t(HI_FPS_PERIOD))
.setConfigGroup(0)
.build()},
diff --git a/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp
index 0813968..27c181d 100644
--- a/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp
+++ b/services/surfaceflinger/tests/unittests/RefreshRateConfigsTest.cpp
@@ -25,13 +25,13 @@
#include <log/log.h>
#include <thread>
+#include <ui/Size.h>
+
#include "../../Scheduler/RefreshRateConfigs.h"
#include "DisplayHardware/HWC2.h"
#include "Scheduler/RefreshRateConfigs.h"
-#include "mock/DisplayHardware/MockDisplay.h"
using namespace std::chrono_literals;
-using testing::_;
namespace android {
@@ -81,67 +81,48 @@
static inline const HwcConfigIndexType HWC_CONFIG_ID_50 = HwcConfigIndexType(6);
// Test configs
- std::shared_ptr<const HWC2::Display::Config> mConfig60 =
- createConfig(HWC_CONFIG_ID_60, 0, Fps(60.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig90 =
- createConfig(HWC_CONFIG_ID_90, 0, Fps(90.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig90DifferentGroup =
+ DisplayModePtr mConfig60 = createConfig(HWC_CONFIG_ID_60, 0, Fps(60.0f).getPeriodNsecs());
+ DisplayModePtr mConfig90 = createConfig(HWC_CONFIG_ID_90, 0, Fps(90.0f).getPeriodNsecs());
+ DisplayModePtr mConfig90DifferentGroup =
createConfig(HWC_CONFIG_ID_90, 1, Fps(90.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig90DifferentResolution =
- createConfig(HWC_CONFIG_ID_90, 0, Fps(90.0f).getPeriodNsecs(), 111, 222);
- std::shared_ptr<const HWC2::Display::Config> mConfig72 =
- createConfig(HWC_CONFIG_ID_72, 0, Fps(72.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig72DifferentGroup =
+ DisplayModePtr mConfig90DifferentResolution =
+ createConfig(HWC_CONFIG_ID_90, 0, Fps(90.0f).getPeriodNsecs(), ui::Size(111, 222));
+ DisplayModePtr mConfig72 = createConfig(HWC_CONFIG_ID_72, 0, Fps(72.0f).getPeriodNsecs());
+ DisplayModePtr mConfig72DifferentGroup =
createConfig(HWC_CONFIG_ID_72, 1, Fps(72.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig120 =
- createConfig(HWC_CONFIG_ID_120, 0, Fps(120.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig120DifferentGroup =
+ DisplayModePtr mConfig120 = createConfig(HWC_CONFIG_ID_120, 0, Fps(120.0f).getPeriodNsecs());
+ DisplayModePtr mConfig120DifferentGroup =
createConfig(HWC_CONFIG_ID_120, 1, Fps(120.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig30 =
- createConfig(HWC_CONFIG_ID_30, 0, Fps(30.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig30DifferentGroup =
+ DisplayModePtr mConfig30 = createConfig(HWC_CONFIG_ID_30, 0, Fps(30.0f).getPeriodNsecs());
+ DisplayModePtr mConfig30DifferentGroup =
createConfig(HWC_CONFIG_ID_30, 1, Fps(30.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig25DifferentGroup =
+ DisplayModePtr mConfig25DifferentGroup =
createConfig(HWC_CONFIG_ID_25, 1, Fps(25.0f).getPeriodNsecs());
- std::shared_ptr<const HWC2::Display::Config> mConfig50 =
- createConfig(HWC_CONFIG_ID_50, 0, Fps(50.0f).getPeriodNsecs());
+ DisplayModePtr mConfig50 = createConfig(HWC_CONFIG_ID_50, 0, Fps(50.0f).getPeriodNsecs());
// Test device configurations
// The positions of the configs in the arrays below MUST match their IDs. For example,
// the first config should always be 60Hz, the second 90Hz etc.
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m60OnlyConfigDevice = {mConfig60};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m60_90Device = {mConfig60, mConfig90};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m60_90DeviceWithDifferentGroups =
- {mConfig60, mConfig90DifferentGroup};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m60_90DeviceWithDifferentResolutions =
- {mConfig60, mConfig90DifferentResolution};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m60_72_90Device = {mConfig60,
- mConfig90,
- mConfig72};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m60_90_72_120Device = {mConfig60,
- mConfig90,
- mConfig72,
- mConfig120};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m30_60_72_90_120Device = {mConfig60,
- mConfig90,
- mConfig72,
- mConfig120,
- mConfig30};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m30_60Device =
- {mConfig60, mConfig90DifferentGroup, mConfig72DifferentGroup, mConfig120DifferentGroup,
- mConfig30};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m30_60_72_90Device =
- {mConfig60, mConfig90, mConfig72, mConfig120DifferentGroup, mConfig30};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m30_60_90Device =
- {mConfig60, mConfig90, mConfig72DifferentGroup, mConfig120DifferentGroup, mConfig30};
- std::vector<std::shared_ptr<const HWC2::Display::Config>> m25_30_50_60Device =
- {mConfig60,
- mConfig90,
- mConfig72DifferentGroup,
- mConfig120DifferentGroup,
- mConfig30DifferentGroup,
- mConfig25DifferentGroup,
- mConfig50};
+ DisplayModes m60OnlyConfigDevice = {mConfig60};
+ DisplayModes m60_90Device = {mConfig60, mConfig90};
+ DisplayModes m60_90DeviceWithDifferentGroups = {mConfig60, mConfig90DifferentGroup};
+ DisplayModes m60_90DeviceWithDifferentResolutions = {mConfig60, mConfig90DifferentResolution};
+ DisplayModes m60_72_90Device = {mConfig60, mConfig90, mConfig72};
+ DisplayModes m60_90_72_120Device = {mConfig60, mConfig90, mConfig72, mConfig120};
+ DisplayModes m30_60_72_90_120Device = {mConfig60, mConfig90, mConfig72, mConfig120, mConfig30};
+ DisplayModes m30_60Device = {mConfig60, mConfig90DifferentGroup, mConfig72DifferentGroup,
+ mConfig120DifferentGroup, mConfig30};
+ DisplayModes m30_60_72_90Device = {mConfig60, mConfig90, mConfig72, mConfig120DifferentGroup,
+ mConfig30};
+ DisplayModes m30_60_90Device = {mConfig60, mConfig90, mConfig72DifferentGroup,
+ mConfig120DifferentGroup, mConfig30};
+ DisplayModes m25_30_50_60Device = {mConfig60,
+ mConfig90,
+ mConfig72DifferentGroup,
+ mConfig120DifferentGroup,
+ mConfig30DifferentGroup,
+ mConfig25DifferentGroup,
+ mConfig50};
// Expected RefreshRate objects
RefreshRate mExpected60Config = {HWC_CONFIG_ID_60, mConfig60, Fps(60),
@@ -162,18 +143,12 @@
RefreshRate::ConstructorTag(0)};
RefreshRate mExpected120Config = {HWC_CONFIG_ID_120, mConfig120, Fps(120),
RefreshRate::ConstructorTag(0)};
-
- Hwc2::mock::Display mDisplay;
-
private:
- std::shared_ptr<const HWC2::Display::Config> createConfig(HwcConfigIndexType configId,
- int32_t configGroup,
- int64_t vsyncPeriod,
- int32_t hight = -1,
- int32_t width = -1);
+ DisplayModePtr createConfig(HwcConfigIndexType configId, int32_t configGroup,
+ int64_t vsyncPeriod, ui::Size resolution = ui::Size());
};
-using Builder = HWC2::Display::Config::Builder;
+using Builder = DisplayMode::Builder;
RefreshRateConfigsTest::RefreshRateConfigsTest() {
const ::testing::TestInfo* const test_info =
@@ -187,14 +162,14 @@
ALOGD("**** Tearing down after %s.%s\n", test_info->test_case_name(), test_info->name());
}
-std::shared_ptr<const HWC2::Display::Config> RefreshRateConfigsTest::createConfig(
- HwcConfigIndexType configId, int32_t configGroup, int64_t vsyncPeriod, int32_t hight,
- int32_t width) {
- return HWC2::Display::Config::Builder(mDisplay, hal::HWConfigId(configId.value()))
+DisplayModePtr RefreshRateConfigsTest::createConfig(HwcConfigIndexType configId,
+ int32_t configGroup, int64_t vsyncPeriod,
+ ui::Size resolution) {
+ return DisplayMode::Builder(hal::HWConfigId(configId.value()))
.setVsyncPeriod(int32_t(vsyncPeriod))
.setConfigGroup(configGroup)
- .setHeight(hight)
- .setWidth(width)
+ .setHeight(resolution.height)
+ .setWidth(resolution.width)
.build();
}
diff --git a/services/surfaceflinger/tests/unittests/RefreshRateStatsTest.cpp b/services/surfaceflinger/tests/unittests/RefreshRateStatsTest.cpp
index 2188402..4a96fc5 100644
--- a/services/surfaceflinger/tests/unittests/RefreshRateStatsTest.cpp
+++ b/services/surfaceflinger/tests/unittests/RefreshRateStatsTest.cpp
@@ -28,7 +28,6 @@
#include "Scheduler/HwcStrongTypes.h"
#include "Scheduler/RefreshRateConfigs.h"
#include "Scheduler/RefreshRateStats.h"
-#include "mock/DisplayHardware/MockDisplay.h"
#include "mock/MockTimeStats.h"
using namespace std::chrono_literals;
@@ -50,7 +49,7 @@
RefreshRateStatsTest();
~RefreshRateStatsTest();
- void init(const std::vector<std::shared_ptr<const HWC2::Display::Config>>& configs) {
+ void init(const DisplayModes& configs) {
mRefreshRateConfigs =
std::make_unique<RefreshRateConfigs>(configs, /*currentConfig=*/CONFIG_ID_0);
@@ -59,14 +58,12 @@
/*currentPowerMode=*/PowerMode::OFF);
}
- Hwc2::mock::Display mDisplay;
mock::TimeStats mTimeStats;
std::unique_ptr<RefreshRateConfigs> mRefreshRateConfigs;
std::unique_ptr<RefreshRateStats> mRefreshRateStats;
- std::shared_ptr<const HWC2::Display::Config> createConfig(HwcConfigIndexType configId,
- int32_t configGroup,
- int64_t vsyncPeriod);
+ DisplayModePtr createConfig(HwcConfigIndexType configId, int32_t configGroup,
+ int64_t vsyncPeriod);
};
RefreshRateStatsTest::RefreshRateStatsTest() {
@@ -81,9 +78,9 @@
ALOGD("**** Tearing down after %s.%s\n", test_info->test_case_name(), test_info->name());
}
-std::shared_ptr<const HWC2::Display::Config> RefreshRateStatsTest::createConfig(
- HwcConfigIndexType configId, int32_t configGroup, int64_t vsyncPeriod) {
- return HWC2::Display::Config::Builder(mDisplay, static_cast<hal::HWConfigId>(configId.value()))
+DisplayModePtr RefreshRateStatsTest::createConfig(HwcConfigIndexType configId, int32_t configGroup,
+ int64_t vsyncPeriod) {
+ return DisplayMode::Builder(static_cast<hal::HWConfigId>(configId.value()))
.setVsyncPeriod(static_cast<int32_t>(vsyncPeriod))
.setConfigGroup(configGroup)
.build();
diff --git a/services/surfaceflinger/tests/unittests/SchedulerTest.cpp b/services/surfaceflinger/tests/unittests/SchedulerTest.cpp
index fb02a33..757c702 100644
--- a/services/surfaceflinger/tests/unittests/SchedulerTest.cpp
+++ b/services/surfaceflinger/tests/unittests/SchedulerTest.cpp
@@ -24,7 +24,6 @@
#include "Scheduler/RefreshRateConfigs.h"
#include "TestableScheduler.h"
#include "TestableSurfaceFlinger.h"
-#include "mock/DisplayHardware/MockDisplay.h"
#include "mock/MockEventThread.h"
#include "mock/MockLayer.h"
#include "mock/MockSchedulerCallback.h"
@@ -52,12 +51,9 @@
SchedulerTest();
- Hwc2::mock::Display mDisplay;
- const scheduler::RefreshRateConfigs mConfigs{{HWC2::Display::Config::Builder(mDisplay, 0)
- .setVsyncPeriod(16'666'667)
- .setConfigGroup(0)
- .build()},
- HwcConfigIndexType(0)};
+ const scheduler::RefreshRateConfigs
+ mConfigs{{DisplayMode::Builder(0).setVsyncPeriod(16'666'667).setConfigGroup(0).build()},
+ HwcConfigIndexType(0)};
mock::SchedulerCallback mSchedulerCallback;
diff --git a/services/surfaceflinger/tests/unittests/StrongTypingTest.cpp b/services/surfaceflinger/tests/unittests/StrongTypingTest.cpp
index 5406879..45b7610 100644
--- a/services/surfaceflinger/tests/unittests/StrongTypingTest.cpp
+++ b/services/surfaceflinger/tests/unittests/StrongTypingTest.cpp
@@ -24,7 +24,6 @@
TEST(StrongTypeTest, comparison) {
using SpunkyType = StrongTyping<int, struct SpunkyTypeTag, Compare>;
- SpunkyType f2(22);
SpunkyType f1(10);
EXPECT_TRUE(f1 == f1);
diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
index 739a9b2..e7ded8b 100644
--- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
+++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
@@ -41,7 +41,6 @@
#include "SurfaceFlingerDefaultFactory.h"
#include "SurfaceInterceptor.h"
#include "TestableScheduler.h"
-#include "mock/DisplayHardware/MockDisplay.h"
#include "mock/MockDisplayIdGenerator.h"
#include "mock/MockFrameTimeline.h"
#include "mock/MockFrameTracer.h"
@@ -211,17 +210,12 @@
std::unique_ptr<EventThread> appEventThread,
std::unique_ptr<EventThread> sfEventThread,
ISchedulerCallback* callback = nullptr, bool hasMultipleConfigs = false) {
- std::vector<std::shared_ptr<const HWC2::Display::Config>> configs{
- HWC2::Display::Config::Builder(mDisplay, 0)
- .setVsyncPeriod(16'666'667)
- .setConfigGroup(0)
- .build()};
+ DisplayModes configs{
+ DisplayMode::Builder(0).setVsyncPeriod(16'666'667).setConfigGroup(0).build()};
if (hasMultipleConfigs) {
- configs.emplace_back(HWC2::Display::Config::Builder(mDisplay, 1)
- .setVsyncPeriod(11'111'111)
- .setConfigGroup(0)
- .build());
+ configs.emplace_back(
+ DisplayMode::Builder(1).setVsyncPeriod(11'111'111).setConfigGroup(0).build());
}
const auto currConfig = HwcConfigIndexType(0);
@@ -470,7 +464,6 @@
}
auto& mutableIsConnected() { return this->mIsConnected; }
- auto& mutableConfigs() { return this->mConfigs; }
auto& mutableLayers() { return this->mLayers; }
};
@@ -545,19 +538,20 @@
auto display = std::make_unique<HWC2Display>(*composer, *mCapabilities, mHwcDisplayId,
mHwcDisplayType);
- auto config = HWC2::Display::Config::Builder(*display, mActiveConfig);
- config.setWidth(mWidth);
- config.setHeight(mHeight);
- config.setVsyncPeriod(mRefreshRate);
- config.setDpiX(mDpiX);
- config.setDpiY(mDpiY);
- config.setConfigGroup(mConfigGroup);
- display->mutableConfigs().emplace(static_cast<int32_t>(mActiveConfig), config.build());
display->mutableIsConnected() = true;
display->setPowerMode(mPowerMode);
-
flinger->mutableHwcDisplayData()[mDisplayId].hwcDisplay = std::move(display);
+ auto config = DisplayMode::Builder(mActiveConfig)
+ .setWidth(mWidth)
+ .setHeight(mHeight)
+ .setVsyncPeriod(mRefreshRate)
+ .setDpiX(mDpiX)
+ .setDpiY(mDpiY)
+ .setConfigGroup(mConfigGroup)
+ .build();
+ flinger->mutableHwcDisplayData()[mDisplayId].modes.push_back(config);
+
if (mHwcDisplayType == hal::DisplayType::PHYSICAL) {
const auto physicalId = PhysicalDisplayId::tryCast(mDisplayId);
LOG_ALWAYS_FATAL_IF(!physicalId);
@@ -704,7 +698,6 @@
surfaceflinger::test::Factory mFactory;
sp<SurfaceFlinger> mFlinger = new SurfaceFlinger(mFactory, SurfaceFlinger::SkipInitialization);
TestableScheduler* mScheduler = nullptr;
- Hwc2::mock::Display mDisplay;
mock::DisplayIdGenerator<GpuVirtualDisplayId> mGpuVirtualDisplayIdGenerator;
};
diff --git a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockDisplay.cpp b/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockDisplay.cpp
deleted file mode 100644
index c9788af..0000000
--- a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockDisplay.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "mock/DisplayHardware/MockDisplay.h"
-
-namespace android::Hwc2::mock {
-
-// Explicit default instantiation is recommended.
-Display::Display() = default;
-Display::~Display() = default;
-
-} // namespace android::Hwc2::mock
\ No newline at end of file
diff --git a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockDisplay.h b/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockDisplay.h
deleted file mode 100644
index a96d9db..0000000
--- a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockDisplay.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <gmock/gmock.h>
-
-#include "DisplayHardware/HWC2.h"
-
-using android::HWC2::Layer;
-
-namespace android::Hwc2::mock {
-
-namespace hal = android::hardware::graphics::composer::hal;
-
-class Display : public HWC2::Display {
-public:
- using Layer = ::Layer;
-
- Display();
- ~Display();
-
- MOCK_CONST_METHOD0(getId, hal::HWDisplayId());
- MOCK_CONST_METHOD0(isConnected, bool());
- MOCK_METHOD1(setConnected, void(bool));
- MOCK_CONST_METHOD0(getCapabilities, const std::unordered_set<hal::DisplayCapability>&());
-
- MOCK_METHOD0(acceptChanges, hal::Error());
- MOCK_METHOD1(createLayer, hal::Error(Layer**));
- MOCK_METHOD1(destroyLayer, hal::Error(Layer*));
- MOCK_CONST_METHOD1(getActiveConfig, hal::Error(std::shared_ptr<const Config>*));
- MOCK_CONST_METHOD1(getActiveConfigIndex, hal::Error(int* outIndex));
- MOCK_METHOD1(getChangedCompositionTypes,
- hal::Error(std::unordered_map<Layer*, hal::Composition>*));
- MOCK_CONST_METHOD1(getColorModes, hal::Error(std::vector<hal::ColorMode>*));
-
- MOCK_CONST_METHOD0(getSupportedPerFrameMetadata, int32_t());
- MOCK_CONST_METHOD2(getRenderIntents,
- hal::Error(hal::ColorMode, std::vector<hal::RenderIntent>*));
- MOCK_METHOD2(getDataspaceSaturationMatrix, hal::Error(hal::Dataspace, android::mat4*));
- MOCK_CONST_METHOD0(getConfigs, std::vector<std::shared_ptr<const Config>>());
-
- MOCK_CONST_METHOD1(getName, hal::Error(std::string*));
- MOCK_METHOD2(getRequests,
- hal::Error(hal::DisplayRequest*, std::unordered_map<Layer*, hal::LayerRequest>*));
- MOCK_CONST_METHOD1(getType, hal::Error(hal::DisplayType*));
- MOCK_CONST_METHOD1(supportsDoze, hal::Error(bool*));
- MOCK_CONST_METHOD1(getHdrCapabilities, hal::Error(android::HdrCapabilities*));
- MOCK_CONST_METHOD3(getDisplayedContentSamplingAttributes,
- hal::Error(hal::PixelFormat*, hal::Dataspace*, uint8_t*));
- MOCK_CONST_METHOD3(setDisplayContentSamplingEnabled, hal::Error(bool, uint8_t, uint64_t));
- MOCK_CONST_METHOD3(getDisplayedContentSample,
- hal::Error(uint64_t, uint64_t, android::DisplayedFrameStats*));
- MOCK_CONST_METHOD1(
- getReleaseFences,
- hal::Error(std::unordered_map<Layer*, android::sp<android::Fence>>* outFences));
- MOCK_METHOD1(present, hal::Error(android::sp<android::Fence>*));
- MOCK_METHOD1(setActiveConfig, hal::Error(const std::shared_ptr<const HWC2::Display::Config>&));
- MOCK_METHOD4(setClientTarget,
- hal::Error(uint32_t, const android::sp<android::GraphicBuffer>&,
- const android::sp<android::Fence>&, hal::Dataspace));
- MOCK_METHOD2(setColorMode, hal::Error(hal::ColorMode, hal::RenderIntent));
- MOCK_METHOD2(setColorTransform, hal::Error(const android::mat4&, hal::ColorTransform));
- MOCK_METHOD2(setOutputBuffer,
- hal::Error(const android::sp<android::GraphicBuffer>&,
- const android::sp<android::Fence>&));
- MOCK_METHOD1(setPowerMode, hal::Error(hal::PowerMode));
- MOCK_METHOD1(setVsyncEnabled, hal::Error(hal::Vsync));
- MOCK_METHOD2(validate, hal::Error(uint32_t*, uint32_t*));
- MOCK_METHOD4(presentOrValidate,
- hal::Error(uint32_t*, uint32_t*, android::sp<android::Fence>*, uint32_t*));
- MOCK_METHOD1(setDisplayBrightness, std::future<hal::Error>(float));
- MOCK_CONST_METHOD1(getDisplayVsyncPeriod, hal::Error(nsecs_t*));
- MOCK_METHOD3(setActiveConfigWithConstraints,
- hal::Error(const std::shared_ptr<const HWC2::Display::Config>&,
- const hal::VsyncPeriodChangeConstraints&,
- hal::VsyncPeriodChangeTimeline*));
- MOCK_METHOD1(setAutoLowLatencyMode, hal::Error(bool on));
- MOCK_CONST_METHOD1(getSupportedContentTypes, hal::Error(std::vector<hal::ContentType>*));
- MOCK_METHOD1(setContentType, hal::Error(hal::ContentType));
- MOCK_METHOD1(getClientTargetProperty, hal::Error(hal::ClientTargetProperty*));
- MOCK_CONST_METHOD1(getConnectionType, hal::Error(android::DisplayConnectionType*));
- MOCK_CONST_METHOD0(isVsyncPeriodSwitchSupported, bool());
-};
-
-} // namespace android::Hwc2::mock