Chromium Code Reviews| Index: cc/output/dc_layer_overlay.cc |
| diff --git a/cc/output/dc_layer_overlay.cc b/cc/output/dc_layer_overlay.cc |
| index eda508e6e13243b6787f3c841565d0d0f0aa788c..c0adc39dc3ccb5436637aa5f27e351f2b5486130 100644 |
| --- a/cc/output/dc_layer_overlay.cc |
| +++ b/cc/output/dc_layer_overlay.cc |
| @@ -4,6 +4,7 @@ |
| #include "cc/output/dc_layer_overlay.h" |
| +#include "base/metrics/histogram_macros.h" |
| #include "cc/base/math_util.h" |
| #include "cc/quads/solid_color_draw_quad.h" |
| #include "cc/quads/yuv_video_draw_quad.h" |
| @@ -85,7 +86,7 @@ DCLayerOverlayProcessor::DCLayerResult DCLayerOverlayProcessor::FromDrawQuad( |
| if (quad->shared_quad_state->blend_mode != SkBlendMode::kSrcOver) |
| return DC_LAYER_FAILED_QUAD_BLEND_MODE; |
| - DCLayerResult result = DC_LAYER_FAILED_UNKNOWN; |
| + DCLayerResult result; |
| switch (quad->material) { |
| case DrawQuad::YUV_VIDEO_CONTENT: |
| result = |
| @@ -93,7 +94,7 @@ DCLayerOverlayProcessor::DCLayerResult DCLayerOverlayProcessor::FromDrawQuad( |
| ca_layer_overlay); |
| break; |
| default: |
| - return DC_LAYER_FAILED_UNKNOWN; |
| + return DC_LAYER_FAILED_UNSUPPORTED_QUAD; |
| } |
| if (result != DC_LAYER_SUCCESS) |
| return result; |
| @@ -128,13 +129,19 @@ void DCLayerOverlayProcessor::Process(ResourceProvider* resource_provider, |
| DCLayerOverlay ca_layer; |
| DCLayerResult result = FromDrawQuad(resource_provider, display_rect, |
| quad_list->begin(), it, &ca_layer); |
| - if (result != DC_LAYER_SUCCESS) |
| + if (result != DC_LAYER_SUCCESS) { |
| + UMA_HISTOGRAM_ENUMERATION("GPU.DirectComposition.DCLayerResult", result, |
| + DC_LAYER_FAILED_MAX); |
| continue; |
| + } |
| if (!it->shared_quad_state->quad_to_target_transform |
| .Preserves2dAxisAlignment() && |
| !base::FeatureList::IsEnabled( |
| features::kDirectCompositionComplexOverlays)) { |
| + UMA_HISTOGRAM_ENUMERATION("GPU.DirectComposition.DCLayerResult", |
| + DC_LAYER_FAILED_COMPLEX_TRANSFORM, |
| + DC_LAYER_FAILED_MAX); |
|
Ilya Sherman
2017/05/24 23:52:49
nit: The UMA_HISTOGRAM macros expand to a fair bit
|
| continue; |
| } |
| @@ -152,6 +159,8 @@ void DCLayerOverlayProcessor::Process(ResourceProvider* resource_provider, |
| quad_list->EraseAndInvalidateAllPointers(it); |
| } else if (!base::FeatureList::IsEnabled( |
| features::kDirectCompositionUnderlays)) { |
| + UMA_HISTOGRAM_ENUMERATION("GPU.DirectComposition.DCLayerResult", |
| + DC_LAYER_FAILED_OCCLUDED, DC_LAYER_FAILED_MAX); |
| continue; |
| } else { |
| // The quad is occluded, so replace it with a black solid color quad and |