Closed Bug 885623 Opened 7 years ago Closed 7 years ago

Canvas radial gradient tests too precise

Categories

(Core :: Canvas: 2D, defect)

ARM
All
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla25

People

(Reporter: snorp, Assigned: snorp)

References

Details

Attachments

(1 file)

The radial gradient mochitests are a little bit too precise. There are apparently some rounding differences in SkiaGL compared to software (and cairo), so we end up with slightly different (but not significantly wrong) results.

The isPixel() function in the tests does have code to fuzz the color comparison, but there are in the case test_2d.gradient.radial.inside3.html, the it's the color stop that is rounded incorrectly. Maybe that's a big deal, I'm not sure, but I would guess that in real world usage it doesn't matter all that much.

It would be nice if we had a more reftest-like way to test things like this instead of picking one pixel and comparing it to some well-known (and exact) value.
The entire list of gradient tests we fail with SkiaGL is below. A lot of the colors could just be fuzzed I think. The ones that look like they are off by a lot are just off by one pixel in the gradient, I think (due to color stop rounding?).

409 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 1,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
410 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 50,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
411 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 98,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
412 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 1,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
413 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 50,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
414 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 98,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
415 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 1,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
416 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 50,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
417 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.front.html | pixel 98,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
420 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 1,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
421 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 50,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
422 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 98,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
423 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 1,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
424 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 50,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
425 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 98,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
426 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 1,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
427 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 50,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
428 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.cone.top.html | pixel 98,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
431 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 1,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
432 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 50,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
433 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 98,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
434 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 1,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
435 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 50,25 is 255,0,0,255; expected 0,255,0,255 +/- 0
436 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 98,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
437 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 1,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
438 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 50,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
439 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside2.html | pixel 98,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
442 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 1,1 is 10,244,0,255; expected 0,255,0,255 +/- 0
443 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 50,1 is 10,244,0,255; expected 0,255,0,255 +/- 0
444 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 98,1 is 10,244,0,255; expected 0,255,0,255 +/- 0
445 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 1,25 is 10,244,0,255; expected 0,255,0,255 +/- 0
446 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 50,25 is 255,0,0,255; expected 0,255,0,255 +/- 0
447 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 98,25 is 10,244,0,255; expected 0,255,0,255 +/- 0
448 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 1,48 is 10,244,0,255; expected 0,255,0,255 +/- 0
449 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 50,48 is 10,244,0,255; expected 0,255,0,255 +/- 0
450 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.inside3.html | pixel 98,48 is 10,244,0,255; expected 0,255,0,255 +/- 0
453 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 1,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
454 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 50,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
455 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 98,1 is 1,254,0,255; expected 0,255,0,255 +/- 0
456 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 1,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
457 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 50,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
458 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 98,25 is 1,254,0,255; expected 0,255,0,255 +/- 0
459 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 1,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
460 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 50,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
461 ERROR TEST-UNEXPECTED-FAIL | /tests/content/canvas/test/test_2d.gradient.radial.outside1.html | pixel 98,48 is 1,254,0,255; expected 0,255,0,255 +/- 0
This may be related to bug 687188 (although that was filed against the software rasteriser).
It looks like maybe this is a known issue with Skia. http://code.google.com/p/skia/issues/detail?id=517
Well at least some of the failures are similar to that bug. Not all of them.
Attachment #766757 - Flags: review?(gwright) → review+
https://hg.mozilla.org/mozilla-central/rev/a96c300082c8
Assignee: nobody → snorp
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
You need to log in before you can comment on or make changes to this bug.