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

Unified Diff: content/browser/gpu/gpu_data_manager_impl_private.cc

Issue 23534006: Enable GPU blacklist in tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Introduce GpuControlListEntry::LogBlacklistMatch() and fix some GpuFeatureTests. Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/gpu/gpu_data_manager_impl_private.cc
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc
index 98656dfdd68ccffbf7f02be7ae4f9f663d753a74..4ae15fb7d286f54ad9e698d8b9c10a322f8279ee 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -563,13 +563,28 @@ void GpuDataManagerImplPrivate::GetGLStrings(std::string* gl_vendor,
void GpuDataManagerImplPrivate::Initialize() {
TRACE_EVENT0("startup", "GpuDataManagerImpl::Initialize");
- CommandLine* command_line = CommandLine::ForCurrentProcess();
- if (command_line->HasSwitch(switches::kSkipGpuDataLoading) &&
- !command_line->HasSwitch(switches::kUseGpuInTests))
- return;
+ const CommandLine* command_line = CommandLine::ForCurrentProcess();
gpu::GPUInfo gpu_info;
- {
+ if (command_line->GetSwitchValueASCII(
+ switches::kUseGL) == gfx::kGLImplementationOSMesaName) {
+ // If using the OSMesa GL implementation, use fake vendor and device ids to
+ // make sure it never gets blacklisted. This is better than simply
+ // cancelling GPUInfo gathering as it allows us to proceed with loading the
+ // blacklist below which may have non-device specific entries we want to
+ // apply anyways (e.g., OS version blacklisting).
+ gpu_info.gpu.vendor_id = 0xffff;
+ gpu_info.gpu.device_id = 0xffff;
+
+ // Hardcode some values otherwise some blacklisting rules in
+ // kSoftwareRenderingListJson result in a positive match as GpuControlList
+ // assumes a match (by design) when a property is required for the
+ // verification yet not present in the GpuInfo.
+ gpu_info.driver_vendor =
+ gfx::kGLImplementationOSMesaName; // Bypass rule #74.
+ gpu_info.driver_date = "2013.8"; // Bypass rules #12 and #55.
+ gpu_info.driver_version = "9.0.3"; // Bypass rule #23.
+ } else {
TRACE_EVENT0("startup",
"GpuDataManagerImpl::Initialize:CollectBasicGraphicsInfo");
gpu::CollectBasicGraphicsInfo(&gpu_info);
@@ -1049,6 +1064,10 @@ void GpuDataManagerImplPrivate::InitializeImpl(
if (!gpu_blacklist_json.empty()) {
gpu_blacklist_.reset(gpu::GpuBlacklist::Create());
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kLogGpuBlacklistDecisions)) {
+ gpu_blacklist_->enable_blacklist_logging();
+ }
gpu_blacklist_->LoadList(
browser_version_string, gpu_blacklist_json,
gpu::GpuControlList::kCurrentOsOnly);

Powered by Google App Engine
This is Rietveld 408576698