Closed
Bug 1290303
Opened 8 years ago
Closed 8 years ago
Scrolling https://internals.rust-lang.org/t/summary-of-efficient-inheritance-rfcs/494 results in a lot of tile allocations
Categories
(Core :: Graphics: Layers, defect)
Core
Graphics: Layers
Tracking
()
RESOLVED
DUPLICATE
of bug 1289525
People
(Reporter: gw280, Unassigned)
Details
(Whiteboard: [gfx-noted])
Attachments
(1 file)
351.79 KB,
text/plain
|
Details |
Spun off from bug 1279341. Jeff tells me that he's seeing ~130 allocations per second when scrolling this page. Each allocation is 4MB (1024x1024 tiles).
Reporter | ||
Comment 1•8 years ago
|
||
try run with full TextureClientPool logging: https://treeherder.mozilla.org/#/jobs?repo=try&revision=bd01687ea2d3
Reporter | ||
Comment 2•8 years ago
|
||
The try run includes a patch that alters the allocation behaviour to grow the pool one at a time instead of pre-allocating in chunks.
Updated•8 years ago
|
Whiteboard: [gfx-noted]
Comment 3•8 years ago
|
||
We're layerising this page really really badly
Reporter | ||
Comment 4•8 years ago
|
||
With the second patch in bug 1289525, where we shrink after a delay, we don't allocate anywhere near as much when scrolling this page. We still hit double digits though, so the timeout may need some tweaking. With delayed shrink: 11/sec 100/sec 24/sec 4/sec 43/sec 46/sec 78/sec 50/sec 35/sec 35/sec 64/sec 71/sec 29/sec 81/sec 14/sec 108/sec 47/sec 46/sec 95/sec 24/sec Without delayed shrink: 10/sec 146/sec 29/sec 74/sec 59/sec 150/sec 77/sec 97/sec 74/sec 48/sec 107/sec 132/sec 109/sec 120/sec 14/sec 87/sec 101/sec
Reporter | ||
Comment 5•8 years ago
|
||
(Tested on OS X 10.11.6 on a mid-2012 15" rMBP)
Reporter | ||
Comment 6•8 years ago
|
||
I found why the numbers are so high; the extra calls to SharedMemoryBasic::Create() were coming from ClientSingleTiledLayerBuffer::GetTextureClient(). Tracing on TextureClientPool::AllocateTextureClient(), here are the figures: no timeout: 0/sec 0/sec 0/sec 55/sec 37/sec 72/sec 0/sec 40/sec 5/sec 0/sec 12/sec (noticeably stuttery when scrolling). 50ms timeout: 0/sec 0/sec 0/sec 20/sec 24/sec 18/sec 10/sec 0/sec 0/sec 2/sec 2/sec 14/sec 0/sec 6/sec 35/sec 44/sec (significantly smoother when scrolling). 1000ms timeout: 0/sec 0/sec 0/sec 0/sec 22/sec 12/sec 0/sec 7/sec 38/sec 6/sec 14/sec 7/sec 0/sec 20/sec 0/sec 0/sec (no real noticeable difference vs 50ms subjectively).
Reporter | ||
Comment 7•8 years ago
|
||
30ms: 0/sec 0/sec 0/sec 51/sec 21/sec 44/sec 0/sec 20/sec 0/sec 0/sec 37/sec 0/sec 0/sec 0/sec 0/sec 0/sec 22/sec 24/sec 0/sec 0/sec A little choppier but still better than no timeout.
Reporter | ||
Updated•8 years ago
|
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•