| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Increase the minimum GPU memory limit for a renderer from 64MB to
128MB. The Mac's memory policy will not actually use the full amount of
memory, unless the page requires that much to render content on the
screen (in which case, jank due to paging is better than missing
content).
Make the prioritized resource manager more aggressively free unused
textures when the memory policy indicates that GPU memory should be
used sparingly. Without this change, the amount of memory spent holding
on to spare textures to recycle would double.
Move the definition of the priority cutoff to the same location as
all other platform dependent variables.
BUG=318877
Review URL: https://codereview.chromium.org/98073011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241769 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Extract GPU memory usage statistics and pass it to DevTools.
BUG=326497
Review URL: https://codereview.chromium.org/110883005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240084 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has already been disabled on all platforms except Windows and
Chrome OS to be more conservative about GPU memory.
All platforms are moving to a delegated renderer where, if keeping
around resources for a fast tab-switch is desired, it can be
accomplished by not releasing those resources in the browser process.
This feature was originally requested in crbug.com/134750.
Also remove the infrastructure for preserving backbuffers of
backgrounded renderers. This feature was never enabled.
BUG=276559
Review URL: https://codereview.chromium.org/53633003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232324 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the memory allocation / stats structs from content to gpu:: and
eliminates many redundant copies of this information in different parts of the
stack. This also moves the stats sending and allocation callbacks to
gpu::ContextSupport / gpu::GpuControl to get rid of the bounce through
WebKit::WebGraphicsContext3D.
The new flow for cc to register for memory allocation changes and pass stats to
the manager is this:
cc:: registers for MemoryAllocationChanged callbacks and sends stats via the
gpu::ContextSupport interface. Memory allocations are represented by a
gpu::MemoryAllocation struct and memory statistics are sent in a
gpu::ManagedMemoryStats struct.
The implementation of gpu::ContextSupport (gpu::gles2::GLES2Implementation)
forwards the calls to gpu::GpuControl. content::CommandBufferProxyImpl's
implementation of these maps the calls to content IPCs that drive the memory
manager implementation.
This patch gets rid of the following things:
*) WebKit::WebGraphicsMemory(Allocation|Stats) go away. These were used only
because cc was not able to depend on the previous locations of the
allocation/stats structs in content::. Now that these structs are in gpu::, the
compositor (which is the only thing using these) can see them directly
*) WebGraphicsContext3D::sendManagedMemoryStatsCHROMIUM /
setMemoryAllocationChangedCallbackCHROMIUM go away.
*) cc:ManagedMemoryPolicy's cutoff fields are now
gpu::MemoryAllocation::PriorityCutoff enums instead of an (inconsistently named)
copy.
*) GpuMemoryAllocationForBrowser goes away and is managed directly in content.
gpu::GpuMemoryAllocationForRenderer is renamed to just gpu::MemoryAllocation
*) Many proxies and converters go away.
cc::ManagedMemoryPolicy sticks around in this patch, even though it's largely
the same as gpu::MemoryAllocation, since it's sometimes used by code that
doesn't go through the gpu memory allocation path - such as android_webview -
and it has some additional state (num_resource_limit) that's not applicable to a
general gpu::MemoryAllocation. Chris tells me this struct is due for
simplification as well, so maybe it'll make sense to fold it in in a future
patch.
Diffstat:
53 files changed, 345 insertions(+), 713 deletions(-)
BUG=181120
R=piman,ccameron
Review URL: https://codereview.chromium.org/45243002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231527 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because GLX windows cannot be destroyed separately from their
X windows on all platforms, create a separate child X window to use
with GLX. Destroy this child X window when the backbuffer for the
window is no longer needed.
Because the GL surface may need to be made current while its
backbuffer is destroyed (e.g, to destroy GL resources for a
backgrounded tab), create a dummy 1x1 GL surface which is
never destroyed and can always be made current.
Because the child X window created will cover its parent, create an
event listener to forward expose events from the child window to
the parent, so that the parent can know to repaint.
BUG=145600
Review URL: https://chromiumcodereview.appspot.com/23452026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223148 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The complicated policy resulted in nonvisible memory being nonzero under
some conditions despite this setting. Move the zero setting to where it
will always work.
New test GpuMemoryManagerTest.AllowNonvisibleMemory.
NOTRY=true
BUG=276721
Review URL: https://chromiumcodereview.appspot.com/22886007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218783 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Remove forwarding header
BUG=
R=avi@chromium.org
Review URL: https://codereview.chromium.org/16667019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205584 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
The extra memory usage causes system VA space usage when using FCM,
and also causes system stability issues.
BUG=
NOTRY=True
Review URL: https://chromiumcodereview.appspot.com/14681003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197562 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There have existed two paths in the memory manager for
a few months -- the old path which uniformly distributes
all memory across all visible renderers, and the new path
which takes into account the needs of each renderer.
The transition was made from the old policy to the new
policy quite a while ago, so we can safely get rid of
the old policy.
BUG=150883
Review URL: https://chromiumcodereview.appspot.com/12475002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187678 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TBR=ccameron@chromium.org
TBR=piman@chromium.org
BUG=175238
NOTRY=true
No try since this has passed tests several times but is stuck.
Review URL: https://chromiumcodereview.appspot.com/12269002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182562 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
The previous patch ahd this reversed.
BUG=174572
TBR=epenner,piman
Review URL: https://codereview.chromium.org/12256026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182355 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
As far as everyone remembers, M18 didn't keep around anything
more than 1 frontbuffer, so this restores this behavior.
BUG=174572
R=epenner
Review URL: https://codereview.chromium.org/12218126
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182092 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After computing all clients' memory budgets, take any
extra memory left over and distribute it amongst the
visible clients (so that, if their memory requirments
suddenly jump, they don't need to wait for a roundtrip
to the GPU process to get extra memory).
Disallow keeping around backgrounded tabs' contents on
Android, to keep the maximum for the main tab.
Explicitly limit the memory to use for prepainting by
specifying NiceToHave on Mac to avoid performance problems.
BUG=175125
TBR=nduca, piman
Review URL: https://codereview.chromium.org/12212143
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182083 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Distribute extra memory evenly among visible clients
>
> After computing all clients' memory budgets, take any
> extra memory left over and distribute it amongst the
> visible clients (so that, if their memory requirments
> suddenly jump, they don't need to wait for a roundtrip
> to the GPU process to get extra memory).
>
> Disallow keeping around backgrounded tabs' contents on
> Android, to keep the maximum for the main tab.
>
> Explicitly limit the memory to use for prepainting by
> specifying NiceToHave on Mac to avoid performance problems.
>
> BUG=175125
>
> Review URL: https://codereview.chromium.org/12226082
TBR=ccameron@chromium.org
Review URL: https://codereview.chromium.org/12208134
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181962 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After computing all clients' memory budgets, take any
extra memory left over and distribute it amongst the
visible clients (so that, if their memory requirments
suddenly jump, they don't need to wait for a roundtrip
to the GPU process to get extra memory).
Disallow keeping around backgrounded tabs' contents on
Android, to keep the maximum for the main tab.
Explicitly limit the memory to use for prepainting by
specifying NiceToHave on Mac to avoid performance problems.
BUG=175125
Review URL: https://codereview.chromium.org/12226082
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181950 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a default memory allocation level for clients that have
not yet sent memory usage levels to the manager. This default
is currently set to equal the minimum, but the minimum will
be lowered substantially in the future (and the default will stay
higher, to avoid a low-res flicker at load).
Change GetMinimumClientAllocation to always use a value set
during initialization instead of having a separate override flag.
Fix a comparison bug that caused no clients to retain their
memory when made nonvisible.
Make clients that are nonvisible and have had their memory
evicted not be given a budget that gives them back their memory
until they are made visible again. This prevents situations where
we burn resources painting-then-freeing resources for
backgrounded clients.
BUG=168413
Review URL: https://chromiumcodereview.appspot.com/12087078
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180054 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are two reasons for this. Most pressing is that this is skating
near the edge of overflow (especially where we multiply things by 9/8).
Second is that it is indeed possible to have a Gpu with more than 4GB
of VRAM accessible even to a 32-bit process.
BUG=168413
Review URL: https://chromiumcodereview.appspot.com/12091051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179966 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
BUG=171002
Review URL: https://chromiumcodereview.appspot.com/12017032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178265 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prefer nonvisible to backgrounded, client to tab,
nicetohave to nice_to_have, and allocation to budget.
BUG=168413
Review URL: https://chromiumcodereview.appspot.com/11944002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177244 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This hides a new memory management policy behind the flag
use_nonuniform_memory_policy_. The flag is not hooked up
to checking cc::switches::kEnableImplSidePainting because
the hope is to enable the new policy everywhere and just
delete the old policy, but the old policy is being left
around for now to be conservative.
The new policy is to take take the estimate of memory usage
from the compositor, pad it a bit, and send that back as
the budget to that compositor (in contrast to the policy of
distributing memory evenly across all tabs). There is a TODO
left for handling the situation where we do not have enough
space for all visible compositors, where we'll have to do
some math.
BUG=168413
Review URL: https://chromiumcodereview.appspot.com/11827066
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176541 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
At this point it is always defined.
Review URL: https://chromiumcodereview.appspot.com/11722024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175094 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Set an interval of memory for unmanaged memory, and when memory usage leaves this interval, re-assign GPU memory budgets. Use this interval approach to avoid thrashing minute changes in policy.
BUG=167693
Review URL: https://chromiumcodereview.appspot.com/11677008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174864 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also clean up initialization path so that the GpuMemoryManager returns
a GpuMemoryManagerClientState, and destroying that structure deletes
the client.
BUG=164947
Review URL: https://chromiumcodereview.appspot.com/11571075
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174591 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a most-recently-used queue to sort the GPU memory manager clients.
Previously we used timestamps, but this had issues with unit testing
because of timer resolution.
Maintain three lists of clients -- visible, non-visible, and non-surface
clients. The visible and non-visible lists are in most-recently-used order.
This removes the need to create a separate vector of the clients and
sort that vector at every manage call.
Store whether or not a share group has any non-hibernated clients directly
in the share group's memory tracking group, so we don't have to construct
an explicit set of the non-hibernated clients.
BUG=164947
Review URL: https://chromiumcodereview.appspot.com/11645013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173999 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds infrastructure necessary to support tracking which allocations
are through the compositor (or, more generally, any managed allocator that
the GPU memory manager affect) and allocations that are not (e.g, WebGL).
This is part of a scheme which will add a GL extension where the compositor
can mark a texture as being managed by a call to glTexParameteri.
This information had previously been tracked by an IPC being sent by the
compositor to the GPU process informing it of the managed memory usage (in
addition to the usage required for all visible content, etc). This had
the two problems. First, the information was not accurate -- the data sent
about managed allocations to the GPU memory manager would always lag the
actual allocations. Second, these IPCs were expensive and needed to be
throttled. The more we throttle the IPCs, the less accurate the information
would become, making the GPU memory manager's behavior less precise and
predictable.
BUG=164947
Review URL: https://chromiumcodereview.appspot.com/11516014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172754 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=159648
Review URL: https://chromiumcodereview.appspot.com/11280204
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172212 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow up to one quarter of the available video memory to be used for
backgrounded tabs. Backgrounded textures have lower priority than
anything else, so scrolling around will cause them to be evicted.
The limit of one quarter is to avoid being anti-social to other processes
that may be using the GPU.
Also fix a bug where setting a client to be visible didn't correctly
update the client's timestamp.
Add unit tests for the added functionality.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11359122
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166992 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
preparation for allowing backgrounded tabs
to have memory.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11369115
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166413 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove tracking of the historical maximum, since it wasn't used.
Also move the ifdef-heavy const function out of the header and into
the source file.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11366082
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166393 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the meaning of GPU memory manager client to a stub. Maintain a list
of stubs in the GPU memory manager.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11363075
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166197 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change should not change any behavior.
Use GetMemoryTracker and comparisons instead of IsInSameContextShareGroup to
determine if two stubs should be counted as being in the same group.
Simplify the logic in GpuMemoryManager::Manage() use an O(log n) lookup based
on memory tracker instead of an O(n) lookup based on stub context group to
determine if two stubs are in the same context group.
Fix a number of places in the memory manager unit test where "is in the same
context group as" was assumed not to be an equivalence relation (now that
the lookup is based on memory tracker, it is an equivalence relation).
Add memory tracking to the memory manager unit test (so that we can simulate
unmanaged memory, e.g, WebGL, entering the mix).
Clean up the memory manager unit test to use a common base class for the two
stub classes.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11361050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165617 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We could return the limit from the Android egl context (since it
knows its surface size), but it doesn't quite fit with the code
in UpdateAvailableGpuMemory, and would be coupled to the other
logic in there, so I decided to keep all the code in one place.
This also converges behavior and tests. The behavior is the
same now, minus calculating the total memory available which
has a new test. Since only foreground tabs/windows are given
memory this should work fine. However, we will need to be
careful when enabling partial evictions of background tabs,
as Android assumes background tabs are fully evicted.
BUG=158465
Review URL: https://chromiumcodereview.appspot.com/11360047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165544 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
their contents when visibility changes, so the GPU memory
manager doesn't need to send them redundant messages to do
so.
Move statistics tracking for testing out of the manager
and into the testing files.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11359016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165441 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
statistics. Add new policy fields to the GPU memory allocation structure.
BUG=134750
Review URL: https://chromiumcodereview.appspot.com/11263052
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164830 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
to the content namespace.
Review URL: https://codereview.chromium.org/11227033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163359 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous behavior was to artifically constrain everything to the minimum spec, which resulted in corruption in high-DPI devices.
We don't have a good concept of handling multiple GPUs in the system, so I just set the budget to be the minimum across all contexts which report a value. In principle, we could have different memory managers for each GPU (and then we'd have to handle context migration, etc, so the solution becomes very complicated).
As a reference, on a retina MBP, there are 2 GPUs -- a discrete GPU with 1GB and an integrated GPU which reports ~1.3GB, so the maximum per-tab memory budget will go from 128MB to 384MB (we still only allow a tab to have 1/2 of the total amount of memory that can be given out, to avoid excessive allocation).
BUG=153918
Review URL: https://chromiumcodereview.appspot.com/11039030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160277 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
The "number of windows" message is to be sent from the browser process, which is much more reliable than trying to reverse-engineer it from visibility messages asynchronously coming from WebKit.
BUG=146448
Review URL: https://chromiumcodereview.appspot.com/11031009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159591 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
1GB, and remove the per-tab limit.
BUG=147356
Review URL: https://chromiumcodereview.appspot.com/10910180
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155963 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each renderer process will have all of the resources that the GPU process has allocated on its behalf (including WebGL resources, compositor resources, and the backbuffer) included in its printed total.
The GPU process will have the all resources currently allocated by the GPU process in its column. This will be approximately the sum of all other rows. The row for the GPU process is printed in ()s to draw attention to the fact that its size includes duplicates from other processes' sizes.
I happy this UI scheme (having played with a few), but I'd wider feedback.
Note that we do not account for swapchains or for backbuffers allocated by the browser process, so those allocations are not counted in the total.
BUG=140157
Review URL: https://chromiumcodereview.appspot.com/10854076
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152233 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tabs to 256M.
The more appropriate fix is that we should be more aggressively discarding offscreen tiles, but this will temporarily fix some OOM issues that we're encountering on low-FB parts.
BUG=141377
Review URL: https://chromiumcodereview.appspot.com/10827342
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151778 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GPU resources.
Change constants in GpuMemoryManager to helper functions (and variables).
This is towards (1) automated testing of the GPU memory manager and (2) getting actual vidmem values.
BUG=132994
Review URL: https://chromiumcodereview.appspot.com/10823092
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149149 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
memory tracking information to the GpuMemoryManager. With this we can determine if we transiently oversubscribe.
BUG=135525
TEST=
Review URL: https://chromiumcodereview.appspot.com/10796096
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148880 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
GpuMemoryManager.
BUG=131650
TEST=GpuMemoryManagerTest.GetStubStatsForLastManageTests content unittest
Review URL: https://chromiumcodereview.appspot.com/10801014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147475 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: https://chromiumcodereview.appspot.com/10696166
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@146071 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GpuMemoryManager will periodically schedule a Manage which calculates and assigns memory allocation limits for client contexts. At the moment, this process is kicked off when tab visibility changes, which is relatively infrequent.
However, the future direction is for the GpuMemoryManager to track and manage client allocations as memory usage changes, which may happen with each generated frame, once for each client. We would like to be able to limit the rate at which we assign allocations, which for now is set to once every 16ms.
BUG=120246
TEST=Manual
Review URL: https://chromiumcodereview.appspot.com/10535063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142972 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
preferred memory limit.
BUG=123382
TEST=Manual
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=134428
Review URL: http://codereview.chromium.org/10083056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134801 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
values for renderer Contents Texture Managers' preferred memory limit.
========================================
This broke mac browser tests with "Failed to initialize command buffer service."
broken tests:AudioLayoutTest.AudioOnlyVideoIntrinsicSize and AudioLayoutTest.MediaDocumentAudioSize
BUG=123382
TEST=Manual
Review URL: http://codereview.chromium.org/10083056
TBR=mmocny@chromium.org
========================================
This CL was not likely to be the cause and I just ran mac browser_tests without any issues.
Review URL: https://chromiumcodereview.appspot.com/10267002
TBR=nsylvain@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10274007
TBR=mmocny@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10270014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134530 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
renderer Contents Texture Managers' preferred memory limit.
========================================
This broke mac browser tests with "Failed to initialize command buffer service."
broken tests:AudioLayoutTest.AudioOnlyVideoIntrinsicSize and AudioLayoutTest.MediaDocumentAudioSize
BUG=123382
TEST=Manual
Review URL: http://codereview.chromium.org/10083056
TBR=mmocny@chromium.org
========================================
This CL was not likely to be the cause and I just ran mac browser_tests without any issues.
Review URL: https://chromiumcodereview.appspot.com/10267002
TBR=nsylvain@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10274007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134527 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Texture Managers' preferred memory limit.
This broke mac browser tests with "Failed to initialize command buffer service."
broken tests:AudioLayoutTest.AudioOnlyVideoIntrinsicSize and AudioLayoutTest.MediaDocumentAudioSize
BUG=123382
TEST=Manual
Review URL: http://codereview.chromium.org/10083056
TBR=mmocny@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10267002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134480 0039d316-1c4b-4281-b951-d872f2087c98
|