Loading libs/renderengine/skia/SkiaRenderEngine.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -764,10 +764,11 @@ void SkiaRenderEngine::drawLayersInternal( // save a snapshot of the activeSurface to use as input to the blur shaders blurInput = activeSurface->makeImageSnapshot(); // blit the offscreen framebuffer into the destination AHB, but only // if there are blur regions. backgroundBlurRadius blurs the entire // image below, so it can skip this step. if (layer.blurRegions.size()) { // blit the offscreen framebuffer into the destination AHB. This ensures that // even if the blurred image does not cover the screen (for example, during // a rotation animation, or if blur regions are used), the entire screen is // initialized. if (layer.blurRegions.size() || FlagManager::getInstance().restore_blur_step()) { SkPaint paint; paint.setBlendMode(SkBlendMode::kSrc); if (CC_UNLIKELY(mCapture->isCaptureRunning())) { Loading services/surfaceflinger/common/FlagManager.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,7 @@ void FlagManager::dump(std::string& result) const { DUMP_READ_ONLY_FLAG(screenshot_fence_preservation); DUMP_READ_ONLY_FLAG(vulkan_renderengine); DUMP_READ_ONLY_FLAG(renderable_buffer_usage); DUMP_READ_ONLY_FLAG(restore_blur_step); #undef DUMP_READ_ONLY_FLAG #undef DUMP_SERVER_FLAG #undef DUMP_FLAG_INTERVAL Loading Loading @@ -208,6 +209,7 @@ FLAG_MANAGER_READ_ONLY_FLAG(enable_layer_command_batching, "") FLAG_MANAGER_READ_ONLY_FLAG(screenshot_fence_preservation, "debug.sf.screenshot_fence_preservation") FLAG_MANAGER_READ_ONLY_FLAG(vulkan_renderengine, "debug.renderengine.vulkan") FLAG_MANAGER_READ_ONLY_FLAG(renderable_buffer_usage, "") FLAG_MANAGER_READ_ONLY_FLAG(restore_blur_step, "debug.renderengine.restore_blur_step") /// Trunk stable server flags /// FLAG_MANAGER_SERVER_FLAG(late_boot_misc2, "") Loading services/surfaceflinger/common/include/common/FlagManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ public: bool screenshot_fence_preservation() const; bool vulkan_renderengine() const; bool renderable_buffer_usage() const; bool restore_blur_step() const; protected: // overridden for unit tests Loading services/surfaceflinger/surfaceflinger_flags.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -185,3 +185,14 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "restore_blur_step" namespace: "core_graphics" description: "Restore drawing the blur input prior to drawing blurred content." bug: "255921628" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } Loading
libs/renderengine/skia/SkiaRenderEngine.cpp +5 −4 Original line number Diff line number Diff line Loading @@ -764,10 +764,11 @@ void SkiaRenderEngine::drawLayersInternal( // save a snapshot of the activeSurface to use as input to the blur shaders blurInput = activeSurface->makeImageSnapshot(); // blit the offscreen framebuffer into the destination AHB, but only // if there are blur regions. backgroundBlurRadius blurs the entire // image below, so it can skip this step. if (layer.blurRegions.size()) { // blit the offscreen framebuffer into the destination AHB. This ensures that // even if the blurred image does not cover the screen (for example, during // a rotation animation, or if blur regions are used), the entire screen is // initialized. if (layer.blurRegions.size() || FlagManager::getInstance().restore_blur_step()) { SkPaint paint; paint.setBlendMode(SkBlendMode::kSrc); if (CC_UNLIKELY(mCapture->isCaptureRunning())) { Loading
services/surfaceflinger/common/FlagManager.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -131,6 +131,7 @@ void FlagManager::dump(std::string& result) const { DUMP_READ_ONLY_FLAG(screenshot_fence_preservation); DUMP_READ_ONLY_FLAG(vulkan_renderengine); DUMP_READ_ONLY_FLAG(renderable_buffer_usage); DUMP_READ_ONLY_FLAG(restore_blur_step); #undef DUMP_READ_ONLY_FLAG #undef DUMP_SERVER_FLAG #undef DUMP_FLAG_INTERVAL Loading Loading @@ -208,6 +209,7 @@ FLAG_MANAGER_READ_ONLY_FLAG(enable_layer_command_batching, "") FLAG_MANAGER_READ_ONLY_FLAG(screenshot_fence_preservation, "debug.sf.screenshot_fence_preservation") FLAG_MANAGER_READ_ONLY_FLAG(vulkan_renderengine, "debug.renderengine.vulkan") FLAG_MANAGER_READ_ONLY_FLAG(renderable_buffer_usage, "") FLAG_MANAGER_READ_ONLY_FLAG(restore_blur_step, "debug.renderengine.restore_blur_step") /// Trunk stable server flags /// FLAG_MANAGER_SERVER_FLAG(late_boot_misc2, "") Loading
services/surfaceflinger/common/include/common/FlagManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ public: bool screenshot_fence_preservation() const; bool vulkan_renderengine() const; bool renderable_buffer_usage() const; bool restore_blur_step() const; protected: // overridden for unit tests Loading
services/surfaceflinger/surfaceflinger_flags.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -185,3 +185,14 @@ flag { purpose: PURPOSE_BUGFIX } } flag { name: "restore_blur_step" namespace: "core_graphics" description: "Restore drawing the blur input prior to drawing blurred content." bug: "255921628" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } }