| Index: ui/ozone/platform/drm/gpu/drm_device.cc
|
| diff --git a/ui/ozone/platform/drm/gpu/drm_device.cc b/ui/ozone/platform/drm/gpu/drm_device.cc
|
| index 03ca9aa476946456ee29001b3f2bd571cbe8b13d..fe95a622ca04eb01255310bb612255d75a3a831e 100644
|
| --- a/ui/ozone/platform/drm/gpu/drm_device.cc
|
| +++ b/ui/ozone/platform/drm/gpu/drm_device.cc
|
| @@ -21,6 +21,10 @@
|
| #include "ui/ozone/platform/drm/gpu/drm_util.h"
|
| #include "ui/ozone/platform/drm/gpu/hardware_display_plane_manager_legacy.h"
|
|
|
| +#if defined(USE_DRM_ATOMIC)
|
| +#include "ui/ozone/platform/drm/gpu/hardware_display_plane_manager_atomic.h"
|
| +#endif
|
| +
|
| namespace ui {
|
|
|
| namespace {
|
| @@ -200,7 +204,11 @@ bool DrmDevice::Initialize() {
|
| return false;
|
| }
|
|
|
| +#if defined(USE_DRM_ATOMIC)
|
| + plane_manager_.reset(new HardwareDisplayPlaneManagerAtomic());
|
| +#else
|
| plane_manager_.reset(new HardwareDisplayPlaneManagerLegacy());
|
| +#endif // defined(USE_DRM_ATOMIC)
|
| if (!plane_manager_->Initialize(this)) {
|
| LOG(ERROR) << "Failed to initialize the plane manager for "
|
| << device_path_.value();
|
| @@ -440,6 +448,24 @@ void DrmDevice::DestroyDumbBuffer(const SkImageInfo& info,
|
| DrmDestroyDumbBuffer(file_.GetPlatformFile(), handle);
|
| }
|
|
|
| +bool DrmDevice::CommitProperties(drmModePropertySet* properties,
|
| + uint32_t flags,
|
| + const PageFlipCallback& callback) {
|
| +#if defined(USE_DRM_ATOMIC)
|
| + scoped_ptr<PageFlipPayload> payload(
|
| + new PageFlipPayload(base::ThreadTaskRunnerHandle::Get(), callback));
|
| + if (!drmModePropertySetCommit(file_.GetPlatformFile(), flags, payload.get(),
|
| + properties)) {
|
| + // If successful the payload will be removed by the event
|
| + ignore_result(payload.release());
|
| + return true;
|
| + }
|
| + return false;
|
| +#else
|
| + return false;
|
| +#endif // defined(USE_DRM_ATOMIC)
|
| +}
|
| +
|
| bool DrmDevice::SetMaster() {
|
| DCHECK(file_.IsValid());
|
| return (drmSetMaster(file_.GetPlatformFile()) == 0);
|
|
|