Index: content/browser/android/synchronous_compositor_base.cc |
diff --git a/content/browser/android/synchronous_compositor_base.cc b/content/browser/android/synchronous_compositor_base.cc |
index e218d4020d143893b23da78d98cc8861ea145cde..1ef5e861c9836008f8f1b7e98ba9b3239b1e1263 100644 |
--- a/content/browser/android/synchronous_compositor_base.cc |
+++ b/content/browser/android/synchronous_compositor_base.cc |
@@ -21,20 +21,23 @@ class SynchronousCompositorClient; |
namespace { |
-gpu::SyncPointManager* g_sync_point_manager = nullptr; |
+base::LazyInstance<scoped_refptr<gpu::InProcessCommandBuffer::Service>> |
+ g_gpu_service = LAZY_INSTANCE_INITIALIZER; |
base::Thread* CreateInProcessGpuThreadForSynchronousCompositor( |
const InProcessChildThreadParams& params) { |
- DCHECK(g_sync_point_manager); |
- return new InProcessGpuThread(params, g_sync_point_manager); |
+ DCHECK(g_gpu_service.Get()); |
+ return new InProcessGpuThread(params, |
+ g_gpu_service.Get()->gpu_preferences(), |
+ g_gpu_service.Get()->sync_point_manager()); |
} |
} // namespace |
void SynchronousCompositor::SetGpuService( |
scoped_refptr<gpu::InProcessCommandBuffer::Service> service) { |
- DCHECK(!g_sync_point_manager); |
- g_sync_point_manager = service->sync_point_manager(); |
+ DCHECK(!g_gpu_service.Get()); |
+ g_gpu_service.Get() = service; |
GpuProcessHost::RegisterGpuMainThreadFactory( |
CreateInProcessGpuThreadForSynchronousCompositor); |
} |