Closed
Bug 625118
Opened 15 years ago
Closed 15 years ago
[Intel card] Crash on one WebGL conformance test [@ ig4icd32.dll@0x5769e ] with OpenGL (8.15.10.2226) renderer
Categories
(Core :: Graphics: CanvasWebGL, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: scoobidiver, Assigned: bjacob)
References
()
Details
(Keywords: crash)
Crash Data
Attachments
(1 file, 2 obsolete files)
|
1.38 KB,
patch
|
vlad
:
review+
joe
:
approval2.0+
|
Details | Diff | Splinter Review |
I consistently crash in the ref. URL in 4.0b9.
There is no crash on other Web conformance tests.
Signature ig4icd32.dll@0x5769e
UUID 1093b7d6-0166-4fdf-890a-f65b22110112
Time 2011-01-12 10:35:22.61100
Uptime 42
Last Crash 46 seconds before submission
Install Age 88663 seconds (1.0 days) since version was first installed.
Product Firefox
Version 4.0b9
Build ID 20110110191547
Branch 2.0
OS Windows NT
OS Version 6.1.7600
CPU x86
CPU Info GenuineIntel family 6 model 23 stepping 10
Crash Reason EXCEPTION_ACCESS_VIOLATION_READ
Crash Address 0x0
App Notes AdapterVendorID: 8086, AdapterDeviceID: 2a42
Frame Module Signature [Expand] Source
0 ig4icd32.dll ig4icd32.dll@0x5769e
1 xul.dll NS_InvokeByIndex_P xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp:102
2 xul.dll XPC_WN_CallMethod js/src/xpconnect/src/xpcwrappednativejsops.cpp:1593
3 mozjs.dll CallCompiler::generateNativeStub js/src/methodjit/MonoIC.cpp:691
4 mozjs.dll js::mjit::ic::NativeCall js/src/methodjit/MonoIC.cpp:898
5 @0x9beb9a6
6 mozjs.dll js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:748
7 mozjs.dll CheckStackAndEnterMethodJIT js/src/methodjit/MethodJIT.cpp:774
8 mozjs.dll js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:791
9 mozjs.dll js::RunScript js/src/jsinterp.cpp:654
10 mozjs.dll js::Execute js/src/jsinterp.cpp:1023
11 mozjs.dll js::EvalKernel js/src/jsobj.cpp:1266
12 mozjs.dll js::DirectEval js/src/jsinterp.cpp:1368
13 mozjs.dll js::mjit::stubs::Eval js/src/methodjit/InvokeHelpers.cpp:447
14 @0x9be43e8
15 mozjs.dll js::mjit::EnterMethodJIT js/src/methodjit/MethodJIT.cpp:748
16 mozjs.dll CheckStackAndEnterMethodJIT js/src/methodjit/MethodJIT.cpp:774
17 mozjs.dll js::mjit::JaegerShot js/src/methodjit/MethodJIT.cpp:791
18 mozjs.dll js::RunScript js/src/jsinterp.cpp:654
19 mozjs.dll js::Execute js/src/jsinterp.cpp:1023
20 mozjs.dll JS_EvaluateUCScriptForPrincipals js/src/jsapi.cpp:4920
21 mozjs.dll JS_EvaluateUCScriptForPrincipalsVersion js/src/jsapi.cpp:4896
22 xul.dll nsJSContext::EvaluateString dom/base/nsJSEnvironment.cpp:1734
Description de la carte : Mobile Intel(R) 4 Series Express Chipset Family
ID du vendeur : 8086
ID du périphérique : 2a42
RAM de la carte : Unknown
Pilotes de la carte : igdumd64 igd10umd64 igdumdx32 igd10umd32
Version du pilote : 8.15.10.2226
Date du pilote : 10-15-2010
Direct2D activé : true
DirectWrite activé : true
Rendu WebGL : Intel -- Mobile Intel(R) 4 Series Express Chipset Family -- 2.1.0 - Build 8.15.10.2226
Fenêtres avec accélération graphique : 1/1 Direct3D 10
| Assignee | ||
Comment 1•15 years ago
|
||
The solution is to blacklist OpenGL on Intel cards altogether. Will write the patch.
Meanwhile if you want WebGL on your machine, install the DirectX runtime so Firefox will be able to use ANGLE. We're working on legal details to have this installed automatically.
| Reporter | ||
Comment 2•15 years ago
|
||
> Meanwhile if you want WebGL on your machine, install the DirectX runtime so
> Firefox will be able to use ANGLE. We're working on legal details to have this
> installed automatically.
Now my WebGL renderer is:
Rendu WebGL : TransGaming Inc. -- ANGLE -- OpenGL ES 2.0 (git-devel Jan 10 2011 19:54:16)
And it does not crash any longer.
Summary: [Intel card] Crash on one WebGL conformance test [@ ig4icd32.dll@0x5769e ] (8.15.10.2226) → [Intel card] Crash on one WebGL conformance test [@ ig4icd32.dll@0x5769e ] with OpenGL (8.15.10.2226) renderer
| Assignee | ||
Comment 3•15 years ago
|
||
Here we go, there's a comment in the patch explaining this.
Attachment #503275 -
Flags: review?(jmuizelaar)
| Assignee | ||
Comment 4•15 years ago
|
||
****! Filed this in the wrong bug
| Assignee | ||
Comment 5•15 years ago
|
||
This is what I meant to attach here.
Assignee: nobody → bjacob
Attachment #503275 -
Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #503281 -
Flags: review?(jmuizelaar)
Attachment #503275 -
Flags: review?(jmuizelaar)
Comment on attachment 503281 [details] [diff] [review]
block WebGL when discouraged (e.g. intel OpenGL)
># HG changeset patch
># Parent 672664d3af0e4d2520b4494db732375ab03faf10
>diff --git a/content/canvas/src/WebGLContext.cpp b/content/canvas/src/WebGLContext.cpp
>--- a/content/canvas/src/WebGLContext.cpp
>+++ b/content/canvas/src/WebGLContext.cpp
>@@ -413,26 +413,22 @@ WebGLContext::SetDimensions(PRInt32 widt
> // Ask GfxInfo about what we should use
> PRBool useOpenGL = PR_TRUE;
> PRBool useANGLE = PR_TRUE;
>
> nsCOMPtr<nsIGfxInfo> gfxInfo = do_GetService("@mozilla.org/gfx/info;1");
> if (gfxInfo) {
> PRInt32 status;
> if (NS_SUCCEEDED(gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_WEBGL_OPENGL, &status))) {
>- if (status == nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION ||
>- status == nsIGfxInfo::FEATURE_BLOCKED_DEVICE)
>- {
>+ if (status != nsIGfxInfo::FEATURE_NO_INFO) {
> useOpenGL = PR_FALSE;
> }
> }
This part is good...
> if (NS_SUCCEEDED(gfxInfo->GetFeatureStatus(nsIGfxInfo::FEATURE_WEBGL_ANGLE, &status))) {
>- if (status == nsIGfxInfo::FEATURE_BLOCKED_DRIVER_VERSION ||
>- status == nsIGfxInfo::FEATURE_BLOCKED_DEVICE)
>- {
>+ if (status != nsIGfxInfo::FEATURE_NO_INFO) {
> useANGLE = PR_FALSE;
> }
> }
> }
This part isn't -- if we have no info about ANGLE, we should use ANGLE. That is, we always want to use ANGLE, except on non-intel platforms where we're ok to try native GL as well.
This is all really convoluted unfortunately, and at some point we may want to rework it. Doesn't have to be in this big, just attaching thoughts here. I'm thinking we just want:
webgl.renderer pref "auto", "angle", "gl"
if "auto":
try ANGLE first, if not blocked
try GL second, if not blocked
if "angle":
try ANGLE only, ignore block status; never try desktop GL
if "gl"
try GL only, ignoe block status; never try desktop GL
Also, this patch has a pile of webgl conformance test fixes in it?
>diff --git a/content/canvas/test/webgl/test_webgl_conformance_test_suite.html b/content/canvas/test/webgl/test_webgl_conformance_test_suite.html
Attachment #503281 -
Flags: review?(jmuizelaar) → review-
| Assignee | ||
Comment 7•15 years ago
|
||
Removed the unwanted stuff that crept into the patch.
But I don't understand your other comment. WEBGL_OPENGL is discouraged, but WEBGL_ANGLE isn't. So my code isn't blocking ANGLE from being used here.
Attachment #505156 -
Flags: review?(vladimir)
| Assignee | ||
Updated•15 years ago
|
Attachment #503281 -
Attachment is obsolete: true
(In reply to comment #7)
> Created attachment 505156 [details] [diff] [review]
> block WebGL when discouraged (e.g. intel OpenGL)
>
> Removed the unwanted stuff that crept into the patch.
>
> But I don't understand your other comment. WEBGL_OPENGL is discouraged, but
> WEBGL_ANGLE isn't. So my code isn't blocking ANGLE from being used here.
if querying FEATURE_WEBGL_ANGLE returns NO_INFO, the code as written will set useANGLE to PR_FALSE, preventing ANGLE from being used, right?
| Assignee | ||
Comment 10•15 years ago
|
||
Are you misreading != as == ?
I guess that the double negation here ( != NO_INFO ) is a bit misleading?
ugh sorry, you're right -- I kept reading == instead of !=. Fine as-is.
Attachment #505156 -
Flags: review?(vladimir) → review+
Updated•15 years ago
|
Attachment #505156 -
Flags: feedback+
Updated•15 years ago
|
Attachment #505156 -
Flags: feedback+ → approval2.0+
| Assignee | ||
Comment 12•15 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Updated•14 years ago
|
Crash Signature: [@ ig4icd32.dll@0x5769e ]
You need to log in
before you can comment on or make changes to this bug.
Description
•