Only try ANGLE on Windows. r?jrmuizel draft
authorJeff Gilbert <jdashg@gmail.com>
Tue, 05 Apr 2016 14:50:58 -0700
changeset 348643 d0ffa330d4fe1f92ab83732aa49372f5b9db12a3
parent 348642 179b9d38a0f4c8c963da9963aa78e4180295e2c2
child 348644 6ec2bf9462ebfce122775b34cadae0d2b5c3e3ab
push id14860
push userjgilbert@mozilla.com
push dateThu, 07 Apr 2016 20:12:06 +0000
reviewersjrmuizel
milestone48.0a1
Only try ANGLE on Windows. r?jrmuizel From 234a66b371def00e32fd29dbcdc188806feaadea Mon Sep 17 00:00:00 2001 --- dom/canvas/WebGLContext.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) MozReview-Commit-ID: L5zCzWOXIqy
dom/canvas/WebGLContext.cpp
--- a/dom/canvas/WebGLContext.cpp
+++ b/dom/canvas/WebGLContext.cpp
@@ -587,27 +587,27 @@ CreateGLWithEGL(const gl::SurfaceCaps& c
 }
 
 static already_AddRefed<GLContext>
 CreateGLWithANGLE(const gl::SurfaceCaps& caps, gl::CreateContextFlags flags,
                   WebGLContext* webgl)
 {
     RefPtr<GLContext> gl;
 
-#ifdef XP_WIN
     gfx::IntSize dummySize(16, 16);
     gl = gl::GLContextProviderEGL::CreateOffscreen(dummySize, caps, flags);
     if (!gl) {
         webgl->GenerateWarning("Error during ANGLE OpenGL init.");
         return nullptr;
     }
 
-    if (!gl->IsANGLE())
+    if (!gl->IsANGLE()) {
+        MOZ_CRASH("Should only be ANGLE.");
         return nullptr;
-#endif
+    }
 
     return gl.forget();
 }
 
 static already_AddRefed<gl::GLContext>
 CreateGLWithDefault(const gl::SurfaceCaps& caps, gl::CreateContextFlags flags,
                     WebGLContext* webgl)
 {
@@ -666,20 +666,16 @@ WebGLContext::CreateAndInitGLWith(FnCrea
 
     return true;
 }
 
 bool
 WebGLContext::CreateAndInitGL(bool forceEnabled)
 {
     bool preferEGL = PR_GetEnv("MOZ_WEBGL_PREFER_EGL");
-    bool disableANGLE = gfxPrefs::WebGLDisableANGLE();
-
-    if (PR_GetEnv("MOZ_WEBGL_FORCE_OPENGL"))
-        disableANGLE = true;
 
     gl::CreateContextFlags flags = gl::CreateContextFlags::NONE;
     if (forceEnabled) flags |= gl::CreateContextFlags::FORCE_ENABLE_HARDWARE;
     if (!IsWebGL2())  flags |= gl::CreateContextFlags::REQUIRE_COMPAT_PROFILE;
     if (IsWebGL2())   flags |= gl::CreateContextFlags::PREFER_ES3;
 
     const gl::SurfaceCaps baseCaps = BaseCaps(mOptions, this);
 
@@ -687,23 +683,27 @@ WebGLContext::CreateAndInitGL(bool force
 
     if (preferEGL) {
         if (CreateAndInitGLWith(CreateGLWithEGL, baseCaps, flags))
             return true;
     }
 
     MOZ_ASSERT(!gl);
 
+#ifdef XP_WIN
+    const bool disableANGLE = (gfxPrefs::WebGLDisableANGLE() ||
+                               PR_GetEnv("MOZ_WEBGL_FORCE_OPENGL"));
     if (!disableANGLE) {
         if (CreateAndInitGLWith(CreateGLWithANGLE, baseCaps, flags))
             return true;
 
         // Don't fallback to WGL.
         return false;
     }
+#endif
 
     MOZ_ASSERT(!gl);
 
     if (CreateAndInitGLWith(CreateGLWithDefault, baseCaps, flags))
         return true;
 
     MOZ_ASSERT(!gl);
     gl = nullptr;