Index: ui/ozone/platform/drm/host/drm_overlay_candidates_host.cc |
diff --git a/ui/ozone/platform/drm/host/drm_overlay_candidates_host.cc b/ui/ozone/platform/drm/host/drm_overlay_candidates_host.cc |
index 1397d7ddd9c9e0b4711b8b4d8b3ea15f11c6c698..f8c7de5166a0960fde1717f5a27d499f0424090e 100644 |
--- a/ui/ozone/platform/drm/host/drm_overlay_candidates_host.cc |
+++ b/ui/ozone/platform/drm/host/drm_overlay_candidates_host.cc |
@@ -15,6 +15,8 @@ namespace ui { |
namespace { |
const size_t kMaxCacheSize = 100; |
+// Optimal format for rendering on overlay. |
+const gfx::BufferFormat kOverlayRenderFormat = gfx::BufferFormat::UYVY_422; |
} // namespace |
bool DrmOverlayCandidatesHost::OverlayCompare::operator()( |
@@ -81,6 +83,13 @@ void DrmOverlayCandidatesHost::CheckOverlaySupport( |
in_use_compatible_params_.find(lookup); |
if (last_iter != in_use_compatible_params_.end()) { |
candidate.overlay_handled = last_iter->second; |
+ // TODO(kalyank): Figure out the optimal render format for overlay. We |
+ // should get this from GPU process side. See http://crbug.com/553264. |
+ if (candidate.plane_z_order > 0) { |
+ candidate.format = kOverlayRenderFormat; |
+ candidate.handle_scaling = true; |
+ } |
+ |
compatible_candidates++; |
if (candidate.overlay_handled) |
planes_in_use++; |