Only try ANGLE on Windows. r?jrmuizel
draft
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
--- 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;