diff options
author | Roman Stratiienko <r.stratiienko@gmail.com> | 2020-09-26 23:59:19 +0300 |
---|---|---|
committer | Roman Stratiienko <r.stratiienko@gmail.com> | 2020-10-03 10:54:15 +0300 |
commit | 27d2ed670bb343669e1d790710fb82e9ec900e85 (patch) | |
tree | d131b687967de435414f7ef2d8aa478cd28a606a | |
parent | 2370109af70b31937b44c663ab4882d2c74fbc53 (diff) | |
download | drm_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.cpp | 15 |
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; } |