-
Notifications
You must be signed in to change notification settings - Fork 276
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make picture caching more performant, and fix some bugs.
One the remaining issues with enabling picture caching is that it was a noticeable performance regression on sites that don't benefit from picture caching, due to the extra render targets and blits. Instead, we now draw to the main framebuffer and blit those results into tiles for caching, as appropriate. There is still a bit of work to be done here (specifically, detecting when a tile isn't opaque, and disabling the cache blit if we decide the tile is changing too often), but this is in general a much faster solution than before. It's also faster on pages that *do* benefit from picture caching, removing one extra blit step during cache creation. This also changes how we handle the way gecko supplies different display lists with different local coordinate systems. Now, we cache based on the world rect of the tile, and verify the content with the new ComparableVec type. This is much more robust and fixes a number of existing bugzilla bugs related to picture caching. This patch also removes much of the hashing required, which is a performance win on the sites I tested (even with the vec comparison that we now use instead). We do currently update prim deps each scroll frame, which can be improved / optimized in the future. Finally, this implementation only allocates and stores tiles for the current viewport, which is much better for performance and scaling of content where the picture rect is very large.
- Loading branch information
Showing
10 changed files
with
706 additions
and
872 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.