Bug 1413269 - Apply REQUIRE_COMPAT_PROFILE flag for WebGL 1 on Intel HD Grahpics 3000 on OSX. - r?jgilbert
MozReview-Commit-ID: FZzZpaU9uiv
--- a/dom/canvas/WebGLContext.cpp
+++ b/dom/canvas/WebGLContext.cpp
@@ -707,16 +707,29 @@ WebGLContext::CreateAndInitGL(bool force
}
if (IsWebGL2()) {
flags |= gl::CreateContextFlags::PREFER_ES3;
} else if (!gfxPrefs::WebGL1AllowCoreProfile()) {
flags |= gl::CreateContextFlags::REQUIRE_COMPAT_PROFILE;
}
+#ifdef XP_MACOSX
+ const nsCOMPtr<nsIGfxInfo> gfxInfo = services::GetGfxInfo();
+ nsString vendorID, deviceID;
+
+ // Avoid crash for Intel HD Graphics 3000 on OSX. (Bug 1413269)
+ gfxInfo->GetAdapterVendorID(vendorID);
+ gfxInfo->GetAdapterDeviceID(deviceID);
+ if (vendorID.EqualsLiteral("0x8086") &&
+ (deviceID.EqualsLiteral("0x0116") || deviceID.EqualsLiteral("0x0126")))
+ {
+ flags |= gl::CreateContextFlags::REQUIRE_COMPAT_PROFILE;
+ }
+#endif
//////
const bool useEGL = PR_GetEnv("MOZ_WEBGL_FORCE_EGL");
#ifdef XP_WIN
tryNativeGL = false;
tryANGLE = true;