Closed Bug 1290303 Opened 8 years ago Closed 8 years ago

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1289525

People

(Reporter: gw280, Unassigned)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

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).
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.
Whiteboard: [gfx-noted]
Attached file Display list dump
We're layerising this page really really badly
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
(Tested on OS X 10.11.6 on a mid-2012 15" rMBP)
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).
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.
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.

Attachment

General

Created:
Updated:
Size: