0

Use SwANGLE for WebGL on Linux and Windows

This CL changes the software renderer used as WebGL fallback from
legacy SwiftShader GL to SwANGLE (ANGLE + SwiftShader Vulkan) on
Windows and Linux.

Bug: chromium:1209250
Change-Id: I90f7d78c457d1b529b0890bace11c2a0c42902fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2896048
Reviewed-by: Peter Kvitek <kvitekp@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#892225}
This commit is contained in:
Alexis Hetu
2021-06-14 19:56:31 +00:00
committed by Chromium LUCI CQ
parent cbe4171877
commit afe6fcac77
3 changed files with 14 additions and 5 deletions
content/browser/gpu
gpu/config
headless/public

@ -1187,9 +1187,11 @@ void GpuDataManagerImplPrivate::AppendGpuCommandLine(
use_gl = browser_command_line->GetSwitchValueASCII(switches::kUseGL);
break;
case gpu::GpuMode::SWIFTSHADER: {
// This setting makes WebGL run on legacy SwiftShader GL when true and
// SwANGLE when false.
bool legacy_software_gl = true;
#if defined(OS_LINUX) || defined(OS_WIN)
// This setting makes WebGL run on SwANGLE instead of SwiftShader GL.
legacy_software_gl = false;
#endif
gl::SetSoftwareWebGLCommandLineSwitches(command_line, legacy_software_gl);
} break;
default:

@ -739,9 +739,11 @@ bool EnableSwiftShaderIfNeeded(base::CommandLine* command_line,
kGpuFeatureStatusEnabled ||
gpu_feature_info.status_values[GPU_FEATURE_TYPE_ACCELERATED_GL] !=
kGpuFeatureStatusEnabled) {
// This setting makes WebGL run on legacy SwiftShader GL when true and
// SwANGLE when false.
bool legacy_software_gl = true;
#if defined(OS_LINUX) || defined(OS_WIN)
// This setting makes WebGL run on SwANGLE instead of SwiftShader GL.
legacy_software_gl = false;
#endif
gl::SetSoftwareWebGLCommandLineSwitches(command_line, legacy_software_gl);
return true;
}

@ -41,7 +41,12 @@ Options::Options(int argc, const char** argv)
product_name_and_version(GetProductNameAndVersion()),
user_agent(content::BuildUserAgentFromProduct(product_name_and_version)),
window_size(kDefaultWindowSize),
font_render_hinting(kDefaultFontRenderHinting) {}
font_render_hinting(kDefaultFontRenderHinting) {
#if defined(OS_LINUX) || defined(OS_WIN)
gl_implementation = gl::kGLImplementationANGLEName;
angle_implementation = gl::kANGLEImplementationSwiftShaderForWebGLName;
#endif
}
Options::Options(Options&& options) = default;