diff options
| author | 2023-03-27 13:02:41 -0700 | |
|---|---|---|
| committer | 2023-03-27 13:36:49 -0700 | |
| commit | f5ce45285ea937c1d83c2c13c77c00d9591a350a (patch) | |
| tree | 38b8958cc768d547dff17e8b5ab1fad18fdd55be | |
| parent | 04fa4ea3e7cb21513710a0978d408f641904f1d6 (diff) | |
Fixed issue where HardwareBufferRenderer was not preserving contents
Updated RenderProxy creation to pass false for the opaque flag
in order to avoid an unnecessary canvas->clear invocation within
SkiaPipeline::draw
Fixes: 275398000
Test: Added test to HardwareBufferRendererTests
Change-Id: I5f884240439bf3e57500ed1404f31fbe2ea122fa
| -rw-r--r-- | libs/hwui/jni/android_graphics_HardwareBufferRenderer.cpp | 2 | ||||
| -rw-r--r-- | libs/hwui/pipeline/skia/SkiaPipeline.cpp | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/libs/hwui/jni/android_graphics_HardwareBufferRenderer.cpp b/libs/hwui/jni/android_graphics_HardwareBufferRenderer.cpp index ae22213f4bf4..768dfcd52840 100644 --- a/libs/hwui/jni/android_graphics_HardwareBufferRenderer.cpp +++ b/libs/hwui/jni/android_graphics_HardwareBufferRenderer.cpp @@ -74,7 +74,7 @@ static long android_graphics_HardwareBufferRenderer_create(JNIEnv* env, jobject, auto* hardwareBuffer = HardwareBufferHelpers::AHardwareBuffer_fromHardwareBuffer(env, buffer); auto* rootRenderNode = reinterpret_cast<RootRenderNode*>(renderNodePtr); ContextFactoryImpl factory(rootRenderNode); - auto* proxy = new RenderProxy(true, rootRenderNode, &factory); + auto* proxy = new RenderProxy(false, rootRenderNode, &factory); proxy->setHardwareBuffer(hardwareBuffer); return (jlong)proxy; } diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp index 6628463bcabf..8ea71f11e2f0 100644 --- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp +++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp @@ -499,8 +499,7 @@ void SkiaPipeline::renderFrameImpl(const SkRect& clip, } canvas->concat(preTransform); - // STOPSHIP: Revert, temporary workaround to clear always F16 frame buffer for b/74976293 - if (!opaque || getSurfaceColorType() == kRGBA_F16_SkColorType) { + if (!opaque) { canvas->clear(SK_ColorTRANSPARENT); } |