Chromium Code Reviews| Index: ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc |
| diff --git a/ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc b/ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc |
| index 27bb4a4ca1a62d43bb4dad8c9ca7936fb7184f07..5c67da6d305586d971fcc938690586d64bc142b0 100644 |
| --- a/ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc |
| +++ b/ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc |
| @@ -6,9 +6,12 @@ |
| #include <utility> |
| +#include "base/command_line.h" |
| #include "base/macros.h" |
| #include "ui/gfx/native_pixmap_handle_ozone.h" |
| +#include "ui/ozone/platform/drm/common/client_native_pixmap_dmabuf.h" |
| #include "ui/ozone/public/client_native_pixmap_factory.h" // nogncheck |
| +#include "ui/ozone/public/ozone_switches.h" |
| #if defined(USE_VGEM_MAP) |
| #include "ui/ozone/platform/drm/common/client_native_pixmap_vgem.h" |
| @@ -58,6 +61,9 @@ class ClientNativePixmapFactoryGbm : public ClientNativePixmapFactory { |
| format == gfx::BufferFormat::BGRX_8888; |
| case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE: |
| case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT: { |
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kOzoneUseDmaBufMmap)) |
|
spang
2016/03/21 23:24:20
Check the command line in the constructor or Initi
vignatti (out of this project)
2016/03/22 20:24:29
I was actually thinking about removing the cmd lin
|
| + return format == gfx::BufferFormat::BGRA_8888; |
| #if defined(USE_VGEM_MAP) |
| return vgem_fd_.is_valid() && format == gfx::BufferFormat::BGRA_8888; |
| #else |
| @@ -77,6 +83,10 @@ class ClientNativePixmapFactoryGbm : public ClientNativePixmapFactory { |
| switch (usage) { |
| case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE: |
| case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT: |
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kOzoneUseDmaBufMmap)) |
| + return ClientNativePixmapDmaBuf::ImportFromDmabuf( |
| + scoped_fd.get(), size, handle.stride); |
| #if defined(USE_VGEM_MAP) |
| // A valid |vgem_fd_| is required to acquire a VGEM bo. |vgem_fd_| is |
| // set before a widget is created. |