Closed Bug 963076 Opened 11 years ago Closed 11 years ago

Create a tile pool for tiled layers

Categories

(Core :: Graphics: Layers, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla30

People

(Reporter: cwiiis, Assigned: bas.schouten)

References

Details

The cost of allocation and deallocation during the display and interaction with an average page is higher than it needs to be when using the tiled layers backend. When a tiled layer buffer changes in size, tiles are discarded and immediately deallocated, and similarly, they are created on-demand. This showed up as a considerably performance hit when using shared memory on Android as opposed to local heap allocated memory (see bug 747811 comment #24). We could mitigate the cost of allocating and deallocating tiles per transaction by keeping a pool of tiles on the layer manager and only deallocating after either a transaction ends, a threshold is reached, or both. This will become especially important with gralloc-backed tiles, as the cost of gralloc'ing is usually a lot higher than either standard memory allocation or shm.
Make sure you hook up the OOM hook. Otherwise sounds good.
Assignee: nobody → chrislord.net
Status: NEW → ASSIGNED
It would be nice-to-have if once we run out of pooled texture we can batch the allocations in a single IPC call. This would make a miss in this cache much cheaper.
Assignee: chrislord.net → bas
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
You need to log in before you can comment on or make changes to this bug.