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

Unified Diff: ui/ozone/platform/drm/gpu/drm_window.cc

Issue 1311043016: Switch DRM platform to using a separate thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mv-drm-calls-on-thread2
Patch Set: Created 5 years, 3 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/drm/gpu/drm_window.cc
diff --git a/ui/ozone/platform/drm/gpu/drm_window.cc b/ui/ozone/platform/drm/gpu/drm_window.cc
index ebf937dbfdebdafdfe4b9ab5c2b243b1828430c2..9137fc8f1c971c5b06262d7b2a7322fa8771c731 100644
--- a/ui/ozone/platform/drm/gpu/drm_window.cc
+++ b/ui/ozone/platform/drm/gpu/drm_window.cc
@@ -78,6 +78,10 @@ HardwareDisplayController* DrmWindow::GetController() {
return controller_;
}
+scoped_refptr<DrmDevice> DrmWindow::GetAllocationDrmDevice() const {
+ return device_manager_->GetDrmDevice(widget_);
+}
+
void DrmWindow::OnBoundsChanged(const gfx::Rect& bounds) {
TRACE_EVENT2("drm", "DrmWindow::OnBoundsChanged", "widget", widget_, "bounds",
bounds.ToString());
@@ -125,19 +129,18 @@ void DrmWindow::QueueOverlayPlane(const OverlayPlane& plane) {
pending_planes_.push_back(plane);
}
-bool DrmWindow::SchedulePageFlip(bool is_sync,
+void DrmWindow::SchedulePageFlip(bool is_sync,
const SwapCompletionCallback& callback) {
last_submitted_planes_.clear();
last_submitted_planes_.swap(pending_planes_);
last_swap_sync_ = is_sync;
if (controller_) {
- return controller_->SchedulePageFlip(last_submitted_planes_, is_sync, false,
- callback);
+ controller_->SchedulePageFlip(last_submitted_planes_, is_sync, false,
+ callback);
+ } else {
+ callback.Run(gfx::SwapResult::SWAP_ACK);
}
-
- callback.Run(gfx::SwapResult::SWAP_ACK);
- return true;
}
bool DrmWindow::TestPageFlip(const std::vector<OverlayCheck_Params>& overlays,
@@ -194,6 +197,17 @@ void DrmWindow::GetVSyncParameters(
callback.Run(timebase, interval);
}
+bool DrmWindow::IsDisplayedOnUniversalDisplayLinkDevice() const {
+ if (!controller_)
+ return false;
+
+ scoped_refptr<DrmDevice> primary =
+ device_manager_->GetDrmDevice(gfx::kNullAcceleratedWidget);
+ DCHECK(primary);
+
+ return primary != controller_->GetAllocationDrmDevice();
+}
+
void DrmWindow::ResetCursor(bool bitmap_only) {
if (!controller_)
return;

Powered by Google App Engine
This is Rietveld 408576698