Chromium Code Reviews| Index: ui/ozone/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc | 
| diff --git a/ui/ozone/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc b/ui/ozone/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc | 
| index 51ff149976c75b71dda485ed30d42ae6305df825..7b42b11a15faeb86f8b36e205d5413bd6eea6e4b 100644 | 
| --- a/ui/ozone/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc | 
| +++ b/ui/ozone/gpu/gpu_memory_buffer_factory_ozone_native_buffer.cc | 
| @@ -72,6 +72,7 @@ class GLImageOzoneNativePixmapDmaBuf : public gfx::GLImageLinuxDMABuffer { | 
| gfx::OverlayTransform transform, | 
| const gfx::Rect& bounds_rect, | 
| const gfx::RectF& crop_rect) override { | 
| + DCHECK_EQ(pixmap_->GetBufferUsage(), NativePixmap::SCANOUT); | 
| return SurfaceFactoryOzone::GetInstance()->ScheduleOverlayPlane( | 
| widget, z_order, transform, pixmap_, bounds_rect, crop_rect); | 
| } | 
| @@ -133,7 +134,8 @@ GpuMemoryBufferFactoryOzoneNativeBuffer:: | 
| ~GpuMemoryBufferFactoryOzoneNativeBuffer() { | 
| } | 
| -bool GpuMemoryBufferFactoryOzoneNativeBuffer::CreateGpuMemoryBuffer( | 
| +gfx::GpuMemoryBufferHandle | 
| +GpuMemoryBufferFactoryOzoneNativeBuffer::CreateGpuMemoryBuffer( | 
| gfx::GpuMemoryBufferId id, | 
| const gfx::Size& size, | 
| gfx::GpuMemoryBuffer::Format format, | 
| @@ -147,11 +149,19 @@ bool GpuMemoryBufferFactoryOzoneNativeBuffer::CreateGpuMemoryBuffer( | 
| if (!pixmap.get()) { | 
| LOG(ERROR) << "Failed to create pixmap " << size.width() << "x" | 
| << size.height() << " format " << format << ", usage " << usage; | 
| - return false; | 
| + return gfx::GpuMemoryBufferHandle(); | 
| } | 
| + | 
| + gfx::GpuMemoryBufferHandle handle = | 
| + SurfaceFactoryOzone::GetInstance()->ExportGpuMemoryBufferHandle( | 
| 
 
vignatti (out of this project)
2015/05/14 19:20:04
Am I wrong or the concept here is the opposite? GP
 
dshwang
2015/06/25 10:59:56
GPU process create gbm bo and *exporting* the dma_
 
 | 
| + surface_handle, pixmap); | 
| + if (handle.type == gfx::EMPTY_BUFFER) | 
| + return gfx::GpuMemoryBufferHandle(); | 
| + handle.id = id; | 
| + | 
| base::AutoLock lock(native_pixmap_map_lock_); | 
| native_pixmap_map_[GetIndex(id, client_id)] = pixmap; | 
| - return true; | 
| + return handle; | 
| } | 
| void GpuMemoryBufferFactoryOzoneNativeBuffer::DestroyGpuMemoryBuffer( |