Closed
Bug 1109708
Opened 10 years ago
Closed 9 years ago
WegGL not displaying on FF34 with older hardware
Categories
(Core :: Graphics: CanvasWebGL, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: lukebenes, Unassigned)
References
Details
(Whiteboard: gfx-noted)
User Agent: Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0
Build ID: 20141126041045
Steps to reproduce:
Go to any WebGL game or demo like http://get.webgl.org/
or
http://people.mozilla.org/~eakhgari/es2gears.html
Actual results:
Page will load and FPS counter will run, but no WebGL content is displayed
Expected results:
WebGL content should be displayed like FF32 and earlier.
I have had no issue running WebGL demos and playinig WebGL games on this computer since FF4. It completely stopped working in FF33 ( Bug 1085153 ). And is now working but not displaying in FF34.
Adapter Description ATI MOBILITY RADEON X1400
Adapter Drivers atiumdag atiumdva atitmmxx
Adapter RAM Unknown
Device ID 0x7145
Direct2D Enabled Blocked for your graphics driver version. Try updating your graphics driver to version 10.6 or newer.
DirectWrite Enabled false (6.2.9200.16571)
Driver Date 2-10-2010
Driver Version 8.593.100.0
GPU #2 Active false
GPU Accelerated Windows 0/3 Basic (OMTC) Blocked for your graphics driver version. Try updating your graphics driver to version 10.6 or newer.
Subsys ID 20031028
Vendor ID 0x1002
WebGL Renderer Google Inc. -- ANGLE (ATI MOBILITY RADEON X1400 Direct3D9Ex vs_3_0 ps_3_0)
windowLayerManagerRemote true
AzureCanvasBackend skia
AzureContentBackend cairo
AzureFallbackCanvasBackend cairo
AzureSkiaAccelerated 0
Important Modified Preferences
webgl.force-enabled true
Updated•10 years ago
|
Component: Untriaged → Canvas: WebGL
Product: Firefox → Core
Tested with nightly: 37.0a1 (2014-12-27)
and the WegGL canvas is still blank on most apps. Examples of apps that work FF32 but are broken on FF33+
http://kripken.github.io/box2d.js/webgl_demo/box2d.html?500
http://www.esenthel.com/
https://developer.mozilla.org/en-US/demos/detail/bananabread
http://kripken.github.io/ammo.js/examples/new/ammo.html
With 37.01a very simple demos like
http://people.mozilla.org/~eakhgari/es2gears.html and https://get.webgl.org/
are working, so progress is being made over FF34.
Tested again with 37.0a1 (2015-01-06). Same issues with complex scenes. They are black and/or missing objects. In addition to the 4 demos above, these also do not work with FF33-FF37 under Win7.
http://www.spacegoo.com/wingsuit/
http://alteredqualia.com/three/examples/webgl_materials_skin.html
Note all of these 6 demos worked in FF <= 32, IE 11 and Chrome 41.
No change in FF 38.0a1 (2015-01-15)
Complex WebGL demos that were working in FF32/Chrome/IE 11 are still black or suffering from some draw order bug. Examples include:
http://www.esenthel.com/
http://kripken.github.io/box2d.js/webgl_demo/box2d.html?500
https://developer.mozilla.org/en-US/demos/detail/bananabread
http://kripken.github.io/ammo.js/examples/new/ammo.html
http://www.spacegoo.com/wingsuit/
http://alteredqualia.com/three/examples/webgl_materials_skin.html
Comment 4•10 years ago
|
||
Do things work if you disable OMTC?
ie. set layers.offmainthreadcomposition.enabled to false?
Comment 5•10 years ago
|
||
Also, if you could get a regression window for the change from "not working" to "now working but not displaying" that would be very valuable.
Here are the instructions:
http://mozilla.github.io/mozregression/
Jeff Muizelaar,
Thanks for looking into this. I tested both FF 35.0 and 38.0a1(2015-01-19) on Win 7 laptop with X1300. Toggling layers.offmainthreadcomposition.enabled = false resulted in no change. No complex WebGL apps rendered correctly including the 6 examples listed above. I quickly checked my XP desktop with FF 35 and toggling layers.offmainthreadcomposition.enabled did not help that machine either.
When I boot to Ubuntu, WebGL continues to work fine on FF35, so this is likely an ANGLE issue. I first noticed this issue with FF 33 see Bug 1085153. Chrome at the time also stopped working. So I checked Chrome Canary and it was giving a black screen just like FF is now. But I just checked and all of the demos above are now working fine in Chrome 42.0.2280.2 canary.
Chrome Canary reports ANGLE commit id 2a30ccefd0c4. Unless 38.0a1(2015-01-19) is running that version of ANGLE or a more recent one, I think that is the source of this problem. If you think it's something else, I can still run mozregression/.
Comment 7•10 years ago
|
||
Running mozregression will still be useful in confirming the issue even if it is ANGLE.
OK, I ran a mozregression using the following input:
Error, WebGLis unavailable Error Same as Bug 1085153 -> Good
No Error, Blank/Black WebGl canvas -> Bad
When I finished here were the results:
LOG: MainThread Bisector INFO Narrowed nightly regression window from [
2014-08-28, 2014-08-30] (2 days) to [2014-08-28, 2014-08-29] (1 days) (~0 steps
left)
LOG: MainThread Bisector INFO Got as far as we can go bisecting nightli
es...
LOG: MainThread Bisector INFO Last good revision: 3be45b58fc47
LOG: MainThread Bisector INFO First bad revision: d697d649c765
LOG: MainThread Bisector INFO Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=3be45b58fc47&tocha
nge=d697d649c765
The last good commit gave an error message and the first bad commit displayed a blank openGL canvas. Could this the the commit that stopped the error message?
Jeff Gilbert — Bug 996266 - Fall back from failed WebGL context creation attribs. - r=kamidphish,bjacob
The initial cause of WebGL to stop working in FF33 was a bump in ANGLE version, correct?
Comment 9•10 years ago
|
||
Jeff G, can you check which aspects Jeff M is covering, and lets split up the work and get this handled, angle problem or not...
Flags: needinfo?(jgilbert)
Reporter | ||
Comment 10•10 years ago
|
||
On a X1300 in Nightly 38.0a1 (2015-01-29), the following demos only show a black window:
http://www.esenthel.com/?id=live_demo
http://codepen.io/anon/pen/XJMQwV
http://jsfiddle.net/f17Lz5ux/1316/
http://www.goodboydigital.com/pixijs/examples/25/
https://dl.dropboxusercontent.com/u/40949268/Bugs/ff33_canvas_toDataURL_fail/test.html
http://www.spacegoo.com/wingsuit/# - can click start, but in game all back
Show something but still not correct:
https://dl.dropboxusercontent.com/u/40949268/Bugs/ff33_canvas_toDataURL_fail/test.html - 80 pixels failed
http://kripken.github.io/box2d.js/webgl_demo/box2d.html?500 - Boxes disappear on bottom 1/2
http://kripken.github.io/ammo.js/examples/new/ammo.html - Boxes disappear on bottom 1/2
http://alteredqualia.com/three/examples/webgl_materials_skin.html - black/dark/missing textures
Comment 11•10 years ago
|
||
This is multi-monitor system? I assume things are still bad with a single display?
Reporter | ||
Comment 12•10 years ago
|
||
@Milan Sreckovic
Both my Radeon X800 XP Desktop and my X1300 Win 7 laptop have a single display. These demos all work fine on FF <=32 and Chrome Canary.
Comment 13•10 years ago
|
||
Sorry, Luke, my bad. I mixed the windows and displays.
Reporter | ||
Comment 14•10 years ago
|
||
:jrmuizel
Is there any additional data like console msgs or debug info that I can give you guys to help determine why WebGL is broken on FF32+?
http://codepen.io/anon/pen/XJMQwV
Seems like a simple test case. Also Chrome passes all of the following 1.0.2 WebGL Conformance test, but FF fails with older hardware:
conformance/context/context-attributes-alpha-depth-stencil-antialias.html (96 of 101 passed)
failed: gl.getParameter(gl.DEPTH_BITS) >= 16 should be true. Was false.
failed: gl.getParameter(gl.STENCIL_BITS) >= 8 should be true. Was false.
failed: gl.getParameter(gl.DEPTH_BITS) >= 16 should be true. Was false.
failed: gl.getParameter(gl.STENCIL_BITS) >= 8 should be true. Was false.
failed: gl.getParameter(gl.DEPTH_BITS) >= 16 should be true. Was false.
Bug 1024151 only resolved this issue on newer hardware. Could it be causing the black screen?
conformance/renderbuffers/framebuffer-object-attachment.html (454 of 481 passed)
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) returned 36054
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION :
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION :
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION :
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: should be green
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
failed: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION :
failed: should be green
failed: getError expected: NO_ERROR. Was INVALID_FRAMEBUFFER_OPERATION :
conformance/renderbuffers/framebuffer-state-restoration.html (15 of 19 passed)
failed: should still be green
failed: should still be green
failed: should still be green
failed: should still be green
conformance/state/gl-object-get-calls.html (100 of 101 passed)
failed: gl.checkFramebufferStatus(gl.FRAMEBUFFER) should be 36053. Was 36054.
conformance/textures/copy-tex-image-2d-formats.html (39 of 51 passed)
failed: getError expected: NO_ERROR. Was OUT_OF_MEMORY : should be able to copyTexImage2D LUMINANCE from RGBA
failed: should be 64,64,64,255
failed: getError expected: NO_ERROR. Was OUT_OF_MEMORY : should be able to copyTexImage2D LUMINANCE_ALPHA from RGBA
failed: should be 64,64,64,127
failed: getError expected: NO_ERROR. Was OUT_OF_MEMORY : should be able to copyTexImage2D LUMINANCE from RGB
failed: should be 64,64,64,255
failed: getError expected: NO_ERROR. Was OUT_OF_MEMORY : should be able to copyTexImage2D LUMINANCE from RGBA
failed: should be 64,64,64,255
failed: getError expected: NO_ERROR. Was OUT_OF_MEMORY : should be able to copyTexImage2D LUMINANCE_ALPHA from RGBA
failed: should be 64,64,64,127
failed: getError expected: NO_ERROR. Was OUT_OF_MEMORY : should be able to copyTexImage2D LUMINANCE from RGB
failed: should be 64,64,64,255
Any of these failures hint at what's going on?
Updated•10 years ago
|
Whiteboard: gfx-noted
Comment 16•10 years ago
|
||
Can you post your about:support from FF32? I assume the above about:support information is from FF33?
Flags: needinfo?(lukebenes)
Reporter | ||
Comment 17•10 years ago
|
||
Adapter Description ATI MOBILITY RADEON X1400
Adapter Drivers atiumdag atiumdva atitmmxx
Adapter RAM Unknown
Device ID 0x7145
Direct2D Enabled Blocked for your graphics driver version. Try updating your graphics driver to version 9.6 or newer.
DirectWrite Enabled false (6.2.9200.16571)
Driver Date 2-10-2010
Driver Version 8.593.100.0
GPU #2 Active false
GPU Accelerated Windows 0/3 Basic (OMTC) Blocked for your graphics driver version. Try updating your graphics driver to version 9.6 or newer.
Subsys ID 20031028
Vendor ID 0x1002
WebGL Renderer Google Inc. -- ANGLE (ATI MOBILITY RADEON X1400 Direct3D9Ex vs_3_0 ps_3_0)
windowLayerManagerRemote true
AzureCanvasBackend skia
AzureContentBackend cairo
AzureFallbackCanvasBackend cairo
AzureSkiaAccelerated 0
So quick recap. WebGL worked FF 4-32. In FF 33 and chrome 40 -> "WebGL it is disabled or unavailable" Chrome 41 WEbGL worked as before, but FF gives a black screen with the ANGLE backend.
Comment 18•10 years ago
|
||
I'm not going to get a chance to look at this more this week as we had some emergency work to do for FF37
Flags: needinfo?(jmuizelaar)
Updated•10 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Reporter | ||
Comment 19•10 years ago
|
||
:jrmuizel
OK, no rush. Looking through the bug tracker, I think I found where the issue was reported and fixed for Chrome's ANGLE.
https://code.google.com/p/chromium/issues/detail?id=412221
This was fixed by by removing fallback format support for D3D9 texture formats
a chrome dev with ATI hardware reported these errors in chrome:
[300:4944:1009/035140:ERROR:gles2_cmd_decoder.cc(3666)] : GLES2DecoderImpl::ResizeOffscreenFrameBuffer failed because offscreen FBO was incomplete.
[300:4944:1009/035140:ERROR:gles2_cmd_decoder.cc(2591)] : Could not allocate offscreen buffer storage.
This jives with the buffer and texture webgl conformance tests that fail on ATI hardware.
Are there plans to sync with upstream ANGLE instead of just cherry picking patches?
Reporter | ||
Comment 20•10 years ago
|
||
I took a look at the web console log. The errors match the issue the framebuffer issue Chrome devs fixed in ANGLE:
all the three.js demos:
Error: WebGL: clear: incomplete framebuffer three.js:17970:2
Error: WebGL: drawElements: incomplete framebuffer three.js:20415:4
Error: WebGL: readPixels: incomplete framebuffer
http://www.esenthel.com/
Error: WebGL: renderbufferStorage: `internalFormat`: Invalid enum: 0x81a6 (DEPTH_COMPONENT24). Application.js:14020:52
Error: WebGL: renderbufferStorage: `internalFormat`: Invalid enum: 0x81a7 (DEPTH_COMPONENT32). Application.js:14020:52
Error: WebGL: clear: incomplete framebuffer
Are there plans to synchronize the ANGLE code base, or could we cherry pick the related patches for
https://code.google.com/p/chromium/issues/detail?id=412221 ?
Updated•10 years ago
|
Flags: needinfo?(jmuizelaar)
Updated•9 years ago
|
Flags: needinfo?(jmuizelaar)
Updated•9 years ago
|
Flags: needinfo?(jmuizelaar)
Comment 21•9 years ago
|
||
(In reply to Luke from comment #19)
> :jrmuizel
> OK, no rush. Looking through the bug tracker, I think I found where the
> issue was reported and fixed for Chrome's ANGLE.
> https://code.google.com/p/chromium/issues/detail?id=412221
> This was fixed by by removing fallback format support for D3D9 texture
> formats
>
> a chrome dev with ATI hardware reported these errors in chrome:
> [300:4944:1009/035140:ERROR:gles2_cmd_decoder.cc(3666)] :
> GLES2DecoderImpl::ResizeOffscreenFrameBuffer failed because offscreen FBO
> was incomplete.
> [300:4944:1009/035140:ERROR:gles2_cmd_decoder.cc(2591)] : Could not allocate
> offscreen buffer storage.
>
> This jives with the buffer and texture webgl conformance tests that fail on
> ATI hardware.
>
> Are there plans to sync with upstream ANGLE instead of just cherry picking
> patches?
If this is the case, we probably have the fix for this from our more recent ANGLE updates. Please retest?
Flags: needinfo?(lukebenes)
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(jgilbert)
Reporter | ||
Comment 22•9 years ago
|
||
:jgilbert]
I'm happy to report that all of the simple tests such as:
http://codepen.io/anon/pen/XJMQwV
http://jsfiddle.net/f17Lz5ux/1316/
http://www.goodboydigital.com/pixijs/examples/25/
along with the bananabread demo
Are working again now along with the webgl conformance tests that failed with framebuffer errors
Unfortunately, now http://www.esenthel.com and all of the three.js demos stopped working with new issues.
These demos are still working fine in Chrome, so hopefully this will be fixed in the next angle update.
Flags: needinfo?(lukebenes)
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
(In reply to Luke from comment #22)
> ...
>
> Unfortunately, now http://www.esenthel.com and all of the three.js demos
> stopped working with new issues.
>
> These demos are still working fine in Chrome, so hopefully this will be
> fixed in the next angle update.
Any chance you could open a Core/Canvas: WebGL bug for this? I want to make sure we don't miss it, while we're chasing a few other three.js related problems (just make sure there is three.js in the description.)
Thanks!
You need to log in
before you can comment on or make changes to this bug.
Description
•