Closed Bug 1040965 Opened 10 years ago Closed 7 years ago

TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.fillText.gradient.html | pixel 15,49 is 63,191,0,255; expected 0,255,0,255 +/- 5 on b2g-desktop in taskcluster docker image only

Categories

(Core :: Graphics: Canvas2D, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: gbrown, Assigned: gbrown)

References

Details

(Whiteboard: [disabled on b2g-desktop])

test_2d.fillText.gradient.html is generally trouble-free and passes consistently on all tbpl test platforms, including b2g-desktop. 

In bug 1005907, I am trying to run b2g-desktop mochitests in a new environment (in a docker image). All tests are passing except for 3 tests -- test_2d.fillText.gradient.html is one of the failing tests:

TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.fillText.gradient.html | pixel 15,49 is 63,191,0,255; expected 0,255,0,255 +/- 5


As far as I can tell, tests are being run in the new, experiment environment the same way as on tbpl: the same arguments to the same mozharness script. Of course, I expect there are timing differences between tbpl and the new, experimental environment. There may also be missing system packages, differences in environment variables, or other unknown differences.
If I dump out pixel values for x=15, I get:

19:54:46     INFO -  2022 INFO TEST-START | /tests/content/canvas/test/test_2d.fillText.gradient.html
19:54:46     INFO -  GYB pixel 15,0 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,1 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,2 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,3 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,4 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,5 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,6 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,7 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,8 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,9 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,10 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,11 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,12 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,13 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,14 is 255,0,0,255
19:54:46     INFO -  GYB pixel 15,15 is 251,3,0,255
19:54:46     INFO -  GYB pixel 15,16 is 243,11,0,255
19:54:46     INFO -  GYB pixel 15,17 is 234,20,0,255
19:54:46     INFO -  GYB pixel 15,18 is 226,28,0,255
19:54:46     INFO -  GYB pixel 15,19 is 217,37,0,255
19:54:46     INFO -  GYB pixel 15,20 is 209,45,0,255
19:54:46     INFO -  GYB pixel 15,21 is 200,54,0,255
19:54:46     INFO -  GYB pixel 15,22 is 191,63,0,255
19:54:46     INFO -  GYB pixel 15,23 is 183,71,0,255
19:54:46     INFO -  GYB pixel 15,24 is 174,80,0,255
19:54:46     INFO -  GYB pixel 15,25 is 166,88,0,255
19:54:46     INFO -  GYB pixel 15,26 is 157,97,0,255
19:54:46     INFO -  GYB pixel 15,27 is 149,105,0,255
19:54:46     INFO -  GYB pixel 15,28 is 140,114,0,255
19:54:46     INFO -  GYB pixel 15,29 is 132,122,0,255
19:54:46     INFO -  GYB pixel 15,30 is 123,131,0,255
19:54:46     INFO -  GYB pixel 15,31 is 115,139,0,255
19:54:46     INFO -  GYB pixel 15,32 is 106,148,0,255
19:54:46     INFO -  GYB pixel 15,33 is 98,156,0,255
19:54:46     INFO -  GYB pixel 15,34 is 89,165,0,255
19:54:46     INFO -  GYB pixel 15,35 is 81,173,0,255
19:54:46     INFO -  GYB pixel 15,36 is 72,182,0,255
19:54:46     INFO -  GYB pixel 15,37 is 63,191,0,255
19:54:46     INFO -  GYB pixel 15,38 is 55,199,0,255
19:54:46     INFO -  GYB pixel 15,39 is 46,208,0,255
19:54:46     INFO -  GYB pixel 15,40 is 38,216,0,255
19:54:46     INFO -  GYB pixel 15,41 is 29,225,0,255
19:54:46     INFO -  GYB pixel 15,42 is 21,233,0,255
19:54:46     INFO -  GYB pixel 15,43 is 12,242,0,255
19:54:46     INFO -  GYB pixel 15,44 is 4,250,0,255
19:54:46     INFO -  GYB pixel 15,45 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,46 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,47 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,48 is 0,255,0,255
19:54:46     INFO -  GYB pixel 15,49 is 0,255,0,255
19:54:46     INFO -  2023 INFO TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.fillText.gradient.html | pixel 15,0 is 0,255,0,255; expected 255,0,0,255 +/- 5

Note that the failure changes with the addition of logging: pixel 15,0 fails, rather than pixel 15, 49.
Dumb question does the size of the window effect this? Are we running a different window size perhaps?
On a production b2g-desktop slave, I see:

$ xdpyinfo | grep dimensions
  dimensions:    1600x1200 pixels (406x305 millimeters)

On the docker image, I run mochitests with:

xvfb-run -s "-screen 0 1600x1200x24" ...

so I think they are the same. Also, if I run 

xvfb-run -s "-screen 0 1000x800x24" ...

this test fails the same way. The test uses a 100x50 canvas.
If b2g-desktop is configured the same as b2g devices, it would be using Skia canvas, and accelerated one at that, and we know there are a number of places where Skia canvas differs from other backends.  This could just be one of those - there is a number of identified differences with gradients and Skia (blocking bug 996611.)
Or difference in fonts?
Thanks Milan. If you can think of something specific I can check to verify the cause, let me know.

For now, I'll just skip this test on b2g-desktop:

https://hg.mozilla.org/integration/mozilla-inbound/rev/47a8597c87d3
Keywords: leave-open
Whiteboard: [disabled on b2g-desktop]
Could you change the gfx.canvas.azure.backends in b2g.js to cairo (from skia) and re-run the test?
It still fails with cairo.
No longer testing b2g.
Assignee: nobody → gbrown
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INVALID
Removing leave-open keyword from resolved bugs, per :sylvestre.
Keywords: leave-open
You need to log in before you can comment on or make changes to this bug.