diff options
4 files changed, 27 insertions, 6 deletions
diff --git a/current.txt b/current.txt index f45af27393..413efae211 100644 --- a/current.txt +++ b/current.txt @@ -342,7 +342,7 @@ a830336ac8627d6432cfafb1b884343ad9f885dee0a5323e380e6d3c519156b8 android.hardwar 0b96e0254e2168cfecb30c1ed5fb42681652cc00faa68c6e07568fafe64d1d50 android.hardware.graphics.common@1.1::types 7d2cef99c838fb58038de8bbfd3cdb76ff4797241987077721715297f8d45e34 android.hardware.graphics.common@1.1::types # b/78135149 d9b40a5b09962a5a0780b10fe33a4e607e69e2e088fc83de88a584115b7cb1c0 android.hardware.graphics.composer@2.2::IComposer -e7717f2ff2f6db43b24370ff08e14cd353da3004b32b17740e4a7ed4894b7e45 android.hardware.graphics.composer@2.2::IComposerClient +a2f183f7fcc79aabedaef11095ab223aac0ed5ef984d850893872515e7f560c7 android.hardware.graphics.composer@2.2::IComposerClient dd83be076b6b3f10ed62ab34d8c8b95f2415961fb785200eb842e7bfb2b0ee92 android.hardware.graphics.mapper@2.1::IMapper 675682dd3007805c985eaaec91612abc88f4c25b3431fb84070b7584a1a741fb android.hardware.health@2.0::IHealth 434c4c32c00b0e54bb05e40c79503208b40f786a318029a2a4f66e34f10f2a76 android.hardware.health@2.0::IHealthInfoCallback diff --git a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp index 8b8b530a86..747c66c9c9 100644 --- a/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp +++ b/graphics/composer/2.1/vts/functional/VtsHalGraphicsComposerV2_1TargetTest.cpp @@ -292,9 +292,16 @@ TEST_F(GraphicsComposerHidlTest, SetActiveConfig) { * Test that IComposerClient::setColorMode succeeds for all color modes. */ TEST_F(GraphicsComposerHidlTest, SetColorMode) { + std::unordered_set<ColorMode> validModes; + for (auto mode : hidl_enum_iterator<ColorMode>()) { + validModes.insert(mode); + } + std::vector<ColorMode> modes = mComposerClient->getColorModes(mPrimaryDisplay); for (auto mode : modes) { - mComposerClient->setColorMode(mPrimaryDisplay, mode); + if (validModes.count(mode)) { + mComposerClient->setColorMode(mPrimaryDisplay, mode); + } } } diff --git a/graphics/composer/2.2/IComposerClient.hal b/graphics/composer/2.2/IComposerClient.hal index 2f0a3cca70..d4a87e6f82 100644 --- a/graphics/composer/2.2/IComposerClient.hal +++ b/graphics/composer/2.2/IComposerClient.hal @@ -355,7 +355,8 @@ interface IComposerClient extends @2.1::IComposerClient { * Returns the render intents supported by the specified display and color * mode. * - * RenderIntent::COLORIMETRIC is always supported. + * For SDR color modes, RenderIntent::COLORIMETRIC must be supported. For + * HDR color modes, RenderIntent::TONE_MAP_COLORIMETRIC must be supported. * * @param display is the display to query. * @param mode is the color mode to query. diff --git a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp index f0d22504ac..23bf5583bd 100644 --- a/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp +++ b/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2TargetTest.cpp @@ -347,9 +347,22 @@ TEST_F(GraphicsComposerHidlTest, GetRenderIntent) { for (auto mode : modes) { std::vector<RenderIntent> intents = mComposerClient->getRenderIntents(mPrimaryDisplay, mode); - auto colorimetricIntent = - std::find(intents.cbegin(), intents.cend(), RenderIntent::COLORIMETRIC); - EXPECT_NE(intents.cend(), colorimetricIntent); + + bool isHdr; + switch (mode) { + case ColorMode::BT2100_PQ: + case ColorMode::BT2100_HLG: + isHdr = true; + break; + default: + isHdr = false; + break; + } + RenderIntent requiredIntent = + isHdr ? RenderIntent::TONE_MAP_COLORIMETRIC : RenderIntent::COLORIMETRIC; + + auto iter = std::find(intents.cbegin(), intents.cend(), requiredIntent); + EXPECT_NE(intents.cend(), iter); } } |