vts failures & hang on db845c after MR !176
While the fix in 176 gets display back and working on HiKey960/HiKey, I found while trying to do more thorough testing that it seems to be causing some VTS regressions on db845c.
This was triggered running: "atest VtsHalGraphicsComposerV2_1TargetTest"
Now, earlier (and with current AOSP/master) the V2_1 test would fully pass. However, usually midway through the test the display would blank out and not come back. This was consistent on HiKey960 as well as db845c. So I don't have a ton of faith in the test itself.
With the current gitlab/main branch however, the V2_1 test output looks like
arm64-v8a VtsHalGraphicsComposerV2_1TargetTest
----------------------------------------------
VtsHalGraphicsComposerV2_1TargetTest (53 Tests)
[1/53] PerInstance/GraphicsComposerHidlTest#GetCapabilities/0_default: PASSED (16ms)
[2/53] PerInstance/GraphicsComposerHidlTest#DumpDebugInfo/0_default: PASSED (11ms)
[3/53] PerInstance/GraphicsComposerHidlTest#CreateClientSingleton/0_default: PASSED (1.010s)
[4/53] PerInstance/GraphicsComposerHidlTest#CreateVirtualDisplay/0_default: PASSED (14ms)
[5/53] PerInstance/GraphicsComposerHidlTest#DestroyVirtualDisplayBadDisplay/0_default: PASSED (9ms)
[6/53] PerInstance/GraphicsComposerHidlTest#CreateLayer/0_default: PASSED (7ms)
[7/53] PerInstance/GraphicsComposerHidlTest#CreateLayerBadDisplay/0_default: PASSED (7ms)
[8/53] PerInstance/GraphicsComposerHidlTest#DestroyLayerBadDisplay/0_default: PASSED (8ms)
[9/53] PerInstance/GraphicsComposerHidlTest#DestroyLayerBadLayerError/0_default: PASSED (7ms)
[10/53] PerInstance/GraphicsComposerHidlTest#GetActiveConfigBadDisplay/0_default: PASSED (7ms)
[11/53] PerInstance/GraphicsComposerHidlTest#GetDisplayConfig/0_default: PASSED (671ms)
[12/53] PerInstance/GraphicsComposerHidlTest#GetDisplayConfigBadDisplay/0_default: PASSED (11ms)
[13/53] PerInstance/GraphicsComposerHidlTest#GetDisplayName/0_default: PASSED (8ms)
[14/53] PerInstance/GraphicsComposerHidlTest#GetDisplayType/0_default: PASSED (9ms)
[15/53] PerInstance/GraphicsComposerHidlTest#GetClientTargetSupport/0_default: PASSED (475ms)
[16/53] PerInstance/GraphicsComposerHidlTest#GetClientTargetSupportBadDisplay/0_default: PASSED (805ms)
[17/53] PerInstance/GraphicsComposerHidlTest#GetDisplayAttribute/0_default: PASSED (848ms)
[18/53] PerInstance/GraphicsComposerHidlTest#GetHdrCapabilities/0_default: PASSED (8ms)
[19/53] PerInstance/GraphicsComposerHidlTest#SetClientTargetSlotCount/0_default: PASSED (7ms)
[20/53] PerInstance/GraphicsComposerHidlTest#SetActiveConfig/0_default: PASSED (673ms)
[21/53] PerInstance/GraphicsComposerHidlTest#SetActiveConfigPowerCycle/0_default: PASSED (65ms)
[22/53] PerInstance/GraphicsComposerHidlTest#GetColorModes/0_default: PASSED (10ms)
[23/53] PerInstance/GraphicsComposerHidlTest#SetColorMode/0_default: PASSED (9ms)
[24/53] PerInstance/GraphicsComposerHidlTest#SetColorModeBadDisplay/0_default: PASSED (9ms)
[25/53] PerInstance/GraphicsComposerHidlTest#SetColorModeBadParameter/0_default: PASSED (8ms)
[26/53] PerInstance/GraphicsComposerHidlTest#GetDozeSupportBadDisplay/0_default: PASSED (8ms)
[27/53] PerInstance/GraphicsComposerHidlTest#SetPowerMode/0_default: PASSED (8ms)
[28/53] PerInstance/GraphicsComposerHidlTest#SetPowerModeVariations/0_default: PASSED (9ms)
[29/53] PerInstance/GraphicsComposerHidlTest#SetPowerModeBadDisplay/0_default: PASSED (7ms)
[30/53] PerInstance/GraphicsComposerHidlTest#SetPowerModeUnsupported/0_default: PASSED (7ms)
[31/53] PerInstance/GraphicsComposerHidlTest#SetPowerModeBadParameter/0_default: PASSED (7ms)
[32/53] PerInstance/GraphicsComposerHidlTest#SetVsyncEnabled/0_default: PASSED (73ms)
[33/53] PerInstance/GraphicsComposerHidlCommandTest#SET_COLOR_TRANSFORM/0_default: FAILED (41ms)
STACKTRACE:
hardware/interfaces/graphics/composer/2.1/utils/vts/ComposerVts.cpp:156: Failure
Expected equality of these values:
Error::NONE
Which is: NONE
tmpError
Which is: BAD_CONFIG
failed to get active config
hardware/interfaces/graphics/composer/2.1/utils/vts/ComposerVts.cpp:184: Failure
Expected equality of these values:
Error::NONE
Which is: NONE
tmpError
Which is: BAD_CONFIG
failed to get display attribute
hardware/interfaces/graphics/composer/2.1/utils/vts/ComposerVts.cpp:184: Failure
Expected equality of these values:
Error::NONE
Which is: NONE
tmpError
Which is: BAD_CONFIG
failed to get display attribute
[34/53] PerInstance/GraphicsComposerHidlCommandTest#SET_CLIENT_TARGET/0_default: FAILED (12ms)
...
All the following tests continue to fail in the same way. The display is similarly lost at this point.
This wouldn't be so worrisome, except the vts test fails to complete and seem to hang.
I'm working to debug whats going wrong. It seems re-adding the SetPowerMode activation gets us back to the prior behavior:
@@ -894,13 +894,7 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetPowerMode(int32_t mode_in) {
a_args.active = false;
break;
case HWC2::PowerMode::On:
- /*
- * Setting the display to active before we have a composition
- * can break some drivers, so skip setting a_args.active to
- * true, as the next composition frame will implicitly activate
- * the display
- */
- return HWC2::Error::None;
+ a_args.active = true;
break;
case HWC2::PowerMode::Doze:
case HWC2::PowerMode::DozeSuspend:
but that may be still problematic for the hikey boards.