| 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);
|
|
|