Index: gpu/command_buffer/common/gpu_memory_buffer_support.cc |
diff --git a/gpu/command_buffer/common/gpu_memory_buffer_support.cc b/gpu/command_buffer/common/gpu_memory_buffer_support.cc |
index 481f0b21c90232d1491176d27e298192c0445b67..b0590621fe8a3290f9cd9e4b657fe5c7f76d20db 100644 |
--- a/gpu/command_buffer/common/gpu_memory_buffer_support.cc |
+++ b/gpu/command_buffer/common/gpu_memory_buffer_support.cc |
@@ -41,7 +41,13 @@ gfx::BufferFormat BufferFormatForInternalFormat(unsigned internalformat) { |
case GL_RGB_YCBCR_420V_CHROMIUM: |
return gfx::BufferFormat::YUV_420_BIPLANAR; |
case GL_RGB_YCBCR_422_CHROMIUM: |
+#if defined(OS_MACOSX) |
+ // Mac supports UYVY IOSurface. |
return gfx::BufferFormat::UYVY_422; |
+#elif defined(OS_CHROMEOS) |
+ // Ozone supports YUYV NativePixmap. |
+ return gfx::BufferFormat::YUYV_422; |
+#endif |
default: |
NOTREACHED(); |
return gfx::BufferFormat::RGBA_8888; |
@@ -67,6 +73,7 @@ bool IsImageFormatCompatibleWithGpuMemoryBufferFormat( |
case gfx::BufferFormat::YVU_420: |
case gfx::BufferFormat::YUV_420_BIPLANAR: |
case gfx::BufferFormat::UYVY_422: |
+ case gfx::BufferFormat::YUYV_422: |
return format == BufferFormatForInternalFormat(internalformat); |
case gfx::BufferFormat::BGR_565: |
case gfx::BufferFormat::RGBX_8888: |
@@ -100,6 +107,7 @@ bool IsImageFromGpuMemoryBufferFormatSupported( |
case gfx::BufferFormat::RG_88: |
return capabilities.texture_rg; |
case gfx::BufferFormat::UYVY_422: |
+ case gfx::BufferFormat::YUYV_422: |
return capabilities.image_ycbcr_422; |
case gfx::BufferFormat::BGR_565: |
case gfx::BufferFormat::RGBA_4444: |
@@ -149,6 +157,7 @@ bool IsImageSizeValidForGpuMemoryBufferFormat(const gfx::Size& size, |
// U and V planes are subsampled by a factor of 2. |
return size.width() % 2 == 0 && size.height() % 2 == 0; |
case gfx::BufferFormat::UYVY_422: |
+ case gfx::BufferFormat::YUYV_422: |
return size.width() % 2 == 0; |
} |