Chromium Code Reviews| 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 8968d41a2a7f3c9bb1148f670f2cce847af592ce..3a618d867f54e407476df3b38690377b6751b856 100644 |
| --- a/gpu/config/gpu_info_collector_win.cc |
| +++ b/gpu/config/gpu_info_collector_win.cc |
| @@ -371,8 +371,8 @@ void GetAMDVideocardInfo(GPUInfo* gpu_info) { |
| } |
| #endif |
| -bool CollectDriverInfoD3D(const std::wstring& device_id, |
| - GPUInfo* gpu_info) { |
| +CollectInfoResult CollectDriverInfoD3D(const std::wstring& device_id, |
| + GPUInfo* gpu_info) { |
| TRACE_EVENT0("gpu", "CollectDriverInfoD3D"); |
| // create device info for the display device |
| @@ -381,7 +381,7 @@ bool CollectDriverInfoD3D(const std::wstring& device_id, |
| DIGCF_PRESENT | DIGCF_PROFILE | DIGCF_ALLCLASSES); |
| if (device_info == INVALID_HANDLE_VALUE) { |
| LOG(ERROR) << "Creating device info failed"; |
| - return false; |
| + return kCollectInfoNonFatalResult; |
| } |
| DWORD index = 0; |
| @@ -453,7 +453,7 @@ bool CollectDriverInfoD3D(const std::wstring& device_id, |
| } |
| } |
| SetupDiDestroyDeviceInfoList(device_info); |
| - return found; |
| + return found ? kCollectInfoSuccess ? kCollectInfoNonFatalFailure; |
|
piman
2014/09/03 00:50:55
typo?
Zhenyao Mo
2014/09/03 01:31:23
Done.
|
| } |
| CollectInfoResult CollectContextGraphicsInfo(GPUInfo* gpu_info) { |
| @@ -466,13 +466,16 @@ CollectInfoResult CollectContextGraphicsInfo(GPUInfo* gpu_info) { |
| CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kUseGL); |
| if (requested_implementation_name == "swiftshader") { |
| gpu_info->software_rendering = true; |
| + gpu_info->context_info_state = kCollectInfoNonFatalFailure; |
| return kCollectInfoNonFatalFailure; |
| } |
| } |
| CollectInfoResult result = CollectGraphicsInfoGL(gpu_info); |
| - if (result != kCollectInfoSuccess) |
| + if (result != kCollectInfoSuccess) { |
| + gpu_info->context_info_state = result; |
| return result; |
| + } |
| // ANGLE's renderer strings are of the form: |
| // ANGLE (<adapter_identifier> Direct3D<version> vs_x_x ps_x_x) |
| @@ -516,16 +519,16 @@ CollectInfoResult CollectContextGraphicsInfo(GPUInfo* gpu_info) { |
| RE2::Hex(&gpu_info->adapter_luid)); |
| // DirectX diagnostics are collected asynchronously because it takes a |
| - // couple of seconds. Do not mark gpu_info as complete until that is done. |
| - gpu_info->finalized = false; |
| + // couple of seconds. |
| } else { |
| - gpu_info->finalized = true; |
| + gpu_info->dx_diagnostics_info_state = kCollectInfoNonFatalFailure; |
| } |
| + gpu_info->context_info_state = kCollectInfoSuccess; |
| return kCollectInfoSuccess; |
| } |
| -GpuIDResult CollectGpuID(uint32* vendor_id, uint32* device_id) { |
| +CollectInfoResult CollectGpuID(uint32* vendor_id, uint32* device_id) { |
| DCHECK(vendor_id && device_id); |
| *vendor_id = 0; |
| *device_id = 0; |
| @@ -550,9 +553,9 @@ GpuIDResult CollectGpuID(uint32* vendor_id, uint32* device_id) { |
| *vendor_id = vendor; |
| *device_id = device; |
| if (*vendor_id != 0 && *device_id != 0) |
| - return kGpuIDSuccess; |
| + return kCollectInfoSuccess; |
| } |
| - return kGpuIDFailure; |
| + return kCollectInfoNonFatalFailure; |
| } |
| CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) { |
| @@ -595,8 +598,10 @@ CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) { |
| } |
| } |
| - if (id.length() <= 20) |
| + if (id.length() <= 20) { |
| + gpu_info->basic_info_state = kCollectInfoNonFatalFailure; |
| return kCollectInfoNonFatalFailure; |
| + } |
| int vendor_id = 0, device_id = 0; |
| base::string16 vendor_id_string = id.substr(8, 4); |
| @@ -606,8 +611,10 @@ CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) { |
| gpu_info->gpu.vendor_id = vendor_id; |
| gpu_info->gpu.device_id = device_id; |
| // TODO(zmo): we only need to call CollectDriverInfoD3D() if we use ANGLE. |
| - if (!CollectDriverInfoD3D(id, gpu_info)) |
| + if (!CollectDriverInfoD3D(id, gpu_info)) { |
| + gpu_info->basic_info_state = kCollectInfoNonFatalFailure; |
| return kCollectInfoNonFatalFailure; |
| + } |
| // Collect basic information about supported D3D11 features. Delay for 45 |
| // seconds so as not to regress performance tests. |
| @@ -629,6 +636,7 @@ CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) { |
| } |
| } |
| + gpu_info->basic_info_state = kCollectInfoSuccess; |
| return kCollectInfoSuccess; |
| } |