angleproject: update to 2.1.r25748.890b5d8f (#24941)

- rebase most patches
- enable d3d11 compositor
- enable swiftshader on mingw64 and ucrt64
This commit is contained in:
Raed Rizqie 2025-07-25 12:18:46 +08:00 committed by GitHub
parent 1400ad5092
commit b1e6a41c9d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 1300 additions and 988 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,28 @@
diff --git a/.gn b/.gn
index dc3df25a1b..7fc44a7337 100644
--- a/.gn
+++ b/.gn
@@ -26,15 +26,6 @@ script_executable = "python3"
# These are the list of GN files that run exec_script. This allowlist exists
# to force additional review for new uses of exec_script, which is strongly
# discouraged except for gypi_to_gn calls.
-exec_script_allowlist = angle_dotfile_settings.exec_script_allowlist +
- build_dotfile_settings.exec_script_allowlist +
- [
- "//build/config/sysroot.gni",
- "//build/config/win/BUILD.gn",
- "//build/config/win/visual_studio_version.gni",
- "//build/gn_helpers.py",
- "//build_overrides/build.gni",
- ]
default_args = {
clang_use_chrome_plugins = false
diff --git a/BUILD.gn b/BUILD.gn diff --git a/BUILD.gn b/BUILD.gn
index 964d511238..1a99c6095d 100644 index 957af7e194..1935b75749 100644
--- a/BUILD.gn --- a/BUILD.gn
+++ b/BUILD.gn +++ b/BUILD.gn
@@ -14,7 +14,10 @@ if (angle_has_build) { @@ -18,7 +18,10 @@ if (angle_has_build) {
import("//build/config/linux/pkg_config.gni") import("//build/config/linux/pkg_config.gni")
import("//build/config/sanitizers/sanitizers.gni") import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
@ -14,51 +34,66 @@ index 964d511238..1a99c6095d 100644
if (is_android) { if (is_android) {
# android/rules.gni can only be imported for Android targets # android/rules.gni can only be imported for Android targets
@@ -91,10 +94,14 @@ if (angle_build_all) { @@ -108,10 +111,11 @@ if (angle_build_all) {
":angle", ":angle",
":angle_shader_translator", ":angle_shader_translator",
":translator_fuzzer", ":translator_fuzzer",
- ":xxhash_fuzzer", - ":xxhash_fuzzer",
"$angle_root/samples:angle_samples", "$angle_root/samples:angle_samples",
- "$angle_root/src/tests:angle_tests", - "$angle_root/src/tests:angle_tests",
+ #"$angle_root/src/tests:angle_tests",
] ]
+ if (use_fuzzing_engine) { + if (use_fuzzing_engine) {
+ deps += [ + deps += [ ":xxhash_fuzzer" ]
+ ":xxhash_fuzzer",
+ ]
+ } + }
if (angle_enable_cl) { if (angle_enable_cl) {
deps += [ "$angle_root/src/libOpenCL:angle_cl" ] deps += [ "$angle_root/src/libOpenCL:angle_cl" ]
} }
@@ -271,7 +278,7 @@ config("constructor_and_destructor_warnings") { @@ -339,7 +343,7 @@ config("extra_warnings") {
config("extra_warnings") {
cflags = []
- is_gcc = !is_clang && !is_win
+ is_gcc = !is_clang && !is_msvs
# Avoid failing builds for warnings enabled by Skia build.
if (defined(is_skia_standalone)) {
@@ -279,7 +286,7 @@ config("extra_warnings") {
} }
# Enable more default warnings on Windows. # Enable more default warnings on Windows.
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags += [ cflags += [
"/we4244", # Conversion: possible loss of data. "/we4244", # Conversion: possible loss of data.
"/we4312", # Conversion: greater size. "/we4312", # Conversion: greater size.
@@ -342,7 +349,7 @@ config("build_id_config") { @@ -381,6 +385,17 @@ config("extra_warnings") {
]
}
+ if (is_mingw && !is_clang) {
+ cflags_cc = [
+ "-Wno-conversion-null",
+ "-Wno-dangling-pointer",
+ "-Wno-deprecated-copy",
+ "-Wno-sign-compare",
+ "-Wno-stringop-truncation",
+ "-Wno-unused-function",
+ ]
+ }
+
if (is_gcc) {
cflags_cc = [ "-Wdeprecated-copy" ]
}
@@ -402,7 +417,7 @@ config("build_id_config") {
ldflags = [ "-Wl,--build-id" ] ldflags = [ "-Wl,--build-id" ]
} }
-_use_copy_compiler_dll = angle_has_build && is_win -_use_copy_compiler_dll = angle_has_build && is_win
+_use_copy_compiler_dll = angle_has_build && is_msvs +_use_copy_compiler_dll = angle_has_build && is_msvc
if (_use_copy_compiler_dll) { if (_use_copy_compiler_dll) {
copy("copy_compiler_dll") { copy("copy_compiler_dll") {
@@ -451,7 +458,7 @@ angle_source_set("xxhash") { @@ -487,7 +502,7 @@ config("angle_common_config") {
if (is_win && !angle_is_winuwp && !build_with_chromium) {
# Needed for futex support
- libs += [ "synchronization.lib" ]
+ libs += [ "synchronization" ]
}
defines = []
@@ -517,7 +532,7 @@ angle_source_set("xxhash") {
} }
} }
@ -67,7 +102,7 @@ index 964d511238..1a99c6095d 100644
fuzzer_test("xxhash_fuzzer") { fuzzer_test("xxhash_fuzzer") {
sources = [ "src/common/third_party/xxhash/xxhash_fuzzer.cpp" ] sources = [ "src/common/third_party/xxhash/xxhash_fuzzer.cpp" ]
deps = [ ":xxhash" ] deps = [ ":xxhash" ]
@@ -616,9 +623,9 @@ angle_static_library("angle_gpu_info_util") { @@ -682,9 +697,9 @@ angle_static_library("angle_gpu_info_util") {
if (is_win) { if (is_win) {
sources += libangle_gpu_info_util_win_sources sources += libangle_gpu_info_util_win_sources
if (!angle_is_winuwp) { if (!angle_is_winuwp) {
@ -79,25 +114,25 @@ index 964d511238..1a99c6095d 100644
} }
if (is_linux || is_chromeos) { if (is_linux || is_chromeos) {
@@ -762,7 +769,7 @@ template("translator_lib") { @@ -827,7 +842,7 @@ angle_static_library("translator") {
":angle_version_info", ":angle_version_info",
] ]
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
# Necessary to suppress some system header xtree warnings in Release. # Necessary to suppress some system header xtree warnings in Release.
# For some reason this warning doesn't get triggered in Chromium # For some reason this warning doesn't get triggered in Chromium
cflags = [ "/wd4718" ] cflags = [ "/wd4718" ]
@@ -949,7 +956,7 @@ config("libANGLE_config") { @@ -986,7 +1001,7 @@ config("libANGLE_config") {
ldflags = [] ldflags = []
defines += [ "LIBANGLE_IMPLEMENTATION" ] defines += [ "LIBANGLE_IMPLEMENTATION" ]
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags += [ "/wd4530" ] # C++ exception handler used, but unwind semantics cflags += [ "/wd4530" ] # C++ exception handler used, but unwind semantics
# are not enabled. # are not enabled.
} }
@@ -1053,8 +1060,8 @@ angle_source_set("libANGLE_no_vulkan") { @@ -1087,8 +1102,8 @@ angle_source_set("libANGLE_no_vulkan") {
if (is_win && !angle_is_winuwp) { if (is_win && !angle_is_winuwp) {
libs += [ libs += [
@ -108,7 +143,7 @@ index 964d511238..1a99c6095d 100644
] ]
} }
@@ -1079,7 +1086,7 @@ angle_source_set("libANGLE_no_vulkan") { @@ -1117,7 +1132,7 @@ angle_source_set("libANGLE_no_vulkan") {
} }
if (angle_enable_d3d11) { if (angle_enable_d3d11) {
@ -117,16 +152,31 @@ index 964d511238..1a99c6095d 100644
} }
if (angle_enable_metal) { if (angle_enable_metal) {
@@ -1469,6 +1476,8 @@ if (angle_enable_gl_desktop_frontend) { @@ -1129,7 +1144,7 @@ angle_source_set("libANGLE_no_vulkan") {
}
# Enable extra Chromium style warnings for libANGLE.
- if (is_clang && angle_has_build && !is_nacl) {
+ if (is_clang && angle_has_build && !is_nacl && !is_mingw) {
suppressed_configs -= [ "//build/config/clang:find_bad_constructs" ]
}
@@ -1467,11 +1482,14 @@ angle_static_library("libGLESv2_thin_static") {
public_configs += [ ":angle_static_config" ]
deps = [ ":includes" ]
+ output_name = "libGLESv2_thin"
public_deps = [ ":libANGLE" ]
}
angle_static_library("libGLESv2_static") { angle_static_library("libGLESv2_static") {
sources = libglesv2_sources sources = libglesv2_sources
+ complete_static_lib = true + complete_static_lib = true
+ output_name = "libGLESv2" + output_name = "libGLESv2"
if (angle_enable_gl_desktop_frontend) { public_deps = [ ":libGLESv2_thin_static" ]
sources += libglesv2_gl_sources }
defines = [ "ANGLE_ENABLE_GL_DESKTOP_FRONTEND" ]
@@ -1614,6 +1623,7 @@ if (angle_enable_vulkan) { @@ -1588,6 +1606,7 @@ if (angle_enable_vulkan) {
} }
libEGL_template("libEGL_static") { libEGL_template("libEGL_static") {
@ -134,24 +184,11 @@ index 964d511238..1a99c6095d 100644
target_type = "angle_static_library" target_type = "angle_static_library"
public_configs = [ ":angle_static_config" ] public_configs = [ ":angle_static_config" ]
deps = [ ":libGLESv2_static" ] deps = [ ":libGLESv2_static" ]
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
index f9d54f2b3..40c1f8e63 100644
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -42,7 +42,7 @@ limit_android_deps = true
# of hardening checks. To ensure performance remains competitive, drop the
# libc++ hardening checks, since ANGLE already makes no security guarantees in
# these situations.
-if (is_win) {
+if (is_msvs) {
# TODO(https://crbug.com/1418717): ANGLE uses Chromium's abseil-cpp directory.
# Since Abseil does not mark symbols as exported, Chromium uses an alternate
# approach to scrape the symbols that need to be exported and generates .def
diff --git a/gni/angle.gni b/gni/angle.gni diff --git a/gni/angle.gni b/gni/angle.gni
index e946c6b6f..8862dc2f7 100644 index bdefa2e04c..2d87b3927b 100644
--- a/gni/angle.gni --- a/gni/angle.gni
+++ b/gni/angle.gni +++ b/gni/angle.gni
@@ -48,7 +48,6 @@ if (angle_has_build) { @@ -53,7 +53,6 @@ if (angle_has_build) {
import("//build/config/ozone.gni") # import the ozone_platform_x11 variable import("//build/config/ozone.gni") # import the ozone_platform_x11 variable
import("//build/config/sanitizers/sanitizers.gni") import("//build/config/sanitizers/sanitizers.gni")
import("//build_overrides/build.gni") import("//build_overrides/build.gni")
@ -159,20 +196,23 @@ index e946c6b6f..8862dc2f7 100644
if (is_android) { if (is_android) {
import("//build/config/android/config.gni") import("//build/config/android/config.gni")
} }
@@ -61,6 +60,12 @@ if (angle_has_build) { @@ -153,7 +152,7 @@ declare_args() {
angle_vulkan_display_mode = "headless" # Windows App SDK is almost UWP but for Win32, so we want all the same things
} angle_is_winuwp = (is_win && target_os == "winuwp") || angle_is_winappsdk
+ if (is_mingw) { - angle_is_msvc = is_win && !is_clang
+ declare_args() { + angle_is_msvc = is_win && !is_clang && !is_mingw
+ use_fuzzing_engine = false
+ } # Default to using "_angle" suffix on Android
+ } if (is_android) {
+ @@ -212,13 +211,13 @@ declare_args() {
declare_args() { # anglebug.com/42266968
angle_use_gbm = ozone_platform_gbm angle_enable_wgpu =
angle_use_x11 = ozone_platform_x11 && !is_ggp && (is_linux || is_chromeos) !is_official_build && !(is_android || is_fuchsia || angle_is_winuwp) &&
@@ -197,7 +202,7 @@ declare_args() { - (!is_win || is_clang) && (!is_linux || angle_use_x11) &&
+ (!is_win || is_clang) && (!is_linux || angle_use_x11) && !is_mingw &&
defined(angle_dawn_dir)
}
declare_args() { declare_args() {
# ASTC emulation is only built on standalone non-android builds # ASTC emulation is only built on standalone non-android builds
@ -181,17 +221,17 @@ index e946c6b6f..8862dc2f7 100644
} }
declare_args() { declare_args() {
@@ -274,7 +279,7 @@ declare_args() { @@ -350,7 +349,7 @@ angle_remove_configs = []
angle_vulkan_validation_layers_dir = if (angle_has_build) {
"$angle_root/third_party/vulkan-deps/vulkan-validation-layers/src" angle_remove_configs += [ "//build/config/compiler:default_include_dirs" ]
- angle_build_vulkan_system_info = angle_has_build && !angle_is_winuwp - if (is_clang && !is_nacl) {
+ angle_build_vulkan_system_info = angle_has_build && angle_enable_vulkan && !angle_is_winuwp + if (is_clang && !is_nacl && !is_mingw) {
angle_remove_configs += [ "//build/config/clang:find_bad_constructs" ]
}
# Enable overlay by default when debug layers are enabled. This is currently only implemented on
# Vulkan.
diff --git a/src/libANGLE/renderer/d3d/BUILD.gn b/src/libANGLE/renderer/d3d/BUILD.gn diff --git a/src/libANGLE/renderer/d3d/BUILD.gn b/src/libANGLE/renderer/d3d/BUILD.gn
index b5cbea8b7..054395801 100644 index 55227c34b3..a1a027773c 100644
--- a/src/libANGLE/renderer/d3d/BUILD.gn --- a/src/libANGLE/renderer/d3d/BUILD.gn
+++ b/src/libANGLE/renderer/d3d/BUILD.gn +++ b/src/libANGLE/renderer/d3d/BUILD.gn
@@ -27,14 +27,16 @@ angle_source_set("angle_d3d_shared") { @@ -27,14 +27,16 @@ angle_source_set("angle_d3d_shared") {
@ -199,7 +239,7 @@ index b5cbea8b7..054395801 100644
config("angle_d3d9_backend_config") { config("angle_d3d9_backend_config") {
defines = [ "ANGLE_ENABLE_D3D9" ] defines = [ "ANGLE_ENABLE_D3D9" ]
- ldflags = [ "/DELAYLOAD:d3d9.dll" ] - ldflags = [ "/DELAYLOAD:d3d9.dll" ]
+ if (is_msvs) { + if (is_msvc) {
+ ldflags = [ "/DELAYLOAD:d3d9.dll" ] + ldflags = [ "/DELAYLOAD:d3d9.dll" ]
+ } + }
} }
@ -224,36 +264,36 @@ index b5cbea8b7..054395801 100644
public_deps = [ ":angle_d3d_shared" ] public_deps = [ ":angle_d3d_shared" ]
public_configs = [ ":angle_d3d11_backend_config" ] public_configs = [ ":angle_d3d11_backend_config" ]
diff --git a/src/tests/BUILD.gn b/src/tests/BUILD.gn diff --git a/src/tests/BUILD.gn b/src/tests/BUILD.gn
index 440d2e0dd..f686474b5 100644 index c0dc92ae34..d10eceb320 100644
--- a/src/tests/BUILD.gn --- a/src/tests/BUILD.gn
+++ b/src/tests/BUILD.gn +++ b/src/tests/BUILD.gn
@@ -3,7 +3,6 @@ @@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/config/chromecast_build.gni")
-import("//testing/test.gni") -import("//testing/test.gni")
import("../../gni/angle.gni") import("../../gni/angle.gni")
import("angle_unittests.gni") import("angle_unittests.gni")
diff --git a/util/BUILD.gn b/util/BUILD.gn diff --git a/util/BUILD.gn b/util/BUILD.gn
index 89bfb5362..9a1fd3a07 100644 index 6cff850678..ff8e74551d 100644
--- a/util/BUILD.gn --- a/util/BUILD.gn
+++ b/util/BUILD.gn +++ b/util/BUILD.gn
@@ -379,7 +379,7 @@ foreach(is_shared_library, @@ -396,7 +396,7 @@ foreach(is_shared_library,
} }
} }
-if (is_win && !angle_is_winuwp) { -if (is_win && !angle_is_winuwp) {
+if (is_msvs && !angle_is_winuwp) { +if (is_msvc && !angle_is_winuwp) {
angle_source_set("angle_stack_walker") { angle_source_set("angle_stack_walker") {
sources = [ sources = [
"windows/third_party/StackWalker/src/StackWalker.cpp", "windows/third_party/StackWalker/src/StackWalker.cpp",
@@ -435,7 +435,7 @@ angle_source_set("angle_test_utils") { @@ -452,7 +452,7 @@ angle_source_set("angle_test_utils") {
sources += [ "windows/test_utils_win.cpp" ] sources += [ "windows/test_utils_win.cpp" ]
if (angle_is_winuwp) { if (angle_is_winuwp) {
sources += [ "windows/test_utils_winuwp.cpp" ] sources += [ "windows/test_utils_winuwp.cpp" ]
- } else { - } else {
+ } else if (is_msvs) { + } else if (is_msvc) {
deps += [ ":angle_stack_walker" ] deps += [ ":angle_stack_walker" ]
sources += [ "windows/win32/test_utils_win32.cpp" ] sources += [ "windows/win32/test_utils_win32.cpp" ]
} }

View File

@ -1,38 +1,5 @@
diff --git a/src/common/mathutil.h b/src/common/mathutil.h
index d142b35de..46b9eac13 100644
--- a/src/common/mathutil.h
+++ b/src/common/mathutil.h
@@ -1032,8 +1032,8 @@ inline uint32_t BitfieldReverse(uint32_t value)
}
// Count the 1 bits.
-#if defined(_MSC_VER) && !defined(__clang__)
-# if defined(_M_IX86) || defined(_M_X64)
+#if defined(ANGLE_PLATFORM_WINDOWS) && !defined(__clang__)
+# if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__x86_64__)
namespace priv
{
// Check POPCNT instruction support and cache the result.
@@ -1076,7 +1076,7 @@ inline int BitCount(uint64_t bits)
{
if (priv::kHasPopcnt)
{
-# if defined(_M_X64)
+# if defined(_M_X64) || defined(__x86_64__)
return static_cast<int>(__popcnt64(bits));
# else // x86
return static_cast<int>(__popcnt(static_cast<uint32_t>(bits >> 32)) +
@@ -1109,7 +1109,7 @@ inline int BitCount(uint64_t bits)
return static_cast<int>(vget_lane_u64(vpaddl_u32(vpaddl_u16(vpaddl_u8(vsum))), 0));
}
# endif // defined(_M_IX86) || defined(_M_X64)
-#endif // defined(_MSC_VER) && !defined(__clang__)
+#endif // defined(ANGLE_PLATFORM_WINDOWS) && !defined(__clang__)
#if defined(ANGLE_PLATFORM_POSIX) || defined(__clang__)
inline int BitCount(uint32_t bits)
diff --git a/src/common/serializer/JsonSerializer.cpp b/src/common/serializer/JsonSerializer.cpp diff --git a/src/common/serializer/JsonSerializer.cpp b/src/common/serializer/JsonSerializer.cpp
index 0028331d9..e675c406b 100644 index 0028331d9b..e675c406b8 100644
--- a/src/common/serializer/JsonSerializer.cpp --- a/src/common/serializer/JsonSerializer.cpp
+++ b/src/common/serializer/JsonSerializer.cpp +++ b/src/common/serializer/JsonSerializer.cpp
@@ -173,7 +173,7 @@ void JsonSerializer::addValue(const std::string &name, rapidjson::Value &&value) @@ -173,7 +173,7 @@ void JsonSerializer::addValue(const std::string &name, rapidjson::Value &&value)
@ -44,24 +11,69 @@ index 0028331d9..e675c406b 100644
mDoc.AddMember(nameValue, std::move(value), mAllocator); mDoc.AddMember(nameValue, std::move(value), mAllocator);
} }
} }
diff --git a/src/compiler/translator/Compiler.cpp b/src/compiler/translator/Compiler.cpp diff --git a/src/libANGLE/renderer/gl/renderergl_utils.cpp b/src/libANGLE/renderer/gl/renderergl_utils.cpp
index 485b4bd38..cbe275733 100644 index c62bb468dd..1fb6e91716 100644
--- a/src/compiler/translator/Compiler.cpp --- a/src/libANGLE/renderer/gl/renderergl_utils.cpp
+++ b/src/compiler/translator/Compiler.cpp +++ b/src/libANGLE/renderer/gl/renderergl_utils.cpp
@@ -1213,7 +1213,7 @@ bool TCompiler::checkAndSimplifyAST(TIntermBlock *root, @@ -2288,9 +2288,9 @@ void InitializeFeatures(const FunctionsGL *functions, angle::FeaturesGL *feature
// Mesa always exposes ASTC extension but only Intel Gen9, Gen11, and Gen12 have hardware
// support for it. Newer Intel GPUs (Gen12.5+) do not support ASTC.
ANGLE_FEATURE_CONDITION(features, allowAstcFormats,
- !isMesa || isIntel && (Is9thGenIntel(device) || IsGeminiLake(device) ||
+ !isMesa || (isIntel && (Is9thGenIntel(device) || IsGeminiLake(device) ||
IsCoffeeLake(device) || Is11thGenIntel(device) ||
- Is12thGenIntel(device)));
+ Is12thGenIntel(device))));
bool TCompiler::resizeClipAndCullDistanceBuiltins(TIntermBlock *root) // Ported from gpu_driver_bug_list.json (#183)
{ ANGLE_FEATURE_CONDITION(features, emulateAbsIntFunction, IsApple() && isIntel);
- auto resizeVariable = [=](const ImmutableString &name, uint32_t size, uint32_t maxSize) { diff --git a/src/libANGLE/renderer/vulkan/CommandQueue.h b/src/libANGLE/renderer/vulkan/CommandQueue.h
+ auto resizeVariable = [=, this](const ImmutableString &name, uint32_t size, uint32_t maxSize) { index bd2bb019a8..6f46f8c9da 100644
// Skip if the variable is not used or implicitly has the maximum size --- a/src/libANGLE/renderer/vulkan/CommandQueue.h
if (size == 0 || size == maxSize) +++ b/src/libANGLE/renderer/vulkan/CommandQueue.h
return true; @@ -591,8 +591,8 @@ class [[nodiscard]] ScopedPrimaryCommandBuffer final
DeviceScoped<PrimaryCommandBuffer> unlockAndRelease()
{
- ASSERT(mCommandBuffer.get().valid() && mPoolLock.owns_lock() ||
- !mCommandBuffer.get().valid() && mPoolLock.mutex() == nullptr);
+ ASSERT((mCommandBuffer.get().valid() && mPoolLock.owns_lock()) ||
+ (!mCommandBuffer.get().valid() && mPoolLock.mutex() == nullptr));
mPoolLock = {};
return std::move(mCommandBuffer);
}
diff --git a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
index 124155117c..ee33f139cf 100644
--- a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
@@ -2037,11 +2037,6 @@ angle::Result ProgramExecutableVk::updateTexturesDescriptorSet(
if (newSharedCacheKey)
{
ASSERT(newSharedCacheKey->valid());
- ANGLE_TRY(UpdateFullTexturesDescriptorSet(
- context, mVariableInfoMap, mTextureWriteDescriptorDescs, updateBuilder,
- *mExecutable, textures, samplers,
- mDescriptorSets[DescriptorSetIndex::Texture]->getDescriptorSet()));
-
const gl::ActiveTextureMask &activeTextureMask = mExecutable->getActiveSamplersMask();
for (size_t textureUnit : activeTextureMask)
{
@@ -2056,10 +2051,6 @@ angle::Result ProgramExecutableVk::updateTexturesDescriptorSet(
context, *mDescriptorSetLayouts[DescriptorSetIndex::Texture],
&mDescriptorSets[DescriptorSetIndex::Texture]));
ASSERT(mDescriptorSets[DescriptorSetIndex::Texture]);
-
- ANGLE_TRY(UpdateFullTexturesDescriptorSet(
- context, mVariableInfoMap, mTextureWriteDescriptorDescs, updateBuilder, *mExecutable,
- textures, samplers, mDescriptorSets[DescriptorSetIndex::Texture]->getDescriptorSet()));
}
mValidDescriptorSetIndices.set(DescriptorSetIndex::Texture);
diff --git a/util/capture/frame_capture_test_utils.cpp b/util/capture/frame_capture_test_utils.cpp diff --git a/util/capture/frame_capture_test_utils.cpp b/util/capture/frame_capture_test_utils.cpp
index 427844c5d..8c549d1b3 100644 index 13dc463dc6..9941adb4c4 100644
--- a/util/capture/frame_capture_test_utils.cpp --- a/util/capture/frame_capture_test_utils.cpp
+++ b/util/capture/frame_capture_test_utils.cpp +++ b/util/capture/frame_capture_test_utils.cpp
@@ -84,7 +84,7 @@ bool LoadTraceInfoFromJSON(const std::string &traceName, @@ -170,7 +170,7 @@ bool LoadTraceInfoFromJSON(const std::string &traceName,
return false; return false;
} }
@ -69,4 +81,4 @@ index 427844c5d..8c549d1b3 100644
+ const rapidjson::Document::Object &meta = doc["TraceMetadata"].GetObject(); + const rapidjson::Document::Object &meta = doc["TraceMetadata"].GetObject();
strncpy(traceInfoOut->name, traceName.c_str(), kTraceInfoMaxNameLen); strncpy(traceInfoOut->name, traceName.c_str(), kTraceInfoMaxNameLen);
traceInfoOut->contextClientMajorVersion = meta["ContextClientMajorVersion"].GetInt(); traceInfoOut->frameEnd = meta["FrameEnd"].GetInt();

View File

@ -1,5 +1,18 @@
diff --git a/BUILD.gn b/BUILD.gn
index b405f5122..4c9ad3d45 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -34,7 +34,7 @@ config("swiftshader_config") {
defines += [ "_ENABLE_EXTENDED_ALIGNED_STORAGE" ]
# Diable some MSVC warnings.
- if (!is_clang) {
+ if (!is_clang && !is_mingw) {
cflags += [
"/wd4065", # switch statement contains 'default' but no 'case' labels
"/wd4309", # Truncation of constant value. See PixelRoutine.cpp casts
diff --git a/src/Reactor/BUILD.gn b/src/Reactor/BUILD.gn diff --git a/src/Reactor/BUILD.gn b/src/Reactor/BUILD.gn
index 67dfeb0ec..5df50ba8a 100644 index 67dfeb0ec..379bb6468 100644
--- a/src/Reactor/BUILD.gn --- a/src/Reactor/BUILD.gn
+++ b/src/Reactor/BUILD.gn +++ b/src/Reactor/BUILD.gn
@@ -16,7 +16,7 @@ import("reactor.gni") @@ -16,7 +16,7 @@ import("reactor.gni")
@ -7,19 +20,29 @@ index 67dfeb0ec..5df50ba8a 100644
config("swiftshader_llvm_reactor_private_config") { config("swiftshader_llvm_reactor_private_config") {
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags = [ cflags = [
"/wd4141", # 'inline' used more than once. (LLVM 7.0) "/wd4141", # 'inline' used more than once. (LLVM 7.0)
"/wd4146", # unary minus operator applied to unsigned type. (LLVM 7.0) "/wd4146", # unary minus operator applied to unsigned type. (LLVM 7.0)
@@ -104,12 +104,19 @@ if (supports_subzero) { @@ -25,6 +25,8 @@ config("swiftshader_llvm_reactor_private_config") {
"/wd4245", # conversion from int to unsigned int (llvm)
"/wd4624", # destructor was implicitly defined as deleted (LLVM 7.0)
]
+ } else if (is_mingw) {
+ cflags = [ "-Wno-missing-template-keyword" ]
} else {
cflags = [ "-Wno-unused-local-typedef" ]
}
@@ -104,12 +106,20 @@ if (supports_subzero) {
} else if (is_mac) { } else if (is_mac) {
include_dirs += [ "../../third_party/llvm-subzero/build/MacOS/include/" ] include_dirs += [ "../../third_party/llvm-subzero/build/MacOS/include/" ]
} }
+ +
+ if (is_clang) { + if (is_mingw) {
+ defines += [ + defines += [
+ "__STDC_CONSTANT_MACROS", + "__STDC_CONSTANT_MACROS",
+ "__STDC_LIMIT_MACROS" + "__STDC_FORMAT_MACROS",
+ "__STDC_LIMIT_MACROS",
+ ] + ]
+ } + }
} }
@ -28,21 +51,21 @@ index 67dfeb0ec..5df50ba8a 100644
cflags = [] cflags = []
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags += [ cflags += [
"/wd4005", "/wd4005",
"/wd4018", "/wd4018",
@@ -155,7 +162,7 @@ if (supports_subzero) { @@ -155,7 +165,7 @@ if (supports_subzero) {
config("swiftshader_reactor_with_subzero_private_config") { config("swiftshader_reactor_with_subzero_private_config") {
cflags = [] cflags = []
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags += [ cflags += [
"/wd4141", "/wd4141",
"/wd4146", "/wd4146",
diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp
index 0a4e9d2ce..0d282b0d3 100644 index c0c6b1d6e..c33dd10c5 100644
--- a/src/Reactor/SubzeroReactor.cpp --- a/src/Reactor/SubzeroReactor.cpp
+++ b/src/Reactor/SubzeroReactor.cpp +++ b/src/Reactor/SubzeroReactor.cpp
@@ -286,7 +286,7 @@ private: @@ -286,7 +286,7 @@ private:
@ -55,12 +78,21 @@ index 0a4e9d2ce..0d282b0d3 100644
# else # else
__asm volatile("cpuid" __asm volatile("cpuid"
diff --git a/src/Vulkan/BUILD.gn b/src/Vulkan/BUILD.gn diff --git a/src/Vulkan/BUILD.gn b/src/Vulkan/BUILD.gn
index 5556abdf0..4bc957ba8 100644 index 852068cad..c70307160 100644
--- a/src/Vulkan/BUILD.gn --- a/src/Vulkan/BUILD.gn
+++ b/src/Vulkan/BUILD.gn +++ b/src/Vulkan/BUILD.gn
@@ -183,8 +183,10 @@ swiftshader_shared_library("swiftshader_libvulkan") { @@ -50,7 +50,7 @@ config("swiftshader_libvulkan_private_config") {
"vk_swiftshader.def", defines = [ "VK_EXPORT=" ]
] }
- if (is_clang) {
+ if (is_clang || is_mingw) {
cflags = [
"-Wno-unused-private-field",
"-Wno-switch",
@@ -172,8 +172,10 @@ swiftshader_source_set("_swiftshader_libvulkan") {
if (is_win) {
libs += [ libs += [
- "gdi32.lib", - "gdi32.lib",
- "user32.lib", - "user32.lib",
@ -71,17 +103,51 @@ index 5556abdf0..4bc957ba8 100644
] ]
} }
@@ -237,7 +239,7 @@ action("icd_file") { @@ -200,7 +202,7 @@ swiftshader_source_set("_swiftshader_libvulkan") {
swiftshader_shared_library("swiftshader_libvulkan") {
# TODO(capn): Use the same ICD name on both Windows and non-Windows.
- if (is_win) {
+ if (is_msvc) {
output_name = "vk_swiftshader"
} else {
output_name = "libvk_swiftshader"
@@ -242,8 +244,10 @@ action("icd_file") {
output_icd_file = "${root_out_dir}/${swiftshader_icd_file_name}"
input_file = swiftshader_icd_file_name input_file = swiftshader_icd_file_name
if (is_win) { - if (is_win) {
- library_path = ".\\vk_swiftshader.dll" + if (is_msvc) {
library_path = ".\\vk_swiftshader.dll"
+ } else if (is_mingw) {
+ library_path = "./libvk_swiftshader.dll" + library_path = "./libvk_swiftshader.dll"
} else if (is_mac) { } else if (is_mac) {
library_path = "./libvk_swiftshader.dylib" library_path = "./libvk_swiftshader.dylib"
} else if (is_fuchsia) { } else if (is_fuchsia) {
diff --git a/third_party/SPIRV-Tools/BUILD.gn b/third_party/SPIRV-Tools/BUILD.gn
index 4848fddd0..7da529600 100644
--- a/third_party/SPIRV-Tools/BUILD.gn
+++ b/third_party/SPIRV-Tools/BUILD.gn
@@ -374,7 +374,7 @@ config("spvtools_internal_config") {
"-Wno-unreachable-code-break",
"-Wno-unreachable-code-return",
]
- } else if (!is_win) {
+ } else if (!is_msvc) {
# Work around a false-positive on a Skia GCC 10 builder.
cflags += [ "-Wno-format-truncation" ]
} else {
@@ -382,7 +382,7 @@ config("spvtools_internal_config") {
cflags += [ "/Zc:__cplusplus" ]
}
- if (!is_win) {
+ if (!is_msvc) {
cflags += [ "-std=c++17" ]
} else {
cflags += [ "/std:c++17" ]
diff --git a/third_party/llvm-10.0/BUILD.gn b/third_party/llvm-10.0/BUILD.gn diff --git a/third_party/llvm-10.0/BUILD.gn b/third_party/llvm-10.0/BUILD.gn
index 59e52303c..09ca85108 100644 index f99abba37..46754bbc0 100644
--- a/third_party/llvm-10.0/BUILD.gn --- a/third_party/llvm-10.0/BUILD.gn
+++ b/third_party/llvm-10.0/BUILD.gn +++ b/third_party/llvm-10.0/BUILD.gn
@@ -18,7 +18,7 @@ import("../../src/swiftshader.gni") @@ -18,7 +18,7 @@ import("../../src/swiftshader.gni")
@ -89,10 +155,50 @@ index 59e52303c..09ca85108 100644
cflags = [] cflags = []
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags += [ cflags += [
"/wd4005", "/wd4005",
"/wd4018", "/wd4018",
@@ -53,6 +53,18 @@ config("swiftshader_llvm_private_config") {
"-Wno-macro-redefined",
]
}
+ } else if (is_mingw) {
+ cflags += [
+ "-Wno-format",
+ "-Wno-sign-compare",
+ ]
+ if (!is_clang) {
+ cflags_cc = [
+ "-Wno-cast-user-defined",
+ "-Wno-init-list-lifetime",
+ "-Wno-missing-template-keyword",
+ ]
+ }
}
if (is_fuchsia) {
@@ -80,6 +92,7 @@ config("swiftshader_llvm_private_config") {
defines = [
"__STDC_CONSTANT_MACROS",
+ "__STDC_FORMAT_MACROS",
"__STDC_LIMIT_MACROS",
]
}
diff --git a/third_party/llvm-10.0/llvm/include/llvm/Support/Threading.h b/third_party/llvm-10.0/llvm/include/llvm/Support/Threading.h
index bacab8fa2..16ddf6d20 100644
--- a/third_party/llvm-10.0/llvm/include/llvm/Support/Threading.h
+++ b/third_party/llvm-10.0/llvm/include/llvm/Support/Threading.h
@@ -18,7 +18,7 @@
#include "llvm/ADT/SmallVector.h"
#include "llvm/Config/llvm-config.h" // for LLVM_ON_UNIX
#include "llvm/Support/Compiler.h"
-#include <ciso646> // So we can check the C++ standard lib macros.
+#include <version> // So we can check the C++ standard lib macros.
#include <functional>
#if defined(_MSC_VER)
diff --git a/third_party/llvm-10.0/llvm/include/llvm/Support/Windows/WindowsSupport.h b/third_party/llvm-10.0/llvm/include/llvm/Support/Windows/WindowsSupport.h diff --git a/third_party/llvm-10.0/llvm/include/llvm/Support/Windows/WindowsSupport.h b/third_party/llvm-10.0/llvm/include/llvm/Support/Windows/WindowsSupport.h
index bb7e79b86..640c00eed 100644 index bb7e79b86..640c00eed 100644
--- a/third_party/llvm-10.0/llvm/include/llvm/Support/Windows/WindowsSupport.h --- a/third_party/llvm-10.0/llvm/include/llvm/Support/Windows/WindowsSupport.h
@ -120,6 +226,35 @@ index a9463024c..2df917cc7 100644
# include <io.h> # include <io.h>
# include <fcntl.h> # include <fcntl.h>
#endif #endif
diff --git a/third_party/llvm-subzero/include/llvm/Support/Atomic.h b/third_party/llvm-subzero/include/llvm/Support/Atomic.h
index d03714b00..552313f0c 100644
--- a/third_party/llvm-subzero/include/llvm/Support/Atomic.h
+++ b/third_party/llvm-subzero/include/llvm/Support/Atomic.h
@@ -20,6 +20,11 @@
#include "llvm/Support/DataTypes.h"
+// Windows will at times define MemoryFence.
+#ifdef MemoryFence
+#undef MemoryFence
+#endif
+
namespace llvm {
namespace sys {
void MemoryFence();
diff --git a/third_party/llvm-subzero/include/llvm/Support/Threading.h b/third_party/llvm-subzero/include/llvm/Support/Threading.h
index 4bef7ec8d..be8da3621 100644
--- a/third_party/llvm-subzero/include/llvm/Support/Threading.h
+++ b/third_party/llvm-subzero/include/llvm/Support/Threading.h
@@ -17,7 +17,7 @@
#include "llvm/Config/llvm-config.h" // for LLVM_ON_UNIX
#include "llvm/Support/Compiler.h"
-#include <ciso646> // So we can check the C++ standard lib macros.
+#include <version> // So we can check the C++ standard lib macros.
#include <functional>
// std::call_once from libc++ is used on all Unix platforms. Other
diff --git a/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp b/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp diff --git a/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp b/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp
index a7d3a1800..191264b4b 100644 index a7d3a1800..191264b4b 100644
--- a/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp --- a/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp
@ -134,17 +269,16 @@ index a7d3a1800..191264b4b 100644
# include <fcntl.h> # include <fcntl.h>
#endif #endif
diff --git a/third_party/llvm-subzero/lib/Support/Timer.cpp b/third_party/llvm-subzero/lib/Support/Timer.cpp diff --git a/third_party/llvm-subzero/lib/Support/Timer.cpp b/third_party/llvm-subzero/lib/Support/Timer.cpp
index fbd73d0b6..c9d17a53b 100644 index 7e95b4514..420b6d1ac 100644
--- a/third_party/llvm-subzero/lib/Support/Timer.cpp --- a/third_party/llvm-subzero/lib/Support/Timer.cpp
+++ b/third_party/llvm-subzero/lib/Support/Timer.cpp +++ b/third_party/llvm-subzero/lib/Support/Timer.cpp
@@ -174,7 +174,7 @@ void TimeRecord::print(const TimeRecord &Total, raw_ostream &OS) const { @@ -22,6 +22,7 @@
OS << " "; #include "llvm/Support/Process.h"
#include "llvm/Support/YAMLTraits.h"
if (Total.getMemUsed()) #include "llvm/Support/raw_ostream.h"
- OS << format("%9" PRId64 " ", (int64_t)getMemUsed()); +#include <cinttypes>
+ OS << format("%9lld ", (int64_t)getMemUsed()); #include <ratio>
} using namespace llvm;
diff --git a/third_party/llvm-subzero/lib/Support/Windows/Process.inc b/third_party/llvm-subzero/lib/Support/Windows/Process.inc diff --git a/third_party/llvm-subzero/lib/Support/Windows/Process.inc b/third_party/llvm-subzero/lib/Support/Windows/Process.inc
index 8d646b321..2d56e4c0d 100644 index 8d646b321..2d56e4c0d 100644
@ -195,22 +329,19 @@ index c358b99ab..d67b21ec8 100644
#define NOMINMAX #define NOMINMAX
#endif #endif
diff --git a/third_party/marl/BUILD.gn b/third_party/marl/BUILD.gn diff --git a/third_party/marl/BUILD.gn b/third_party/marl/BUILD.gn
index 4c0264892..ccd1c482a 100644 index 4c0264892..ad8ee6239 100644
--- a/third_party/marl/BUILD.gn --- a/third_party/marl/BUILD.gn
+++ b/third_party/marl/BUILD.gn +++ b/third_party/marl/BUILD.gn
@@ -14,7 +14,9 @@ @@ -14,7 +14,6 @@
import("../../src/swiftshader.gni") import("../../src/swiftshader.gni")
-import("//testing/test.gni") -import("//testing/test.gni")
+if (build_with_chromium) {
+ import("//testing/test.gni")
+}
config("marl_config") { config("marl_config") {
include_dirs = [ "include" ] include_dirs = [ "include" ]
diff --git a/third_party/marl/src/scheduler.cpp b/third_party/marl/src/scheduler.cpp diff --git a/third_party/marl/src/scheduler.cpp b/third_party/marl/src/scheduler.cpp
index f5e9df0ec..c762e5dde 100644 index 51bb27b44..fd2cf6c0c 100644
--- a/third_party/marl/src/scheduler.cpp --- a/third_party/marl/src/scheduler.cpp
+++ b/third_party/marl/src/scheduler.cpp +++ b/third_party/marl/src/scheduler.cpp
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
@ -231,19 +362,6 @@ index f5e9df0ec..c762e5dde 100644
__nop(); __nop();
#else #else
__asm__ __volatile__("nop"); __asm__ __volatile__("nop");
diff --git a/third_party/subzero/CMakeLists.txt b/third_party/subzero/CMakeLists.txt
index aec878b79..7c9fc9f2e 100644
--- a/third_party/subzero/CMakeLists.txt
+++ b/third_party/subzero/CMakeLists.txt
@@ -78,7 +78,7 @@ else()
message(WARNING "Architecture '${ARCH}' not supported by Subzero")
endif()
-if(WIN32)
+if(MSVC)
list(APPEND SUBZERO_COMPILE_OPTIONS
"/wd4146" # unary minus operator applied to unsigned type, result still unsigned
"/wd4334" # ''operator' : result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
diff --git a/third_party/subzero/src/IceTargetLowering.cpp b/third_party/subzero/src/IceTargetLowering.cpp diff --git a/third_party/subzero/src/IceTargetLowering.cpp b/third_party/subzero/src/IceTargetLowering.cpp
index ab09b48cb..64cca4cda 100644 index ab09b48cb..64cca4cda 100644
--- a/third_party/subzero/src/IceTargetLowering.cpp --- a/third_party/subzero/src/IceTargetLowering.cpp

View File

@ -1,38 +1,48 @@
diff --git a/BUILD.gn b/BUILD.gn diff --git a/BUILD.gn b/BUILD.gn
index 97aab3a..4b1ddd6 100644 index 97aab3a..036c36a 100644
--- a/BUILD.gn --- a/BUILD.gn
+++ b/BUILD.gn +++ b/BUILD.gn
@@ -22,7 +22,7 @@ config("vulkan_memory_allocator_config") { @@ -22,10 +22,12 @@ config("vulkan_memory_allocator_config") {
"-Wno-unused-variable", "-Wno-unused-variable",
] ]
} }
- if (is_win && !is_clang) { - if (is_win && !is_clang) {
+ if (is_msvs && !is_clang) { + if (is_msvc && !is_clang) {
cflags_cc = [ cflags_cc = [
"/wd4189", # local variable is initialized but not referenced "/wd4189", # local variable is initialized but not referenced
] ]
+ } else if (is_mingw && !is_clang) {
+ cflags_cc = [ "-Wno-unused-variable" ]
}
defines = [
"VMA_DYNAMIC_VULKAN_FUNCTIONS=0",
diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h
index 8091bae..cb49117 100644 index 0bbfeed..7871149 100644
--- a/include/vk_mem_alloc.h --- a/include/vk_mem_alloc.h
+++ b/include/vk_mem_alloc.h +++ b/include/vk_mem_alloc.h
@@ -2485,6 +2485,7 @@ remove them if not needed. @@ -2704,6 +2704,7 @@ remove them if not needed.
#include <cassert> // for assert #include <cassert> // for assert
#include <algorithm> // for min, max #include <algorithm> // for min, max
#include <mutex> #include <mutex>
+#include <cstdio> // for snprintf + #include <cstdio> // for snprintf
#else
#ifndef VMA_NULL #include VMA_CONFIGURATION_USER_INCLUDES_H
// Value used as null pointer. Define it to e.g.: nullptr, NULL, 0, (void*)0. #endif
diff --git a/vulkan_memory_allocator.gni b/vulkan_memory_allocator.gni diff --git a/vulkan_memory_allocator.gni b/vulkan_memory_allocator.gni
index 4aa2d79..0cf24b2 100644 index 4aa2d79..368b847 100644
--- a/vulkan_memory_allocator.gni --- a/vulkan_memory_allocator.gni
+++ b/vulkan_memory_allocator.gni +++ b/vulkan_memory_allocator.gni
@@ -26,7 +26,7 @@ template("vulkan_memory_allocator") { @@ -26,10 +26,12 @@ template("vulkan_memory_allocator") {
"-Wno-unused-variable", "-Wno-unused-variable",
] ]
} }
- if (is_win && !is_clang) { - if (is_win && !is_clang) {
+ if (is_msvs && !is_clang) { + if (is_msvc && !is_clang) {
cflags_cc = [ cflags_cc = [
"/wd4189", # local variable is initialized but not referenced "/wd4189", # local variable is initialized but not referenced
] ]
+ } else if (is_mingw && !is_clang) {
+ cflags_cc = [ "-Wno-unused-variable" ]
}
}

View File

@ -1,22 +1,22 @@
diff --git a/BUILD.gn b/BUILD.gn diff --git a/BUILD.gn b/BUILD.gn
index 44954b2d..0e62c356 100644 index 7cf33942..e12f62e1 100644
--- a/BUILD.gn --- a/BUILD.gn
+++ b/BUILD.gn +++ b/BUILD.gn
@@ -367,7 +367,7 @@ config("spvtools_internal_config") { @@ -188,7 +188,7 @@ config("spvtools_internal_config") {
"-Wno-unreachable-code-break", "-Wno-unreachable-code-break",
"-Wno-unreachable-code-return", "-Wno-unreachable-code-return",
] ]
- } else if (!is_win) { - } else if (!is_win) {
+ } else if (!is_msvs) { + } else if (!is_msvc) {
# Work around a false-positive on a Skia GCC 10 builder. # Work around a false-positive on a Skia GCC 10 builder.
cflags += [ "-Wno-format-truncation" ] cflags += [ "-Wno-format-truncation" ]
} else { } else {
@@ -375,7 +375,7 @@ config("spvtools_internal_config") { @@ -196,7 +196,7 @@ config("spvtools_internal_config") {
cflags += [ "/Zc:__cplusplus" ] cflags += [ "/Zc:__cplusplus" ]
} }
- if (!is_win) { - if (!is_win) {
+ if (!is_msvs) { + if (!is_msvc) {
cflags += [ "-std=c++17" ] cflags += [ "-std=c++17" ]
} else { } else {
cflags += [ "/std:c++17" ] cflags += [ "/std:c++17" ]

View File

@ -1,54 +1,63 @@
diff --git a/BUILD.gn b/BUILD.gn diff --git a/BUILD.gn b/BUILD.gn
index 7bbd39316..45f0d588c 100644 index 5a73707d4..847d5710b 100644
--- a/BUILD.gn --- a/BUILD.gn
+++ b/BUILD.gn +++ b/BUILD.gn
@@ -80,7 +80,7 @@ config("vulkan_loader_config") { @@ -37,8 +37,8 @@ if (is_win) {
"LOADER_USE_UNSAFE_FILE_SEARCH=1",
config("vulkan_internal_config") {
defines = [ "VK_ENABLE_BETA_EXTENSIONS" ]
- if (is_clang || !is_win) {
- cflags = [
+ if (is_clang || !is_msvc) {
+ cflags_cc = [
"-Wno-conversion",
"-Wno-extra-semi",
"-Wno-sign-compare",
@@ -78,7 +78,7 @@ config("vulkan_loader_config") {
] ]
cflags = []
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
cflags = [ "/wd4201" ] cflags += [ "/wd4201" ]
} }
if (is_linux || is_chromeos) { if (is_linux || is_chromeos) {
@@ -146,7 +146,7 @@ if (!is_android) { @@ -222,7 +222,7 @@ if (!is_android) {
if (custom_vulkan_loader_library_name != "") { if (custom_vulkan_loader_library_name != "") {
output_name = custom_vulkan_loader_library_name output_name = custom_vulkan_loader_library_name
} else { } else {
- if (is_win) { - if (is_win) {
+ if (is_msvs) { + if (is_msvc) {
output_name = "vulkan-1" output_name = "vulkan-1"
} else { } else {
output_name = "vulkan" output_name = "vulkan"
@@ -164,10 +164,14 @@ if (!is_android) { @@ -244,7 +244,14 @@ if (!is_android) {
"loader/dirent_on_windows.h", "$target_gen_dir/loader.rc",
"loader/loader_windows.c", "loader/vulkan-1.def",
"loader/loader_windows.h",
- "loader/loader.rc",
- "loader/vulkan-1.def",
] ]
- if (!is_clang) { - if (!is_clang) {
+ if (vulkan_loader_shared) { + if (is_mingw) {
+ sources += [ + sources -= [
+ "loader/loader.rc", + "$target_gen_dir/loader.rc",
+ "loader/vulkan-1.def", + "loader/vulkan-1.def",
+ ] + ]
+ defines = [ "BUILD_STATIC_LOADER" ]
+ } + }
+ if (is_msvs && !is_clang) { + if (is_msvc && !is_clang) {
cflags = [ cflags = [
"/wd4054", # Type cast from function pointer "/wd4054", # Type cast from function pointer
"/wd4055", # Type cast from data pointer "/wd4055", # Type cast from data pointer
@@ -186,7 +190,7 @@ if (!is_android) { @@ -263,7 +270,7 @@ if (!is_android) {
if (is_clang) { if (is_clang) {
cflags = [ "-Wno-incompatible-pointer-types" ] cflags = [ "-Wno-incompatible-pointer-types" ]
} }
- libs = [ "Cfgmgr32.lib" ] - libs = [ "Cfgmgr32.lib" ]
+ libs = [ "cfgmgr32" ] + libs = [ "cfgmgr32" ]
deps += [ ":gen_loader_rc" ]
} }
if (is_linux || is_chromeos) { if (is_linux || is_chromeos) {
sources += [
diff --git a/loader/loader_windows.c b/loader/loader_windows.c diff --git a/loader/loader_windows.c b/loader/loader_windows.c
index f9f2ddae8..1a0d999d7 100644 index f73659c09..b8f701f15 100644
--- a/loader/loader_windows.c --- a/loader/loader_windows.c
+++ b/loader/loader_windows.c +++ b/loader/loader_windows.c
@@ -95,6 +95,7 @@ void windows_initialization(void) { @@ -95,6 +95,7 @@ void windows_initialization(void) {
@ -59,7 +68,7 @@ index f9f2ddae8..1a0d999d7 100644
BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) { BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) {
(void)hinst; (void)hinst;
switch (reason) { switch (reason) {
@@ -112,6 +113,7 @@ BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) { @@ -116,6 +117,7 @@ BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved) {
} }
return TRUE; return TRUE;
} }

View File

@ -5,12 +5,14 @@
_realname=angleproject _realname=angleproject
pkgbase=mingw-w64-${_realname} pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.1.r21358.2e285bb5 pkgver=2.1.r25748.890b5d8f
pkgrel=9 pkgrel=1
pkgdesc='A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android (mingw-w64)' pkgdesc='A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android (mingw-w64)'
arch=('any') arch=('any')
mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64')
url='https://chromium.googlesource.com/angle/angle' url='http://angleproject.org/'
msys2_repository_url='https://chromium.googlesource.com/angle/angle'
msys2_documentation_url='https://chromium.googlesource.com/angle/angle/+/main/README.md'
license=('spdx:BSD-3-Clause') license=('spdx:BSD-3-Clause')
depends=("${MINGW_PACKAGE_PREFIX}-egl-headers" depends=("${MINGW_PACKAGE_PREFIX}-egl-headers"
"${MINGW_PACKAGE_PREFIX}-gles-headers" "${MINGW_PACKAGE_PREFIX}-gles-headers"
@ -26,20 +28,19 @@ makedepends=("${MINGW_PACKAGE_PREFIX}-cc"
"${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-python"
"git" "git"
"unzip") "unzip")
_commit=("2e285bb591f78af3b5b1f83617e06f9ef9067924") _commit=("890b5d8fa2988e3719e0d80421bf3e927db9cd5c")
source=("${_realname}::git+https://chromium.googlesource.com/angle/angle.git#commit=${_commit}" source=("${_realname}::git+https://chromium.googlesource.com/angle/angle.git#commit=${_commit}"
"bare-clones/build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=ccb49e801879c107ed6e96a84eb227f65ce4823b" "swiftshader.zip::https://github.com/google/swiftshader/archive/c1f7fbbec4e17769c0182daae185466cb806d0d5.zip"
"bare-clones/zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib.git#commit=90e67ba3f8998a3532fc8e3db9539aada8060d43" "bare-clones/build::git+https://chromium.googlesource.com/chromium/src/build.git#commit=70c150bc0ae989d00c15ab1ed67464198e4890d0"
"bare-clones/clang::git+https://chromium.googlesource.com/chromium/src/tools/clang.git#commit=64e9f9321c450d938fec79ef8e4431fd1a08f5ce" "bare-clones/zlib::git+https://chromium.googlesource.com/chromium/src/third_party/zlib.git#commit=bf1e8de6cc305fdab82db1b65bed76b70bd96c8b"
"swiftshader.zip::https://github.com/google/swiftshader/archive/0ba0b45490cd209448c5f976f41b34a746c9de5d.zip" "bare-clones/clang::git+https://chromium.googlesource.com/chromium/src/tools/clang.git#commit=d6072980974f9a4922d2eb27e4fd244ca3017031"
"bare-clones/vulkan_memory_allocator::git+https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git#commit=ebe84bec02c041d28f902da0214bf442743fc907" "bare-clones/spirv-headers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git#commit=c8ad050fcb29e42a2f57d9f59e97488f465c436d"
"bare-clones/vulkan-deps::git+https://chromium.googlesource.com/vulkan-deps.git#commit=23a32754e71562453af68898e6918e06172d4c46" "bare-clones/spirv-tools::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git#commit=257a227fbadf8176ea386c7d8fb9b889cbf08640"
"bare-clones/spirv-headers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git#commit=3469b164e25cee24435029a569933cb42578db5d" "bare-clones/vulkan-headers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git#commit=7cff847503174e2049b08253ee5f30428866fea3"
"bare-clones/spirv-tools::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git#commit=310a67020a7d67be4fdf1b4bfa9bb85f985c6fd7" "bare-clones/vulkan-loader::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git#commit=235d1d2cf617af03a2ecbf6e951287595138feda"
"bare-clones/vulkan-headers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git#commit=b6a29e5ca865f48368f6b2f170adb89975bb0be1" "bare-clones/vulkan_memory_allocator::git+https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git#commit=56300b29fbfcc693ee6609ddad3fdd5b7a449a21"
"bare-clones/vulkan-loader::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git#commit=a1d9d485ce1a66adc9a584ea79bc3829203863b6" "bare-clones/vulkan-tools::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git#commit=5968d14a1ef8a7eeacf342e1542099e1aff20f70"
"bare-clones/vulkan-tools::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git#commit=247c806c93c720488daa0bc86acd5b6f3a0e14f9" "bare-clones/vulkan-validation-layers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git#commit=6f5b5e78b22cdd8d9535986e0d4c1b94ebe2d7b4"
"bare-clones/vulkan-validation-layers::git+https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git#commit=9086fcc46a679c334f9ede021a65215981df776a"
001-add-mingw-toolchain.patch 001-add-mingw-toolchain.patch
002-buildflags-fixes.patch 002-buildflags-fixes.patch
003-angle-src-fixes.patch 003-angle-src-fixes.patch
@ -54,26 +55,25 @@ source=("${_realname}::git+https://chromium.googlesource.com/angle/angle.git#com
rjson.gn rjson.gn
zlib.gn zlib.gn
angleproject.pc) angleproject.pc)
sha256sums=('SKIP' sha256sums=('8b51860cdeedda205ab6dc641c50943afd39018212701451f9a91d0b5f5be2cd'
'SKIP' 'f76c7c95066b1666ee2223f25d84cf7ddf7a891300e47b8eebd41bcd10dbba37'
'SKIP' 'a81c93d0eeff1f64765be1cf741aa44f300dea31441760b4e4c1dbe5ed4a0e56'
'SKIP' '6478d94a8295db87759f756c99a7c079d7f3710e4fb996f9851d7f9ca8982f11'
'ea1e3f0cc030911596b3fc4753a9228ea3a5a4eba6e21bb34b7a9867a3702738' 'f58b2605f036b8c9c7992635ad5f2070abe4d527314915874766d654ae4eb429'
'SKIP' '47564925640c69eb6bef13ff7bca417d39e568208702e57c23cb6d4de3991b7a'
'SKIP' '4d0c3e559c632add51f5faa365218c2c45e8ab7e6430077b269575d75ac3e1e4'
'SKIP' '25ef9ac33ba80d13e44b2d3b45093451a20e41c4ed802c81f764934763408752'
'SKIP' '966446961563e5e8e7d1917093a71ddfa11e5ea4a686c7f7176e97053f1e0029'
'SKIP' '913fc3a85ae676025bafe63880c6413ffafe42495a04a52527ee914ee9ba3ae5'
'SKIP' '84a3afb0278156a286c37e3c166e4079a877ccb8d3da85b32d7c37986d78efbc'
'SKIP' '169327cafbfd0653a2937962cf17610d26c46dead8187f6ca1e21b20b637d9e1'
'SKIP' 'f82de30bbd868c75f7f3edd191e30fcce81c87825ff7c10713929295b5f4016f'
'573a9e12727926e2ddddf0863bed926ef3764ec64ab75d27e3ec48648849786d' 'df927c5f804d51e6ce8f2c9324396d56d17aebbd674db3ba1c6ebafbebded0ac'
'926b273b0f32ce81b7508dea3dff8447e2f98bd84caa2c67fd52ede5e53a7213' '36939a33c2f9fef5ecf07d5bd508057b2a49c1582e0e01891ad3e7d9e3ffb7fc'
'04bcb05dc2f349639bf4e62ee92d758b756e56532ceb9184c2d7dca01e67a38e' '8209021bad1359426f24704395e67c2ca663a3c7b65eaaa3a2fc0e67fd155353'
'55d291668fe98f9b095983fe9c17a7336097d3f6028a59ca749b77dac92be5b1' '08441bed59aadcd6eb7079662a970e5c26dae3c77d4958af0485ac959d08a2fe'
'ced98a61919f7fdb10dbff26dfbd4ea11b034eaaeb3433f0fa5c4c998519e171' 'cb5358e80a45f54e15a69bbe12ecb07eae405b491451ee38aea01ce4579b492b'
'276799dbae43ab2577547dcc7912353619ade2ba878b28947ddef545f48afffa' 'b69a6ff976df8192b776673f94fd494ba4c62e798708f753d9f8390f4fc0341e'
'7fc7f35aedc101fe325c161c42d2966f974ec789025750705ceb0caf259fc1f6'
'6d5c3d7888a671059d378e955c86d297dede5e6eee0d6aa0aeb12eb84c9e8ca1' '6d5c3d7888a671059d378e955c86d297dede5e6eee0d6aa0aeb12eb84c9e8ca1'
'bf878de3203a62e2a7f81bd4cd79237adc74804b4b692d9277da005ed56d4f2a' 'bf878de3203a62e2a7f81bd4cd79237adc74804b4b692d9277da005ed56d4f2a'
'86013781c2700219d4f64d7ac34ad16c40fcca9a641371385f67f642e23c643b' '86013781c2700219d4f64d7ac34ad16c40fcca9a641371385f67f642e23c643b'
@ -101,16 +101,15 @@ pkgver() {
prepare() { prepare() {
echo ":: Patching build directory" echo ":: Patching build directory"
cd "${srcdir}"/build cd "${srcdir}"/build
patch -p1 -i "${srcdir}"/001-add-mingw-toolchain.patch apply_patch_with_msg \
001-add-mingw-toolchain.patch
python "${srcdir}"/build/util/lastchange.py -o "${srcdir}"/build/util/LASTCHANGE python "${srcdir}"/build/util/lastchange.py -o "${srcdir}"/build/util/LASTCHANGE
rm -rf "${srcdir}"/${_realname}/build cp -rf "${srcdir}"/build "${srcdir}"/${_realname}
ln -sf "${srcdir}"/build "${srcdir}"/${_realname} echo "build_with_chromium = false" > "${srcdir}"/${_realname}/build/config/gclient_args.gni
echo "checkout_google_benchmark = false" > "${srcdir}"/${_realname}/build/config/gclient_args.gni
echo ":: Patching zlib directory" echo ":: Patching zlib directory"
mkdir -p "${srcdir}"/${_realname}/third_party/zlib cp -f "${srcdir}"/zlib.gn "${srcdir}"/${_realname}/third_party/zlib/BUILD.gn
ln -sf "${srcdir}"/zlib.gn "${srcdir}"/${_realname}/third_party/zlib/BUILD.gn cp -rf "${srcdir}"/zlib/google "${srcdir}"/${_realname}/third_party/zlib
ln -sf "${srcdir}"/zlib/google "${srcdir}"/${_realname}/third_party/zlib
echo ":: Extracting SwiftShader" echo ":: Extracting SwiftShader"
cd "${srcdir}" cd "${srcdir}"
@ -119,42 +118,41 @@ prepare() {
echo ":: Patching SwiftShader directory" echo ":: Patching SwiftShader directory"
cd "${srcdir}"/SwiftShader cd "${srcdir}"/SwiftShader
patch -p1 -i "${srcdir}"/004-swiftshader-updates.patch apply_patch_with_msg \
patch -p1 -i "${srcdir}"/008-arm64-mingw-intrinsic.patch 004-swiftshader-updates.patch \
ln -sf "${srcdir}"/SwiftShader "${srcdir}"/${_realname}/third_party 008-arm64-mingw-intrinsic.patch
cp -rf "${srcdir}"/SwiftShader "${srcdir}"/${_realname}/third_party
echo ":: Patching vulkan_memory_allocator directory" echo ":: Patching vulkan_memory_allocator directory"
cd "${srcdir}"/vulkan_memory_allocator cd "${srcdir}"/vulkan_memory_allocator
patch -p1 -i "${srcdir}"/005-vulkan-memory-allocator-updates.patch apply_patch_with_msg \
ln -sf "${srcdir}"/vulkan_memory_allocator "${srcdir}"/${_realname}/third_party 005-vulkan-memory-allocator-updates.patch
cp -rf "${srcdir}"/vulkan_memory_allocator "${srcdir}"/${_realname}/third_party
echo ":: Patching spirv-tools directory" echo ":: Patching spirv-tools directory"
cd "${srcdir}"/spirv-tools cd "${srcdir}"/spirv-tools
patch -p1 -i "${srcdir}"/006-spirv-updates.patch apply_patch_with_msg \
006-spirv-updates.patch
echo ":: Patching vulkan-loader directory" echo ":: Patching vulkan-loader directory"
cd "${srcdir}"/vulkan-loader cd "${srcdir}"/vulkan-loader
patch -p1 -i "${srcdir}"/007-vulkan-loader-updates.patch apply_patch_with_msg \
007-vulkan-loader-updates.patch
echo ":: Copying vulkan-deps files" echo ":: Copying spirv and vulkan files"
ln -sf "${srcdir}"/vulkan-deps "${srcdir}"/${_realname}/third_party cp -rf "${srcdir}"/spirv-headers/* "${srcdir}"/${_realname}/third_party/spirv-headers/src
cp -rf "${srcdir}"/spirv-headers "${srcdir}"/${_realname}/third_party/vulkan-deps/spirv-headers/src cp -rf "${srcdir}"/spirv-tools/* "${srcdir}"/${_realname}/third_party/spirv-tools/src
cp -rf "${srcdir}"/spirv-tools "${srcdir}"/${_realname}/third_party/vulkan-deps/spirv-tools/src cp -rf "${srcdir}"/vulkan-headers/* "${srcdir}"/${_realname}/third_party/vulkan-headers/src
cp -rf "${srcdir}"/vulkan-headers "${srcdir}"/${_realname}/third_party/vulkan-deps/vulkan-headers/src cp -rf "${srcdir}"/vulkan-loader/* "${srcdir}"/${_realname}/third_party/vulkan-loader/src
cp -rf "${srcdir}"/vulkan-loader "${srcdir}"/${_realname}/third_party/vulkan-deps/vulkan-loader/src cp -rf "${srcdir}"/vulkan-tools/* "${srcdir}"/${_realname}/third_party/vulkan-tools/src
cp -rf "${srcdir}"/vulkan-tools "${srcdir}"/${_realname}/third_party/vulkan-deps/vulkan-tools/src cp -rf "${srcdir}"/vulkan-validation-layers/* "${srcdir}"/${_realname}/third_party/vulkan-validation-layers/src
cp -rf "${srcdir}"/vulkan-validation-layers "${srcdir}"/${_realname}/third_party/vulkan-deps/vulkan-validation-layers/src
echo ":: Soft linking extra repos" echo ":: Updating extra repos"
mkdir -p "${srcdir}"/${_realname}/third_party/libjpeg cp -f "${srcdir}"/jpeg.gn "${srcdir}"/${_realname}/third_party/libjpeg_turbo/BUILD.gn
ln -sf "${srcdir}"/jpeg.gn "${srcdir}"/${_realname}/third_party/libjpeg/BUILD.gn cp -f "${srcdir}"/jsoncpp.gn "${srcdir}"/${_realname}/third_party/jsoncpp/BUILD.gn
mkdir -p "${srcdir}"/${_realname}/third_party/jsoncpp cp -f "${srcdir}"/png.gn "${srcdir}"/${_realname}/third_party/libpng/BUILD.gn
ln -sf "${srcdir}"/jsoncpp.gn "${srcdir}"/${_realname}/third_party/jsoncpp/BUILD.gn cp -f "${srcdir}"/rjson.gn "${srcdir}"/${_realname}/third_party/rapidjson/BUILD.gn
rm -f "${srcdir}"/${_realname}/third_party/libpng/BUILD.gn cp -rf "${srcdir}"/clang "${srcdir}"/${_realname}/tools
ln -sf "${srcdir}"/png.gn "${srcdir}"/${_realname}/third_party/libpng/BUILD.gn
rm -f "${srcdir}"/${_realname}/third_party/rapidjson/BUILD.gn
ln -sf "${srcdir}"/rjson.gn "${srcdir}"/${_realname}/third_party/rapidjson/BUILD.gn
ln -sf "${srcdir}"/clang "${srcdir}"/${_realname}/tools
echo ":: Patching angle source" echo ":: Patching angle source"
cd "${srcdir}"/${_realname} cd "${srcdir}"/${_realname}
@ -182,8 +180,12 @@ build() {
fi fi
local _arch=x64 local _arch=x64
local _cfg=true
local _swiftshader=true
if [[ ${CARCH} == aarch64 ]]; then if [[ ${CARCH} == aarch64 ]]; then
_arch=arm64 _arch=arm64
_cfg=false
_swiftshader=false
fi fi
local _clang=false local _clang=false
@ -191,35 +193,24 @@ build() {
_clang=true _clang=true
fi fi
local _swiftshader=false
if [[ ${MSYSTEM} == CLANG* ]] && [[ ${CARCH} != aarch64 ]]; then
_swiftshader=true
fi
if [[ ${MSYSTEM} == CLANG* ]]; then
export CXX=clang++
export CC=clang
export AR=llvm-ar
else
export CXX=g++
export CC=gcc
export AR=ar
fi
gn gen out/${_target}-${MSYSTEM} --args=" gn gen out/${_target}-${MSYSTEM} --args="
target_cpu=\"${_arch}\" target_cpu=\"${_arch}\"
is_debug=${_debug} is_debug=${_debug}
is_clang=${_clang} is_clang=${_clang}
is_component_build=true is_component_build=true
angle_build_tests=false
angle_enable_abseil=false angle_enable_abseil=false
angle_enable_metal=false
angle_enable_d3d11_compositor_native_window=false
angle_enable_cl=false angle_enable_cl=false
angle_shared_libvulkan=false angle_enable_metal=false
angle_enable_swiftshader=${_swiftshader} angle_enable_swiftshader=${_swiftshader}
angle_shared_libvulkan=false
chrome_pgo_phase=0 chrome_pgo_phase=0
use_custom_libcxx=false use_custom_libcxx=false
use_libcxx_modules=false
use_lld=false
use_siso=false
use_sysroot=false use_sysroot=false
win_enable_cfg_guards=${_cfg}
treat_warnings_as_errors=false" treat_warnings_as_errors=false"
ninja -C out/${_target}-${MSYSTEM} ninja -C out/${_target}-${MSYSTEM}