diff --git a/gfx/layers/Compositor.cpp b/gfx/layers/Compositor.cpp index 818832973803..75d4c6acb058 100644 --- a/gfx/layers/Compositor.cpp +++ b/gfx/layers/Compositor.cpp @@ -111,7 +111,13 @@ Compositor::DrawDiagnosticsInternal(DiagnosticFlags aFlags, color = gfx::Color(0.0f, 1.0f, 1.0f, 1.0f); // greenish blue } } else if (aFlags & DiagnosticFlags::IMAGE) { - color = gfx::Color(1.0f, 0.0f, 0.0f, 1.0f); // red + if (aFlags & DiagnosticFlags::NV12) { + color = gfx::Color(1.0f, 1.0f, 0.0f, 1.0f); // yellow + } else if (aFlags & DiagnosticFlags::YCBCR) { + color = gfx::Color(1.0f, 0.55f, 0.0f, 1.0f); // orange + } else { + color = gfx::Color(1.0f, 0.0f, 0.0f, 1.0f); // red + } } else if (aFlags & DiagnosticFlags::COLOR) { color = gfx::Color(0.0f, 0.0f, 1.0f, 1.0f); // blue } else if (aFlags & DiagnosticFlags::CONTAINER) { diff --git a/gfx/layers/CompositorTypes.h b/gfx/layers/CompositorTypes.h index e6e56abef3e2..3b8fb5900bef 100644 --- a/gfx/layers/CompositorTypes.h +++ b/gfx/layers/CompositorTypes.h @@ -107,7 +107,9 @@ enum class DiagnosticFlags : uint16_t { TILE = 1 << 5, BIGIMAGE = 1 << 6, COMPONENT_ALPHA = 1 << 7, - REGION_RECT = 1 << 8 + REGION_RECT = 1 << 8, + NV12 = 1 << 9, + YCBCR = 1 << 10 }; MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(DiagnosticFlags) diff --git a/gfx/layers/composite/ImageHost.cpp b/gfx/layers/composite/ImageHost.cpp index 61dde6f2e1ee..0c7a1ef0eeca 100644 --- a/gfx/layers/composite/ImageHost.cpp +++ b/gfx/layers/composite/ImageHost.cpp @@ -316,6 +316,13 @@ ImageHost::Composite(LayerComposite* aLayer, return; } + DiagnosticFlags diagnosticFlags = DiagnosticFlags::IMAGE; + if (effect->mType == EffectTypes::NV12) { + diagnosticFlags |= DiagnosticFlags::NV12; + } else if (effect->mType == EffectTypes::YCBCR) { + diagnosticFlags |= DiagnosticFlags::YCBCR; + } + if (mLastFrameID != img->mFrameID || mLastProducerID != img->mProducerID) { if (mImageContainer) { aLayer->GetLayerManager()-> @@ -363,12 +370,12 @@ ImageHost::Composite(LayerComposite* aLayer, } GetCompositor()->DrawQuad(rect, aClipRect, aEffectChain, aOpacity, aTransform); - GetCompositor()->DrawDiagnostics(DiagnosticFlags::IMAGE | DiagnosticFlags::BIGIMAGE, + GetCompositor()->DrawDiagnostics(diagnosticFlags | DiagnosticFlags::BIGIMAGE, rect, aClipRect, aTransform, mFlashCounter); } while (it->NextTile()); it->EndBigImageIteration(); // layer border - GetCompositor()->DrawDiagnostics(DiagnosticFlags::IMAGE, pictureRect, + GetCompositor()->DrawDiagnostics(diagnosticFlags, pictureRect, aClipRect, aTransform, mFlashCounter); } else { IntSize textureSize = img->mTextureSource->GetSize(); @@ -384,7 +391,7 @@ ImageHost::Composite(LayerComposite* aLayer, GetCompositor()->DrawQuad(pictureRect, aClipRect, aEffectChain, aOpacity, aTransform); - GetCompositor()->DrawDiagnostics(DiagnosticFlags::IMAGE, + GetCompositor()->DrawDiagnostics(diagnosticFlags, pictureRect, aClipRect, aTransform, mFlashCounter); }