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

Side by Side Diff: content/browser/browser_main_loop.cc

Issue 2124633002: Add new gpu driver bug workaround DISABLE_TRANSPARENT_VISUALS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Just make sure the new gpu driver workaround exist in second test instead of using fake values Created 4 years, 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | content/test/gpu/page_sets/gpu_process_tests.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/browser_main_loop.h" 5 #include "content/browser/browser_main_loop.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 174
175 #if defined(ENABLE_PLUGINS) 175 #if defined(ENABLE_PLUGINS)
176 #include "content/browser/plugin_service_impl.h" 176 #include "content/browser/plugin_service_impl.h"
177 #endif 177 #endif
178 178
179 #if defined(ENABLE_MOJO_CDM) && defined(ENABLE_PEPPER_CDMS) 179 #if defined(ENABLE_MOJO_CDM) && defined(ENABLE_PEPPER_CDMS)
180 #include "content/browser/media/cdm_service_impl.h" 180 #include "content/browser/media/cdm_service_impl.h"
181 #endif 181 #endif
182 182
183 #if defined(USE_X11) 183 #if defined(USE_X11)
184 #include "gpu/config/gpu_driver_bug_workaround_type.h"
184 #include "ui/base/x/x11_util_internal.h" // nogncheck 185 #include "ui/base/x/x11_util_internal.h" // nogncheck
185 #include "ui/gfx/x/x11_connection.h" // nogncheck 186 #include "ui/gfx/x/x11_connection.h" // nogncheck
186 #include "ui/gfx/x/x11_switches.h" // nogncheck 187 #include "ui/gfx/x/x11_switches.h" // nogncheck
187 #include "ui/gfx/x/x11_types.h" // nogncheck 188 #include "ui/gfx/x/x11_types.h" // nogncheck
188 #endif 189 #endif
189 190
190 #if defined(USE_NSS_CERTS) 191 #if defined(USE_NSS_CERTS)
191 #include "crypto/nss_util.h" 192 #include "crypto/nss_util.h"
192 #endif 193 #endif
193 194
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 // starts ensures the affected IO thread messages always have somewhere to go. 756 // starts ensures the affected IO thread messages always have somewhere to go.
756 ui::WindowResizeHelperMac::Get()->Init(base::ThreadTaskRunnerHandle::Get()); 757 ui::WindowResizeHelperMac::Get()->Init(base::ThreadTaskRunnerHandle::Get());
757 #endif 758 #endif
758 759
759 // 1) Need to initialize in-process GpuDataManager before creating threads. 760 // 1) Need to initialize in-process GpuDataManager before creating threads.
760 // It's unsafe to append the gpu command line switches to the global 761 // It's unsafe to append the gpu command line switches to the global
761 // CommandLine::ForCurrentProcess object after threads are created. 762 // CommandLine::ForCurrentProcess object after threads are created.
762 // 2) Must be after parts_->PreCreateThreads to pick up chrome://flags. 763 // 2) Must be after parts_->PreCreateThreads to pick up chrome://flags.
763 GpuDataManagerImpl::GetInstance()->Initialize(); 764 GpuDataManagerImpl::GetInstance()->Initialize();
764 765
766 #if defined(USE_X11) && !defined(OS_CHROMEOS)
767 // PreCreateThreads is called before CreateStartupTasks which starts the gpu
768 // process.
769 bool enable_transparent_visuals =
770 !GpuDataManagerImpl::GetInstance()->IsDriverBugWorkaroundActive(
771 gpu::DISABLE_TRANSPARENT_VISUALS);
772 Visual* visual = NULL;
773 int depth = 0;
774 ui::ChooseVisualForWindow(enable_transparent_visuals, &visual, &depth);
775 DCHECK(depth > 0);
776 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
777 switches::kWindowDepth, base::IntToString(depth));
778 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
779 switches::kX11VisualID, base::UintToString(visual->visualid));
780 #endif
781
765 #if !defined(GOOGLE_CHROME_BUILD) || defined(OS_ANDROID) 782 #if !defined(GOOGLE_CHROME_BUILD) || defined(OS_ANDROID)
766 // Single-process is an unsupported and not fully tested mode, so 783 // Single-process is an unsupported and not fully tested mode, so
767 // don't enable it for official Chrome builds (except on Android). 784 // don't enable it for official Chrome builds (except on Android).
768 if (parsed_command_line_.HasSwitch(switches::kSingleProcess)) 785 if (parsed_command_line_.HasSwitch(switches::kSingleProcess))
769 RenderProcessHost::SetRunRendererInProcess(true); 786 RenderProcessHost::SetRunRendererInProcess(true);
770 #endif 787 #endif
771 788
772 return result_code_; 789 return result_code_;
773 } 790 }
774 791
(...skipping 603 matching lines...) Expand 10 before | Expand all | Expand 10 after
1378 PLOG(FATAL); 1395 PLOG(FATAL);
1379 #endif 1396 #endif
1380 1397
1381 #if defined(USE_AURA) 1398 #if defined(USE_AURA)
1382 1399
1383 #if defined(USE_X11) 1400 #if defined(USE_X11)
1384 if (!gfx::GetXDisplay()) { 1401 if (!gfx::GetXDisplay()) {
1385 LOG(ERROR) << "Unable to open X display."; 1402 LOG(ERROR) << "Unable to open X display.";
1386 return false; 1403 return false;
1387 } 1404 }
1388
1389 #if !defined(OS_CHROMEOS)
1390 // InitializeToolkit is called before CreateStartupTasks which one starts the
1391 // gpu process.
1392 Visual* visual = NULL;
1393 int depth = 0;
1394 ui::ChooseVisualForWindow(&visual, &depth);
1395 DCHECK(depth > 0);
1396 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
1397 switches::kWindowDepth, base::IntToString(depth));
1398 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
1399 switches::kX11VisualID, base::UintToString(visual->visualid));
1400 #endif
1401
1402 #endif 1405 #endif
1403 1406
1404 // Env creates the compositor. Aura widgets need the compositor to be created 1407 // Env creates the compositor. Aura widgets need the compositor to be created
1405 // before they can be initialized by the browser. 1408 // before they can be initialized by the browser.
1406 env_ = aura::Env::CreateInstance(); 1409 env_ = aura::Env::CreateInstance();
1407 #endif // defined(USE_AURA) 1410 #endif // defined(USE_AURA)
1408 1411
1409 if (parts_) 1412 if (parts_)
1410 parts_->ToolkitInitialized(); 1413 parts_->ToolkitInitialized();
1411 1414
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner = 1521 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner =
1519 audio_thread_->task_runner(); 1522 audio_thread_->task_runner();
1520 audio_manager_ = media::AudioManager::Create(std::move(audio_task_runner), 1523 audio_manager_ = media::AudioManager::Create(std::move(audio_task_runner),
1521 std::move(worker_task_runner), 1524 std::move(worker_task_runner),
1522 MediaInternals::GetInstance()); 1525 MediaInternals::GetInstance());
1523 } 1526 }
1524 CHECK(audio_manager_); 1527 CHECK(audio_manager_);
1525 } 1528 }
1526 1529
1527 } // namespace content 1530 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/test/gpu/page_sets/gpu_process_tests.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698