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

Side by Side Diff: ui/ozone/platform/drm/ozone_platform_gbm.cc

Issue 1147553003: ozone: Add atomic initialization path (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove flag for now Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/ozone/platform/drm/ozone_platform_gbm.h" 5 #include "ui/ozone/platform/drm/ozone_platform_gbm.h"
6 6
7 #include <dlfcn.h> 7 #include <dlfcn.h>
8 #include <gbm.h> 8 #include <gbm.h>
9 #include <stdlib.h> 9 #include <stdlib.h>
10 10
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 return GbmBuffer::CreateBuffer(gbm, SurfaceFactoryOzone::BGRA_8888, size, 81 return GbmBuffer::CreateBuffer(gbm, SurfaceFactoryOzone::BGRA_8888, size,
82 true); 82 true);
83 } 83 }
84 84
85 protected: 85 protected:
86 DISALLOW_COPY_AND_ASSIGN(GbmBufferGenerator); 86 DISALLOW_COPY_AND_ASSIGN(GbmBufferGenerator);
87 }; 87 };
88 88
89 class GbmDeviceGenerator : public DrmDeviceGenerator { 89 class GbmDeviceGenerator : public DrmDeviceGenerator {
90 public: 90 public:
91 GbmDeviceGenerator() {} 91 GbmDeviceGenerator(bool use_atomic) : use_atomic_(use_atomic) {}
92 ~GbmDeviceGenerator() override {} 92 ~GbmDeviceGenerator() override {}
93 93
94 // DrmDeviceGenerator: 94 // DrmDeviceGenerator:
95 scoped_refptr<DrmDevice> CreateDevice(const base::FilePath& path, 95 scoped_refptr<DrmDevice> CreateDevice(const base::FilePath& path,
96 base::File file) override { 96 base::File file) override {
97 scoped_refptr<DrmDevice> drm = new GbmDevice(path, file.Pass()); 97 scoped_refptr<DrmDevice> drm = new GbmDevice(path, file.Pass());
98 if (drm->Initialize()) 98 if (drm->Initialize(use_atomic_))
99 return drm; 99 return drm;
100 100
101 return nullptr; 101 return nullptr;
102 } 102 }
103 103
104 private: 104 private:
105 bool use_atomic_;
106
105 DISALLOW_COPY_AND_ASSIGN(GbmDeviceGenerator); 107 DISALLOW_COPY_AND_ASSIGN(GbmDeviceGenerator);
106 }; 108 };
107 109
108 class OzonePlatformGbm : public OzonePlatform { 110 class OzonePlatformGbm : public OzonePlatform {
109 public: 111 public:
110 OzonePlatformGbm(bool use_surfaceless) : use_surfaceless_(use_surfaceless) {} 112 OzonePlatformGbm(bool use_surfaceless) : use_surfaceless_(use_surfaceless) {}
111 ~OzonePlatformGbm() override {} 113 ~OzonePlatformGbm() override {}
112 114
113 // OzonePlatform: 115 // OzonePlatform:
114 ui::SurfaceFactoryOzone* GetSurfaceFactoryOzone() override { 116 ui::SurfaceFactoryOzone* GetSurfaceFactoryOzone() override {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 #else 164 #else
163 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine( 165 KeyboardLayoutEngineManager::SetKeyboardLayoutEngine(
164 make_scoped_ptr(new StubKeyboardLayoutEngine())); 166 make_scoped_ptr(new StubKeyboardLayoutEngine()));
165 #endif 167 #endif
166 event_factory_ozone_.reset(new EventFactoryEvdev( 168 event_factory_ozone_.reset(new EventFactoryEvdev(
167 cursor_.get(), device_manager_.get(), 169 cursor_.get(), device_manager_.get(),
168 KeyboardLayoutEngineManager::GetKeyboardLayoutEngine())); 170 KeyboardLayoutEngineManager::GetKeyboardLayoutEngine()));
169 } 171 }
170 172
171 void InitializeGPU() override { 173 void InitializeGPU() override {
174 bool use_atomic = false;
172 gl_api_loader_.reset(new GlApiLoader()); 175 gl_api_loader_.reset(new GlApiLoader());
173 drm_device_manager_.reset(new DrmDeviceManager( 176 drm_device_manager_.reset(new DrmDeviceManager(
174 scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator()))); 177 scoped_ptr<DrmDeviceGenerator>(new GbmDeviceGenerator(use_atomic))));
175 buffer_generator_.reset(new GbmBufferGenerator()); 178 buffer_generator_.reset(new GbmBufferGenerator());
176 screen_manager_.reset(new ScreenManager(buffer_generator_.get())); 179 screen_manager_.reset(new ScreenManager(buffer_generator_.get()));
177 if (!surface_factory_ozone_) 180 if (!surface_factory_ozone_)
178 surface_factory_ozone_.reset(new GbmSurfaceFactory(use_surfaceless_)); 181 surface_factory_ozone_.reset(new GbmSurfaceFactory(use_surfaceless_));
179 182
180 surface_factory_ozone_->InitializeGpu(drm_device_manager_.get(), 183 surface_factory_ozone_->InitializeGpu(drm_device_manager_.get(),
181 screen_manager_.get()); 184 screen_manager_.get());
182 scoped_ptr<DrmGpuDisplayManager> ndd(new DrmGpuDisplayManager( 185 scoped_ptr<DrmGpuDisplayManager> ndd(new DrmGpuDisplayManager(
183 screen_manager_.get(), drm_device_manager_.get())); 186 screen_manager_.get(), drm_device_manager_.get()));
184 gpu_platform_support_.reset(new DrmGpuPlatformSupport( 187 gpu_platform_support_.reset(new DrmGpuPlatformSupport(
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 OzonePlatform* CreateOzonePlatformGbm() { 221 OzonePlatform* CreateOzonePlatformGbm() {
219 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); 222 base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
220 #if defined(USE_MESA_PLATFORM_NULL) 223 #if defined(USE_MESA_PLATFORM_NULL)
221 // Only works with surfaceless. 224 // Only works with surfaceless.
222 cmd->AppendSwitch(switches::kOzoneUseSurfaceless); 225 cmd->AppendSwitch(switches::kOzoneUseSurfaceless);
223 #endif 226 #endif
224 return new OzonePlatformGbm(cmd->HasSwitch(switches::kOzoneUseSurfaceless)); 227 return new OzonePlatformGbm(cmd->HasSwitch(switches::kOzoneUseSurfaceless));
225 } 228 }
226 229
227 } // namespace ui 230 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698