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

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

Issue 1874643003: Do not lose secondary gpus and make sure to have an active gpu on multiple gpu configurations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 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 a4ca614c1a8dfd1296bbc906abb4290fe8bf2c93..2690d551bd79cdfbdaeba856c5f725f017acfd2e 100644
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc
@@ -530,6 +530,21 @@ void GpuDataManagerImplPrivate::Initialize() {
gpu_info.gpu.active = true;
gpu_info.secondary_gpus.clear();
}
+
+ if (command_line->HasSwitch(switches::kGpuTestingSecondaryVendorId) &&
+ command_line->HasSwitch(switches::kGpuTestingSecondaryDeviceId)) {
+ gpu_info.gpu.active = false;
+
+ gpu::GPUInfo::GPUDevice secondary_device;
+ secondary_device.active = false;
+ base::HexStringToUInt(command_line->GetSwitchValueASCII(
+ switches::kGpuTestingSecondaryVendorId),
+ &secondary_device.vendor_id);
+ base::HexStringToUInt(command_line->GetSwitchValueASCII(
+ switches::kGpuTestingSecondaryDeviceId),
+ &secondary_device.device_id);
+ gpu_info.secondary_gpus.push_back(secondary_device);
+ }
}
#if defined(ARCH_CPU_X86_FAMILY)
if (!gpu_info.gpu.vendor_id || !gpu_info.gpu.device_id) {
@@ -619,6 +634,10 @@ void GpuDataManagerImplPrivate::UpdateGpuInfo(const gpu::GPUInfo& gpu_info) {
gpu::MergeGPUInfo(&gpu_info_, gpu_info);
if (IsCompleteGpuInfoAvailable()) {
complete_gpu_info_already_requested_ = true;
+#if !defined(OS_MACOSX)
+ // Skip osx because gpu identification is done with DisplayReconfigCallback.
+ gpu::IdentifyActiveGPU(&gpu_info_);
+#endif
} else if (was_info_available) {
// Allow future requests to go through properly.
complete_gpu_info_already_requested_ = false;
@@ -711,6 +730,9 @@ void GpuDataManagerImplPrivate::AppendGpuCommandLine(
// info collection at GPU process startup, but we need gpu vendor_id,
// device_id, driver_vendor, driver_version for deciding whether we need to
// collect full info (on Linux) and for crash reporting purpose.
+ // TODO(j.isorce): http://crbug.com/547025 Passes secondary_gpus as well
+ // otherwise the GPU process might enable gpu driver bug workarounds for
+ // inactive gpus on multiple gpu configuration.
command_line->AppendSwitchASCII(switches::kGpuVendorID,
base::StringPrintf("0x%04x", gpu_info_.gpu.vendor_id));
command_line->AppendSwitchASCII(switches::kGpuDeviceID,
« no previous file with comments | « no previous file | content/test/gpu/page_sets/gpu_process_tests.py » ('j') | content/test/gpu/page_sets/gpu_process_tests.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698