diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2018-07-16 18:47:07 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2018-07-17 08:08:35 +0000 |
commit | 298fb0546014e8f785ed9c611eb252a4f59f7067 (patch) | |
tree | 9990fdfca9ea072e8db9f6cfd321697a5be07f87 | |
parent | db81dc68a8c22ed99d429c2d0278c0d71da5cf48 (diff) |
Fix --single-process --disable-gpu combination not to hit asserts
Chromium always gives permission to create an in-process GPU thread
when using --single-process mode, despite having passed --disable-gpu
switch (for example in ANGLE case).
Remove the condition that gave special treatment to --single-process
mode in disable-gpu mode.
Task-number: QTBUG-69491
Change-Id: I8c7edfe38b9c1716cd226b1e0aac8cc5b99d9c78
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r-- | chromium/content/browser/gpu/gpu_data_manager_impl_private.cc | 3 | ||||
-rw-r--r-- | chromium/content/browser/renderer_host/render_process_host_impl.cc | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/chromium/content/browser/gpu/gpu_data_manager_impl_private.cc b/chromium/content/browser/gpu/gpu_data_manager_impl_private.cc index a399375e3cd..c590ff251cc 100644 --- a/chromium/content/browser/gpu/gpu_data_manager_impl_private.cc +++ b/chromium/content/browser/gpu/gpu_data_manager_impl_private.cc @@ -350,9 +350,6 @@ bool GpuDataManagerImplPrivate::GpuAccessAllowed( return false; } - if (in_process_gpu_) - return true; - if (card_disabled_) { if (reason) { *reason = "GPU access is disabled "; diff --git a/chromium/content/browser/renderer_host/render_process_host_impl.cc b/chromium/content/browser/renderer_host/render_process_host_impl.cc index 9774a814871..87d8572f367 100644 --- a/chromium/content/browser/renderer_host/render_process_host_impl.cc +++ b/chromium/content/browser/renderer_host/render_process_host_impl.cc @@ -1458,7 +1458,11 @@ bool RenderProcessHostImpl::Init() { if (renderer_path.empty()) return false; - if (gpu_client_) + + // Don't grant further access to GPU if it is not allowed. + GpuDataManagerImpl* gpu_data_manager = GpuDataManagerImpl::GetInstance(); + DCHECK(gpu_data_manager); + if (gpu_client_ && gpu_data_manager->GpuAccessAllowed(nullptr)) gpu_client_->PreEstablishGpuChannel(); sent_render_process_ready_ = false; |