| Index: gpu/ipc/client/command_buffer_proxy_impl.cc
|
| diff --git a/gpu/ipc/client/command_buffer_proxy_impl.cc b/gpu/ipc/client/command_buffer_proxy_impl.cc
|
| index 9eb994473f6ed14344e62599fc0cd72e0920a4aa..447697d0f9d1e12998bbd8279443b23967474230 100644
|
| --- a/gpu/ipc/client/command_buffer_proxy_impl.cc
|
| +++ b/gpu/ipc/client/command_buffer_proxy_impl.cc
|
| @@ -459,6 +459,9 @@ int32_t CommandBufferProxyImpl::CreateImage(ClientBuffer buffer,
|
| gpu_memory_buffer_manager->GpuMemoryBufferFromClientBuffer(buffer);
|
| DCHECK(gpu_memory_buffer);
|
|
|
| + DCHECK(image_gmb_ids_map_.find(new_id) == image_gmb_ids_map_.end());
|
| + image_gmb_ids_map_[new_id] = gpu_memory_buffer->GetId().id;
|
| +
|
| // This handle is owned by the GPU process and must be passed to it or it
|
| // will leak. In otherwords, do not early out on error between here and the
|
| // sending of the CreateImage IPC below.
|
| @@ -512,6 +515,9 @@ void CommandBufferProxyImpl::DestroyImage(int32_t id) {
|
| if (last_state_.error != gpu::error::kNoError)
|
| return;
|
|
|
| + auto it = image_gmb_ids_map_.find(id);
|
| + if (it != image_gmb_ids_map_.end())
|
| + image_gmb_ids_map_.erase(it);
|
| Send(new GpuCommandBufferMsg_DestroyImage(route_id_, id));
|
| }
|
|
|
| @@ -532,6 +538,14 @@ int32_t CommandBufferProxyImpl::CreateGpuMemoryBufferImage(
|
| return CreateImage(buffer->AsClientBuffer(), width, height, internal_format);
|
| }
|
|
|
| +int32_t CommandBufferProxyImpl::GetImageGpuMemoryBufferId(unsigned image_id) {
|
| + CheckLock();
|
| + auto it = image_gmb_ids_map_.find(image_id);
|
| + if (it != image_gmb_ids_map_.end())
|
| + return it->second;
|
| + return -1;
|
| +}
|
| +
|
| uint32_t CommandBufferProxyImpl::CreateStreamTexture(uint32_t texture_id) {
|
| CheckLock();
|
| if (last_state_.error != gpu::error::kNoError)
|
|
|