Closed Bug 1045864 Opened 11 years ago Closed 11 years ago

8% Linux CART regression on Inbound (fx34) Jul 25 from rev bd4287c14070

Categories

(Core :: Layout, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla34

People

(Reporter: jmaher, Assigned: mattwoodrow)

References

Details

(Keywords: perf, regression, Whiteboard: [talos_regression])

Attachments

(1 file, 1 obsolete file)

Matt, can you take a look into this as you were the author of the patch?
Flags: needinfo?(matt.woodrow)
I think this is because the extra layers trigger component alpha, and then we have to flatten with BasicLayers. The flattening isn't free, and the resulting layer tree might well be worse than we had initially. I guess we should disable this code for BasicLayers, and maybe the equivalent for canvas backgrounds. That would cover component alpha layers created by text scrolling over a fixed background, I wonder how many other cases we care about? I wonder if we can just do that and get rid of the flattening code. Can you think of any obviously important cases where we'd really want subpixel-AA text and wouldn't get it that way roc?
Flags: needinfo?(matt.woodrow) → needinfo?(roc)
(In reply to Matt Woodrow (:mattwoodrow) from comment #2) > I think this is because the extra layers trigger component alpha, and then > we have to flatten with BasicLayers. The flattening isn't free, and the > resulting layer tree might well be worse than we had initially. > > I guess we should disable this code for BasicLayers, OK. > and maybe the equivalent for canvas backgrounds. Not so sure. It's quite common to have text over opaque background over fixed background. I think we should leave that alone.
Flags: needinfo?(roc)
Attached patch Disable for BasicLayers (obsolete) — Splinter Review
Assignee: nobody → matt.woodrow
Attachment #8466881 - Flags: review?(roc)
Comment on attachment 8466881 [details] [diff] [review] Disable for BasicLayers Review of attachment 8466881 [details] [diff] [review]: ----------------------------------------------------------------- ::: layout/generic/nsImageFrame.cpp @@ +1351,5 @@ > + nsDisplayImage* displayImage = static_cast<nsDisplayImage*>(item); > + container = displayImage->GetContainer(aManager, aBuilder); > + if (!container) { > + return LAYER_NONE; > + } I do not understand this change.
Attachment #8466881 - Flags: review?(roc) → review-
Sorry, accidentally qref'd some unrelated code into the previous patch.
Attachment #8467387 - Flags: review?(roc)
Attachment #8466881 - Attachment is obsolete: true
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
thanks for fixing this!
I have confirmed this is fixed for linxu32 and linux64, thanks! On a related note, I am seeing alerts that showed up later on osx 10.6 and 10.8 which appear to be the same changeset (it is sort of fuzzy). Is there any chance the original patch could affect osx and the fix not work for osx?
Flags: needinfo?(matt.woodrow)
That seems unlikely, the linux issue was very specific to not having layers acceleration enabled.
Flags: needinfo?(matt.woodrow)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: