| Index: content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| diff --git a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| index a63fc08da1a3b8d2bd5c3c53825894e3c978ebd3..fe7bd7e8a5fc5d019799220dbfd758b170e08f5f 100644
|
| --- a/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| +++ b/content/browser/gpu/browser_gpu_memory_buffer_manager.cc
|
| @@ -154,9 +154,12 @@ BrowserGpuMemoryBufferManager::BrowserGpuMemoryBufferManager(
|
| : native_configurations_(GetNativeGpuMemoryBufferConfigurations()),
|
| gpu_client_id_(gpu_client_id),
|
| gpu_client_tracing_id_(gpu_client_tracing_id),
|
| + gpu_memory_buffer_manager_(new gpu::GpuHostMemoryBufferManager()),
|
| gpu_host_id_(0) {
|
| DCHECK(!g_gpu_memory_buffer_manager);
|
| g_gpu_memory_buffer_manager = this;
|
| + gpu_memory_buffer_manager_->SetIO(BrowserThread::GetTaskRunnerForThread(
|
| + BrowserThread::IO));
|
| }
|
|
|
| BrowserGpuMemoryBufferManager::~BrowserGpuMemoryBufferManager() {
|
| @@ -229,6 +232,7 @@ BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle(
|
| const gfx::GpuMemoryBufferHandle& handle,
|
| const gfx::Size& size,
|
| gfx::BufferFormat format) {
|
| +#if 0
|
| DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO));
|
|
|
| CreateGpuMemoryBufferFromHandleRequest request(handle, size, format,
|
| @@ -247,6 +251,11 @@ BrowserGpuMemoryBufferManager::CreateGpuMemoryBufferFromHandle(
|
| base::ThreadRestrictions::ScopedAllowWait allow_wait;
|
| request.event.Wait();
|
| return std::move(request.result);
|
| +#else
|
| + return gpu_memory_buffer_manager_->CreateGpuMemoryBufferFromHandle(handle,
|
| + size,
|
| + format);
|
| +#endif
|
| }
|
|
|
| void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForChildProcess(
|
| @@ -267,6 +276,7 @@ void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForChildProcess(
|
| return;
|
| }
|
|
|
| +#if 0
|
| // Early out if we cannot fallback to shared memory buffer.
|
| if (!gpu::GpuMemoryBufferImplSharedMemory::IsUsageSupported(usage) ||
|
| !gpu::GpuMemoryBufferImplSharedMemory::IsSizeValidForFormat(size,
|
| @@ -289,6 +299,12 @@ void BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForChildProcess(
|
|
|
| callback.Run(gpu::GpuMemoryBufferImplSharedMemory::AllocateForChildProcess(
|
| id, size, format, child_process_handle));
|
| +#else
|
| + gpu_memory_buffer_manager_->AllocateGpuMemoryBufferForClient(id, size, format,
|
| + usage,
|
| + child_client_id,
|
| + callback);
|
| +#endif
|
| }
|
|
|
| gfx::GpuMemoryBuffer*
|
| @@ -308,7 +324,7 @@ bool BrowserGpuMemoryBufferManager::OnMemoryDump(
|
| const base::trace_event::MemoryDumpArgs& args,
|
| base::trace_event::ProcessMemoryDump* pmd) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| -
|
| +#if 0
|
| for (const auto& client : clients_) {
|
| int client_id = client.first;
|
|
|
| @@ -343,7 +359,7 @@ bool BrowserGpuMemoryBufferManager::OnMemoryDump(
|
| pmd->AddOwnershipEdge(dump->guid(), shared_buffer_guid);
|
| }
|
| }
|
| -
|
| +#endif
|
| return true;
|
| }
|
|
|
| @@ -362,6 +378,7 @@ void BrowserGpuMemoryBufferManager::ProcessRemoved(
|
| int client_id) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| +#if 0 // XXX
|
| ClientMap::iterator client_it = clients_.find(client_id);
|
| if (client_it == clients_.end())
|
| return;
|
| @@ -379,6 +396,7 @@ void BrowserGpuMemoryBufferManager::ProcessRemoved(
|
| }
|
|
|
| clients_.erase(client_it);
|
| +#endif
|
| }
|
|
|
| bool BrowserGpuMemoryBufferManager::IsNativeGpuMemoryBufferConfiguration(
|
| @@ -394,6 +412,10 @@ BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForSurface(
|
| gfx::BufferFormat format,
|
| gfx::BufferUsage usage,
|
| gpu::SurfaceHandle surface_handle) {
|
| + return gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer(size, format,
|
| + usage,
|
| + surface_handle);
|
| +#if 0
|
| DCHECK(!BrowserThread::CurrentlyOn(BrowserThread::IO));
|
|
|
| CreateGpuMemoryBufferRequest request(size, format, usage, gpu_client_id_,
|
| @@ -412,10 +434,12 @@ BrowserGpuMemoryBufferManager::AllocateGpuMemoryBufferForSurface(
|
| base::ThreadRestrictions::ScopedAllowWait allow_wait;
|
| request.event.Wait();
|
| return std::move(request.result);
|
| +#endif
|
| }
|
|
|
| void BrowserGpuMemoryBufferManager::HandleCreateGpuMemoryBufferOnIO(
|
| CreateGpuMemoryBufferRequest* request) {
|
| +#if 0
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| gfx::GpuMemoryBufferId new_id = content::GetNextGenericSharedMemoryId();
|
| @@ -455,10 +479,12 @@ void BrowserGpuMemoryBufferManager::HandleCreateGpuMemoryBufferOnIO(
|
| base::Bind(&BrowserGpuMemoryBufferManager::DestroyGpuMemoryBufferOnIO,
|
| base::Unretained(this), new_id, request->client_id)));
|
| request->event.Signal();
|
| +#endif
|
| }
|
|
|
| void BrowserGpuMemoryBufferManager::HandleCreateGpuMemoryBufferFromHandleOnIO(
|
| CreateGpuMemoryBufferFromHandleRequest* request) {
|
| +#if 0
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| gfx::GpuMemoryBufferId new_id = content::GetNextGenericSharedMemoryId();
|
| @@ -482,6 +508,7 @@ void BrowserGpuMemoryBufferManager::HandleCreateGpuMemoryBufferFromHandleOnIO(
|
| base::Bind(&BrowserGpuMemoryBufferManager::DestroyGpuMemoryBufferOnIO,
|
| base::Unretained(this), new_id, request->client_id)));
|
| request->event.Signal();
|
| +#endif
|
| }
|
|
|
| void BrowserGpuMemoryBufferManager::HandleGpuMemoryBufferCreatedOnIO(
|
| @@ -635,6 +662,9 @@ void BrowserGpuMemoryBufferManager::DestroyGpuMemoryBufferOnIO(
|
| int client_id,
|
| const gpu::SyncToken& sync_token) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + if (clients_.find(client_id) == clients_.end())
|
| + return;
|
| +
|
| DCHECK(clients_.find(client_id) != clients_.end());
|
|
|
| BufferMap& buffers = clients_[client_id];
|
|
|