| Index: content/gpu/gpu_info_collector_win.cc
|
| ===================================================================
|
| --- content/gpu/gpu_info_collector_win.cc (revision 147262)
|
| +++ content/gpu/gpu_info_collector_win.cc (working copy)
|
| @@ -153,6 +153,16 @@
|
|
|
| namespace gpu_info_collector {
|
|
|
| +#if !defined(OFFICIAL_BUILD)
|
| +AMDVideoCardType GetAMDVideocardType() {
|
| + return UNKNOWN;
|
| +}
|
| +#else
|
| +// This function has a real implementation for official builds that can
|
| +// be found in src/third_party/amd.
|
| +AMDVideoCardType GetAMDVideocardType();
|
| +#endif
|
| +
|
| bool CollectGraphicsInfo(content::GPUInfo* gpu_info) {
|
| TRACE_EVENT0("gpu", "CollectGraphicsInfo");
|
|
|
| @@ -344,12 +354,13 @@
|
| reinterpret_cast<LPBYTE>(value), &dwcb_data);
|
| if (result == ERROR_SUCCESS) {
|
| driver_vendor = WideToASCII(std::wstring(value));
|
| - // If it's an Intel GPU with a driver provided by AMD then it's
|
| - // probably AMD's Dynamic Switchable Graphics.
|
| - // TODO: detect only AMD switchable
|
| - gpu_info->amd_switchable =
|
| - driver_vendor == "Advanced Micro Devices, Inc." ||
|
| - driver_vendor == "ATI Technologies Inc.";
|
| + if (driver_vendor == "Advanced Micro Devices, Inc." ||
|
| + driver_vendor == "ATI Technologies Inc.") {
|
| + // We are conservative and assume that in the absense of a clear
|
| + // signal the videocard is assumed to be switchable.
|
| + AMDVideoCardType amd_card_type = GetAMDVideocardType();
|
| + gpu_info->amd_switchable = (amd_card_type != STANDALONE);
|
| + }
|
| }
|
|
|
| gpu_info->driver_vendor = driver_vendor;
|
|
|