Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(718)

Side by Side Diff: content/gpu/gpu_info_collector_win.cc

Issue 9969135: Disable image transport surface on AMD GPUs (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1025/src/
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/browser/gpu/gpu_data_manager.cc ('k') | content/public/common/gpu_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/gpu/gpu_info_collector.h" 5 #include "content/gpu/gpu_info_collector.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <d3d9.h> 8 #include <d3d9.h>
9 #include <setupapi.h> 9 #include <setupapi.h>
10 #include <winsatcominterfacei.h> 10 #include <winsatcominterfacei.h>
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 driver_version = WideToASCII(std::wstring(value)); 329 driver_version = WideToASCII(std::wstring(value));
330 330
331 std::string driver_date; 331 std::string driver_date;
332 dwcb_data = sizeof(value); 332 dwcb_data = sizeof(value);
333 result = RegQueryValueExW( 333 result = RegQueryValueExW(
334 key, L"DriverDate", NULL, NULL, 334 key, L"DriverDate", NULL, NULL,
335 reinterpret_cast<LPBYTE>(value), &dwcb_data); 335 reinterpret_cast<LPBYTE>(value), &dwcb_data);
336 if (result == ERROR_SUCCESS) 336 if (result == ERROR_SUCCESS)
337 driver_date = WideToASCII(std::wstring(value)); 337 driver_date = WideToASCII(std::wstring(value));
338 338
339 std::string driver_vendor;
340 dwcb_data = sizeof(value);
341 result = RegQueryValueExW(
342 key, L"ProviderName", NULL, NULL,
343 reinterpret_cast<LPBYTE>(value), &dwcb_data);
344 if (result == ERROR_SUCCESS) {
345 driver_vendor = WideToASCII(std::wstring(value));
346 // If it's an Intel GPU with a driver provided by AMD then it's
347 // probably AMD's Dynamic Switchable Graphics.
348 // TODO: detect only AMD switchable
349 gpu_info->amd_switchable =
350 driver_vendor == "Advanced Micro Devices, Inc." ||
351 driver_vendor == "ATI Technologies Inc.";
352 }
353
354 gpu_info->driver_vendor = driver_vendor;
339 gpu_info->driver_version = driver_version; 355 gpu_info->driver_version = driver_version;
340 gpu_info->driver_date = driver_date; 356 gpu_info->driver_date = driver_date;
341 found = true; 357 found = true;
342 RegCloseKey(key); 358 RegCloseKey(key);
343 break; 359 break;
344 } 360 }
345 } 361 }
346 } 362 }
347 fp_destroy_device_info_list(device_info); 363 fp_destroy_device_info_list(device_info);
348 FreeLibrary(lib_setupapi); 364 FreeLibrary(lib_setupapi);
(...skipping 10 matching lines...) Expand all
359 375
360 size_t pos = gl_version_string.find_last_not_of("0123456789."); 376 size_t pos = gl_version_string.find_last_not_of("0123456789.");
361 if (pos != std::string::npos && pos < gl_version_string.length() - 1) { 377 if (pos != std::string::npos && pos < gl_version_string.length() - 1) {
362 gpu_info->driver_version = gl_version_string.substr(pos + 1); 378 gpu_info->driver_version = gl_version_string.substr(pos + 1);
363 return true; 379 return true;
364 } 380 }
365 return false; 381 return false;
366 } 382 }
367 383
368 } // namespace gpu_info_collector 384 } // namespace gpu_info_collector
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_data_manager.cc ('k') | content/public/common/gpu_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698