diff options
author | 2016-11-09 16:13:54 -0500 | |
---|---|---|
committer | 2016-11-16 15:17:04 -0500 | |
commit | 79756be175dea78ee9d51bb22abba7621bd9b5cc (patch) | |
tree | de8aec0091b28af7670cf8eba5d2eb19cf955ce9 | |
parent | af0f1e071df28a20717b1a714883fd654fc2e8c9 (diff) |
Add layer updates debugging feature to Skia pipelines
When this property is turned on, we flash green
every time a hardware layer is updated.
Test: Matches the behavior in OpenGLPipeline
BUG:32370375
Change-Id: I916f94eee644c185d8a3f9fa4cd69e087ed1e92d
-rw-r--r-- | libs/hwui/pipeline/skia/RenderNodeDrawable.cpp | 8 | ||||
-rw-r--r-- | libs/hwui/pipeline/skia/SkiaLayer.h | 1 | ||||
-rw-r--r-- | libs/hwui/pipeline/skia/SkiaPipeline.cpp | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp index accbabda5a2f..7dcbbd059e88 100644 --- a/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp +++ b/libs/hwui/pipeline/skia/RenderNodeDrawable.cpp @@ -164,6 +164,14 @@ void RenderNodeDrawable::drawContent(SkCanvas* canvas) const { paint = &tmpPaint; } renderNode->getLayerSurface()->draw(canvas, 0, 0, paint); + + if (CC_UNLIKELY(Properties::debugLayersUpdates + && !renderNode->getSkiaLayer()->hasRenderedSinceRepaint)) { + renderNode->getSkiaLayer()->hasRenderedSinceRepaint = true; + SkPaint layerPaint; + layerPaint.setColor(0x7f00ff00); + canvas->drawRect(bounds, layerPaint); + } // composing a software layer with alpha } else if (properties.effectiveLayerType() == LayerType::Software) { SkPaint paint; diff --git a/libs/hwui/pipeline/skia/SkiaLayer.h b/libs/hwui/pipeline/skia/SkiaLayer.h index 0988d7eda89d..904d57e073ca 100644 --- a/libs/hwui/pipeline/skia/SkiaLayer.h +++ b/libs/hwui/pipeline/skia/SkiaLayer.h @@ -30,6 +30,7 @@ struct SkiaLayer { sk_sp<SkSurface> layerSurface; Matrix4 inverseTransformInWindow; + bool hasRenderedSinceRepaint = false; }; diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp index a6612c96b8f3..a4a83efdecf8 100644 --- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp +++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp @@ -106,6 +106,7 @@ void SkiaPipeline::renderLayersImpl(const LayerUpdateQueue& layers, bool opaque) return; } + layerNode->getSkiaLayer()->hasRenderedSinceRepaint = false; layerCanvas->clear(SK_ColorTRANSPARENT); RenderNodeDrawable root(layerNode, layerCanvas, false); |