Closed Bug 593618 Opened 9 years ago Closed 9 years ago

[d3d9] reftest failures: bugs/433700.html and border-radius/clipping-3.html

Categories

(Core :: Graphics, defect)

x86
Windows 7
defect
Not set

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- beta7+

People

(Reporter: vlad, Assigned: joe)

References

(Blocks 2 open bugs)

Details

Attachments

(2 files, 1 obsolete file)

Attached image reftest images
Optimistically filing these together since I think they're the same issue.  These are failing on the try server.

Top image is 433700 (test and ref), bottom is border-radius (test and ref).  Note the extra black in both of the test images.
Blocks: 586459
This fails in the same way if we're using D3D9 + GDI too.
Assignee: nobody → joe
This seems to fix both these reftests, and is currently running through birch. It makes sense, and seems to replicate some of the logic in ThebesLayerBuffer.

One thing I don't know, though, is if we've got an opaque surface, why isn't the background part of the visible region list?
Attachment #472198 - Flags: review?(roc)
Attachment #472198 - Flags: review?(bas.schouten)
Attachment #472198 - Attachment is obsolete: true
Attachment #472202 - Flags: review?(roc)
Attachment #472202 - Flags: review?(bas.schouten)
Attachment #472198 - Flags: review?(roc)
Attachment #472198 - Flags: review?(bas.schouten)
Comment on attachment 472202 [details] [diff] [review]
Update comment, and address Bas's review comments on IRC

Looks good to me, we need to check if our quad isn't covering anything now that is expected to show through this layer because it's not in the visible region. I don't think this is happening right now but if it might be expected going forward we'll need to fix that.

It's not too hard, just requires us to draw a couple of quads and add some logic for texture coordinates. I think this is just fine for now though!
Attachment #472202 - Flags: review?(bas.schouten) → review+
blocking2.0: --- → beta6+
Comment on attachment 472202 [details] [diff] [review]
Update comment, and address Bas's review comments on IRC

You have a problem here, which is that we mark the layer opaque if it's opaque in its visible region. The part outside the region (but inside the region bounds) might be transparent.
Attachment #472202 - Flags: review+ → review?(bas.schouten)
So it's disturbing that your "valid region" can contain areas of the layer that are transparent, but you've rendered them into an opaque buffer.

However, this doesn't seem to be a problem because the layers API guarantees for SetVisibleRegion:
 It is the responsibility
   * of the caller to ensure that content outside this region does not
   * contribute to the final visible window. 
If the state of the window changes so that the problematic area is still marked valid, but becomes visible, then the layer would have to change from opaque to transparent so we'd redraw everything anyway.

So I can't see any real problem here, although the invariants are more subtle that one would like.
Blocks: 593658
Attachment #472202 - Flags: review?(roc)
Attachment #472202 - Flags: review?(bas.schouten)
Attachment #472202 - Flags: review+
http://hg.mozilla.org/mozilla-central/rev/43a27c6eb652
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.