Closed
Bug 1300486
Opened 8 years ago
Closed 8 years ago
Crash when running Basemark Web 3.0
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
VERIFIED
DUPLICATE
of bug 1300932
People
(Reporter: cynthiatang, Assigned: jerry)
Details
Attachments
(1 file)
1.08 KB,
patch
|
jgilbert
:
review-
|
Details | Diff | Splinter Review |
We'd like to use Basemark Web 3.0 to measure real-world client-side performance. Firefox crashes. But Chrome works well.
1. Lunch Firefox browser
2. Go "web.basemark.com"
3. Tap on "Start" button
Actual Result:
- Firefox crashes.
- Video for Firefox: https://www.youtube.com/watch?v=fp2207nRa-U
- Video for Chrome: https://www.youtube.com/watch?v=InXDf_d3cbI
Expected Result:
- No crash.
Reproduction rate: 10/10
Device: Nexus 5
OS Version: Android 6.0.1
Firefox Version: Nightly 51.0a1 (2016-09-04)
Comment 1•8 years ago
|
||
I succeeded to reproduce the crash with my nexus-5 and nightly.
https://crash-stats.mozilla.com/report/index/6c360877-c460-401e-85ac-1cb8c2160906
Updated•8 years ago
|
Component: Graphics, Panning and Zooming → Canvas: WebGL
Product: Firefox for Android → Core
Assignee | ||
Comment 2•8 years ago
|
||
From the crash report, it looks like the device doesn't support "draw_buffers".
Form https://bugzilla.mozilla.org/show_bug.cgi?id=1056947#c12 ,
The device which supports WebGL2 might not support "draw_buffers".
https://hg.mozilla.org/mozilla-unified/annotate/dbe4b47941c7/dom/canvas/WebGLFramebuffer.cpp#l1137
I think we should only check the "IsExtensionEnabled(drawBufferExt)" here.
Assignee: nobody → hshih
Status: NEW → ASSIGNED
Assignee | ||
Comment 3•8 years ago
|
||
Here are the usage of drawBuffers() calls.
https://dxr.mozilla.org/mozilla-central/search?q=fDrawBuffers&redirect=false
Most of them are called from the webgl drawBuffer extension.
And the GLScreenBuffer::SetDrawBuffer() also has draw_buffers checking. So it's fine to use drawBuffers() call.
https://dxr.mozilla.org/mozilla-central/rev/8c9c4e816e86f903c1d820f3f29715dc070a5a4a/gfx/gl/GLScreenBuffer.cpp#693
Attachment #8788548 -
Flags: review?(jgilbert)
Comment 4•8 years ago
|
||
Comment on attachment 8788548 [details] [diff] [review]
check whether the WEBGL_draw_buffers extension exist before use DrawBuffers() call. v1
Review of attachment 8788548 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/canvas/WebGLFramebuffer.cpp
@@ +1133,5 @@
> this->mContext->gl->fDrawBuffers(list.size(), list.data());
> };
>
> const auto drawBufferExt = WebGLExtensionID::WEBGL_draw_buffers;
> + const bool hasDrawBuffers = mContext->IsExtensionEnabled(drawBufferExt);
This extension went core in WebGL2, so the extension won't be enabled.
Attachment #8788548 -
Flags: review?(jgilbert) → review-
Assignee | ||
Updated•8 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Assignee | ||
Comment 6•8 years ago
|
||
Bug 1300932 was resolved, could you please test the basemark page again?
Flags: needinfo?(ctang)
Reporter | ||
Comment 7•8 years ago
|
||
Hi Jerry,
It works. Thanks for your help.
Verified:
Device: Nexus 5
OS Version: Android 6.0.1
Firefox Version: Nightly 51.0a1 (2016-09-11)
Status: RESOLVED → VERIFIED
Flags: needinfo?(ctang)
You need to log in
before you can comment on or make changes to this bug.
Description
•