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..068639b5ed4521c10305c428ed2f12683be83cb6 100644 |
--- a/ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc |
+++ b/ui/ozone/platform/drm/client_native_pixmap_factory_gbm.cc |
@@ -8,7 +8,9 @@ |
#include "base/macros.h" |
#include "ui/gfx/native_pixmap_handle_ozone.h" |
+#include "ui/ozone/platform/drm/common/drm_util.h" |
#include "ui/ozone/public/client_native_pixmap_factory.h" // nogncheck |
+#include "ui/ozone/public/ozone_platform.h" |
#if defined(USE_VGEM_MAP) |
#include "ui/ozone/platform/drm/common/client_native_pixmap_vgem.h" |
@@ -51,11 +53,14 @@ class ClientNativePixmapFactoryGbm : public ClientNativePixmapFactory { |
gfx::BufferUsage usage) const override { |
switch (usage) { |
case gfx::BufferUsage::GPU_READ: |
- case gfx::BufferUsage::SCANOUT: |
- return format == gfx::BufferFormat::RGBA_8888 || |
- format == gfx::BufferFormat::RGBX_8888 || |
- format == gfx::BufferFormat::BGRA_8888 || |
- format == gfx::BufferFormat::BGRX_8888; |
+ case gfx::BufferUsage::SCANOUT: { |
+ std::vector<uint32_t> support_formats; |
+ ui::OzonePlatform::GetInstance()->GetSupportedFormats(&support_formats); |
spang
2016/01/18 18:14:31
The renderer process is allowed to have a ClientNa
william.xie
2016/01/19 04:40:16
Done.
|
+ return find(support_formats.begin(), support_formats.end(), |
+ GetFourCCFormatForFramebuffer(format)) != |
+ support_formats.end(); |
+ } |
+ |
case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE: |
case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT: { |
#if defined(USE_VGEM_MAP) |