Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Unified Diff: ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc

Issue 940903002: video_decode_accelerator_unittest: enable test on ozone surfaceless (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix remaining thumbnail issues Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc
diff --git a/ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc b/ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc
index 707f4b4973464334bdf573669cdf44d04580594f..a74dac4c0a52f18bcdcd41d412b2d6e7cdec5b70 100644
--- a/ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc
+++ b/ui/ozone/platform/dri/hardware_display_plane_manager_legacy.cc
@@ -19,6 +19,39 @@ HardwareDisplayPlaneManagerLegacy::~HardwareDisplayPlaneManagerLegacy() {
bool HardwareDisplayPlaneManagerLegacy::Commit(
HardwareDisplayPlaneList* plane_list) {
+ return CommitInternal(plane_list, false);
+}
+
+bool HardwareDisplayPlaneManagerLegacy::CommitSync(
+ HardwareDisplayPlaneList* plane_list) {
+ return CommitInternal(plane_list, true);
+}
+
+bool HardwareDisplayPlaneManagerLegacy::SetPlaneData(
+ HardwareDisplayPlaneList* plane_list,
+ HardwareDisplayPlane* hw_plane,
+ const OverlayPlane& overlay,
+ uint32_t crtc_id,
+ const gfx::Rect& src_rect,
+ CrtcController* crtc) {
+ if (plane_list->legacy_page_flips.empty() ||
+ plane_list->legacy_page_flips.back().crtc_id != crtc_id) {
+ plane_list->legacy_page_flips.push_back(
+ HardwareDisplayPlaneList::PageFlipInfo(
+ crtc_id, overlay.buffer->GetFramebufferId(), hw_plane->plane_id(),
+ crtc));
+ } else {
+ plane_list->legacy_page_flips.back().planes.push_back(
+ HardwareDisplayPlaneList::PageFlipInfo::Plane(
+ hw_plane->plane_id(), overlay.buffer->GetFramebufferId(),
+ overlay.display_bounds, src_rect));
+ }
+ return true;
+}
+
+bool HardwareDisplayPlaneManagerLegacy::CommitInternal(
+ HardwareDisplayPlaneList* plane_list,
+ bool sync) {
if (plane_list->plane_list.empty()) // No assigned planes, nothing to do.
return true;
bool ret = true;
@@ -43,9 +76,16 @@ bool HardwareDisplayPlaneManagerLegacy::Commit(
break;
}
}
- if (!drm_->PageFlip(flip.crtc_id, flip.framebuffer,
- base::Bind(&CrtcController::OnPageFlipEvent,
- flip.crtc->AsWeakPtr()))) {
+ bool page_flip_success;
+ if (sync)
+ page_flip_success = drm_->PageFlipSync(
+ flip.crtc_id, flip.framebuffer,
+ base::Bind(&CrtcController::OnPageFlipEvent, flip.crtc->AsWeakPtr()));
+ else
+ page_flip_success = drm_->PageFlip(
+ flip.crtc_id, flip.framebuffer,
+ base::Bind(&CrtcController::OnPageFlipEvent, flip.crtc->AsWeakPtr()));
+ if (!page_flip_success) {
if (errno != EACCES) {
LOG(ERROR) << "Cannot page flip: error='" << strerror(errno) << "'"
<< " crtc=" << flip.crtc_id
@@ -78,26 +118,4 @@ bool HardwareDisplayPlaneManagerLegacy::Commit(
return ret;
}
-bool HardwareDisplayPlaneManagerLegacy::SetPlaneData(
- HardwareDisplayPlaneList* plane_list,
- HardwareDisplayPlane* hw_plane,
- const OverlayPlane& overlay,
- uint32_t crtc_id,
- const gfx::Rect& src_rect,
- CrtcController* crtc) {
- if (plane_list->legacy_page_flips.empty() ||
- plane_list->legacy_page_flips.back().crtc_id != crtc_id) {
- plane_list->legacy_page_flips.push_back(
- HardwareDisplayPlaneList::PageFlipInfo(
- crtc_id, overlay.buffer->GetFramebufferId(), hw_plane->plane_id(),
- crtc));
- } else {
- plane_list->legacy_page_flips.back().planes.push_back(
- HardwareDisplayPlaneList::PageFlipInfo::Plane(
- hw_plane->plane_id(), overlay.buffer->GetFramebufferId(),
- overlay.display_bounds, src_rect));
- }
- return true;
-}
-
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698