Loading services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h +2 −0 Original line number Diff line number Diff line Loading @@ -321,7 +321,9 @@ protected: const Region& flashRegion, std::vector<LayerFE::LayerSettings>& clientCompositionLayers) = 0; virtual void setExpensiveRenderingExpected(bool enabled) = 0; virtual void setHintSessionGpuStart(TimePoint startTime) = 0; virtual void setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) = 0; virtual void setHintSessionRequiresRenderEngine(bool requiresRenderEngine) = 0; virtual bool isPowerHintSessionEnabled() = 0; virtual void cacheClientCompositionRequests(uint32_t cacheSize) = 0; virtual bool canPredictCompositionStrategy(const CompositionRefreshArgs&) = 0; Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Display.h +2 −0 Original line number Diff line number Diff line Loading @@ -93,7 +93,9 @@ public: private: bool isPowerHintSessionEnabled() override; void setHintSessionGpuStart(TimePoint startTime) override; void setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) override; void setHintSessionRequiresRenderEngine(bool requiresRenderEngine) override; DisplayId mId; bool mIsDisconnected = false; Hwc2::PowerAdvisor* mPowerAdvisor = nullptr; Loading services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h +2 −0 Original line number Diff line number Diff line Loading @@ -144,7 +144,9 @@ protected: std::vector<LayerFE*>& outLayerFEs) override; void appendRegionFlashRequests(const Region&, std::vector<LayerFE::LayerSettings>&) override; void setExpensiveRenderingExpected(bool enabled) override; void setHintSessionGpuStart(TimePoint startTime) override; void setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) override; void setHintSessionRequiresRenderEngine(bool requiresRenderEngine) override; bool isPowerHintSessionEnabled() override; void dumpBase(std::string&) const; Loading services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h +2 −0 Original line number Diff line number Diff line Loading @@ -134,7 +134,9 @@ public: MOCK_METHOD1(canPredictCompositionStrategy, bool(const CompositionRefreshArgs&)); MOCK_METHOD1(setPredictCompositionStrategy, void(bool)); MOCK_METHOD1(setTreat170mAsSrgb, void(bool)); MOCK_METHOD(void, setHintSessionGpuStart, (TimePoint startTime)); MOCK_METHOD(void, setHintSessionGpuFence, (std::unique_ptr<FenceTime> && gpuFence)); MOCK_METHOD(void, setHintSessionRequiresRenderEngine, (bool requiresRenderEngine)); MOCK_METHOD(bool, isPowerHintSessionEnabled, ()); }; Loading services/surfaceflinger/CompositionEngine/src/Display.cpp +10 −4 Original line number Diff line number Diff line Loading @@ -252,10 +252,6 @@ bool Display::chooseCompositionStrategy( auto& hwc = getCompositionEngine().getHwComposer(); const bool requiresClientComposition = anyLayersRequireClientComposition(); if (isPowerHintSessionEnabled()) { mPowerAdvisor->setRequiresClientComposition(mId, requiresClientComposition); } const TimePoint hwcValidateStartTime = TimePoint::now(); if (status_t result = hwc.getDeviceCompositionChanges(*halDisplayId, requiresClientComposition, Loading Loading @@ -416,10 +412,20 @@ bool Display::isPowerHintSessionEnabled() { return mPowerAdvisor != nullptr && mPowerAdvisor->usePowerHintSession(); } // For ADPF GPU v0 this is expected to set start time to when the GPU commands are submitted with // fence returned, i.e. when RenderEngine flushes the commands and returns the draw fence. void Display::setHintSessionGpuStart(TimePoint startTime) { mPowerAdvisor->setGpuStartTime(mId, startTime); } void Display::setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) { mPowerAdvisor->setGpuFenceTime(mId, std::move(gpuFence)); } void Display::setHintSessionRequiresRenderEngine(bool requiresRenderEngine) { mPowerAdvisor->setRequiresRenderEngine(mId, requiresRenderEngine); } void Display::finishFrame(GpuCompositionResult&& result) { // We only need to actually compose the display if: // 1) It is being handled by hardware composer, which may need this to Loading Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/Output.h +2 −0 Original line number Diff line number Diff line Loading @@ -321,7 +321,9 @@ protected: const Region& flashRegion, std::vector<LayerFE::LayerSettings>& clientCompositionLayers) = 0; virtual void setExpensiveRenderingExpected(bool enabled) = 0; virtual void setHintSessionGpuStart(TimePoint startTime) = 0; virtual void setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) = 0; virtual void setHintSessionRequiresRenderEngine(bool requiresRenderEngine) = 0; virtual bool isPowerHintSessionEnabled() = 0; virtual void cacheClientCompositionRequests(uint32_t cacheSize) = 0; virtual bool canPredictCompositionStrategy(const CompositionRefreshArgs&) = 0; Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Display.h +2 −0 Original line number Diff line number Diff line Loading @@ -93,7 +93,9 @@ public: private: bool isPowerHintSessionEnabled() override; void setHintSessionGpuStart(TimePoint startTime) override; void setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) override; void setHintSessionRequiresRenderEngine(bool requiresRenderEngine) override; DisplayId mId; bool mIsDisconnected = false; Hwc2::PowerAdvisor* mPowerAdvisor = nullptr; Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/impl/Output.h +2 −0 Original line number Diff line number Diff line Loading @@ -144,7 +144,9 @@ protected: std::vector<LayerFE*>& outLayerFEs) override; void appendRegionFlashRequests(const Region&, std::vector<LayerFE::LayerSettings>&) override; void setExpensiveRenderingExpected(bool enabled) override; void setHintSessionGpuStart(TimePoint startTime) override; void setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) override; void setHintSessionRequiresRenderEngine(bool requiresRenderEngine) override; bool isPowerHintSessionEnabled() override; void dumpBase(std::string&) const; Loading
services/surfaceflinger/CompositionEngine/include/compositionengine/mock/Output.h +2 −0 Original line number Diff line number Diff line Loading @@ -134,7 +134,9 @@ public: MOCK_METHOD1(canPredictCompositionStrategy, bool(const CompositionRefreshArgs&)); MOCK_METHOD1(setPredictCompositionStrategy, void(bool)); MOCK_METHOD1(setTreat170mAsSrgb, void(bool)); MOCK_METHOD(void, setHintSessionGpuStart, (TimePoint startTime)); MOCK_METHOD(void, setHintSessionGpuFence, (std::unique_ptr<FenceTime> && gpuFence)); MOCK_METHOD(void, setHintSessionRequiresRenderEngine, (bool requiresRenderEngine)); MOCK_METHOD(bool, isPowerHintSessionEnabled, ()); }; Loading
services/surfaceflinger/CompositionEngine/src/Display.cpp +10 −4 Original line number Diff line number Diff line Loading @@ -252,10 +252,6 @@ bool Display::chooseCompositionStrategy( auto& hwc = getCompositionEngine().getHwComposer(); const bool requiresClientComposition = anyLayersRequireClientComposition(); if (isPowerHintSessionEnabled()) { mPowerAdvisor->setRequiresClientComposition(mId, requiresClientComposition); } const TimePoint hwcValidateStartTime = TimePoint::now(); if (status_t result = hwc.getDeviceCompositionChanges(*halDisplayId, requiresClientComposition, Loading Loading @@ -416,10 +412,20 @@ bool Display::isPowerHintSessionEnabled() { return mPowerAdvisor != nullptr && mPowerAdvisor->usePowerHintSession(); } // For ADPF GPU v0 this is expected to set start time to when the GPU commands are submitted with // fence returned, i.e. when RenderEngine flushes the commands and returns the draw fence. void Display::setHintSessionGpuStart(TimePoint startTime) { mPowerAdvisor->setGpuStartTime(mId, startTime); } void Display::setHintSessionGpuFence(std::unique_ptr<FenceTime>&& gpuFence) { mPowerAdvisor->setGpuFenceTime(mId, std::move(gpuFence)); } void Display::setHintSessionRequiresRenderEngine(bool requiresRenderEngine) { mPowerAdvisor->setRequiresRenderEngine(mId, requiresRenderEngine); } void Display::finishFrame(GpuCompositionResult&& result) { // We only need to actually compose the display if: // 1) It is being handled by hardware composer, which may need this to Loading