Loading graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/current/android/hardware/graphics/composer3/DisplayCapability.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -42,4 +42,5 @@ enum DisplayCapability { AUTO_LOW_LATENCY_MODE = 5, SUSPEND = 6, DISPLAY_IDLE_TIMER = 7, MULTI_THREADED_PRESENT = 8, } graphics/composer/aidl/android/hardware/graphics/composer3/DisplayCapability.aidl +16 −0 Original line number Diff line number Diff line Loading @@ -80,4 +80,20 @@ enum DisplayCapability { * IComposerCallback.onVsyncIdle. */ DISPLAY_IDLE_TIMER = 7, /** * Indicates that both the composer HAL implementation and the given display * support calling executeCommands concurrently from separate threads. * executeCommands for a particular display will never run concurrently to * any other executeCommands for the same display. In addition, the * CommandResultPayload must only reference displays included in the * DisplayCommands passed to executeCommands. Displays referenced from * separate threads must have minimal interference with one another. If a * HWC-managed display has this capability, SurfaceFlinger can run * executeCommands for this display concurrently with other displays with the * same capability. * @see IComposerClient.executeCommands * @see DisplayCommand.presentDisplay * @see DisplayCommand.validateDisplay */ MULTI_THREADED_PRESENT = 8, } graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -2170,6 +2170,20 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayConfigNoRepetitions) { } } TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { std::vector<VtsDisplay*> displays; for (auto& display : mDisplays) { if (hasDisplayCapability(display.getDisplayId(), DisplayCapability::MULTI_THREADED_PRESENT)) { displays.push_back(&display); } } if (displays.size() <= 1u) { return; } // TODO(b/251842321): Try to present on multiple threads. } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandTest); INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandTest, Loading Loading
graphics/composer/aidl/aidl_api/android.hardware.graphics.composer3/current/android/hardware/graphics/composer3/DisplayCapability.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -42,4 +42,5 @@ enum DisplayCapability { AUTO_LOW_LATENCY_MODE = 5, SUSPEND = 6, DISPLAY_IDLE_TIMER = 7, MULTI_THREADED_PRESENT = 8, }
graphics/composer/aidl/android/hardware/graphics/composer3/DisplayCapability.aidl +16 −0 Original line number Diff line number Diff line Loading @@ -80,4 +80,20 @@ enum DisplayCapability { * IComposerCallback.onVsyncIdle. */ DISPLAY_IDLE_TIMER = 7, /** * Indicates that both the composer HAL implementation and the given display * support calling executeCommands concurrently from separate threads. * executeCommands for a particular display will never run concurrently to * any other executeCommands for the same display. In addition, the * CommandResultPayload must only reference displays included in the * DisplayCommands passed to executeCommands. Displays referenced from * separate threads must have minimal interference with one another. If a * HWC-managed display has this capability, SurfaceFlinger can run * executeCommands for this display concurrently with other displays with the * same capability. * @see IComposerClient.executeCommands * @see DisplayCommand.presentDisplay * @see DisplayCommand.validateDisplay */ MULTI_THREADED_PRESENT = 8, }
graphics/composer/aidl/vts/VtsHalGraphicsComposer3_TargetTest.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -2170,6 +2170,20 @@ TEST_P(GraphicsComposerAidlTest, GetDisplayConfigNoRepetitions) { } } TEST_P(GraphicsComposerAidlCommandTest, MultiThreadedPresent) { std::vector<VtsDisplay*> displays; for (auto& display : mDisplays) { if (hasDisplayCapability(display.getDisplayId(), DisplayCapability::MULTI_THREADED_PRESENT)) { displays.push_back(&display); } } if (displays.size() <= 1u) { return; } // TODO(b/251842321): Try to present on multiple threads. } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(GraphicsComposerAidlCommandTest); INSTANTIATE_TEST_SUITE_P( PerInstance, GraphicsComposerAidlCommandTest, Loading