diff options
author | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 08:17:49 +0000 |
---|---|---|
committer | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-24 08:17:49 +0000 |
commit | 156b272fe18856ab28f1b3240b9d10fbd087db98 (patch) | |
tree | c37791c9e835eb4c3adacde9f32aa88a5f2bf877 /content/renderer/gpu/compositor_thread.cc | |
parent | 3027cf00745e50a1c8ea4f00e7778db3067cfb83 (diff) | |
download | chromium_src-156b272fe18856ab28f1b3240b9d10fbd087db98.zip chromium_src-156b272fe18856ab28f1b3240b9d10fbd087db98.tar.gz chromium_src-156b272fe18856ab28f1b3240b9d10fbd087db98.tar.bz2 |
Add non-uniform memory management policy for impl-side painting.
The policy is as follows:
Make note of three allocation levels -- nice-to-have (which includes
substantial prepainting for compositors), required (which is just
what is visible for compositors), and minimum (a constant).
If the nice-to-have level for all clients can fit in memory, then
set the allocation for the clients to be their nice-to-have level.
If the nice-to-have level for all clients cannot fit in memory,
but the required level can, then impose a cap on the nice-to-have
memory that each client can have. This cap will affect only the
clients that have the most nice-to-have-but-not-required memory
first, and as it is lowered it will impact all clients, until
only the required memory level is allowed.
Similarly, if the required level for all clients cannot fit in
memory, then impose a cap on the required memory that will first
impact the clients with the highest requirements.
A discussion of the rationale for the policy is as follows:
In the case where there is one particularly content-heavy visible
tab and a few content-light visible tabs. This will cause content
to be dropped (or made low-res) only in the content-heavy tab first,
so one pathologically expensive tab won't harm the rendering of the
other tabs. If all visible tabs have similar requirements, then the
treatment will be more uniform.
Note that none of this code is enabled yet. This new policy will be
used with impl-side painting, and hopefully will replace the current
policy (which distributes memory uniformly), but both are existing
side-by-side to be conservative.
BUG=168413
Review URL: https://chromiumcodereview.appspot.com/11948002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178553 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/gpu/compositor_thread.cc')
0 files changed, 0 insertions, 0 deletions