Closed Bug 1300486 Opened 8 years ago Closed 8 years ago

Crash when running Basemark Web 3.0

Categories

(Core :: Graphics: CanvasWebGL, defect)

defect
Not set
normal

Tracking

()

VERIFIED DUPLICATE of bug 1300932

People

(Reporter: cynthiatang, Assigned: jerry)

Details

Attachments

(1 file)

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)
I succeeded to reproduce the crash with my nexus-5 and nightly. https://crash-stats.mozilla.com/report/index/6c360877-c460-401e-85ac-1cb8c2160906
Component: Graphics, Panning and Zooming → Canvas: WebGL
Product: Firefox for Android → Core
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
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 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-
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
Bug 1300932 was resolved, could you please test the basemark page again?
Flags: needinfo?(ctang)
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.

Attachment

General

Created:
Updated:
Size: