Last Comment Bug 735560 - WebGL multiple conformance-test-suite crashes in glsl/functions/
: WebGL multiple conformance-test-suite crashes in glsl/functions/
Status: RESOLVED FIXED
: crash, testcase
Product: Core
Classification: Components
Component: Canvas: WebGL (show other bugs)
: Trunk
: x86_64 Mac OS X
: -- critical (vote)
: mozilla16
Assigned To: Jeff Gilbert [:jgilbert]
:
: Milan Sreckovic [:milan]
Mentors:
Depends on: 769810
Blocks: 771406
  Show dependency treegraph
 
Reported: 2012-03-13 20:21 PDT by Christoph Diehl [:posidron]
Modified: 2012-07-06 07:49 PDT (History)
3 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
callstack-function-dot (12.19 KB, text/plain)
2012-03-13 20:21 PDT, Christoph Diehl [:posidron]
no flags Details
patch (1.63 KB, patch)
2012-07-02 12:47 PDT, Jeff Gilbert [:jgilbert]
jacob.benoit.1: review+
Details | Diff | Splinter Review
patch (1.53 KB, patch)
2012-07-05 17:30 PDT, Jeff Gilbert [:jgilbert]
jgilbert: review+
Details | Diff | Splinter Review

Description Christoph Diehl [:posidron] 2012-03-13 20:21:58 PDT
Created attachment 605641 [details]
callstack-function-dot

Attached is the callstack for the glsl-function-dot testcase.

Multiple testcases in the category "glsl/functions" of the conformance test suite 1.0.1 seem to fail with a crash whereby the callstack seems to be the same.

Those testcases are:

  glsl-function-dot
  glsl-function-faceforward
  glsl-function-length
  glsl-function-normalize
  glsl-function-reflect
Comment 1 Jeff Gilbert [:jgilbert] 2012-04-11 21:31:13 PDT
jviereck's MacBook Pro also has this problem.
I've isolated it down to any of the 'Geometric Functions' in the GLES2 GLSL spec section 8.4 (length, distance, dot, normalize, faceforward, reflect, refract), when passed float arguments, appear to crash. These functions are supposed take and return args of type T, where T is one of {float, vec2, vec3, vec4}. I have not tested the vec2/3/4 versions much, but what I have seems to work fine. All float versions crash, with the exception of 'distance', which seems to work properly.

Affected system:
MacBook Pro
13-inh, Early 2011
Intel Mac OS X 10.7.3
2.3GHz Intel Core i5
8GB 1333MHz DDR3
Intel HD Graphics 3000 512MB
Vendor ID: 0x8086
Device ID: 0x0126
Intel Inc. -- Intel HD Graphics 3000 OpenGL Engine -- 2.1 APPLE-7.18.11

Also note that in addition to the above-noted tests, glsl-function-refract also crashes, but currently appears to be unused/untested?
Comment 2 Jeff Gilbert [:jgilbert] 2012-04-11 21:32:44 PDT
Chrome does not crash, but it does look like the graphics thread is crashing. The test simply fails there.
Comment 3 Jeff Gilbert [:jgilbert] 2012-04-11 21:49:19 PDT
If this hasn't been file with Apple, we should. The testcase is any vertex shader with something of the form 'dot(float, float)' (or any of the other functions I noted). We should also blocklist the configuration until the fix is shipped. This also wouldn't be hard to emulate, but I don't know if that's Easy or Hard.
Comment 4 Jeff Gilbert [:jgilbert] 2012-04-18 19:02:02 PDT
This is Apple Radar 10670574 according to https://cvs.khronos.org/wiki/index.php/WebGL#Mac_bugs. If we do not blacklist the affected versions, this bug should do that.
Comment 5 Jeff Gilbert [:jgilbert] 2012-07-02 12:02:29 PDT
We should be able to just switch on GLSL math emulation, as in bug 769810.
Comment 6 Jeff Gilbert [:jgilbert] 2012-07-02 12:47:52 PDT
Created attachment 638459 [details] [diff] [review]
patch
Comment 7 Jeff Gilbert [:jgilbert] 2012-07-02 12:52:09 PDT
Try build coming at:
https://tbpl.mozilla.org/?tree=Try&rev=77f416f13a6a

We'll need to run the testcase on a currently-affected mac to check, though. Try is already running this without problem.
Comment 8 Jeff Gilbert [:jgilbert] 2012-07-05 15:43:19 PDT
Try builds are at:
http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/jgilbert@mozilla.com-77f416f13a6a/
Comment 9 Jeff Gilbert [:jgilbert] 2012-07-05 17:30:24 PDT
Created attachment 639530 [details] [diff] [review]
patch

R+ carried forward. Bit-rot update.
Comment 10 Benoit Jacob [:bjacob] (mostly away) 2012-07-05 18:02:48 PDT
With this patch, on a macbook air, among all the test pages in the 1.0.1 conformance suite under glsl/functions/,
 - faceforward crashes
 - asin and gentype fail but dont crash,
 - all other pages succeed.
Comment 11 Benoit Jacob [:bjacob] (mostly away) 2012-07-05 18:18:15 PDT
On current Nightly, this crash and these 2 page failures also occur. So, there is no regression here.

Land away!

Note You need to log in before you can comment on or make changes to this bug.