Gecko:OffMainThreadPainting: Difference between revisions

no edit summary
(Created page with "=Problem= Painting is slow. On complex, dynamic pages, we spend a large amount of CPU time rasterizing the page which blocks the main thread from being responsive. Ongoing work ...")
 
No edit summary
Line 2: Line 2:


Painting is slow. On complex, dynamic pages, we spend a large amount of CPU time rasterizing the page which blocks the main thread from being responsive. Ongoing work to reduce the amount of painting done (DLBI), and improve the speed of painting are helping with this, but being able to offload the entirety of this work to another thread will be a significant gain.
Painting is slow. On complex, dynamic pages, we spend a large amount of CPU time rasterizing the page which blocks the main thread from being responsive. Ongoing work to reduce the amount of painting done (DLBI), and improve the speed of painting are helping with this, but being able to offload the entirety of this work to another thread will be a significant gain.
=Goals=
* Improve painting throughput performance (increase frames per second drawn to the screen)
* Reduce the load on the main thread to improve responsiveness and reduce jank.


=Proposed solution=
=Proposed solution=
Line 42: Line 47:
We need to investigate throttling/scheduling for the main-thread/painting-thread so that they don't end up too out of sync.
We need to investigate throttling/scheduling for the main-thread/painting-thread so that they don't end up too out of sync.


Invalidation (and thus MozAfterPaint regions) will now be happening on the main-thread, so we need to pass that back to fire callbacks.
Invalidation (and thus MozAfterPaint regions) will now be happening on the painting-thread, so we need to pass that back to fire callbacks.


==Testing==
==Testing==
Confirmed users
44

edits