Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Unified Diff: content/common/gpu/gpu_memory_manager.cc

Issue 11516014: Track managed memory usage in the command buffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix unit test compile error Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/common/gpu/gpu_memory_manager.h ('k') | content/common/gpu/gpu_memory_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/gpu/gpu_memory_manager.cc
diff --git a/content/common/gpu/gpu_memory_manager.cc b/content/common/gpu/gpu_memory_manager.cc
index 386ad90cf6ccee6a66fcaa9b1b60caf8029e7698..f3834c84885e2a767b477251aa83390ae427b2a4 100644
--- a/content/common/gpu/gpu_memory_manager.cc
+++ b/content/common/gpu/gpu_memory_manager.cc
@@ -44,9 +44,10 @@ GpuMemoryManager::GpuMemoryManager(
bytes_available_gpu_memory_(0),
bytes_available_gpu_memory_overridden_(false),
bytes_backgrounded_available_gpu_memory_(0),
- bytes_allocated_current_(0),
+ bytes_allocated_managed_current_(0),
bytes_allocated_managed_visible_(0),
bytes_allocated_managed_backgrounded_(0),
+ bytes_allocated_unmanaged_current_(0),
bytes_allocated_historical_max_(0),
window_count_has_been_received_(false),
window_count_(0),
@@ -67,7 +68,8 @@ GpuMemoryManager::GpuMemoryManager(
GpuMemoryManager::~GpuMemoryManager() {
DCHECK(tracking_groups_.empty());
DCHECK(clients_.empty());
- DCHECK(!bytes_allocated_current_);
+ DCHECK(!bytes_allocated_managed_current_);
+ DCHECK(!bytes_allocated_unmanaged_current_);
DCHECK(!bytes_allocated_managed_visible_);
DCHECK(!bytes_allocated_managed_backgrounded_);
}
@@ -258,16 +260,30 @@ void GpuMemoryManager::ScheduleManage(bool immediate) {
}
}
-void GpuMemoryManager::TrackMemoryAllocatedChange(size_t old_size,
- size_t new_size) {
- TrackValueChanged(old_size, new_size, &bytes_allocated_current_);
+void GpuMemoryManager::TrackMemoryAllocatedChange(
+ size_t old_size,
+ size_t new_size,
+ gpu::gles2::MemoryTracker::Pool tracking_pool) {
+ switch (tracking_pool) {
+ case gpu::gles2::MemoryTracker::kManaged:
+ TrackValueChanged(old_size, new_size, &bytes_allocated_managed_current_);
+ break;
+ case gpu::gles2::MemoryTracker::kUnmanaged:
+ TrackValueChanged(old_size,
+ new_size,
+ &bytes_allocated_unmanaged_current_);
+ break;
+ default:
+ NOTREACHED();
+ break;
+ }
if (new_size != old_size) {
TRACE_COUNTER1("gpu",
"GpuMemoryUsage",
- bytes_allocated_current_);
+ GetCurrentUsage());
}
- if (bytes_allocated_current_ > bytes_allocated_historical_max_) {
- bytes_allocated_historical_max_ = bytes_allocated_current_;
+ if (GetCurrentUsage() > bytes_allocated_historical_max_) {
+ bytes_allocated_historical_max_ = GetCurrentUsage();
// If we're blowing into new memory usage territory, spam the browser
// process with the most up-to-date information about our memory usage.
SendUmaStatsToBrowser();
@@ -399,7 +415,7 @@ void GpuMemoryManager::GetVideoMemoryUsageStats(
// Assign the total across all processes in the GPU process
video_memory_usage_stats.process_map[
- base::GetCurrentProcId()].video_memory = bytes_allocated_current_;
+ base::GetCurrentProcId()].video_memory = GetCurrentUsage();
video_memory_usage_stats.process_map[
base::GetCurrentProcId()].has_duplicates = true;
}
@@ -614,7 +630,7 @@ void GpuMemoryManager::SendUmaStatsToBrowser() {
if (!channel_manager_)
return;
GPUMemoryUmaStats params;
- params.bytes_allocated_current = bytes_allocated_current_;
+ params.bytes_allocated_current = GetCurrentUsage();
params.bytes_allocated_max = bytes_allocated_historical_max_;
params.bytes_limit = bytes_available_gpu_memory_;
params.window_count = window_count_;
« no previous file with comments | « content/common/gpu/gpu_memory_manager.h ('k') | content/common/gpu/gpu_memory_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698