Chromium Code Reviews| Index: content/renderer/render_thread_impl.cc |
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc |
| index c81e108be2fee15ac2e233e91f3a4035618ed098..393084ccee38d7a2fa71506c06f8d736daa90917 100644 |
| --- a/content/renderer/render_thread_impl.cc |
| +++ b/content/renderer/render_thread_impl.cc |
| @@ -1400,34 +1400,39 @@ media::GpuVideoAcceleratorFactories* RenderThreadImpl::GetGpuFactories() { |
| const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); |
| + scoped_refptr<gpu::GpuChannelHost> gpu_channel_host = |
| + EstablishGpuChannelSync(CAUSE_FOR_GPU_LAUNCH_MEDIA_CONTEXT); |
| + if (!gpu_channel_host) |
| + return nullptr; |
| + scoped_refptr<ContextProviderCommandBuffer> shared_context_provider = |
| + CreateOffscreenContext(gpu_channel_host, |
| + command_buffer_metrics::RENDER_WORKER_CONTEXT); |
| + if (!shared_worker_context_provider_->BindToCurrentThread()) |
|
piman
2016/05/06 23:38:57
Did you mean shared_context_provider here?
danakj
2016/05/09 17:25:39
I need to rename this, cuz ya I did.
|
| + return nullptr; |
| + shared_worker_context_provider_->SetupLock(); |
| + |
| scoped_refptr<base::SingleThreadTaskRunner> media_task_runner = |
| GetMediaThreadTaskRunner(); |
| - scoped_refptr<ContextProviderCommandBuffer> shared_context_provider = |
| - SharedWorkerContextProvider(); |
| - scoped_refptr<gpu::GpuChannelHost> gpu_channel_host = GetGpuChannel(); |
| - if (shared_context_provider && gpu_channel_host) { |
| - const bool enable_video_accelerator = |
| - !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); |
| - const bool enable_gpu_memory_buffer_video_frames = |
| + const bool enable_video_accelerator = |
| + !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); |
| + const bool enable_gpu_memory_buffer_video_frames = |
| #if defined(OS_MACOSX) || defined(OS_LINUX) |
| - !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames); |
| + !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames); |
| #else |
| - cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames); |
| + cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames); |
| #endif |
| - std::vector<unsigned> image_texture_targets; |
| - std::string video_frame_image_texture_target_string = |
| - cmd_line->GetSwitchValueASCII(switches::kVideoImageTextureTarget); |
| - StringToUintVector(video_frame_image_texture_target_string, |
| - &image_texture_targets); |
| - |
| - gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create( |
| - std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(), |
| - media_task_runner, shared_context_provider, |
| - enable_gpu_memory_buffer_video_frames, image_texture_targets, |
| - enable_video_accelerator)); |
| - return gpu_factories_.back(); |
| - } |
| - return nullptr; |
| + std::vector<unsigned> image_texture_targets; |
| + std::string video_frame_image_texture_target_string = |
| + cmd_line->GetSwitchValueASCII(switches::kVideoImageTextureTarget); |
| + StringToUintVector(video_frame_image_texture_target_string, |
| + &image_texture_targets); |
| + |
| + gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create( |
| + std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(), |
| + media_task_runner, std::move(shared_context_provider), |
| + enable_gpu_memory_buffer_video_frames, image_texture_targets, |
| + enable_video_accelerator)); |
| + return gpu_factories_.back(); |
| } |
| scoped_refptr<ContextProviderCommandBuffer> |
| @@ -1933,7 +1938,7 @@ base::TaskRunner* RenderThreadImpl::GetWorkerTaskRunner() { |
| } |
| scoped_refptr<ContextProviderCommandBuffer> |
| -RenderThreadImpl::SharedWorkerContextProvider() { |
| +RenderThreadImpl::SharedCompositorWorkerContextProvider() { |
| DCHECK(IsMainThread()); |
| // Try to reuse existing shared worker context provider. |
| if (shared_worker_context_provider_) { |