summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2018-07-16 18:47:07 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2018-07-17 08:08:35 +0000
commit298fb0546014e8f785ed9c611eb252a4f59f7067 (patch)
tree9990fdfca9ea072e8db9f6cfd321697a5be07f87
parentdb81dc68a8c22ed99d429c2d0278c0d71da5cf48 (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.cc3
-rw-r--r--chromium/content/browser/renderer_host/render_process_host_impl.cc6
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;