Closed Bug 931823 Opened 13 years ago Closed 12 years ago

Tile coherency checks appear to be broken

Categories

(Core :: Graphics: Layers, defect)

All
Android
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 912148

People

(Reporter: cwiiis, Assigned: cwiiis)

References

Details

(Whiteboard: [release28])

Attachments

(1 file)

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.
I filed bug 912148 a while back for this, but it was happening for a while before that too.
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
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 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+
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.
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.
Whiteboard: [release28]
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
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
Depends on: 944429
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: