diff options
Diffstat (limited to 'content/public')
-rw-r--r-- | content/public/browser/gpu_data_manager.h | 4 | ||||
-rw-r--r-- | content/public/browser/gpu_data_manager_observer.h | 5 | ||||
-rw-r--r-- | content/public/common/gpu_memory_stats.cc | 23 | ||||
-rw-r--r-- | content/public/common/gpu_memory_stats.h | 43 |
4 files changed, 75 insertions, 0 deletions
diff --git a/content/public/browser/gpu_data_manager.h b/content/public/browser/gpu_data_manager.h index 68b5173..9149ead 100644 --- a/content/public/browser/gpu_data_manager.h +++ b/content/public/browser/gpu_data_manager.h @@ -47,6 +47,10 @@ class GpuDataManager { virtual bool IsCompleteGPUInfoAvailable() const = 0; + // Requests that the GPU process report its current video memory usage stats, + // which can be retrieved via the GPU data manager's on-update function. + virtual void RequestVideoMemoryUsageStatsUpdate() = 0; + // Returns true if the software rendering should currently be used. virtual bool ShouldUseSoftwareRendering() = 0; diff --git a/content/public/browser/gpu_data_manager_observer.h b/content/public/browser/gpu_data_manager_observer.h index 67d8d4a..c5b1b3d 100644 --- a/content/public/browser/gpu_data_manager_observer.h +++ b/content/public/browser/gpu_data_manager_observer.h @@ -6,6 +6,7 @@ #define CONTENT_PUBLIC_BROWSER_GPU_DATA_MANAGER_OBSERVER_H_ #include "content/common/content_export.h" +#include "content/public/common/gpu_memory_stats.h" namespace content { @@ -16,6 +17,10 @@ class GpuDataManagerObserver { // Called for any observers whenever there is a GPU info update. virtual void OnGpuInfoUpdate() = 0; + // Called for any observers whenever there is a GPU video memory update. + virtual void OnVideoMemoryUsageStatsUpdate( + const GPUVideoMemoryUsageStats& video_memory_usage_stats) = 0; + protected: virtual ~GpuDataManagerObserver() {} }; diff --git a/content/public/common/gpu_memory_stats.cc b/content/public/common/gpu_memory_stats.cc new file mode 100644 index 0000000..b593ab4 --- /dev/null +++ b/content/public/common/gpu_memory_stats.cc @@ -0,0 +1,23 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/public/common/gpu_memory_stats.h" + +namespace content { + +GPUVideoMemoryUsageStats::GPUVideoMemoryUsageStats() { +} + +GPUVideoMemoryUsageStats::~GPUVideoMemoryUsageStats() { +} + +GPUVideoMemoryUsageStats::ProcessStats::ProcessStats() + : video_memory(0), + has_duplicates(false) { +} + +GPUVideoMemoryUsageStats::ProcessStats::~ProcessStats() { +} + +} // namespace content diff --git a/content/public/common/gpu_memory_stats.h b/content/public/common/gpu_memory_stats.h new file mode 100644 index 0000000..5ae6e97 --- /dev/null +++ b/content/public/common/gpu_memory_stats.h @@ -0,0 +1,43 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_PUBLIC_COMMON_GPU_MEMORY_STATS_H_ +#define CONTENT_PUBLIC_COMMON_GPU_MEMORY_STATS_H_ + +// Provides access to the GPU information for the system +// on which chrome is currently running. + +#include <map> + +#include "base/basictypes.h" +#include "base/process.h" +#include "content/common/content_export.h" + +namespace content { + +struct CONTENT_EXPORT GPUVideoMemoryUsageStats { + GPUVideoMemoryUsageStats(); + ~GPUVideoMemoryUsageStats(); + + struct CONTENT_EXPORT ProcessStats { + ProcessStats(); + ~ProcessStats(); + + // The bytes of GPU resources accessible by this process + size_t video_memory; + + // Set to true if this process' GPU resource count is inflated because + // it is counting other processes' resources (e.g, the GPU process has + // duplicate set to true because it is the aggregate of all processes) + bool has_duplicates; + }; + typedef std::map<base::ProcessId, ProcessStats> ProcessMap; + + // A map of processes to their GPU resource consumption + ProcessMap process_map; +}; + +} // namespace content + +#endif // CONTENT_PUBLIC_COMMON_GPU_MEMORY_STATS_H_ |