Closed
Bug 1354997
Opened 8 years ago
Closed 8 years ago
OOM @ libglesv2 while compiling WebGL shader
Categories
(Core :: Graphics: CanvasWebGL, defect, P3)
Tracking
()
RESOLVED
FIXED
mozilla58
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox56 | --- | wontfix |
firefox57 | --- | wontfix |
firefox58 | --- | fixed |
People
(Reporter: aral.yaman, Assigned: cleu)
References
Details
(Keywords: crash, Whiteboard: [gfx-noted])
Attachments
(2 files)
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0
Build ID: 20170409123541
Steps to reproduce:
Open Crash.html
Wait ~ 1min -> the tab is going to crash because of out of memory.
Actual results:
Passing a struct to a bool constructor causes the issue:
precision mediump float ;
struct my_struct { float f ; };
my_struct a = my_struct (1.0 );
void main ( void )
{
bool test = bool(a);
}
Expected results:
No crash see Chrome
Reporter | ||
Updated•8 years ago
|
OS: Unspecified → Windows 10
Severity: normal → critical
Component: Untriaged → Canvas: WebGL
Keywords: crash
Product: Firefox → Core
Hardware: Unspecified → x86_64
Summary: OOM @ libglesv2 while compiling WebGl shader → OOM @ libglesv2 while compiling WebGL shader
Comment 1•8 years ago
|
||
No problems seem to happen on Mac. So might be Windows specific. Something in angle maybe?
Comment 2•8 years ago
|
||
Angle was recently (two days ago) updated on nightly (bug 1347866). We should re-check to see if it still happens after the update.
Updated•8 years ago
|
Whiteboard: [gfx-noted]
Assignee | ||
Comment 3•8 years ago
|
||
This issue still happens in the latest nightly build, I will take a look into it.
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → cleu
Assignee | ||
Updated•8 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Assignee | ||
Comment 4•8 years ago
|
||
This OOM is caused by a infinitely expanding intermediate shader string in ANGLE, so I think it is an ANGLE bug.
There must be some commit in ANGLE trunk fix this problem.
Assignee | ||
Comment 5•8 years ago
|
||
OK, I think ANGLE does not fix this problem even in their master branch.
It seems that chromium has some kind of "bail out" mechanism in JavaScript, so this faulty shader code doesn't even reach ANGLE.
Assignee | ||
Comment 6•8 years ago
|
||
I wrote a simple c++ program feeding the shader code directly to ANGLE translator and it crashes even in ANGLE master branch.
So we can confirm ANGLE cannot handle this case properly.
I have submit an issue in crbug.
https://bugs.chromium.org/p/angleproject/issues/detail?id=2036
Comment hidden (mozreview-request) |
Comment 8•8 years ago
|
||
mozreview-review |
Comment on attachment 8871140 [details]
Bug 1354997 - Disallow structs as scalar/vector constructor arguments (Cherry-picked from ANGLE project Issue 2036);
https://reviewboard.mozilla.org/r/142652/#review147188
Attachment #8871140 -
Flags: review?(jgilbert) → review+
Assignee | ||
Comment 9•8 years ago
|
||
It seems that Google's fix for this bug will break some of the webgl conformance tests.
According to the issue owner there, passing a struct into a boolean constructor in ESSL is not explicitly disallowed in the spec, and they decide to blacklist this situation, which leads to failures to some edge case test.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=bb54518a3de7
Maybe we should have some discussion about the spec to make it clear?
Flags: needinfo?(jgilbert)
Updated•8 years ago
|
Priority: -- → P3
Assignee | ||
Comment 11•8 years ago
|
||
It has been fixed after ANGLE is updated.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Updated•8 years ago
|
status-firefox56:
--- → wontfix
status-firefox57:
--- → wontfix
status-firefox58:
--- → fixed
status-firefox-esr52:
--- → unaffected
Target Milestone: --- → mozilla58
You need to log in
before you can comment on or make changes to this bug.
Description
•