Index: ui/ozone/platform/dri/ozone_platform_gbm.cc |
diff --git a/ui/ozone/platform/dri/ozone_platform_gbm.cc b/ui/ozone/platform/dri/ozone_platform_gbm.cc |
index 20f9450133b9f9acb03ec5ec33220795ca6006ab..396f1b9cf150049bac866957ecfcbe87c96ca4cf 100644 |
--- a/ui/ozone/platform/dri/ozone_platform_gbm.cc |
+++ b/ui/ozone/platform/dri/ozone_platform_gbm.cc |
@@ -26,6 +26,7 @@ |
#include "ui/ozone/platform/dri/gbm_surface.h" |
#include "ui/ozone/platform/dri/gbm_surface_factory.h" |
#include "ui/ozone/platform/dri/gbm_wrapper.h" |
+#include "ui/ozone/platform/dri/io_helper_thread.h" |
#include "ui/ozone/platform/dri/native_display_delegate_dri.h" |
#include "ui/ozone/platform/dri/native_display_delegate_proxy.h" |
#include "ui/ozone/platform/dri/scanout_buffer.h" |
@@ -148,8 +149,12 @@ class OzonePlatformGbm : public OzonePlatform { |
void InitializeGPU() override { |
gl_api_loader_.reset(new GlApiLoader()); |
+ if (use_surfaceless_) |
+ io_helper_thread_.reset(new IOHelperThread()); |
+ |
// Async page flips are supported only on surfaceless mode. |
- gbm_.reset(new GbmWrapper(kDefaultGraphicsCardPath, !use_surfaceless_)); |
+ gbm_.reset( |
+ new GbmWrapper(kDefaultGraphicsCardPath, io_helper_thread_.get())); |
gbm_->Initialize(); |
buffer_generator_.reset(new GbmBufferGenerator()); |
screen_manager_.reset( |
@@ -171,6 +176,7 @@ class OzonePlatformGbm : public OzonePlatform { |
private: |
bool use_surfaceless_; |
scoped_ptr<GlApiLoader> gl_api_loader_; |
+ scoped_ptr<IOHelperThread> io_helper_thread_; |
scoped_ptr<GbmWrapper> gbm_; |
scoped_ptr<GbmBufferGenerator> buffer_generator_; |
scoped_ptr<ScreenManager> screen_manager_; |