Chromium Code Reviews| 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 8d21371fd09cb5f40b3f03622d96e787eb5c1ab4..a3de36401c71ae5ee1dccf4033d69d66c9d11069 100644 |
| --- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
| +++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
| @@ -43,6 +43,7 @@ |
| #include "gpu/ipc/service/switches.h" |
| #include "media/media_features.h" |
| #include "ui/base/ui_base_switches.h" |
| +#include "ui/gl/gl_features.h" |
| #include "ui/gl/gl_implementation.h" |
| #include "ui/gl/gl_switches.h" |
| #include "ui/gl/gpu_switching_manager.h" |
| @@ -295,9 +296,8 @@ bool GpuDataManagerImplPrivate::IsFeatureBlacklisted(int feature) const { |
| if (use_swiftshader_) { |
| // Skia's software rendering is probably more efficient than going through |
| // software emulation of the GPU, so use that. |
| - if (feature == gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS) |
| - return true; |
| - return false; |
| + return (feature == gpu::GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS || |
| + feature == gpu::GPU_FEATURE_TYPE_WEBGL2); |
| } |
| return (blacklisted_features_.count(feature) == 1); |
| @@ -316,7 +316,8 @@ bool GpuDataManagerImplPrivate::IsDriverBugWorkaroundActive(int feature) const { |
| size_t GpuDataManagerImplPrivate::GetBlacklistedFeatureCount() const { |
| if (use_swiftshader_) |
| - return 1; |
| + return 2; // GPU_FEATURE_TYPE_ACCELERATED_2D_CANVAS and |
| + // GPU_FEATURE_TYPE_WEBGL2 |
| return blacklisted_features_.size(); |
| } |
| @@ -440,12 +441,6 @@ bool GpuDataManagerImplPrivate::ShouldUseSwiftShader() const { |
| return use_swiftshader_; |
| } |
| -void GpuDataManagerImplPrivate::RegisterSwiftShaderPath( |
| - const base::FilePath& path) { |
| - swiftshader_path_ = path; |
| - EnableSwiftShaderIfNecessary(); |
| -} |
| - |
| void GpuDataManagerImplPrivate::AddObserver(GpuDataManagerObserver* observer) { |
| GpuDataManagerImpl::UnlockedSession session(owner_); |
| observer_list_->AddObserver(observer); |
| @@ -754,11 +749,6 @@ void GpuDataManagerImplPrivate::AppendGpuCommandLine( |
| else |
| command_line->AppendSwitchASCII(switches::kSupportsDualGpus, "false"); |
| - if (!swiftshader_path_.empty()) { |
| - command_line->AppendSwitchPath(switches::kSwiftShaderPath, |
| - swiftshader_path_); |
| - } |
| - |
| if (!gpu_driver_bugs_.empty()) { |
| command_line->AppendSwitchASCII(switches::kGpuDriverBugWorkarounds, |
| IntSetToString(gpu_driver_bugs_)); |
| @@ -1139,8 +1129,6 @@ GpuDataManagerImplPrivate::GpuDataManagerImplPrivate(GpuDataManagerImpl* owner) |
| DCHECK(owner_); |
| const base::CommandLine* command_line = |
| base::CommandLine::ForCurrentProcess(); |
| - swiftshader_path_ = command_line->GetSwitchValuePath( |
| - switches::kSwiftShaderPath); |
| if (ShouldDisableHardwareAcceleration()) |
| DisableHardwareAcceleration(); |
| @@ -1243,13 +1231,14 @@ void GpuDataManagerImplPrivate::NotifyGpuInfoUpdate() { |
| } |
| void GpuDataManagerImplPrivate::EnableSwiftShaderIfNecessary() { |
| - if (!GpuAccessAllowed(NULL) || |
| +#if BUILDFLAG(ENABLE_SWIFTSHADER) |
| + if (!GpuAccessAllowed(nullptr) || |
|
sugoi1
2017/03/01 16:50:22
This call to GpuAccessAllowed() causes SwiftShader
|
| blacklisted_features_.count(gpu::GPU_FEATURE_TYPE_WEBGL)) { |
| - if (!swiftshader_path_.empty() && |
| - !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kDisableSoftwareRasterizer)) |
| + if (!base::CommandLine::ForCurrentProcess()->HasSwitch( |
| + switches::kDisableSoftwareRasterizer)) |
| use_swiftshader_ = true; |
| } |
| +#endif |
| } |
| std::string GpuDataManagerImplPrivate::GetDomainFromURL( |