aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Stratiienko <r.stratiienko@gmail.com>2020-09-26 23:59:19 +0300
committerRoman Stratiienko <r.stratiienko@gmail.com>2020-10-03 10:54:15 +0300
commit27d2ed670bb343669e1d790710fb82e9ec900e85 (patch)
treed131b687967de435414f7ef2d8aa478cd28a606a
parent2370109af70b31937b44c663ab4882d2c74fbc53 (diff)
downloaddrm_hwcomposer-27d2ed670bb343669e1d790710fb82e9ec900e85.tar.gz
drm_hwcomposer: Fix SetColorMode() and SetColorModeWithIntent()
SetColorMode() should return HWC2_ERROR_UNSUPPORTED [1] SetColorModeWithIntent() should return HWC2_ERROR_UNSUPPORTED [2] Parameters range shoud be also checked to pass VTS. Fixes VtsHalGraphicsComposerV2_2TargetTest: - PerInstance/GraphicsComposerHidlTest#SetColorMode_2_2* ============================================ ================= Results ================== arm64-v8a VtsHalGraphicsComposerV2_2TargetTest: 39s armeabi-v7a VtsHalGraphicsComposerV2_2TargetTest: 36s =============== Summary =============== 2/2 modules completed Total Tests : 78 PASSED : 78 FAILED : 0 ============================================ [1] - https://cs.android.com/android/platform/superproject/+/master:hardware/libhardware/include/hardware/hwcomposer2.h;l=1925;drc=d5f2f67cd2ae63abeccabd0d5339dacd469569cd [2] - https://cs.android.com/android/platform/superproject/+/master:hardware/libhardware/include/hardware/hwcomposer2.h;l=1952;drc=d5f2f67cd2ae63abeccabd0d5339dacd469569cd Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
-rw-r--r--DrmHwcTwo.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/DrmHwcTwo.cpp b/DrmHwcTwo.cpp
index 81bb96d..38ca663 100644
--- a/DrmHwcTwo.cpp
+++ b/DrmHwcTwo.cpp
@@ -783,7 +783,7 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetColorMode(int32_t mode) {
supported(__func__);
if (mode != HAL_COLOR_MODE_NATIVE)
- return HWC2::Error::BadParameter;
+ return HWC2::Error::Unsupported;
color_mode_ = mode;
return HWC2::Error::None;
@@ -950,10 +950,19 @@ HWC2::Error DrmHwcTwo::HwcDisplay::GetRenderIntents(
HWC2::Error DrmHwcTwo::HwcDisplay::SetColorModeWithIntent(int32_t mode,
int32_t intent) {
- if (mode != HAL_COLOR_MODE_NATIVE)
+ if (intent < HAL_RENDER_INTENT_COLORIMETRIC ||
+ intent > HAL_RENDER_INTENT_TONE_MAP_ENHANCE)
return HWC2::Error::BadParameter;
- if (intent != HAL_RENDER_INTENT_COLORIMETRIC)
+
+ if (mode < HAL_COLOR_MODE_NATIVE || mode > HAL_COLOR_MODE_BT2100_HLG)
return HWC2::Error::BadParameter;
+
+ if (mode != HAL_COLOR_MODE_NATIVE)
+ return HWC2::Error::Unsupported;
+
+ if (intent != HAL_RENDER_INTENT_COLORIMETRIC)
+ return HWC2::Error::Unsupported;
+
color_mode_ = mode;
return HWC2::Error::None;
}