Index: ui/ozone/platform/drm/ozone_platform_gbm.cc |
diff --git a/ui/ozone/platform/drm/ozone_platform_gbm.cc b/ui/ozone/platform/drm/ozone_platform_gbm.cc |
index 75f93c586fcef8953f83ea41ac496c84cf691fb4..38b821855c90d24513f5d087d720b5963386f5c5 100644 |
--- a/ui/ozone/platform/drm/ozone_platform_gbm.cc |
+++ b/ui/ozone/platform/drm/ozone_platform_gbm.cc |
@@ -89,20 +89,22 @@ class GbmBufferGenerator : public ScanoutBufferGenerator { |
class GbmDeviceGenerator : public DrmDeviceGenerator { |
public: |
- GbmDeviceGenerator() {} |
+ GbmDeviceGenerator(bool use_atomic) : use_atomic_(use_atomic) {} |
~GbmDeviceGenerator() override {} |
// DrmDeviceGenerator: |
scoped_refptr<DrmDevice> CreateDevice(const base::FilePath& path, |
base::File file) override { |
scoped_refptr<DrmDevice> drm = new GbmDevice(path, file.Pass()); |
- if (drm->Initialize()) |
+ if (drm->Initialize(use_atomic_)) |
return drm; |
return nullptr; |
} |
private: |
+ bool use_atomic_; |
+ |
DISALLOW_COPY_AND_ASSIGN(GbmDeviceGenerator); |
}; |
@@ -170,12 +172,14 @@ class OzonePlatformGbm : public OzonePlatform { |
} |
void InitializeGPU() override { |
+ bool use_atomic = base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kOzoneUseAtomicDrm); |
#if defined(OS_CHROMEOS) |
gpu_lock_.reset(new GpuLock()); |
#endif |
gl_api_loader_.reset(new GlApiLoader()); |
drm_device_manager_.reset(new DrmDeviceManager( |
- scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator()))); |
+ scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator(use_atomic)))); |
buffer_generator_.reset(new GbmBufferGenerator()); |
screen_manager_.reset(new ScreenManager(buffer_generator_.get())); |
if (!surface_factory_ozone_) |