Closed Bug 833779 Opened 13 years ago Closed 12 years ago

WebGL Conformance context/context-attributes-alpha-depth-stencil-antialias.html has errors

Categories

(Core :: Graphics: CanvasWebGL, defect)

18 Branch
x86
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 982477

People

(Reporter: pyalot, Unassigned)

References

Details

(Whiteboard: webgl-conformance)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0 Build ID: 20130104151925 Steps to reproduce: Run: https://www.khronos.org/registry/webgl/sdk/tests/conformance/context/context-attributes-alpha-depth-stencil-antialias.html Actual results: These errors are on all platforms failed: gl.getParameter(gl.DEPTH_BITS) == 0 should be true. Was false. failed: WebGL implementation provided a depth buffer when it should not have Two errors are additionally appearing only on windows. failed: pixel should be 0,0,0,255. Was 255,0,0,255. failed: pixel should be 0,0,0,255. Was 255,0,0,255. Expected results: The conformance test should pass
Test performed on all platforms with the same browsers (Chrome: 24.0.1312.52, Firefox: 18.0) Ubuntu 12.10, Driver Nvidia 304.64, GPU GTX-460): - FF: fails, 2 common errors - Chrome: fails, unrelated error OSX 10.7.4, Driver ATI 7.18.18, GPU ATI Radeon HD 6750M - FF: fails, 2 common errors - Chrome: passes Windows 7, Driver AMD 9.2.0.0, GPU AMD Radeon HD 6900 - FF: fails, 2 common errors and 2 windows specific - Chrome: passes
Component: Untriaged → Canvas: WebGL
Product: Firefox → Core
Whiteboard: webgl-conformance
We are enabling the depth buffer whenever the stencil buffer is enabled, even if the depth buffer is explicitly disabled: http://dxr.mozilla.org/mozilla-central/content/canvas/src/WebGLContext.cpp.html#l329 Removing that line causes the conformance test to pass. I'm not sure why we need to activate the depth buffer when the stencil buffer is active. Perhaps Jeff of Vlad can shed some light on it.
Flags: needinfo?(vladimir)
That line appears to be ancient. I don't remember anything from a recent spec which requires this, so I think we should remove that line.
Flags: needinfo?(vladimir)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Attached patch Proposed patch — — Splinter Review
This patch fails Mochitest 1 on Try for OSX 10.6, 10.7, linux. " FAIL: webGL = getWebGL(1, 1, { depth: false, stencil: true, antialias: false }, [ 0, 0, 0, 1 ], 1, 0) should be non-null. Threw exception Unable to fetch WebGL rendering context for Canvas " ( https://tbpl.mozilla.org/?tree=Try&rev=7cc11d0e79dc ) However, if I download the 10.7 build from the build slave and run it locally (on OSX10.7.5) against content/canvas/test/webgl/conformance/context/context-attributes-alpha-depth-stencil-antialias.html , it passes without errors. I'm not sure how to approach debugging the failures on Try. If you have any suggestions, I'd appreciate it. Thanks!
Attachment #711044 - Flags: feedback?(jgilbert)
It sounds like we're doing something wrong when trying to build a backbuffer with only color and stencil components. I'll try to take a look later today.
I've downloaded and run the Try build on two other linux machines. One of them passes the conformance test with no errors. The other one displays the same errors as the machines on Try. It looks like it might be a driver or OpenGL implementation dependent bug. Maybe some OpenGLimplementations disallow having a stencil buffer without a depth buffer.
Indeed, there are some very weird things drivers do in regards to depth and stencil. We should probably just catch all this at the WebGL layer and give back reasonable results instead of relying on the driver to.
Also, `depth:true` and `stencil:true` are requests, like `antialias:true`. Like antialiasing, we should fall back to disabling them if context creation is failing. (Note that `depth:false` and `stencil:false` (stencil's default!) are requirements, not requests)
See Also: → 996266
Duping this forward, since we're most likely to finish this work there.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Comment on attachment 711044 [details] [diff] [review] Proposed patch Thanks for the patch submission, though!
Attachment #711044 - Flags: feedback?(jgilbert)
Jeff, Was the proposed patch committed? https://www.khronos.org/registry/webgl/sdk/tests/conformance/context/context-attributes-alpha-depth-stencil-antialias.html Only fails for the ANGLE backend. All the tests pass now with the OpenGL backend.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: