Wrong offset when copying tee surfaces in PushGroupAndCopyBackground

RESOLVED FIXED

Status

()

defect
RESOLVED FIXED
9 years ago
9 years ago

People

(Reporter: mstange, Assigned: roc)

Tracking

({testcase})

Trunk
All
macOS
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(blocking2.0 betaN+)

Details

Attachments

(4 attachments)

Reporter

Description

9 years ago
Posted file testcase
With the patches for bug 593733 I'm seeing painting errors behind the tab favicons while scrolling the tab bar. Those favicons have opacity:0.8.

The problem seems to be that PushGroupAndCopyBackground copies the background to the wrong place in the new surface. Is this a cross-platform bug in PushGroupAndCopyBackground, or is something wrong on the OS X side of things?

This testcase reproduces the problem for me. Does the testcase fail with D3D9, too?
Yes, it fails with D3D9.
blocking2.0: --- → betaN+
I think the problem is that device offsets set on the source and destination gfxTeeSurfaces aren't honoured when we start messing with the individual surfaces --- they don't have the device offsets set on them.
There's a bit of a problem in that cairo_tee_surface_create copies the device offsets from the 'master' surface into itself.
I guess all we need to do is synchronize the device offsets of the subsurfaces with the device offset of the tee surface before we use them here.
Posted patch fixSplinter Review
Assignee: nobody → roc
Attachment #503700 - Flags: review?(jmuizelaar)
It took a while for me to understand that the device transform of the tee surface and the device transforms of the subsurfaces should be applied ... partly because of a bug in cairo_tee_surface_create that I just mailed the cairo list about. Anyway, that means instead of setting the device offsets of the subsurfaces, we should just account for the device transforms of the tee surfaces expliclity when copying the subsurfaces.
Whiteboard: [needs review]
Attachment #503700 - Flags: review?(jmuizelaar) → review+
Whiteboard: [needs review] → [needs landing]
http://hg.mozilla.org/mozilla-central/rev/2a8c0da41b95

Test disabled on Mac:
http://hg.mozilla.org/mozilla-central/rev/b1350908332c
Visually the test is OK but there must be some difference between Quartz blending and GL blending.
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Whiteboard: [needs landing]
You need to log in before you can comment on or make changes to this bug.