Layers acceleration breaks WebGL

RESOLVED WORKSFORME

Status

()

Core
Graphics
RESOLVED WORKSFORME
8 years ago
7 years ago

People

(Reporter: Mitch, Unassigned)

Tracking

Trunk
x86
Windows 7
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: webglsamples, URL)

Attachments

(2 attachments)

(Reporter)

Description

8 years ago
Created attachment 483067 [details]
WebGL Aquarium (layers accelerated, default)

This screenshot was taken with default layers preferences.

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b8pre) Gecko/20101013 Firefox/4.0b8pre

Graphics
Adapter Description: ATI Mobility Radeon HD 3650
Vendor ID: 1002
Device ID: 9591
Adapter RAM: 512
Adapter Drivers: atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64
Driver Version: 8.632.1.2000
Driver Date: 8-17-2009
Direct2D Enabled: true
DirectWrite Enabled: true
GPU Accelerated Windows: 1/1 Direct3D 9
(Reporter)

Comment 1

8 years ago
Created attachment 483069 [details]
WebGL Aquarium (layers not accelerated)

This screenshot was taken with layers acceleration disabled.

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b8pre) Gecko/20101013 Firefox/4.0b8pre

Modified Preferences
layers.accelerate-all: false
layers.accelerate-none: true

Graphics
Adapter Description: ATI Mobility Radeon HD 3650
Vendor ID: 1002
Device ID: 9591
Adapter RAM: 512
Adapter Drivers: atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64
Driver Version: 8.632.1.2000
Driver Date: 8-17-2009
Direct2D Enabled: true
DirectWrite Enabled: true
GPU Accelerated Windows: 0/1

Updated

8 years ago
Whiteboard: webglsamples
Even with layers acceleration disabled, this looks bad (the fish should not be blue like that, they should be textured and look like fish).

Have you installed the DirectX runtime?
http://www.google.com/search?q=directx+runtime

This allows to use ANGLE for WebGL rendering, and with the final FF4 we should ship the relevant DLL so it's automatic. Does that fix it for you?
(Reporter)

Comment 3

8 years ago
I cannot reproduce the partially-working results with layers acceleration disabled which I previously could. I consistently get the same results now regardless of acceleration preferences.

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b10pre) Gecko/20110111 Firefox/4.0b10pre

Modified Preferences
layers.use-d3d10: true

Graphics
Adapter Description: ATI Mobility Radeon HD 3650
Vendor ID: 1002
Device ID: 9591
Adapter RAM: 512
Adapter Drivers: atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64
Driver Version: 8.632.1.2000
Driver Date: 8-17-2009
Direct2D Enabled: true
DirectWrite Enabled: true
WebGL Renderer: TransGaming Inc. -- ANGLE -- OpenGL ES 2.0 (git-devel Jan 11 2011 04:14:27)
GPU Accelerated Windows: 1/1 Direct3D 10

Below are results of this WebGL Conformance Test Runner:
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/webgl-conformance-tests.html

Results: (4891 of 4996 passed, 4 timed out)
	

    conformance/array-buffer-crash.html (2 of 2 passed)
    conformance/array-buffer-view-crash.html (2 of 2 passed)
    conformance/array-unit-tests.html(*timeout*)
    conformance/bad-arguments-test.html (108 of 108 passed)
    conformance/buffer-bind-test.html (8 of 8 passed)
    conformance/buffer-data-array-buffer.html (9 of 9 passed)
    conformance/canvas-test.html (16 of 16 passed)
    conformance/constants.html (2 of 2 passed)
    conformance/context-attributes-alpha-depth-stencil-antialias.html (25 of 25 passed)
    conformance/context-lost-restored.html(*timeout*)
    conformance/context-lost.html(*timeout*)
    conformance/context-type-test.html (3 of 3 passed)
    conformance/copy-tex-image-and-sub-image-2d.html (503 of 503 passed)
    conformance/draw-arrays-out-of-bounds.html (33 of 33 passed)
    conformance/draw-elements-out-of-bounds.html (46 of 46 passed)
    conformance/error-reporting.html (22 of 22 passed)
    conformance/framebuffer-object-attachment.html (96 of 96 passed)
    conformance/framebuffer-test.html (26 of 26 passed)
    conformance/get-active-test.html (42 of 42 passed)
    conformance/gl-bind-attrib-location-test.html (13 of 13 passed)
    conformance/gl-clear.html (8 of 8 passed)
    conformance/gl-drawelements.html (7 of 7 passed)
    conformance/gl-enable-enum-test.html (68 of 68 passed)
    conformance/gl-enable-vertex-attrib.html (3 of 3 passed)
    conformance/gl-enum-tests.html (22 of 22 passed)
    conformance/gl-get-active-attribute.html (22 of 22 passed)
    conformance/gl-get-active-uniform.html (61 of 61 passed)
    conformance/gl-get-calls.html (75 of 75 passed)
    conformance/gl-getshadersource.html (3 of 3 passed)
    conformance/gl-getstring.html (7 of 7 passed)
    conformance/gl-min-attribs.html (2 of 3 passed)
        failed: Should render 255,127,64,32
    conformance/gl-min-textures.html (3 of 3 passed)
    conformance/gl-min-uniforms.html (4 of 6 passed)
        failed: Should render 255,127,64,32
        failed: Should render 32,64,127,255
    conformance/gl-object-get-calls.html (86 of 86 passed)
    conformance/gl-pixelstorei.html (13 of 13 passed)
    conformance/gl-scissor-test.html (6 of 6 passed)
    conformance/gl-shader-test.html (3 of 3 passed)
    conformance/gl-teximage.html (47 of 82 passed)
        failed: pixel 128, 15 should be 255, 0, 255, 255 was 0, 0, 0, 255
        failed: pixel 255, 15 should be 0, 0, 255, 255 was 0, 0, 0, 255
        failed: pixel 0, 8 should be 128, 128, 128, 255 was 0, 0, 0, 255
        failed: pixel 128, 8 should be 255, 255, 255, 255 was 0, 0, 0, 255
        failed: pixel 255, 8 should be 0, 255, 255, 255 was 0, 0, 0, 255
        failed: pixel 0, 0 should be 255, 0, 0, 255 was 0, 0, 0, 255
        failed: pixel 128, 0 should be 255, 255, 0, 255 was 0, 0, 0, 255
        failed: pixel 255, 0 should be 0, 255, 0, 255 was 0, 0, 0, 255
        failed: There should be 256 unique values in channel 0. Found 217
        failed: There should be 256 unique values in channel 1. Found 217
        failed: There should be 256 unique values in channel 2. Found 217
        failed: There should be 64 unique values in channel 1. Found 63
        failed: pixels should be same regardless of gamma settings.
        failed: pixels should be same regardless of gamma settings.
        failed: pixels should be same regardless of gamma settings.
        failed: pixels should be same regardless of gamma settings.
        failed: pixels should be same regardless of gamma settings.
        failed: Half the pixels in channel 0 should be < 128,128,128. found 2%
        failed: Half the pixels in channel 1 should be < 128,128,128. found 2%
        failed: Half the pixels in channel 2 should be < 128,128,128. found 2%
        failed: pixel 0, 15 should be 255, 0, 0, 255 was 255, 3, 2, 255
        failed: pixel 128, 15 should be 255, 255, 0, 255 was 254, 254, 31, 255
        failed: pixel 255, 15 should be 255, 0, 0, 255 was 255, 3, 2, 255
        failed: pixel 0, 8 should be 255, 0, 255, 255 was 255, 16, 253, 255
        failed: pixel 128, 8 should be 255, 0, 0, 255 was 255, 3, 2, 255
        failed: pixel 255, 8 should be 0, 255, 0, 255 was 0, 254, 30, 255
        failed: pixel 128, 0 should be 0, 0, 255, 255 was 18, 14, 253, 255
        failed: pixel 255, 0 should be 255, 0, 0, 255 was 255, 3, 2, 255
        failed: pixel 128, 8 should be within 10 units of 0, 0, 255, 255 was 253, 3, 2, 255
        failed: pixel 128, 8 should be within 10 units of 0, 0, 255, 255 was 253, 3, 2, 255
        failed: uploading PNGs with same data but various ICC profiles should generate the same results
        failed: uploading PNGs with same data but various ICC profiles should generate the same results
        failed: uploading PNGs with same data but various ICC profiles should generate the same results
        failed: uploading PNGs with same data but various ICC profiles should generate the same results
        failed: uploading PNGs with same data but various ICC profiles should generate the same results
    conformance/gl-uniform-arrays.html (76 of 76 passed)
    conformance/gl-uniform-bool.html (2 of 2 passed)
    conformance/gl-uniformmatrix4fv.html (10 of 10 passed)
    conformance/gl-unknown-uniform.html (5 of 5 passed)
    conformance/gl-vertex-attrib.html (483 of 483 passed)
    conformance/gl-vertexattribpointer.html (782 of 782 passed)
    conformance/glsl-conformance.html (100 of 101 passed)
        failed: [vshader/fshaderWith256CharacterIdentifier]: shared that uses 256 character identifier should succeed
    conformance/incorrect-context-object-behaviour.html (23 of 23 passed)
    conformance/index-validation-copies-indices.html (7 of 7 passed)
    conformance/index-validation-crash-with-buffer-sub-data.html (2 of 2 passed)
    conformance/index-validation-verifies-too-many-indices.html (4 of 4 passed)
    conformance/index-validation-with-resized-buffer.html (8 of 8 passed)
    conformance/index-validation.html (17 of 17 passed)
    conformance/instanceof-test.html (20 of 20 passed)
    conformance/invalid-UTF-16.html (2 of 2 passed)
    conformance/invalid-passed-params.html (44 of 68 passed)
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
        failed: context.getError() should be 1281. Was 0.
    conformance/is-object.html (25 of 25 passed)
    conformance/methods.html (2 of 2 passed)
    conformance/more-than-65536-points.html (7 of 7 passed)
    conformance/null-object-behaviour.html (44 of 44 passed)
    conformance/null-uniform-location.html (41 of 41 passed)
    conformance/object-deletion-behaviour.html (35 of 35 passed)
    conformance/oes-texture-float.html (5 of 5 passed)
    conformance/origin-clean-conformance.html (12 of 12 passed)
    conformance/point-size.html (2 of 2 passed)
    conformance/program-test.html (62 of 62 passed)
    conformance/read-pixels-pack-alignment.html (82 of 82 passed)
    conformance/read-pixels-test.html (121 of 125 passed)
        failed: getError expected: INVALID_OPERATION. Was INVALID_ENUM : Should not be able to read as RGB / UNSIGNED_BYTE
        failed: getError expected: INVALID_OPERATION. Was INVALID_ENUM : Should not be able to read as RGBA / UNSIGNED_SHORT_5_5_5_1
        failed: getError expected: INVALID_OPERATION. Was INVALID_ENUM : Should not be able to read as RGBA / UNSIGNED_SHORT_4_4_4_4
        failed: getError expected: INVALID_OPERATION. Was INVALID_ENUM : Should not be able to read as ALPHA / UNSIGNED_BYTE
    conformance/renderbuffer-initialization.html (6 of 6 passed)
    conformance/resource-sharing-test.html (3 of 3 passed)
    conformance/tex-image-and-sub-image-2d-with-array-buffer-view.html (193 of 193 passed)
    conformance/tex-image-and-sub-image-2d-with-image-data.html (17 of 17 passed)
    conformance/tex-image-and-sub-image-2d-with-image.html (1 of 9 passed)
        failed: shouldBe 0,255,0
        failed: shouldBe 255,0,0
        failed: shouldBe 255,0,0
        failed: shouldBe 0,255,0
        failed: shouldBe 0,255,0
        failed: shouldBe 255,0,0
        failed: shouldBe 255,0,0
        failed: shouldBe 0,255,0
    conformance/tex-image-and-sub-image-2d-with-video.html(*timeout*)
    conformance/tex-image-and-uniform-binding-bugs.html (6 of 6 passed)
    conformance/tex-image-with-format-and-type.html (73 of 73 passed)
    conformance/tex-image-with-invalid-data.html (8 of 8 passed)
    conformance/tex-input-validation.html (63 of 63 passed)
    conformance/tex-sub-image-2d.html (2 of 2 passed)
    conformance/texparameter-test.html (2 of 2 passed)
    conformance/texture-active-bind-2.html (5 of 5 passed)
    conformance/texture-active-bind.html (10 of 10 passed)
    conformance/texture-complete.html (2 of 2 passed)
    conformance/texture-formats-test.html (84 of 84 passed)
    conformance/texture-npot.html (25 of 26 passed)
        failed: POT cubemap with TEXTURE_MIN_FILTER set to LINEAR_MIPMAP_LINEAR should draw.
    conformance/texture-transparent-pixels-initialized.html (3 of 3 passed)
    conformance/triangle.html (2 of 2 passed)
    conformance/type-conversion-test.html (808 of 808 passed)
    conformance/uniform-location.html (25 of 25 passed)
    conformance/uniform-samplers-test.html (5 of 5 passed)
    conformance/uninitialized-test.html (16 of 19 passed)
        failed: non-zero pixel values are wrong
        failed: non-zero pixel values are wrong
        failed: non-zero pixel values are wrong
    conformance/viewport-unchanged-upon-resize.html (4 of 4 passed)
    conformance/webgl-specific.html (31 of 40 passed)
        failed: gl.stencilMaskSeparate(gl.FRONT, 1) expected: NO_ERROR. Was INVALID_OPERATION.
        failed: gl.drawArrays(gl.TRIANGLES, 0, 0) expected: INVALID_OPERATION. Was NO_ERROR.
        failed: gl.stencilMaskSeparate(gl.BACK, 1) expected: NO_ERROR. Was INVALID_OPERATION.
        failed: gl.stencilFuncSeparate(gl.BACK, gl.ALWAYS, 1, 255) expected: NO_ERROR. Was INVALID_OPERATION.
        failed: gl.drawArrays(gl.TRIANGLES, 0, 0) expected: INVALID_OPERATION. Was NO_ERROR.
        failed: gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, 1, 255) expected: NO_ERROR. Was INVALID_OPERATION.
        failed: gl.stencilFuncSeparate(gl.BACK, gl.ALWAYS, 1, 1) expected: NO_ERROR. Was INVALID_OPERATION.
        failed: gl.drawArrays(gl.TRIANGLES, 0, 0) expected: INVALID_OPERATION. Was NO_ERROR.
        failed: gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, 1, 1) expected: NO_ERROR. Was INVALID_OPERATION.
    more/conformance/constants.html (1 of 1 passed)
    more/conformance/getContext.html (1 of 2 passed)
        failed: testGetWebGL
    more/conformance/methods.html (1 of 1 passed)
    more/conformance/quickCheckAPI.html (0 of 1 passed)
        failed: testValidArgs
    more/conformance/webGLArrays.html (4 of 4 passed)
    more/functions/bindBuffer.html (2 of 2 passed)
    more/functions/bindBufferBadArgs.html (3 of 3 passed)
    more/functions/bindFramebufferLeaveNonZero.html (1 of 1 passed)
    more/functions/bufferData.html (2 of 2 passed)
    more/functions/bufferDataBadArgs.html (1 of 1 passed)
    more/functions/bufferSubData.html (2 of 2 passed)
    more/functions/bufferSubDataBadArgs.html (1 of 1 passed)
    more/functions/copyTexImage2D.html (1 of 2 passed)
        failed: testRoundtrip
    more/functions/copyTexImage2DBadArgs.html (1 of 1 passed)
    more/functions/copyTexSubImage2D.html (1 of 2 passed)
        failed: testRoundtrip
    more/functions/copyTexSubImage2DBadArgs.html (0 of 1 passed)
        failed: testTexImage2D
    more/functions/deleteBufferBadArgs.html (0 of 1 passed)
        failed: testDeleteBuffer
    more/functions/drawArrays.html (2 of 2 passed)
    more/functions/drawArraysOutOfBounds.html (7 of 7 passed)
    more/functions/drawElements.html (2 of 2 passed)
    more/functions/drawElementsBadArgs.html (4 of 5 passed)
        failed: testDrawElementsVBOMultiByte
    more/functions/isTests.html (1 of 1 passed)
    more/functions/readPixels.html (2 of 2 passed)
    more/functions/readPixelsBadArgs.html (3 of 3 passed)
    more/functions/texImage2D.html (2 of 2 passed)
    more/functions/texImage2DBadArgs.html (0 of 1 passed)
        failed: testTexImage2D
    more/functions/texImage2DHTML.html (2 of 2 passed)
    more/functions/texImage2DHTMLBadArgs.html (1 of 1 passed)
    more/functions/texSubImage2D.html (1 of 1 passed)
    more/functions/texSubImage2DBadArgs.html (0 of 1 passed)
        failed: testTexImage2D
    more/functions/texSubImage2DHTML.html (2 of 2 passed)
    more/functions/texSubImage2DHTMLBadArgs.html (0 of 1 passed)
        failed: testTexImage2D
    more/functions/uniformf.html (1 of 1 passed)
    more/functions/uniformfBadArgs.html (1 of 1 passed)
    more/functions/uniformi.html (1 of 1 passed)
    more/functions/uniformiBadArgs.html (0 of 1 passed)
        failed: testUniformf
    more/functions/uniformMatrix.html (1 of 1 passed)
    more/functions/uniformMatrixBadArgs.html (0 of 1 passed)
        failed: testUniformf
    more/functions/vertexAttrib.html (2 of 2 passed)
    more/functions/vertexAttribBadArgs.html (0 of 1 passed)
        failed: testVertexAttrib
    more/functions/vertexAttribPointer.html (1 of 1 passed)
    more/functions/vertexAttribPointerBadArgs.html (1 of 1 passed)
    more/glsl/arrayOutOfBounds.html (9 of 9 passed)
    more/glsl/uniformOutOfBounds.html (10 of 10 passed)
Assignee: nobody → canvas.webgl
> conformance/gl-teximage.html (47 of 82 passed)
>     failed: pixel 128, 15 should be 255, 0, 255, 255 was 0, 0, 0, 255

that also could easily explain a lot of things! You have bad drivers and I don't know if we can do anything about it. Also, since this is only giving bad WebGL rendering and no crash, it doesn't seem to have to block. Especially as the security-sentitive test conformance/renderbuffer-initialization.html passed.
No, that's not bad drivers -- those test failures are all normal, and are outstanding bugs.  The gl-teximage test checks for colorspace conversion and premultiplied alpha pixel store flags, which are not checked in yet.  There are some that don't look familiar though, but they're all ANGLE-specific things; I'll take a look at what's going on.
(Reporter)

Comment 6

7 years ago
The demo works fine now. Resolving as WORKSFORME.
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.