diff options
author | Peiyong Lin <lpy@google.com> | 2019-04-10 16:23:12 -0700 |
---|---|---|
committer | Peiyong Lin <lpy@google.com> | 2019-04-10 16:25:05 -0700 |
commit | f13b305530c625f196cd54a1d1e5c7924c6ac65a (patch) | |
tree | be361790df9537e256e8e1995c9ad9367adea47f /graphics | |
parent | 61f233dffb4c071bcf287654fbf91177d60f69f4 (diff) | |
download | android_hardware_interfaces-f13b305530c625f196cd54a1d1e5c7924c6ac65a.tar.gz android_hardware_interfaces-f13b305530c625f196cd54a1d1e5c7924c6ac65a.tar.bz2 android_hardware_interfaces-f13b305530c625f196cd54a1d1e5c7924c6ac65a.zip |
Fix composer@2.3 VTS tests.
Some required APIs must be implemented, and thus passthrough will always assume
the function pointers exist.
BUG: 130195295
Test: atest VtsHalGraphicsComposerV2_3Target
Change-Id: Ic2790363fcb116e66438697b1a2e64e71ffc8ac6
Diffstat (limited to 'graphics')
5 files changed, 26 insertions, 20 deletions
diff --git a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h index 1b4079507..3792c2e4a 100644 --- a/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h +++ b/graphics/composer/2.3/utils/hal/include/composer-hal/2.3/ComposerClient.h @@ -22,7 +22,6 @@ #include <android/hardware/graphics/composer/2.3/IComposerClient.h> #include <composer-hal/2.2/ComposerResources.h> -#include <composer-hal/2.3/ComposerClient.h> #include <composer-hal/2.3/ComposerCommandEngine.h> #include <composer-hal/2.3/ComposerHal.h> diff --git a/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h b/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h index e2bed95fa..4829e24da 100644 --- a/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h +++ b/graphics/composer/2.3/utils/passthrough/include/composer-passthrough/2.3/HwcHal.h @@ -221,10 +221,6 @@ class HwcHalImpl : public V2_2::passthrough::detail::HwcHalImpl<Hal> { Error getDisplayCapabilities( Display display, hidl_vec<IComposerClient::DisplayCapability>* outCapabilities) override { - if (!mDispatch.getDisplayCapabilities) { - return Error::UNSUPPORTED; - } - uint32_t count = 0; int32_t error = mDispatch.getDisplayCapabilities(mDevice, display, &count, nullptr); if (error != HWC2_ERROR_NONE) { diff --git a/graphics/composer/2.3/utils/vts/ComposerVts.cpp b/graphics/composer/2.3/utils/vts/ComposerVts.cpp index 4de85d6aa..b7632097a 100644 --- a/graphics/composer/2.3/utils/vts/ComposerVts.cpp +++ b/graphics/composer/2.3/utils/vts/ComposerVts.cpp @@ -177,13 +177,17 @@ Error ComposerClient::getDisplayedContentSample(uint64_t display, uint64_t maxFr return error; } -std::vector<IComposerClient::DisplayCapability> ComposerClient::getDisplayCapabilities( - Display display) { +Error ComposerClient::getDisplayCapabilities( + Display display, std::vector<IComposerClient::DisplayCapability>* outCapabilities) { std::vector<IComposerClient::DisplayCapability> capabilities; - mClient->getDisplayCapabilities( - display, [&](const auto&, const auto& tmpCapabilities) { capabilities = tmpCapabilities; }); + Error error = Error::NONE; + mClient->getDisplayCapabilities(display, + [&](const auto& tmpError, const auto& tmpCapabilities) { + error = tmpError; + *outCapabilities = tmpCapabilities; + }); - return capabilities; + return error; } bool ComposerClient::getDisplayBrightnessSupport(Display display) { diff --git a/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h b/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h index a0e764d5e..0d4e5b8d5 100644 --- a/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h +++ b/graphics/composer/2.3/utils/vts/include/composer-vts/2.3/ComposerVts.h @@ -95,7 +95,9 @@ class ComposerClient : public V2_2::vts::ComposerClient { bool getClientTargetSupport_2_3(Display display, uint32_t width, uint32_t height, PixelFormat format, Dataspace dataspace); - std::vector<IComposerClient::DisplayCapability> getDisplayCapabilities(Display display); + Error getDisplayCapabilities( + Display display, + std::vector<IComposerClient::DisplayCapability>* outDisplayCapabilities); std::vector<IComposerClient::PerFrameMetadataKey> getPerFrameMetadataKeys_2_3(Display display); diff --git a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp index b983e42d1..56b2e337a 100644 --- a/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp +++ b/graphics/composer/2.3/vts/functional/VtsHalGraphicsComposerV2_3TargetTest.cpp @@ -565,16 +565,19 @@ TEST_F(GraphicsComposerHidlTest, GetDisplayedContentSample) { * Test some constraints. */ TEST_F(GraphicsComposerHidlTest, getDisplayCapabilitiesBasic) { - auto capabilities = mComposerClient->getDisplayCapabilities(mPrimaryDisplay); - bool hasDozeSupport = std::find(capabilities.begin(), capabilities.end(), - IComposerClient::DisplayCapability::DOZE) != capabilities.end(); + std::vector<IComposerClient::DisplayCapability> capabilities; + const auto error = mComposerClient->getDisplayCapabilities(mPrimaryDisplay, &capabilities); + ASSERT_EQ(Error::NONE, error); + const bool hasDozeSupport = + std::find(capabilities.begin(), capabilities.end(), + IComposerClient::DisplayCapability::DOZE) != capabilities.end(); EXPECT_EQ(mComposerClient->getDozeSupport(mPrimaryDisplay), hasDozeSupport); } TEST_F(GraphicsComposerHidlTest, getDisplayCapabilitiesBadDisplay) { - mComposerClient->getRaw()->getDisplayCapabilities( - mInvalidDisplayId, - [&](const auto& tmpError, const auto&) { EXPECT_EQ(Error::BAD_DISPLAY, tmpError); }); + std::vector<IComposerClient::DisplayCapability> capabilities; + const auto error = mComposerClient->getDisplayCapabilities(mInvalidDisplayId, &capabilities); + EXPECT_EQ(Error::BAD_DISPLAY, error); } TEST_F(GraphicsComposerHidlTest, SetLayerPerFrameMetadataBlobs) { @@ -604,7 +607,9 @@ TEST_F(GraphicsComposerHidlTest, SetLayerPerFrameMetadataBlobs) { * Test that getDisplayBrightnessSupport works as expected. */ TEST_F(GraphicsComposerHidlTest, getDisplayBrightnessSupport) { - auto capabilities = mComposerClient->getDisplayCapabilities(mPrimaryDisplay); + std::vector<IComposerClient::DisplayCapability> capabilities; + const auto error = mComposerClient->getDisplayCapabilities(mPrimaryDisplay, &capabilities); + ASSERT_EQ(Error::NONE, error); bool brightnessSupport = std::find(capabilities.begin(), capabilities.end(), IComposerClient::DisplayCapability::BRIGHTNESS) != capabilities.end(); @@ -616,9 +621,9 @@ TEST_F(GraphicsComposerHidlTest, getDisplayBrightnessSupport) { */ TEST_F(GraphicsComposerHidlTest, setDisplayBrightness) { if (!mComposerClient->getDisplayBrightnessSupport(mPrimaryDisplay)) { - EXPECT_EQ(mComposerClient->getRaw()->setDisplayBrightness(mPrimaryDisplay, 0.5f), - Error::UNSUPPORTED); + EXPECT_EQ(mComposerClient->setDisplayBrightness(mPrimaryDisplay, 0.5f), Error::UNSUPPORTED); GTEST_SUCCEED() << "Brightness operations are not supported"; + return; } EXPECT_EQ(mComposerClient->setDisplayBrightness(mPrimaryDisplay, 0.0f), Error::NONE); |