aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-autoroll <android-autoroll@skia-public.iam.gserviceaccount.com>2022-04-20 08:50:23 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-04-20 08:50:23 +0000
commit12660312c2f452cd17be0a66282f0b2cc854132a (patch)
tree971e53a018c73848e828663bc8997dc2d458d2eb
parentad1aed6a494c6573bc5cef9ccc53b49dd513b601 (diff)
parent421b9dc037958111da0b1f0ea15bb08f558b0514 (diff)
downloadangle-12660312c2f452cd17be0a66282f0b2cc854132a.tar.gz
Roll ANGLE from c3f1596293c9 to cfc92ebf1f1e (31 revisions) am: 345b350a2a am: fab0221071 am: 1ac5a560a0 am: 421b9dc037
Original change: https://android-review.googlesource.com/c/platform/external/angle/+/2068368 Change-Id: I6a0c2fbb4a3b23a2e7d97f66dfe63c9d0a47f99b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--Android.bp345
-rw-r--r--DEPS54
-rw-r--r--scripts/code_generation_hashes/Test_spec_JSON.json4
-rw-r--r--scripts/code_generation_hashes/restricted_traces.json2
-rw-r--r--src/common/FastVector.h39
-rw-r--r--src/common/FastVector_unittest.cpp23
-rw-r--r--src/compiler/translator/ParseContext.cpp3
-rw-r--r--src/compiler/translator/QualifierTypes.cpp14
-rw-r--r--src/compiler/translator/QualifierTypes.h3
-rw-r--r--src/compiler/translator/ValidateAST.cpp10
-rw-r--r--src/compiler/translator/ValidateAST.h1
-rw-r--r--src/libANGLE/Context.cpp70
-rw-r--r--src/libANGLE/Display.cpp9
-rw-r--r--src/libANGLE/Display.h2
-rw-r--r--src/libANGLE/Image.cpp1
-rw-r--r--src/libANGLE/Program.cpp5
-rw-r--r--src/libANGLE/ProgramExecutable.cpp38
-rw-r--r--src/libANGLE/ProgramExecutable.h9
-rw-r--r--src/libANGLE/ProgramPipeline.cpp14
-rw-r--r--src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp82
-rw-r--r--src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h157
-rw-r--r--src/libANGLE/renderer/glslang_wrapper_utils.cpp205
-rw-r--r--src/libANGLE/renderer/glslang_wrapper_utils.h4
-rw-r--r--src/libANGLE/renderer/metal/mtl_glslang_utils.mm11
-rw-r--r--src/libANGLE/renderer/metal/mtl_utils.mm9
-rw-r--r--src/libANGLE/renderer/vulkan/BufferVk.cpp11
-rw-r--r--src/libANGLE/renderer/vulkan/ContextVk.cpp46
-rw-r--r--src/libANGLE/renderer/vulkan/ContextVk.h7
-rw-r--r--src/libANGLE/renderer/vulkan/DisplayVk.cpp10
-rw-r--r--src/libANGLE/renderer/vulkan/DisplayVk.h11
-rw-r--r--src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp271
-rw-r--r--src/libANGLE/renderer/vulkan/ProgramExecutableVk.h6
-rw-r--r--src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp42
-rw-r--r--src/libANGLE/renderer/vulkan/ProgramPipelineVk.h6
-rw-r--r--src/libANGLE/renderer/vulkan/RendererVk.cpp7
-rw-r--r--src/libANGLE/renderer/vulkan/ResourceVk.cpp10
-rw-r--r--src/libANGLE/renderer/vulkan/ResourceVk.h7
-rw-r--r--src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp6
-rw-r--r--src/libANGLE/renderer/vulkan/vk_helpers.cpp43
-rw-r--r--src/libANGLE/renderer/vulkan/vk_helpers.h3
-rw-r--r--src/tests/angle_end2end_tests_expectations.txt9
-rw-r--r--src/tests/deqp_support/deqp_gles2_test_expectations.txt5
-rw-r--r--src/tests/deqp_support/deqp_gles3_test_expectations.txt12
-rw-r--r--src/tests/gl_tests/GLSLTest.cpp40
-rw-r--r--src/tests/gl_tests/MultithreadingTest.cpp80
-rw-r--r--src/tests/perf_tests/TracePerfTest.cpp5
-rwxr-xr-xsrc/tests/restricted_traces/restricted_trace_gold_tests.py10
-rw-r--r--src/tests/restricted_traces/restricted_traces.json2
m---------third_party/SwiftShader0
m---------third_party/VK-GL-CTS/src0
-rw-r--r--third_party/abseil-cpp/symbols_arm64_rel.def1
-rw-r--r--third_party/abseil-cpp/symbols_x64_rel.def2
-rw-r--r--third_party/abseil-cpp/symbols_x64_rel_asan.def3
m---------third_party/catapult0
m---------third_party/depot_tools0
-rw-r--r--third_party/vulkan-deps/DEPS14
-rw-r--r--third_party/vulkan-deps/glslang/src/README.md4
m---------third_party/vulkan-deps/spirv-cross/src0
-rw-r--r--third_party/vulkan-deps/spirv-headers/src/CMakeLists.txt5
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/kokoro/scripts/windows/build.bat2
-rw-r--r--third_party/vulkan-deps/spirv-tools/src/source/CMakeLists.txt2
m---------third_party/vulkan-deps/vulkan-loader/src0
m---------third_party/vulkan-deps/vulkan-tools/src0
m---------third_party/vulkan-deps/vulkan-validation-layers/src0
-rw-r--r--third_party/zlib/contrib/bench/zlib_bench.cc57
65 files changed, 1279 insertions, 574 deletions
diff --git a/Android.bp b/Android.bp
index 53f76d00b9..e087741206 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,7 +16,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -28,6 +28,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -77,7 +78,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_EGL_LOADER",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DEGL_EGLEXT_PROTOTYPES",
"-DEGL_EGL_PROTOTYPES=1",
@@ -92,6 +93,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -166,7 +168,7 @@ cc_library_shared {
"-DANGLE_GLESV2_LIBRARY_NAME=\"libGLESv2_angle\"",
"-DANGLE_USE_ABSEIL",
"-DANGLE_USE_EGL_LOADER",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DEGLAPI=__attribute__((visibility(\"default\")))",
"-DEGL_EGLEXT_PROTOTYPES",
@@ -183,6 +185,7 @@ cc_library_shared {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -254,7 +257,7 @@ cc_library_shared {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DEGL_EGLEXT_PROTOTYPES",
"-DEGL_EGL_PROTOTYPES=1",
@@ -271,6 +274,7 @@ cc_library_shared {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -305,7 +309,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -321,6 +325,7 @@ cc_defaults {
"-Wno-builtin-macro-redefined",
"-Wno-c++98-compat-extra-semi",
"-Wno-deprecated-copy",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-implicit-fallthrough",
"-Wno-missing-field-initializers",
@@ -359,7 +364,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_SHARED_LIBVULKAN=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -375,6 +380,7 @@ cc_defaults {
"-Wno-builtin-macro-redefined",
"-Wno-c++98-compat-extra-semi",
"-Wno-deprecated-copy",
+ "-Wno-deprecated-non-prototype",
"-Wno-extra-semi-stmt",
"-Wno-ignored-pragma-optimize",
"-Wno-implicit-fallthrough",
@@ -432,7 +438,7 @@ cc_defaults {
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_SHARED_LIBVULKAN=1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -444,6 +450,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -499,7 +506,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -510,6 +517,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -553,7 +561,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DLIBANGLE_IMPLEMENTATION",
@@ -565,6 +573,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -672,7 +681,7 @@ cc_defaults {
"-DANGLE_USE_ABSEIL",
"-DANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS=1",
"-DANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DLIBANGLE_IMPLEMENTATION",
@@ -685,6 +694,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1005,7 +1015,7 @@ cc_library_static {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1016,6 +1026,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-implicit-fallthrough",
"-Wno-missing-field-initializers",
@@ -1111,7 +1122,7 @@ cc_library_static {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1122,6 +1133,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-implicit-fallthrough",
"-Wno-missing-field-initializers",
@@ -1166,7 +1178,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1177,6 +1189,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1200,7 +1213,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1211,6 +1224,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1233,7 +1247,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1244,6 +1258,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1281,7 +1296,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1292,6 +1307,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1330,7 +1346,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1341,6 +1357,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1392,7 +1409,7 @@ cc_library_static {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1403,6 +1420,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1579,7 +1597,7 @@ cc_library_static {
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_ENABLE_VULKAN",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1590,6 +1608,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1621,7 +1640,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1632,6 +1651,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1668,7 +1688,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DLIBANGLE_IMPLEMENTATION",
@@ -1680,6 +1700,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1720,7 +1741,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1731,6 +1752,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1760,7 +1782,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1771,6 +1793,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1807,7 +1830,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1818,6 +1841,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1857,7 +1881,7 @@ cc_library_static {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1868,6 +1892,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1889,7 +1914,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1901,6 +1926,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1931,7 +1957,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1943,6 +1969,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -1971,7 +1998,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_SHARED_LIBVULKAN=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -1983,6 +2010,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2027,7 +2055,7 @@ cc_defaults {
"-DANGLE_USE_ABSEIL",
"-DANGLE_VK_LAYERS_DIR=\"angledata\"",
"-DANGLE_VK_MOCK_ICD_JSON=\"angledata/VkICD_mock_icd.json\"",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2039,6 +2067,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2078,7 +2107,7 @@ cc_defaults {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2089,6 +2118,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2133,7 +2163,7 @@ cc_library_static {
"-DANGLE_USE_ABSEIL",
"-DANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS=1",
"-DANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2145,6 +2175,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2171,7 +2202,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2183,6 +2214,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2236,7 +2268,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2246,6 +2278,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2304,7 +2337,7 @@ cc_defaults {
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DARMV8_OS_ANDROID",
"-DCRC32_ARMV8_CRC32",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2316,6 +2349,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2340,7 +2374,7 @@ cc_defaults {
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DARMV8_OS_ANDROID",
"-DCRC32_ARMV8_CRC32",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2352,6 +2386,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2376,7 +2411,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2387,6 +2422,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2414,7 +2450,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2426,6 +2462,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2477,7 +2514,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2486,6 +2523,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2532,7 +2570,7 @@ cc_library_static {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2542,6 +2580,7 @@ cc_library_static {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2621,7 +2660,7 @@ cc_library_static {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2632,6 +2671,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -2672,7 +2712,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2683,6 +2723,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-implicit-fallthrough",
"-Wno-missing-field-initializers",
@@ -2707,7 +2748,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2716,6 +2757,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2751,7 +2793,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2760,6 +2802,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2797,7 +2840,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2806,6 +2849,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2844,7 +2888,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2853,6 +2897,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2883,7 +2928,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2892,6 +2937,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2922,7 +2968,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2931,6 +2977,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -2965,7 +3012,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -2974,6 +3021,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3016,7 +3064,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3025,6 +3073,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3057,7 +3106,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3066,6 +3115,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3104,7 +3154,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3113,6 +3163,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3152,7 +3203,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3161,6 +3212,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3191,7 +3243,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3200,6 +3252,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3234,7 +3287,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3243,6 +3296,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3273,7 +3327,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3282,6 +3336,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3324,7 +3379,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3333,6 +3388,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3367,7 +3423,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3376,6 +3432,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3413,7 +3470,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3422,6 +3479,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3458,7 +3516,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3467,6 +3525,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3502,7 +3561,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3511,6 +3570,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3549,7 +3609,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3558,6 +3618,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3593,7 +3654,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3602,6 +3663,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3643,7 +3705,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3652,6 +3714,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3696,7 +3759,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3705,6 +3768,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3750,7 +3814,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3759,6 +3823,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3797,7 +3862,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3806,6 +3871,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3843,7 +3909,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3852,6 +3918,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3888,7 +3955,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3897,6 +3964,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3942,7 +4010,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3951,6 +4019,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -3985,7 +4054,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -3994,6 +4063,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4027,7 +4097,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4036,6 +4106,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4080,7 +4151,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4089,6 +4160,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4131,7 +4203,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4140,6 +4212,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4173,7 +4246,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4182,6 +4255,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4216,7 +4290,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4225,6 +4299,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4263,7 +4338,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4272,6 +4347,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4325,7 +4401,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4334,6 +4410,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4365,7 +4442,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4374,6 +4451,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4412,7 +4490,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4421,6 +4499,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4452,7 +4531,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4461,6 +4540,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4502,7 +4582,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4511,6 +4591,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4560,7 +4641,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4569,6 +4650,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4612,7 +4694,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4621,6 +4703,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4653,7 +4736,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4662,6 +4745,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4696,7 +4780,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4705,6 +4789,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4741,7 +4826,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4750,6 +4835,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4782,7 +4868,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4791,6 +4877,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4823,7 +4910,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4832,6 +4919,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4865,7 +4953,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4874,6 +4962,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4905,7 +4994,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4914,6 +5003,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4950,7 +5040,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -4959,6 +5049,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -4992,7 +5083,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5001,6 +5092,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5036,7 +5128,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5045,6 +5137,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5081,7 +5174,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5090,6 +5183,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5121,7 +5215,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5130,6 +5224,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5161,7 +5256,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5170,6 +5265,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5208,7 +5304,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5217,6 +5313,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5255,7 +5352,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5264,6 +5361,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5299,7 +5397,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5308,6 +5406,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5350,7 +5449,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5359,6 +5458,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5392,7 +5492,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5401,6 +5501,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5432,7 +5533,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5441,6 +5542,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5473,7 +5575,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5482,6 +5584,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5513,7 +5616,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5522,6 +5625,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5555,7 +5659,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5564,6 +5668,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5594,7 +5699,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5603,6 +5708,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5629,7 +5735,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5638,6 +5744,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5669,7 +5776,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5678,6 +5785,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5708,7 +5816,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5717,6 +5825,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5749,7 +5858,7 @@ cc_defaults {
"-DABSL_ALLOCATOR_NOTHROW=1",
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5758,6 +5867,7 @@ cc_defaults {
"-Os",
"-Wno-builtin-macro-redefined",
"-Wno-c++11-narrowing",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-misleading-indentation",
"-Wno-missing-field-initializers",
@@ -5839,7 +5949,7 @@ cc_library_static {
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DANGLE_USE_ABSEIL",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -5850,6 +5960,7 @@ cc_library_static {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -6015,7 +6126,7 @@ cc_defaults {
"-DANGLE_USE_ABSEIL",
"-DANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS=1",
"-DANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DLIBANGLE_IMPLEMENTATION",
@@ -6028,6 +6139,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -6107,7 +6219,7 @@ cc_defaults {
"-DANGLE_USE_ABSEIL",
"-DANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS=1",
"-DANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DLIBANGLE_IMPLEMENTATION",
@@ -6120,6 +6232,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -6141,7 +6254,7 @@ cc_defaults {
cflags: [
"-DANDROID",
"-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DHAVE_SYS_UIO_H",
"-DNDEBUG",
@@ -6152,6 +6265,7 @@ cc_defaults {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
@@ -6242,7 +6356,7 @@ cc_library_shared {
"-DANGLE_USE_ABSEIL",
"-DANGLE_USE_CUSTOM_VULKAN_OUTSIDE_RENDER_PASS_CMD_BUFFERS=1",
"-DANGLE_USE_CUSTOM_VULKAN_RENDER_PASS_CMD_BUFFERS=1",
- "-DCR_CLANG_REVISION=\"llvmorg-15-init-7040-g50de659a-3\"",
+ "-DCR_CLANG_REVISION=\"llvmorg-15-init-7570-gba4537b2-1\"",
"-DDYNAMIC_ANNOTATIONS_ENABLED=0",
"-DEGL_EGLEXT_PROTOTYPES",
"-DEGL_EGL_PROTOTYPES=1",
@@ -6262,6 +6376,7 @@ cc_library_shared {
"-D__STDC_FORMAT_MACROS",
"-Os",
"-Wno-builtin-macro-redefined",
+ "-Wno-deprecated-non-prototype",
"-Wno-ignored-pragma-optimize",
"-Wno-missing-field-initializers",
"-Wno-psabi",
diff --git a/DEPS b/DEPS
index fed02a9012..6e4ea078df 100644
--- a/DEPS
+++ b/DEPS
@@ -34,13 +34,13 @@ vars = {
'checkout_android_native_support': 'checkout_android or checkout_chromeos',
# Version of Chromium our Chromium-based DEPS are mirrored from.
- 'chromium_revision': 'e6765ea8299f1aa4afbe0994f415ce3e25d24435',
+ 'chromium_revision': 'e1b5a693bbfe7aa10c629797365770749dd90dcd',
# We never want to checkout chromium,
# but need a dummy DEPS entry for the autoroller
'dummy_checkout_chromium': False,
# Current revision of VK-GL-CTS (a.k.a dEQP).
- 'vk_gl_cts_revision': '20a474e64382e8f5144122b30b3d7cab182421b8',
+ 'vk_gl_cts_revision': 'a22069b4e3b7f68cc0c161e8c93b1308bff0925f',
# Current revision of googletest.
# Note: this dep cannot be auto-rolled b/c of nesting.
@@ -79,7 +79,7 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling catapult
# and whatever else without interference from each other.
- 'catapult_revision': 'e9e999a4a88a2963b60bec778f340d3c3d00fa1a',
+ 'catapult_revision': '28b8ede735b79253b8689d5e270f4783e8413649',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling luci-go
@@ -119,7 +119,7 @@ vars = {
deps = {
'build': {
- 'url': '{chromium_git}/chromium/src/build.git@bb1c23c67d2328cbb89966535bfca2916854bb8e',
+ 'url': '{chromium_git}/chromium/src/build.git@7aeed11a9ec1ee0818210ea49573d0008a9df2bb',
'condition': 'not build_with_chromium',
},
@@ -137,7 +137,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/linux-amd64',
- 'version': 'git_revision:c114b7e0b3a327e854cae6b560902230436f1ac7',
+ 'version': 'git_revision:1cdd270be9803dbfcdd0343f6104ad4dc30c38ce',
}
],
'dep_type': 'cipd',
@@ -148,7 +148,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/mac-${{arch}}',
- 'version': 'git_revision:c114b7e0b3a327e854cae6b560902230436f1ac7',
+ 'version': 'git_revision:1cdd270be9803dbfcdd0343f6104ad4dc30c38ce',
}
],
'dep_type': 'cipd',
@@ -166,7 +166,7 @@ deps = {
},
'buildtools/third_party/libunwind/trunk': {
- 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libunwind.git@bbcbce996866ff1f947414a8d9db1e79bdc7dca2',
+ 'url': '{chromium_git}/external/github.com/llvm/llvm-project/libunwind.git@1acfbbb4747081789ba48bc8c042fa3c5c8ccaa3',
'condition': 'not build_with_chromium',
},
@@ -174,7 +174,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/windows-amd64',
- 'version': 'git_revision:c114b7e0b3a327e854cae6b560902230436f1ac7',
+ 'version': 'git_revision:1cdd270be9803dbfcdd0343f6104ad4dc30c38ce',
}
],
'dep_type': 'cipd',
@@ -182,12 +182,12 @@ deps = {
},
'testing': {
- 'url': '{chromium_git}/chromium/src/testing@533b4e6461e1c4867f9950ff7147c7e889ed97d0',
+ 'url': '{chromium_git}/chromium/src/testing@e895c544f6a584dbb48f85f43bd4e117c550b3e4',
'condition': 'not build_with_chromium',
},
'third_party/abseil-cpp': {
- 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@1f41b4fc8f4e69c27772a6ea14e534a7197568d3',
+ 'url': '{chromium_git}/chromium/src/third_party/abseil-cpp@b0f34841aff13dac98725010b6ca401747d9b475',
'condition': 'not build_with_chromium',
},
@@ -332,7 +332,7 @@ deps = {
},
'third_party/depot_tools': {
- 'url': '{chromium_git}/chromium/tools/depot_tools.git@3c6f0eb95fddb6833820d3a10e80a7a2fb5d0167',
+ 'url': '{chromium_git}/chromium/tools/depot_tools.git@7d2693ad8d9d304391b1c1fee9f88f258af5a211',
'condition': 'not build_with_chromium',
},
@@ -496,7 +496,7 @@ deps = {
},
'third_party/SwiftShader': {
- 'url': '{swiftshader_git}/SwiftShader@1d450ae99a0f4ade28dd55dac962f8b28d990376',
+ 'url': '{swiftshader_git}/SwiftShader@103a69bd6c82980c967c2f4002c9a302ea67c716',
'condition': 'not build_with_chromium',
},
@@ -516,7 +516,7 @@ deps = {
},
'third_party/vulkan-deps': {
- 'url': '{chromium_git}/vulkan-deps@c9be322642fb4c85bf70615bdbd2d206e60c19f5',
+ 'url': '{chromium_git}/vulkan-deps@00e1ddd4230c7804ee732092af6dd0a79a7d9bfe',
'condition': 'not build_with_chromium',
},
@@ -531,7 +531,7 @@ deps = {
},
'third_party/zlib': {
- 'url': '{chromium_git}/chromium/src/third_party/zlib@a6d209ab932df0f1c9d5b7dc67cfa74e8a3272c0',
+ 'url': '{chromium_git}/chromium/src/third_party/zlib@be2c3787c0b6fc5d7abf63b057b039a05acb94ce',
'condition': 'not build_with_chromium',
},
@@ -541,7 +541,7 @@ deps = {
},
'tools/clang': {
- 'url': '{chromium_git}/chromium/src/tools/clang.git@d82302711f8b44cb5a4adffa044343342a08118d',
+ 'url': '{chromium_git}/chromium/src/tools/clang.git@7d4922aa8773389043e52575b706b94c7511d3d1',
'condition': 'not build_with_chromium',
},
@@ -572,7 +572,7 @@ deps = {
},
'tools/mb': {
- 'url': '{chromium_git}/chromium/src/tools/mb@f70aa510c468deff8c02bb15e69eababb31ea43a',
+ 'url': '{chromium_git}/chromium/src/tools/mb@36b318c3885b77de69cccaa2b88eaa8b3309dbd9',
'condition': 'not build_with_chromium',
},
@@ -587,7 +587,7 @@ deps = {
},
'tools/perf': {
- 'url': '{chromium_git}/chromium/src/tools/perf@7b9534832c3f0bab0835e78a455ca4bd7d9107ec',
+ 'url': '{chromium_git}/chromium/src/tools/perf@25916f0211676eabd25ed9949f7e4625981522a5',
'condition': 'not build_with_chromium',
},
@@ -1461,6 +1461,16 @@ deps = {
'dep_type': 'cipd',
'condition': 'checkout_angle_restricted_traces',
},
+ 'src/tests/restricted_traces/monster_strike': {
+ 'packages': [
+ {
+ 'package': 'angle/traces/monster_strike',
+ 'version': 'version:1',
+ },
+ ],
+ 'dep_type': 'cipd',
+ 'condition': 'checkout_angle_restricted_traces',
+ },
'src/tests/restricted_traces/my_talking_tom2': {
'packages': [
{
@@ -1801,6 +1811,16 @@ deps = {
'dep_type': 'cipd',
'condition': 'checkout_angle_restricted_traces',
},
+ 'src/tests/restricted_traces/special_forces_group_2': {
+ 'packages': [
+ {
+ 'package': 'angle/traces/special_forces_group_2',
+ 'version': 'version:1',
+ },
+ ],
+ 'dep_type': 'cipd',
+ 'condition': 'checkout_angle_restricted_traces',
+ },
'src/tests/restricted_traces/standoff_2': {
'packages': [
{
diff --git a/scripts/code_generation_hashes/Test_spec_JSON.json b/scripts/code_generation_hashes/Test_spec_JSON.json
index 7f189a99e8..50d529f65b 100644
--- a/scripts/code_generation_hashes/Test_spec_JSON.json
+++ b/scripts/code_generation_hashes/Test_spec_JSON.json
@@ -14,7 +14,7 @@
"infra/specs/waterfalls.pyl":
"db329524ea9686da7b32544a26b13203",
"testing/buildbot/generate_buildbot_json.py":
- "b00cff8aba6d321d560c09ed7d8cba03",
+ "dedd849a6d73b647daaeef0e7ab837a5",
"testing/buildbot/mixins.pyl":
- "b07ead4820f0abe6d61d373552ad0736"
+ "eed9c6f949d0e25d8229f84dac2fb50a"
} \ No newline at end of file
diff --git a/scripts/code_generation_hashes/restricted_traces.json b/scripts/code_generation_hashes/restricted_traces.json
index 80bc8a1ca4..756ff7d7b4 100644
--- a/scripts/code_generation_hashes/restricted_traces.json
+++ b/scripts/code_generation_hashes/restricted_traces.json
@@ -4,5 +4,5 @@
"src/tests/restricted_traces/gen_restricted_traces.py":
"7780405f8e0d92fa87a772dd64c62efb",
"src/tests/restricted_traces/restricted_traces.json":
- "ff125728ca8c236edb9587a5c437a4a2"
+ "a14ef4e7bedcb42355134661e7cb5ebe"
} \ No newline at end of file
diff --git a/src/common/FastVector.h b/src/common/FastVector.h
index 1b7db50a69..faa8e499c5 100644
--- a/src/common/FastVector.h
+++ b/src/common/FastVector.h
@@ -448,6 +448,45 @@ void FastVector<T, N, Storage>::ensure_capacity(size_t capacity)
}
}
+template <class Value, size_t N>
+class FastMap final
+{
+ public:
+ FastMap() {}
+ ~FastMap() {}
+
+ Value &operator[](uint32_t key)
+ {
+ if (mData.size() <= key)
+ {
+ mData.resize(key + 1, {});
+ }
+ return mData[key];
+ }
+
+ const Value &operator[](uint32_t key) const
+ {
+ ASSERT(key < mData.size());
+ return mData[key];
+ }
+
+ void clear() { mData.clear(); }
+
+ bool empty() const { return mData.empty(); }
+ size_t size() const { return mData.size(); }
+
+ const Value *data() const { return mData.data(); }
+
+ bool operator==(const FastMap<Value, N> &other) const
+ {
+ return (size() == other.size()) &&
+ (memcmp(data(), other.data(), size() * sizeof(Value)) == 0);
+ }
+
+ private:
+ FastVector<Value, N> mData;
+};
+
template <class Key, class Value, size_t N>
class FlatUnorderedMap final
{
diff --git a/src/common/FastVector_unittest.cpp b/src/common/FastVector_unittest.cpp
index f774bc1a3d..33068f6c53 100644
--- a/src/common/FastVector_unittest.cpp
+++ b/src/common/FastVector_unittest.cpp
@@ -384,4 +384,27 @@ TEST(FastIntegerMap, BasicUsage)
EXPECT_TRUE(testMap.empty());
EXPECT_EQ(testMap.size(), 0u);
}
+
+// Basic usage tests of fast map.
+TEST(FastMap, Basic)
+{
+ FastMap<int, 5> testMap;
+ EXPECT_TRUE(testMap.empty());
+
+ testMap[5] = 5;
+ EXPECT_FALSE(testMap.empty());
+
+ testMap.clear();
+ EXPECT_TRUE(testMap.empty());
+
+ for (int i = 0; i < 10; ++i)
+ {
+ testMap[i] = i;
+ }
+
+ for (int i = 0; i < 10; ++i)
+ {
+ EXPECT_TRUE(testMap[i] == i);
+ }
+}
} // namespace angle
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index 80226fb3e0..a2c0899f6a 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -1427,7 +1427,8 @@ void TParseContext::checkIsParameterQualifierValid(
TType *type)
{
// The only parameter qualifiers a parameter can have are in, out, inout or const.
- TTypeQualifier typeQualifier = typeQualifierBuilder.getParameterTypeQualifier(mDiagnostics);
+ TTypeQualifier typeQualifier =
+ typeQualifierBuilder.getParameterTypeQualifier(type->getBasicType(), mDiagnostics);
if (typeQualifier.qualifier == EvqParamOut || typeQualifier.qualifier == EvqParamInOut)
{
diff --git a/src/compiler/translator/QualifierTypes.cpp b/src/compiler/translator/QualifierTypes.cpp
index 814298dc6a..e524146cd3 100644
--- a/src/compiler/translator/QualifierTypes.cpp
+++ b/src/compiler/translator/QualifierTypes.cpp
@@ -630,6 +630,7 @@ TTypeQualifier GetVariableTypeQualifierFromSortedSequence(
}
TTypeQualifier GetParameterTypeQualifierFromSortedSequence(
+ TBasicType parameterBasicType,
const TTypeQualifierBuilder::QualifierSequence &sortedSequence,
TDiagnostics *diagnostics)
{
@@ -684,7 +685,9 @@ TTypeQualifier GetParameterTypeQualifierFromSortedSequence(
case EvqParamInOut:
break;
case EvqConst:
- typeQualifier.qualifier = EvqParamConst;
+ // Opaque parameters can only be |in|. |const| is allowed, but is meaningless and is
+ // dropped.
+ typeQualifier.qualifier = IsOpaqueType(parameterBasicType) ? EvqParamIn : EvqParamConst;
break;
case EvqTemporary:
// no qualifier has been specified, set it to EvqParamIn which is the default
@@ -950,7 +953,8 @@ bool TTypeQualifierBuilder::checkSequenceIsValid(TDiagnostics *diagnostics) cons
return true;
}
-TTypeQualifier TTypeQualifierBuilder::getParameterTypeQualifier(TDiagnostics *diagnostics) const
+TTypeQualifier TTypeQualifierBuilder::getParameterTypeQualifier(TBasicType parameterBasicType,
+ TDiagnostics *diagnostics) const
{
ASSERT(IsInvariantCorrect(mQualifiers));
ASSERT(static_cast<const TStorageQualifierWrapper *>(mQualifiers[0])->getQualifier() ==
@@ -969,9 +973,11 @@ TTypeQualifier TTypeQualifierBuilder::getParameterTypeQualifier(TDiagnostics *di
// Copy the qualifier sequence so that we can sort them.
QualifierSequence sortedQualifierSequence = mQualifiers;
SortSequence(sortedQualifierSequence);
- return GetParameterTypeQualifierFromSortedSequence(sortedQualifierSequence, diagnostics);
+ return GetParameterTypeQualifierFromSortedSequence(parameterBasicType,
+ sortedQualifierSequence, diagnostics);
}
- return GetParameterTypeQualifierFromSortedSequence(mQualifiers, diagnostics);
+ return GetParameterTypeQualifierFromSortedSequence(parameterBasicType, mQualifiers,
+ diagnostics);
}
TTypeQualifier TTypeQualifierBuilder::getVariableTypeQualifier(TDiagnostics *diagnostics) const
diff --git a/src/compiler/translator/QualifierTypes.h b/src/compiler/translator/QualifierTypes.h
index 022f339b8d..b98f300ce8 100644
--- a/src/compiler/translator/QualifierTypes.h
+++ b/src/compiler/translator/QualifierTypes.h
@@ -198,7 +198,8 @@ class TTypeQualifierBuilder : angle::NonCopyable
// Goes over the qualifier sequence and parses it to form a type qualifier for a function
// parameter.
// The returned object is initialized even if the parsing fails.
- TTypeQualifier getParameterTypeQualifier(TDiagnostics *diagnostics) const;
+ TTypeQualifier getParameterTypeQualifier(TBasicType parameterBasicType,
+ TDiagnostics *diagnostics) const;
// Goes over the qualifier sequence and parses it to form a type qualifier for a variable.
// The returned object is initialized even if the parsing fails.
TTypeQualifier getVariableTypeQualifier(TDiagnostics *diagnostics) const;
diff --git a/src/compiler/translator/ValidateAST.cpp b/src/compiler/translator/ValidateAST.cpp
index 8de75abed7..77dcfc14d5 100644
--- a/src/compiler/translator/ValidateAST.cpp
+++ b/src/compiler/translator/ValidateAST.cpp
@@ -816,6 +816,16 @@ void ValidateAST::visitFunctionPrototype(TIntermFunctionPrototype *node)
param->name().data());
mQualifiersFailed = true;
}
+
+ if (IsOpaqueType(paramType.getBasicType()) && qualifier != EvqParamIn)
+ {
+ mDiagnostics->error(
+ node->getLine(),
+ "Found function prototype with an invalid qualifier on opaque parameter "
+ "<validateQualifiers>",
+ param->name().data());
+ mQualifiersFailed = true;
+ }
}
if (mOptions.validatePrecision && IsPrecisionApplicableToType(paramType.getBasicType()) &&
diff --git a/src/compiler/translator/ValidateAST.h b/src/compiler/translator/ValidateAST.h
index c3dc7cd11c..8afe94244e 100644
--- a/src/compiler/translator/ValidateAST.h
+++ b/src/compiler/translator/ValidateAST.h
@@ -48,6 +48,7 @@ struct ValidateASTOptions
// Implemented:
//
// - Function parameters having one of EvqParam* qualifiers.
+ // - No const qualifier on opaque function parameters.
// - gl_ClipDistance, gl_CullDistance and gl_LastFragData are correctly qualified even when
// redeclared in the shader.
//
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index bd9e3cd6aa..9356bf22a5 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -358,6 +358,43 @@ void GetPerfMonitorString(const std::string &name,
memcpy(stringOut, name.c_str(), numCharsWritten);
}
}
+
+bool CanSupportAEP(const gl::Version &version, const gl::Extensions &extensions)
+{
+ // From the GL_ANDROID_extension_pack_es31a extension spec:
+ // OpenGL ES 3.1 and GLSL ES 3.10 are required.
+ // The following extensions are required:
+ // * KHR_debug
+ // * KHR_texture_compression_astc_ldr
+ // * KHR_blend_equation_advanced
+ // * OES_sample_shading
+ // * OES_sample_variables
+ // * OES_shader_image_atomic
+ // * OES_shader_multisample_interpolation
+ // * OES_texture_stencil8
+ // * OES_texture_storage_multisample_2d_array
+ // * EXT_copy_image
+ // * EXT_draw_buffers_indexed
+ // * EXT_geometry_shader
+ // * EXT_gpu_shader5
+ // * EXT_primitive_bounding_box
+ // * EXT_shader_io_blocks
+ // * EXT_tessellation_shader
+ // * EXT_texture_border_clamp
+ // * EXT_texture_buffer
+ // * EXT_texture_cube_map_array
+ // * EXT_texture_sRGB_decode
+ return (version >= ES_3_1 && extensions.debugKHR && extensions.textureCompressionAstcLdrKHR &&
+ extensions.blendEquationAdvancedKHR && extensions.sampleShadingOES &&
+ extensions.sampleVariablesOES && extensions.shaderImageAtomicOES &&
+ extensions.shaderMultisampleInterpolationOES && extensions.textureStencil8OES &&
+ extensions.textureStorageMultisample2dArrayOES && extensions.copyImageEXT &&
+ extensions.drawBuffersIndexedEXT && extensions.geometryShaderEXT &&
+ extensions.gpuShader5EXT && extensions.primitiveBoundingBoxEXT &&
+ extensions.shaderIoBlocksEXT && extensions.tessellationShaderEXT &&
+ extensions.textureBorderClampEXT && extensions.textureBufferEXT &&
+ extensions.textureCubeMapArrayEXT && extensions.textureSRGBDecodeEXT);
+}
} // anonymous namespace
#if defined(ANGLE_PLATFORM_APPLE)
@@ -3617,17 +3654,16 @@ Extensions Context::generateSupportedExtensions() const
if (getClientVersion() < ES_3_1)
{
// Disable ES3.1+ extensions
- supportedExtensions.geometryShaderEXT = false;
- supportedExtensions.geometryShaderOES = false;
- supportedExtensions.tessellationShaderEXT = false;
- supportedExtensions.extensionPackEs31aANDROID = false;
- supportedExtensions.gpuShader5EXT = false;
- supportedExtensions.primitiveBoundingBoxEXT = false;
- supportedExtensions.shaderImageAtomicOES = false;
- supportedExtensions.shaderIoBlocksEXT = false;
- supportedExtensions.shaderIoBlocksOES = false;
- supportedExtensions.textureBufferEXT = false;
- supportedExtensions.textureBufferOES = false;
+ supportedExtensions.geometryShaderEXT = false;
+ supportedExtensions.geometryShaderOES = false;
+ supportedExtensions.tessellationShaderEXT = false;
+ supportedExtensions.gpuShader5EXT = false;
+ supportedExtensions.primitiveBoundingBoxEXT = false;
+ supportedExtensions.shaderImageAtomicOES = false;
+ supportedExtensions.shaderIoBlocksEXT = false;
+ supportedExtensions.shaderIoBlocksOES = false;
+ supportedExtensions.textureBufferEXT = false;
+ supportedExtensions.textureBufferOES = false;
// TODO(http://anglebug.com/2775): Multisample arrays could be supported on ES 3.0 as well
// once 2D multisample texture extension is exposed there.
@@ -3750,6 +3786,10 @@ Extensions Context::generateSupportedExtensions() const
// Performance counter queries are always supported. Different groups exist on each back-end.
supportedExtensions.performanceMonitorAMD = true;
+ // GL_ANDROID_extension_pack_es31a
+ supportedExtensions.extensionPackEs31aANDROID =
+ CanSupportAEP(getClientVersion(), supportedExtensions);
+
return supportedExtensions;
}
@@ -8909,6 +8949,8 @@ void Context::importSemaphoreZirconHandle(SemaphoreID semaphore,
void Context::eGLImageTargetTexStorage(GLenum target, GLeglImageOES image, const GLint *attrib_list)
{
+ setShared();
+
Texture *texture = getTextureByType(FromGLenum<TextureType>(target));
egl::Image *imageObject = static_cast<egl::Image *>(image);
ANGLE_CONTEXT_TRY(texture->setStorageEGLImageTarget(this, FromGLenum<TextureType>(target),
@@ -8919,11 +8961,15 @@ void Context::eGLImageTargetTextureStorage(GLuint texture,
GLeglImageOES image,
const GLint *attrib_list)
{
+ setShared();
+
return;
}
void Context::eGLImageTargetTexture2D(TextureType target, GLeglImageOES image)
{
+ setShared();
+
Texture *texture = getTextureByType(target);
egl::Image *imageObject = static_cast<egl::Image *>(image);
ANGLE_CONTEXT_TRY(texture->setEGLImageTarget(this, target, imageObject));
@@ -8931,6 +8977,8 @@ void Context::eGLImageTargetTexture2D(TextureType target, GLeglImageOES image)
void Context::eGLImageTargetRenderbufferStorage(GLenum target, GLeglImageOES image)
{
+ setShared();
+
Renderbuffer *renderbuffer = mState.getCurrentRenderbuffer();
egl::Image *imageObject = static_cast<egl::Image *>(image);
ANGLE_CONTEXT_TRY(renderbuffer->setStorageEGLImageTarget(this, imageObject));
diff --git a/src/libANGLE/Display.cpp b/src/libANGLE/Display.cpp
index bd2bd59d77..d7b75bf625 100644
--- a/src/libANGLE/Display.cpp
+++ b/src/libANGLE/Display.cpp
@@ -1325,7 +1325,7 @@ Error Display::createPixmapSurface(const Config *configuration,
return NoError();
}
-Error Display::createImage(const gl::Context *context,
+Error Display::createImage(gl::Context *context,
EGLenum target,
EGLClientBuffer buffer,
const AttributeMap &attribs,
@@ -1357,6 +1357,13 @@ Error Display::createImage(const gl::Context *context,
}
ASSERT(sibling != nullptr);
+ if (context)
+ {
+ // If the source comes from a context, make sure it's marked as shared because its resources
+ // can now be used by contects outside of its share group.
+ context->setShared();
+ }
+
angle::UniqueObjectPointer<Image, Display> imagePtr(
new Image(mImplementation, context, target, sibling, attribs), this);
ANGLE_TRY(imagePtr->initialize(this));
diff --git a/src/libANGLE/Display.h b/src/libANGLE/Display.h
index 7e7abb695f..46aedc60b9 100644
--- a/src/libANGLE/Display.h
+++ b/src/libANGLE/Display.h
@@ -180,7 +180,7 @@ class Display final : public LabeledObject,
const AttributeMap &attribs,
Surface **outSurface);
- Error createImage(const gl::Context *context,
+ Error createImage(gl::Context *context,
EGLenum target,
EGLClientBuffer buffer,
const AttributeMap &attribs,
diff --git a/src/libANGLE/Image.cpp b/src/libANGLE/Image.cpp
index 995cb41e40..83e1a89618 100644
--- a/src/libANGLE/Image.cpp
+++ b/src/libANGLE/Image.cpp
@@ -291,6 +291,7 @@ Image::Image(rx::EGLImplFactory *factory,
{
ASSERT(mImplementation != nullptr);
ASSERT(buffer != nullptr);
+ ASSERT(context == nullptr || context->isShared());
mState.source->addImageSource(this);
}
diff --git a/src/libANGLE/Program.cpp b/src/libANGLE/Program.cpp
index 46a6d57c66..73d89bee44 100644
--- a/src/libANGLE/Program.cpp
+++ b/src/libANGLE/Program.cpp
@@ -1357,6 +1357,8 @@ angle::Result Program::linkImpl(const Context *context)
}
}
+ mState.mExecutable->saveLinkedStateInfo(mState);
+
mLinkingState = std::move(linkingState);
mLinkingState->linkingFromBinary = false;
mLinkingState->programHash = programHash;
@@ -1366,11 +1368,8 @@ angle::Result Program::linkImpl(const Context *context)
mState.updateProgramInterfaceInputs();
mState.updateProgramInterfaceOutputs();
- // Linking has succeeded, so we need to save some information that may get overwritten by a
- // later linkProgram() that could fail.
if (mState.mSeparable)
{
- mState.mExecutable->saveLinkedStateInfo(mState);
mLinkingState->linkedExecutable = mState.mExecutable;
}
diff --git a/src/libANGLE/ProgramExecutable.cpp b/src/libANGLE/ProgramExecutable.cpp
index 9eb6831c65..6c01d70979 100644
--- a/src/libANGLE/ProgramExecutable.cpp
+++ b/src/libANGLE/ProgramExecutable.cpp
@@ -167,6 +167,20 @@ RangeUI AddUniforms(const ShaderMap<Program *> &programs,
}
return RangeUI(startRange, static_cast<unsigned int>(outputUniforms.size()));
}
+
+template <typename BlockT>
+void AppendActiveBlocks(ShaderType shaderType,
+ const std::vector<BlockT> &blocksIn,
+ std::vector<BlockT> &blocksOut)
+{
+ for (const BlockT &block : blocksIn)
+ {
+ if (block.isActive(shaderType))
+ {
+ blocksOut.push_back(block);
+ }
+ }
+}
} // anonymous namespace
ProgramExecutable::ProgramExecutable()
@@ -1665,16 +1679,17 @@ bool ProgramExecutable::linkAtomicCounterBuffers(const Context *context, InfoLog
return true;
}
-void ProgramExecutable::copyShaderBuffersFromProgram(const ProgramState &programState)
+void ProgramExecutable::copyInputsFromProgram(const ProgramState &programState)
{
- const std::vector<InterfaceBlock> &ubos = programState.getUniformBlocks();
- mUniformBlocks.insert(mUniformBlocks.end(), ubos.begin(), ubos.end());
-
- const std::vector<InterfaceBlock> &ssbos = programState.getShaderStorageBlocks();
- mShaderStorageBlocks.insert(mShaderStorageBlocks.end(), ssbos.begin(), ssbos.end());
+ mProgramInputs = programState.getProgramInputs();
+}
- const std::vector<AtomicCounterBuffer> &atomics = programState.getAtomicCounterBuffers();
- mAtomicCounterBuffers.insert(mAtomicCounterBuffers.end(), atomics.begin(), atomics.end());
+void ProgramExecutable::copyShaderBuffersFromProgram(const ProgramState &programState,
+ ShaderType shaderType)
+{
+ AppendActiveBlocks(shaderType, programState.getUniformBlocks(), mUniformBlocks);
+ AppendActiveBlocks(shaderType, programState.getShaderStorageBlocks(), mShaderStorageBlocks);
+ AppendActiveBlocks(shaderType, programState.getAtomicCounterBuffers(), mAtomicCounterBuffers);
}
void ProgramExecutable::clearSamplerBindings()
@@ -1694,6 +1709,13 @@ void ProgramExecutable::copyImageBindingsFromProgram(const ProgramState &program
mImageBindings.insert(mImageBindings.end(), bindings.begin(), bindings.end());
}
+void ProgramExecutable::copyOutputsFromProgram(const ProgramState &programState)
+{
+ mOutputVariables = programState.getOutputVariables();
+ mOutputLocations = programState.getOutputLocations();
+ mSecondaryOutputLocations = programState.getSecondaryOutputLocations();
+}
+
void ProgramExecutable::copyUniformsFromProgramMap(const ShaderMap<Program *> &programs)
{
// Merge default uniforms.
diff --git a/src/libANGLE/ProgramExecutable.h b/src/libANGLE/ProgramExecutable.h
index ef8e386b93..41b18e891d 100644
--- a/src/libANGLE/ProgramExecutable.h
+++ b/src/libANGLE/ProgramExecutable.h
@@ -137,6 +137,11 @@ class ProgramExecutable final : public angle::Subject
return mLinkedShaderStages[shaderType];
}
size_t getLinkedShaderStageCount() const { return mLinkedShaderStages.count(); }
+ bool hasLinkedGraphicsShader() const
+ {
+ return mLinkedShaderStages.any() &&
+ mLinkedShaderStages != gl::ShaderBitSet{gl::ShaderType::Compute};
+ }
bool hasLinkedTessellationShader() const
{
return mLinkedShaderStages[ShaderType::TessEvaluation];
@@ -342,10 +347,12 @@ class ProgramExecutable final : public angle::Subject
std::vector<UnusedUniform> *unusedUniforms,
std::vector<VariableLocation> *uniformLocationsOutOrNull);
- void copyShaderBuffersFromProgram(const ProgramState &programState);
+ void copyInputsFromProgram(const ProgramState &programState);
+ void copyShaderBuffersFromProgram(const ProgramState &programState, ShaderType shaderType);
void clearSamplerBindings();
void copySamplerBindingsFromProgram(const ProgramState &programState);
void copyImageBindingsFromProgram(const ProgramState &programState);
+ void copyOutputsFromProgram(const ProgramState &programState);
void copyUniformsFromProgramMap(const ShaderMap<Program *> &programs);
private:
diff --git a/src/libANGLE/ProgramPipeline.cpp b/src/libANGLE/ProgramPipeline.cpp
index 5578d9f1f2..33da7c2b67 100644
--- a/src/libANGLE/ProgramPipeline.cpp
+++ b/src/libANGLE/ProgramPipeline.cpp
@@ -524,16 +524,28 @@ angle::Result ProgramPipeline::link(const Context *context)
// Merge uniforms.
mState.mExecutable->copyUniformsFromProgramMap(mState.mPrograms);
+ if (mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Vertex))
+ {
+ const ProgramState &programState = mState.mPrograms[gl::ShaderType::Vertex]->getState();
+ mState.mExecutable->copyInputsFromProgram(programState);
+ }
+
// Merge shader buffers (UBOs, SSBOs, and atomic counter buffers) into the executable.
// Also copy over image and sampler bindings.
for (ShaderType shaderType : mState.mExecutable->getLinkedShaderStages())
{
const ProgramState &programState = mState.mPrograms[shaderType]->getState();
- mState.mExecutable->copyShaderBuffersFromProgram(programState);
+ mState.mExecutable->copyShaderBuffersFromProgram(programState, shaderType);
mState.mExecutable->copySamplerBindingsFromProgram(programState);
mState.mExecutable->copyImageBindingsFromProgram(programState);
}
+ if (mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Fragment))
+ {
+ const ProgramState &programState = mState.mPrograms[gl::ShaderType::Fragment]->getState();
+ mState.mExecutable->copyOutputsFromProgram(programState);
+ }
+
if (mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Vertex) ||
mState.mExecutable->hasLinkedShaderStage(gl::ShaderType::Compute))
{
diff --git a/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp b/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp
index 7352f4c804..88ad6503de 100644
--- a/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp
+++ b/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.cpp
@@ -20,60 +20,100 @@ ShaderInterfaceVariableInfoMap::~ShaderInterfaceVariableInfoMap() = default;
void ShaderInterfaceVariableInfoMap::clear()
{
- for (VariableNameToInfoMap &shaderMap : mData)
+ for (gl::ShaderType shaderType : gl::AllShaderTypes())
{
- shaderMap.clear();
+ for (VariableNameToInfoMap &typeMap : mData[shaderType])
+ {
+ typeMap.clear();
+ }
+ mNameToTypeMap[shaderType].clear();
}
}
-bool ShaderInterfaceVariableInfoMap::contains(gl::ShaderType shaderType,
- const std::string &variableName) const
-{
- return mData[shaderType].find(variableName) != mData[shaderType].end();
-}
-
const ShaderInterfaceVariableInfo &ShaderInterfaceVariableInfoMap::get(
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &variableName) const
{
- auto it = mData[shaderType].find(variableName);
- ASSERT(it != mData[shaderType].end());
+ auto it = mData[shaderType][variableType].find(variableName);
+ ASSERT(it != mData[shaderType][variableType].end());
return it->second;
}
-ShaderInterfaceVariableInfo &ShaderInterfaceVariableInfoMap::get(gl::ShaderType shaderType,
- const std::string &variableName)
+void ShaderInterfaceVariableInfoMap::setActiveStages(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName,
+ gl::ShaderBitSet activeStages)
+{
+ auto it = mData[shaderType][variableType].find(variableName);
+ ASSERT(it != mData[shaderType][variableType].end());
+ it->second.activeStages = activeStages;
+}
+
+ShaderInterfaceVariableInfo &ShaderInterfaceVariableInfoMap::getMutable(
+ gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName)
{
- auto it = mData[shaderType].find(variableName);
- ASSERT(it != mData[shaderType].end());
+ auto it = mData[shaderType][variableType].find(variableName);
+ ASSERT(it != mData[shaderType][variableType].end());
return it->second;
}
void ShaderInterfaceVariableInfoMap::markAsDuplicate(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &variableName)
{
- ASSERT(contains(shaderType, variableName));
- mData[shaderType][variableName].isDuplicate = true;
+ ASSERT(hasVariable(shaderType, variableName));
+ mData[shaderType][variableType][variableName].isDuplicate = true;
}
ShaderInterfaceVariableInfo &ShaderInterfaceVariableInfoMap::add(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &variableName)
{
- ASSERT(!contains(shaderType, variableName));
- return mData[shaderType][variableName];
+ ASSERT(!hasVariable(shaderType, variableName));
+ mNameToTypeMap[shaderType][variableName] = variableType;
+ return mData[shaderType][variableType][variableName];
}
ShaderInterfaceVariableInfo &ShaderInterfaceVariableInfoMap::addOrGet(
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &variableName)
{
- return mData[shaderType][variableName];
+ mNameToTypeMap[shaderType][variableName] = variableType;
+ return mData[shaderType][variableType][variableName];
}
ShaderInterfaceVariableInfoMap::Iterator ShaderInterfaceVariableInfoMap::getIterator(
- gl::ShaderType shaderType) const
+ gl::ShaderType shaderType,
+ ShaderVariableType variableType) const
{
- return Iterator(mData[shaderType].begin(), mData[shaderType].end());
+ return Iterator(mData[shaderType][variableType].begin(), mData[shaderType][variableType].end());
}
+bool ShaderInterfaceVariableInfoMap::hasVariable(gl::ShaderType shaderType,
+ const std::string &variableName) const
+{
+ auto iter = mNameToTypeMap[shaderType].find(variableName);
+ return (iter != mNameToTypeMap[shaderType].end());
+}
+
+const ShaderInterfaceVariableInfo &ShaderInterfaceVariableInfoMap::getVariableByName(
+ gl::ShaderType shaderType,
+ const std::string &variableName) const
+{
+ auto iter = mNameToTypeMap[shaderType].find(variableName);
+ ASSERT(iter != mNameToTypeMap[shaderType].end());
+ ShaderVariableType variableType = iter->second;
+ return get(shaderType, variableType, variableName);
+}
+
+bool ShaderInterfaceVariableInfoMap::hasTransformFeedbackInfo(gl::ShaderType shaderType,
+ uint32_t bufferIndex) const
+{
+ std::string bufferName = rx::GetXfbBufferName(bufferIndex);
+ return hasVariable(shaderType, bufferName);
+}
} // namespace rx
diff --git a/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h b/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h
index 0040333d4e..f62e3b81d1 100644
--- a/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h
+++ b/src/libANGLE/renderer/ShaderInterfaceVariableInfoMap.h
@@ -18,6 +18,24 @@
namespace rx
{
+enum class ShaderVariableType
+{
+ AtomicCounter,
+ Attribute,
+ DefaultUniform,
+ DriverUniform,
+ FramebufferFetch,
+ Image,
+ Output,
+ SecondaryOutput,
+ ShaderStorageBuffer,
+ Texture,
+ TransformFeedback,
+ UniformBuffer,
+ Varying,
+ EnumCount,
+};
+
// TODO: http://anglebug.com/4524: Need a different hash key than a string, since that's slow to
// calculate.
class ShaderInterfaceVariableInfoMap final : angle::NonCopyable
@@ -27,17 +45,45 @@ class ShaderInterfaceVariableInfoMap final : angle::NonCopyable
~ShaderInterfaceVariableInfoMap();
void clear();
- bool contains(gl::ShaderType shaderType, const std::string &variableName) const;
- const ShaderInterfaceVariableInfo &get(gl::ShaderType shaderType,
- const std::string &variableName) const;
- ShaderInterfaceVariableInfo &get(gl::ShaderType shaderType, const std::string &variableName);
- ShaderInterfaceVariableInfo &add(gl::ShaderType shaderType, const std::string &variableName);
- void markAsDuplicate(gl::ShaderType shaderType, const std::string &variableName);
+ ShaderInterfaceVariableInfo &add(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName);
+ void markAsDuplicate(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName);
ShaderInterfaceVariableInfo &addOrGet(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &variableName);
- size_t variableCount(gl::ShaderType shaderType) const { return mData[shaderType].size(); }
+ size_t variableCount(gl::ShaderType shaderType, ShaderVariableType variableType) const
+ {
+ return mData[shaderType][variableType].size();
+ }
+
+ void setActiveStages(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName,
+ gl::ShaderBitSet activeStages);
+ ShaderInterfaceVariableInfo &getMutable(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName);
+
+ const ShaderInterfaceVariableInfo &getDefaultUniformInfo(gl::ShaderType shaderType) const;
+ const ShaderInterfaceVariableInfo &getIndexedVariableInfo(
+ const gl::ProgramExecutable &executable,
+ gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ uint32_t variableIndex) const;
+ bool hasAtomicCounterInfo(gl::ShaderType shaderType) const;
+ const ShaderInterfaceVariableInfo &getAtomicCounterInfo(gl::ShaderType shaderType) const;
+ const ShaderInterfaceVariableInfo &getFramebufferFetchInfo(
+ const gl::ProgramExecutable &executable,
+ gl::ShaderType shaderType) const;
+ bool hasTransformFeedbackInfo(gl::ShaderType shaderType, uint32_t bufferIndex) const;
+ const ShaderInterfaceVariableInfo &getTransformFeedbackInfo(gl::ShaderType shaderType,
+ uint32_t bufferIndex) const;
using VariableNameToInfoMap = angle::HashMap<std::string, ShaderInterfaceVariableInfo>;
+ using VariableTypeToInfoMap = angle::PackedEnumMap<ShaderVariableType, VariableNameToInfoMap>;
class Iterator final
{
@@ -54,11 +100,104 @@ class ShaderInterfaceVariableInfoMap final : angle::NonCopyable
VariableNameToInfoMap::const_iterator mEndIt;
};
- Iterator getIterator(gl::ShaderType shaderType) const;
+ Iterator getIterator(gl::ShaderType shaderType, ShaderVariableType variableType) const;
+
+ bool hasVariable(gl::ShaderType shaderType, const std::string &variableName) const;
+ const ShaderInterfaceVariableInfo &getVariableByName(gl::ShaderType shaderType,
+ const std::string &variableName) const;
private:
- gl::ShaderMap<VariableNameToInfoMap> mData;
+ const ShaderInterfaceVariableInfo &get(gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ const std::string &variableName) const;
+ gl::ShaderMap<VariableTypeToInfoMap> mData;
+ gl::ShaderMap<angle::HashMap<std::string, ShaderVariableType>> mNameToTypeMap;
};
+ANGLE_INLINE const ShaderInterfaceVariableInfo &
+ShaderInterfaceVariableInfoMap::getDefaultUniformInfo(gl::ShaderType shaderType) const
+{
+ const char *uniformName = kDefaultUniformNames[shaderType];
+ return get(shaderType, ShaderVariableType::DefaultUniform, uniformName);
+}
+
+ANGLE_INLINE const ShaderInterfaceVariableInfo &
+ShaderInterfaceVariableInfoMap::getIndexedVariableInfo(const gl::ProgramExecutable &executable,
+ gl::ShaderType shaderType,
+ ShaderVariableType variableType,
+ uint32_t variableIndex) const
+{
+ switch (variableType)
+ {
+ case ShaderVariableType::Image:
+ {
+ const std::vector<gl::LinkedUniform> &uniforms = executable.getUniforms();
+ uint32_t uniformIndex = executable.getUniformIndexFromImageIndex(variableIndex);
+ const gl::LinkedUniform &imageUniform = uniforms[uniformIndex];
+ const std::string samplerName = GlslangGetMappedSamplerName(imageUniform.name);
+ return get(shaderType, variableType, samplerName);
+ }
+ case ShaderVariableType::ShaderStorageBuffer:
+ {
+ const std::vector<gl::InterfaceBlock> &blocks = executable.getShaderStorageBlocks();
+ const gl::InterfaceBlock &block = blocks[variableIndex];
+ const std::string blockName = block.mappedName;
+ return get(shaderType, variableType, blockName);
+ }
+ case ShaderVariableType::Texture:
+ {
+ const std::vector<gl::LinkedUniform> &uniforms = executable.getUniforms();
+ uint32_t uniformIndex = executable.getUniformIndexFromSamplerIndex(variableIndex);
+ const gl::LinkedUniform &samplerUniform = uniforms[uniformIndex];
+ const std::string samplerName = GlslangGetMappedSamplerName(samplerUniform.name);
+ return get(shaderType, variableType, samplerName);
+ }
+ case ShaderVariableType::UniformBuffer:
+ {
+ const std::vector<gl::InterfaceBlock> &blocks = executable.getUniformBlocks();
+ const gl::InterfaceBlock &block = blocks[variableIndex];
+ const std::string blockName = block.mappedName;
+ return get(shaderType, variableType, blockName);
+ }
+
+ default:
+ break;
+ }
+
+ UNREACHABLE();
+ return mData[shaderType].begin()->begin()->second;
+}
+
+ANGLE_INLINE bool ShaderInterfaceVariableInfoMap::hasAtomicCounterInfo(
+ gl::ShaderType shaderType) const
+{
+ return !mData[shaderType][ShaderVariableType::AtomicCounter].empty();
+}
+
+ANGLE_INLINE const ShaderInterfaceVariableInfo &
+ShaderInterfaceVariableInfoMap::getAtomicCounterInfo(gl::ShaderType shaderType) const
+{
+ std::string blockName(sh::vk::kAtomicCountersBlockName);
+ return get(shaderType, ShaderVariableType::AtomicCounter, blockName);
+}
+
+ANGLE_INLINE const ShaderInterfaceVariableInfo &
+ShaderInterfaceVariableInfoMap::getFramebufferFetchInfo(const gl::ProgramExecutable &executable,
+ gl::ShaderType shaderType) const
+{
+ const std::vector<gl::LinkedUniform> &uniforms = executable.getUniforms();
+ const uint32_t baseUniformIndex = executable.getFragmentInoutRange().low();
+ const gl::LinkedUniform &baseInputAttachment = uniforms.at(baseUniformIndex);
+ std::string baseMappedName = baseInputAttachment.mappedName;
+ return get(shaderType, ShaderVariableType::FramebufferFetch, baseMappedName);
+}
+
+ANGLE_INLINE const ShaderInterfaceVariableInfo &
+ShaderInterfaceVariableInfoMap::getTransformFeedbackInfo(gl::ShaderType shaderType,
+ uint32_t bufferIndex) const
+{
+ const std::string bufferName = GetXfbBufferName(bufferIndex);
+ return get(shaderType, ShaderVariableType::TransformFeedback, bufferName);
+}
} // namespace rx
#endif // LIBANGLE_RENDERER_SHADERINTERFACEVARIABLEINFOMAP_H_
diff --git a/src/libANGLE/renderer/glslang_wrapper_utils.cpp b/src/libANGLE/renderer/glslang_wrapper_utils.cpp
index eced0ce2bf..f1fc5dc8f7 100644
--- a/src/libANGLE/renderer/glslang_wrapper_utils.cpp
+++ b/src/libANGLE/renderer/glslang_wrapper_utils.cpp
@@ -92,6 +92,7 @@ uint32_t CountExplicitOutputs(OutputIter outputsBegin,
ShaderInterfaceVariableInfo *AddResourceInfoToAllStages(ShaderInterfaceVariableInfoMap *infoMap,
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &varName,
uint32_t descriptorSet,
uint32_t binding)
@@ -99,7 +100,7 @@ ShaderInterfaceVariableInfo *AddResourceInfoToAllStages(ShaderInterfaceVariableI
gl::ShaderBitSet allStages;
allStages.set();
- ShaderInterfaceVariableInfo &info = infoMap->add(shaderType, varName);
+ ShaderInterfaceVariableInfo &info = infoMap->add(shaderType, variableType, varName);
info.descriptorSet = descriptorSet;
info.binding = binding;
info.activeStages = allStages;
@@ -109,11 +110,12 @@ ShaderInterfaceVariableInfo *AddResourceInfoToAllStages(ShaderInterfaceVariableI
ShaderInterfaceVariableInfo *AddResourceInfo(ShaderInterfaceVariableInfoMap *infoMap,
gl::ShaderBitSet stages,
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &varName,
uint32_t descriptorSet,
uint32_t binding)
{
- ShaderInterfaceVariableInfo &info = infoMap->add(shaderType, varName);
+ ShaderInterfaceVariableInfo &info = infoMap->add(shaderType, variableType, varName);
info.descriptorSet = descriptorSet;
info.binding = binding;
info.activeStages = stages;
@@ -123,6 +125,7 @@ ShaderInterfaceVariableInfo *AddResourceInfo(ShaderInterfaceVariableInfoMap *inf
// Add location information for an in/out variable.
ShaderInterfaceVariableInfo *AddLocationInfo(ShaderInterfaceVariableInfoMap *infoMap,
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
const std::string &varName,
uint32_t location,
uint32_t component,
@@ -131,7 +134,7 @@ ShaderInterfaceVariableInfo *AddLocationInfo(ShaderInterfaceVariableInfoMap *inf
{
// The info map for this name may or may not exist already. This function merges the
// location/component information.
- ShaderInterfaceVariableInfo &info = infoMap->addOrGet(shaderType, varName);
+ ShaderInterfaceVariableInfo &info = infoMap->addOrGet(shaderType, variableType, varName);
ASSERT(info.descriptorSet == ShaderInterfaceVariableInfo::kInvalid);
ASSERT(info.binding == ShaderInterfaceVariableInfo::kInvalid);
@@ -161,7 +164,8 @@ void AddVaryingLocationInfo(ShaderInterfaceVariableInfoMap *infoMap,
const uint32_t component)
{
const std::string &name = isStructField ? ref.parentStructMappedName : ref.varying->mappedName;
- AddLocationInfo(infoMap, ref.stage, name, location, component, 0, 0);
+ AddLocationInfo(infoMap, ref.stage, ShaderVariableType::Varying, name, location, component, 0,
+ 0);
}
// Modify an existing out variable and add transform feedback information.
@@ -178,7 +182,8 @@ ShaderInterfaceVariableInfo *SetXfbInfo(ShaderInterfaceVariableInfoMap *infoMap,
uint32_t arrayIndex,
GLenum componentType)
{
- ShaderInterfaceVariableInfo &info = infoMap->get(shaderType, varName);
+ ShaderInterfaceVariableInfo &info =
+ infoMap->getMutable(shaderType, ShaderVariableType::Varying, varName);
ShaderInterfaceVariableXfbInfo *xfb = &info.xfb;
if (fieldIndex >= 0)
@@ -213,7 +218,7 @@ ShaderInterfaceVariableInfo *SetXfbInfo(ShaderInterfaceVariableInfoMap *infoMap,
}
void AssignTransformFeedbackEmulationBindings(gl::ShaderType shaderType,
- const gl::ProgramState &programState,
+ const gl::ProgramExecutable &programExecutable,
bool isTransformFeedbackStage,
GlslangProgramInterfaceInfo *programInterfaceInfo,
ShaderInterfaceVariableInfoMap *variableInfoMapOut)
@@ -221,10 +226,11 @@ void AssignTransformFeedbackEmulationBindings(gl::ShaderType shaderType,
size_t bufferCount = 0;
if (isTransformFeedbackStage)
{
- ASSERT(!programState.getLinkedTransformFeedbackVaryings().empty());
+ ASSERT(!programExecutable.getLinkedTransformFeedbackVaryings().empty());
const bool isInterleaved =
- programState.getTransformFeedbackBufferMode() == GL_INTERLEAVED_ATTRIBS;
- bufferCount = isInterleaved ? 1 : programState.getLinkedTransformFeedbackVaryings().size();
+ programExecutable.getTransformFeedbackBufferMode() == GL_INTERLEAVED_ATTRIBS;
+ bufferCount =
+ isInterleaved ? 1 : programExecutable.getLinkedTransformFeedbackVaryings().size();
}
// Add entries for the transform feedback buffers to the info map, so they can have correct
@@ -232,7 +238,7 @@ void AssignTransformFeedbackEmulationBindings(gl::ShaderType shaderType,
for (uint32_t bufferIndex = 0; bufferIndex < bufferCount; ++bufferIndex)
{
AddResourceInfo(variableInfoMapOut, gl::ShaderBitSet().set(shaderType), shaderType,
- GetXfbBufferName(bufferIndex),
+ ShaderVariableType::TransformFeedback, GetXfbBufferName(bufferIndex),
programInterfaceInfo->uniformsAndXfbDescriptorSetIndex,
programInterfaceInfo->currentUniformBindingIndex);
++programInterfaceInfo->currentUniformBindingIndex;
@@ -242,7 +248,8 @@ void AssignTransformFeedbackEmulationBindings(gl::ShaderType shaderType,
for (uint32_t bufferIndex = static_cast<uint32_t>(bufferCount);
bufferIndex < gl::IMPLEMENTATION_MAX_TRANSFORM_FEEDBACK_BUFFERS; ++bufferIndex)
{
- variableInfoMapOut->add(shaderType, GetXfbBufferName(bufferIndex));
+ variableInfoMapOut->add(shaderType, ShaderVariableType::TransformFeedback,
+ GetXfbBufferName(bufferIndex));
}
}
@@ -292,17 +299,17 @@ void AssignAttributeLocations(const gl::ProgramExecutable &programExecutable,
const uint8_t componentCount = isMatrix ? rowCount : colCount;
const uint8_t locationCount = isMatrix ? colCount : rowCount;
- AddLocationInfo(variableInfoMapOut, shaderType, attribute.mappedName, attribute.location,
+ AddLocationInfo(variableInfoMapOut, shaderType, ShaderVariableType::Attribute,
+ attribute.mappedName, attribute.location,
ShaderInterfaceVariableInfo::kInvalid, componentCount, locationCount);
}
}
-void AssignSecondaryOutputLocations(const gl::ProgramState &programState,
+void AssignSecondaryOutputLocations(const gl::ProgramExecutable &programExecutable,
ShaderInterfaceVariableInfoMap *variableInfoMapOut)
{
- const auto &secondaryOutputLocations =
- programState.getExecutable().getSecondaryOutputLocations();
- const auto &outputVariables = programState.getExecutable().getOutputVariables();
+ const auto &secondaryOutputLocations = programExecutable.getSecondaryOutputLocations();
+ const auto &outputVariables = programExecutable.getOutputVariables();
// Handle EXT_blend_func_extended secondary outputs (ones with index=1)
for (const gl::VariableLocation &outputLocation : secondaryOutputLocations)
@@ -317,9 +324,9 @@ void AssignSecondaryOutputLocations(const gl::ProgramState &programState,
location = outputVar.location;
}
- ShaderInterfaceVariableInfo *info =
- AddLocationInfo(variableInfoMapOut, gl::ShaderType::Fragment, outputVar.mappedName,
- location, ShaderInterfaceVariableInfo::kInvalid, 0, 0);
+ ShaderInterfaceVariableInfo *info = AddLocationInfo(
+ variableInfoMapOut, gl::ShaderType::Fragment, ShaderVariableType::SecondaryOutput,
+ outputVar.mappedName, location, ShaderInterfaceVariableInfo::kInvalid, 0, 0);
// If the shader source has not specified the index, specify it here.
if (outputVar.index == -1)
@@ -331,36 +338,36 @@ void AssignSecondaryOutputLocations(const gl::ProgramState &programState,
}
}
// Handle secondary outputs for ESSL version less than 3.00
- gl::Shader *fragmentShader = programState.getAttachedShader(gl::ShaderType::Fragment);
- if (fragmentShader && fragmentShader->getShaderVersion() == 100)
+ if (programExecutable.hasLinkedShaderStage(gl::ShaderType::Fragment) &&
+ programExecutable.getLinkedShaderVersion(gl::ShaderType::Fragment) == 100)
{
- const auto &shaderOutputs = fragmentShader->getActiveOutputVariables();
- for (const auto &outputVar : shaderOutputs)
+ const std::vector<sh::ShaderVariable> &shaderOutputs =
+ programExecutable.getOutputVariables();
+ for (const sh::ShaderVariable &outputVar : shaderOutputs)
{
if (outputVar.name == "gl_SecondaryFragColorEXT")
{
AddLocationInfo(variableInfoMapOut, gl::ShaderType::Fragment,
- "webgl_SecondaryFragColor", 0,
+ ShaderVariableType::SecondaryOutput, "webgl_SecondaryFragColor", 0,
ShaderInterfaceVariableInfo::kInvalid, 0, 0);
}
else if (outputVar.name == "gl_SecondaryFragDataEXT")
{
AddLocationInfo(variableInfoMapOut, gl::ShaderType::Fragment,
- "webgl_SecondaryFragData", 0, ShaderInterfaceVariableInfo::kInvalid,
- 0, 0);
+ ShaderVariableType::SecondaryOutput, "webgl_SecondaryFragData", 0,
+ ShaderInterfaceVariableInfo::kInvalid, 0, 0);
}
}
}
}
-void AssignOutputLocations(const gl::ProgramState &programState,
+void AssignOutputLocations(const gl::ProgramExecutable &programExecutable,
const gl::ShaderType shaderType,
ShaderInterfaceVariableInfoMap *variableInfoMapOut)
{
// Assign output locations for the fragment shader.
ASSERT(shaderType == gl::ShaderType::Fragment);
- const gl::ProgramExecutable &programExecutable = programState.getExecutable();
const auto &outputLocations = programExecutable.getOutputLocations();
const auto &outputVariables = programExecutable.getOutputVariables();
const std::array<std::string, 3> implicitOutputs = {"gl_FragDepth", "gl_SampleMask",
@@ -386,20 +393,23 @@ void AssignOutputLocations(const gl::ProgramState &programState,
implicitOutputs.begin(), implicitOutputs.end()) == 1);
}
- AddLocationInfo(variableInfoMapOut, shaderType, outputVar.mappedName, location,
- ShaderInterfaceVariableInfo::kInvalid, 0, 0);
+ AddLocationInfo(variableInfoMapOut, shaderType, ShaderVariableType::Output,
+ outputVar.mappedName, location, ShaderInterfaceVariableInfo::kInvalid,
+ 0, 0);
}
}
- AssignSecondaryOutputLocations(programState, variableInfoMapOut);
+ AssignSecondaryOutputLocations(programExecutable, variableInfoMapOut);
// When no fragment output is specified by the shader, the translator outputs webgl_FragColor or
// webgl_FragData. Add an entry for these. Even though the translator is already assigning
// location 0 to these entries, adding an entry for them here allows us to ASSERT that every
// shader interface variable is processed during the SPIR-V transformation. This is done when
// iterating the ids provided by OpEntryPoint.
- AddLocationInfo(variableInfoMapOut, shaderType, "webgl_FragColor", 0, 0, 0, 0);
- AddLocationInfo(variableInfoMapOut, shaderType, "webgl_FragData", 0, 0, 0, 0);
+ AddLocationInfo(variableInfoMapOut, shaderType, ShaderVariableType::Output, "webgl_FragColor",
+ 0, 0, 0, 0);
+ AddLocationInfo(variableInfoMapOut, shaderType, ShaderVariableType::Output, "webgl_FragData", 0,
+ 0, 0, 0);
}
void AssignVaryingLocations(const GlslangSourceOptions &options,
@@ -417,9 +427,9 @@ void AssignVaryingLocations(const GlslangSourceOptions &options,
{
uint32_t lineRasterEmulationPositionLocation = locationsUsedForEmulation++;
- AddLocationInfo(variableInfoMapOut, shaderType, sh::vk::kLineRasterEmulationPosition,
- lineRasterEmulationPositionLocation, ShaderInterfaceVariableInfo::kInvalid,
- 0, 0);
+ AddLocationInfo(variableInfoMapOut, shaderType, ShaderVariableType::Varying,
+ sh::vk::kLineRasterEmulationPosition, lineRasterEmulationPositionLocation,
+ ShaderInterfaceVariableInfo::kInvalid, 0, 0);
}
// Assign varying locations.
@@ -470,13 +480,14 @@ void AssignVaryingLocations(const GlslangSourceOptions &options,
// If name is already in the map, it will automatically have marked all other stages
// inactive.
- if (variableInfoMapOut->contains(shaderType, varyingName))
+ if (variableInfoMapOut->hasVariable(shaderType, varyingName))
{
continue;
}
// Otherwise, add an entry for it with all locations inactive.
- ShaderInterfaceVariableInfo &info = variableInfoMapOut->addOrGet(shaderType, varyingName);
+ ShaderInterfaceVariableInfo &info =
+ variableInfoMapOut->addOrGet(shaderType, ShaderVariableType::Varying, varyingName);
ASSERT(info.location == ShaderInterfaceVariableInfo::kInvalid);
}
@@ -488,7 +499,8 @@ void AssignVaryingLocations(const GlslangSourceOptions &options,
{
ASSERT(gl::IsBuiltInName(builtInName));
- ShaderInterfaceVariableInfo &info = variableInfoMapOut->addOrGet(shaderType, builtInName);
+ ShaderInterfaceVariableInfo &info =
+ variableInfoMapOut->addOrGet(shaderType, ShaderVariableType::Varying, builtInName);
info.activeStages.set(shaderType);
info.varyingIsOutput = true;
}
@@ -502,18 +514,19 @@ void AssignVaryingLocations(const GlslangSourceOptions &options,
ASSERT(gl::IsBuiltInName(builtInName));
ShaderInterfaceVariableInfo &info =
- variableInfoMapOut->addOrGet(shaderType, builtInName);
+ variableInfoMapOut->addOrGet(shaderType, ShaderVariableType::Varying, builtInName);
info.activeStages.set(shaderType);
info.varyingIsInput = true;
}
}
// Add an entry for gl_PerVertex, for use with transform feedback capture of built-ins.
- ShaderInterfaceVariableInfo &info = variableInfoMapOut->addOrGet(shaderType, "gl_PerVertex");
+ ShaderInterfaceVariableInfo &info =
+ variableInfoMapOut->addOrGet(shaderType, ShaderVariableType::Varying, "gl_PerVertex");
info.activeStages.set(shaderType);
}
-// Calculates XFB layout qualifier arguments for each tranform feedback varying. Stores calculated
+// Calculates XFB layout qualifier arguments for each transform feedback varying. Stores calculated
// values for the SPIR-V transformation.
void AssignTransformFeedbackQualifiers(const gl::ProgramExecutable &programExecutable,
const gl::VaryingPacking &varyingPacking,
@@ -679,13 +692,15 @@ void AssignUniformBindings(const GlslangSourceOptions &options,
if (programExecutable.hasLinkedShaderStage(shaderType))
{
AddResourceInfo(variableInfoMapOut, gl::ShaderBitSet().set(shaderType), shaderType,
- kDefaultUniformNames[shaderType],
+ ShaderVariableType::DefaultUniform, kDefaultUniformNames[shaderType],
programInterfaceInfo->uniformsAndXfbDescriptorSetIndex,
programInterfaceInfo->currentUniformBindingIndex);
++programInterfaceInfo->currentUniformBindingIndex;
// Assign binding to the driver uniforms block
- AddResourceInfoToAllStages(variableInfoMapOut, shaderType, sh::vk::kDriverUniformsBlockName,
+ AddResourceInfoToAllStages(variableInfoMapOut, shaderType,
+ ShaderVariableType::DriverUniform,
+ sh::vk::kDriverUniformsBlockName,
programInterfaceInfo->driverUniformsDescriptorSetIndex, 0);
}
}
@@ -705,6 +720,7 @@ bool InsertIfAbsent(UniformBindingIndexMap *uniformBindingIndexMapOut,
}
void AddAndUpdateResourceMaps(const gl::ShaderType shaderType,
+ ShaderVariableType variableType,
std::string name,
uint32_t *binding,
bool updateBinding,
@@ -721,8 +737,8 @@ void AddAndUpdateResourceMaps(const gl::ShaderType shaderType,
}
UniformBindingInfo &uniformBindingInfo = (*uniformBindingIndexMapOut)[name];
uniformBindingInfo.shaderBitSet.set(shaderType);
- AddResourceInfo(variableInfoMapOut, uniformBindingInfo.shaderBitSet, shaderType, name,
- descriptorSetIndex, uniformBindingInfo.bindingIndex);
+ AddResourceInfo(variableInfoMapOut, uniformBindingInfo.shaderBitSet, shaderType, variableType,
+ name, descriptorSetIndex, uniformBindingInfo.bindingIndex);
if (!isUniqueName)
{
if (updateFrontShaderType)
@@ -731,12 +747,12 @@ void AddAndUpdateResourceMaps(const gl::ShaderType shaderType,
}
else
{
- variableInfoMapOut->markAsDuplicate(shaderType, name);
+ variableInfoMapOut->markAsDuplicate(shaderType, variableType, name);
}
}
- ShaderInterfaceVariableInfo &info =
- variableInfoMapOut->get(uniformBindingInfo.frontShaderType, name);
- info.activeStages = uniformBindingInfo.shaderBitSet;
+
+ variableInfoMapOut->setActiveStages(uniformBindingInfo.frontShaderType, variableType, name,
+ uniformBindingInfo.shaderBitSet);
}
void AssignInputAttachmentBindings(const GlslangSourceOptions &options,
@@ -764,8 +780,9 @@ void AssignInputAttachmentBindings(const GlslangSourceOptions &options,
{
uint32_t inputAttachmentBindingIndex =
baseInputAttachmentBindingIndex + inputAttachmentUniform.location;
- AddAndUpdateResourceMaps(shaderType, mappedInputAttachmentName,
- &(inputAttachmentBindingIndex), false, false,
+ AddAndUpdateResourceMaps(shaderType, ShaderVariableType::FramebufferFetch,
+ mappedInputAttachmentName, &(inputAttachmentBindingIndex),
+ false, false,
programInterfaceInfo->shaderResourceDescriptorSetIndex,
uniformBindingIndexMapOut, variableInfoMapOut);
hasFragmentInOutVars = true;
@@ -785,6 +802,7 @@ void AssignInterfaceBlockBindings(const GlslangSourceOptions &options,
const gl::ProgramExecutable &programExecutable,
const std::vector<gl::InterfaceBlock> &blocks,
const gl::ShaderType shaderType,
+ ShaderVariableType variableType,
GlslangProgramInterfaceInfo *programInterfaceInfo,
UniformBindingIndexMap *uniformBindingIndexMapOut,
ShaderInterfaceVariableInfoMap *variableInfoMapOut)
@@ -796,7 +814,7 @@ void AssignInterfaceBlockBindings(const GlslangSourceOptions &options,
// TODO: http://anglebug.com/4523: All blocks should be active
if (programExecutable.hasLinkedShaderStage(shaderType) && block.isActive(shaderType))
{
- AddAndUpdateResourceMaps(shaderType, block.mappedName,
+ AddAndUpdateResourceMaps(shaderType, variableType, block.mappedName,
&(programInterfaceInfo->currentShaderResourceBindingIndex),
true, false,
programInterfaceInfo->shaderResourceDescriptorSetIndex,
@@ -821,7 +839,8 @@ void AssignAtomicCounterBufferBindings(const GlslangSourceOptions &options,
if (programExecutable.hasLinkedShaderStage(shaderType))
{
- AddAndUpdateResourceMaps(shaderType, sh::vk::kAtomicCountersBlockName,
+ AddAndUpdateResourceMaps(shaderType, ShaderVariableType::AtomicCounter,
+ sh::vk::kAtomicCountersBlockName,
&(programInterfaceInfo->currentShaderResourceBindingIndex), true,
false, programInterfaceInfo->shaderResourceDescriptorSetIndex,
uniformBindingIndexMapOut, variableInfoMapOut);
@@ -853,7 +872,7 @@ void AssignImageBindings(const GlslangSourceOptions &options,
updateFrontShaderType =
!imageUniform.isActive(uniformBindingInfo.frontShaderType);
}
- AddAndUpdateResourceMaps(shaderType, name,
+ AddAndUpdateResourceMaps(shaderType, ShaderVariableType::Image, name,
&(programInterfaceInfo->currentShaderResourceBindingIndex),
true, updateFrontShaderType,
programInterfaceInfo->shaderResourceDescriptorSetIndex,
@@ -878,14 +897,14 @@ void AssignNonTextureBindings(const GlslangSourceOptions &options,
const std::vector<gl::InterfaceBlock> &uniformBlocks = programExecutable.getUniformBlocks();
AssignInterfaceBlockBindings(options, programExecutable, uniformBlocks, shaderType,
- programInterfaceInfo, uniformBindingIndexMapOut,
- variableInfoMapOut);
+ ShaderVariableType::UniformBuffer, programInterfaceInfo,
+ uniformBindingIndexMapOut, variableInfoMapOut);
const std::vector<gl::InterfaceBlock> &storageBlocks =
programExecutable.getShaderStorageBlocks();
AssignInterfaceBlockBindings(options, programExecutable, storageBlocks, shaderType,
- programInterfaceInfo, uniformBindingIndexMapOut,
- variableInfoMapOut);
+ ShaderVariableType::ShaderStorageBuffer, programInterfaceInfo,
+ uniformBindingIndexMapOut, variableInfoMapOut);
const std::vector<gl::AtomicCounterBuffer> &atomicCounterBuffers =
programExecutable.getAtomicCounterBuffers();
@@ -926,7 +945,7 @@ void AssignTextureBindings(const GlslangSourceOptions &options,
if (programExecutable.hasLinkedShaderStage(shaderType) &&
samplerUniform.isActive(shaderType))
{
- AddAndUpdateResourceMaps(shaderType, samplerName,
+ AddAndUpdateResourceMaps(shaderType, ShaderVariableType::Texture, samplerName,
&(programInterfaceInfo->currentTextureBindingIndex), true,
false, programInterfaceInfo->textureDescriptorSetIndex,
uniformBindingIndexMapOut, variableInfoMapOut);
@@ -2133,10 +2152,10 @@ TransformationState SpirvTransformFeedbackCodeGenerator::transformVariable(
{
// The ANGLEXfbN variables are unconditionally generated and may be inactive. Remove these
// variables in that case.
- ASSERT(&info == &variableInfoMap.get(shaderType, GetXfbBufferName(0)) ||
- &info == &variableInfoMap.get(shaderType, GetXfbBufferName(1)) ||
- &info == &variableInfoMap.get(shaderType, GetXfbBufferName(2)) ||
- &info == &variableInfoMap.get(shaderType, GetXfbBufferName(3)));
+ ASSERT(&info == &variableInfoMap.getVariableByName(shaderType, GetXfbBufferName(0)) ||
+ &info == &variableInfoMap.getVariableByName(shaderType, GetXfbBufferName(1)) ||
+ &info == &variableInfoMap.getVariableByName(shaderType, GetXfbBufferName(2)) ||
+ &info == &variableInfoMap.getVariableByName(shaderType, GetXfbBufferName(3)));
// Drop the declaration.
return TransformationState::Transformed;
@@ -3200,7 +3219,7 @@ void SpirvTransformer::writeOutputPrologue()
return;
}
- // Whether gl_Position should be transformed to account for prerotation and Vulkan clip space.
+ // Whether gl_Position should be transformed to account for pre-rotation and Vulkan clip space.
const bool transformPosition =
!IsRotationIdentity(mOptions.preRotation) || mOptions.transformPositionToVulkanClipSpace;
const bool isXfbExtensionStage =
@@ -3252,8 +3271,9 @@ void SpirvTransformer::visitDecorate(const uint32_t *instruction)
spirv::LiteralString name = mIds.getName(id);
ASSERT(name != nullptr);
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(mOptions.shaderType, name);
- mVariableInfoById[id] = &info;
+ const ShaderInterfaceVariableInfo &info =
+ mVariableInfoMap.getVariableByName(mOptions.shaderType, name);
+ mVariableInfoById[id] = &info;
}
}
@@ -3274,12 +3294,13 @@ void SpirvTransformer::visitMemberName(const uint32_t *instruction)
spirv::LiteralString name;
spirv::ParseMemberName(instruction, &id, &member, &name);
- if (!mVariableInfoMap.contains(mOptions.shaderType, name))
+ if (!mVariableInfoMap.hasVariable(mOptions.shaderType, name))
{
return;
}
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(mOptions.shaderType, name);
+ const ShaderInterfaceVariableInfo &info =
+ mVariableInfoMap.getVariableByName(mOptions.shaderType, name);
mIds.visitMemberName(info, id, member, name);
}
@@ -3365,7 +3386,8 @@ void SpirvTransformer::visitVariable(const uint32_t *instruction)
}
// Every shader interface variable should have an associated data.
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(mOptions.shaderType, name);
+ const ShaderInterfaceVariableInfo &info =
+ mVariableInfoMap.getVariableByName(mOptions.shaderType, name);
// Associate the id of this name with its info.
mVariableInfoById[id] = &info;
@@ -4672,7 +4694,8 @@ bool HasAliasingAttributes(const ShaderInterfaceVariableInfoMap &variableInfoMap
{
gl::AttributesMask isLocationAssigned;
- for (const auto &infoIter : variableInfoMap.getIterator(gl::ShaderType::Vertex))
+ for (const auto &infoIter :
+ variableInfoMap.getIterator(gl::ShaderType::Vertex, ShaderVariableType::Attribute))
{
const ShaderInterfaceVariableInfo &info = infoIter.second;
@@ -4772,7 +4795,7 @@ std::string GetXfbBufferName(const uint32_t bufferIndex)
}
void GlslangAssignLocations(const GlslangSourceOptions &options,
- const gl::ProgramState &programState,
+ const gl::ProgramExecutable &programExecutable,
const gl::ProgramVaryingPacking &varyingPacking,
const gl::ShaderType shaderType,
const gl::ShaderType frontShaderType,
@@ -4781,13 +4804,11 @@ void GlslangAssignLocations(const GlslangSourceOptions &options,
UniformBindingIndexMap *uniformBindingIndexMapOut,
ShaderInterfaceVariableInfoMap *variableInfoMapOut)
{
- const gl::ProgramExecutable &programExecutable = programState.getExecutable();
-
// Assign outputs to the fragment shader, if any.
if ((shaderType == gl::ShaderType::Fragment) &&
programExecutable.hasLinkedShaderStage(gl::ShaderType::Fragment))
{
- AssignOutputLocations(programState, gl::ShaderType::Fragment, variableInfoMapOut);
+ AssignOutputLocations(programExecutable, gl::ShaderType::Fragment, variableInfoMapOut);
}
// Assign attributes to the vertex shader, if any.
@@ -4797,7 +4818,7 @@ void GlslangAssignLocations(const GlslangSourceOptions &options,
AssignAttributeLocations(programExecutable, gl::ShaderType::Vertex, variableInfoMapOut);
}
- if (!programExecutable.hasLinkedShaderStage(gl::ShaderType::Compute))
+ if (programExecutable.hasLinkedGraphicsShader())
{
const gl::VaryingPacking &inputPacking = varyingPacking.getInputPacking(shaderType);
const gl::VaryingPacking &outputPacking = varyingPacking.getOutputPacking(shaderType);
@@ -4839,13 +4860,14 @@ void GlslangAssignLocations(const GlslangSourceOptions &options,
isTransformFeedbackStage =
isTransformFeedbackStage && options.enableTransformFeedbackEmulation;
- AssignTransformFeedbackEmulationBindings(shaderType, programState, isTransformFeedbackStage,
- programInterfaceInfo, variableInfoMapOut);
+ AssignTransformFeedbackEmulationBindings(shaderType, programExecutable,
+ isTransformFeedbackStage, programInterfaceInfo,
+ variableInfoMapOut);
}
}
void GlslangAssignTransformFeedbackLocations(gl::ShaderType shaderType,
- const gl::ProgramState &programState,
+ const gl::ProgramExecutable &programExecutable,
bool isTransformFeedbackStage,
GlslangProgramInterfaceInfo *programInterfaceInfo,
ShaderInterfaceVariableInfoMap *variableInfoMapOut)
@@ -4854,7 +4876,7 @@ void GlslangAssignTransformFeedbackLocations(gl::ShaderType shaderType,
// captured through ANGLEXfbPosition.
const std::vector<gl::TransformFeedbackVarying> &tfVaryings =
- programState.getLinkedTransformFeedbackVaryings();
+ programExecutable.getLinkedTransformFeedbackVaryings();
bool capturesPosition = false;
@@ -4876,7 +4898,8 @@ void GlslangAssignTransformFeedbackLocations(gl::ShaderType shaderType,
if (capturesPosition)
{
- AddLocationInfo(variableInfoMapOut, shaderType, sh::vk::kXfbExtensionPositionOutName,
+ AddLocationInfo(variableInfoMapOut, shaderType, ShaderVariableType::Varying,
+ sh::vk::kXfbExtensionPositionOutName,
programInterfaceInfo->locationsUsedForXfbExtension, 0, 0, 0);
++programInterfaceInfo->locationsUsedForXfbExtension;
}
@@ -4884,7 +4907,8 @@ void GlslangAssignTransformFeedbackLocations(gl::ShaderType shaderType,
{
// Make sure this varying is removed from the other stages, or if position is not captured
// at all.
- variableInfoMapOut->add(shaderType, sh::vk::kXfbExtensionPositionOutName);
+ variableInfoMapOut->add(shaderType, ShaderVariableType::Varying,
+ sh::vk::kXfbExtensionPositionOutName);
}
}
@@ -4901,29 +4925,30 @@ void GlslangGetShaderSpirvCode(const GlslangSourceOptions &options,
(*spirvBlobsOut)[shaderType] = glShader ? &glShader->getCompiledBinary() : nullptr;
}
+ const gl::ProgramExecutable &programExecutable = programState.getExecutable();
gl::ShaderType xfbStage = programState.getAttachedTransformFeedbackStage();
gl::ShaderType frontShaderType = gl::ShaderType::InvalidEnum;
// This should be done before assigning varying location. Otherwise, We can encounter shader
// interface mismatching problem in case the transformFeedback stage is not Vertex stage.
- for (const gl::ShaderType shaderType : programState.getExecutable().getLinkedShaderStages())
+ for (const gl::ShaderType shaderType : programExecutable.getLinkedShaderStages())
{
// Assign location to varyings generated for transform feedback capture
- const bool isXfbStage =
- shaderType == xfbStage && !programState.getLinkedTransformFeedbackVaryings().empty();
+ const bool isXfbStage = shaderType == xfbStage &&
+ !programExecutable.getLinkedTransformFeedbackVaryings().empty();
if (options.supportsTransformFeedbackExtension &&
gl::ShaderTypeSupportsTransformFeedback(shaderType))
{
- GlslangAssignTransformFeedbackLocations(shaderType, programState, isXfbStage,
+ GlslangAssignTransformFeedbackLocations(shaderType, programExecutable, isXfbStage,
programInterfaceInfo, variableInfoMapOut);
}
}
UniformBindingIndexMap uniformBindingIndexMap;
- for (const gl::ShaderType shaderType : programState.getExecutable().getLinkedShaderStages())
+ for (const gl::ShaderType shaderType : programExecutable.getLinkedShaderStages())
{
- const bool isXfbStage =
- shaderType == xfbStage && !programState.getLinkedTransformFeedbackVaryings().empty();
- GlslangAssignLocations(options, programState, resources.varyingPacking, shaderType,
+ const bool isXfbStage = shaderType == xfbStage &&
+ !programExecutable.getLinkedTransformFeedbackVaryings().empty();
+ GlslangAssignLocations(options, programExecutable, resources.varyingPacking, shaderType,
frontShaderType, isXfbStage, programInterfaceInfo,
&uniformBindingIndexMap, variableInfoMapOut);
diff --git a/src/libANGLE/renderer/glslang_wrapper_utils.h b/src/libANGLE/renderer/glslang_wrapper_utils.h
index d27715d949..285734ba96 100644
--- a/src/libANGLE/renderer/glslang_wrapper_utils.h
+++ b/src/libANGLE/renderer/glslang_wrapper_utils.h
@@ -144,7 +144,7 @@ std::string GlslangGetMappedSamplerName(const std::string &originalName);
std::string GetXfbBufferName(const uint32_t bufferIndex);
void GlslangAssignLocations(const GlslangSourceOptions &options,
- const gl::ProgramState &programState,
+ const gl::ProgramExecutable &programExecutable,
const gl::ProgramVaryingPacking &varyingPacking,
const gl::ShaderType shaderType,
const gl::ShaderType frontShaderType,
@@ -154,7 +154,7 @@ void GlslangAssignLocations(const GlslangSourceOptions &options,
ShaderInterfaceVariableInfoMap *variableInfoMapOut);
void GlslangAssignTransformFeedbackLocations(gl::ShaderType shaderType,
- const gl::ProgramState &programState,
+ const gl::ProgramExecutable &programExecutable,
bool isTransformFeedbackStage,
GlslangProgramInterfaceInfo *programInterfaceInfo,
ShaderInterfaceVariableInfoMap *variableInfoMapOut);
diff --git a/src/libANGLE/renderer/metal/mtl_glslang_utils.mm b/src/libANGLE/renderer/metal/mtl_glslang_utils.mm
index e2ecc03598..f70742ed69 100644
--- a/src/libANGLE/renderer/metal/mtl_glslang_utils.mm
+++ b/src/libANGLE/renderer/metal/mtl_glslang_utils.mm
@@ -393,15 +393,17 @@ void GlslangGetShaderSpirvCode(const gl::ProgramState &programState,
rx::GlslangGetShaderSpirvCode(options, programState, resources, &programInterfaceInfo,
spirvBlobsOut, variableInfoMapOut);
+ const gl::ProgramExecutable &programExecutable = programState.getExecutable();
+
// Fill variable info map with transform feedback enabled.
- if (!programState.getLinkedTransformFeedbackVaryings().empty())
+ if (!programExecutable.getLinkedTransformFeedbackVaryings().empty())
{
GlslangProgramInterfaceInfo xfbOnlyInterfaceInfo;
ResetGlslangProgramInterfaceInfo(&xfbOnlyInterfaceInfo);
options.enableTransformFeedbackEmulation = true;
UniformBindingIndexMap uniformBindingIndexMap;
- GlslangAssignLocations(options, programState, resources.varyingPacking,
+ GlslangAssignLocations(options, programExecutable, resources.varyingPacking,
gl::ShaderType::Vertex, gl::ShaderType::InvalidEnum, true,
&xfbOnlyInterfaceInfo, &uniformBindingIndexMap,
xfbOnlyVSVariableInfoMapOut);
@@ -457,11 +459,10 @@ angle::Result SpirvCodeToMsl(Context *context,
angle::HashMap<uint32_t, uint32_t> xfbOriginalBindings;
for (uint32_t bufferIdx = 0; bufferIdx < kMaxShaderXFBs; ++bufferIdx)
{
- std::string bufferName = rx::GetXfbBufferName(bufferIdx);
- if (xfbVSVariableInfoMap.contains(gl::ShaderType::Vertex, bufferName))
+ if (xfbVSVariableInfoMap.hasTransformFeedbackInfo(gl::ShaderType::Vertex, bufferIdx))
{
const ShaderInterfaceVariableInfo &info =
- xfbVSVariableInfoMap.get(gl::ShaderType::Vertex, bufferName);
+ xfbVSVariableInfoMap.getTransformFeedbackInfo(gl::ShaderType::Vertex, bufferIdx);
xfbOriginalBindings[info.binding] = bufferIdx;
}
}
diff --git a/src/libANGLE/renderer/metal/mtl_utils.mm b/src/libANGLE/renderer/metal/mtl_utils.mm
index ced5a7bd5d..d70684cac3 100644
--- a/src/libANGLE/renderer/metal/mtl_utils.mm
+++ b/src/libANGLE/renderer/metal/mtl_utils.mm
@@ -278,19 +278,20 @@ bool GetCompressedBufferSizeAndRowLengthForTextureWithFormat(const TextureRef &t
{
gl::Extents size = texture->size(index);
GLuint bufferSizeInBytes;
- uint32_t bufferRowLength;
+ GLuint bufferRowInBytes;
if (!textureObjFormat.intendedInternalFormat().computeCompressedImageSize(size,
&bufferSizeInBytes))
{
return false;
}
- if (!textureObjFormat.intendedInternalFormat().computeBufferRowLength(size.width,
- &bufferRowLength))
+ size.height = 1;
+ if (!textureObjFormat.intendedInternalFormat().computeCompressedImageSize(size,
+ &bufferRowInBytes))
{
return false;
}
*bytesPerImageOut = bufferSizeInBytes;
- *bytesPerRowOut = bufferRowLength;
+ *bytesPerRowOut = bufferRowInBytes;
return true;
}
static angle::Result InitializeCompressedTextureContents(const gl::Context *context,
diff --git a/src/libANGLE/renderer/vulkan/BufferVk.cpp b/src/libANGLE/renderer/vulkan/BufferVk.cpp
index 9c9cee78d8..120db49aae 100644
--- a/src/libANGLE/renderer/vulkan/BufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/BufferVk.cpp
@@ -548,7 +548,7 @@ angle::Result BufferVk::ghostMappedBuffer(ContextVk *contextVk,
GLbitfield access,
void **mapPtr)
{
- // We should't get to here if it is external memory
+ // We shouldn't get here if it is external memory
ASSERT(!isExternalBuffer());
++contextVk->getPerfCounters().buffersGhosted;
@@ -558,9 +558,6 @@ angle::Result BufferVk::ghostMappedBuffer(ContextVk *contextVk,
// case the caller only updates a portion of the new buffer.
vk::BufferHelper src = std::move(mBuffer);
- // Retain it to prevent acquireBufferHelper from actually releasing it.
- src.retainReadOnly(&contextVk->getResourceUseList());
-
ANGLE_TRY(acquireBufferHelper(contextVk, static_cast<size_t>(mState.getSize()),
BufferUpdateType::ContentsUpdate));
@@ -861,12 +858,6 @@ angle::Result BufferVk::acquireAndUpdate(ContextVk *contextVk,
{
src = std::move(mBuffer);
- // It's possible for acquireBufferHelper() to garbage collect the original (src) buffer
- // before copyFromBuffer() has a chance to retain it, so retain it now. This may end up
- // double-retaining the buffer, which is a necessary side-effect to prevent a
- // use-after-free.
- src.retainReadOnly(&contextVk->getResourceUseList());
-
// The total bytes that we need to copy from old buffer to new buffer
size_t copySize = bufferSize - updateSize;
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.cpp b/src/libANGLE/renderer/vulkan/ContextVk.cpp
index 90ecf42b2c..bdc4ea1726 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ContextVk.cpp
@@ -827,6 +827,7 @@ ContextVk::ContextVk(const gl::State &state, gl::ErrorSet *errorSet, RendererVk
mGraphicsDirtyBitHandlers[DIRTY_BIT_VERTEX_BUFFERS] =
&ContextVk::handleDirtyGraphicsVertexBuffers;
mGraphicsDirtyBitHandlers[DIRTY_BIT_INDEX_BUFFER] = &ContextVk::handleDirtyGraphicsIndexBuffer;
+ mGraphicsDirtyBitHandlers[DIRTY_BIT_UNIFORMS] = &ContextVk::handleDirtyGraphicsUniforms;
mGraphicsDirtyBitHandlers[DIRTY_BIT_DRIVER_UNIFORMS] =
&ContextVk::handleDirtyGraphicsDriverUniforms;
mGraphicsDirtyBitHandlers[DIRTY_BIT_DRIVER_UNIFORMS_BINDING] =
@@ -863,6 +864,7 @@ ContextVk::ContextVk(const gl::State &state, gl::ErrorSet *errorSet, RendererVk
mComputeDirtyBitHandlers[DIRTY_BIT_PIPELINE_BINDING] =
&ContextVk::handleDirtyComputePipelineBinding;
mComputeDirtyBitHandlers[DIRTY_BIT_TEXTURES] = &ContextVk::handleDirtyComputeTextures;
+ mComputeDirtyBitHandlers[DIRTY_BIT_UNIFORMS] = &ContextVk::handleDirtyComputeUniforms;
mComputeDirtyBitHandlers[DIRTY_BIT_DRIVER_UNIFORMS] =
&ContextVk::handleDirtyComputeDriverUniforms;
mComputeDirtyBitHandlers[DIRTY_BIT_DRIVER_UNIFORMS_BINDING] =
@@ -928,7 +930,7 @@ ContextVk::~ContextVk() = default;
void ContextVk::onDestroy(const gl::Context *context)
{
// Remove context from the share group
- mShareGroupVk->getContexts()->erase(this);
+ mShareGroupVk->removeContext(this);
// This will not destroy any resources. It will release them to be collected after finish.
mIncompleteTextures.onDestroy(context);
@@ -1149,7 +1151,7 @@ angle::Result ContextVk::initialize()
ANGLE_TRY(mEmptyBuffer.init(this, emptyBufferInfo, kMemoryType));
// Add context into the share group
- mShareGroupVk->getContexts()->insert(this);
+ mShareGroupVk->addContext(this);
return angle::Result::Continue;
}
@@ -1220,13 +1222,7 @@ angle::Result ContextVk::setupDraw(const gl::Context *context,
ProgramExecutableVk *programExecutableVk = getExecutable();
if (programExecutableVk->hasDirtyUniforms())
{
- TransformFeedbackVk *transformFeedbackVk =
- vk::SafeGetImpl(mState.getCurrentTransformFeedback());
- ANGLE_TRY(programExecutableVk->updateUniforms(
- this, &mUpdateDescriptorSetsBuilder, &mResourceUseList, &mEmptyBuffer,
- *mState.getProgramExecutable(), &mDefaultUniformStorage,
- mState.isTransformFeedbackActiveUnpaused(), transformFeedbackVk));
- mGraphicsDirtyBits.set(DIRTY_BIT_DESCRIPTOR_SETS);
+ mGraphicsDirtyBits.set(DIRTY_BIT_UNIFORMS);
}
// Update transform feedback offsets on every draw call when emulating transform feedback. This
@@ -1476,12 +1472,7 @@ angle::Result ContextVk::setupDispatch(const gl::Context *context)
ProgramExecutableVk *programExecutableVk = getExecutable();
if (programExecutableVk->hasDirtyUniforms())
{
- TransformFeedbackVk *transformFeedbackVk =
- vk::SafeGetImpl(mState.getCurrentTransformFeedback());
- ANGLE_TRY(programExecutableVk->updateUniforms(
- this, &mUpdateDescriptorSetsBuilder, &mResourceUseList, &mEmptyBuffer,
- *mState.getProgramExecutable(), &mDefaultUniformStorage,
- mState.isTransformFeedbackActiveUnpaused(), transformFeedbackVk));
+ mComputeDirtyBits.set(DIRTY_BIT_UNIFORMS);
mComputeDirtyBits.set(DIRTY_BIT_DESCRIPTOR_SETS);
}
@@ -2390,6 +2381,31 @@ angle::Result ContextVk::handleDirtyGraphicsDescriptorSets(DirtyBits::Iterator *
return handleDirtyDescriptorSetsImpl(mRenderPassCommandBuffer, PipelineType::Graphics);
}
+angle::Result ContextVk::handleDirtyGraphicsUniforms(DirtyBits::Iterator *dirtyBitsIterator,
+ DirtyBits dirtyBitMask)
+{
+ dirtyBitsIterator->setLaterBit(DIRTY_BIT_DESCRIPTOR_SETS);
+ return handleDirtyUniformsImpl();
+}
+
+angle::Result ContextVk::handleDirtyComputeUniforms()
+{
+ return handleDirtyUniformsImpl();
+}
+
+angle::Result ContextVk::handleDirtyUniformsImpl()
+{
+ ProgramExecutableVk *programExecutableVk = getExecutable();
+ TransformFeedbackVk *transformFeedbackVk =
+ vk::SafeGetImpl(mState.getCurrentTransformFeedback());
+ ANGLE_TRY(programExecutableVk->updateUniforms(
+ this, &mUpdateDescriptorSetsBuilder, &mResourceUseList, &mEmptyBuffer,
+ *mState.getProgramExecutable(), &mDefaultUniformStorage,
+ mState.isTransformFeedbackActiveUnpaused(), transformFeedbackVk));
+
+ return angle::Result::Continue;
+}
+
angle::Result ContextVk::handleDirtyGraphicsViewport(DirtyBits::Iterator *dirtyBitsIterator,
DirtyBits dirtyBitMask)
{
diff --git a/src/libANGLE/renderer/vulkan/ContextVk.h b/src/libANGLE/renderer/vulkan/ContextVk.h
index 6c6a3797c6..85f64ae14f 100644
--- a/src/libANGLE/renderer/vulkan/ContextVk.h
+++ b/src/libANGLE/renderer/vulkan/ContextVk.h
@@ -777,6 +777,7 @@ class ContextVk : public ContextImpl, public vk::Context, public MultisampleText
DIRTY_BIT_TEXTURES,
DIRTY_BIT_VERTEX_BUFFERS,
DIRTY_BIT_INDEX_BUFFER,
+ DIRTY_BIT_UNIFORMS,
DIRTY_BIT_DRIVER_UNIFORMS,
DIRTY_BIT_DRIVER_UNIFORMS_BINDING,
// Shader resources excluding textures, which are handled separately.
@@ -835,6 +836,8 @@ class ContextVk : public ContextImpl, public vk::Context, public MultisampleText
"Render pass using dirty bit must be handled after the render pass dirty bit");
static_assert(DIRTY_BIT_DESCRIPTOR_SETS > DIRTY_BIT_RENDER_PASS,
"Render pass using dirty bit must be handled after the render pass dirty bit");
+ static_assert(DIRTY_BIT_UNIFORMS > DIRTY_BIT_RENDER_PASS,
+ "Render pass using dirty bit must be handled after the render pass dirty bit");
static_assert(DIRTY_BIT_FRAMEBUFFER_FETCH_BARRIER > DIRTY_BIT_RENDER_PASS,
"Render pass using dirty bit must be handled after the render pass dirty bit");
static_assert(DIRTY_BIT_BLEND_BARRIER > DIRTY_BIT_RENDER_PASS,
@@ -1031,6 +1034,8 @@ class ContextVk : public ContextImpl, public vk::Context, public MultisampleText
DirtyBits dirtyBitMask);
angle::Result handleDirtyGraphicsDescriptorSets(DirtyBits::Iterator *dirtyBitsIterator,
DirtyBits dirtyBitMask);
+ angle::Result handleDirtyGraphicsUniforms(DirtyBits::Iterator *dirtyBitsIterator,
+ DirtyBits dirtyBitMask);
angle::Result handleDirtyGraphicsViewport(DirtyBits::Iterator *dirtyBitsIterator,
DirtyBits dirtyBitMask);
angle::Result handleDirtyGraphicsScissor(DirtyBits::Iterator *dirtyBitsIterator,
@@ -1046,8 +1051,10 @@ class ContextVk : public ContextImpl, public vk::Context, public MultisampleText
angle::Result handleDirtyComputeDriverUniformsBinding();
angle::Result handleDirtyComputeShaderResources();
angle::Result handleDirtyComputeDescriptorSets();
+ angle::Result handleDirtyComputeUniforms();
// Common parts of the common dirty bit handlers.
+ angle::Result handleDirtyUniformsImpl();
angle::Result handleDirtyMemoryBarrierImpl(DirtyBits::Iterator *dirtyBitsIterator,
DirtyBits dirtyBitMask);
template <typename CommandBufferT>
diff --git a/src/libANGLE/renderer/vulkan/DisplayVk.cpp b/src/libANGLE/renderer/vulkan/DisplayVk.cpp
index 324c4d608f..6f13790e48 100644
--- a/src/libANGLE/renderer/vulkan/DisplayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/DisplayVk.cpp
@@ -412,6 +412,16 @@ ShareGroupVk::ShareGroupVk()
mLastPruneTime = angle::GetCurrentSystemTime();
}
+void ShareGroupVk::addContext(ContextVk *contextVk)
+{
+ mContexts.insert(contextVk);
+}
+
+void ShareGroupVk::removeContext(ContextVk *contextVk)
+{
+ mContexts.erase(contextVk);
+}
+
void ShareGroupVk::onDestroy(const egl::Display *display)
{
RendererVk *renderer = vk::GetImpl(display)->getRenderer();
diff --git a/src/libANGLE/renderer/vulkan/DisplayVk.h b/src/libANGLE/renderer/vulkan/DisplayVk.h
index c5f22c8fde..4ce0c22485 100644
--- a/src/libANGLE/renderer/vulkan/DisplayVk.h
+++ b/src/libANGLE/renderer/vulkan/DisplayVk.h
@@ -34,19 +34,13 @@ class ShareGroupVk : public ShareGroupImpl
// synchronous update to the caches.
PipelineLayoutCache &getPipelineLayoutCache() { return mPipelineLayoutCache; }
DescriptorSetLayoutCache &getDescriptorSetLayoutCache() { return mDescriptorSetLayoutCache; }
- ContextVkSet *getContexts() { return &mContexts; }
+ const ContextVkSet &getContexts() const { return mContexts; }
void releaseResourceUseLists(const Serial &submitSerial);
void acquireResourceUseList(vk::ResourceUseList &&resourceUseList)
{
mResourceUseLists.emplace_back(std::move(resourceUseList));
}
- void copyResourceUseList(vk::ResourceUseList &resourceUseList)
- {
- vk::ResourceUseList copyResourceUseList;
- copyResourceUseList.copy(resourceUseList);
- mResourceUseLists.emplace_back(std::move(copyResourceUseList));
- }
vk::BufferPool *getDefaultBufferPool(RendererVk *renderer,
VkDeviceSize size,
@@ -54,6 +48,9 @@ class ShareGroupVk : public ShareGroupImpl
void pruneDefaultBufferPools(RendererVk *renderer);
bool isDueForBufferPoolPrune();
+ void addContext(ContextVk *contextVk);
+ void removeContext(ContextVk *contextVk);
+
private:
// ANGLE uses a PipelineLayout cache to store compatible pipeline layouts.
PipelineLayoutCache mPipelineLayoutCache;
diff --git a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
index 3e47d035c7..a192d822f7 100644
--- a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
@@ -305,32 +305,36 @@ std::unique_ptr<rx::LinkEvent> ProgramExecutableVk::load(ContextVk *contextVk,
for (gl::ShaderType shaderType : gl::AllShaderTypes())
{
- size_t variableInfoMapSize = stream->readInt<size_t>();
-
- for (size_t i = 0; i < variableInfoMapSize; ++i)
+ for (ShaderVariableType variableType : angle::AllEnums<ShaderVariableType>())
{
- const std::string variableName = stream->readString();
- ShaderInterfaceVariableInfo &info = mVariableInfoMap.add(shaderType, variableName);
-
- info.descriptorSet = stream->readInt<uint32_t>();
- info.binding = stream->readInt<uint32_t>();
- info.location = stream->readInt<uint32_t>();
- info.component = stream->readInt<uint32_t>();
- info.index = stream->readInt<uint32_t>();
- // PackedEnumBitSet uses uint8_t
- info.activeStages = gl::ShaderBitSet(stream->readInt<uint8_t>());
- LoadShaderInterfaceVariableXfbInfo(stream, &info.xfb);
- info.fieldXfb.resize(stream->readInt<size_t>());
- for (ShaderInterfaceVariableXfbInfo &xfb : info.fieldXfb)
+ size_t variableInfoMapSize = stream->readInt<size_t>();
+
+ for (size_t i = 0; i < variableInfoMapSize; ++i)
{
- LoadShaderInterfaceVariableXfbInfo(stream, &xfb);
+ const std::string variableName = stream->readString();
+ ShaderInterfaceVariableInfo &info =
+ mVariableInfoMap.add(shaderType, variableType, variableName);
+
+ info.descriptorSet = stream->readInt<uint32_t>();
+ info.binding = stream->readInt<uint32_t>();
+ info.location = stream->readInt<uint32_t>();
+ info.component = stream->readInt<uint32_t>();
+ info.index = stream->readInt<uint32_t>();
+ // PackedEnumBitSet uses uint8_t
+ info.activeStages = gl::ShaderBitSet(stream->readInt<uint8_t>());
+ LoadShaderInterfaceVariableXfbInfo(stream, &info.xfb);
+ info.fieldXfb.resize(stream->readInt<size_t>());
+ for (ShaderInterfaceVariableXfbInfo &xfb : info.fieldXfb)
+ {
+ LoadShaderInterfaceVariableXfbInfo(stream, &xfb);
+ }
+ info.useRelaxedPrecision = stream->readBool();
+ info.varyingIsInput = stream->readBool();
+ info.varyingIsOutput = stream->readBool();
+ info.attributeComponentCount = stream->readInt<uint8_t>();
+ info.attributeLocationCount = stream->readInt<uint8_t>();
+ info.isDuplicate = stream->readBool();
}
- info.useRelaxedPrecision = stream->readBool();
- info.varyingIsInput = stream->readBool();
- info.varyingIsOutput = stream->readBool();
- info.attributeComponentCount = stream->readInt<uint8_t>();
- info.attributeLocationCount = stream->readInt<uint8_t>();
- info.isDuplicate = stream->readBool();
}
}
@@ -371,32 +375,35 @@ void ProgramExecutableVk::save(gl::BinaryOutputStream *stream)
{
for (gl::ShaderType shaderType : gl::AllShaderTypes())
{
- stream->writeInt(mVariableInfoMap.variableCount(shaderType));
- for (const auto &it : mVariableInfoMap.getIterator(shaderType))
+ for (ShaderVariableType variableType : angle::AllEnums<ShaderVariableType>())
{
- const std::string &name = it.first;
- const ShaderInterfaceVariableInfo &info = it.second;
-
- stream->writeString(name);
- stream->writeInt(info.descriptorSet);
- stream->writeInt(info.binding);
- stream->writeInt(info.location);
- stream->writeInt(info.component);
- stream->writeInt(info.index);
- // PackedEnumBitSet uses uint8_t
- stream->writeInt(info.activeStages.bits());
- SaveShaderInterfaceVariableXfbInfo(info.xfb, stream);
- stream->writeInt(info.fieldXfb.size());
- for (const ShaderInterfaceVariableXfbInfo &xfb : info.fieldXfb)
+ stream->writeInt(mVariableInfoMap.variableCount(shaderType, variableType));
+ for (const auto &it : mVariableInfoMap.getIterator(shaderType, variableType))
{
- SaveShaderInterfaceVariableXfbInfo(xfb, stream);
+ const std::string &name = it.first;
+ const ShaderInterfaceVariableInfo &info = it.second;
+
+ stream->writeString(name);
+ stream->writeInt(info.descriptorSet);
+ stream->writeInt(info.binding);
+ stream->writeInt(info.location);
+ stream->writeInt(info.component);
+ stream->writeInt(info.index);
+ // PackedEnumBitSet uses uint8_t
+ stream->writeInt(info.activeStages.bits());
+ SaveShaderInterfaceVariableXfbInfo(info.xfb, stream);
+ stream->writeInt(info.fieldXfb.size());
+ for (const ShaderInterfaceVariableXfbInfo &xfb : info.fieldXfb)
+ {
+ SaveShaderInterfaceVariableXfbInfo(xfb, stream);
+ }
+ stream->writeBool(info.useRelaxedPrecision);
+ stream->writeBool(info.varyingIsInput);
+ stream->writeBool(info.varyingIsOutput);
+ stream->writeInt(info.attributeComponentCount);
+ stream->writeInt(info.attributeLocationCount);
+ stream->writeBool(info.isDuplicate);
}
- stream->writeBool(info.useRelaxedPrecision);
- stream->writeBool(info.varyingIsInput);
- stream->writeBool(info.varyingIsOutput);
- stream->writeInt(info.attributeComponentCount);
- stream->writeInt(info.attributeLocationCount);
- stream->writeBool(info.isDuplicate);
}
}
@@ -531,25 +538,26 @@ angle::Result ProgramExecutableVk::allocateDescriptorSetAndGetInfo(
}
void ProgramExecutableVk::addInterfaceBlockDescriptorSetDesc(
+ const gl::ProgramExecutable &glExecutable,
const std::vector<gl::InterfaceBlock> &blocks,
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
VkDescriptorType descType,
vk::DescriptorSetLayoutDesc *descOut)
{
- for (uint32_t bufferIndex = 0; bufferIndex < blocks.size();)
+ for (uint32_t bufferIndex = 0, arraySize = 0; bufferIndex < blocks.size();
+ bufferIndex += arraySize)
{
gl::InterfaceBlock block = blocks[bufferIndex];
- const uint32_t arraySize = GetInterfaceBlockArraySize(blocks, bufferIndex);
- bufferIndex += arraySize;
+ arraySize = GetInterfaceBlockArraySize(blocks, bufferIndex);
if (!block.isActive(shaderType))
{
continue;
}
- const std::string blockName = block.mappedName;
-
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, blockName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getIndexedVariableInfo(
+ glExecutable, shaderType, variableType, bufferIndex);
if (info.isDuplicate)
{
continue;
@@ -566,19 +574,12 @@ void ProgramExecutableVk::addAtomicCounterBufferDescriptorSetDesc(
gl::ShaderType shaderType,
vk::DescriptorSetLayoutDesc *descOut)
{
- if (atomicCounterBuffers.empty())
+ if (atomicCounterBuffers.empty() || !mVariableInfoMap.hasAtomicCounterInfo(shaderType))
{
return;
}
- std::string blockName(sh::vk::kAtomicCountersBlockName);
-
- if (!mVariableInfoMap.contains(shaderType, blockName))
- {
- return;
- }
-
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, blockName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getAtomicCounterInfo(shaderType);
if (info.isDuplicate || !info.activeStages[shaderType])
{
return;
@@ -599,23 +600,23 @@ void ProgramExecutableVk::addImageDescriptorSetDesc(const gl::ProgramExecutable
for (uint32_t imageIndex = 0; imageIndex < imageBindings.size(); ++imageIndex)
{
- const gl::ImageBinding &imageBinding = imageBindings[imageIndex];
- uint32_t uniformIndex = executable.getUniformIndexFromImageIndex(imageIndex);
+ uint32_t uniformIndex = executable.getUniformIndexFromImageIndex(imageIndex);
const gl::LinkedUniform &imageUniform = uniforms[uniformIndex];
- std::string imageName = GlslangGetMappedSamplerName(imageUniform.name);
-
- // The front-end always binds array image units sequentially.
- uint32_t arraySize = static_cast<uint32_t>(imageBinding.boundImageUnits.size());
-
// 2D arrays are split into multiple 1D arrays when generating LinkedUniforms. Since they
// are flattened into one array, ignore the nonzero elements and expand the array to the
// total array size.
- if (gl::SamplerNameContainsNonZeroArrayElement(imageUniform.name))
+ if (imageUniform.outerArrayOffset > 0)
{
+ ASSERT(gl::SamplerNameContainsNonZeroArrayElement(imageUniform.name));
continue;
}
+ ASSERT(!gl::SamplerNameContainsNonZeroArrayElement(imageUniform.name));
+
+ // The front-end always binds array image units sequentially.
+ const gl::ImageBinding &imageBinding = imageBindings[imageIndex];
+ uint32_t arraySize = static_cast<uint32_t>(imageBinding.boundImageUnits.size());
for (unsigned int outerArraySize : imageUniform.outerArraySizes)
{
arraySize *= outerArraySize;
@@ -628,8 +629,8 @@ void ProgramExecutableVk::addImageDescriptorSetDesc(const gl::ProgramExecutable
continue;
}
- GetImageNameWithoutIndices(&imageName);
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, imageName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getIndexedVariableInfo(
+ executable, shaderType, ShaderVariableType::Image, imageIndex);
if (info.isDuplicate)
{
continue;
@@ -655,23 +656,21 @@ void ProgramExecutableVk::addInputAttachmentDescriptorSetDesc(
return;
}
- const std::vector<gl::LinkedUniform> &uniforms = executable.getUniforms();
-
if (!executable.usesFramebufferFetch())
{
return;
}
- const uint32_t baseUniformIndex = executable.getFragmentInoutRange().low();
- const gl::LinkedUniform &baseInputAttachment = uniforms.at(baseUniformIndex);
- std::string baseMappedName = baseInputAttachment.mappedName;
- ShaderInterfaceVariableInfo &baseInfo = mVariableInfoMap.get(shaderType, baseMappedName);
-
+ const ShaderInterfaceVariableInfo &baseInfo =
+ mVariableInfoMap.getFramebufferFetchInfo(executable, shaderType);
if (baseInfo.isDuplicate)
{
return;
}
+ const std::vector<gl::LinkedUniform> &uniforms = executable.getUniforms();
+ const uint32_t baseUniformIndex = executable.getFragmentInoutRange().low();
+ const gl::LinkedUniform &baseInputAttachment = uniforms.at(baseUniformIndex);
uint32_t baseBinding = baseInfo.binding - baseInputAttachment.location;
for (uint32_t colorIndex = 0; colorIndex < gl::IMPLEMENTATION_MAX_DRAW_BUFFERS; ++colorIndex)
@@ -693,24 +692,23 @@ angle::Result ProgramExecutableVk::addTextureDescriptorSetDesc(
for (uint32_t textureIndex = 0; textureIndex < samplerBindings.size(); ++textureIndex)
{
- const gl::SamplerBinding &samplerBinding = samplerBindings[textureIndex];
-
uint32_t uniformIndex = executable.getUniformIndexFromSamplerIndex(textureIndex);
const gl::LinkedUniform &samplerUniform = uniforms[uniformIndex];
- const std::string samplerName = GlslangGetMappedSamplerName(samplerUniform.name);
-
- // The front-end always binds array sampler units sequentially.
- uint32_t arraySize = static_cast<uint32_t>(samplerBinding.boundTextureUnits.size());
-
// 2D arrays are split into multiple 1D arrays when generating LinkedUniforms. Since they
// are flattened into one array, ignore the nonzero elements and expand the array to the
// total array size.
- if (gl::SamplerNameContainsNonZeroArrayElement(samplerUniform.name))
+ if (samplerUniform.outerArrayOffset > 0)
{
+ ASSERT(gl::SamplerNameContainsNonZeroArrayElement(samplerUniform.name));
continue;
}
+ ASSERT(!gl::SamplerNameContainsNonZeroArrayElement(samplerUniform.name));
+
+ // The front-end always binds array sampler units sequentially.
+ const gl::SamplerBinding &samplerBinding = samplerBindings[textureIndex];
+ uint32_t arraySize = static_cast<uint32_t>(samplerBinding.boundTextureUnits.size());
for (unsigned int outerArraySize : samplerUniform.outerArraySizes)
{
arraySize *= outerArraySize;
@@ -723,7 +721,8 @@ angle::Result ProgramExecutableVk::addTextureDescriptorSetDesc(
continue;
}
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, samplerName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getIndexedVariableInfo(
+ executable, shaderType, ShaderVariableType::Texture, textureIndex);
if (info.isDuplicate)
{
continue;
@@ -1005,9 +1004,8 @@ angle::Result ProgramExecutableVk::createPipelineLayout(
mNumDefaultUniformDescriptors = 0;
for (gl::ShaderType shaderType : linkedShaderStages)
{
- const std::string uniformBlockName = kDefaultUniformNames[shaderType];
const ShaderInterfaceVariableInfo &info =
- mVariableInfoMap.get(shaderType, uniformBlockName);
+ mVariableInfoMap.getDefaultUniformInfo(shaderType);
if (info.isDuplicate || !info.activeStages[shaderType])
{
continue;
@@ -1072,9 +1070,11 @@ angle::Result ProgramExecutableVk::createPipelineLayout(
for (gl::ShaderType shaderType : linkedShaderStages)
{
- addInterfaceBlockDescriptorSetDesc(glExecutable.getUniformBlocks(), shaderType,
+ addInterfaceBlockDescriptorSetDesc(glExecutable, glExecutable.getUniformBlocks(),
+ shaderType, ShaderVariableType::UniformBuffer,
mUniformBufferDescriptorType, &resourcesSetDesc);
- addInterfaceBlockDescriptorSetDesc(glExecutable.getShaderStorageBlocks(), shaderType,
+ addInterfaceBlockDescriptorSetDesc(glExecutable, glExecutable.getShaderStorageBlocks(),
+ shaderType, ShaderVariableType::ShaderStorageBuffer,
kStorageBufferDescriptorType, &resourcesSetDesc);
addAtomicCounterBufferDescriptorSetDesc(glExecutable.getAtomicCounterBuffers(), shaderType,
&resourcesSetDesc);
@@ -1163,8 +1163,9 @@ void ProgramExecutableVk::resolvePrecisionMismatch(const gl::ProgramMergedVaryin
if (frontPrecision > backPrecision)
{
// The output is higher precision than the input
- ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(
- mergedVarying.frontShaderStage, mergedVarying.frontShader->mappedName);
+ ShaderInterfaceVariableInfo &info = mVariableInfoMap.getMutable(
+ mergedVarying.frontShaderStage, ShaderVariableType::Varying,
+ mergedVarying.frontShader->mappedName);
info.varyingIsOutput = true;
info.useRelaxedPrecision = true;
}
@@ -1172,8 +1173,9 @@ void ProgramExecutableVk::resolvePrecisionMismatch(const gl::ProgramMergedVaryin
{
// The output is lower precision than the input, adjust the input
ASSERT(backPrecision > frontPrecision);
- ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(
- mergedVarying.backShaderStage, mergedVarying.backShader->mappedName);
+ ShaderInterfaceVariableInfo &info = mVariableInfoMap.getMutable(
+ mergedVarying.backShaderStage, ShaderVariableType::Varying,
+ mergedVarying.backShader->mappedName);
info.varyingIsInput = true;
info.useRelaxedPrecision = true;
}
@@ -1189,9 +1191,7 @@ void ProgramExecutableVk::updateDefaultUniformsDescriptorSet(
const DefaultUniformBlock &defaultUniformBlock,
vk::BufferHelper *defaultUniformBuffer)
{
- const std::string uniformBlockName = kDefaultUniformNames[shaderType];
-
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, uniformBlockName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getDefaultUniformInfo(shaderType);
if (info.isDuplicate || !info.activeStages[shaderType])
{
return;
@@ -1247,7 +1247,9 @@ angle::Result ProgramExecutableVk::updateBuffersDescriptorSet(
gl::ShaderType shaderType,
const vk::DescriptorSetDesc &shaderBuffersDesc,
const gl::BufferVector &buffers,
+ const gl::ProgramExecutable &glExecutable,
const std::vector<gl::InterfaceBlock> &blocks,
+ ShaderVariableType variableType,
VkDescriptorType descriptorType,
VkDeviceSize maxBoundBufferRange,
bool cacheHit)
@@ -1265,8 +1267,9 @@ angle::Result ProgramExecutableVk::updateBuffersDescriptorSet(
ASSERT(descriptorSet != VK_NULL_HANDLE);
// Write uniform or storage buffers.
- for (const gl::InterfaceBlock &block : blocks)
+ for (uint32_t blockIndex = 0; blockIndex < blocks.size(); ++blockIndex)
{
+ const gl::InterfaceBlock &block = blocks[blockIndex];
const gl::OffsetBindingPointer<gl::Buffer> &bufferBinding = buffers[block.binding];
if (!block.isActive(shaderType))
@@ -1274,8 +1277,8 @@ angle::Result ProgramExecutableVk::updateBuffersDescriptorSet(
continue;
}
- const ShaderInterfaceVariableInfo &info =
- mVariableInfoMap.get(shaderType, block.mappedName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getIndexedVariableInfo(
+ glExecutable, shaderType, variableType, blockIndex);
if (info.isDuplicate)
{
continue;
@@ -1351,19 +1354,13 @@ angle::Result ProgramExecutableVk::updateAtomicCounterBuffersDescriptorSet(
const std::vector<gl::AtomicCounterBuffer> &atomicCounterBuffers =
executable.getAtomicCounterBuffers();
- if (atomicCounterBuffers.empty() || cacheHit)
- {
- return angle::Result::Continue;
- }
-
- std::string blockName(sh::vk::kAtomicCountersBlockName);
-
- if (!mVariableInfoMap.contains(shaderType, blockName))
+ if (atomicCounterBuffers.empty() || cacheHit ||
+ !mVariableInfoMap.hasAtomicCounterInfo(shaderType))
{
return angle::Result::Continue;
}
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, blockName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getAtomicCounterInfo(shaderType);
if (info.isDuplicate || !info.activeStages[shaderType])
{
return angle::Result::Continue;
@@ -1460,17 +1457,15 @@ angle::Result ProgramExecutableVk::updateImagesDescriptorSet(
continue;
}
- std::string mappedImageName = GlslangGetMappedSamplerName(imageUniform.name);
-
- GetImageNameWithoutIndices(&mappedImageName);
-
- uint32_t arrayOffset = 0;
+ uint32_t arrayOffset = imageUniform.outerArrayOffset;
uint32_t arraySize = static_cast<uint32_t>(imageBinding.boundImageUnits.size());
- arrayOffset = mappedImageNameToArrayOffset[mappedImageName];
- // Front-end generates array elements in order, so we can just increment the offset each
- // time we process a nested array.
- mappedImageNameToArrayOffset[mappedImageName] += arraySize;
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getIndexedVariableInfo(
+ executable, shaderType, ShaderVariableType::Image, imageIndex);
+ if (info.isDuplicate)
+ {
+ continue;
+ }
// Texture buffers use buffer views, so they are especially handled.
if (imageBinding.textureType == gl::TextureType::Buffer)
@@ -1483,13 +1478,6 @@ angle::Result ProgramExecutableVk::updateImagesDescriptorSet(
format = &renderer->getFormat(imageUniform.imageUnitFormat);
}
- const ShaderInterfaceVariableInfo &info =
- mVariableInfoMap.get(shaderType, mappedImageName);
- if (info.isDuplicate)
- {
- continue;
- }
-
VkWriteDescriptorSet *writeInfos = updateBuilder->allocWriteDescriptorSets(arraySize);
for (uint32_t arrayElement = 0; arrayElement < arraySize; ++arrayElement)
@@ -1514,13 +1502,6 @@ angle::Result ProgramExecutableVk::updateImagesDescriptorSet(
continue;
}
- const std::string imageName = GlslangGetMappedSamplerName(imageUniform.name);
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, imageName);
- if (info.isDuplicate)
- {
- continue;
- }
-
VkWriteDescriptorSet *writeInfos = updateBuilder->allocWriteDescriptorSets(arraySize);
VkDescriptorImageInfo *imageInfos = updateBuilder->allocDescriptorImageInfos(arraySize);
for (uint32_t arrayElement = 0; arrayElement < arraySize; ++arrayElement)
@@ -1619,11 +1600,13 @@ angle::Result ProgramExecutableVk::updateShaderResourcesDescriptorSet(
{
ANGLE_TRY(updateBuffersDescriptorSet(
contextVk, updateBuilder, emptyBuffer, resourceUseList, shaderType, shaderBuffersDesc,
- uniformBuffers, executable->getUniformBlocks(), mUniformBufferDescriptorType,
+ uniformBuffers, *executable, executable->getUniformBlocks(),
+ ShaderVariableType::UniformBuffer, mUniformBufferDescriptorType,
limits.maxUniformBufferRange, cacheHit));
ANGLE_TRY(updateBuffersDescriptorSet(
contextVk, updateBuilder, emptyBuffer, resourceUseList, shaderType, shaderBuffersDesc,
- storageBuffers, executable->getShaderStorageBlocks(), kStorageBufferDescriptorType,
+ storageBuffers, *executable, executable->getShaderStorageBlocks(),
+ ShaderVariableType::ShaderStorageBuffer, kStorageBufferDescriptorType,
limits.maxStorageBufferRange, cacheHit));
ANGLE_TRY(updateAtomicCounterBuffersDescriptorSet(
contextVk, updateBuilder, emptyBuffer, resourceUseList, atomicCounterBufferBindings,
@@ -1659,9 +1642,9 @@ angle::Result ProgramExecutableVk::updateInputAttachmentDescriptorSet(
const uint32_t baseUniformIndex = executable.getFragmentInoutRange().low();
const gl::LinkedUniform &baseInputAttachment = uniforms.at(baseUniformIndex);
- std::string baseMappedName = baseInputAttachment.mappedName;
- ShaderInterfaceVariableInfo &baseInfo = mVariableInfoMap.get(shaderType, baseMappedName);
+ const ShaderInterfaceVariableInfo &baseInfo =
+ mVariableInfoMap.getFramebufferFetchInfo(executable, shaderType);
if (baseInfo.isDuplicate)
{
return angle::Result::Continue;
@@ -1792,23 +1775,20 @@ angle::Result ProgramExecutableVk::updateTexturesDescriptorSet(
for (gl::ShaderType shaderType : executable.getLinkedShaderStages())
{
- angle::HashMap<std::string, uint32_t> mappedSamplerNameToArrayOffset;
for (uint32_t textureIndex = 0; textureIndex < executable.getSamplerBindings().size();
++textureIndex)
{
const gl::SamplerBinding &samplerBinding = samplerBindings[textureIndex];
uint32_t uniformIndex = executable.getUniformIndexFromSamplerIndex(textureIndex);
const gl::LinkedUniform &samplerUniform = executable.getUniforms()[uniformIndex];
- std::string mappedSamplerName = GlslangGetMappedSamplerName(samplerUniform.name);
if (!samplerUniform.isActive(shaderType))
{
continue;
}
- const std::string samplerName = GlslangGetMappedSamplerName(samplerUniform.name);
-
- const ShaderInterfaceVariableInfo &info = mVariableInfoMap.get(shaderType, samplerName);
+ const ShaderInterfaceVariableInfo &info = mVariableInfoMap.getIndexedVariableInfo(
+ executable, shaderType, ShaderVariableType::Texture, textureIndex);
if (info.isDuplicate)
{
continue;
@@ -1835,14 +1815,9 @@ angle::Result ProgramExecutableVk::updateTexturesDescriptorSet(
}
ASSERT(descriptorSet != VK_NULL_HANDLE);
- uint32_t arrayOffset = 0;
+ uint32_t arrayOffset = samplerUniform.outerArrayOffset;
uint32_t arraySize = static_cast<uint32_t>(samplerBinding.boundTextureUnits.size());
- arrayOffset = mappedSamplerNameToArrayOffset[mappedSamplerName];
- // Front-end generates array elements in order, so we can just increment the offset each
- // time we process a nested array.
- mappedSamplerNameToArrayOffset[mappedSamplerName] += arraySize;
-
VkWriteDescriptorSet *writeInfos = updateBuilder->allocWriteDescriptorSets(arraySize);
// Texture buffers use buffer views, so they are especially handled.
diff --git a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.h b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.h
index 4f684fa6a7..69e83b82bf 100644
--- a/src/libANGLE/renderer/vulkan/ProgramExecutableVk.h
+++ b/src/libANGLE/renderer/vulkan/ProgramExecutableVk.h
@@ -256,8 +256,10 @@ class ProgramExecutableVk
vk::ResourceUseList *resourceUseList,
DescriptorSetIndex descriptorSetIndex,
bool *newPoolAllocatedOut);
- void addInterfaceBlockDescriptorSetDesc(const std::vector<gl::InterfaceBlock> &blocks,
+ void addInterfaceBlockDescriptorSetDesc(const gl::ProgramExecutable &glExecutable,
+ const std::vector<gl::InterfaceBlock> &blocks,
gl::ShaderType shaderType,
+ ShaderVariableType variableType,
VkDescriptorType descType,
vk::DescriptorSetLayoutDesc *descOut);
void addAtomicCounterBufferDescriptorSetDesc(
@@ -300,7 +302,9 @@ class ProgramExecutableVk
gl::ShaderType shaderType,
const vk::DescriptorSetDesc &shaderBuffersDesc,
const gl::BufferVector &buffers,
+ const gl::ProgramExecutable &glExecutable,
const std::vector<gl::InterfaceBlock> &blocks,
+ ShaderVariableType variableType,
VkDescriptorType descriptorType,
VkDeviceSize maxBoundBufferRange,
bool cacheHit);
diff --git a/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp b/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp
index 446c051f18..364db391d9 100644
--- a/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ProgramPipelineVk.cpp
@@ -64,7 +64,7 @@ angle::Result ProgramPipelineVk::link(const gl::Context *glContext,
!glProgram->getState().getLinkedTransformFeedbackVaryings().empty();
GlslangAssignTransformFeedbackLocations(
- shaderType, glProgram->getState(), isTransformFeedbackStage,
+ shaderType, glProgram->getExecutable(), isTransformFeedbackStage,
&glslangProgramInterfaceInfo, &mExecutable.mVariableInfoMap);
}
}
@@ -76,27 +76,23 @@ angle::Result ProgramPipelineVk::link(const gl::Context *glContext,
UniformBindingIndexMap uniformBindingIndexMap;
for (const gl::ShaderType shaderType : glExecutable.getLinkedShaderStages())
{
- const gl::Program *glProgram = mState.getShaderProgram(shaderType);
- if (glProgram)
- {
- const bool isTransformFeedbackStage =
- shaderType == linkedTransformFeedbackStage &&
- !glProgram->getState().getLinkedTransformFeedbackVaryings().empty();
-
- GlslangAssignLocations(options, glProgram->getState(), varyingPacking, shaderType,
- frontShaderType, isTransformFeedbackStage,
- &glslangProgramInterfaceInfo, &uniformBindingIndexMap,
- &mExecutable.mVariableInfoMap);
- frontShaderType = shaderType;
-
- ProgramVk *programVk = vk::GetImpl(glProgram);
- ProgramExecutableVk &programExecutableVk = programVk->getExecutable();
- mExecutable.mDefaultUniformBlocks[shaderType] =
- programExecutableVk.getSharedDefaultUniformBlock(shaderType);
-
- mExecutable.mOriginalShaderInfo.initShaderFromProgram(
- shaderType, programExecutableVk.mOriginalShaderInfo);
- }
+ const bool isTransformFeedbackStage =
+ shaderType == linkedTransformFeedbackStage &&
+ !glExecutable.getLinkedTransformFeedbackVaryings().empty();
+
+ GlslangAssignLocations(options, glExecutable, varyingPacking, shaderType, frontShaderType,
+ isTransformFeedbackStage, &glslangProgramInterfaceInfo,
+ &uniformBindingIndexMap, &mExecutable.mVariableInfoMap);
+ frontShaderType = shaderType;
+
+ const gl::Program *program = mState.getShaderProgram(shaderType);
+ ProgramVk *programVk = vk::GetImpl(program);
+ ProgramExecutableVk &programExecutableVk = programVk->getExecutable();
+ mExecutable.mDefaultUniformBlocks[shaderType] =
+ programExecutableVk.getSharedDefaultUniformBlock(shaderType);
+
+ mExecutable.mOriginalShaderInfo.initShaderFromProgram(
+ shaderType, programExecutableVk.mOriginalShaderInfo);
}
mExecutable.setAllDefaultUniformsDirty(glExecutable);
@@ -107,7 +103,7 @@ angle::Result ProgramPipelineVk::link(const gl::Context *glContext,
}
return mExecutable.createPipelineLayout(contextVk, mState.getExecutable(), nullptr);
-}
+} // namespace rx
void ProgramPipelineVk::onProgramUniformUpdate(gl::ShaderType shaderType)
{
diff --git a/src/libANGLE/renderer/vulkan/ProgramPipelineVk.h b/src/libANGLE/renderer/vulkan/ProgramPipelineVk.h
index 7975b35d7c..6c84b9df39 100644
--- a/src/libANGLE/renderer/vulkan/ProgramPipelineVk.h
+++ b/src/libANGLE/renderer/vulkan/ProgramPipelineVk.h
@@ -31,12 +31,6 @@ class ProgramPipelineVk : public ProgramPipelineImpl
const ProgramExecutableVk &getExecutable() const { return mExecutable; }
ProgramExecutableVk &getExecutable() { return mExecutable; }
- ProgramVk *getShaderProgram(gl::ShaderType shaderType) const
- {
- const gl::Program *program = mState.getShaderProgram(shaderType);
- return SafeGetImplAs<ProgramVk>(program);
- }
-
angle::Result link(const gl::Context *glContext,
const gl::ProgramMergedVaryings &mergedVaryings,
const gl::ProgramVaryingPacking &varyingPacking) override;
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp
index faf19ea913..3b79e53f4b 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -547,6 +547,13 @@ constexpr SkippedSyncvalMessage kSkippedSyncvalMessages[] = {
"SYNC-HAZARD-WRITE_AFTER_READ",
"type: VK_DESCRIPTOR_TYPE_STORAGE_BUFFER",
},
+ // From: TracePerfTest.Run/vulkan_special_forces_group_2 http://anglebug.com/5592
+ {
+ "SYNC-HAZARD-WRITE_AFTER_READ",
+ "Access info (usage: SYNC_IMAGE_LAYOUT_TRANSITION, prior_usage: "
+ "SYNC_FRAGMENT_SHADER_SHADER_STORAGE_READ, read_barriers: "
+ "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT, command: vkCmdDrawIndexed",
+ },
};
enum class DebugMessageReport
diff --git a/src/libANGLE/renderer/vulkan/ResourceVk.cpp b/src/libANGLE/renderer/vulkan/ResourceVk.cpp
index f44992826d..43729d48a6 100644
--- a/src/libANGLE/renderer/vulkan/ResourceVk.cpp
+++ b/src/libANGLE/renderer/vulkan/ResourceVk.cpp
@@ -200,16 +200,6 @@ ResourceUseList::~ResourceUseList()
ASSERT(mResourceUses.empty());
}
-void ResourceUseList::copy(ResourceUseList &srcResourceUse)
-{
- size_t size = srcResourceUse.mResourceUses.size();
- mResourceUses.resize(size);
- for (size_t i = 0; i < size; i++)
- {
- mResourceUses[i].copy(srcResourceUse.mResourceUses[i]);
- }
-}
-
ResourceUseList &ResourceUseList::operator=(ResourceUseList &&rhs)
{
std::swap(mResourceUses, rhs.mResourceUses);
diff --git a/src/libANGLE/renderer/vulkan/ResourceVk.h b/src/libANGLE/renderer/vulkan/ResourceVk.h
index 032c038938..08bd15377a 100644
--- a/src/libANGLE/renderer/vulkan/ResourceVk.h
+++ b/src/libANGLE/renderer/vulkan/ResourceVk.h
@@ -45,12 +45,6 @@ class SharedResourceUse final : angle::NonCopyable
return *this;
}
- void copy(SharedResourceUse &src)
- {
- mUse = src.mUse;
- mUse->counter++;
- }
-
ANGLE_INLINE bool valid() const { return mUse != nullptr; }
void init()
@@ -178,7 +172,6 @@ class ResourceUseList final : angle::NonCopyable
ResourceUseList &operator=(ResourceUseList &&rhs);
void add(const SharedResourceUse &resourceUse);
- void copy(ResourceUseList &srcResourceUse);
void releaseResourceUses();
void releaseResourceUsesAndUpdateSerials(Serial serial);
diff --git a/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp b/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
index dbaa4eeedb..807cf80be7 100644
--- a/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
+++ b/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
@@ -227,9 +227,8 @@ void TransformFeedbackVk::updateDescriptorSetLayout(
for (uint32_t bufferIndex = 0; bufferIndex < xfbBufferCount; ++bufferIndex)
{
- const std::string bufferName = GetXfbBufferName(bufferIndex);
const ShaderInterfaceVariableInfo &info =
- variableInfoMap.get(gl::ShaderType::Vertex, bufferName);
+ variableInfoMap.getTransformFeedbackInfo(gl::ShaderType::Vertex, bufferIndex);
ASSERT(info.binding != std::numeric_limits<uint32_t>::max());
@@ -381,9 +380,8 @@ void TransformFeedbackVk::writeDescriptorSet(vk::Context *context,
{
ASSERT(context->getRenderer()->getFeatures().emulateTransformFeedback.enabled);
- const std::string bufferName = GetXfbBufferName(0);
const ShaderInterfaceVariableInfo &info =
- variableInfoMap.get(gl::ShaderType::Vertex, bufferName);
+ variableInfoMap.getTransformFeedbackInfo(gl::ShaderType::Vertex, 0);
VkWriteDescriptorSet &writeDescriptorInfo = updateBuilder->allocWriteDescriptorSet();
writeDescriptorInfo.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/src/libANGLE/renderer/vulkan/vk_helpers.cpp
index 3ce3d4950f..d562aa64df 100644
--- a/src/libANGLE/renderer/vulkan/vk_helpers.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_helpers.cpp
@@ -2885,6 +2885,47 @@ angle::Result BufferPool::allocateBuffer(Context *context,
VkDeviceSize offset;
VkDeviceSize alignedSize = roundUp(sizeInBytes, alignment);
+ if (alignedSize >= kMaxBufferSizeForSuballocation)
+ {
+ VkDeviceSize heapSize =
+ context->getRenderer()->getMemoryProperties().getHeapSizeForMemoryType(
+ mMemoryTypeIndex);
+ // First ensure we are not exceeding the heapSize to avoid the validation error.
+ ANGLE_VK_CHECK(context, sizeInBytes <= heapSize, VK_ERROR_OUT_OF_DEVICE_MEMORY);
+
+ // Allocate buffer
+ VkBufferCreateInfo createInfo = {};
+ createInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
+ createInfo.flags = 0;
+ createInfo.size = alignedSize;
+ createInfo.usage = mUsage;
+ createInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
+ createInfo.queueFamilyIndexCount = 0;
+ createInfo.pQueueFamilyIndices = nullptr;
+
+ VkMemoryPropertyFlags memoryPropertyFlags;
+ const Allocator &allocator = context->getRenderer()->getAllocator();
+ allocator.getMemoryTypeProperties(mMemoryTypeIndex, &memoryPropertyFlags);
+
+ DeviceScoped<Buffer> buffer(context->getDevice());
+ ANGLE_VK_TRY(context, buffer.get().init(context->getDevice(), createInfo));
+
+ DeviceScoped<DeviceMemory> deviceMemory(context->getDevice());
+ VkMemoryPropertyFlags memoryPropertyFlagsOut;
+ VkDeviceSize sizeOut;
+ ANGLE_TRY(AllocateBufferMemory(context, memoryPropertyFlags, &memoryPropertyFlagsOut,
+ nullptr, &buffer.get(), &deviceMemory.get(), &sizeOut));
+ ASSERT(sizeOut >= alignedSize);
+
+ suballocation->initWithEntireBuffer(context, buffer.get(), deviceMemory.get(),
+ memoryPropertyFlagsOut, alignedSize);
+ if (mHostVisible)
+ {
+ ANGLE_VK_TRY(context, suballocation->map(context));
+ }
+ return angle::Result::Continue;
+ }
+
// We always allocate from reverse order so that older buffers have a chance to age out. The
// assumption is that to allocate from new buffers first may have a better chance to leave the
// older buffers completely empty and we may able to free it.
@@ -4957,7 +4998,7 @@ void ImageHelper::releaseImageFromShareContexts(RendererVk *renderer, ContextVk
{
if (contextVk && mImageSerial.valid())
{
- ContextVkSet &shareContextSet = *contextVk->getShareGroupVk()->getContexts();
+ const ContextVkSet &shareContextSet = contextVk->getShareGroupVk()->getContexts();
for (ContextVk *ctx : shareContextSet)
{
ctx->finalizeImageLayout(this);
diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.h b/src/libANGLE/renderer/vulkan/vk_helpers.h
index 62e08f7a25..f6fc14fa5a 100644
--- a/src/libANGLE/renderer/vulkan/vk_helpers.h
+++ b/src/libANGLE/renderer/vulkan/vk_helpers.h
@@ -871,6 +871,9 @@ class BufferPool : angle::NonCopyable
// and only to find out that we have to allocate a new one next frame.
static constexpr int32_t kMaxCountRemainsEmpty = 4;
static constexpr int32_t kMaxEmptyBufferCount = 16;
+ // max size to go down the suballocation code path. Any allocation greater or equal this size
+ // will call into vulkan directly to allocate a dedicated VkDeviceMemory.
+ static constexpr size_t kMaxBufferSizeForSuballocation = 4 * 1024 * 1024;
};
enum class BufferAccess
diff --git a/src/tests/angle_end2end_tests_expectations.txt b/src/tests/angle_end2end_tests_expectations.txt
index af74f258fb..7d5bdc7169 100644
--- a/src/tests/angle_end2end_tests_expectations.txt
+++ b/src/tests/angle_end2end_tests_expectations.txt
@@ -161,6 +161,12 @@
6738 MAC AMD OPENGL : Texture3DTestES3.PixelUnpackStateTex* = SKIP
1296467 MAC OPENGL : VertexAttributeTestES3.emptyBuffer/* = SKIP
7203 MAC INTEL OPENGL : CopyTextureTest.CopyToMipmap/* = SKIP
+7206 MAC NVIDIA OPENGL : CopyTextureTest.CubeMap*/ES2_OpenGL = SKIP
+7206 MAC NVIDIA OPENGL : CopyTextureTest.CopyToMipmap/ES2_OpenGL = SKIP
+7206 MAC NVIDIA OPENGL : BlitFramebufferTest.NonZeroBaseDestinationStencil/ES3_OpenGL = SKIP
+7206 MAC NVIDIA OPENGL : BlendIntegerTest.MRTUnsigned/ES3_OpenGL = SKIP
+7206 MAC NVIDIA OPENGL : BlendIntegerTest.MRTSigned/ES3_OpenGL = SKIP
+7206 MAC NVIDIA OPENGL : DrawBuffersTest.BlendWithGaps/ES3_OpenGL = SKIP
// BlitFramebufferTest.ScissoredMultisampleStencil failures
3496 MAC INTEL OPENGL : BlitFramebufferTest.ScissoredMultisampleStencil/* = SKIP
@@ -580,3 +586,6 @@
7029 NVIDIA GLES : GLSLTest.SwizzledChainedAssignIncrement/* = SKIP
7085 : VulkanPerformanceCounterTest.DepthStencilInvalidateDrawDisable/* = SKIP
+
+// Flaking due to threading usage of the queue
+7204 : VulkanImageTest.PreInitializedOnGLImport/ES3_Vulkan_SwiftShader_AsyncCommandQueue = SKIP
diff --git a/src/tests/deqp_support/deqp_gles2_test_expectations.txt b/src/tests/deqp_support/deqp_gles2_test_expectations.txt
index 02aeff3798..f98358f77d 100644
--- a/src/tests/deqp_support/deqp_gles2_test_expectations.txt
+++ b/src/tests/deqp_support/deqp_gles2_test_expectations.txt
@@ -90,11 +90,6 @@
3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat = FAIL
3299 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_mirror = FAIL
-// Quadro P400
-// TODO(jmadill): Narrow to P400 device only: 0x1CB3.
-2222 D3D11 NVIDIA : dEQP-GLES2.functional.shaders.functions.control_flow.return_in_nested_loop_fragment = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES2.functional.shaders.functions.control_flow.return_in_nested_loop_vertex = FAIL
-
// AMD GPU vertex shader texture sampling is not precise enough when rendering to 32-bit backbuffers
2337 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.2d.wrap.* = FAIL
2337 D3D11 AMD : dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_* = FAIL
diff --git a/src/tests/deqp_support/deqp_gles3_test_expectations.txt b/src/tests/deqp_support/deqp_gles3_test_expectations.txt
index 92ffb29c55..9e103b078e 100644
--- a/src/tests/deqp_support/deqp_gles3_test_expectations.txt
+++ b/src/tests/deqp_support/deqp_gles3_test_expectations.txt
@@ -69,18 +69,6 @@
// DrawBuffers test failing on D3D11.
3298 WIN D3D11 : dEQP-GLES3.functional.shaders.fragdata.draw_buffers = FAIL
-// TODO(jmadill, cwallez): triage the failures below into permanent and temporary failures
-
-// Quadro P400
-// TODO(jmadill): Narrow to P400 device only: 0x1CB3.
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.functions.control_flow.return_in_nested_loop_fragment = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.functions.control_flow.return_in_nested_loop_vertex = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.linear_nearest = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.2d.min_lod.nearest_nearest = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.linear_nearest = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.3d.min_lod.nearest_nearest = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.cube.min_lod.linear_nearest = FAIL
-2222 D3D11 NVIDIA : dEQP-GLES3.functional.texture.mipmap.cube.min_lod.nearest_nearest = FAIL
// Fails on 451.48 driver version
4948 D3D11 NVIDIA : dEQP-GLES3.functional.shaders.texture_functions.texturesize.* = FAIL
diff --git a/src/tests/gl_tests/GLSLTest.cpp b/src/tests/gl_tests/GLSLTest.cpp
index fc46f6904b..eb450d23f7 100644
--- a/src/tests/gl_tests/GLSLTest.cpp
+++ b/src/tests/gl_tests/GLSLTest.cpp
@@ -15253,6 +15253,46 @@ void main() {
ASSERT_GL_NO_ERROR();
}
+// Make sure const sampler parameters work.
+TEST_P(GLSLTest, ConstSamplerParameter)
+{
+ constexpr char kFS[] = R"(precision mediump float;
+uniform sampler2D samp;
+
+vec4 sampleConstSampler(const sampler2D s) {
+ return texture2D(s, vec2(0));
+}
+
+void main() {
+ gl_FragColor = sampleConstSampler(samp);
+}
+)";
+ CompileShader(GL_FRAGMENT_SHADER, kFS);
+ ASSERT_GL_NO_ERROR();
+}
+
+// Make sure passing const sampler parameters to another function work.
+TEST_P(GLSLTest, ConstSamplerParameterAsArgument)
+{
+ constexpr char kFS[] = R"(precision mediump float;
+
+uniform sampler2D samp;
+
+vec4 sampleSampler(sampler2D s) {
+ return texture2D(s, vec2(0));
+}
+
+vec4 sampleConstSampler(const sampler2D s) {
+ return sampleSampler(s);
+}
+
+void main() {
+ gl_FragColor = sampleConstSampler(samp);
+}
+)";
+ CompileShader(GL_FRAGMENT_SHADER, kFS);
+ ASSERT_GL_NO_ERROR();
+}
} // anonymous namespace
ANGLE_INSTANTIATE_TEST_ES2_AND_ES3_AND(GLSLTest,
diff --git a/src/tests/gl_tests/MultithreadingTest.cpp b/src/tests/gl_tests/MultithreadingTest.cpp
index 806f1ea2b7..909f66bfb7 100644
--- a/src/tests/gl_tests/MultithreadingTest.cpp
+++ b/src/tests/gl_tests/MultithreadingTest.cpp
@@ -352,6 +352,86 @@ TEST_P(MultithreadingTest, MultiContextDraw)
runMultithreadedGLTest(testBody, 4);
}
+// Test that multiple threads can draw and readback pixels successfully at the same time while EGL
+// images are bound between them
+TEST_P(MultithreadingTest, MultiContextDrawWithEGLImage)
+{
+ ANGLE_SKIP_TEST_IF(!platformSupportsMultithreading());
+
+ ANGLE_SKIP_TEST_IF(isSwiftshader());
+
+ EGLWindow *window = getEGLWindow();
+ EGLDisplay dpy = window->getDisplay();
+ ANGLE_SKIP_TEST_IF(IsGLExtensionEnabled("GL_OES_EGL_image"));
+ ANGLE_SKIP_TEST_IF(IsEGLDisplayExtensionEnabled(dpy, "EGL_KHR_gl_texture_2D_image"));
+
+ // Create a source 2D texture
+ GLTexture sourceTexture;
+ glBindTexture(GL_TEXTURE_2D, sourceTexture);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, &GLColor::red);
+
+ // Disable mipmapping
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+ ASSERT_GL_NO_ERROR();
+
+ // Create an image from the source texture
+ constexpr EGLint attribs[] = {
+ EGL_IMAGE_PRESERVED,
+ EGL_TRUE,
+ EGL_NONE,
+ };
+ EGLImageKHR image = eglCreateImageKHR(
+ dpy, window->getContext(), EGL_GL_TEXTURE_2D_KHR,
+ reinterpret_cast<EGLClientBuffer>(static_cast<size_t>(sourceTexture.get())), attribs);
+
+ auto testBody = [image](EGLSurface surface, size_t thread) {
+ constexpr size_t kIterationsPerThread = 32;
+ constexpr size_t kDrawsPerIteration = 500;
+
+ // Just bind the EGL image to this context and leave it bound while drawing
+ GLTexture destTexture;
+ glBindTexture(GL_TEXTURE_EXTERNAL_OES, destTexture);
+ glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES, image);
+
+ ANGLE_GL_PROGRAM(program, essl1_shaders::vs::Simple(), essl1_shaders::fs::UniformColor());
+ glUseProgram(program);
+
+ GLint colorLocation = glGetUniformLocation(program, essl1_shaders::ColorUniform());
+
+ auto quadVertices = GetQuadVertices();
+
+ GLBuffer vertexBuffer;
+ glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
+ glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * 3 * 6, quadVertices.data(), GL_STATIC_DRAW);
+
+ GLint positionLocation = glGetAttribLocation(program, essl1_shaders::PositionAttrib());
+ glEnableVertexAttribArray(positionLocation);
+ glVertexAttribPointer(positionLocation, 3, GL_FLOAT, GL_FALSE, 0, 0);
+
+ for (size_t iteration = 0; iteration < kIterationsPerThread; iteration++)
+ {
+ // Base the clear color on the thread and iteration indexes so every clear color is
+ // unique
+ const GLColor color(static_cast<GLubyte>(thread % 255),
+ static_cast<GLubyte>(iteration % 255), 0, 255);
+ const angle::Vector4 floatColor = color.toNormalizedVector();
+ glUniform4fv(colorLocation, 1, floatColor.data());
+
+ for (size_t draw = 0; draw < kDrawsPerIteration; draw++)
+ {
+ glDrawArrays(GL_TRIANGLES, 0, 6);
+ }
+
+ EXPECT_PIXEL_COLOR_EQ(0, 0, color);
+ }
+ };
+ runMultithreadedGLTest(testBody, 4);
+
+ eglDestroyImage(dpy, image);
+}
+
// Test that multiple threads can draw and read back pixels correctly.
// Using eglSwapBuffers stresses race conditions around use of QueueSerials.
TEST_P(MultithreadingTest, MultiContextDrawWithSwapBuffers)
diff --git a/src/tests/perf_tests/TracePerfTest.cpp b/src/tests/perf_tests/TracePerfTest.cpp
index fe0bbbef46..a98d1beade 100644
--- a/src/tests/perf_tests/TracePerfTest.cpp
+++ b/src/tests/perf_tests/TracePerfTest.cpp
@@ -1217,6 +1217,11 @@ TracePerfTest::TracePerfTest(const TracePerfParams &params)
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
+ if (traceNameIs("special_forces_group_2"))
+ {
+ addExtensionPrerequisite("GL_EXT_texture_buffer");
+ }
+
ASSERT(mParams.surfaceType == SurfaceType::Window || gEnableAllTraceTests);
ASSERT(mParams.eglParameters.deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE ||
gEnableAllTraceTests);
diff --git a/src/tests/restricted_traces/restricted_trace_gold_tests.py b/src/tests/restricted_traces/restricted_trace_gold_tests.py
index aa5afa2ec9..c19c7d0b4f 100755
--- a/src/tests/restricted_traces/restricted_trace_gold_tests.py
+++ b/src/tests/restricted_traces/restricted_trace_gold_tests.py
@@ -51,6 +51,7 @@ DEFAULT_SCREENSHOT_PREFIX = 'angle_vulkan_'
SWIFTSHADER_SCREENSHOT_PREFIX = 'angle_vulkan_swiftshader_'
DEFAULT_BATCH_SIZE = 5
DEFAULT_LOG = 'info'
+DEFAULT_GOLD_INSTANCE = 'angle'
# Filters out stuff like: " I 72.572s run_tests_on_device(96071FFAZ00096) "
ANDROID_LOGGING_PREFIX = r'I +\d+.\d+s \w+\(\w+\) '
@@ -294,7 +295,7 @@ def _run_tests(args, tests, extra_flags, env, screenshot_dir, results, test_resu
gold_properties = angle_skia_gold_properties.ANGLESkiaGoldProperties(args)
gold_session_manager = angle_skia_gold_session_manager.ANGLESkiaGoldSessionManager(
skia_gold_temp_dir, gold_properties)
- gold_session = gold_session_manager.GetSkiaGoldSession(keys)
+ gold_session = gold_session_manager.GetSkiaGoldSession(keys, instance=args.instance)
traces = [trace.split(' ')[0] for trace in tests]
@@ -404,6 +405,13 @@ def main():
parser.add_argument(
'-l', '--log', help='Log output level. Default is %s.' % DEFAULT_LOG, default=DEFAULT_LOG)
parser.add_argument('--swiftshader', help='Test with SwiftShader.', action='store_true')
+ parser.add_argument(
+ '-i',
+ '--instance',
+ '--gold-instance',
+ '--skia-gold-instance',
+ help='Skia Gold instance. Default is "%s".' % DEFAULT_GOLD_INSTANCE,
+ default=DEFAULT_GOLD_INSTANCE)
add_skia_gold_args(parser)
diff --git a/src/tests/restricted_traces/restricted_traces.json b/src/tests/restricted_traces/restricted_traces.json
index 45234bd588..9dfda67edb 100644
--- a/src/tests/restricted_traces/restricted_traces.json
+++ b/src/tests/restricted_traces/restricted_traces.json
@@ -89,6 +89,7 @@
"minecraft 5",
"mini_world 5",
"mobile_legends 5",
+ "monster_strike 1",
"my_talking_tom2 5",
"my_talking_tom_friends 5",
"nba2k20_800 5",
@@ -123,6 +124,7 @@
"sniper_3d 5",
"solar_smash 2",
"sonic_the_hedgehog 5",
+ "special_forces_group_2 1",
"standoff_2 5",
"state_of_survival 1",
"subway_princess_runner 5",
diff --git a/third_party/SwiftShader b/third_party/SwiftShader
-Subproject 1d450ae99a0f4ade28dd55dac962f8b28d99037
+Subproject 103a69bd6c82980c967c2f4002c9a302ea67c71
diff --git a/third_party/VK-GL-CTS/src b/third_party/VK-GL-CTS/src
-Subproject 20a474e64382e8f5144122b30b3d7cab182421b
+Subproject a22069b4e3b7f68cc0c161e8c93b1308bff0925
diff --git a/third_party/abseil-cpp/symbols_arm64_rel.def b/third_party/abseil-cpp/symbols_arm64_rel.def
index 5f92eee046..b78aa4011d 100644
--- a/third_party/abseil-cpp/symbols_arm64_rel.def
+++ b/third_party/abseil-cpp/symbols_arm64_rel.def
@@ -121,7 +121,6 @@ EXPORTS
??0ByAnyChar@absl@@QEAA@Vstring_view@1@@Z
??0ByLength@absl@@QEAA@_J@Z
??0ByString@absl@@QEAA@Vstring_view@1@@Z
- ??0ChunkIterator@Cord@absl@@AEAA@PEAUCordRep@cord_internal@2@@Z
??0ChunkIterator@Cord@absl@@AEAA@PEBV12@@Z
??0Condition@absl@@AEAA@XZ
??0Condition@absl@@QEAA@P6A_NPEAX@Z0@Z
diff --git a/third_party/abseil-cpp/symbols_x64_rel.def b/third_party/abseil-cpp/symbols_x64_rel.def
index 750761d4f1..17b63714ff 100644
--- a/third_party/abseil-cpp/symbols_x64_rel.def
+++ b/third_party/abseil-cpp/symbols_x64_rel.def
@@ -76,8 +76,6 @@ EXPORTS
??$SetEdge@$0A@@CordRepBtree@cord_internal@absl@@QEAA?AUOpResult@012@_NPEAUCordRep@12@_K@Z
??$StrReplaceAll@V?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@std@@@absl@@YA?AV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@Vstring_view@0@AEBV?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@3@@Z
??$StrReplaceAll@V?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@std@@@absl@@YAHAEBV?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@std@@PEAV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@2@@Z
- ??$ToChronoDuration@V?$duration@JV?$ratio@$0DM@$00@__1@std@@@chrono@__1@std@@@time_internal@absl@@YA?AV?$duration@JV?$ratio@$0DM@$00@__1@std@@@chrono@__1@std@@VDuration@1@@Z
- ??$ToChronoDuration@V?$duration@JV?$ratio@$0OBA@$00@__1@std@@@chrono@__1@std@@@time_internal@absl@@YA?AV?$duration@JV?$ratio@$0OBA@$00@__1@std@@@chrono@__1@std@@VDuration@1@@Z
??$__construct_node_hash@AEBUpiecewise_construct_t@__1@std@@V?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@V?$tuple@$$V@23@@?$__hash_table@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@V?$__unordered_map_hasher@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$__unordered_map_equal@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$allocator@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@@23@@__1@std@@AEAA?AV?$unique_ptr@U?$__hash_node@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@PEAX@__1@std@@V?$__hash_node_destructor@V?$allocator@U?$__hash_node@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@PEAX@__1@std@@@__1@std@@@23@@12@_KAEBUpiecewise_construct_t@12@$$QEAV?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@12@$$QEAV?$tuple@$$V@12@@Z
??$__emplace_back_slow_path@AEAVstring_view@absl@@AEBV12@AEA_K@?$vector@UViableSubstitution@strings_internal@absl@@V?$allocator@UViableSubstitution@strings_internal@absl@@@__1@std@@@__1@std@@AEAAXAEAVstring_view@absl@@AEBV34@AEA_K@Z
??$__emplace_unique_key_args@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@AEBUpiecewise_construct_t@23@V?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@V?$tuple@$$V@23@@?$__hash_table@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@V?$__unordered_map_hasher@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$__unordered_map_equal@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$allocator@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@@23@@__1@std@@QEAA?AU?$pair@V?$__hash_iterator@PEAU?$__hash_node@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@PEAX@__1@std@@@__1@std@@_N@12@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@12@AEBUpiecewise_construct_t@12@$$QEAV?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@12@$$QEAV?$tuple@$$V@12@@Z
diff --git a/third_party/abseil-cpp/symbols_x64_rel_asan.def b/third_party/abseil-cpp/symbols_x64_rel_asan.def
index 14daa8736d..78050362d7 100644
--- a/third_party/abseil-cpp/symbols_x64_rel_asan.def
+++ b/third_party/abseil-cpp/symbols_x64_rel_asan.def
@@ -75,8 +75,6 @@ EXPORTS
??$SetEdge@$0A@@CordRepBtree@cord_internal@absl@@QEAA?AUOpResult@012@_NPEAUCordRep@12@_K@Z
??$StrReplaceAll@V?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@std@@@absl@@YA?AV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@Vstring_view@0@AEBV?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@3@@Z
??$StrReplaceAll@V?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@std@@@absl@@YAHAEBV?$initializer_list@U?$pair@Vstring_view@absl@@V12@@__1@std@@@std@@PEAV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@2@@Z
- ??$ToChronoDuration@V?$duration@JV?$ratio@$0DM@$00@__1@std@@@chrono@__1@std@@@time_internal@absl@@YA?AV?$duration@JV?$ratio@$0DM@$00@__1@std@@@chrono@__1@std@@VDuration@1@@Z
- ??$ToChronoDuration@V?$duration@JV?$ratio@$0OBA@$00@__1@std@@@chrono@__1@std@@@time_internal@absl@@YA?AV?$duration@JV?$ratio@$0OBA@$00@__1@std@@@chrono@__1@std@@VDuration@1@@Z
??$__construct_at_end@PEBVFormatArgImpl@str_format_internal@absl@@@?$vector@VFormatArgImpl@str_format_internal@absl@@V?$allocator@VFormatArgImpl@str_format_internal@absl@@@__1@std@@@__1@std@@AEAAXPEBVFormatArgImpl@str_format_internal@absl@@0_K@Z
??$__construct_node_hash@AEBUpiecewise_construct_t@__1@std@@V?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@V?$tuple@$$V@23@@?$__hash_table@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@V?$__unordered_map_hasher@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$__unordered_map_equal@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$allocator@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@@23@@__1@std@@AEAA?AV?$unique_ptr@U?$__hash_node@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@PEAX@__1@std@@V?$__hash_node_destructor@V?$allocator@U?$__hash_node@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@PEAX@__1@std@@@__1@std@@@23@@12@_KAEBUpiecewise_construct_t@12@$$QEAV?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@12@$$QEAV?$tuple@$$V@12@@Z
??$__emplace_unique_key_args@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@AEBUpiecewise_construct_t@23@V?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@V?$tuple@$$V@23@@?$__hash_table@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@V?$__unordered_map_hasher@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$__unordered_map_equal@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@23@U?$equal_to@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@U?$hash@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@23@$00@23@V?$allocator@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@@23@@__1@std@@QEAA?AU?$pair@V?$__hash_iterator@PEAU?$__hash_node@U?$__hash_value_type@V?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@PEBVImpl@time_zone@cctz@time_internal@absl@@@__1@std@@PEAX@__1@std@@@__1@std@@_N@12@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@12@AEBUpiecewise_construct_t@12@$$QEAV?$tuple@AEBV?$basic_string@DU?$char_traits@D@__1@std@@V?$allocator@D@23@@__1@std@@@12@$$QEAV?$tuple@$$V@12@@Z
@@ -403,7 +401,6 @@ EXPORTS
?Find@ByChar@absl@@QEBA?AVstring_view@2@V32@_K@Z
?Find@ByLength@absl@@QEBA?AVstring_view@2@V32@_K@Z
?Find@ByString@absl@@QEBA?AVstring_view@2@V32@_K@Z
- ?FindFlatStartPiece@InlineRep@Cord@absl@@QEBA?AVstring_view@3@XZ
?FindPath@GraphCycles@synchronization_internal@absl@@QEBAHUGraphId@23@0HQEAU423@@Z
?FindSlow@CordRepRing@cord_internal@absl@@AEBA?AUPosition@123@I_K@Z
?FindTailSlow@CordRepRing@cord_internal@absl@@AEBA?AUPosition@123@I_K@Z
diff --git a/third_party/catapult b/third_party/catapult
-Subproject e9e999a4a88a2963b60bec778f340d3c3d00fa1
+Subproject 28b8ede735b79253b8689d5e270f4783e841364
diff --git a/third_party/depot_tools b/third_party/depot_tools
-Subproject 3c6f0eb95fddb6833820d3a10e80a7a2fb5d016
+Subproject 7d2693ad8d9d304391b1c1fee9f88f258af5a21
diff --git a/third_party/vulkan-deps/DEPS b/third_party/vulkan-deps/DEPS
index fe2bf88281..e9a9953ef2 100644
--- a/third_party/vulkan-deps/DEPS
+++ b/third_party/vulkan-deps/DEPS
@@ -9,28 +9,28 @@ vars = {
'chromium_git': 'https://chromium.googlesource.com',
# Current revision of glslang, the Khronos SPIRV compiler.
- 'glslang_revision': '48fd6c82b3fefb38e59dd799d8b12fddddf8e63c',
+ 'glslang_revision': '06ac14141222bc059f48609b9a4a68fdb6fc4814',
# Current revision of spirv-cross, the Khronos SPIRV cross compiler.
- 'spirv_cross_revision': '6a67891418a3f08be63f92726e049dc788e46f5b',
+ 'spirv_cross_revision': '779138f39fa33f6fe6dab2e3b21938884f74a4bb',
# Current revision fo the SPIRV-Headers Vulkan support library.
- 'spirv_headers_revision': '9c3fd01c8a91761b6e4be97ff4f13de76e779128',
+ 'spirv_headers_revision': '82becc8a8a92e509d3d8d635889da0a3c17d0606',
# Current revision of SPIRV-Tools for Vulkan.
- 'spirv_tools_revision': '92c17edde79a3afae2aee810da4ce03bc7088531',
+ 'spirv_tools_revision': 'cb96abbf7affd986016f17dd09f9f971138a922b',
# Current revision of Khronos Vulkan-Headers.
'vulkan_headers_revision': '76f00ef6cbb1886eb1162d1fa39bee8b51e22ee8',
# Current revision of Khronos Vulkan-Loader.
- 'vulkan_loader_revision': 'f503824ff8cbecfe39fb96ac89cbe959355dc311',
+ 'vulkan_loader_revision': '71bd6240afaef2c199b47f26d715091fa6fdf4f8',
# Current revision of Khronos Vulkan-Tools.
- 'vulkan_tools_revision': '5f3ce24e7a530d089842c8192c2565a672555250',
+ 'vulkan_tools_revision': 'ef20059aea7ec24d0842edca2f75255eaa33a7b0',
# Current revision of Khronos Vulkan-ValidationLayers.
- 'vulkan_validation_revision': '5501a60aa6d6d1d8d35aaa4a7c0bdda02a0108db',
+ 'vulkan_validation_revision': '8a6fe16b4a1bb1f26385991d61ab1169d2284776',
}
deps = {
diff --git a/third_party/vulkan-deps/glslang/src/README.md b/third_party/vulkan-deps/glslang/src/README.md
index 48118b2943..efe986cab2 100644
--- a/third_party/vulkan-deps/glslang/src/README.md
+++ b/third_party/vulkan-deps/glslang/src/README.md
@@ -169,8 +169,8 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" $SOURCE
For building on Android:
```bash
-cmake $SOURCE_DIR -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DANDROID_ABI=arm64-v8a -DCMAKE_BUILD_TYPE=Release -DANDROID_STL=c++_static -DANDROID_PLATFORM=android-24 -DCMAKE_SYSTEM_NAME=Android -DANDROID_TOOLCHAIN=clang -DANDROID_ARM_MODE=arm -DCMAKE_MAKE_PROGRAM=$ANDROID_NDK_ROOT/prebuilt/linux-x86_64/bin/make -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_ROOT/build/cmake/android.toolchain.cmake
-# If on Windows will be -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK_ROOT%\prebuilt\windows-x86_64\bin\make.exe
+cmake $SOURCE_DIR -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DANDROID_ABI=arm64-v8a -DCMAKE_BUILD_TYPE=Release -DANDROID_STL=c++_static -DANDROID_PLATFORM=android-24 -DCMAKE_SYSTEM_NAME=Android -DANDROID_TOOLCHAIN=clang -DANDROID_ARM_MODE=arm -DCMAKE_MAKE_PROGRAM=$ANDROID_NDK_HOME/prebuilt/linux-x86_64/bin/make -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake
+# If on Windows will be -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK_HOME%\prebuilt\windows-x86_64\bin\make.exe
# -G is needed for building on Windows
# -DANDROID_ABI can also be armeabi-v7a for 32 bit
```
diff --git a/third_party/vulkan-deps/spirv-cross/src b/third_party/vulkan-deps/spirv-cross/src
-Subproject 6a67891418a3f08be63f92726e049dc788e46f5
+Subproject 779138f39fa33f6fe6dab2e3b21938884f74a4b
diff --git a/third_party/vulkan-deps/spirv-headers/src/CMakeLists.txt b/third_party/vulkan-deps/spirv-headers/src/CMakeLists.txt
index f19390aadf..147f7adeee 100644
--- a/third_party/vulkan-deps/spirv-headers/src/CMakeLists.txt
+++ b/third_party/vulkan-deps/spirv-headers/src/CMakeLists.txt
@@ -89,9 +89,14 @@ if (SPIRV_HEADERS_ENABLE_INSTALL)
set(namespace "${PROJECT_NAME}::")
include(CMakePackageConfigHelpers)
+
+ if (NOT CMAKE_VERSION VERSION_LESS 3.14)
+ set(arch_independent_str ARCH_INDEPENDENT)
+ endif()
write_basic_package_version_file(
"${version_config}"
COMPATIBILITY SameMajorVersion
+ ${arch_independent_str}
)
configure_package_config_file(
diff --git a/third_party/vulkan-deps/spirv-tools/src/kokoro/scripts/windows/build.bat b/third_party/vulkan-deps/spirv-tools/src/kokoro/scripts/windows/build.bat
index 24e29ccf08..8c9d6892c2 100644
--- a/third_party/vulkan-deps/spirv-tools/src/kokoro/scripts/windows/build.bat
+++ b/third_party/vulkan-deps/spirv-tools/src/kokoro/scripts/windows/build.bat
@@ -22,7 +22,7 @@ set BUILD_TYPE=%1
set VS_VERSION=%2
:: Force usage of python 3.6
-set PATH=C:\python36;"C:\Program Files\CMake\bin";%PATH%
+set PATH=C:\python36;"C:\Program Files\cmake-3.23.1-windows-x86_64\bin";%PATH%
cd %SRC%
git clone --depth=1 https://github.com/KhronosGroup/SPIRV-Headers external/spirv-headers
diff --git a/third_party/vulkan-deps/spirv-tools/src/source/CMakeLists.txt b/third_party/vulkan-deps/spirv-tools/src/source/CMakeLists.txt
index ab411737eb..98559b8fe9 100644
--- a/third_party/vulkan-deps/spirv-tools/src/source/CMakeLists.txt
+++ b/third_party/vulkan-deps/spirv-tools/src/source/CMakeLists.txt
@@ -407,7 +407,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
find_library(LIBRT rt)
if(LIBRT)
foreach(target ${SPIRV_TOOLS_TARGETS})
- target_link_libraries(${target} ${LIBRT})
+ target_link_libraries(${target} rt)
endforeach()
endif()
endif()
diff --git a/third_party/vulkan-deps/vulkan-loader/src b/third_party/vulkan-deps/vulkan-loader/src
-Subproject f503824ff8cbecfe39fb96ac89cbe959355dc31
+Subproject 71bd6240afaef2c199b47f26d715091fa6fdf4f
diff --git a/third_party/vulkan-deps/vulkan-tools/src b/third_party/vulkan-deps/vulkan-tools/src
-Subproject 5f3ce24e7a530d089842c8192c2565a67255525
+Subproject ef20059aea7ec24d0842edca2f75255eaa33a7b
diff --git a/third_party/vulkan-deps/vulkan-validation-layers/src b/third_party/vulkan-deps/vulkan-validation-layers/src
-Subproject 5501a60aa6d6d1d8d35aaa4a7c0bdda02a0108d
+Subproject 8a6fe16b4a1bb1f26385991d61ab1169d228477
diff --git a/third_party/zlib/contrib/bench/zlib_bench.cc b/third_party/zlib/contrib/bench/zlib_bench.cc
index 252560ea9e..fcb28486e1 100644
--- a/third_party/zlib/contrib/bench/zlib_bench.cc
+++ b/third_party/zlib/contrib/bench/zlib_bench.cc
@@ -193,7 +193,34 @@ void verify_equal(const char* input, size_t size, std::string* output) {
exit(3);
}
-void zlib_file(const char* name, const zlib_wrapper type, int width) {
+void check_file(const Data& file, zlib_wrapper type) {
+ std::string compressed;
+ zlib_compress(type, file.data.get(), file.size, &compressed, true);
+
+ unsigned long check = crc32_z(0, Z_NULL, 0);
+ const Bytef* data = (const Bytef*)compressed.data();
+ static_assert(sizeof(z_size_t) == sizeof(size_t), "z_size_t size");
+ check = crc32_z(check, data, (z_size_t)compressed.size());
+
+ const size_t compressed_length = compressed.size();
+ printf("data crc32 %.8lx length %zu\n", check, compressed_length);
+
+ if (type == kWrapperGZIP) {
+ uint32_t prev_word, last_word;
+ data += compressed_length - 8;
+ prev_word = data[3] << 24 | data[2] << 16 | data[1] << 8 | data[0];
+ data += 4; // last compressed data word
+ last_word = data[3] << 24 | data[2] << 16 | data[1] << 8 | data[0];
+ printf("gzip crc32 %.8x length %u\n", prev_word, last_word);
+ } else if (type == kWrapperZLIB) {
+ uint32_t last_word;
+ data += compressed_length - 4;
+ last_word = data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3];
+ printf("zlib adler %.8x\n", last_word);
+ }
+}
+
+void zlib_file(const char* name, zlib_wrapper type, int width, int check) {
/*
* Read the file data.
*/
@@ -208,6 +235,14 @@ void zlib_file(const char* name, const zlib_wrapper type, int width) {
printf("%s%-40s :\n", strategy, name);
/*
+ * Compress file: report output data checks.
+ */
+ if (check) {
+ check_file(file, type);
+ return;
+ }
+
+ /*
* Chop the data into blocks.
*/
const int block_size = 1 << 20;
@@ -311,9 +346,10 @@ void get_field_width(int argc, char* argv[], int& value) {
}
void usage_exit(const char* program) {
- static auto* options =
- "gzip|zlib|raw [--compression 0:9] [--huffman|--rle] [--field width]";
+ static auto* options = "gzip|zlib|raw"
+ " [--compression 0:9] [--huffman|--rle] [--field width] [--check]";
printf("usage: %s %s files ...\n", program, options);
+ printf("zlib version: %s\n", ZLIB_VERSION);
exit(1);
}
@@ -328,18 +364,21 @@ int main(int argc, char* argv[]) {
else
usage_exit(argv[0]);
- int file_size_field_width = 0;
+ int size_field_width = 0;
+ int file_check = 0;
while (argn < argc && argv[argn][0] == '-') {
if (get_option(argc, argv, "--compression")) {
if (!get_compression(argc, argv, zlib_compression_level))
usage_exit(argv[0]);
- } else if (get_option(argc, argv, "--field")) {
- get_field_width(argc, argv, file_size_field_width);
} else if (get_option(argc, argv, "--huffman")) {
zlib_strategy = Z_HUFFMAN_ONLY;
} else if (get_option(argc, argv, "--rle")) {
zlib_strategy = Z_RLE;
+ } else if (get_option(argc, argv, "--check")) {
+ file_check = 1;
+ } else if (get_option(argc, argv, "--field")) {
+ get_field_width(argc, argv, size_field_width);
} else {
usage_exit(argv[0]);
}
@@ -348,10 +387,10 @@ int main(int argc, char* argv[]) {
if (argn >= argc)
usage_exit(argv[0]);
- if (file_size_field_width < 6)
- file_size_field_width = 6;
+ if (size_field_width < 6)
+ size_field_width = 6;
while (argn < argc)
- zlib_file(argv[argn++], type, file_size_field_width);
+ zlib_file(argv[argn++], type, size_field_width, file_check);
return 0;
}