Closed
Bug 931823
Opened 13 years ago
Closed 12 years ago
Tile coherency checks appear to be broken
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 912148
People
(Reporter: cwiiis, Assigned: cwiiis)
References
Details
(Whiteboard: [release28])
Attachments
(1 file)
|
3.09 KB,
patch
|
kats
:
review+
|
Details | Diff | Splinter Review |
It would appear that the checks that ought to maintain visual coherency during tiled updates are currently broken. You can see this by watching an animated gif that covers a large part of the viewport and noticing the tile boundaries while it updates (in Firefox for Android).
The coherency checks should stop from tiles updating in separate transactions if it would cause visible seams (and at least used to). I'm not sure how long this has been broken.
Comment 1•13 years ago
|
||
I filed bug 912148 a while back for this, but it was happening for a while before that too.
| Assignee | ||
Comment 2•13 years ago
|
||
Patch incoming for this - This isn't the love patch though, which I'll make on top of this, it's just easier to get the existing code working how it used to first.
Assignee: nobody → chrislord.net
Status: NEW → ASSIGNED
| Assignee | ||
Comment 3•13 years ago
|
||
I believe this to be the minimal change to correct this code. In my limited testing, this fixes the issue, and at least I don't think it could make it worse. Let's get this in, then refactor on top of something that works (I assume).
Attachment #824645 -
Flags: review?(bugmail.mozilla)
Comment 4•13 years ago
|
||
Comment on attachment 824645 [details] [diff] [review]
Fix tiled update coherency check
Review of attachment 824645 [details] [diff] [review]:
-----------------------------------------------------------------
Mostly a rubber-stamp. The changes to ClientTiledThebesLayer look sane but I don't know what the code in TiledContentClient is doing.
::: gfx/layers/client/ClientTiledThebesLayer.cpp
@@ +83,5 @@
> }
>
> // Calculate the frame resolution.
> + mPaintData.mResolution.width = mPaintData.mResolution.height =
> + metrics.mCumulativeResolution.scale * metrics.mDevPixelsPerCSSPixel.scale;
You can also use metrics.LayersPixelsPerCSSPixel() here. I don't have a preference either way.
Attachment #824645 -
Flags: review?(bugmail.mozilla) → review+
| Assignee | ||
Comment 5•12 years ago
|
||
erk, I won't push this just yet, just noticed I'm not accounting for scale difference anymore, this likely doesn't work correctly when there's a scale mismatch between compositor and Gecko. Will fix.
| Assignee | ||
Comment 6•12 years ago
|
||
So I had to stop cancelling when there's a resolution difference to actually test this (which I think is not quite the right behaviour - we should cancel only if the resolution is different and it's a stale draw), and I kind of doubt this code ever worked quite correctly when there's a resolution difference.
Anyway, fixing.
Updated•12 years ago
|
Whiteboard: [release28]
| Assignee | ||
Comment 7•12 years ago
|
||
so I had a patch that pretty much did the right thing, but now we set the resolution on the presShell, the composition bounds in FrameMetrics are more wrong than they were before, so I think we really need to fix bug 881451 before pushing a fix for this. I could work around the brokenness, but it isn't a good idea.
Depends on: 881451
| Assignee | ||
Comment 8•12 years ago
|
||
I wasn't capable of fixing this bug without (at least partially) fixing bug 912148, so let's just dupe this now.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Comment 9•12 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•