Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(753)

Unified Diff: ui/gl/gl_context.h

Issue 2934733002: Workaround for Intel 6xxx clear to 0/1 bug (Closed)
Patch Set: rebase and move GLWorkarounds to a member of GLContext Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/config/gpu_driver_bug_workaround_type.h ('k') | ui/gl/gl_context.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gl/gl_context.h
diff --git a/ui/gl/gl_context.h b/ui/gl/gl_context.h
index 0d1aa6d0f40492d74e3f056cc3ffbd53e4a2ef74..9076c0a5306ca8721d7d4c799e88335be6981aea 100644
--- a/ui/gl/gl_context.h
+++ b/ui/gl/gl_context.h
@@ -68,11 +68,22 @@ struct GLContextAttribs {
ContextPriority context_priority = ContextPriorityMedium;
};
+struct GLWorkarounds {
+ // glClearColor does not always work on Intel 6xxx Mac drivers. See
+ // crbug.com/710443.
+ bool clear_to_zero_or_one_broken = false;
+};
+
// Encapsulates an OpenGL context, hiding platform specific management.
class GL_EXPORT GLContext : public base::RefCounted<GLContext> {
public:
explicit GLContext(GLShareGroup* share_group);
+ // Set the GL workarounds.
+ static void SetGLWorkarounds(const GLWorkarounds& workarounds);
+ // Get the GL workarounds.
+ static GLWorkarounds GetGLWorkarounds();
+
// Initializes the GL context to be compatible with the given surface. The GL
// context can be made with other surface's of the same type. The compatible
// surface is only needed for certain platforms like WGL, OSMesa and GLX. It
@@ -222,6 +233,8 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> {
std::unique_ptr<GLVersionInfo> GenerateGLVersionInfo();
+ static GLWorkarounds gl_workarounds_;
Zhenyao Mo 2017/06/21 16:52:05 Again, sorry for not being clear. I think this ne
jiajia.qin 2017/06/22 11:18:58 OK. I have modified it to a non-static member. But
+
bool static_bindings_initialized_ = false;
bool dynamic_bindings_initialized_ = false;
std::unique_ptr<DriverGL> driver_gl_;
« no previous file with comments | « gpu/config/gpu_driver_bug_workaround_type.h ('k') | ui/gl/gl_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698