gpu_memory_stats.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_COMMON_GPU_MEMORY_STATS_H_
6#define CONTENT_PUBLIC_COMMON_GPU_MEMORY_STATS_H_
7
8// Provides access to the GPU information for the system
9// on which chrome is currently running.
10
11#include <map>
12
13#include "base/basictypes.h"
14#include "base/process.h"
15#include "content/common/content_export.h"
16
17namespace content {
18
19struct CONTENT_EXPORT GPUVideoMemoryUsageStats {
20  GPUVideoMemoryUsageStats();
21  ~GPUVideoMemoryUsageStats();
22
23  struct CONTENT_EXPORT ProcessStats {
24    ProcessStats();
25    ~ProcessStats();
26
27    // The bytes of GPU resources accessible by this process
28    size_t video_memory;
29
30    // Set to true if this process' GPU resource count is inflated because
31    // it is counting other processes' resources (e.g, the GPU process has
32    // duplicate set to true because it is the aggregate of all processes)
33    bool has_duplicates;
34  };
35  typedef std::map<base::ProcessId, ProcessStats> ProcessMap;
36
37  // A map of processes to their GPU resource consumption
38  ProcessMap process_map;
39};
40
41}  // namespace content
42
43#endif  // CONTENT_PUBLIC_COMMON_GPU_MEMORY_STATS_H_
44