Index: gpu/config/gpu_info_collector_win.cc |
diff --git a/gpu/config/gpu_info_collector_win.cc b/gpu/config/gpu_info_collector_win.cc |
index 53343f6563ad429d3981c9872be336f7b7a7de58..eabf9b22681556c02a41cd33159c4119f28b0771 100644 |
--- a/gpu/config/gpu_info_collector_win.cc |
+++ b/gpu/config/gpu_info_collector_win.cc |
@@ -665,6 +665,45 @@ void MergeGPUInfo(GPUInfo* basic_gpu_info, |
return; |
} |
+ // Track D3D Shader Model (if available) |
+ const std::string& shader_version = |
+ context_gpu_info.vertex_shader_version; |
+ |
+ // Only gather if this is the first time we're seeing |
+ // a non-empty shader version string. |
+ if (!shader_version.empty() && |
+ basic_gpu_info->vertex_shader_version.empty()) { |
+ |
+ // Note: do not reorder, used by UMA_HISTOGRAM below |
+ enum ShaderModel { |
+ SHADER_MODEL_UNKNOWN, |
+ SHADER_MODEL_2_0, |
+ SHADER_MODEL_3_0, |
+ SHADER_MODEL_4_0, |
+ SHADER_MODEL_4_1, |
+ SHADER_MODEL_5_0, |
+ NUM_SHADER_MODELS |
+ }; |
+ |
+ ShaderModel shader_model = SHADER_MODEL_UNKNOWN; |
+ |
+ if (shader_version == "5.0") { |
+ shader_model = SHADER_MODEL_5_0; |
+ } else if (shader_version == "4.1") { |
+ shader_model = SHADER_MODEL_4_1; |
+ } else if (shader_version == "4.0") { |
+ shader_model = SHADER_MODEL_4_0; |
+ } else if (shader_version == "3.0") { |
+ shader_model = SHADER_MODEL_3_0; |
+ } else if (shader_version == "2.0") { |
+ shader_model = SHADER_MODEL_2_0; |
+ } |
+ |
+ UMA_HISTOGRAM_ENUMERATION("GPU.D3DShaderModel", |
+ shader_model, |
+ NUM_SHADER_MODELS); |
+ } |
+ |
MergeGPUInfoGL(basic_gpu_info, context_gpu_info); |
basic_gpu_info->dx_diagnostics = context_gpu_info.dx_diagnostics; |