[Webkit-unassigned] [Bug 73920] [Qt] Tiled backing store failing to update view under certain conditions

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Nov 2 21:43:59 PDT 2012


--- Comment #13 from Lamarque V. Souza <Lamarque.Souza at basyskom.com>  2012-11-02 21:45:23 PST ---
Created an attachment (id=172206)
 --> (https://bugs.webkit.org/attachment.cgi?id=172206&action=review)
Log with printf of some calls

Check the attached file, it contains some printfs of some calls without any modification in the current behaviour of WebKit (the method WebCore::TiledBackingStore::removeAllTiles() just prints the printf, it does not remove any tile). You can see after the printf in removeAllTiles() that WebKit calls createTiles(), then setKeepRect(), which does not remove any tile ("will remove 0/4" means will remove 0 tile from a total of 4 tiles), then call resizeEdgeTiles() (because the current rect changed). resizeEdgeTiles() resizes two tiles and does not remove any (line with "WebCore::TiledBackingStore::resizeEdgeTiles(): will remove 0/6 1"). In the end it calls updateTileBuffers(), which detects that there are four dirty tiles, but updateTileBuffers() seems to use the old page and not the new page to update the buffers.

The change I mentioned in comment #9 is changing updateTileBuffers() to delete the dirty tiles and create new tiles instead of calling dirtyTiles[n]->updateBackBuffer(). That change fixed the problem for what I think is the visible area (I have not checked this yet). So when I scroll down to the end of the new page and probably reach a tile that does not intersect the visible area the tile is incorrect.

dirtyTiles[n]->updateBackBuffer() is platform dependent. I am using Qt platform to test it, I have not tested if this problem also happens with other platform yet.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list