Chromium Code Reviews| Index: content/browser/gpu/browser_gpu_channel_host_factory.cc |
| diff --git a/content/browser/gpu/browser_gpu_channel_host_factory.cc b/content/browser/gpu/browser_gpu_channel_host_factory.cc |
| index 29adc69ad843421354be30f50f2cf30bd5070cd6..f624d0db4b07e4b338aec17a5a2118974646bf2a 100644 |
| --- a/content/browser/gpu/browser_gpu_channel_host_factory.cc |
| +++ b/content/browser/gpu/browser_gpu_channel_host_factory.cc |
| @@ -9,12 +9,12 @@ |
| #include "base/synchronization/waitable_event.h" |
| #include "base/threading/thread_restrictions.h" |
| #include "base/tracked_objects.h" |
| +#include "content/browser/gpu/browser_gpu_memory_buffer_manager.h" |
| #include "content/browser/gpu/gpu_data_manager_impl.h" |
| #include "content/browser/gpu/gpu_memory_buffer_factory_host_impl.h" |
| #include "content/browser/gpu/gpu_process_host.h" |
| #include "content/browser/gpu/gpu_surface_tracker.h" |
| #include "content/common/child_process_host_impl.h" |
| -#include "content/common/gpu/client/gpu_memory_buffer_impl.h" |
| #include "content/common/gpu/gpu_messages.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/gpu_data_manager.h" |
| @@ -40,28 +40,6 @@ struct BrowserGpuChannelHostFactory::CreateRequest { |
| CreateCommandBufferResult result; |
| }; |
| -struct BrowserGpuChannelHostFactory::AllocateGpuMemoryBufferRequest { |
| - AllocateGpuMemoryBufferRequest(size_t width, |
| - size_t height, |
| - unsigned internalformat, |
| - unsigned usage, |
| - int client_id) |
| - : event(true, false), |
| - width(width), |
| - height(height), |
| - internalformat(internalformat), |
| - usage(usage), |
| - client_id(client_id) {} |
| - ~AllocateGpuMemoryBufferRequest() {} |
| - base::WaitableEvent event; |
| - size_t width; |
| - size_t height; |
| - unsigned internalformat; |
| - unsigned usage; |
| - int client_id; |
| - scoped_ptr<gfx::GpuMemoryBuffer> result; |
| -}; |
| - |
| class BrowserGpuChannelHostFactory::EstablishRequest |
| : public base::RefCountedThreadSafe<EstablishRequest> { |
| public: |
| @@ -245,6 +223,7 @@ BrowserGpuChannelHostFactory::BrowserGpuChannelHostFactory() |
| shutdown_event_(new base::WaitableEvent(true, false)), |
| gpu_memory_buffer_factory_host_(new GpuMemoryBufferFactoryHostImpl), |
| gpu_host_id_(0) { |
| + BrowserGpuMemoryBufferManager::current()->set_gpu_client_id(gpu_client_id_); |
|
piman
2014/10/09 21:33:02
Can BrowserGpuChannelHostFactory simply own the Br
reveman
2014/10/10 02:20:16
Done.
I kept the static BrowserGpuMemoryBufferMan
|
| } |
| BrowserGpuChannelHostFactory::~BrowserGpuChannelHostFactory() { |
| @@ -376,10 +355,12 @@ void BrowserGpuChannelHostFactory::GpuChannelEstablished() { |
| DCHECK(!gpu_channel_.get()); |
| } else { |
| GetContentClient()->SetGpuInfo(pending_request_->gpu_info()); |
| - gpu_channel_ = GpuChannelHost::Create(this, |
| - pending_request_->gpu_info(), |
| - pending_request_->channel_handle(), |
| - shutdown_event_.get()); |
| + gpu_channel_ = |
| + GpuChannelHost::Create(this, |
| + pending_request_->gpu_info(), |
| + pending_request_->channel_handle(), |
| + shutdown_event_.get(), |
| + BrowserGpuMemoryBufferManager::current()); |
| } |
| gpu_host_id_ = pending_request_->gpu_host_id(); |
| gpu_memory_buffer_factory_host_->set_gpu_host_id(gpu_host_id_); |
| @@ -391,28 +372,6 @@ void BrowserGpuChannelHostFactory::GpuChannelEstablished() { |
| established_callbacks_.clear(); |
| } |
| -scoped_ptr<gfx::GpuMemoryBuffer> |
| -BrowserGpuChannelHostFactory::AllocateGpuMemoryBuffer(size_t width, |
| - size_t height, |
| - unsigned internalformat, |
| - unsigned usage) { |
| - DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| - |
| - AllocateGpuMemoryBufferRequest request( |
| - width, height, internalformat, usage, gpu_client_id_); |
| - GetIOLoopProxy()->PostTask( |
| - FROM_HERE, |
| - base::Bind(&BrowserGpuChannelHostFactory::AllocateGpuMemoryBufferOnIO, |
| - base::Unretained(&request))); |
| - |
| - // We're blocking the UI thread, which is generally undesirable. |
| - TRACE_EVENT0("browser", |
| - "BrowserGpuChannelHostFactory::AllocateGpuMemoryBuffer"); |
| - base::ThreadRestrictions::ScopedAllowWait allow_wait; |
| - request.event.Wait(); |
| - return request.result.Pass(); |
| -} |
| - |
| // static |
| void BrowserGpuChannelHostFactory::AddFilterOnIO( |
| int host_id, |
| @@ -447,33 +406,4 @@ void BrowserGpuChannelHostFactory::SetHandlerForControlMessages( |
| filter)); |
| } |
| -// static |
| -void BrowserGpuChannelHostFactory::AllocateGpuMemoryBufferOnIO( |
| - AllocateGpuMemoryBufferRequest* request) { |
| - if (!GpuMemoryBufferImpl::IsFormatValid(request->internalformat) || |
| - !GpuMemoryBufferImpl::IsUsageValid(request->usage)) { |
| - request->result = scoped_ptr<gfx::GpuMemoryBuffer>(); |
| - request->event.Signal(); |
| - return; |
| - } |
| - |
| - GpuMemoryBufferImpl::Create( |
| - gfx::Size(request->width, request->height), |
| - request->internalformat, |
| - request->usage, |
| - request->client_id, |
| - base::Bind(&BrowserGpuChannelHostFactory::OnGpuMemoryBufferCreated, |
| - base::Unretained(request))); |
| -} |
| - |
| -// static |
| -void BrowserGpuChannelHostFactory::OnGpuMemoryBufferCreated( |
| - AllocateGpuMemoryBufferRequest* request, |
| - scoped_ptr<GpuMemoryBufferImpl> buffer) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| - |
| - request->result = buffer.PassAs<gfx::GpuMemoryBuffer>(); |
| - request->event.Signal(); |
| -} |
| - |
| } // namespace content |