Index: ui/gl/gl_context_egl.cc |
diff --git a/ui/gl/gl_context_egl.cc b/ui/gl/gl_context_egl.cc |
index 1cd08cd40496efa08ee512b4dfe85efcc9d69296..f40c9fb55542aa38ca1f346ab0e08a510f8e3155 100644 |
--- a/ui/gl/gl_context_egl.cc |
+++ b/ui/gl/gl_context_egl.cc |
@@ -32,6 +32,12 @@ extern "C" { |
#define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x3AAC |
#endif /* EGL_ANGLE_create_context_webgl_compatibility */ |
+#ifndef EGL_CONTEXT_PRIORITY_LEVEL_IMG |
+#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 |
+#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 |
+#endif /* EGL_CONTEXT_PRIORITY_LEVEL */ |
+ |
+ |
using ui::GetLastEGLErrorString; |
namespace gl { |
@@ -105,6 +111,12 @@ bool GLContextEGL::Initialize(GLSurface* compatible_surface, |
DCHECK(!attribs.webgl_compatibility_context); |
} |
+ if (GLSurfaceEGL::IsEGLContextPrioritySupported() && attribs.low_priority) { |
+ VLOG(1) << __FUNCTION__ << ": setting low priority"; |
+ context_attributes.push_back(EGL_CONTEXT_PRIORITY_LEVEL_IMG); |
+ context_attributes.push_back(EGL_CONTEXT_PRIORITY_LOW_IMG); |
+ } |
+ |
// Append final EGL_NONE to signal the context attributes are finished |
context_attributes.push_back(EGL_NONE); |
context_attributes.push_back(EGL_NONE); |