Note: There are a few cases of duplicates in user autocompletion which are being worked on.

Incorrect border painting on the edge of surfaces

RESOLVED FIXED in mozilla15

Status

()

Core
Graphics
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

Tracking

unspecified
mozilla15
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Assignee)

Description

5 years ago
Created attachment 609569 [details] [diff] [review]
Force invalidation

When we attempt to paint a surface, with an nsDisplayBorder starting from the first pixel that *isn't* visible on the surface, we end up drawing single bit difference to the edge pixels of the surface.

Attached is an existing reftest, modified to invalidate that reproduces this on OSX with GL layers. Not sure what other platforms are affected by this, running tryserver builds now.

See https://tbpl.mozilla.org/php/getParsedLog.php?id=10379707&tree=Try&full=1 for an example failure.

Try server: https://tbpl.mozilla.org/?tree=Try&pusher=mwoodrow@mozilla.com

This is affecting DLBI since changes to paint timing make this reftest (and others) fail, without the MozReftestInvalidate change.

Ideas here would be appreciated
Odd. This is Mac-only?
Oh, you said in comment #0 you don't know yet.
(Assignee)

Comment 3

5 years ago
Thinking about it, this might only fail on mac (opengl), even if it isn't necessarily limited to that.

It appears to be related to drawing around the edge of the surface, since modifying the test and removing the modifications to the last row of text moves the broken border painting up to the second to last line instead.

OpenGL layers are the only backend (I believe) that creates a separate surface for modifications and then uploads, other backend are drawing directly into the existing surface.
Should we work around it by giving the temporary surface a 1px extra margin?
(Assignee)

Comment 5

5 years ago
Created attachment 609603 [details] [diff] [review]
Pad temporary surfaces with OpenGL layers on mac

This feels like pretty bad wallpapering :(

Fixes the bug though.
Attachment #609569 - Attachment is obsolete: true
Attachment #609603 - Flags: review?(roc)
Comment on attachment 609603 [details] [diff] [review]
Pad temporary surfaces with OpenGL layers on mac

Review of attachment 609603 [details] [diff] [review]:
-----------------------------------------------------------------

Does the problem not occur on the top and left edges?
Attachment #609603 - Flags: review?(roc) → review+
BTW, please add a big comment explaining why you're adding 1 there!
(Assignee)

Comment 8

5 years ago
> Does the problem not occur on the top and left edges?

It doesn't appear to, no.
(Assignee)

Comment 9

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/2841b49cfb16
Assignee: nobody → matt.woodrow
https://hg.mozilla.org/mozilla-central/rev/2841b49cfb16
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla15
You need to log in before you can comment on or make changes to this bug.