Closed
Bug 1144534
(fuzzy-text)
Opened 10 years ago
Closed 9 years ago
fuzzy/bad looking text depending on scroll position, or fuzziness coming and going
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
mozilla44
People
(Reporter: tnikkel, Assigned: mstange)
References
()
Details
(Whiteboard: layer-tiles)
Attachments
(2 files)
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
text/x-review-board-request
|
mattwoodrow
:
review+
|
Details |
Load http://www.winnipegfreepress.com/arts-and-life/entertainment/TV/hockey-wives-stickhandle-lives-and-work-off-the-ice-296530101.html?device=mobile scroll. The text will alternately look fine, bad, and worse, and then fine again. What's weird is that other articles on the same site do not have this problem. I tested in Firefox Beta latest as of today.
Comment 1•10 years ago
|
||
There's a slew of bugs like these on file; see bugzil.la/whiteboard:layer-tiles
If you can consistently reproduce on nightly it would be good to investigate as we've had trouble finding reproducible scenarios and it's a high visibility issue.
Whiteboard: layer-tiles
Reporter | ||
Comment 2•10 years ago
|
||
Yes, consistently reproduces for me on nightly. mstange said he could reproduce too.
Comment 3•10 years ago
|
||
In that case please investigate, it would be good to at least figure out what's causing it even if the fix turns out to be nontrivial.
Reporter | ||
Comment 4•10 years ago
|
||
So it appears as though when we draw the text blurry we decide to render a transform that contains the test as active, when the transform is rendered as inactive the text looks fine. Dissecting the page on desktop the transform seems to be a translate only, and it doesn't seem to be changing at all. So not sure why it becomes active and then inactive and the active again. Also odd is that the layer dump for the active transform case has a prescale of 1,4 (scalex=1, scaley=4). I dont see any transform on the page at all with a scale, nevermind unequal x and y scales.
Reporter | ||
Comment 5•10 years ago
|
||
It looks like when choosing the scale in FrameLayerBuilder we are exceeding the max texture size so the code in RestrictScaleToMaxLayerSize shrinks our value to be under the max texture size and then scales us up by that factor.
Comment 6•10 years ago
|
||
We should be able to just ignore the max texture size if tiling is enabled, I think.
Reporter | ||
Comment 7•10 years ago
|
||
I think we have to make sure that the layer in question will be tiled too.
Updated•10 years ago
|
tracking-fennec: --- → +
Updated•10 years ago
|
tracking-fennec: + → 41+
Updated•10 years ago
|
Updated•10 years ago
|
Assignee: nobody → tnikkel
Comment 14•9 years ago
|
||
The root cause behind this bug (and all the dupes) is somewhat described in bug 1159564 comment 11. Copying it here:
This has something to do with wrapping preserve-3d transforms, I think. When I traced through the code, after starting the video the childrenVisible rect at [1] becomes ginormous, causing the aVisibleRect passed to ChooseScaleAndSetTransform to also become ginormous. This exceeds the max layer size and then causes the pre-scale to be applied.
Tracing backwards from there, the big childrenVisible rect was coming from an nsDisplayTransform which was coming from [2]. It looks like to me that |aTemp| there collects a lot of items before it finally gets flushed, and so the nsDisplayTransform that holds all of those items has a super-tall childrenVisible rect. I stuck in the attached wonderful hack which seemed to fix the problem, confirming my diagnosis. I don't know enough about this code to know if this is the root-cause or not, though. From a cursory reading of this code it doesn't like it would be a problem to split one nsDisplayTransform into a bunch but I don't really know. Somebody who knows the preserve-3d code should look into this.
[1] http://mxr.mozilla.org/mozilla-central/source/layout/base/FrameLayerBuilder.cpp?rev=9da538675a2d#4755
[2] http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsFrame.cpp?rev=9da538675a2d#1799
Alias: fuzzy-text
Summary: bad looking text depending on scroll → fuzzy/bad looking text depending on scroll position, or fuzziness coming and going
Comment 16•9 years ago
|
||
Here's the patch that I posted on bug 1159564 (not landable at all). Matt, do you have any suggestions on how to fix this, since you probably know more about this preserve-3d stuff?
Flags: needinfo?(matt.woodrow)
Comment 17•9 years ago
|
||
I don't think tn is actively working on this either, so unassigning.
Assignee: tnikkel → nobody
Comment 18•9 years ago
|
||
Bug 1097464 is going to remove WrapPreserve3DList entirely, so that will hopefully fix this issue (or move it to a different location).
Depends on: 1097464
Flags: needinfo?(matt.woodrow)
Updated•9 years ago
|
tracking-fennec: 41+ → Nightly+
Comment 19•9 years ago
|
||
This is showing up on B2G (bug 1203971) as well as desktop (bug 1203109) - both of those are on medium.com articles. Moving this to layout and making it cross-platform.
Component: Graphics, Panning and Zooming → Layout
OS: Mac OS X → All
Product: Firefox for Android → Core
Hardware: x86 → All
Version: unspecified → 43 Branch
Assignee | ||
Comment 23•9 years ago
|
||
Bug 1144534 - If we have tiling, don't reduce layer resolution for large transforms. r?mattwoodrow
With bug 1207590 we can be sure that large PaintedLayers will be tiled whenever
tiling is available. Large intermediate surfaces might still be a problem, but
those should be required much less often once we have bug 1021845.
Attachment #8664862 -
Flags: review?(matt.woodrow)
Comment 24•9 years ago
|
||
Comment on attachment 8664862 [details]
MozReview Request: Bug 1144534 - If we have tiling, don't reduce layer resolution for large transforms. r?mattwoodrow
https://reviewboard.mozilla.org/r/20043/#review18063
Attachment #8664862 -
Flags: review?(matt.woodrow) → review+
Comment 25•9 years ago
|
||
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox44:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
Updated•9 years ago
|
Updated•9 years ago
|
Blocks: all-aboard-apz
Updated•9 years ago
|
Assignee: nobody → mstange
Updated•5 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•