Closed Bug 691354 Opened 13 years ago Closed 13 years ago

GL layers on Android: Most reftest failures are caused by pixels values being 'slightly' off

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla10

People

(Reporter: ajuma, Assigned: BenWa)

References

Details

Attachments

(6 files, 2 obsolete files)

With GL layers enabled on Android, several reftests are failing (Bug 676831 flagged many such tests). It turns out that virtually all of these failures are caused by pixel values having one or more channels off by 4 or 8 (e.g., instead of (255,255,255), we get (247,255,247)).

Interestingly, if we require GL to always use nearest (rather than linear) filtering, all but one of the reftest failures are resolved. We wouldn't want to land such a change since, among other things, it makes zooming look ugly, but this might help point us in the direction of the real problem.
What happens if you turn off the MOZ_GFX_OPTIMIZE_MOBILE => nearest hacks in bug 688104?
(In reply to Chris Jones [:cjones] [:warhammer] from comment #1)
> What happens if you turn off the MOZ_GFX_OPTIMIZE_MOBILE => nearest hacks in
> bug 688104?

Even with those hacks turned off, we get the same problem.
Depends on: 692194
The problem seems to be caused by the use of LINEAR filter with TiledTextureImage with large textures. The following patch changes the leakage to a clear pattern on the right edge of the rectangle.

-    mTileSize = mGL->GetMaxTextureSize();
+    mTileSize = 512;//mGL->GetMaxTextureSize();
And the test passes with a 256 tile size.
Attached patch ShaderHackingSplinter Review
Posting some shader hacking that I worked on with Jeff to get an idea of what is going on. Our general belief is that it is related to precision but we don't understand the problem.
Attached patch patch (obsolete) — Splinter Review
More of a work around then a fix unfortunately.
Attachment #565391 - Flags: review?(jmuizelaar)
With these two patch applied we fail 3 tests and pass 3 test that !layerOpenGL fails.

~/mozilla/mozilla-central/tree> find . -name "reftest.list" | xargs grep "Android&&"
./layout/reftests/text-overflow/reftest.list:fails-if(Android&&layersOpenGL) HTTP(..) == block-padding.html block-padding-ref.html
./layout/reftests/canvas/reftest.list:fails-if(Android&&layersOpenGL) == image-rendering-test.html image-rendering-ref.html
./layout/reftests/canvas/reftest.list:fails-if(Android&&layersOpenGL) == image-shadow.html image-shadow-ref.html
./layout/reftests/svg/reftest.list:fails-if(Android&&!layersOpenGL) == dynamic-conditions-01.svg pass.svg # bug 652050
./layout/reftests/svg/reftest.list:fails-if(Android&&!layersOpenGL) == dynamic-switch-01.svg pass.svg # bug 652050
./layout/reftests/svg/reftest.list:fails-if(Android&&!layersOpenGL) == switch-01.svg pass.svg # bug 652050
Attachment #566380 - Flags: review?(jmuizelaar)
Attachment #566380 - Flags: review?(jmuizelaar) → review+
Attachment #565391 - Flags: review?(jmuizelaar) → review+
Attached patch patch v2 (handle 3d transforms) (obsolete) — Splinter Review
Attachment #565391 - Attachment is obsolete: true
Attachment #567165 - Flags: review?(jmuizelaar)
Attachment #567165 - Attachment is obsolete: true
Attachment #567165 - Flags: review?(jmuizelaar)
Assignee: nobody → bgirard
Status: NEW → ASSIGNED
Attachment #567168 - Flags: review?(jmuizelaar)
Attachment #567168 - Flags: review?(jmuizelaar) → review+
https://hg.mozilla.org/mozilla-central/rev/5061db810f1f
https://hg.mozilla.org/mozilla-central/rev/cd9fe4275983
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla10
Still need to land test changes. I was waiting on TBPL results to compare my local results with tinderbox, currently the tree is closed.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
https://hg.mozilla.org/mozilla-central/rev/a456c129a2c3
Status: REOPENED → RESOLVED
Closed: 13 years ago13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: