| Index: ui/gl/gl_surface_egl.cc
|
| diff --git a/ui/gl/gl_surface_egl.cc b/ui/gl/gl_surface_egl.cc
|
| index 2dcdc883a0e9ac3e3ac4921b758c2b169d5a50d7..61c3c055bd0a573a3d541fd34c6ec054d7bf1507 100644
|
| --- a/ui/gl/gl_surface_egl.cc
|
| +++ b/ui/gl/gl_surface_egl.cc
|
| @@ -37,6 +37,10 @@ extern "C" {
|
| #define EGL_FIXED_SIZE_ANGLE 0x3201
|
| #endif
|
|
|
| +#if !defined(EGL_OPENGL_ES3_BIT)
|
| +#define EGL_OPENGL_ES3_BIT 0x00000040
|
| +#endif
|
| +
|
| #if defined(OS_WIN)
|
| // From ANGLE's egl/eglext.h.
|
|
|
| @@ -172,13 +176,18 @@ bool GLSurfaceEGL::InitializeOneOff() {
|
|
|
| // Choose an EGL configuration.
|
| // On X this is only used for PBuffer surfaces.
|
| - static const EGLint kConfigAttribs[] = {
|
| + EGLint renderable_type = EGL_OPENGL_ES2_BIT;
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kEnableUnsafeES3APIs)) {
|
| + renderable_type = EGL_OPENGL_ES3_BIT;
|
| + }
|
| + const EGLint kConfigAttribs[] = {
|
| EGL_BUFFER_SIZE, 32,
|
| EGL_ALPHA_SIZE, 8,
|
| EGL_BLUE_SIZE, 8,
|
| EGL_GREEN_SIZE, 8,
|
| EGL_RED_SIZE, 8,
|
| - EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
|
| + EGL_RENDERABLE_TYPE, renderable_type,
|
| EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT,
|
| EGL_NONE
|
| };
|
|
|