| 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 4deee7c497bcbb59c8882b31e9ea23ebd28c856b..e8c8f2f4ab335304b9ea87db77a38505c81cd858 100644
|
| --- a/gpu/config/gpu_info_collector_win.cc
|
| +++ b/gpu/config/gpu_info_collector_win.cc
|
| @@ -210,161 +210,6 @@ bool IsLenovoDCuteInstalled() {
|
| return true;
|
| }
|
|
|
| -// Determines whether D3D11 won't work, either because it is not supported on
|
| -// the machine or because it is known it is likely to crash.
|
| -bool D3D11ShouldWork(const GPUInfo& gpu_info) {
|
| - // TODO(apatrick): This is a temporary change to see what impact disabling
|
| - // D3D11 stats collection has on Canary.
|
| -#if 1
|
| - return false;
|
| -#else
|
| - // Windows XP never supports D3D11. It seems to be less stable that D3D9 on
|
| - // Vista.
|
| - if (base::win::GetVersion() <= base::win::VERSION_VISTA)
|
| - return false;
|
| -
|
| - // http://crbug.com/175525.
|
| - if (gpu_info.display_link_version.IsValid())
|
| - return false;
|
| -
|
| - return true;
|
| -#endif
|
| -}
|
| -
|
| -// Collects information about the level of D3D11 support and records it in
|
| -// the UMA stats. Records no stats when D3D11 in not supported at all.
|
| -void CollectD3D11SupportOnWorkerThread() {
|
| - TRACE_EVENT0("gpu", "CollectD3D11Support");
|
| -
|
| - typedef HRESULT (WINAPI *D3D11CreateDeviceFunc)(
|
| - IDXGIAdapter* adapter,
|
| - D3D_DRIVER_TYPE driver_type,
|
| - HMODULE software,
|
| - UINT flags,
|
| - const D3D_FEATURE_LEVEL* feature_levels,
|
| - UINT num_feature_levels,
|
| - UINT sdk_version,
|
| - ID3D11Device** device,
|
| - D3D_FEATURE_LEVEL* feature_level,
|
| - ID3D11DeviceContext** immediate_context);
|
| -
|
| - // This enumeration must be kept in sync with histograms.xml. Do not reorder
|
| - // the members; always add to the end.
|
| - enum FeatureLevel {
|
| - FEATURE_LEVEL_UNKNOWN,
|
| - FEATURE_LEVEL_NO_D3D11_DLL,
|
| - FEATURE_LEVEL_NO_CREATE_DEVICE_ENTRY_POINT,
|
| - FEATURE_LEVEL_DEVICE_CREATION_FAILED,
|
| - FEATURE_LEVEL_9_1,
|
| - FEATURE_LEVEL_9_2,
|
| - FEATURE_LEVEL_9_3,
|
| - FEATURE_LEVEL_10_0,
|
| - FEATURE_LEVEL_10_1,
|
| - FEATURE_LEVEL_11_0,
|
| - NUM_FEATURE_LEVELS
|
| - };
|
| -
|
| - FeatureLevel feature_level = FEATURE_LEVEL_UNKNOWN;
|
| - UINT bgra_support = 0;
|
| -
|
| - // This module is leaked in case it is hooked by third party software.
|
| - base::NativeLibrary d3d11_module = base::LoadNativeLibrary(
|
| - base::FilePath(L"d3d11.dll"),
|
| - NULL);
|
| -
|
| - if (!d3d11_module) {
|
| - feature_level = FEATURE_LEVEL_NO_D3D11_DLL;
|
| - } else {
|
| - D3D11CreateDeviceFunc create_func =
|
| - reinterpret_cast<D3D11CreateDeviceFunc>(
|
| - base::GetFunctionPointerFromNativeLibrary(d3d11_module,
|
| - "D3D11CreateDevice"));
|
| - if (!create_func) {
|
| - feature_level = FEATURE_LEVEL_NO_CREATE_DEVICE_ENTRY_POINT;
|
| - } else {
|
| - static const D3D_FEATURE_LEVEL d3d_feature_levels[] = {
|
| - D3D_FEATURE_LEVEL_11_0,
|
| - D3D_FEATURE_LEVEL_10_1,
|
| - D3D_FEATURE_LEVEL_10_0,
|
| - D3D_FEATURE_LEVEL_9_3,
|
| - D3D_FEATURE_LEVEL_9_2,
|
| - D3D_FEATURE_LEVEL_9_1
|
| - };
|
| -
|
| - base::win::ScopedComPtr<ID3D11Device> device;
|
| - D3D_FEATURE_LEVEL d3d_feature_level;
|
| - base::win::ScopedComPtr<ID3D11DeviceContext> device_context;
|
| - HRESULT hr = create_func(NULL,
|
| - D3D_DRIVER_TYPE_HARDWARE,
|
| - NULL,
|
| - 0,
|
| - d3d_feature_levels,
|
| - arraysize(d3d_feature_levels),
|
| - D3D11_SDK_VERSION,
|
| - device.Receive(),
|
| - &d3d_feature_level,
|
| - device_context.Receive());
|
| - if (FAILED(hr)) {
|
| - feature_level = FEATURE_LEVEL_DEVICE_CREATION_FAILED;
|
| - } else {
|
| - switch (d3d_feature_level) {
|
| - case D3D_FEATURE_LEVEL_11_0:
|
| - feature_level = FEATURE_LEVEL_11_0;
|
| - break;
|
| - case D3D_FEATURE_LEVEL_10_1:
|
| - feature_level = FEATURE_LEVEL_10_1;
|
| - break;
|
| - case D3D_FEATURE_LEVEL_10_0:
|
| - feature_level = FEATURE_LEVEL_10_0;
|
| - break;
|
| - case D3D_FEATURE_LEVEL_9_3:
|
| - feature_level = FEATURE_LEVEL_9_3;
|
| - break;
|
| - case D3D_FEATURE_LEVEL_9_2:
|
| - feature_level = FEATURE_LEVEL_9_2;
|
| - break;
|
| - case D3D_FEATURE_LEVEL_9_1:
|
| - feature_level = FEATURE_LEVEL_9_1;
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - break;
|
| - }
|
| -
|
| - hr = device->CheckFormatSupport(DXGI_FORMAT_B8G8R8A8_UNORM,
|
| - &bgra_support);
|
| - DCHECK(SUCCEEDED(hr));
|
| - }
|
| - }
|
| - }
|
| -
|
| - UMA_HISTOGRAM_ENUMERATION("GPU.D3D11_FeatureLevel",
|
| - feature_level,
|
| - NUM_FEATURE_LEVELS);
|
| -
|
| - // ANGLE requires at least feature level 10.0. Do not record any further
|
| - // stats if ANGLE would not work anyway.
|
| - if (feature_level < FEATURE_LEVEL_10_0)
|
| - return;
|
| -
|
| - UMA_HISTOGRAM_BOOLEAN(
|
| - "GPU.D3D11_B8G8R8A8_Texture2DSupport",
|
| - (bgra_support & D3D11_FORMAT_SUPPORT_TEXTURE2D) != 0);
|
| - UMA_HISTOGRAM_BOOLEAN(
|
| - "GPU.D3D11_B8G8R8A8_RenderTargetSupport",
|
| - (bgra_support & D3D11_FORMAT_SUPPORT_RENDER_TARGET) != 0);
|
| -}
|
| -
|
| -// Collects information about the level of D3D11 support and records it in
|
| -// the UMA stats. Records no stats when D3D11 in not supported at all.
|
| -void CollectD3D11Support() {
|
| - // D3D11 takes about 50ms to initialize so do this on a worker thread.
|
| - base::WorkerPool::PostTask(
|
| - FROM_HERE,
|
| - base::Bind(CollectD3D11SupportOnWorkerThread),
|
| - false);
|
| -}
|
| -
|
| void DeviceIDToVendorAndDevice(const std::wstring& id,
|
| uint32* vendor_id,
|
| uint32* device_id) {
|
| @@ -708,26 +553,6 @@ CollectInfoResult CollectBasicGraphicsInfo(GPUInfo* gpu_info) {
|
| return kCollectInfoNonFatalFailure;
|
| }
|
|
|
| - // Collect basic information about supported D3D11 features. Delay for 45
|
| - // seconds so as not to regress performance tests.
|
| - if (D3D11ShouldWork(*gpu_info)) {
|
| - // This is on a field trial so we can turn it off easily if it blows up
|
| - // again in stable channel.
|
| - scoped_refptr<base::FieldTrial> trial(
|
| - base::FieldTrialList::FactoryGetFieldTrial(
|
| - "D3D11Experiment", 100, "Disabled", 2015, 7, 8,
|
| - base::FieldTrial::SESSION_RANDOMIZED, NULL));
|
| - const int enabled_group =
|
| - trial->AppendGroup("Enabled", 0);
|
| -
|
| - if (trial->group() == enabled_group) {
|
| - base::MessageLoop::current()->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&CollectD3D11Support),
|
| - base::TimeDelta::FromSeconds(45));
|
| - }
|
| - }
|
| -
|
| gpu_info->basic_info_state = kCollectInfoSuccess;
|
| return kCollectInfoSuccess;
|
| }
|
|
|