Index: content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
diff --git a/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc b/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
index 327a755b51c398e9e3726da70d316ccd3838b873..35e08c99308b44bfab62fb0e1473945eceaca92e 100644 |
--- a/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
+++ b/content/common/gpu/client/gpu_memory_buffer_impl_ozone_native_buffer.cc |
@@ -14,7 +14,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( |
@@ -25,7 +28,7 @@ void GpuMemoryBufferCreated( |
DCHECK_EQ(gfx::OZONE_NATIVE_BUFFER, handle.type); |
callback.Run(GpuMemoryBufferImplOzoneNativeBuffer::CreateFromHandle( |
- handle, size, format, base::Bind(&Noop))); |
+ handle, size, format, base::Bind(&GpuMemoryBufferDeleted, handle))); |
} |
void GpuMemoryBufferCreatedForChildProcess( |
@@ -100,6 +103,17 @@ GpuMemoryBufferImplOzoneNativeBuffer::CreateFromHandle( |
} |
// static |
+void GpuMemoryBufferImplOzoneNativeBuffer::DeletedByChildProcess( |
+ const gfx::GpuMemoryBufferId& id, |
+ uint32_t sync_point) { |
+ gfx::GpuMemoryBufferHandle handle; |
+ handle.type = gfx::OZONE_NATIVE_BUFFER; |
+ handle.global_id = id; |
+ GpuMemoryBufferFactoryHost::GetInstance()->DestroyGpuMemoryBuffer(handle, |
+ sync_point); |
+} |
+ |
+// static |
bool GpuMemoryBufferImplOzoneNativeBuffer::IsFormatSupported(Format format) { |
switch (format) { |
case RGBA_8888: |