Closed Bug 1399268 Opened 7 years ago Closed 5 years ago

Transparent "seams" (perhaps for triangulation edges?) along 3D transformed surface

Categories

(Core :: Graphics, defect, P2)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1339664
Tracking Status
firefox-esr52 --- unaffected
firefox55 --- wontfix
firefox56 --- fix-optional
firefox57 --- fix-optional

People

(Reporter: dholbert, Unassigned)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(6 files, 1 obsolete file)

STR: 1. Load https://bugzilla.mozilla.org/attachment.cgi?id=8638364 (testcase from bug 1187209) 2. Look for "seams" along otherwise solid-color faces. 3. (optional) try zooming in/out. ACTUAL RESULTS: There are visible seams along the wide outer face of the blue block in the bottom row and the white block in the second-to-top row (on the left face of the cube). EXPECTED RESULTS: No seams. This is a regression from bug 1323797. (At least with respect to the blue block on the bottom row. The white block in the second-to-top row didn't show up correctly -- seams or no seams -- until after bug 1323797 landed.)
Miko, do you know if this is already tracked somewhere, and is there anything we can do about it?
Flags: needinfo?(mikokm)
(In reply to Daniel Holbert [:dholbert] from comment #3) > Miko, do you know if this is already tracked somewhere, and is there > anything we can do about it? I think the problem is antialiasing artifacts along the split seam. There is a relevant bug 1339664 filed for software backend, where I explicitly disabled AA when rendering split geometry. On which platform is this, and do you have hardware acceleration enabled?
Flags: needinfo?(mikokm)
This is on Linux, 57.0a1 (2017-09-12) (64-bit) I forget how to check for hardware accel, but it looks like it's disabled -- about:support says: > AzureCanvasAccelerated 0 > AzureCanvasBackend skia > AzureContentBackend skia > HW_COMPOSITING blocked by default: Acceleration blocked by platform > OPENGL_COMPOSITING unavailable by default: Hardware compositing is disabled
The seams do go away if I set the about:config pref "layers.acceleration.force-enabled" to true. So HW acceleration does seem to avoid this.
(In reply to Daniel Holbert [:dholbert] from comment #5) > This is on Linux, 57.0a1 (2017-09-12) (64-bit) > > I forget how to check for hardware accel, but it looks like it's disabled -- > about:support says: > > AzureCanvasAccelerated 0 > > AzureCanvasBackend skia > > AzureContentBackend skia > > HW_COMPOSITING blocked by default: Acceleration blocked by platform > > OPENGL_COMPOSITING unavailable by default: Hardware compositing is disabled This is very interesting, I would have expected Skia backend to work due to disabled AA. I will investigate this next week, when I have my Linux machine at hand.
Assignee: nobody → mikokm
Status: NEW → ASSIGNED
I am able to reproduce this on MacOS with hardware acceleration disabled. It's very interesting that zooming in/out changes how the seams appear. This might be a rounding or accuracy problem with the layer coordinates. Changing AA setting didn't seem to help.
Attached file seam-reduced.html
Attached file zoom.html
I investigated this further and managed to create a reduced testcase (seams-reduced.html). A curious thing with this test case is that the seam appears even when there are no intersections. The second testcase (zoom.html) shows seams near the tile borders when zooming in.
Blocks: 1339664
It seems that the source for the seams is filtering Skia uses in Draw3DTransformedSurface(). Unfortunately disabling this requires more fuzziness with preserves3d-nested.html.
Comment on attachment 8918644 [details] Bug 1399268 - Disable filtering during Draw3DTransformedSurface() when layer was split https://reviewboard.mozilla.org/r/189470/#review195524 ::: commit-message-196da:2 (Diff revision 1) > +Bug 1399268 - Disable filtering during Draw3DTransformedSurface() when layer was split > + What's the user visible impact of this change?
Attached image with_filtering.png
Attached image without_filtering.png
(In reply to Jeff Muizelaar [:jrmuizel] from comment #14) > Comment on attachment 8918644 [details] > Bug 1399268 - Disable filtering during Draw3DTransformedSurface() when layer > was split > > https://reviewboard.mozilla.org/r/189470/#review195524 > > ::: commit-message-196da:2 > (Diff revision 1) > > +Bug 1399268 - Disable filtering during Draw3DTransformedSurface() when layer was split > > + > > What's the user visible impact of this change? I have attached screenshots showing the testcase with filtering turned on and off. As this makes edges rather ugly, it might be worth it to also explore alternative solutions. Markus had an interesting idea to draw layers as rectangles and then clip them with a polygon path. Currently layers with attached geometry are rendered as filled paths.
Yeah. I think we'll want to explore better solutions than the ugliness.
Attachment #8918644 - Attachment is obsolete: true
Attachment #8918644 - Flags: review?(jmuizelaar)
Status: ASSIGNED → NEW
Assignee: mikokm → nobody
No longer blocks: 1339664
See Also: → 1339664
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: