Index: gpu/command_buffer/service/feature_info.cc |
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc |
index e8b838505add6ffdc5b002ffc0116b834c7a6a3f..60a9524f12121a38ff5e5643e4b7d45294be1b09 100644 |
--- a/gpu/command_buffer/service/feature_info.cc |
+++ b/gpu/command_buffer/service/feature_info.cc |
@@ -22,6 +22,10 @@ |
#include "ui/gl/gl_switches.h" |
#include "ui/gl/gl_version_info.h" |
+#if defined(OS_CHROMEOS) |
+#include "ui/gl/gl_surface_egl.h" |
+#endif |
+ |
#if !defined(OS_MACOSX) |
#include "ui/gl/gl_fence_egl.h" |
#endif |
@@ -966,9 +970,22 @@ void FeatureInfo::InitializeFeatures() { |
validators_.g_l_state.AddValue(GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES); |
} |
+ if (extensions.Contains("GL_APPLE_ycbcr_422")) { |
+ AddExtensionString("GL_CHROMIUM_ycbcr_422_image"); |
+ feature_flags_.chromium_image_ycbcr_422 = true; |
+ } |
+ |
if (extensions.Contains("GL_OES_EGL_image_external")) { |
AddExtensionString("GL_OES_EGL_image_external"); |
feature_flags_.oes_egl_image_external = true; |
+#if defined(OS_CHROMEOS) |
+ bool has_dma_buf_import = |
+ gl::GLSurfaceEGL::HasEGLExtension("EGL_EXT_image_dma_buf_import"); |
+ if (has_dma_buf_import) { |
+ AddExtensionString("GL_CHROMIUM_ycbcr_422_image"); |
+ feature_flags_.chromium_image_ycbcr_422 = true; |
+ } |
+#endif |
} |
if (extensions.Contains("GL_NV_EGL_stream_consumer_external")) { |
AddExtensionString("GL_NV_EGL_stream_consumer_external"); |
@@ -1065,11 +1082,6 @@ void FeatureInfo::InitializeFeatures() { |
} |
#endif |
- if (extensions.Contains("GL_APPLE_ycbcr_422")) { |
- AddExtensionString("GL_CHROMIUM_ycbcr_422_image"); |
- feature_flags_.chromium_image_ycbcr_422 = true; |
- } |
- |
// TODO(gman): Add support for these extensions. |
// GL_OES_depth32 |