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 ceb4500461f5f1894bab21d64e6f16f4f1220a48..ffc16589e70a301eea483a708b953b746df3f5d7 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
@@ -544,6 +544,10 @@ void GpuDataManagerImplPrivate::Initialize() { |
gpu_info.gpu.active = true; |
gpu_info.secondary_gpus.clear(); |
} |
+ |
+ gpu::ParseSecondaryGpuDevicesFromCommandLine( |
+ *command_line, switches::kGpuTestingSecondaryVendorIDs, |
+ switches::kGpuTestingSecondaryDeviceIDs, &gpu_info); |
} |
#if defined(ARCH_CPU_X86_FAMILY) |
if (!gpu_info.gpu.vendor_id || !gpu_info.gpu.device_id) { |
@@ -742,6 +746,24 @@ void GpuDataManagerImplPrivate::AppendGpuCommandLine( |
gpu_info_.driver_vendor); |
command_line->AppendSwitchASCII(switches::kGpuDriverVersion, |
gpu_info_.driver_version); |
+ |
+ std::string vendor_ids_str; |
+ std::string device_ids_str; |
+ for (const auto& device : gpu_info_.secondary_gpus) { |
+ if (!vendor_ids_str.empty()) |
+ vendor_ids_str += ";"; |
+ if (!device_ids_str.empty()) |
+ device_ids_str += ";"; |
+ vendor_ids_str += base::StringPrintf("0x%04x", device.vendor_id); |
+ device_ids_str += base::StringPrintf("0x%04x", device.device_id); |
+ } |
+ |
+ if (!vendor_ids_str.empty() && !device_ids_str.empty()) { |
+ command_line->AppendSwitchASCII(switches::kGpuSecondaryVendorIDs, |
+ vendor_ids_str); |
+ command_line->AppendSwitchASCII(switches::kGpuSecondaryDeviceIDs, |
+ device_ids_str); |
+ } |
} |
void GpuDataManagerImplPrivate::UpdateRendererWebPrefs( |