Loading services/surfaceflinger/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,7 @@ filegroup { "ScreenCaptureOutput.cpp", "StartPropertySetThread.cpp", "SurfaceFlinger.cpp", "SurfaceFlingerConfig.cpp", "SurfaceFlingerDefaultFactory.cpp", "Tracing/LayerTracing.cpp", "Tracing/TransactionTracing.cpp", Loading services/surfaceflinger/DisplayDevice.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -78,18 +78,19 @@ DisplayDevice::DisplayDevice(DisplayDeviceCreationArgs& args) .setDisplayHeight(ANativeWindow_getHeight(args.nativeWindow.get())) .setNativeWindow(std::move(args.nativeWindow)) .setDisplaySurface(std::move(args.displaySurface)) .setMaxTextureCacheSize( static_cast<size_t>(SurfaceFlinger::maxFrameBufferAcquiredBuffers)) .setMaxTextureCacheSize(static_cast<size_t>( mFlinger->getConfig().maxFrameBufferAcquiredBuffers)) .build()); if (!mFlinger->mDisableClientCompositionCache && SurfaceFlinger::maxFrameBufferAcquiredBuffers > 0) { if (!mFlinger->getConfig().disableClientCompositionCache && mFlinger->getConfig().maxFrameBufferAcquiredBuffers > 0) { mCompositionDisplay->createClientCompositionCache( static_cast<uint32_t>(SurfaceFlinger::maxFrameBufferAcquiredBuffers)); static_cast<uint32_t>(mFlinger->getConfig().maxFrameBufferAcquiredBuffers)); } mCompositionDisplay->setPredictCompositionStrategy(mFlinger->mPredictCompositionStrategy); mCompositionDisplay->setTreat170mAsSrgb(mFlinger->mTreat170mAsSrgb); mCompositionDisplay->setPredictCompositionStrategy( mFlinger->getConfig().predictCompositionStrategy); mCompositionDisplay->setTreat170mAsSrgb(mFlinger->getConfig().treat170mAsSrgb); mCompositionDisplay->createDisplayColorProfile( compositionengine::DisplayColorProfileCreationArgsBuilder() .setHasWideColorGamut(args.hasWideColorGamut) Loading Loading @@ -411,23 +412,22 @@ HdrCapabilities DisplayDevice::getHdrCapabilities() const { capabilities.getDesiredMinLuminance()); } void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc, bool showSpinner, bool showRenderRate, bool showInMiddle) { void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc) { if (!enable) { mRefreshRateOverlay.reset(); return; } ftl::Flags<RefreshRateOverlay::Features> features; if (showSpinner) { if (mFlinger->getConfig().refreshRateOverlay.showSpinner) { features |= RefreshRateOverlay::Features::Spinner; } if (showRenderRate) { if (mFlinger->getConfig().refreshRateOverlay.showRenderRate) { features |= RefreshRateOverlay::Features::RenderRate; } if (showInMiddle) { if (mFlinger->getConfig().refreshRateOverlay.showInMiddle) { features |= RefreshRateOverlay::Features::ShowInMiddle; } Loading services/surfaceflinger/DisplayDevice.h +1 −2 Original line number Diff line number Diff line Loading @@ -236,8 +236,7 @@ public: } // Enables an overlay to be displayed with the current refresh rate void enableRefreshRateOverlay(bool enable, bool setByHwc, bool showSpinner, bool showRenderRate, bool showInMiddle) REQUIRES(kMainThreadContext); void enableRefreshRateOverlay(bool enable, bool setByHwc) REQUIRES(kMainThreadContext); void updateRefreshRateOverlayRate(Fps displayFps, Fps renderFps, bool setByHwc = false); bool isRefreshRateOverlayEnabled() const { return mRefreshRateOverlay != nullptr; } bool onKernelTimerChanged(std::optional<DisplayModeId>, bool timerExpired); Loading services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -50,7 +50,8 @@ using ui::Dataspace; FramebufferSurface::FramebufferSurface(HWComposer& hwc, PhysicalDisplayId displayId, const sp<IGraphicBufferConsumer>& consumer, const ui::Size& size, const ui::Size& maxSize) const ui::Size& size, const ui::Size& maxSize, int maxAcquiredBufferCount) : ConsumerBase(consumer), mDisplayId(displayId), mMaxSize(maxSize), Loading @@ -70,8 +71,7 @@ FramebufferSurface::FramebufferSurface(HWComposer& hwc, PhysicalDisplayId displa GRALLOC_USAGE_HW_COMPOSER); const auto limitedSize = limitSize(size); mConsumer->setDefaultBufferSize(limitedSize.width, limitedSize.height); mConsumer->setMaxAcquiredBufferCount( SurfaceFlinger::maxFrameBufferAcquiredBuffers - 1); mConsumer->setMaxAcquiredBufferCount(maxAcquiredBufferCount); for (size_t i = 0; i < sizeof(mHwcBufferIds) / sizeof(mHwcBufferIds[0]); ++i) { mHwcBufferIds[i] = UINT64_MAX; Loading services/surfaceflinger/DisplayHardware/FramebufferSurface.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ class FramebufferSurface : public ConsumerBase, public compositionengine::Displa public: FramebufferSurface(HWComposer& hwc, PhysicalDisplayId displayId, const sp<IGraphicBufferConsumer>& consumer, const ui::Size& size, const ui::Size& maxSize); const ui::Size& maxSize, int maxAcquiredBufferCount); virtual status_t beginFrame(bool mustRecompose); virtual status_t prepareFrame(CompositionType compositionType); Loading Loading
services/surfaceflinger/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,7 @@ filegroup { "ScreenCaptureOutput.cpp", "StartPropertySetThread.cpp", "SurfaceFlinger.cpp", "SurfaceFlingerConfig.cpp", "SurfaceFlingerDefaultFactory.cpp", "Tracing/LayerTracing.cpp", "Tracing/TransactionTracing.cpp", Loading
services/surfaceflinger/DisplayDevice.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -78,18 +78,19 @@ DisplayDevice::DisplayDevice(DisplayDeviceCreationArgs& args) .setDisplayHeight(ANativeWindow_getHeight(args.nativeWindow.get())) .setNativeWindow(std::move(args.nativeWindow)) .setDisplaySurface(std::move(args.displaySurface)) .setMaxTextureCacheSize( static_cast<size_t>(SurfaceFlinger::maxFrameBufferAcquiredBuffers)) .setMaxTextureCacheSize(static_cast<size_t>( mFlinger->getConfig().maxFrameBufferAcquiredBuffers)) .build()); if (!mFlinger->mDisableClientCompositionCache && SurfaceFlinger::maxFrameBufferAcquiredBuffers > 0) { if (!mFlinger->getConfig().disableClientCompositionCache && mFlinger->getConfig().maxFrameBufferAcquiredBuffers > 0) { mCompositionDisplay->createClientCompositionCache( static_cast<uint32_t>(SurfaceFlinger::maxFrameBufferAcquiredBuffers)); static_cast<uint32_t>(mFlinger->getConfig().maxFrameBufferAcquiredBuffers)); } mCompositionDisplay->setPredictCompositionStrategy(mFlinger->mPredictCompositionStrategy); mCompositionDisplay->setTreat170mAsSrgb(mFlinger->mTreat170mAsSrgb); mCompositionDisplay->setPredictCompositionStrategy( mFlinger->getConfig().predictCompositionStrategy); mCompositionDisplay->setTreat170mAsSrgb(mFlinger->getConfig().treat170mAsSrgb); mCompositionDisplay->createDisplayColorProfile( compositionengine::DisplayColorProfileCreationArgsBuilder() .setHasWideColorGamut(args.hasWideColorGamut) Loading Loading @@ -411,23 +412,22 @@ HdrCapabilities DisplayDevice::getHdrCapabilities() const { capabilities.getDesiredMinLuminance()); } void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc, bool showSpinner, bool showRenderRate, bool showInMiddle) { void DisplayDevice::enableRefreshRateOverlay(bool enable, bool setByHwc) { if (!enable) { mRefreshRateOverlay.reset(); return; } ftl::Flags<RefreshRateOverlay::Features> features; if (showSpinner) { if (mFlinger->getConfig().refreshRateOverlay.showSpinner) { features |= RefreshRateOverlay::Features::Spinner; } if (showRenderRate) { if (mFlinger->getConfig().refreshRateOverlay.showRenderRate) { features |= RefreshRateOverlay::Features::RenderRate; } if (showInMiddle) { if (mFlinger->getConfig().refreshRateOverlay.showInMiddle) { features |= RefreshRateOverlay::Features::ShowInMiddle; } Loading
services/surfaceflinger/DisplayDevice.h +1 −2 Original line number Diff line number Diff line Loading @@ -236,8 +236,7 @@ public: } // Enables an overlay to be displayed with the current refresh rate void enableRefreshRateOverlay(bool enable, bool setByHwc, bool showSpinner, bool showRenderRate, bool showInMiddle) REQUIRES(kMainThreadContext); void enableRefreshRateOverlay(bool enable, bool setByHwc) REQUIRES(kMainThreadContext); void updateRefreshRateOverlayRate(Fps displayFps, Fps renderFps, bool setByHwc = false); bool isRefreshRateOverlayEnabled() const { return mRefreshRateOverlay != nullptr; } bool onKernelTimerChanged(std::optional<DisplayModeId>, bool timerExpired); Loading
services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -50,7 +50,8 @@ using ui::Dataspace; FramebufferSurface::FramebufferSurface(HWComposer& hwc, PhysicalDisplayId displayId, const sp<IGraphicBufferConsumer>& consumer, const ui::Size& size, const ui::Size& maxSize) const ui::Size& size, const ui::Size& maxSize, int maxAcquiredBufferCount) : ConsumerBase(consumer), mDisplayId(displayId), mMaxSize(maxSize), Loading @@ -70,8 +71,7 @@ FramebufferSurface::FramebufferSurface(HWComposer& hwc, PhysicalDisplayId displa GRALLOC_USAGE_HW_COMPOSER); const auto limitedSize = limitSize(size); mConsumer->setDefaultBufferSize(limitedSize.width, limitedSize.height); mConsumer->setMaxAcquiredBufferCount( SurfaceFlinger::maxFrameBufferAcquiredBuffers - 1); mConsumer->setMaxAcquiredBufferCount(maxAcquiredBufferCount); for (size_t i = 0; i < sizeof(mHwcBufferIds) / sizeof(mHwcBufferIds[0]); ++i) { mHwcBufferIds[i] = UINT64_MAX; Loading
services/surfaceflinger/DisplayHardware/FramebufferSurface.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ class FramebufferSurface : public ConsumerBase, public compositionengine::Displa public: FramebufferSurface(HWComposer& hwc, PhysicalDisplayId displayId, const sp<IGraphicBufferConsumer>& consumer, const ui::Size& size, const ui::Size& maxSize); const ui::Size& maxSize, int maxAcquiredBufferCount); virtual status_t beginFrame(bool mustRecompose); virtual status_t prepareFrame(CompositionType compositionType); Loading