summaryrefslogtreecommitdiffstats
path: root/content/gpu/gpu_info_collector.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/gpu/gpu_info_collector.h')
-rw-r--r--content/gpu/gpu_info_collector.h50
1 files changed, 20 insertions, 30 deletions
diff --git a/content/gpu/gpu_info_collector.h b/content/gpu/gpu_info_collector.h
index 6a5fa43..654ec48 100644
--- a/content/gpu/gpu_info_collector.h
+++ b/content/gpu/gpu_info_collector.h
@@ -10,51 +10,41 @@
#include "content/common/content_export.h"
#include "content/public/common/gpu_info.h"
-struct IDirect3D9;
-
namespace gpu_info_collector {
-// Populate variables with necessary graphics card information.
-// Returns true on success.
-bool CollectGraphicsInfo(content::GPUInfo* gpu_info);
-
-// Similar to CollectGraphicsInfo, only this collects a subset of variables
-// without creating a GL/DirectX context (and without the danger of crashing).
+// Collects basic GPU info without creating a GL/DirectX context (and without
+// the danger of crashing), including vendor_id and device_id.
+// This is called at browser process startup time.
// The subset each platform collects may be different.
-CONTENT_EXPORT bool CollectPreliminaryGraphicsInfo(
+CONTENT_EXPORT bool CollectBasicGraphicsInfo(
content::GPUInfo* gpu_info);
-#if defined(OS_WIN)
-// Windows provides two ways of doing graphics so we need two ways of
-// collecting info based on what's on a user's machine.
-// The selection between the two methods is done in the cc file.
-
-// A D3D argument is passed in for testing purposes
-CONTENT_EXPORT bool CollectGraphicsInfoD3D(IDirect3D9* d3d,
- content::GPUInfo* gpu_info);
-
-// Collects D3D driver version/date through registry lookup.
-// Note that this does not require a D3D context.
-// device_id here is the raw data in DISPLAY_DEVICE.
-CONTENT_EXPORT bool CollectDriverInfoD3D(const std::wstring& device_id,
- content::GPUInfo* gpu_info);
+// Create a GL/DirectX context and collect related info.
+// This is called at GPU process startup time.
+// Returns true on success.
+bool CollectContextGraphicsInfo(content::GPUInfo* gpu_info);
+#if defined(OS_WIN)
// Collect the DirectX Disagnostics information about the attached displays.
bool GetDxDiagnostics(content::DxDiagNode* output);
#endif // OS_WIN
-// All platforms have a GL version for collecting information
+// Create a GL context and collect GL strings and versions.
CONTENT_EXPORT bool CollectGraphicsInfoGL(content::GPUInfo* gpu_info);
-// Collect GL and Shading language version information
-bool CollectGLVersionInfo(content::GPUInfo* gpu_info);
-
-// Platform specific method for collecting vendor and device ids
-bool CollectVideoCardInfo(content::GPUInfo* gpu_info);
-
// Each platform stores the driver version on the GL_VERSION string differently
bool CollectDriverInfoGL(content::GPUInfo* gpu_info);
+// Merge GPUInfo from CollectContextGraphicsInfo into basic GPUInfo.
+// This is platform specific, depending on which info are collected at which
+// stage.
+void MergeGPUInfo(content::GPUInfo* basic_gpu_info,
+ const content::GPUInfo& context_gpu_info);
+
+// MergeGPUInfo() when GL driver is used.
+void MergeGPUInfoGL(content::GPUInfo* basic_gpu_info,
+ const content::GPUInfo& context_gpu_info);
+
// Advanced Micro Devices has interesting configurations on laptops were
// there are two videocards that can alternatively a given process output.
enum AMDVideoCardType {