Merge "graphics: COLORIMETRIC is optional for HDR modes" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-05-30 23:57:58 +00:00
committed by Android (Google) Code Review
4 changed files with 27 additions and 6 deletions

View File

@@ -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

View File

@@ -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);
}
}
}

View File

@@ -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.

View File

@@ -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);
}
}