Delay the GPU info collection task from 15 seconds to 120 seconds
Currently, a non-sandbox GPU process for the GPU info collection is launced 15 seconds after the browser starts. From the GPU watchdog crash reports, many systems are still busy within the first 30 seconds of the GPU process launch. Running a second GPU process during this period will make the system even busier. Therefore, the delay is now extended from 15 seconds to 120 seconds. The side effect of this delay is DX12/Vulkan won't be available in about:gpu in the first 120 seconds. This will be fixed in the other CL. TBR=jochen@chromium.org Bug:949839 Change-Id: Ib21531f2ae8757199878f810ea33536d373081e9 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1783108 Commit-Queue: Maggie Chen <magchen@chromium.org> Reviewed-by: Ilya Sherman <isherman@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Cr-Commit-Position: refs/heads/master@{#693948}
This commit is contained in:
content
browser
public
shell
test
gpu
gpu_tests
gpu/config
tools
@ -1416,7 +1416,7 @@ int BrowserMainLoop::BrowserThreadsStarted() {
|
||||
#if defined(OS_WIN)
|
||||
if (!parsed_command_line_.HasSwitch(
|
||||
switches::kDisableGpuProcessForDX12VulkanInfoCollection)) {
|
||||
// The default is to delay the secondary GPU process for 15 seconds.
|
||||
// The default is to delay the secondary GPU process for 120 seconds.
|
||||
bool delayed = !parsed_command_line_.HasSwitch(
|
||||
switches::kNoDelayForDX12VulkanInfoCollection);
|
||||
GpuDataManagerImpl::GetInstance()->RequestGpuSupportedRuntimeVersion(
|
||||
|
@ -435,7 +435,7 @@ void GpuDataManagerImplPrivate::RequestGpuSupportedRuntimeVersion(
|
||||
|
||||
if (delayed) {
|
||||
base::PostDelayedTask(FROM_HERE, {BrowserThread::IO}, std::move(task),
|
||||
base::TimeDelta::FromMilliseconds(15000));
|
||||
base::TimeDelta::FromSeconds(120));
|
||||
} else {
|
||||
gpu_info_dx12_vulkan_requested_ = true;
|
||||
gpu_info_dx12_vulkan_request_failed_ = false;
|
||||
|
@ -347,7 +347,7 @@ void BrowserTestBase::SetUp() {
|
||||
}
|
||||
|
||||
// Always disable the unsandbox GPU process for DX12 and Vulkan Info
|
||||
// collection to avoid interference. This GPU process is launched 15
|
||||
// collection to avoid interference. This GPU process is launched 120
|
||||
// seconds after chrome starts.
|
||||
command_line->AppendSwitch(
|
||||
switches::kDisableGpuProcessForDX12VulkanInfoCollection);
|
||||
|
@ -255,7 +255,7 @@ void AppendCommandLineSwitches() {
|
||||
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
||||
|
||||
// Always disable the unsandbox GPU process for DX12 and Vulkan Info
|
||||
// collection to avoid interference. This GPU process is launched 15
|
||||
// collection to avoid interference. This GPU process is launched 120
|
||||
// seconds after chrome starts.
|
||||
command_line->AppendSwitch(
|
||||
switches::kDisableGpuProcessForDX12VulkanInfoCollection);
|
||||
|
@ -292,7 +292,7 @@ bool ShellMainDelegate::BasicStartupComplete(int* exit_code) {
|
||||
command_line.AppendSwitch(switches::kUseFakeDeviceForMediaStream);
|
||||
|
||||
// Always disable the unsandbox GPU process for DX12 and Vulkan Info
|
||||
// collection to avoid interference. This GPU process is launched 15
|
||||
// collection to avoid interference. This GPU process is launched 120
|
||||
// seconds after chrome starts.
|
||||
command_line.AppendSwitch(
|
||||
switches::kDisableGpuProcessForDX12VulkanInfoCollection);
|
||||
|
@ -96,7 +96,7 @@ void WebTestBrowserMain(const content::MainFunctionParams& parameters) {
|
||||
browser_context_path_for_web_tests.GetPath().MaybeAsASCII());
|
||||
|
||||
// Always disable the unsandbox GPU process for DX12 and Vulkan Info
|
||||
// collection to avoid interference. This GPU process is launched 15
|
||||
// collection to avoid interference. This GPU process is launched 120
|
||||
// seconds after chrome starts.
|
||||
base::CommandLine::ForCurrentProcess()->AppendSwitch(
|
||||
switches::kDisableGpuProcessForDX12VulkanInfoCollection);
|
||||
|
@ -80,7 +80,7 @@ class GpuIntegrationTest(
|
||||
if cls._disable_log_uploads:
|
||||
browser_options.logs_cloud_bucket = None
|
||||
|
||||
# A non-sandboxed, 15-seconds-delayed gpu process is currently running in
|
||||
# A non-sandboxed, 120-seconds-delayed gpu process is currently running in
|
||||
# the browser to collect gpu info. A command line switch is added here so
|
||||
# the dx12/vulkan info can be collected immediately for the tests.
|
||||
browser_args.append(
|
||||
|
@ -51,7 +51,8 @@ const char kUseHighGPUThreadPriorityForPerfTests[] =
|
||||
"use-gpu-high-thread-priority-for-perf-tests";
|
||||
|
||||
// Start the non-sandboxed GPU process for DX12 and Vulkan info collection
|
||||
// immediately after the browser starts. The default is to delay for 15 seconds.
|
||||
// immediately after the browser starts. The default is to delay for 120
|
||||
// seconds.
|
||||
const char kNoDelayForDX12VulkanInfoCollection[] =
|
||||
"no-delay-for-dx12-vulkan-info-collection";
|
||||
|
||||
|
@ -50184,7 +50184,7 @@ uploading your change for review.
|
||||
<owner>vmiura@chromium.org</owner>
|
||||
<owner>magchen@chromium.org</owner>
|
||||
<summary>
|
||||
This metric shows whether the GPU supports D3D12. It is recorded 15 seconds
|
||||
This metric shows whether the GPU supports D3D12. It is recorded 120 seconds
|
||||
after the browser launch.
|
||||
</summary>
|
||||
</histogram>
|
||||
|
@ -102,7 +102,7 @@ class PerfBenchmark(benchmark.Benchmark):
|
||||
GetAdTaggingProfileFiles(
|
||||
self._GetOutDirectoryEstimate(finder_options)))
|
||||
|
||||
# A non-sandboxed, 15-seconds-delayed gpu process is currently running in
|
||||
# A non-sandboxed, 120-seconds-delayed gpu process is currently running in
|
||||
# the browser to collect gpu info. A command line switch is added here to
|
||||
# skip this gpu process for all perf tests to prevent any interference
|
||||
# with the test results.
|
||||
|
Reference in New Issue
Block a user