diff options
author | 2021-12-01 17:33:12 -0500 | |
---|---|---|
committer | 2021-12-10 13:44:04 -0500 | |
commit | 2e1aa18498c9e7139c17849407d4743074632e9b (patch) | |
tree | 96c4b5b44b75e4aa3cf7edd9d44672f7c8e56e09 | |
parent | 6ddaa7ae121d42d87bf65b9ee2f6a11f4c1825f9 (diff) |
Switch from HIDL Composition type to AIDL
In preparation for adding a new Composition type which is only in AIDL.
This change is almost completely mechanical, and should have no impact
on behavior.
Bug: 193170859
Test: existing tests
Change-Id: I1f923fcc8d8e6dff388493a76e31d435638b5255
35 files changed, 424 insertions, 318 deletions
diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp index 64ddd687ad..e26c763f4e 100644 --- a/services/surfaceflinger/BufferLayer.cpp +++ b/services/surfaceflinger/BufferLayer.cpp @@ -292,14 +292,15 @@ void BufferLayer::preparePerFrameCompositionState() { // Sideband layers auto* compositionState = editCompositionState(); if (compositionState->sidebandStream.get() && !compositionState->sidebandStreamHasFrame) { - compositionState->compositionType = Hwc2::IComposerClient::Composition::SIDEBAND; + compositionState->compositionType = + aidl::android::hardware::graphics::composer3::Composition::SIDEBAND; return; } else { // Normal buffer layers compositionState->hdrMetadata = mBufferInfo.mHdrMetadata; compositionState->compositionType = mPotentialCursor - ? Hwc2::IComposerClient::Composition::CURSOR - : Hwc2::IComposerClient::Composition::DEVICE; + ? aidl::android::hardware::graphics::composer3::Composition::CURSOR + : aidl::android::hardware::graphics::composer3::Composition::DEVICE; } compositionState->buffer = mBufferInfo.mBuffer->getBuffer(); diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/LayerFECompositionState.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/LayerFECompositionState.h index 7e605f9d59..8bf7f8fbfa 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/LayerFECompositionState.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/LayerFECompositionState.h @@ -39,6 +39,8 @@ #include "DisplayHardware/Hal.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -156,7 +158,8 @@ struct LayerFECompositionState { */ // The type of composition for this layer - hal::Composition compositionType{hal::Composition::INVALID}; + aidl::android::hardware::graphics::composer3::Composition compositionType{ + aidl::android::hardware::graphics::composer3::Composition::INVALID}; // The buffer and related state sp<GraphicBuffer> buffer; diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h index ead941d1f9..a2824f5f9a 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/OutputLayer.h @@ -33,6 +33,8 @@ #include "LayerFE.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -112,7 +114,8 @@ public: virtual bool isHardwareCursor() const = 0; // Applies a HWC device requested composition type change - virtual void applyDeviceCompositionTypeChange(Hwc2::IComposerClient::Composition) = 0; + virtual void applyDeviceCompositionTypeChange( + aidl::android::hardware::graphics::composer3::Composition) = 0; // Prepares to apply any HWC device layer requests virtual void prepareForDeviceLayerRequests() = 0; diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h index c15249d297..0082dac978 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayer.h @@ -27,6 +27,8 @@ #include "DisplayHardware/DisplayIdentification.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + namespace android::compositionengine { struct LayerFECompositionState; @@ -50,7 +52,8 @@ public: HWC2::Layer* getHwcLayer() const override; bool requiresClientComposition() const override; bool isHardwareCursor() const override; - void applyDeviceCompositionTypeChange(Hwc2::IComposerClient::Composition) override; + void applyDeviceCompositionTypeChange( + aidl::android::hardware::graphics::composer3::Composition) override; void prepareForDeviceLayerRequests() override; void applyDeviceLayerRequest(Hwc2::IComposerClient::LayerRequest request) override; bool needsFiltering() const override; @@ -68,21 +71,24 @@ protected: private: Rect calculateInitialCrop() const; - void writeOutputDependentGeometryStateToHWC(HWC2::Layer*, Hwc2::IComposerClient::Composition, - uint32_t z); + void writeOutputDependentGeometryStateToHWC( + HWC2::Layer*, aidl::android::hardware::graphics::composer3::Composition, uint32_t z); void writeOutputIndependentGeometryStateToHWC(HWC2::Layer*, const LayerFECompositionState&, bool skipLayer); void writeOutputDependentPerFrameStateToHWC(HWC2::Layer*); void writeOutputIndependentPerFrameStateToHWC( HWC2::Layer*, const LayerFECompositionState&, - Hwc2::IComposerClient::Composition compositionType, bool skipLayer); + aidl::android::hardware::graphics::composer3::Composition compositionType, + bool skipLayer); void writeSolidColorStateToHWC(HWC2::Layer*, const LayerFECompositionState&); void writeSidebandStateToHWC(HWC2::Layer*, const LayerFECompositionState&); void writeBufferStateToHWC(HWC2::Layer*, const LayerFECompositionState&, bool skipLayer); - void writeCompositionTypeToHWC(HWC2::Layer*, Hwc2::IComposerClient::Composition, + void writeCompositionTypeToHWC(HWC2::Layer*, + aidl::android::hardware::graphics::composer3::Composition, bool isPeekingThrough, bool skipLayer); - void detectDisallowedCompositionTypeChange(Hwc2::IComposerClient::Composition from, - Hwc2::IComposerClient::Composition to) const; + void detectDisallowedCompositionTypeChange( + aidl::android::hardware::graphics::composer3::Composition from, + aidl::android::hardware::graphics::composer3::Composition to) const; bool isClientCompositionForced(bool isPeekingThrough) const; }; diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h index 627b80bcc2..49cb91291f 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/OutputLayerCompositionState.h @@ -35,6 +35,8 @@ #include "DisplayHardware/ComposerHal.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -123,8 +125,8 @@ struct OutputLayerCompositionState { std::shared_ptr<HWC2::Layer> hwcLayer; // The most recently set HWC composition type for this layer - Hwc2::IComposerClient::Composition hwcCompositionType{ - Hwc2::IComposerClient::Composition::INVALID}; + aidl::android::hardware::graphics::composer3::Composition hwcCompositionType{ + aidl::android::hardware::graphics::composer3::Composition::INVALID}; // The buffer cache for this layer. This is used to lower the // cost of sending reused buffers to the HWC. diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h index 7397c19837..14324de7ce 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/LayerState.h @@ -28,6 +28,8 @@ #include "DisplayHardware/Hal.h" #include "math/HashCombine.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + namespace std { template <typename T> struct hash<android::sp<T>> { @@ -232,7 +234,7 @@ public: return mBackgroundBlurRadius.get() > 0 || !mBlurRegions.get().empty(); } int32_t getBackgroundBlurRadius() const { return mBackgroundBlurRadius.get(); } - hardware::graphics::composer::hal::Composition getCompositionType() const { + aidl::android::hardware::graphics::composer3::Composition getCompositionType() const { return mCompositionType.get(); } @@ -370,17 +372,18 @@ private: OutputLayerState<mat4, LayerStateField::ColorTransform> mColorTransform; - using CompositionTypeState = OutputLayerState<hardware::graphics::composer::hal::Composition, - LayerStateField::CompositionType>; - CompositionTypeState - mCompositionType{[](auto layer) { - return layer->getState().forceClientComposition - ? hardware::graphics::composer::hal::Composition::CLIENT - : layer->getLayerFE() - .getCompositionState() - ->compositionType; - }, - CompositionTypeState::getHalToStrings()}; + using CompositionTypeState = + OutputLayerState<aidl::android::hardware::graphics::composer3::Composition, + LayerStateField::CompositionType>; + CompositionTypeState mCompositionType{[](auto layer) { + return layer->getState().forceClientComposition + ? aidl::android::hardware::graphics:: + composer3::Composition::CLIENT + : layer->getLayerFE() + .getCompositionState() + ->compositionType; + }, + CompositionTypeState::getHalToStrings()}; OutputLayerState<void*, LayerStateField::SidebandStream> mSidebandStream{[](auto layer) { diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Predictor.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Predictor.h index fe486d3327..ef1560e23d 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Predictor.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/impl/planner/Predictor.h @@ -109,7 +109,7 @@ public: static std::optional<Plan> fromString(const std::string&); void reset() { mLayerTypes.clear(); } - void addLayerType(hardware::graphics::composer::hal::Composition type) { + void addLayerType(aidl::android::hardware::graphics::composer3::Composition type) { mLayerTypes.emplace_back(type); } @@ -125,7 +125,7 @@ public: } private: - std::vector<hardware::graphics::composer::hal::Composition> mLayerTypes; + std::vector<aidl::android::hardware::graphics::composer3::Composition> mLayerTypes; }; } // namespace android::compositionengine::impl::planner diff --git a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/OutputLayer.h b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/OutputLayer.h index 358ed5a0b9..a6cb811468 100644 --- a/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/OutputLayer.h +++ b/services/surfaceflinger/CompositionEngine/include/compositionengine/mock/OutputLayer.h @@ -46,7 +46,8 @@ public: MOCK_CONST_METHOD0(getHwcLayer, HWC2::Layer*()); MOCK_CONST_METHOD0(requiresClientComposition, bool()); MOCK_CONST_METHOD0(isHardwareCursor, bool()); - MOCK_METHOD1(applyDeviceCompositionTypeChange, void(Hwc2::IComposerClient::Composition)); + MOCK_METHOD1(applyDeviceCompositionTypeChange, + void(aidl::android::hardware::graphics::composer3::Composition)); MOCK_METHOD0(prepareForDeviceLayerRequests, void()); MOCK_METHOD1(applyDeviceLayerRequest, void(Hwc2::IComposerClient::LayerRequest request)); MOCK_CONST_METHOD0(needsFiltering, bool()); diff --git a/services/surfaceflinger/CompositionEngine/src/Display.cpp b/services/surfaceflinger/CompositionEngine/src/Display.cpp index 4603e6bc3e..35713192e0 100644 --- a/services/surfaceflinger/CompositionEngine/src/Display.cpp +++ b/services/surfaceflinger/CompositionEngine/src/Display.cpp @@ -282,7 +282,8 @@ void Display::applyChangedTypesToLayers(const ChangedTypes& changedTypes) { if (auto it = changedTypes.find(hwcLayer); it != changedTypes.end()) { layer->applyDeviceCompositionTypeChange( - static_cast<Hwc2::IComposerClient::Composition>(it->second)); + static_cast<aidl::android::hardware::graphics::composer3::Composition>( + it->second)); } } } diff --git a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp index b010d9f965..e6bcec869e 100644 --- a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp +++ b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp @@ -37,6 +37,8 @@ // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion" +using aidl::android::hardware::graphics::composer3::Composition; + namespace android::compositionengine { OutputLayer::~OutputLayer() = default; @@ -358,8 +360,8 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer, uint32_t auto requestedCompositionType = outputIndependentState->compositionType; - if (requestedCompositionType == hal::Composition::SOLID_COLOR && state.overrideInfo.buffer) { - requestedCompositionType = hal::Composition::DEVICE; + if (requestedCompositionType == Composition::SOLID_COLOR && state.overrideInfo.buffer) { + requestedCompositionType = Composition::DEVICE; } // TODO(b/181172795): We now update geometry for all flattened layers. We should update it @@ -380,7 +382,7 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer, uint32_t writeCompositionTypeToHWC(hwcLayer.get(), requestedCompositionType, isPeekingThrough, skipLayer); - if (requestedCompositionType == hal::Composition::SOLID_COLOR) { + if (requestedCompositionType == Composition::SOLID_COLOR) { writeSolidColorStateToHWC(hwcLayer.get(), *outputIndependentState); } @@ -389,7 +391,7 @@ void OutputLayer::writeStateToHWC(bool includeGeometry, bool skipLayer, uint32_t } void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer, - hal::Composition requestedCompositionType, + Composition requestedCompositionType, uint32_t z) { const auto& outputDependentState = getState(); @@ -423,7 +425,7 @@ void OutputLayer::writeOutputDependentGeometryStateToHWC(HWC2::Layer* hwcLayer, } // Solid-color layers and overridden buffers should always use an identity transform. - const auto bufferTransform = (requestedCompositionType != hal::Composition::SOLID_COLOR && + const auto bufferTransform = (requestedCompositionType != Composition::SOLID_COLOR && getState().overrideInfo.buffer == nullptr) ? outputDependentState.bufferTransform : static_cast<hal::Transform>(0); @@ -504,7 +506,7 @@ void OutputLayer::writeOutputDependentPerFrameStateToHWC(HWC2::Layer* hwcLayer) void OutputLayer::writeOutputIndependentPerFrameStateToHWC( HWC2::Layer* hwcLayer, const LayerFECompositionState& outputIndependentState, - hal::Composition compositionType, bool skipLayer) { + Composition compositionType, bool skipLayer) { switch (auto error = hwcLayer->setColorTransform(outputIndependentState.colorTransform)) { case hal::Error::NONE: break; @@ -529,18 +531,18 @@ void OutputLayer::writeOutputIndependentPerFrameStateToHWC( // Content-specific per-frame state switch (compositionType) { - case hal::Composition::SOLID_COLOR: + case Composition::SOLID_COLOR: // For compatibility, should be written AFTER the composition type. break; - case hal::Composition::SIDEBAND: + case Composition::SIDEBAND: writeSidebandStateToHWC(hwcLayer, outputIndependentState); break; - case hal::Composition::CURSOR: - case hal::Composition::DEVICE: + case Composition::CURSOR: + case Composition::DEVICE: writeBufferStateToHWC(hwcLayer, outputIndependentState, skipLayer); break; - case hal::Composition::INVALID: - case hal::Composition::CLIENT: + case Composition::INVALID: + case Composition::CLIENT: // Ignored break; } @@ -606,13 +608,13 @@ void OutputLayer::writeBufferStateToHWC(HWC2::Layer* hwcLayer, } void OutputLayer::writeCompositionTypeToHWC(HWC2::Layer* hwcLayer, - hal::Composition requestedCompositionType, + Composition requestedCompositionType, bool isPeekingThrough, bool skipLayer) { auto& outputDependentState = editState(); if (isClientCompositionForced(isPeekingThrough)) { // If we are forcing client composition, we need to tell the HWC - requestedCompositionType = hal::Composition::CLIENT; + requestedCompositionType = Composition::CLIENT; } // Set the requested composition type with the HWC whenever it changes @@ -625,7 +627,7 @@ void OutputLayer::writeCompositionTypeToHWC(HWC2::Layer* hwcLayer, if (auto error = hwcLayer->setCompositionType(requestedCompositionType); error != hal::Error::NONE) { ALOGE("[%s] Failed to set composition type %s: %s (%d)", getLayerFE().getDebugName(), - toString(requestedCompositionType).c_str(), to_string(error).c_str(), + to_string(requestedCompositionType).c_str(), to_string(error).c_str(), static_cast<int32_t>(error)); } } @@ -664,38 +666,37 @@ HWC2::Layer* OutputLayer::getHwcLayer() const { bool OutputLayer::requiresClientComposition() const { const auto& state = getState(); - return !state.hwc || state.hwc->hwcCompositionType == hal::Composition::CLIENT; + return !state.hwc || state.hwc->hwcCompositionType == Composition::CLIENT; } bool OutputLayer::isHardwareCursor() const { const auto& state = getState(); - return state.hwc && state.hwc->hwcCompositionType == hal::Composition::CURSOR; + return state.hwc && state.hwc->hwcCompositionType == Composition::CURSOR; } -void OutputLayer::detectDisallowedCompositionTypeChange(hal::Composition from, - hal::Composition to) const { +void OutputLayer::detectDisallowedCompositionTypeChange(Composition from, Composition to) const { bool result = false; switch (from) { - case hal::Composition::INVALID: - case hal::Composition::CLIENT: + case Composition::INVALID: + case Composition::CLIENT: result = false; break; - case hal::Composition::DEVICE: - case hal::Composition::SOLID_COLOR: - result = (to == hal::Composition::CLIENT); + case Composition::DEVICE: + case Composition::SOLID_COLOR: + result = (to == Composition::CLIENT); break; - case hal::Composition::CURSOR: - case hal::Composition::SIDEBAND: - result = (to == hal::Composition::CLIENT || to == hal::Composition::DEVICE); + case Composition::CURSOR: + case Composition::SIDEBAND: + result = (to == Composition::CLIENT || to == Composition::DEVICE); break; } if (!result) { ALOGE("[%s] Invalid device requested composition type change: %s (%d) --> %s (%d)", - getLayerFE().getDebugName(), toString(from).c_str(), static_cast<int>(from), - toString(to).c_str(), static_cast<int>(to)); + getLayerFE().getDebugName(), to_string(from).c_str(), static_cast<int>(from), + to_string(to).c_str(), static_cast<int>(to)); } } @@ -704,7 +705,7 @@ bool OutputLayer::isClientCompositionForced(bool isPeekingThrough) const { (!isPeekingThrough && getLayerFE().hasRoundedCorners()); } -void OutputLayer::applyDeviceCompositionTypeChange(hal::Composition compositionType) { +void OutputLayer::applyDeviceCompositionTypeChange(Composition compositionType) { auto& state = editState(); LOG_FATAL_IF(!state.hwc); auto& hwcState = *state.hwc; diff --git a/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp b/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp index c14effccc3..0918510eef 100644 --- a/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp +++ b/services/surfaceflinger/CompositionEngine/src/planner/Flattener.cpp @@ -211,7 +211,8 @@ size_t Flattener::calculateDisplayCost(const std::vector<const LayerState*>& lay displayCost += static_cast<size_t>(layer->getDisplayFrame().width() * layer->getDisplayFrame().height()); - hasClientComposition |= layer->getCompositionType() == hal::Composition::CLIENT; + hasClientComposition |= layer->getCompositionType() == + aidl::android::hardware::graphics::composer3::Composition::CLIENT; } if (hasClientComposition) { diff --git a/services/surfaceflinger/CompositionEngine/src/planner/LayerState.cpp b/services/surfaceflinger/CompositionEngine/src/planner/LayerState.cpp index 2532e3df5d..c79ca0d959 100644 --- a/services/surfaceflinger/CompositionEngine/src/planner/LayerState.cpp +++ b/services/surfaceflinger/CompositionEngine/src/planner/LayerState.cpp @@ -160,7 +160,8 @@ bool operator==(const LayerState& lhs, const LayerState& rhs) { lhs.mColorTransform == rhs.mColorTransform && lhs.mCompositionType == rhs.mCompositionType && lhs.mSidebandStream == rhs.mSidebandStream && lhs.mBuffer == rhs.mBuffer && - (lhs.mCompositionType.get() != hal::Composition::SOLID_COLOR || + (lhs.mCompositionType.get() != + aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR || lhs.mSolidColor == rhs.mSolidColor); } diff --git a/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp b/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp index f5b1cee469..74d27015d7 100644 --- a/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp +++ b/services/surfaceflinger/CompositionEngine/src/planner/Planner.cpp @@ -193,7 +193,7 @@ void Planner::reportFinalPlan( finalPlan.addLayerType( forcedOrRequestedClient - ? hardware::graphics::composer::hal::Composition::CLIENT + ? aidl::android::hardware::graphics::composer3::Composition::CLIENT : layer->getLayerFE().getCompositionState()->compositionType); } diff --git a/services/surfaceflinger/CompositionEngine/src/planner/Predictor.cpp b/services/surfaceflinger/CompositionEngine/src/planner/Predictor.cpp index 8226ef7b4c..074673e550 100644 --- a/services/surfaceflinger/CompositionEngine/src/planner/Predictor.cpp +++ b/services/surfaceflinger/CompositionEngine/src/planner/Predictor.cpp @@ -39,8 +39,10 @@ std::optional<LayerStack::ApproximateMatch> LayerStack::getApproximateMatch( // Skip layers where both are client-composited, since that doesn't change the // composition plan - if (mLayers[i].getCompositionType() == hal::Composition::CLIENT && - other[i]->getCompositionType() == hal::Composition::CLIENT) { + if (mLayers[i].getCompositionType() == + aidl::android::hardware::graphics::composer3::Composition::CLIENT && + other[i]->getCompositionType() == + aidl::android::hardware::graphics::composer3::Composition::CLIENT) { continue; } @@ -89,22 +91,28 @@ std::optional<Plan> Plan::fromString(const std::string& string) { for (char c : string) { switch (c) { case 'C': - plan.addLayerType(hal::Composition::CLIENT); + plan.addLayerType( + aidl::android::hardware::graphics::composer3::Composition::CLIENT); continue; case 'U': - plan.addLayerType(hal::Composition::CURSOR); + plan.addLayerType( + aidl::android::hardware::graphics::composer3::Composition::CURSOR); continue; case 'D': - plan.addLayerType(hal::Composition::DEVICE); + plan.addLayerType( + aidl::android::hardware::graphics::composer3::Composition::DEVICE); continue; case 'I': - plan.addLayerType(hal::Composition::INVALID); + plan.addLayerType( + aidl::android::hardware::graphics::composer3::Composition::INVALID); continue; case 'B': - plan.addLayerType(hal::Composition::SIDEBAND); + plan.addLayerType( + aidl::android::hardware::graphics::composer3::Composition::SIDEBAND); continue; case 'S': - plan.addLayerType(hal::Composition::SOLID_COLOR); + plan.addLayerType( + aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR); continue; default: return std::nullopt; @@ -117,22 +125,22 @@ std::string to_string(const Plan& plan) { std::string result; for (auto type : plan.mLayerTypes) { switch (type) { - case hal::Composition::CLIENT: + case aidl::android::hardware::graphics::composer3::Composition::CLIENT: result.append("C"); break; - case hal::Composition::CURSOR: + case aidl::android::hardware::graphics::composer3::Composition::CURSOR: result.append("U"); break; - case hal::Composition::DEVICE: + case aidl::android::hardware::graphics::composer3::Composition::DEVICE: result.append("D"); break; - case hal::Composition::INVALID: + case aidl::android::hardware::graphics::composer3::Composition::INVALID: result.append("I"); break; - case hal::Composition::SIDEBAND: + case aidl::android::hardware::graphics::composer3::Composition::SIDEBAND: result.append("B"); break; - case hal::Composition::SOLID_COLOR: + case aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR: result.append("S"); break; } diff --git a/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp b/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp index 568efce8b3..3bdb2c03d1 100644 --- a/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/DisplayTest.cpp @@ -38,6 +38,10 @@ #include "MockHWComposer.h" #include "MockPowerAdvisor.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + +using aidl::android::hardware::graphics::composer3::Composition; + namespace android::compositionengine { namespace { @@ -592,7 +596,7 @@ TEST_F(DisplayChooseCompositionStrategyTest, normalOperation) { TEST_F(DisplayChooseCompositionStrategyTest, normalOperationWithChanges) { android::HWComposer::DeviceRequestedChanges changes{ - {{nullptr, hal::Composition::CLIENT}}, + {{nullptr, Composition::CLIENT}}, hal::DisplayRequest::FLIP_CLIENT_TARGET, {{nullptr, hal::LayerRequest::CLEAR_CLIENT_TARGET}}, {hal::PixelFormat::RGBA_8888, hal::Dataspace::UNKNOWN}, @@ -700,17 +704,15 @@ TEST_F(DisplayApplyChangedTypesToLayersTest, takesEarlyOutIfNoChangedLayers) { } TEST_F(DisplayApplyChangedTypesToLayersTest, appliesChanges) { - EXPECT_CALL(*mLayer1.outputLayer, - applyDeviceCompositionTypeChange(Hwc2::IComposerClient::Composition::CLIENT)) + EXPECT_CALL(*mLayer1.outputLayer, applyDeviceCompositionTypeChange(Composition::CLIENT)) .Times(1); - EXPECT_CALL(*mLayer2.outputLayer, - applyDeviceCompositionTypeChange(Hwc2::IComposerClient::Composition::DEVICE)) + EXPECT_CALL(*mLayer2.outputLayer, applyDeviceCompositionTypeChange(Composition::DEVICE)) .Times(1); mDisplay->applyChangedTypesToLayers(impl::Display::ChangedTypes{ - {&mLayer1.hwc2Layer, hal::Composition::CLIENT}, - {&mLayer2.hwc2Layer, hal::Composition::DEVICE}, - {&hwc2LayerUnknown, hal::Composition::SOLID_COLOR}, + {&mLayer1.hwc2Layer, Composition::CLIENT}, + {&mLayer2.hwc2Layer, Composition::DEVICE}, + {&hwc2LayerUnknown, Composition::SOLID_COLOR}, }); } diff --git a/services/surfaceflinger/CompositionEngine/tests/MockHWC2.h b/services/surfaceflinger/CompositionEngine/tests/MockHWC2.h index 9e08f9eddc..ff680533ea 100644 --- a/services/surfaceflinger/CompositionEngine/tests/MockHWC2.h +++ b/services/surfaceflinger/CompositionEngine/tests/MockHWC2.h @@ -32,6 +32,8 @@ #include <ui/GraphicTypes.h> #include "DisplayHardware/HWC2.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -57,7 +59,8 @@ public: MOCK_METHOD1(setSurfaceDamage, Error(const android::Region&)); MOCK_METHOD1(setBlendMode, Error(hal::BlendMode)); MOCK_METHOD1(setColor, Error(hal::Color)); - MOCK_METHOD1(setCompositionType, Error(hal::Composition)); + MOCK_METHOD1(setCompositionType, + Error(aidl::android::hardware::graphics::composer3::Composition)); MOCK_METHOD1(setDataspace, Error(android::ui::Dataspace)); MOCK_METHOD2(setPerFrameMetadata, Error(const int32_t, const android::HdrMetadata&)); MOCK_METHOD1(setDisplayFrame, Error(const android::Rect&)); diff --git a/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp b/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp index 207c31e756..ad7976f64c 100644 --- a/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/OutputLayerTest.cpp @@ -30,6 +30,10 @@ #include "MockHWComposer.h" #include "RegionMatcher.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + +using aidl::android::hardware::graphics::composer3::Composition; + namespace android::compositionengine { namespace { @@ -851,7 +855,7 @@ struct OutputLayerWriteStateToHWCTest : public OutputLayerTest { EXPECT_CALL(*mHwcLayer, setSurfaceDamage(RegionEq(surfaceDamage))).WillOnce(Return(kError)); } - void expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition compositionType) { + void expectSetCompositionTypeCall(Composition compositionType) { EXPECT_CALL(*mHwcLayer, setCompositionType(compositionType)).WillOnce(Return(kError)); } @@ -975,7 +979,7 @@ TEST_F(OutputLayerTest, displayInstallOrientationBufferTransformSetTo90) { } TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForSolidColor) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + mLayerFEState.compositionType = Composition::SOLID_COLOR; expectPerFrameCommonCalls(); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); @@ -984,7 +988,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForSolidColor) { // check this in this test only by setting up an testing::InSeqeuence // instance before setting up the two expectations. InSequence s; - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::SOLID_COLOR); + expectSetCompositionTypeCall(Composition::SOLID_COLOR); expectSetColorCall(); mOutputLayer.writeStateToHWC(/*includeGeometry*/ false, /*skipLayer*/ false, 0, @@ -992,11 +996,11 @@ TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForSolidColor) { } TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForSideband) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SIDEBAND; + mLayerFEState.compositionType = Composition::SIDEBAND; expectPerFrameCommonCalls(); expectSetSidebandHandleCall(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::SIDEBAND); + expectSetCompositionTypeCall(Composition::SIDEBAND); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); @@ -1005,11 +1009,11 @@ TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForSideband) { } TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForCursor) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::CURSOR; + mLayerFEState.compositionType = Composition::CURSOR; expectPerFrameCommonCalls(); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::CURSOR); + expectSetCompositionTypeCall(Composition::CURSOR); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); @@ -1018,11 +1022,11 @@ TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForCursor) { } TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForDevice) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; expectPerFrameCommonCalls(); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); @@ -1031,10 +1035,9 @@ TEST_F(OutputLayerWriteStateToHWCTest, canSetPerFrameStateForDevice) { } TEST_F(OutputLayerWriteStateToHWCTest, compositionTypeIsNotSetIfUnchanged) { - (*mOutputLayer.editState().hwc).hwcCompositionType = - Hwc2::IComposerClient::Composition::SOLID_COLOR; + (*mOutputLayer.editState().hwc).hwcCompositionType = Composition::SOLID_COLOR; - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + mLayerFEState.compositionType = Composition::SOLID_COLOR; expectPerFrameCommonCalls(); expectSetColorCall(); @@ -1047,11 +1050,11 @@ TEST_F(OutputLayerWriteStateToHWCTest, compositionTypeIsNotSetIfUnchanged) { } TEST_F(OutputLayerWriteStateToHWCTest, compositionTypeIsSetToClientIfColorTransformNotSupported) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + mLayerFEState.compositionType = Composition::SOLID_COLOR; expectPerFrameCommonCalls(SimulateUnsupported::ColorTransform); expectSetColorCall(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::CLIENT); + expectSetCompositionTypeCall(Composition::CLIENT); mOutputLayer.writeStateToHWC(/*includeGeometry*/ false, /*skipLayer*/ false, 0, /*zIsOverridden*/ false, /*isPeekingThrough*/ false); @@ -1060,25 +1063,25 @@ TEST_F(OutputLayerWriteStateToHWCTest, compositionTypeIsSetToClientIfColorTransf TEST_F(OutputLayerWriteStateToHWCTest, compositionTypeIsSetToClientIfClientCompositionForced) { mOutputLayer.editState().forceClientComposition = true; - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + mLayerFEState.compositionType = Composition::SOLID_COLOR; expectPerFrameCommonCalls(); expectSetColorCall(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::CLIENT); + expectSetCompositionTypeCall(Composition::CLIENT); mOutputLayer.writeStateToHWC(/*includeGeometry*/ false, /*skipLayer*/ false, 0, /*zIsOverridden*/ false, /*isPeekingThrough*/ false); } TEST_F(OutputLayerWriteStateToHWCTest, allStateIncludesMetadataIfPresent) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; includeGenericLayerMetadataInState(); expectGeometryCommonCalls(); expectPerFrameCommonCalls(); expectSetHdrMetadataAndBufferCalls(); expectGenericLayerMetadataCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); @@ -1087,12 +1090,12 @@ TEST_F(OutputLayerWriteStateToHWCTest, allStateIncludesMetadataIfPresent) { } TEST_F(OutputLayerWriteStateToHWCTest, perFrameStateDoesNotIncludeMetadataIfPresent) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; includeGenericLayerMetadataInState(); expectPerFrameCommonCalls(); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); @@ -1101,7 +1104,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, perFrameStateDoesNotIncludeMetadataIfPres } TEST_F(OutputLayerWriteStateToHWCTest, overriddenSkipLayerDoesNotSendBuffer) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; includeOverrideInfo(); expectGeometryCommonCalls(kOverrideDisplayFrame, kOverrideSourceCrop, kOverrideBufferTransform, @@ -1109,7 +1112,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, overriddenSkipLayerDoesNotSendBuffer) { expectPerFrameCommonCalls(SimulateUnsupported::None, kOverrideDataspace, kOverrideVisibleRegion, kOverrideSurfaceDamage, kDisplayBrightnessNits); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ true, 0, @@ -1117,7 +1120,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, overriddenSkipLayerDoesNotSendBuffer) { } TEST_F(OutputLayerWriteStateToHWCTest, overriddenSkipLayerForSolidColorDoesNotSendBuffer) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + mLayerFEState.compositionType = Composition::SOLID_COLOR; includeOverrideInfo(); expectGeometryCommonCalls(kOverrideDisplayFrame, kOverrideSourceCrop, kOverrideBufferTransform, @@ -1125,7 +1128,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, overriddenSkipLayerForSolidColorDoesNotSe expectPerFrameCommonCalls(SimulateUnsupported::None, kOverrideDataspace, kOverrideVisibleRegion, kOverrideSurfaceDamage, kDisplayBrightnessNits); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ true, 0, @@ -1133,7 +1136,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, overriddenSkipLayerForSolidColorDoesNotSe } TEST_F(OutputLayerWriteStateToHWCTest, includesOverrideInfoIfPresent) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; includeOverrideInfo(); expectGeometryCommonCalls(kOverrideDisplayFrame, kOverrideSourceCrop, kOverrideBufferTransform, @@ -1141,7 +1144,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, includesOverrideInfoIfPresent) { expectPerFrameCommonCalls(SimulateUnsupported::None, kOverrideDataspace, kOverrideVisibleRegion, kOverrideSurfaceDamage, kDisplayBrightnessNits); expectSetHdrMetadataAndBufferCalls(kOverrideHwcSlot, kOverrideBuffer, kOverrideFence); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, @@ -1149,7 +1152,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, includesOverrideInfoIfPresent) { } TEST_F(OutputLayerWriteStateToHWCTest, includesOverrideInfoForSolidColorIfPresent) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + mLayerFEState.compositionType = Composition::SOLID_COLOR; includeOverrideInfo(); expectGeometryCommonCalls(kOverrideDisplayFrame, kOverrideSourceCrop, kOverrideBufferTransform, @@ -1157,7 +1160,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, includesOverrideInfoForSolidColorIfPresen expectPerFrameCommonCalls(SimulateUnsupported::None, kOverrideDataspace, kOverrideVisibleRegion, kOverrideSurfaceDamage, kDisplayBrightnessNits); expectSetHdrMetadataAndBufferCalls(kOverrideHwcSlot, kOverrideBuffer, kOverrideFence); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, @@ -1165,14 +1168,14 @@ TEST_F(OutputLayerWriteStateToHWCTest, includesOverrideInfoForSolidColorIfPresen } TEST_F(OutputLayerWriteStateToHWCTest, previousOverriddenLayerSendsSurfaceDamage) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; mOutputLayer.editState().hwc->stateOverridden = true; expectGeometryCommonCalls(); expectPerFrameCommonCalls(SimulateUnsupported::None, kDataspace, kOutputSpaceVisibleRegion, Region::INVALID_REGION); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, @@ -1180,16 +1183,16 @@ TEST_F(OutputLayerWriteStateToHWCTest, previousOverriddenLayerSendsSurfaceDamage } TEST_F(OutputLayerWriteStateToHWCTest, previousSkipLayerSendsUpdatedDeviceCompositionInfo) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; mOutputLayer.editState().hwc->stateOverridden = true; mOutputLayer.editState().hwc->layerSkipped = true; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::DEVICE; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::DEVICE; expectGeometryCommonCalls(); expectPerFrameCommonCalls(SimulateUnsupported::None, kDataspace, kOutputSpaceVisibleRegion, Region::INVALID_REGION); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, @@ -1197,17 +1200,17 @@ TEST_F(OutputLayerWriteStateToHWCTest, previousSkipLayerSendsUpdatedDeviceCompos } TEST_F(OutputLayerWriteStateToHWCTest, previousSkipLayerSendsUpdatedClientCompositionInfo) { - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; mOutputLayer.editState().forceClientComposition = true; mOutputLayer.editState().hwc->stateOverridden = true; mOutputLayer.editState().hwc->layerSkipped = true; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::CLIENT; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::CLIENT; expectGeometryCommonCalls(); expectPerFrameCommonCalls(SimulateUnsupported::None, kDataspace, kOutputSpaceVisibleRegion, Region::INVALID_REGION); expectSetHdrMetadataAndBufferCalls(); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::CLIENT); + expectSetCompositionTypeCall(Composition::CLIENT); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(false)); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, @@ -1253,7 +1256,7 @@ TEST_F(OutputLayerWriteStateToHWCTest, roundedCornersForceClientComposition) { expectGeometryCommonCalls(); expectPerFrameCommonCalls(); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillOnce(Return(true)); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::CLIENT); + expectSetCompositionTypeCall(Composition::CLIENT); mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, /*zIsOverridden*/ false, /*isPeekingThrough*/ @@ -1265,14 +1268,13 @@ TEST_F(OutputLayerWriteStateToHWCTest, roundedCornersPeekingThroughAllowsDeviceC expectPerFrameCommonCalls(); expectSetHdrMetadataAndBufferCalls(); EXPECT_CALL(*mLayerFE, hasRoundedCorners()).WillRepeatedly(Return(true)); - expectSetCompositionTypeCall(Hwc2::IComposerClient::Composition::DEVICE); + expectSetCompositionTypeCall(Composition::DEVICE); - mLayerFEState.compositionType = Hwc2::IComposerClient::Composition::DEVICE; + mLayerFEState.compositionType = Composition::DEVICE; mOutputLayer.writeStateToHWC(/*includeGeometry*/ true, /*skipLayer*/ false, 0, /*zIsOverridden*/ false, /*isPeekingThrough*/ true); - EXPECT_EQ(Hwc2::IComposerClient::Composition::DEVICE, - mOutputLayer.getState().hwc->hwcCompositionType); + EXPECT_EQ(Composition::DEVICE, mOutputLayer.getState().hwc->hwcCompositionType); } /* @@ -1371,14 +1373,14 @@ TEST_F(OutputLayerTest, requiresClientCompositionReturnsTrueIfNoHWC2State) { TEST_F(OutputLayerTest, requiresClientCompositionReturnsTrueIfSetToClientComposition) { mOutputLayer.editState().hwc = impl::OutputLayerCompositionState::Hwc{nullptr}; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::CLIENT; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::CLIENT; EXPECT_TRUE(mOutputLayer.requiresClientComposition()); } TEST_F(OutputLayerTest, requiresClientCompositionReturnsFalseIfSetToDeviceComposition) { mOutputLayer.editState().hwc = impl::OutputLayerCompositionState::Hwc{nullptr}; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::DEVICE; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::DEVICE; EXPECT_FALSE(mOutputLayer.requiresClientComposition()); } @@ -1395,14 +1397,14 @@ TEST_F(OutputLayerTest, isHardwareCursorReturnsFalseIfNoHWC2State) { TEST_F(OutputLayerTest, isHardwareCursorReturnsTrueIfSetToCursorComposition) { mOutputLayer.editState().hwc = impl::OutputLayerCompositionState::Hwc{nullptr}; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::CURSOR; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::CURSOR; EXPECT_TRUE(mOutputLayer.isHardwareCursor()); } TEST_F(OutputLayerTest, isHardwareCursorReturnsFalseIfSetToDeviceComposition) { mOutputLayer.editState().hwc = impl::OutputLayerCompositionState::Hwc{nullptr}; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::DEVICE; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::DEVICE; EXPECT_FALSE(mOutputLayer.isHardwareCursor()); } @@ -1413,13 +1415,12 @@ TEST_F(OutputLayerTest, isHardwareCursorReturnsFalseIfSetToDeviceComposition) { TEST_F(OutputLayerTest, applyDeviceCompositionTypeChangeSetsNewType) { mOutputLayer.editState().hwc = impl::OutputLayerCompositionState::Hwc{nullptr}; - mOutputLayer.editState().hwc->hwcCompositionType = Hwc2::IComposerClient::Composition::DEVICE; + mOutputLayer.editState().hwc->hwcCompositionType = Composition::DEVICE; - mOutputLayer.applyDeviceCompositionTypeChange(Hwc2::IComposerClient::Composition::CLIENT); + mOutputLayer.applyDeviceCompositionTypeChange(Composition::CLIENT); ASSERT_TRUE(mOutputLayer.getState().hwc); - EXPECT_EQ(Hwc2::IComposerClient::Composition::CLIENT, - mOutputLayer.getState().hwc->hwcCompositionType); + EXPECT_EQ(Composition::CLIENT, mOutputLayer.getState().hwc->hwcCompositionType); } /* diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp index 9ad3ab4057..84b3fc5698 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/LayerStateTest.cpp @@ -27,6 +27,10 @@ #include "android/hardware_buffer.h" #include "compositionengine/LayerFECompositionState.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + +using aidl::android::hardware::graphics::composer3::Composition; + namespace android::compositionengine::impl::planner { namespace { @@ -277,33 +281,28 @@ TEST_F(LayerStateTest, compareDisplayFrame) { TEST_F(LayerStateTest, getCompositionType) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.compositionType = - hardware::graphics::composer::hal::Composition::DEVICE; + layerFECompositionState.compositionType = Composition::DEVICE; setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); - EXPECT_EQ(hardware::graphics::composer::hal::Composition::DEVICE, - mLayerState->getCompositionType()); + EXPECT_EQ(Composition::DEVICE, mLayerState->getCompositionType()); } TEST_F(LayerStateTest, getCompositionType_forcedClient) { OutputLayerCompositionState outputLayerCompositionState; outputLayerCompositionState.forceClientComposition = true; LayerFECompositionState layerFECompositionState; - layerFECompositionState.compositionType = - hardware::graphics::composer::hal::Composition::DEVICE; + layerFECompositionState.compositionType = Composition::DEVICE; setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); - EXPECT_EQ(hardware::graphics::composer::hal::Composition::CLIENT, - mLayerState->getCompositionType()); + EXPECT_EQ(Composition::CLIENT, mLayerState->getCompositionType()); } TEST_F(LayerStateTest, updateCompositionType) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.compositionType = - hardware::graphics::composer::hal::Composition::DEVICE; + layerFECompositionState.compositionType = Composition::DEVICE; setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); @@ -311,29 +310,25 @@ TEST_F(LayerStateTest, updateCompositionType) { mock::OutputLayer newOutputLayer; mock::LayerFE newLayerFE; LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.compositionType = - hardware::graphics::composer::hal::Composition::SOLID_COLOR; + layerFECompositionStateTwo.compositionType = Composition::SOLID_COLOR; setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer); - EXPECT_EQ(hardware::graphics::composer::hal::Composition::SOLID_COLOR, - mLayerState->getCompositionType()); + EXPECT_EQ(Composition::SOLID_COLOR, mLayerState->getCompositionType()); EXPECT_EQ(Flags<LayerStateField>(LayerStateField::CompositionType), updates); } TEST_F(LayerStateTest, compareCompositionType) { OutputLayerCompositionState outputLayerCompositionState; LayerFECompositionState layerFECompositionState; - layerFECompositionState.compositionType = - hardware::graphics::composer::hal::Composition::DEVICE; + layerFECompositionState.compositionType = Composition::DEVICE; setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState, layerFECompositionState); mLayerState = std::make_unique<LayerState>(&mOutputLayer); mock::OutputLayer newOutputLayer; mock::LayerFE newLayerFE; LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.compositionType = - hardware::graphics::composer::hal::Composition::SOLID_COLOR; + layerFECompositionStateTwo.compositionType = Composition::SOLID_COLOR; setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionState, layerFECompositionStateTwo); auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer); diff --git a/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp b/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp index 1492707ad2..6038268a8c 100644 --- a/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp +++ b/services/surfaceflinger/CompositionEngine/tests/planner/PredictorTest.cpp @@ -24,6 +24,10 @@ #include <gtest/gtest.h> #include <log/log.h> +#include <aidl/android/hardware/graphics/composer3/Composition.h> + +using aidl::android::hardware::graphics::composer3::Composition; + namespace android::compositionengine::impl::planner { namespace { @@ -103,7 +107,7 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchDifferentCompositionTypes mock::LayerFE layerFEOne; OutputLayerCompositionState outputLayerCompositionStateOne; LayerFECompositionState layerFECompositionStateOne; - layerFECompositionStateOne.compositionType = hal::Composition::DEVICE; + layerFECompositionStateOne.compositionType = Composition::DEVICE; setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); @@ -112,7 +116,7 @@ TEST_F(LayerStackTest, getApproximateMatch_doesNotMatchDifferentCompositionTypes mock::LayerFE layerFETwo; OutputLayerCompositionState outputLayerCompositionStateTwo; LayerFECompositionState layerFECompositionStateTwo; - layerFECompositionStateTwo.compositionType = hal::Composition::SOLID_COLOR; + layerFECompositionStateTwo.compositionType = Composition::SOLID_COLOR; setupMocksForLayer(outputLayerTwo, layerFETwo, outputLayerCompositionStateTwo, layerFECompositionStateTwo); LayerState layerStateTwo(&outputLayerTwo); @@ -370,7 +374,7 @@ TEST_F(LayerStackTest, reorderingChangesNonBufferHash) { TEST_F(PredictionTest, constructPrediction) { Plan plan; - plan.addLayerType(hal::Composition::DEVICE); + plan.addLayerType(Composition::DEVICE); Prediction prediction({}, plan); @@ -442,13 +446,13 @@ TEST_F(PredictorTest, getPredictedPlan_recordCandidateAndRetrieveExactMatch) { mock::LayerFE layerFEOne; OutputLayerCompositionState outputLayerCompositionStateOne; LayerFECompositionState layerFECompositionStateOne; - layerFECompositionStateOne.compositionType = hal::Composition::DEVICE; + layerFECompositionStateOne.compositionType = Composition::DEVICE; setupMocksForLayer(outputLayerOne, layerFEOne, outputLayerCompositionStateOne, layerFECompositionStateOne); LayerState layerStateOne(&outputLayerOne); Plan plan; - plan.addLayerType(hal::Composition::DEVICE); + plan.addLayerType(Composition::DEVICE); Predictor predictor; @@ -484,7 +488,7 @@ TEST_F(PredictorTest, getPredictedPlan_recordCandidateAndRetrieveApproximateMatc LayerState layerStateTwo(&outputLayerTwo); Plan plan; - plan.addLayerType(hal::Composition::DEVICE); + plan.addLayerType(Composition::DEVICE); Predictor predictor; @@ -521,7 +525,7 @@ TEST_F(PredictorTest, recordMissedPlan_skipsApproximateMatch) { LayerState layerStateTwo(&outputLayerTwo); Plan plan; - plan.addLayerType(hal::Composition::DEVICE); + plan.addLayerType(Composition::DEVICE); Predictor predictor; @@ -535,7 +539,7 @@ TEST_F(PredictorTest, recordMissedPlan_skipsApproximateMatch) { EXPECT_EQ(Prediction::Type::Approximate, predictedPlan->type); Plan planTwo; - planTwo.addLayerType(hal::Composition::CLIENT); + planTwo.addLayerType(Composition::CLIENT); predictor.recordResult(predictedPlan, hashTwo, {&layerStateTwo}, false, planTwo); // Now trying to retrieve the predicted plan again returns a nullopt instead. // TODO(b/158790260): Even though this is enforced in this test, we might want to reassess this. diff --git a/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp b/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp index 29e5a7464d..87635797be 100644 --- a/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp +++ b/services/surfaceflinger/DisplayHardware/AidlComposerHal.cpp @@ -375,13 +375,11 @@ Error AidlComposer::getActiveConfig(Display display, Config* outConfig) { Error AidlComposer::getChangedCompositionTypes( Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes) { + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes) { std::vector<int64_t> layers; - std::vector<Composition> types; - mReader.takeChangedCompositionTypes(translate<int64_t>(display), &layers, &types); + mReader.takeChangedCompositionTypes(translate<int64_t>(display), &layers, outTypes); *outLayers = translate<Layer>(layers); - *outTypes = translate<IComposerClient::Composition>(types); return Error::NONE; } @@ -649,10 +647,10 @@ Error AidlComposer::setLayerColor(Display display, Layer layer, return Error::NONE; } -Error AidlComposer::setLayerCompositionType(Display display, Layer layer, - IComposerClient::Composition type) { - mWriter.setLayerCompositionType(translate<int64_t>(display), translate<int64_t>(layer), - translate<Composition>(type)); +Error AidlComposer::setLayerCompositionType( + Display display, Layer layer, + aidl::android::hardware::graphics::composer3::Composition type) { + mWriter.setLayerCompositionType(translate<int64_t>(display), translate<int64_t>(layer), type); return Error::NONE; } diff --git a/services/surfaceflinger/DisplayHardware/AidlComposerHal.h b/services/surfaceflinger/DisplayHardware/AidlComposerHal.h index 8cae25f742..d82d815cda 100644 --- a/services/surfaceflinger/DisplayHardware/AidlComposerHal.h +++ b/services/surfaceflinger/DisplayHardware/AidlComposerHal.h @@ -36,6 +36,8 @@ #include <aidl/android/hardware/graphics/composer3/IComposerClient.h> #include <android/hardware/graphics/composer3/command-buffer.h> +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -78,8 +80,10 @@ public: Error destroyLayer(Display display, Layer layer) override; Error getActiveConfig(Display display, Config* outConfig) override; - Error getChangedCompositionTypes(Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes) override; + Error getChangedCompositionTypes( + Display display, std::vector<Layer>* outLayers, + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes) + override; Error getColorModes(Display display, std::vector<ColorMode>* outModes) override; Error getDisplayAttribute(Display display, Config config, IComposerClient::Attribute attribute, int32_t* outValue) override; @@ -132,8 +136,9 @@ public: const std::vector<IComposerClient::Rect>& damage) override; Error setLayerBlendMode(Display display, Layer layer, IComposerClient::BlendMode mode) override; Error setLayerColor(Display display, Layer layer, const IComposerClient::Color& color) override; - Error setLayerCompositionType(Display display, Layer layer, - IComposerClient::Composition type) override; + Error setLayerCompositionType( + Display display, Layer layer, + aidl::android::hardware::graphics::composer3::Composition type) override; Error setLayerDataspace(Display display, Layer layer, Dataspace dataspace) override; Error setLayerDisplayFrame(Display display, Layer layer, const IComposerClient::Rect& frame) override; diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.h b/services/surfaceflinger/DisplayHardware/ComposerHal.h index 3cc5e5e360..b4ba8abac7 100644 --- a/services/surfaceflinger/DisplayHardware/ComposerHal.h +++ b/services/surfaceflinger/DisplayHardware/ComposerHal.h @@ -31,6 +31,8 @@ #include <ui/GraphicBuffer.h> #include <utils/StrongPointer.h> +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -98,7 +100,7 @@ public: virtual Error getActiveConfig(Display display, Config* outConfig) = 0; virtual Error getChangedCompositionTypes( Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes) = 0; + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes) = 0; virtual Error getColorModes(Display display, std::vector<ColorMode>* outModes) = 0; virtual Error getDisplayAttribute(Display display, Config config, IComposerClient::Attribute attribute, int32_t* outValue) = 0; @@ -155,8 +157,9 @@ public: IComposerClient::BlendMode mode) = 0; virtual Error setLayerColor(Display display, Layer layer, const IComposerClient::Color& color) = 0; - virtual Error setLayerCompositionType(Display display, Layer layer, - IComposerClient::Composition type) = 0; + virtual Error setLayerCompositionType( + Display display, Layer layer, + aidl::android::hardware::graphics::composer3::Composition type) = 0; virtual Error setLayerDataspace(Display display, Layer layer, Dataspace dataspace) = 0; virtual Error setLayerDisplayFrame(Display display, Layer layer, const IComposerClient::Rect& frame) = 0; diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp index 596666c3f7..82f463eafa 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2.cpp +++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp @@ -39,6 +39,8 @@ #include "ComposerHal.h" +using aidl::android::hardware::graphics::composer3::Composition; + namespace android { using android::Fence; @@ -147,7 +149,7 @@ bool Display::isVsyncPeriodSwitchSupported() const { Error Display::getChangedCompositionTypes(std::unordered_map<HWC2::Layer*, Composition>* outTypes) { std::vector<Hwc2::Layer> layerIds; - std::vector<Hwc2::IComposerClient::Composition> types; + std::vector<Composition> types; auto intError = mComposer.getChangedCompositionTypes( mId, &layerIds, &types); uint32_t numElements = layerIds.size(); diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h index 5e0ba06a0e..1425c61b00 100644 --- a/services/surfaceflinger/DisplayHardware/HWC2.h +++ b/services/surfaceflinger/DisplayHardware/HWC2.h @@ -36,6 +36,8 @@ #include "Hal.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + namespace android { class Fence; @@ -88,7 +90,8 @@ public: [[clang::warn_unused_result]] virtual base::expected<std::shared_ptr<HWC2::Layer>, hal::Error> createLayer() = 0; [[clang::warn_unused_result]] virtual hal::Error getChangedCompositionTypes( - std::unordered_map<Layer*, hal::Composition>* outTypes) = 0; + std::unordered_map<Layer*, aidl::android::hardware::graphics::composer3::Composition>* + outTypes) = 0; [[clang::warn_unused_result]] virtual hal::Error getColorModes( std::vector<hal::ColorMode>* outModes) const = 0; // Returns a bitmask which contains HdrMetadata::Type::*. @@ -163,7 +166,9 @@ public: hal::Error acceptChanges() override; base::expected<std::shared_ptr<HWC2::Layer>, hal::Error> createLayer() override; hal::Error getChangedCompositionTypes( - std::unordered_map<HWC2::Layer*, hal::Composition>* outTypes) override; + std::unordered_map<HWC2::Layer*, + aidl::android::hardware::graphics::composer3::Composition>* outTypes) + override; hal::Error getColorModes(std::vector<hal::ColorMode>* outModes) const override; // Returns a bitmask which contains HdrMetadata::Type::*. int32_t getSupportedPerFrameMetadata() const override; @@ -266,7 +271,8 @@ public: [[clang::warn_unused_result]] virtual hal::Error setBlendMode(hal::BlendMode mode) = 0; [[clang::warn_unused_result]] virtual hal::Error setColor(hal::Color color) = 0; - [[clang::warn_unused_result]] virtual hal::Error setCompositionType(hal::Composition type) = 0; + [[clang::warn_unused_result]] virtual hal::Error setCompositionType( + aidl::android::hardware::graphics::composer3::Composition type) = 0; [[clang::warn_unused_result]] virtual hal::Error setDataspace(hal::Dataspace dataspace) = 0; [[clang::warn_unused_result]] virtual hal::Error setPerFrameMetadata( const int32_t supportedPerFrameMetadata, const android::HdrMetadata& metadata) = 0; @@ -316,7 +322,8 @@ public: hal::Error setBlendMode(hal::BlendMode mode) override; hal::Error setColor(hal::Color color) override; - hal::Error setCompositionType(hal::Composition type) override; + hal::Error setCompositionType( + aidl::android::hardware::graphics::composer3::Composition type) override; hal::Error setDataspace(hal::Dataspace dataspace) override; hal::Error setPerFrameMetadata(const int32_t supportedPerFrameMetadata, const android::HdrMetadata& metadata) override; diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h index bd79977bc9..aa4abdff48 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.h +++ b/services/surfaceflinger/DisplayHardware/HWComposer.h @@ -43,6 +43,8 @@ #include "HWC2.h" #include "Hal.h" +#include <aidl/android/hardware/graphics/composer3/Composition.h> + namespace android { namespace hal = hardware::graphics::composer::hal; @@ -70,7 +72,9 @@ struct KnownHWCGenericLayerMetadata { class HWComposer { public: struct DeviceRequestedChanges { - using ChangedTypes = std::unordered_map<HWC2::Layer*, hal::Composition>; + using ChangedTypes = + std::unordered_map<HWC2::Layer*, + aidl::android::hardware::graphics::composer3::Composition>; using ClientTargetProperty = hal::ClientTargetProperty; using DisplayRequests = hal::DisplayRequest; using LayerRequests = std::unordered_map<HWC2::Layer*, hal::LayerRequest>; diff --git a/services/surfaceflinger/DisplayHardware/Hal.h b/services/surfaceflinger/DisplayHardware/Hal.h index 02d065881b..77e704fa03 100644 --- a/services/surfaceflinger/DisplayHardware/Hal.h +++ b/services/surfaceflinger/DisplayHardware/Hal.h @@ -20,6 +20,8 @@ #include <android/hardware/graphics/composer/2.4/IComposer.h> #include <android/hardware/graphics/composer/2.4/IComposerClient.h> +#include <aidl/android/hardware/graphics/composer3/Composition.h> + #define ERROR_HAS_CHANGES 5 namespace android { @@ -49,7 +51,6 @@ using V2_4::VsyncPeriodNanos; using Attribute = IComposerClient::Attribute; using BlendMode = IComposerClient::BlendMode; using Color = IComposerClient::Color; -using Composition = IComposerClient::Composition; using Connection = IComposerCallback::Connection; using ContentType = IComposerClient::ContentType; using Capability = IComposer::Capability; @@ -95,19 +96,20 @@ inline std::string to_string(hardware::graphics::composer::hal::Attribute attrib } } -inline std::string to_string(hardware::graphics::composer::hal::Composition composition) { +inline std::string to_string( + aidl::android::hardware::graphics::composer3::Composition composition) { switch (composition) { - case hardware::graphics::composer::hal::Composition::INVALID: + case aidl::android::hardware::graphics::composer3::Composition::INVALID: return "Invalid"; - case hardware::graphics::composer::hal::Composition::CLIENT: + case aidl::android::hardware::graphics::composer3::Composition::CLIENT: return "Client"; - case hardware::graphics::composer::hal::Composition::DEVICE: + case aidl::android::hardware::graphics::composer3::Composition::DEVICE: return "Device"; - case hardware::graphics::composer::hal::Composition::SOLID_COLOR: + case aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR: return "SolidColor"; - case hardware::graphics::composer::hal::Composition::CURSOR: + case aidl::android::hardware::graphics::composer3::Composition::CURSOR: return "Cursor"; - case hardware::graphics::composer::hal::Composition::SIDEBAND: + case aidl::android::hardware::graphics::composer3::Composition::SIDEBAND: return "Sideband"; default: return "Unknown"; diff --git a/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp b/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp index 11d41c063e..18f24c1dcd 100644 --- a/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp +++ b/services/surfaceflinger/DisplayHardware/HidlComposerHal.cpp @@ -278,7 +278,7 @@ Error HidlComposer::getActiveConfig(Display display, Config* outConfig) { Error HidlComposer::getChangedCompositionTypes( Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes) { + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes) { mReader.takeChangedCompositionTypes(display, outLayers, outTypes); return Error::NONE; } @@ -618,11 +618,17 @@ Error HidlComposer::setLayerColor(Display display, Layer layer, return Error::NONE; } -Error HidlComposer::setLayerCompositionType(Display display, Layer layer, - IComposerClient::Composition type) { +static IComposerClient::Composition to_hidl_type( + aidl::android::hardware::graphics::composer3::Composition type) { + return static_cast<IComposerClient::Composition>(type); +} + +Error HidlComposer::setLayerCompositionType( + Display display, Layer layer, + aidl::android::hardware::graphics::composer3::Composition type) { mWriter.selectDisplay(display); mWriter.selectLayer(layer); - mWriter.setLayerCompositionType(type); + mWriter.setLayerCompositionType(to_hidl_type(type)); return Error::NONE; } @@ -1266,7 +1272,8 @@ bool CommandReader::parseSetChangedCompositionTypes(uint16_t length) { mCurrentReturnData->compositionTypes.reserve(count); while (count > 0) { auto layer = read64(); - auto type = static_cast<IComposerClient::Composition>(readSigned()); + auto type = static_cast<aidl::android::hardware::graphics::composer3::Composition>( + readSigned()); mCurrentReturnData->changedLayers.push_back(layer); mCurrentReturnData->compositionTypes.push_back(type); @@ -1394,7 +1401,7 @@ bool CommandReader::hasChanges(Display display, uint32_t* outNumChangedCompositi void CommandReader::takeChangedCompositionTypes( Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes) { + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes) { auto found = mReturnData.find(display); if (found == mReturnData.end()) { outLayers->clear(); diff --git a/services/surfaceflinger/DisplayHardware/HidlComposerHal.h b/services/surfaceflinger/DisplayHardware/HidlComposerHal.h index 18c0635dd2..5b2219e45b 100644 --- a/services/surfaceflinger/DisplayHardware/HidlComposerHal.h +++ b/services/surfaceflinger/DisplayHardware/HidlComposerHal.h @@ -37,6 +37,8 @@ #include <ui/GraphicBuffer.h> #include <utils/StrongPointer.h> +#include <aidl/android/hardware/graphics/composer3/Composition.h> + // TODO(b/129481165): remove the #pragma below and fix conversion issues #pragma clang diagnostic pop // ignored "-Wconversion -Wextra" @@ -92,8 +94,9 @@ public: uint32_t* outNumLayerRequestMasks) const; // Get and clear saved changed composition types. - void takeChangedCompositionTypes(Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes); + void takeChangedCompositionTypes( + Display display, std::vector<Layer>* outLayers, + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes); // Get and clear saved display requests. void takeDisplayRequests(Display display, uint32_t* outDisplayRequestMask, @@ -130,7 +133,7 @@ private: uint32_t displayRequests = 0; std::vector<Layer> changedLayers; - std::vector<IComposerClient::Composition> compositionTypes; + std::vector<aidl::android::hardware::graphics::composer3::Composition> compositionTypes; std::vector<Layer> requestedLayers; std::vector<uint32_t> requestMasks; @@ -188,8 +191,10 @@ public: Error destroyLayer(Display display, Layer layer) override; Error getActiveConfig(Display display, Config* outConfig) override; - Error getChangedCompositionTypes(Display display, std::vector<Layer>* outLayers, - std::vector<IComposerClient::Composition>* outTypes) override; + Error getChangedCompositionTypes( + Display display, std::vector<Layer>* outLayers, + std::vector<aidl::android::hardware::graphics::composer3::Composition>* outTypes) + override; Error getColorModes(Display display, std::vector<ColorMode>* outModes) override; Error getDisplayAttribute(Display display, Config config, IComposerClient::Attribute attribute, int32_t* outValue) override; @@ -242,8 +247,9 @@ public: const std::vector<IComposerClient::Rect>& damage) override; Error setLayerBlendMode(Display display, Layer layer, IComposerClient::BlendMode mode) override; Error setLayerColor(Display display, Layer layer, const IComposerClient::Color& color) override; - Error setLayerCompositionType(Display display, Layer layer, - IComposerClient::Composition type) override; + Error setLayerCompositionType( + Display display, Layer layer, + aidl::android::hardware::graphics::composer3::Composition type) override; Error setLayerDataspace(Display display, Layer layer, Dataspace dataspace) override; Error setLayerDisplayFrame(Display display, Layer layer, const IComposerClient::Rect& frame) override; diff --git a/services/surfaceflinger/EffectLayer.cpp b/services/surfaceflinger/EffectLayer.cpp index 845176c112..cc85352dc7 100644 --- a/services/surfaceflinger/EffectLayer.cpp +++ b/services/surfaceflinger/EffectLayer.cpp @@ -109,7 +109,8 @@ void EffectLayer::preparePerFrameCompositionState() { auto* compositionState = editCompositionState(); compositionState->color = getColor(); - compositionState->compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR; + compositionState->compositionType = + aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR; } sp<compositionengine::LayerFE> EffectLayer::getCompositionEngineLayerFE() const { diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index b39515955c..6e9138c119 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -650,15 +650,16 @@ std::vector<compositionengine::LayerFE::LayerSettings> Layer::prepareClientCompo return {*layerSettings}; } -Hwc2::IComposerClient::Composition Layer::getCompositionType(const DisplayDevice& display) const { +aidl::android::hardware::graphics::composer3::Composition Layer::getCompositionType( + const DisplayDevice& display) const { const auto outputLayer = findOutputLayerForDisplay(&display); if (outputLayer == nullptr) { - return Hwc2::IComposerClient::Composition::INVALID; + return aidl::android::hardware::graphics::composer3::Composition::INVALID; } if (outputLayer->getState().hwc) { return (*outputLayer->getState().hwc).hwcCompositionType; } else { - return Hwc2::IComposerClient::Composition::CLIENT; + return aidl::android::hardware::graphics::composer3::Composition::CLIENT; } } @@ -2004,7 +2005,7 @@ LayerProto* Layer::writeToProto(LayersProto& layersProto, uint32_t traceFlags, if (traceFlags & LayerTracing::TRACE_COMPOSITION) { // Only populate for the primary display. if (display) { - const Hwc2::IComposerClient::Composition compositionType = getCompositionType(*display); + const auto compositionType = getCompositionType(*display); layerProto->set_hwc_composition_type(static_cast<HwcCompositionType>(compositionType)); } } diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h index 3f4d48be63..31cdf0b3e4 100644 --- a/services/surfaceflinger/Layer.h +++ b/services/surfaceflinger/Layer.h @@ -1037,7 +1037,8 @@ private: // Returns true if the layer can draw shadows on its border. virtual bool canDrawShadows() const { return true; } - Hwc2::IComposerClient::Composition getCompositionType(const DisplayDevice&) const; + aidl::android::hardware::graphics::composer3::Composition getCompositionType( + const DisplayDevice&) const; /** * Returns an unsorted vector of all layers that are part of this tree. diff --git a/services/surfaceflinger/tests/unittests/CompositionTest.cpp b/services/surfaceflinger/tests/unittests/CompositionTest.cpp index f1e6e48049..554e454183 100644 --- a/services/surfaceflinger/tests/unittests/CompositionTest.cpp +++ b/services/surfaceflinger/tests/unittests/CompositionTest.cpp @@ -1029,9 +1029,10 @@ struct NoCompositionTypeVariant { } }; -template <IComposerClient::Composition CompositionType> +template <aidl::android::hardware::graphics::composer3::Composition CompositionType> struct KeepCompositionTypeVariant { - static constexpr hal::Composition TYPE = CompositionType; + static constexpr aidl::android::hardware::graphics::composer3::Composition TYPE = + CompositionType; static void setupHwcSetCallExpectations(CompositionTest* test) { if (!test->mDisplayOff) { @@ -1046,10 +1047,11 @@ struct KeepCompositionTypeVariant { } }; -template <IComposerClient::Composition InitialCompositionType, - IComposerClient::Composition FinalCompositionType> +template <aidl::android::hardware::graphics::composer3::Composition InitialCompositionType, + aidl::android::hardware::graphics::composer3::Composition FinalCompositionType> struct ChangeCompositionTypeVariant { - static constexpr hal::Composition TYPE = FinalCompositionType; + static constexpr aidl::android::hardware::graphics::composer3::Composition TYPE = + FinalCompositionType; static void setupHwcSetCallExpectations(CompositionTest* test) { if (!test->mDisplayOff) { @@ -1063,8 +1065,9 @@ struct ChangeCompositionTypeVariant { EXPECT_CALL(*test->mComposer, getChangedCompositionTypes(HWC_DISPLAY, _, _)) .WillOnce(DoAll(SetArgPointee<1>(std::vector<Hwc2::Layer>{ static_cast<Hwc2::Layer>(HWC_LAYER)}), - SetArgPointee<2>(std::vector<IComposerClient::Composition>{ - FinalCompositionType}), + SetArgPointee<2>( + std::vector<aidl::android::hardware::graphics::composer3:: + Composition>{FinalCompositionType}), Return(Error::NONE))); } }; @@ -1258,25 +1261,28 @@ TEST_F(CompositionTest, noLayersDoesMinimalWorkToCaptureScreen) { */ TEST_F(CompositionTest, HWCComposedNormalBufferLayerWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::DEVICE>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedNormalBufferLayerWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::DEVICE>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, REComposedNormalBufferLayer) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - ChangeCompositionTypeVariant<IComposerClient::Composition::DEVICE, - IComposerClient::Composition::CLIENT>, - RECompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, + ChangeCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE, + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + RECompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenNormalBufferLayer) { @@ -1290,25 +1296,28 @@ TEST_F(CompositionTest, captureScreenNormalBufferLayer) { */ TEST_F(CompositionTest, HWCComposedEffectLayerWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<DefaultDisplaySetupVariant, EffectLayerVariant<EffectLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::SOLID_COLOR>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + DefaultDisplaySetupVariant, EffectLayerVariant<EffectLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedEffectLayerWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, EffectLayerVariant<EffectLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::SOLID_COLOR>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, EffectLayerVariant<EffectLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, REComposedEffectLayer) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, EffectLayerVariant<EffectLayerProperties>, - ChangeCompositionTypeVariant<IComposerClient::Composition::SOLID_COLOR, - IComposerClient::Composition::CLIENT>, - RECompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, EffectLayerVariant<EffectLayerProperties>, + ChangeCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR, + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + RECompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenEffectLayer) { @@ -1322,25 +1331,28 @@ TEST_F(CompositionTest, captureScreenEffectLayer) { */ TEST_F(CompositionTest, HWCComposedSidebandBufferLayerWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<SidebandLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::SIDEBAND>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<SidebandLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::SIDEBAND>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedSidebandBufferLayerWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<SidebandLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::SIDEBAND>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<SidebandLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::SIDEBAND>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, REComposedSidebandBufferLayer) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<SidebandLayerProperties>, - ChangeCompositionTypeVariant<IComposerClient::Composition::SIDEBAND, - IComposerClient::Composition::CLIENT>, - RECompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<SidebandLayerProperties>, + ChangeCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::SIDEBAND, + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + RECompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenSidebandBufferLayer) { @@ -1354,25 +1366,28 @@ TEST_F(CompositionTest, captureScreenSidebandBufferLayer) { */ TEST_F(CompositionTest, HWCComposedSecureBufferLayerWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::DEVICE>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedSecureBufferLayerWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::DEVICE>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, REComposedSecureBufferLayer) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, - ChangeCompositionTypeVariant<IComposerClient::Composition::DEVICE, - IComposerClient::Composition::CLIENT>, - RECompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, + ChangeCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE, + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + RECompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenSecureBufferLayerOnSecureDisplay) { @@ -1386,17 +1401,19 @@ TEST_F(CompositionTest, captureScreenSecureBufferLayerOnSecureDisplay) { */ TEST_F(CompositionTest, HWCComposedSecureBufferLayerOnInsecureDisplayWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<InsecureDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::CLIENT>, - ForcedClientCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + InsecureDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + ForcedClientCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedSecureBufferLayerOnInsecureDisplayWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<InsecureDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::CLIENT>, - ForcedClientCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + InsecureDisplaySetupVariant, BufferLayerVariant<SecureLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + ForcedClientCompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenSecureBufferLayerOnInsecureDisplay) { @@ -1411,22 +1428,24 @@ TEST_F(CompositionTest, captureScreenSecureBufferLayerOnInsecureDisplay) { TEST_F(CompositionTest, HWCComposedBufferLayerWithSecureParentLayerOnInsecureDisplayWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<InsecureDisplaySetupVariant, - ChildLayerVariant<BufferLayerVariant<ParentSecureLayerProperties>, - ContainerLayerVariant<SecureLayerProperties>>, - KeepCompositionTypeVariant<IComposerClient::Composition::CLIENT>, - ForcedClientCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + InsecureDisplaySetupVariant, + ChildLayerVariant<BufferLayerVariant<ParentSecureLayerProperties>, + ContainerLayerVariant<SecureLayerProperties>>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + ForcedClientCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedBufferLayerWithSecureParentLayerOnInsecureDisplayWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<InsecureDisplaySetupVariant, - ChildLayerVariant<BufferLayerVariant<ParentSecureLayerProperties>, - ContainerLayerVariant<SecureLayerProperties>>, - KeepCompositionTypeVariant<IComposerClient::Composition::CLIENT>, - ForcedClientCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + InsecureDisplaySetupVariant, + ChildLayerVariant<BufferLayerVariant<ParentSecureLayerProperties>, + ContainerLayerVariant<SecureLayerProperties>>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + ForcedClientCompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenBufferLayerWithSecureParentLayerOnInsecureDisplay) { @@ -1442,25 +1461,28 @@ TEST_F(CompositionTest, captureScreenBufferLayerWithSecureParentLayerOnInsecureD */ TEST_F(CompositionTest, HWCComposedCursorLayerWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<CursorLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::CURSOR>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<CursorLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CURSOR>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, HWCComposedCursorLayerWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<CursorLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::CURSOR>, - HwcCompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<CursorLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CURSOR>, + HwcCompositionResultVariant>>(); } TEST_F(CompositionTest, REComposedCursorLayer) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<CursorLayerProperties>, - ChangeCompositionTypeVariant<IComposerClient::Composition::CURSOR, - IComposerClient::Composition::CLIENT>, - RECompositionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<CursorLayerProperties>, + ChangeCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CURSOR, + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + RECompositionResultVariant>>(); } TEST_F(CompositionTest, captureScreenCursorLayer) { @@ -1477,7 +1499,8 @@ TEST_F(CompositionTest, displayOffHWCComposedNormalBufferLayerWithDirtyGeometry) mDisplayOff = true; displayRefreshCompositionDirtyGeometry<CompositionCase< PoweredOffDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::DEVICE>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE>, HwcCompositionResultVariant>>(); } @@ -1485,7 +1508,8 @@ TEST_F(CompositionTest, displayOffHWCComposedNormalBufferLayerWithDirtyFrame) { mDisplayOff = true; displayRefreshCompositionDirtyFrame<CompositionCase< PoweredOffDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::DEVICE>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE>, HwcCompositionResultVariant>>(); } @@ -1493,8 +1517,9 @@ TEST_F(CompositionTest, displayOffREComposedNormalBufferLayer) { mDisplayOff = true; displayRefreshCompositionDirtyFrame<CompositionCase< PoweredOffDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - ChangeCompositionTypeVariant<IComposerClient::Composition::DEVICE, - IComposerClient::Composition::CLIENT>, + ChangeCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::DEVICE, + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, RECompositionResultVariant>>(); } @@ -1509,17 +1534,19 @@ TEST_F(CompositionTest, captureScreenNormalBufferLayerOnPoweredOffDisplay) { */ TEST_F(CompositionTest, DebugOptionForcingClientCompositionOfBufferLayerWithDirtyGeometry) { - displayRefreshCompositionDirtyGeometry< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::CLIENT>, - ForcedClientCompositionViaDebugOptionResultVariant>>(); + displayRefreshCompositionDirtyGeometry<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + ForcedClientCompositionViaDebugOptionResultVariant>>(); } TEST_F(CompositionTest, DebugOptionForcingClientCompositionOfBufferLayerWithDirtyFrame) { - displayRefreshCompositionDirtyFrame< - CompositionCase<DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, - KeepCompositionTypeVariant<IComposerClient::Composition::CLIENT>, - ForcedClientCompositionViaDebugOptionResultVariant>>(); + displayRefreshCompositionDirtyFrame<CompositionCase< + DefaultDisplaySetupVariant, BufferLayerVariant<DefaultLayerProperties>, + KeepCompositionTypeVariant< + aidl::android::hardware::graphics::composer3::Composition::CLIENT>, + ForcedClientCompositionViaDebugOptionResultVariant>>(); } } // namespace diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h index 100a78d854..0067997398 100644 --- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h +++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h @@ -270,7 +270,8 @@ public: layer->editCompositionState()->sidebandStream = sidebandStream; } - void setLayerCompositionType(const sp<Layer>& layer, hal::Composition type) { + void setLayerCompositionType(const sp<Layer>& layer, + aidl::android::hardware::graphics::composer3::Composition type) { auto outputLayer = findOutputLayerForDisplay(layer, mFlinger->getDefaultDisplayDevice()); LOG_ALWAYS_FATAL_IF(!outputLayer); auto& state = outputLayer->editState(); diff --git a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockComposer.h b/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockComposer.h index 1debd65ac4..c3250d52d3 100644 --- a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockComposer.h +++ b/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockComposer.h @@ -61,7 +61,8 @@ public: MOCK_METHOD2(destroyLayer, Error(Display, Layer)); MOCK_METHOD2(getActiveConfig, Error(Display, Config*)); MOCK_METHOD3(getChangedCompositionTypes, - Error(Display, std::vector<Layer>*, std::vector<IComposerClient::Composition>*)); + Error(Display, std::vector<Layer>*, + std::vector<aidl::android::hardware::graphics::composer3::Composition>*)); MOCK_METHOD2(getColorModes, Error(Display, std::vector<ColorMode>*)); MOCK_METHOD4(getDisplayAttribute, Error(Display, Config config, IComposerClient::Attribute, int32_t*)); @@ -95,7 +96,8 @@ public: Error(Display, Layer, const std::vector<IComposerClient::Rect>&)); MOCK_METHOD3(setLayerBlendMode, Error(Display, Layer, IComposerClient::BlendMode)); MOCK_METHOD3(setLayerColor, Error(Display, Layer, const IComposerClient::Color&)); - MOCK_METHOD3(setLayerCompositionType, Error(Display, Layer, IComposerClient::Composition)); + MOCK_METHOD3(setLayerCompositionType, + Error(Display, Layer, aidl::android::hardware::graphics::composer3::Composition)); MOCK_METHOD3(setLayerDataspace, Error(Display, Layer, Dataspace)); MOCK_METHOD3(setLayerPerFrameMetadata, Error(Display, Layer, const std::vector<IComposerClient::PerFrameMetadata>&)); diff --git a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockHWC2.h b/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockHWC2.h index 83a0996fe6..d4fefee167 100644 --- a/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockHWC2.h +++ b/services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockHWC2.h @@ -38,7 +38,9 @@ public: MOCK_METHOD((base::expected<std::shared_ptr<HWC2::Layer>, hal::Error>), createLayer, (), (override)); MOCK_METHOD(hal::Error, getChangedCompositionTypes, - ((std::unordered_map<Layer *, hal::Composition> *)), (override)); + ((std::unordered_map<Layer *, + aidl::android::hardware::graphics::composer3::Composition> *)), + (override)); MOCK_METHOD(hal::Error, getColorModes, (std::vector<hal::ColorMode> *), (const, override)); MOCK_METHOD(int32_t, getSupportedPerFrameMetadata, (), (const, override)); MOCK_METHOD(hal::Error, getRenderIntents, (hal::ColorMode, std::vector<hal::RenderIntent> *), @@ -103,7 +105,8 @@ public: MOCK_METHOD(hal::Error, setSurfaceDamage, (const android::Region &), (override)); MOCK_METHOD(hal::Error, setBlendMode, (hal::BlendMode), (override)); MOCK_METHOD(hal::Error, setColor, (hal::Color), (override)); - MOCK_METHOD(hal::Error, setCompositionType, (hal::Composition), (override)); + MOCK_METHOD(hal::Error, setCompositionType, + (aidl::android::hardware::graphics::composer3::Composition), (override)); MOCK_METHOD(hal::Error, setDataspace, (android::ui::Dataspace), (override)); MOCK_METHOD(hal::Error, setPerFrameMetadata, (const int32_t, const android::HdrMetadata &), (override)); |