OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef GPU_CONFIG_GPU_INFO_H_ | 5 #ifndef GPU_CONFIG_GPU_INFO_H_ |
6 #define GPU_CONFIG_GPU_INFO_H_ | 6 #define GPU_CONFIG_GPU_INFO_H_ |
7 | 7 |
8 // Provides access to the GPU information for the system | 8 // Provides access to the GPU information for the system |
9 // on which chrome is currently running. | 9 // on which chrome is currently running. |
10 | 10 |
| 11 #include <stdint.h> |
| 12 |
11 #include <string> | 13 #include <string> |
12 #include <vector> | 14 #include <vector> |
13 | 15 |
14 #include "base/basictypes.h" | |
15 #include "base/time/time.h" | 16 #include "base/time/time.h" |
16 #include "base/version.h" | 17 #include "base/version.h" |
17 #include "build/build_config.h" | 18 #include "build/build_config.h" |
18 #include "gpu/config/dx_diag_node.h" | 19 #include "gpu/config/dx_diag_node.h" |
19 #include "gpu/gpu_export.h" | 20 #include "gpu/gpu_export.h" |
20 #include "ui/gfx/geometry/size.h" | 21 #include "ui/gfx/geometry/size.h" |
21 | 22 |
22 namespace gpu { | 23 namespace gpu { |
23 | 24 |
24 // Result for the various Collect*Info* functions below. | 25 // Result for the various Collect*Info* functions below. |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 VideoDecodeAcceleratorCapabilities(); | 69 VideoDecodeAcceleratorCapabilities(); |
69 ~VideoDecodeAcceleratorCapabilities(); | 70 ~VideoDecodeAcceleratorCapabilities(); |
70 VideoDecodeAcceleratorSupportedProfiles supported_profiles; | 71 VideoDecodeAcceleratorSupportedProfiles supported_profiles; |
71 uint32_t flags; | 72 uint32_t flags; |
72 }; | 73 }; |
73 | 74 |
74 // Specification of an encoding profile supported by a hardware encoder. | 75 // Specification of an encoding profile supported by a hardware encoder. |
75 struct GPU_EXPORT VideoEncodeAcceleratorSupportedProfile { | 76 struct GPU_EXPORT VideoEncodeAcceleratorSupportedProfile { |
76 VideoCodecProfile profile; | 77 VideoCodecProfile profile; |
77 gfx::Size max_resolution; | 78 gfx::Size max_resolution; |
78 uint32 max_framerate_numerator; | 79 uint32_t max_framerate_numerator; |
79 uint32 max_framerate_denominator; | 80 uint32_t max_framerate_denominator; |
80 }; | 81 }; |
81 using VideoEncodeAcceleratorSupportedProfiles = | 82 using VideoEncodeAcceleratorSupportedProfiles = |
82 std::vector<VideoEncodeAcceleratorSupportedProfile>; | 83 std::vector<VideoEncodeAcceleratorSupportedProfile>; |
83 | 84 |
84 struct GPU_EXPORT GPUInfo { | 85 struct GPU_EXPORT GPUInfo { |
85 struct GPU_EXPORT GPUDevice { | 86 struct GPU_EXPORT GPUDevice { |
86 GPUDevice(); | 87 GPUDevice(); |
87 ~GPUDevice(); | 88 ~GPUDevice(); |
88 | 89 |
89 // The DWORD (uint32) representing the graphics card vendor id. | 90 // The DWORD (uint32_t) representing the graphics card vendor id. |
90 uint32 vendor_id; | 91 uint32_t vendor_id; |
91 | 92 |
92 // The DWORD (uint32) representing the graphics card device id. | 93 // The DWORD (uint32_t) representing the graphics card device id. |
93 // Device ids are unique to vendor, not to one another. | 94 // Device ids are unique to vendor, not to one another. |
94 uint32 device_id; | 95 uint32_t device_id; |
95 | 96 |
96 // Whether this GPU is the currently used one. | 97 // Whether this GPU is the currently used one. |
97 // Currently this field is only supported and meaningful on OS X. | 98 // Currently this field is only supported and meaningful on OS X. |
98 bool active; | 99 bool active; |
99 | 100 |
100 // The strings that describe the GPU. | 101 // The strings that describe the GPU. |
101 // In Linux these strings are obtained through libpci. | 102 // In Linux these strings are obtained through libpci. |
102 // In Win/MacOSX, these two strings are not filled at the moment. | 103 // In Win/MacOSX, these two strings are not filled at the moment. |
103 // In Android, these are respectively GL_VENDOR and GL_RENDERER. | 104 // In Android, these are respectively GL_VENDOR and GL_RENDERER. |
104 std::string vendor_string; | 105 std::string vendor_string; |
(...skipping 28 matching lines...) Expand all Loading... |
133 GPUDevice gpu; | 134 GPUDevice gpu; |
134 | 135 |
135 // Secondary GPUs, for example, the integrated GPU in a dual GPU machine. | 136 // Secondary GPUs, for example, the integrated GPU in a dual GPU machine. |
136 std::vector<GPUDevice> secondary_gpus; | 137 std::vector<GPUDevice> secondary_gpus; |
137 | 138 |
138 // On Windows, the unique identifier of the adapter the GPU process uses. | 139 // On Windows, the unique identifier of the adapter the GPU process uses. |
139 // The default is zero, which makes the browser process create its D3D device | 140 // The default is zero, which makes the browser process create its D3D device |
140 // on the primary adapter. Note that the primary adapter can change at any | 141 // on the primary adapter. Note that the primary adapter can change at any |
141 // time so it is better to specify a particular LUID. Note that valid LUIDs | 142 // time so it is better to specify a particular LUID. Note that valid LUIDs |
142 // are always non-zero. | 143 // are always non-zero. |
143 uint64 adapter_luid; | 144 uint64_t adapter_luid; |
144 | 145 |
145 // The vendor of the graphics driver currently installed. | 146 // The vendor of the graphics driver currently installed. |
146 std::string driver_vendor; | 147 std::string driver_vendor; |
147 | 148 |
148 // The version of the graphics driver currently installed. | 149 // The version of the graphics driver currently installed. |
149 std::string driver_version; | 150 std::string driver_version; |
150 | 151 |
151 // The date of the graphics driver currently installed. | 152 // The date of the graphics driver currently installed. |
152 std::string driver_date; | 153 std::string driver_date; |
153 | 154 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 std::string gl_ws_vendor; | 190 std::string gl_ws_vendor; |
190 | 191 |
191 // GL window system binding version. "" if not available. | 192 // GL window system binding version. "" if not available. |
192 std::string gl_ws_version; | 193 std::string gl_ws_version; |
193 | 194 |
194 // GL window system binding extensions. "" if not available. | 195 // GL window system binding extensions. "" if not available. |
195 std::string gl_ws_extensions; | 196 std::string gl_ws_extensions; |
196 | 197 |
197 // GL reset notification strategy as defined by GL_ARB_robustness. 0 if GPU | 198 // GL reset notification strategy as defined by GL_ARB_robustness. 0 if GPU |
198 // reset detection or notification not available. | 199 // reset detection or notification not available. |
199 uint32 gl_reset_notification_strategy; | 200 uint32_t gl_reset_notification_strategy; |
200 | 201 |
201 // The device semantics, i.e. whether the Vista and Windows 7 specific | 202 // The device semantics, i.e. whether the Vista and Windows 7 specific |
202 // semantics are available. | 203 // semantics are available. |
203 bool can_lose_context; | 204 bool can_lose_context; |
204 | 205 |
205 bool software_rendering; | 206 bool software_rendering; |
206 | 207 |
207 // Whether the driver uses direct rendering. True on most platforms, false on | 208 // Whether the driver uses direct rendering. True on most platforms, false on |
208 // X11 when using remote X. | 209 // X11 when using remote X. |
209 bool direct_rendering; | 210 bool direct_rendering; |
(...skipping 29 matching lines...) Expand all Loading... |
239 // In conjunction with EnumerateFields, this allows the embedder to | 240 // In conjunction with EnumerateFields, this allows the embedder to |
240 // enumerate the values in this structure without having to embed | 241 // enumerate the values in this structure without having to embed |
241 // references to its specific member variables. This simplifies the | 242 // references to its specific member variables. This simplifies the |
242 // addition of new fields to this type. | 243 // addition of new fields to this type. |
243 class Enumerator { | 244 class Enumerator { |
244 public: | 245 public: |
245 // The following methods apply to the "current" object. Initially this | 246 // The following methods apply to the "current" object. Initially this |
246 // is the root object, but calls to BeginGPUDevice/EndGPUDevice and | 247 // is the root object, but calls to BeginGPUDevice/EndGPUDevice and |
247 // BeginAuxAttributes/EndAuxAttributes change the object to which these | 248 // BeginAuxAttributes/EndAuxAttributes change the object to which these |
248 // calls should apply. | 249 // calls should apply. |
249 virtual void AddInt64(const char* name, int64 value) = 0; | 250 virtual void AddInt64(const char* name, int64_t value) = 0; |
250 virtual void AddInt(const char* name, int value) = 0; | 251 virtual void AddInt(const char* name, int value) = 0; |
251 virtual void AddString(const char* name, const std::string& value) = 0; | 252 virtual void AddString(const char* name, const std::string& value) = 0; |
252 virtual void AddBool(const char* name, bool value) = 0; | 253 virtual void AddBool(const char* name, bool value) = 0; |
253 virtual void AddTimeDeltaInSecondsF(const char* name, | 254 virtual void AddTimeDeltaInSecondsF(const char* name, |
254 const base::TimeDelta& value) = 0; | 255 const base::TimeDelta& value) = 0; |
255 | 256 |
256 // Markers indicating that a GPUDevice is being described. | 257 // Markers indicating that a GPUDevice is being described. |
257 virtual void BeginGPUDevice() = 0; | 258 virtual void BeginGPUDevice() = 0; |
258 virtual void EndGPUDevice() = 0; | 259 virtual void EndGPUDevice() = 0; |
259 | 260 |
(...skipping 16 matching lines...) Expand all Loading... |
276 virtual ~Enumerator() {} | 277 virtual ~Enumerator() {} |
277 }; | 278 }; |
278 | 279 |
279 // Outputs the fields in this structure to the provided enumerator. | 280 // Outputs the fields in this structure to the provided enumerator. |
280 void EnumerateFields(Enumerator* enumerator) const; | 281 void EnumerateFields(Enumerator* enumerator) const; |
281 }; | 282 }; |
282 | 283 |
283 } // namespace gpu | 284 } // namespace gpu |
284 | 285 |
285 #endif // GPU_CONFIG_GPU_INFO_H_ | 286 #endif // GPU_CONFIG_GPU_INFO_H_ |
OLD | NEW |