| Index: gpu/command_buffer/service/in_process_command_buffer.cc
|
| diff --git a/gpu/command_buffer/service/in_process_command_buffer.cc b/gpu/command_buffer/service/in_process_command_buffer.cc
|
| index 71faba607c77c4312655e3dbead04ccfaec2118f..4f136b3e1c7b4738131ebba3e208148438fdafeb 100644
|
| --- a/gpu/command_buffer/service/in_process_command_buffer.cc
|
| +++ b/gpu/command_buffer/service/in_process_command_buffer.cc
|
| @@ -73,11 +73,13 @@ class GpuInProcessThread
|
| virtual void ScheduleTask(const base::Closure& task) OVERRIDE;
|
| virtual void ScheduleIdleWork(const base::Closure& callback) OVERRIDE;
|
| virtual bool UseVirtualizedGLContexts() OVERRIDE { return false; }
|
| + virtual gles2::ShaderTranslatorCache* shader_translator_cache() OVERRIDE;
|
|
|
| private:
|
| virtual ~GpuInProcessThread();
|
| friend class base::RefCountedThreadSafe<GpuInProcessThread>;
|
|
|
| + scoped_refptr<gpu::gles2::ShaderTranslatorCache> shader_translator_cache_;
|
| DISALLOW_COPY_AND_ASSIGN(GpuInProcessThread);
|
| };
|
|
|
| @@ -98,6 +100,12 @@ void GpuInProcessThread::ScheduleIdleWork(const base::Closure& callback) {
|
| FROM_HERE, callback, base::TimeDelta::FromMilliseconds(5));
|
| }
|
|
|
| +gles2::ShaderTranslatorCache* GpuInProcessThread::shader_translator_cache() {
|
| + if (!shader_translator_cache_.get())
|
| + shader_translator_cache_ = new gpu::gles2::ShaderTranslatorCache;
|
| + return shader_translator_cache_.get();
|
| +}
|
| +
|
| base::LazyInstance<std::set<InProcessCommandBuffer*> > default_thread_clients_ =
|
| LAZY_INSTANCE_INITIALIZER;
|
| base::LazyInstance<base::Lock> default_thread_clients_lock_ =
|
| @@ -389,6 +397,7 @@ bool InProcessCommandBuffer::InitializeOnGpuThread(
|
| disallowed_features.gpu_memory_manager = true;
|
| if (!decoder_->Initialize(surface_,
|
| context_,
|
| + service_->shader_translator_cache(),
|
| params.is_offscreen,
|
| params.size,
|
| disallowed_features,
|
|
|