Index: content/gpu/in_process_gpu_thread.cc |
diff --git a/content/gpu/in_process_gpu_thread.cc b/content/gpu/in_process_gpu_thread.cc |
index d8329f2e690edca02ac1c66e9858ac76fc7c5a6c..e4149db9e126a2e132fdfc0058f5c451c3b6826d 100644 |
--- a/content/gpu/in_process_gpu_thread.cc |
+++ b/content/gpu/in_process_gpu_thread.cc |
@@ -7,15 +7,23 @@ |
#include "content/common/gpu/gpu_memory_buffer_factory.h" |
#include "content/gpu/gpu_child_thread.h" |
#include "content/gpu/gpu_process.h" |
+#include "gpu/command_buffer/service/sync_point_manager.h" |
namespace content { |
-InProcessGpuThread::InProcessGpuThread(const InProcessChildThreadParams& params) |
+InProcessGpuThread::InProcessGpuThread( |
+ const InProcessChildThreadParams& params, |
+ gpu::SyncPointManager* sync_point_manager_override) |
: base::Thread("Chrome_InProcGpuThread"), |
params_(params), |
gpu_process_(NULL), |
+ sync_point_manager_override_(sync_point_manager_override), |
gpu_memory_buffer_factory_(GpuMemoryBufferFactory::Create( |
GpuChildThread::GetGpuMemoryBufferFactoryType())) { |
+ if (!sync_point_manager_override_) { |
+ sync_point_manager_.reset(new gpu::SyncPointManager(false)); |
+ sync_point_manager_override_ = sync_point_manager_.get(); |
+ } |
} |
InProcessGpuThread::~InProcessGpuThread() { |
@@ -26,8 +34,8 @@ void InProcessGpuThread::Init() { |
gpu_process_ = new GpuProcess(); |
// The process object takes ownership of the thread object, so do not |
// save and delete the pointer. |
- gpu_process_->set_main_thread( |
- new GpuChildThread(params_, gpu_memory_buffer_factory_.get())); |
+ gpu_process_->set_main_thread(new GpuChildThread( |
+ params_, gpu_memory_buffer_factory_.get(), sync_point_manager_override_)); |
} |
void InProcessGpuThread::CleanUp() { |
@@ -37,7 +45,7 @@ void InProcessGpuThread::CleanUp() { |
base::Thread* CreateInProcessGpuThread( |
const InProcessChildThreadParams& params) { |
- return new InProcessGpuThread(params); |
+ return new InProcessGpuThread(params, nullptr); |
} |
} // namespace content |