Commit d5d8ffa8 by Tibor Dusnoki Committed by Commit Bot

Disable ANGLE GL and Vulkan on Windows on ARM

Currently Windows on ARM doesn't support OpenGL but it is enabled in ANGLE by default. Vulkan is only supported via Swiftshader so we should not test native Vulkan. Therefore it causes crashes and fails on Windows on ARM when running angle_end2end_tests. Bug: angleproject:4318 Change-Id: I70349ed53a2248df2dc8e7a0c0b3a6a5537a1110 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2007414Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 23521ca3
...@@ -82,6 +82,9 @@ declare_args() { ...@@ -82,6 +82,9 @@ declare_args() {
} else { } else {
angle_libs_suffix = "" angle_libs_suffix = ""
} }
# Currently Windows on Arm doesn't support OpenGL or Vulkan.
is_win_arm64 = is_win && target_cpu == "arm64"
} }
declare_args() { declare_args() {
...@@ -89,7 +92,7 @@ declare_args() { ...@@ -89,7 +92,7 @@ declare_args() {
angle_enable_d3d11 = is_win angle_enable_d3d11 = is_win
angle_enable_gl = angle_enable_gl =
(ozone_platform_gbm || !is_linux || (angle_use_x11 && !is_chromeos)) && (ozone_platform_gbm || !is_linux || (angle_use_x11 && !is_chromeos)) &&
!is_fuchsia && !angle_is_winuwp && !is_ggp !is_fuchsia && !angle_is_winuwp && !is_ggp && !is_win_arm64
# ANGLE Vulkan backend on Android requires API level 26, i.e. Oreo, due to # ANGLE Vulkan backend on Android requires API level 26, i.e. Oreo, due to
# Vulkan Validation Layers compatibility issues, see http://crrev/c/1405714. # Vulkan Validation Layers compatibility issues, see http://crrev/c/1405714.
......
...@@ -258,6 +258,15 @@ bool IsNVIDIA() ...@@ -258,6 +258,15 @@ bool IsNVIDIA()
return HasSystemVendorID(kVendorID_NVIDIA); return HasSystemVendorID(kVendorID_NVIDIA);
} }
bool IsARM64()
{
#if defined(_M_ARM64)
return true;
#else
return false;
#endif
}
bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters &param) bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters &param)
{ {
VendorID vendorID = VendorID vendorID =
...@@ -282,7 +291,13 @@ bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters ...@@ -282,7 +291,13 @@ bool IsConfigWhitelisted(const SystemInfo &systemInfo, const PlatformParameters
case EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE:
case EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE:
case EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE:
return true;
case EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE:
if (IsARM64())
{
return param.getDeviceType() ==
EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE;
}
return true; return true;
case EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE:
// ES 3.1+ back-end is not supported properly. // ES 3.1+ back-end is not supported properly.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment