| Index: content/common/gpu/client/gpu_memory_buffer_impl_io_surface.cc
|
| diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_io_surface.cc b/content/common/gpu/client/gpu_memory_buffer_impl_io_surface.cc
|
| index e8598c665dd77ada82103323cfd36c353d85dae2..9e46404a58f91d4123e9588e57d757a27e76fc88 100644
|
| --- a/content/common/gpu/client/gpu_memory_buffer_impl_io_surface.cc
|
| +++ b/content/common/gpu/client/gpu_memory_buffer_impl_io_surface.cc
|
| @@ -15,7 +15,10 @@ namespace {
|
|
|
| base::StaticAtomicSequenceNumber g_next_buffer_id;
|
|
|
| -void Noop() {
|
| +void GpuMemoryBufferDeleted(const gfx::GpuMemoryBufferHandle& handle,
|
| + uint32 sync_point) {
|
| + GpuMemoryBufferFactoryHost::GetInstance()->DestroyGpuMemoryBuffer(handle,
|
| + sync_point);
|
| }
|
|
|
| void GpuMemoryBufferCreated(
|
| @@ -26,7 +29,7 @@ void GpuMemoryBufferCreated(
|
| DCHECK_EQ(gfx::IO_SURFACE_BUFFER, handle.type);
|
|
|
| callback.Run(GpuMemoryBufferImplIOSurface::CreateFromHandle(
|
| - handle, size, format, base::Bind(&Noop)));
|
| + handle, size, format, base::Bind(&GpuMemoryBufferDeleted, handle)));
|
| }
|
|
|
| void GpuMemoryBufferCreatedForChildProcess(
|
| @@ -102,6 +105,16 @@ scoped_ptr<GpuMemoryBufferImpl> GpuMemoryBufferImplIOSurface::CreateFromHandle(
|
| size, format, callback, io_surface.get()));
|
| }
|
|
|
| +void GpuMemoryBufferImplIOSurface::DeletedByChildProcess(
|
| + const gfx::GpuMemoryBufferId& id,
|
| + uint32_t sync_point) {
|
| + gfx::GpuMemoryBufferHandle handle;
|
| + handle.type = gfx::IO_SURFACE_BUFFER;
|
| + handle.global_id = id;
|
| + GpuMemoryBufferFactoryHost::GetInstance()->DestroyGpuMemoryBuffer(handle,
|
| + sync_point);
|
| +}
|
| +
|
| // static
|
| bool GpuMemoryBufferImplIOSurface::IsFormatSupported(Format format) {
|
| switch (format) {
|
|
|