diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-13 00:07:01 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-12-13 00:07:01 +0000 |
commit | d3eb409207e115913ca857370ec3f57b0176bcc0 (patch) | |
tree | 16765b6280082dc0b023adec56c46e6ebb418999 | |
parent | 613d0296f2046c72066f26bb60fc8fda2addd45f (diff) | |
parent | 5d6766f0e0e4382d8cd4d0376232d344e40970b6 (diff) | |
download | angle-android14-qpr2-s1-release.tar.gz |
Snap for 11211173 from 5d6766f0e0e4382d8cd4d0376232d344e40970b6 to 24Q1-releaseandroid-14.0.0_r33android-14.0.0_r32android-14.0.0_r31android-14.0.0_r30android-14.0.0_r29android14-qpr2-s3-releaseandroid14-qpr2-s2-releaseandroid14-qpr2-s1-releaseandroid14-qpr2-release
Change-Id: Id5855d5fd079a29ecbd0c367f5bf73f6e0f16ee7
49 files changed, 611 insertions, 414 deletions
diff --git a/.gitignore b/.gitignore index a8fe4f8f49..b5c0781054 100644 --- a/.gitignore +++ b/.gitignore @@ -43,7 +43,7 @@ /third_party/catapult /third_party/cherry /third_party/clang-format/script -/third_party/clspv +/third_party/clspv/src /third_party/colorama/src /third_party/cpu_features/src /third_party/depot_tools diff --git a/Android.bp b/Android.bp index 6f3b44e941..b1a35b4eec 100644 --- a/Android.bp +++ b/Android.bp @@ -64,7 +64,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -165,7 +165,7 @@ cc_library_shared { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_DISPATCH_LIBRARY=\"libGLESv2_angle\"", "-DANGLE_EGL_LIBRARY_NAME=\"libEGL_angle\"", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", @@ -269,7 +269,7 @@ cc_library_shared { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -326,7 +326,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -386,7 +386,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -472,7 +472,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -549,7 +549,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -689,7 +689,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_CRC_FOR_PIPELINE_CACHE", @@ -1032,7 +1032,7 @@ cc_library_static { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -1145,7 +1145,7 @@ cc_library_static { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -1206,7 +1206,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -1253,7 +1253,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -1292,7 +1292,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -1342,7 +1342,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -1408,7 +1408,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -1480,7 +1480,7 @@ cc_library_static { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -1688,7 +1688,7 @@ cc_library_static { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -2871,7 +2871,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -2927,7 +2927,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -2984,7 +2984,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3053,7 +3053,7 @@ cc_library_static { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3100,7 +3100,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -3146,7 +3146,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -3190,7 +3190,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3256,7 +3256,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3322,7 +3322,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3390,7 +3390,7 @@ cc_library_static { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_CRC_FOR_PIPELINE_CACHE", @@ -3471,7 +3471,7 @@ cc_library_static { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3660,7 +3660,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_CRC_FOR_PIPELINE_CACHE", @@ -3713,7 +3713,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3762,7 +3762,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -3816,7 +3816,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -3861,7 +3861,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -3917,7 +3917,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -3959,7 +3959,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4001,7 +4001,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4044,7 +4044,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4087,7 +4087,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4148,7 +4148,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4194,7 +4194,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4240,7 +4240,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4282,7 +4282,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4325,7 +4325,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4379,7 +4379,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4424,7 +4424,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4482,7 +4482,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4531,7 +4531,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4581,7 +4581,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4635,7 +4635,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4685,7 +4685,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4753,7 +4753,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4801,7 +4801,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4852,7 +4852,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4901,7 +4901,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -4959,7 +4959,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5005,7 +5005,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5053,7 +5053,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5100,7 +5100,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5148,7 +5148,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5213,7 +5213,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5261,7 +5261,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5312,7 +5312,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5355,7 +5355,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5425,7 +5425,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5467,7 +5467,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5529,7 +5529,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5571,7 +5571,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5613,7 +5613,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5657,7 +5657,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5710,7 +5710,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5756,7 +5756,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5812,7 +5812,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5857,7 +5857,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5903,7 +5903,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -5950,7 +5950,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6018,7 +6018,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6064,7 +6064,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6111,7 +6111,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6157,7 +6157,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6205,7 +6205,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6253,7 +6253,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6296,7 +6296,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6343,7 +6343,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6386,7 +6386,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6434,7 +6434,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6481,7 +6481,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6527,7 +6527,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6572,7 +6572,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6614,7 +6614,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6660,7 +6660,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6708,7 +6708,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6755,7 +6755,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6797,7 +6797,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6846,7 +6846,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6892,7 +6892,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6935,7 +6935,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -6978,7 +6978,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7021,7 +7021,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7079,7 +7079,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7123,7 +7123,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7181,7 +7181,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7227,7 +7227,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7270,7 +7270,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7314,7 +7314,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7357,7 +7357,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7402,7 +7402,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7445,7 +7445,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7487,7 +7487,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7528,7 +7528,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7570,7 +7570,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7614,7 +7614,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7661,7 +7661,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DCR_CLANG_REVISION=\"llvmorg-18-init-12938-geb1d5065-1\"", "-DDYNAMIC_ANNOTATIONS_ENABLED=0", "-DHAVE_SYS_UIO_H", @@ -7750,7 +7750,7 @@ cc_library_static { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -7813,7 +7813,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -7877,7 +7877,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_CAPTURE_ENABLED=0", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", @@ -7972,7 +7972,7 @@ cc_defaults { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_CAPTURE_ENABLED=0", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", @@ -8030,7 +8030,7 @@ cc_defaults { ], cflags: [ "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", "-DANGLE_ENABLE_GLOBAL_MUTEX_LOAD_TIME_ALLOCATE=1", @@ -8139,7 +8139,7 @@ cc_library_shared { cflags: [ "-DABSL_ALLOCATOR_NOTHROW=1", "-DANDROID", - "-DANDROID_NDK_VERSION_ROLL=r26b_1", + "-DANDROID_NDK_VERSION_ROLL=r25c_1", "-DANGLE_CAPTURE_ENABLED=0", "-DANGLE_ENABLE_CONTEXT_MUTEX=1", "-DANGLE_ENABLE_CONTEXT_MUTEX_RECURSION=1", @@ -45,13 +45,13 @@ vars = { 'checkout_angle_mesa': False, # Version of Chromium our Chromium-based DEPS are mirrored from. - 'chromium_revision': '27249fedce4b0c4800bb08eda18835d7b0509d23', + 'chromium_revision': 'fd8978318166f096a12c45ebb30829bfbd432d75', # 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': 'af594bc856e58f133cc942b611f59bd1afd70300', + 'vk_gl_cts_revision': 'ecdec25ff753b9b9a48bed694ee9e83cf76b81bb', # Current revision of googletest. # Note: this dep cannot be auto-rolled b/c of nesting. @@ -90,16 +90,16 @@ 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': '69bde63990232fa4c5f4ffaf61e95596c25f03f3', + 'catapult_revision': 'd3f7f448d3d29d95a01a54b8fd6873da3608f596', # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:16.20231129.1.1', + 'fuchsia_version': 'version:17.20231211.2.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling luci-go # and whatever else without interference from each other. - 'luci_go': 'git_revision:1ea45c1829514ff20c476f083462e7b8fdfaf9ae', + 'luci_go': 'git_revision:0ffd60c8bd4fa542fb8d7c6a60ead9b96dc4387a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling android_sdk_build-tools_version @@ -135,7 +135,7 @@ vars = { 'reclient_version': 're_client_version:0.124.1.13f78cc-gomaip', # siso CIPD package version. - 'siso_version': 'git_revision:acf6e472017229d73c507e50c8660c2d3a2021e0', + 'siso_version': 'git_revision:d8744c99a9e175e6c4569de0717bd8c53981ce0c', # 'magic' text to tell depot_tools that git submodules should be accepted but # but parity with DEPS file is expected. @@ -145,12 +145,12 @@ vars = { deps = { 'build': { - 'url': Var('chromium_git') + '/chromium/src/build.git@6fdac9cc5eac1d59c208601c03c183007310bca2', + 'url': Var('chromium_git') + '/chromium/src/build.git@2711b553c360c071757a04029049bf6319fc658f', 'condition': 'not build_with_chromium', }, 'buildtools': { - 'url': Var('chromium_git') + '/chromium/src/buildtools.git@9a7b2358106026b412e3233c280b58a98280a024', + 'url': Var('chromium_git') + '/chromium/src/buildtools.git@d7e0ec130696bf72ecf03ce0cd1c372f19214ce3', 'condition': 'not build_with_chromium', }, @@ -204,12 +204,12 @@ deps = { }, 'testing': { - 'url': '{chromium_git}/chromium/src/testing@1633d23fc7b6ea79319a60a9e65a75ecc9d00771', + 'url': '{chromium_git}/chromium/src/testing@a5c15ce1b69c4f37b0eac636f3306b5c23c92232', 'condition': 'not build_with_chromium', }, 'third_party/abseil-cpp': { - 'url': Var('chromium_git') + '/chromium/src/third_party/abseil-cpp@025aa883df36d96e43b551dab5e96042e11b50d3', + 'url': Var('chromium_git') + '/chromium/src/third_party/abseil-cpp@15a737bc5caae78b8568a886a7b18bd7adf5bd8a', 'condition': 'not build_with_chromium', }, @@ -266,7 +266,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/android_build_tools/manifest_merger', - 'version': 'SdNR04V227YL22FMmKoS4AdLYwv6MJe8HBAZKNhXoCsC', + 'version': '_2qAeWRS5XnDom8pAt4e7GuEof_KB86zQO0Lnr5uQBQC', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -282,7 +282,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/android_toolchain/android_toolchain', - 'version': 'XSjN84pHxBPX13CrUj3fQjEroncvFGGeJY9wDVEDswoC', + 'version': 'NSOM616pOQCfRfDAhC72ltgjyUQp9lAWCMzlmgB18dAC', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -369,7 +369,7 @@ deps = { 'condition': 'checkout_android and not build_with_chromium', }, - 'third_party/clspv': { + 'third_party/clspv/src': { 'url': Var('chromium_git') + '/external/github.com/google/clspv@a173c052455434a422bcfe5c12ffe44d574fd6e1', 'condition': 'not build_with_chromium', }, @@ -380,7 +380,7 @@ deps = { }, 'third_party/depot_tools': { - 'url': Var('chromium_git') + '/chromium/tools/depot_tools.git@05a55efaa9d4bda7247efac74c4cda68527d8eec', + 'url': Var('chromium_git') + '/chromium/tools/depot_tools.git@aa65be9856206448e066d630fe26e50109766649', 'condition': 'not build_with_chromium', }, @@ -499,7 +499,7 @@ deps = { }, 'third_party/libc++/src': { - 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxx.git@4ab8957af3274befed723defd5333873478ca7c6', + 'url': Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxx.git@a88e6d6daa3e091f662c8a198b5d3a0d3a723705', 'condition': 'not build_with_chromium', }, @@ -586,7 +586,7 @@ deps = { 'packages': [ { 'package': 'chromium/third_party/r8', - 'version': 'NyEPLS024hp8BUV5gx7DSIZzgCEWY-tevgRF8F1RWYgC', + 'version': 'w4FEa7Y-q3MIsKwjR0LC_-fPnANe8DlIIAWD_pMF5z0C', }, ], 'condition': 'checkout_android and not build_with_chromium', @@ -653,7 +653,7 @@ deps = { }, 'third_party/vulkan-deps': { - 'url': Var('chromium_git') + '/vulkan-deps@fb2389e52832250e05c0a5f08a624e31e6401106', + 'url': Var('chromium_git') + '/vulkan-deps@510bed662233e6097415afe5f0050a714952014a', 'condition': 'not build_with_chromium', }, @@ -673,12 +673,12 @@ deps = { }, 'tools/android': { - 'url': Var('chromium_git') + '/chromium/src/tools/android@143660d1865d5b3ed735ec11611b80ef261d791a', + 'url': Var('chromium_git') + '/chromium/src/tools/android@b66828a72cc3ff12ae366c03e735fe4a3942c6f3', 'condition': 'checkout_android and not build_with_chromium', }, 'tools/clang': { - 'url': Var('chromium_git') + '/chromium/src/tools/clang.git@28cba3ec325c9ff378264198cef20fda89519c5d', + 'url': Var('chromium_git') + '/chromium/src/tools/clang.git@3ccfff74a0d0cda8ddf2612cc09217278fb018bc', 'condition': 'not build_with_chromium', }, @@ -709,7 +709,7 @@ deps = { }, 'tools/mb': { - 'url': Var('chromium_git') + '/chromium/src/tools/mb@2206f69ffdbbae9e171a2012445d3d04664ad943', + 'url': Var('chromium_git') + '/chromium/src/tools/mb@0da27905d2c640b7a7ddb8b7d823efc543d07296', 'condition': 'not build_with_chromium', }, @@ -724,7 +724,7 @@ deps = { }, 'tools/perf': { - 'url': Var('chromium_git') + '/chromium/src/tools/perf@e582bc0452b2c11ed4afcee54bb7dd341c8c9d90', + 'url': Var('chromium_git') + '/chromium/src/tools/perf@d689bae2fa351f89924938a7d5d580b076d03f6e', 'condition': 'not build_with_chromium', }, @@ -742,7 +742,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/linux-amd64', - 'version': 'Zoe29KUyqS2oKisSjN23NSWAF2ABY3oXtvnMcmNgFf8C', + 'version': 'gF8-tllaG53TS_NMzDyBBEon5i-UMVdhPADIv_39ZpsC', }, ], 'dep_type': 'cipd', @@ -753,7 +753,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/windows-amd64', - 'version': 'zEvgRWYnnTxGYfan6MIEqFyxyBfzgryl755RHBP98wYC', + 'version': 'wCfWvHnVA6RiLbvH5NL3Pc51a6uladkFepTSj06s370C', }, ], 'dep_type': 'cipd', @@ -764,7 +764,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/mac-amd64', - 'version': 'JqbiGnBxG8TPvCgKA3OOreiQ59Tn_xZoQOrWCP7rzOUC', + 'version': '5z5sg3DatlGfhGSg6wO3JTMyBofd0Dr9_bCBVDBfuJYC', }, ], 'dep_type': 'cipd', @@ -775,7 +775,7 @@ deps = { 'packages': [ { 'package': 'skia/tools/goldctl/mac-arm64', - 'version': '6U5_zURvPx2a03ZdJP9q_CPrUrIp3nU7x9u9a7ZWvFsC', + 'version': 'tJys4TOPo-asafdTKs677RtNMEWct4WvJ4-SDmdqoYkC', }, ], 'dep_type': 'cipd', @@ -3068,6 +3068,16 @@ deps = { 'dep_type': 'cipd', 'condition': 'checkout_angle_restricted_traces', }, + 'src/tests/restricted_traces/thimbleweed_park': { + 'packages': [ + { + 'package': 'angle/traces/thimbleweed_park', + 'version': 'version:1', + }, + ], + 'dep_type': 'cipd', + 'condition': 'checkout_angle_restricted_traces', + }, 'src/tests/restricted_traces/tmnt_shredders_revenge': { 'packages': [ { diff --git a/build/android/pylib/local/device/local_device_test_run.py b/build/android/pylib/local/device/local_device_test_run.py index d5add832e9..2cff3e6082 100644 --- a/build/android/pylib/local/device/local_device_test_run.py +++ b/build/android/pylib/local/device/local_device_test_run.py @@ -100,10 +100,22 @@ class LocalDeviceTestRun(test_run.TestRun): consecutive_device_errors = 0 if isinstance(test, list): + result_log = '' + if len(test) > 1: + result_log = ('The test command timed out when running multiple ' + 'tests including this test. It does not ' + 'necessarily mean this specific test timed out.') + # Ensure instrumentation tests not batched at env level retries. + for t in test: + # |dict| type infers it's an instrumentation test. + if isinstance(t, dict) and t['annotations']: + t['annotations'].pop('Batch', None) + results.AddResults( base_test_result.BaseTestResult( self._GetUniqueTestName(t), - base_test_result.ResultType.TIMEOUT) for t in test) + base_test_result.ResultType.TIMEOUT, + log=result_log) for t in test) else: results.AddResult( base_test_result.BaseTestResult( diff --git a/build/config/android/BUILD.gn b/build/config/android/BUILD.gn index 697d598f0b..6705999966 100644 --- a/build/config/android/BUILD.gn +++ b/build/config/android/BUILD.gn @@ -82,6 +82,20 @@ config("compiler") { # that is Android-only. Please see that target for advice on what should go in # :runtime_library vs. :compiler. config("runtime_library") { + libs = [] + ldflags = [] + + # On 64-bit platforms, the only symbols provided by libandroid_support.a are + # strto{d,f,l,ul}_l. These symbols are not used by our libc++, and newer NDKs + # don't provide a libandroid_support.a on 64-bit platforms, so we only depend + # on this library on 32-bit platforms. + if (current_cpu == "arm" || current_cpu == "x86") { + libs += [ "android_support" ] + } + + if (current_cpu == "arm" && arm_version == 6) { + libs += [ "atomic" ] + } } config("hide_all_but_jni_onload") { diff --git a/build/config/android/config.gni b/build/config/android/config.gni index 1b8352cdef..37398140f7 100644 --- a/build/config/android/config.gni +++ b/build/config/android/config.gni @@ -118,9 +118,11 @@ if (is_android || is_chromeos) { # Today (2023-08-30) only the canary Android NDK supports RISC-V64. default_android_ndk_root = "//third_party/android_toolchain_canary/ndk" } - default_android_ndk_version = "r26b" + default_android_ndk_version = "r25c" + default_android_ndk_major_version = 25 } else { assert(defined(default_android_ndk_version)) + assert(defined(default_android_ndk_major_version)) } public_android_sdk_root = "//third_party/android_sdk/public" @@ -181,6 +183,7 @@ if (is_android || is_chromeos) { declare_args() { android_ndk_root = default_android_ndk_root android_ndk_version = default_android_ndk_version + android_ndk_major_version = default_android_ndk_major_version # Android API level for 32 bits platforms android32_ndk_api_level = default_min_sdk_version @@ -389,6 +392,8 @@ if (is_android || is_chromeos) { android_tool_prefix = "$clang_base_path/bin/llvm-" android_readelf = "${android_tool_prefix}readobj" android_objcopy = "${android_tool_prefix}objcopy" + android_gdbserver = + "$android_ndk_root/prebuilt/$android_prebuilt_arch/gdbserver/gdbserver" android_sdk_tools_bundle_aapt2 = "${android_sdk_tools_bundle_aapt2_dir}/aapt2" diff --git a/build/config/c++/BUILD.gn b/build/config/c++/BUILD.gn index f8372d24dc..abe15b4aa7 100644 --- a/build/config/c++/BUILD.gn +++ b/build/config/c++/BUILD.gn @@ -44,15 +44,6 @@ config("runtime_library") { defines += [ "CR_LIBCXX_REVISION=$libcxx_revision" ] - # Temporarily add a define to force a rebuild when changing - # buildtools/third_party/libc++/__config_site which isn't picked up by - # dependency tracking (because it's an #include of headers included via - # -isysroot). - # TODO(thakis): Remove this after a few days. - if (is_android) { - defines += [ "TEMP_REBUILD_HACK" ] - } - if (is_win) { # Intentionally not using libc++abi on Windows because libc++abi only # implements the Itanium C++ ABI, and not the Microsoft ABI which we use on diff --git a/build/config/coverage/BUILD.gn b/build/config/coverage/BUILD.gn index 6c3fca91bc..2939e37f48 100644 --- a/build/config/coverage/BUILD.gn +++ b/build/config/coverage/BUILD.gn @@ -27,8 +27,11 @@ config("default_coverage") { } cflags = [ + # LINT.IfChange "-fprofile-instr-generate", "-fcoverage-mapping", + "-mllvm", + "-runtime-counter-relocation=true", # Following experimental flags removes unused header functions from the # coverage mapping data embedded in the test binaries, and the reduction @@ -36,6 +39,11 @@ config("default_coverage") { # MacOS. Please refer to crbug.com/796290 for more details. "-mllvm", "-limited-coverage-experimental=true", + + # LINT.ThenChange( + # /build/config/siso/clang_code_coverage_wrapper.star, + # /build/toolchain/clang_code_coverage_wrapper.py, + # ) ] # Rust coverage is gated on using the Chromium-built Rust toolchain as it @@ -43,7 +51,10 @@ config("default_coverage") { # tools that will be used to process the coverage output. This is because # the coverage file format is not stable. if (use_chromium_rust_toolchain) { - rustflags += [ "-Cinstrument-coverage" ] + rustflags += [ + "-Cinstrument-coverage", + "-Cllvm-args=-runtime-counter-relocation", + ] } if (is_linux || is_chromeos) { diff --git a/build/config/siso/clang_code_coverage_wrapper.star b/build/config/siso/clang_code_coverage_wrapper.star index be0f5f4fe8..70f18d44e7 100644 --- a/build/config/siso/clang_code_coverage_wrapper.star +++ b/build/config/siso/clang_code_coverage_wrapper.star @@ -17,6 +17,8 @@ load("@builtin//struct.star", "module") _COVERAGE_FLAGS = [ "-fprofile-instr-generate", "-fcoverage-mapping", + "-mllvm", + "-runtime-counter-relocation=true", # Following experimental flags remove unused header functions from the # coverage mapping data embedded in the test binaries, and the reduction # of binary size enables building Chrome's large unit test targets on diff --git a/build/config/siso/config.star b/build/config/siso/config.star index 81da4ab110..562cec7f4d 100644 --- a/build/config/siso/config.star +++ b/build/config/siso/config.star @@ -12,9 +12,6 @@ __KNOWN_CONFIG_OPTIONS = [ # TODO: b/308405411 - Enable this config for all builders. "remote-devtools-frontend-typescript", - - # TODO: b/314693395 - Enable reproxy mode for cros by default. - "reproxy-cros", ] def __check(ctx): diff --git a/build/config/siso/main.star b/build/config/siso/main.star index 690c51e84d..41307b6b7f 100644 --- a/build/config/siso/main.star +++ b/build/config/siso/main.star @@ -27,16 +27,32 @@ def __use_large_b289968566(ctx, step_config): "./ash_clang_x64/obj/chrome/browser/browser/chrome_browser_interface_binders.o", "./obj/chrome/browser/ash/ash/autotest_private_api.o", "./obj/chrome/browser/ash/ash/chrome_browser_main_parts_ash.o", + "./obj/chrome/browser/ash/system_web_apps/apps/browser_tests/personalization_app_wallpaper_daily_refresh_browsertest.o", "./obj/chrome/browser/ash/system_web_apps/browser_tests/system_web_app_manager_browsertest.o", + "./obj/chrome/browser/ash/unit_tests/wizard_controller_unittest.o", + "./obj/chrome/browser/autofill/interactive_ui_tests/autofill_interactive_uitest.o", "./obj/chrome/browser/browser/browser_prefs.o", "./obj/chrome/browser/browser/chrome_browser_interface_binders.o", + "./obj/chrome/browser/browser/chrome_content_browser_client.o", "./obj/chrome/browser/ui/ash/holding_space/browser_tests/holding_space_ui_browsertest.o", + "./obj/chrome/test/browser_tests/app_list_client_impl_browsertest.o", + "./obj/chrome/test/browser_tests/browser_non_client_frame_view_browsertest.o", "./obj/chrome/test/browser_tests/browser_non_client_frame_view_chromeos_browsertest.o", "./obj/chrome/test/browser_tests/chrome_shelf_controller_browsertest.o", "./obj/chrome/test/browser_tests/device_local_account_browsertest.o", "./obj/chrome/test/browser_tests/file_manager_browsertest_base.o", + "./obj/chrome/test/browser_tests/full_restore_app_launch_handler_browsertest.o", + "./obj/chrome/test/browser_tests/login_browsertest.o", + "./obj/chrome/test/browser_tests/pwa_install_view_browsertest.o", "./obj/chrome/test/browser_tests/remote_apps_manager_browsertest.o", + "./obj/chrome/test/browser_tests/safe_browsing_blocking_page_test.o", + "./obj/chrome/test/browser_tests/save_card_bubble_views_browsertest.o", + "./obj/chrome/test/browser_tests/scalable_iph_browsertest.o", "./obj/chrome/test/browser_tests/spoken_feedback_browsertest.o", + "./obj/chrome/test/interactive_ui_tests/iban_bubble_view_uitest.o", + "./obj/chrome/test/interactive_ui_tests/local_card_migration_uitest.o", + "./obj/chrome/test/interactive_ui_tests/system_web_app_interactive_uitest.o", + "./obj/chrome/test/test_support_ui/offer_notification_bubble_views_test_base.o", "./obj/chrome/test/unit_tests/chrome_browsing_data_remover_delegate_unittest.o", "./obj/chrome/test/unit_tests/site_settings_handler_unittest.o", "./obj/content/browser/browser/browser_interface_binders.o", diff --git a/build/config/siso/reproxy.star b/build/config/siso/reproxy.star index 8215c72941..4aacae009c 100644 --- a/build/config/siso/reproxy.star +++ b/build/config/siso/reproxy.star @@ -76,7 +76,12 @@ def __parse_cros_rewrapper_cmdline(ctx, cmd): fail("couldn't find rewrapper cfg file in %s" % str(cmd.args)) rwcfg = rewrapper_cfg.parse(ctx, cfg_file) inputs = rwcfg.get("inputs", []) - inputs.append(toolchainpath) + inputs.extend([ + path.join(toolchainpath, "bin"), + path.join(toolchainpath, "lib"), + path.join(toolchainpath, "usr/bin"), + path.join(toolchainpath, "usr/lib64"), + ]) rwcfg["inputs"] = inputs rwcfg["preserve_symlinks"] = True return args, rwcfg @@ -285,16 +290,6 @@ def __step_config(ctx, step_config): if not rule.get("action"): fail("clang rule %s found without action" % rule["name"]) - if not config.get(ctx, "reproxy-cros"): - # TODO: b/314698010 - use reproxy mode once performance issue is fixed. - cros_rule = { - "name": rule["name"] + "/cros", - "action": rule["action"], - "command_prefix": "../../build/cros_cache/", - "use_remote_exec_wrapper": True, - } - new_rules.append(cros_rule) - new_rule = { "name": rule["name"], "action": rule["action"], diff --git a/build/fuchsia/test/flash_device.py b/build/fuchsia/test/flash_device.py index 23d6fa30e1..829a592d4a 100755 --- a/build/fuchsia/test/flash_device.py +++ b/build/fuchsia/test/flash_device.py @@ -79,6 +79,7 @@ def update_required( def _run_flash_command(system_image_dir: str, target_id: Optional[str]): """Helper function for running `ffx target flash`.""" + logging.info('Flashing %s to %s', system_image_dir, target_id) manifest = os.path.join(system_image_dir, 'flash-manifest.manifest') configs = [ 'fastboot.usb.disabled=true', @@ -96,10 +97,13 @@ def _run_flash_command(system_image_dir: str, target_id: Optional[str]): # This prevents multiple fastboot binaries from flashing concurrently, # which should increase the odds of flashing success. with lock(_FF_LOCK, timeout=_FF_LOCK_ACQ_TIMEOUT): - common.run_ffx_command(cmd=('target', 'flash', manifest, - '--no-bootloader-reboot'), - target_id=target_id, - configs=configs) + logging.info( + 'Flash result %s', + common.run_ffx_command(cmd=('target', 'flash', manifest, + '--no-bootloader-reboot'), + target_id=target_id, + capture_output=True, + configs=configs).stdout) def flash(system_image_dir: str, @@ -133,21 +137,22 @@ def update(system_image_dir: str, needs_update, actual_image_dir = update_required(os_check, system_image_dir, target, serial_num) - - system_image_dir = actual_image_dir - if needs_update: - flash(system_image_dir, target, serial_num) - # Always reboot the device since the ffx may ignore the device state - # after the flash. See - # https://cs.opensource.google/fuchsia/fuchsia/+/main:src/developer/ffx/lib/fastboot/src/common/fastboot.rs;drc=cfba0bdd4f8857adb6409f8ae9e35af52c0da93e;l=454 - # TODO(crbug.com/1490434): May consider is_in_fuchsia and - # test_connection before the reboot. - try: - boot_device(target, BootMode.REGULAR, serial_num, must_boot=True) - except: # pylint: disable=bare-except - # If unfortunately, the reboot failed, it's still worth continuing - # the test rather than failing here. - pass + logging.info('update_required %s, actual_image_dir %s', needs_update, + actual_image_dir) + if not needs_update: + return + flash(actual_image_dir, target, serial_num) + # Always reboot the device since the ffx may ignore the device state + # after the flash. See + # https://cs.opensource.google/fuchsia/fuchsia/+/main:src/developer/ffx/lib/fastboot/src/common/fastboot.rs;drc=cfba0bdd4f8857adb6409f8ae9e35af52c0da93e;l=454 + # TODO(crbug.com/1490434): May consider is_in_fuchsia and + # test_connection before the reboot. + try: + boot_device(target, BootMode.REGULAR, serial_num, must_boot=True) + except: # pylint: disable=bare-except + # If unfortunately, the reboot failed, it's still worth continuing + # the test rather than failing here. + pass def register_update_args(arg_parser: argparse.ArgumentParser, diff --git a/build/fuchsia/test/serial_boot_device.py b/build/fuchsia/test/serial_boot_device.py index bfc7606935..5de9bb59ec 100755 --- a/build/fuchsia/test/serial_boot_device.py +++ b/build/fuchsia/test/serial_boot_device.py @@ -13,12 +13,14 @@ import json import logging import os import shutil +import signal import subprocess import sys import time from typing import List from boot_device import BootMode +from compatible_utils import running_unattended # pylint: disable=too-many-return-statements, too-many-branches @@ -196,6 +198,18 @@ def _run_fastboot(args: List[str], serial_num: str) -> bool: return False +def _shutdown_if_serial_is_unavailable(node_id: str) -> None: + if not running_unattended(): + return + # pylint: disable=subprocess-run-check + if subprocess.run(['serialio', node_id, 'poll']).returncode != 0: + logging.warning('shutting down the docker by killing the pid 1') + # In docker instance, killing root process will cause the instance to be + # shut down and restarted by swarm_docker. So the updated tty can be + # attached to the new docker instance. + os.kill(1, signal.SIGTERM) + + def main(action: str) -> int: """Main entry of serial_boot_device.""" node_id = os.getenv('FUCHSIA_NODENAME') @@ -208,10 +222,13 @@ def main(action: str) -> int: handlers.append( logging.FileHandler('/home/swarming/dmc.%s.log' % node_id)) logging.basicConfig(format='%(levelname)s %(asctime)s %(message)s', - handlers=handlers) - logging.info('running command %s', sys.argv) + handlers=handlers, + level=logging.INFO) + logging.info('Running command %s against %s %s', sys.argv, node_id, + serial_num) if action == 'health-check': + _shutdown_if_serial_is_unavailable(node_id) if is_in_fuchsia(node_id) or is_in_fastboot(serial_num): # Print out the json result without using logging to avoid any # potential formatting issue. @@ -227,6 +244,8 @@ def main(action: str) -> int: node_id, serial_num) return 1 if action in ['reboot', 'after-task']: + if action == 'after-task': + _shutdown_if_serial_is_unavailable(node_id) if boot_device(node_id, serial_num, BootMode.REGULAR, must_boot=True): return 0 logging.error( @@ -258,7 +277,7 @@ def main(action: str) -> int: print('chromium') return 0 if action == 'before-task': - # Do nothing + _shutdown_if_serial_is_unavailable(node_id) return 0 if action == 'set-power-state': # Do nothing diff --git a/build/toolchain/clang_code_coverage_wrapper.py b/build/toolchain/clang_code_coverage_wrapper.py index a1cf900026..28b9539662 100755 --- a/build/toolchain/clang_code_coverage_wrapper.py +++ b/build/toolchain/clang_code_coverage_wrapper.py @@ -63,6 +63,8 @@ import sys _COVERAGE_FLAGS = [ '-fprofile-instr-generate', '-fcoverage-mapping', + '-mllvm', + '-runtime-counter-relocation=true', # Following experimental flags remove unused header functions from the # coverage mapping data embedded in the test binaries, and the reduction # of binary size enables building Chrome's large unit test targets on diff --git a/build/toolchain/concurrent_links.gni b/build/toolchain/concurrent_links.gni index c3275b42fa..a842f0bd28 100644 --- a/build/toolchain/concurrent_links.gni +++ b/build/toolchain/concurrent_links.gni @@ -67,6 +67,13 @@ if (concurrent_links == -1) { } else { _args = [ "--mem_per_link_gb=4" ] } + } else if (is_chromeos && is_msan) { + # crbug.com/1505350 - CrOS MSan builder consumes more memory and crushes. + # Max 25.2GB, Avg: 9.4GB, Median: 7.9GB + _args = [ "--mem_per_link_gb=12" ] + } else if (is_chromeos && is_debug) { + # b/315102033, b/312072730: Large links use 9GB-13.5GB. + _args = [ "--mem_per_link_gb=10" ] } else if ((is_linux || is_chromeos_lacros) && symbol_level == 0) { # Memory consumption on link without debug symbols is low on linux. _args = [ "--mem_per_link_gb=3" ] @@ -82,13 +89,6 @@ if (concurrent_links == -1) { # could be optimized (maybe to 12GB or for different configs like # component build). _args = [ "--mem_per_link_gb=16" ] - } else if (is_chromeos && is_msan) { - # crbug.com/1505350 - CrOS MSan builder consumes more memory and crushes. - # Max 25.2GB, Avg: 9.4GB, Median: 7.9GB - _args = [ "--mem_per_link_gb=12" ] - } else if (is_chromeos && is_debug) { - # b/315102033, b/312072730: Large links use 9GB-13.5GB. - _args = [ "--mem_per_link_gb=10" ] } else { _args = [] } diff --git a/build/util/LASTCHANGE b/build/util/LASTCHANGE index 2485fbbfe1..2723c1f6f8 100644 --- a/build/util/LASTCHANGE +++ b/build/util/LASTCHANGE @@ -1,2 +1,2 @@ -LASTCHANGE=6fdac9cc5eac1d59c208601c03c183007310bca2-refs/heads/main@{#1234845} +LASTCHANGE=2711b553c360c071757a04029049bf6319fc658f-refs/heads/main@{#1236077} LASTCHANGE_YEAR=2023 diff --git a/build/util/LASTCHANGE.committime b/build/util/LASTCHANGE.committime index 8cc9eaafa4..d8f188351b 100644 --- a/build/util/LASTCHANGE.committime +++ b/build/util/LASTCHANGE.committime @@ -1 +1 @@ -1702009805
\ No newline at end of file +1702345200
\ No newline at end of file diff --git a/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json b/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json index 170a7cdf9d..66563e0ff2 100644 --- a/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json +++ b/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json @@ -68,7 +68,7 @@ "third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/device_group/CMakeLists.txt": "451a6c35fd38aec3212d02f14f201cf9", "third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/draw/CMakeLists.txt": - "22c7019abae23b5ecf76619f9af9284f", + "a4c10157d51b25408740a76a899ca95f", "third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/dynamic_state/CMakeLists.txt": "3db8818671533ace06b9b7710aeda461", "third_party/VK-GL-CTS/src/external/vulkancts/modules/vulkan/fragment_ops/CMakeLists.txt": diff --git a/scripts/code_generation_hashes/restricted_traces.json b/scripts/code_generation_hashes/restricted_traces.json index 99e951e723..0f9625c2ea 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": "e2fdeb9840527e3d0dc959a67bafdd0e", "src/tests/restricted_traces/restricted_traces.json": - "01f21a3b2dbeeee47f026544f6263d14" + "fa4401c7ee119ababb38887e4d175963" } diff --git a/src/compiler/translator/VariablePacker.cpp b/src/compiler/translator/VariablePacker.cpp index 0da61c8237..347395d382 100644 --- a/src/compiler/translator/VariablePacker.cpp +++ b/src/compiler/translator/VariablePacker.cpp @@ -239,11 +239,10 @@ bool VariablePacker::checkExpandedVariablesWithinPackingLimits( break; } topNonFullRow_ += GetVariablePackingRows(variable); - } - - if (topNonFullRow_ > maxRows_) - { - return false; + if (topNonFullRow_ > maxRows_) + { + return false; + } } // Packs the 3 column variables. @@ -255,12 +254,12 @@ bool VariablePacker::checkExpandedVariablesWithinPackingLimits( { break; } - num3ColumnRows += GetVariablePackingRows(variable); - } - if (topNonFullRow_ + num3ColumnRows > maxRows_) - { - return false; + num3ColumnRows += GetVariablePackingRows(variable); + if (topNonFullRow_ + num3ColumnRows > maxRows_) + { + return false; + } } fillColumns(topNonFullRow_, num3ColumnRows, 0, 3); diff --git a/src/libANGLE/Display.cpp b/src/libANGLE/Display.cpp index 9a4a73b63a..b2dc054476 100644 --- a/src/libANGLE/Display.cpp +++ b/src/libANGLE/Display.cpp @@ -1166,7 +1166,7 @@ Error Display::destroyInvalidEglObjects() while (!mInvalidSyncMap.empty()) { - destroySyncImpl(mInvalidSyncMap.begin()->second, &mInvalidSyncMap); + destroySyncImpl(mInvalidSyncMap.begin()->second->id(), &mInvalidSyncMap); } return NoError(); @@ -1206,7 +1206,8 @@ Error Display::terminate(Thread *thread, TerminateReason terminateReason) mInvalidSurfaceMap.insert(mState.surfaceMap.begin(), mState.surfaceMap.end()); mState.surfaceMap.clear(); - mInvalidSyncMap.insert(mSyncMap.begin(), mSyncMap.end()); + mInvalidSyncMap.insert(std::make_move_iterator(mSyncMap.begin()), + std::make_move_iterator(mSyncMap.end())); mSyncMap.clear(); // Cache total number of contexts before invalidation. This is used as a check to verify that @@ -1261,6 +1262,8 @@ Error Display::terminate(Thread *thread, TerminateReason terminateReason) // Clean up all invalid objects ANGLE_TRY(destroyInvalidEglObjects()); + mSyncPools.clear(); + mConfigSet.clear(); if (mDevice != nullptr && mDevice->getOwningDisplay() != nullptr) @@ -1641,17 +1644,29 @@ Error Display::createSync(const gl::Context *currentContext, ANGLE_TRY(restoreLostDevice()); } - angle::UniqueObjectPointer<egl::Sync, Display> syncPtr(new Sync(mImplementation, id, type), - this); + std::unique_ptr<Sync> sync; - ANGLE_TRY(syncPtr->initialize(this, currentContext, attribs)); + SyncPool &pool = mSyncPools[type]; + if (!pool.empty()) + { + sync = std::move(pool.back()); + pool.pop_back(); + } + else + { + sync.reset(new Sync(mImplementation, type)); + } - Sync *sync = syncPtr.release(); + Error err = sync->initialize(this, currentContext, id, attribs); + if (err.isError()) + { + sync->onDestroy(this); + return err; + } - sync->addRef(); - mSyncMap.insert(std::pair(sync->id().value, sync)); + *outSync = sync.get(); + mSyncMap.insert(std::pair(id.value, std::move(sync))); - *outSync = sync; return NoError(); } @@ -1890,12 +1905,21 @@ Error Display::destroyContext(Thread *thread, gl::Context *context) return NoError(); } -void Display::destroySyncImpl(Sync *sync, SyncMap *syncs) +void Display::destroySyncImpl(SyncID syncId, SyncMap *syncs) { - auto iter = syncs->find(sync->id().value); + auto iter = syncs->find(syncId.value); ASSERT(iter != syncs->end()); - mSyncHandleAllocator.release(sync->id().value); - iter->second->release(this); + mSyncHandleAllocator.release(syncId.value); + + auto &sync = iter->second; + sync->onDestroy(this); + + SyncPool &pool = mSyncPools[sync->getType()]; + if (pool.size() < kMaxSyncPoolSizePerType) + { + pool.push_back(std::move(sync)); + } + syncs->erase(iter); } @@ -1916,7 +1940,7 @@ Error Display::destroySurface(Surface *surface) void Display::destroySync(Sync *sync) { - return destroySyncImpl(sync, &mSyncMap); + return destroySyncImpl(sync->id(), &mSyncMap); } bool Display::isDeviceLost() const @@ -2628,7 +2652,7 @@ const egl::Image *Display::getImage(egl::ImageID imageID) const const egl::Sync *Display::getSync(egl::SyncID syncID) const { auto iter = mSyncMap.find(syncID.value); - return iter != mSyncMap.end() ? iter->second : nullptr; + return iter != mSyncMap.end() ? iter->second.get() : nullptr; } gl::Context *Display::getContext(gl::ContextID contextID) @@ -2652,7 +2676,7 @@ egl::Image *Display::getImage(egl::ImageID imageID) egl::Sync *Display::getSync(egl::SyncID syncID) { auto iter = mSyncMap.find(syncID.value); - return iter != mSyncMap.end() ? iter->second : nullptr; + return iter != mSyncMap.end() ? iter->second.get() : nullptr; } // static diff --git a/src/libANGLE/Display.h b/src/libANGLE/Display.h index 4079be8834..536347df54 100644 --- a/src/libANGLE/Display.h +++ b/src/libANGLE/Display.h @@ -80,7 +80,7 @@ constexpr EGLAttrib kProgramCacheSizeAbsoluteMax = 0x4000000; using ImageMap = angle::HashMap<GLuint, Image *>; using StreamSet = angle::HashSet<Stream *>; -using SyncMap = angle::HashMap<GLuint, Sync *>; +using SyncMap = angle::HashMap<GLuint, std::unique_ptr<Sync>>; class Display final : public LabeledObject, public angle::ObserverInterface, @@ -353,12 +353,17 @@ class Display final : public LabeledObject, ImageMap mImageMap; StreamSet mStreamSet; + SyncMap mSyncMap; + static constexpr size_t kMaxSyncPoolSizePerType = 32; + using SyncPool = angle::FixedVector<std::unique_ptr<Sync>, kMaxSyncPoolSizePerType>; + std::map<EGLenum, SyncPool> mSyncPools; + void destroyImageImpl(Image *image, ImageMap *images); void destroyStreamImpl(Stream *stream, StreamSet *streams); Error destroySurfaceImpl(Surface *surface, SurfaceMap *surfaces); - void destroySyncImpl(Sync *sync, SyncMap *syncs); + void destroySyncImpl(SyncID syncId, SyncMap *syncs); ContextMap mInvalidContextMap; ImageMap mInvalidImageMap; diff --git a/src/libANGLE/EGLSync.cpp b/src/libANGLE/EGLSync.cpp index 1800b33131..491a2b0ab5 100644 --- a/src/libANGLE/EGLSync.cpp +++ b/src/libANGLE/EGLSync.cpp @@ -18,8 +18,8 @@ namespace egl { -Sync::Sync(rx::EGLImplFactory *factory, const egl::SyncID &id, EGLenum type) - : mLabel(nullptr), mId(id), mType(type), mCondition(0), mNativeFenceFD(0) +Sync::Sync(rx::EGLImplFactory *factory, EGLenum type) + : mLabel(nullptr), mId({0}), mType(type), mCondition(0), mNativeFenceFD(0) { switch (mType) { @@ -42,17 +42,17 @@ void Sync::onDestroy(const Display *display) { ASSERT(mFence); mFence->onDestroy(display); - mFence.reset(); } Sync::~Sync() {} Error Sync::initialize(const Display *display, const gl::Context *context, + const SyncID &id, const AttributeMap &attribs) { + mId = id; mAttributeMap = attribs; - mNativeFenceFD = attribs.getAsInt(EGL_SYNC_NATIVE_FENCE_FD_ANDROID, EGL_NO_NATIVE_FENCE_FD_ANDROID); mCondition = EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR; diff --git a/src/libANGLE/EGLSync.h b/src/libANGLE/EGLSync.h index 7fa32c9837..3082c702ab 100644 --- a/src/libANGLE/EGLSync.h +++ b/src/libANGLE/EGLSync.h @@ -29,10 +29,10 @@ class Context; namespace egl { -class Sync final : public angle::RefCountObject<Display, angle::Result>, public LabeledObject +class Sync final : public LabeledObject { public: - Sync(rx::EGLImplFactory *factory, const SyncID &id, EGLenum type); + Sync(rx::EGLImplFactory *factory, EGLenum type); ~Sync() override; void setLabel(EGLLabelKHR label) override; @@ -40,10 +40,11 @@ class Sync final : public angle::RefCountObject<Display, angle::Result>, public const SyncID &id() const { return mId; } - void onDestroy(const Display *display) override; + void onDestroy(const Display *display); Error initialize(const Display *display, const gl::Context *context, + const SyncID &id, const AttributeMap &attribs); Error clientWait(const Display *display, const gl::Context *context, diff --git a/src/libANGLE/capture/FrameCapture.cpp b/src/libANGLE/capture/FrameCapture.cpp index 0026393ce1..6eba660714 100644 --- a/src/libANGLE/capture/FrameCapture.cpp +++ b/src/libANGLE/capture/FrameCapture.cpp @@ -516,6 +516,8 @@ void WriteGLFloatValue(std::ostream &out, GLfloat value) } else { + // Write a decimal point to preserve the zero sign on replay + out << (value == 0.0 ? std::showpoint : std::noshowpoint); out << std::setprecision(16); out << value; } @@ -4633,11 +4635,11 @@ void CaptureShareGroupMidExecutionSetup( } // Capture EGL Sync Objects - const egl::SyncMap eglSyncMap = context->getDisplay()->getSyncsForCapture(); + const egl::SyncMap &eglSyncMap = context->getDisplay()->getSyncsForCapture(); for (const auto &eglSyncIter : eglSyncMap) { egl::SyncID eglSyncID = {eglSyncIter.first}; - const egl::Sync *eglSync = eglSyncIter.second; + const egl::Sync *eglSync = eglSyncIter.second.get(); EGLSync eglSyncObject = gl::unsafe_int_to_pointer_cast<EGLSync>(eglSyncID.value); if (!eglSync) diff --git a/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp b/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp index a8eb10310f..773dbc396e 100644 --- a/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp +++ b/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp @@ -211,8 +211,10 @@ angle::Result TextureStorage11::getSubresourceIndex(const gl::Context *context, const gl::ImageIndex &index, UINT *outSubresourceIndex) const { - UINT mipSlice = static_cast<UINT>(index.getLevelIndex() + mTopLevel); - UINT arraySlice = static_cast<UINT>(index.hasLayer() ? index.getLayerIndex() : 0); + UINT mipSlice = static_cast<UINT>(index.getLevelIndex() + mTopLevel); + // D3D11CalcSubresource reference: always use 0 for volume (3D) textures + UINT arraySlice = static_cast<UINT>( + (index.hasLayer() && index.getType() != gl::TextureType::_3D) ? index.getLayerIndex() : 0); UINT subresource = D3D11CalcSubresource(mipSlice, arraySlice, mMipLevels); ASSERT(subresource != std::numeric_limits<UINT>::max()); *outSubresourceIndex = subresource; diff --git a/src/libANGLE/renderer/metal/SyncMtl.mm b/src/libANGLE/renderer/metal/SyncMtl.mm index 24961a80be..ccd3734c11 100644 --- a/src/libANGLE/renderer/metal/SyncMtl.mm +++ b/src/libANGLE/renderer/metal/SyncMtl.mm @@ -30,14 +30,12 @@ static uint64_t makeSignalValue(EGLAttrib highPart, EGLAttrib lowPart) // SharedEvent is only available on iOS 12.0+ or mac 10.14+ #if ANGLE_MTL_EVENT_AVAILABLE -Sync::Sync() {} +Sync::Sync() : mCv(new std::condition_variable()), mLock(new std::mutex()) {} Sync::~Sync() {} void Sync::onDestroy() { mMetalSharedEvent = nil; - mCv = nullptr; - mLock = nullptr; } angle::Result Sync::initialize(ContextMtl *contextMtl, @@ -59,8 +57,6 @@ angle::Result Sync::initialize(ContextMtl *contextMtl, auto signaledValue = mMetalSharedEvent.get().signaledValue; mSignalValue = signalValue.valid() ? signalValue.value() : signaledValue + 1; - mCv.reset(new std::condition_variable()); - mLock.reset(new std::mutex()); return angle::Result::Continue; } diff --git a/src/libANGLE/renderer/vulkan/BufferVk.cpp b/src/libANGLE/renderer/vulkan/BufferVk.cpp index 7d786ccae3..200cd2bac2 100644 --- a/src/libANGLE/renderer/vulkan/BufferVk.cpp +++ b/src/libANGLE/renderer/vulkan/BufferVk.cpp @@ -512,7 +512,8 @@ angle::Result BufferVk::allocStagingBuffer(ContextVk *contextVk, if (mStagingBuffer.valid()) { if (size <= mStagingBuffer.getSize() && - (coherency == vk::MemoryCoherency::Coherent) == mStagingBuffer.isCoherent() && + IsCoherent(coherency) == mStagingBuffer.isCoherent() && + IsCached(coherency) == mStagingBuffer.isCached() && contextVk->getRenderer()->hasResourceUseFinished(mStagingBuffer.getResourceUse())) { // If size is big enough and it is idle, then just reuse the existing staging buffer @@ -557,7 +558,7 @@ angle::Result BufferVk::handleDeviceLocalBufferMap(ContextVk *contextVk, VkDeviceSize size, uint8_t **mapPtr) { - ANGLE_TRY(allocStagingBuffer(contextVk, vk::MemoryCoherency::Coherent, size, mapPtr)); + ANGLE_TRY(allocStagingBuffer(contextVk, vk::MemoryCoherency::CachedCoherent, size, mapPtr)); // Copy data from device local buffer to host visible staging buffer. VkBufferCopy copyRegion = {mBuffer.getOffset() + offset, mStagingBuffer.getOffset(), size}; @@ -733,7 +734,7 @@ angle::Result BufferVk::mapRangeImpl(ContextVk *contextVk, if (smallMapRange && rangeInvalidate) { - ANGLE_TRY(allocStagingBuffer(contextVk, vk::MemoryCoherency::NonCoherent, + ANGLE_TRY(allocStagingBuffer(contextVk, vk::MemoryCoherency::CachedNonCoherent, static_cast<size_t>(length), mapPtrBytes)); return angle::Result::Continue; } @@ -921,8 +922,8 @@ angle::Result BufferVk::stagedUpdate(ContextVk *contextVk, if (dataSource.data != nullptr) { uint8_t *mapPointer = nullptr; - ANGLE_TRY( - allocStagingBuffer(contextVk, vk::MemoryCoherency::NonCoherent, size, &mapPointer)); + ANGLE_TRY(allocStagingBuffer(contextVk, vk::MemoryCoherency::CachedNonCoherent, size, + &mapPointer)); memcpy(mapPointer, dataSource.data, size); ANGLE_TRY(flushStagingBuffer(contextVk, offset, size)); mIsStagingBufferMapped = false; diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp index ce4dde5a9a..0302ccc2ba 100644 --- a/src/libANGLE/renderer/vulkan/RendererVk.cpp +++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp @@ -1408,8 +1408,6 @@ RendererVk::RendererVk() mDefaultUniformBufferSize(kPreferredDefaultUniformBufferSize), mDevice(VK_NULL_HANDLE), mDeviceLost(false), - mCoherentStagingBufferMemoryTypeIndex(kInvalidMemoryTypeIndex), - mNonCoherentStagingBufferMemoryTypeIndex(kInvalidMemoryTypeIndex), mStagingBufferAlignment(1), mHostVisibleVertexConversionBufferMemoryTypeIndex(kInvalidMemoryTypeIndex), mDeviceLocalVertexConversionBufferMemoryTypeIndex(kInvalidMemoryTypeIndex), @@ -1425,6 +1423,7 @@ RendererVk::RendererVk() { VkFormatProperties invalid = {0, 0, kInvalidFormatFeatureFlags}; mFormatProperties.fill(invalid); + mStagingBufferMemoryTypeIndex.fill(kInvalidMemoryTypeIndex); // We currently don't have any big-endian devices in the list of supported platforms. There are // a number of places in the Vulkan backend that make this assumption. This assertion is made @@ -2000,17 +1999,30 @@ angle::Result RendererVk::initializeMemoryAllocator(DisplayVk *displayVk) // Uncached coherent staging buffer VkMemoryPropertyFlags preferredFlags = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - ANGLE_VK_TRY(displayVk, mAllocator.findMemoryTypeIndexForBufferInfo( - createInfo, requiredFlags, preferredFlags, persistentlyMapped, - &mCoherentStagingBufferMemoryTypeIndex)); - ASSERT(mCoherentStagingBufferMemoryTypeIndex != kInvalidMemoryTypeIndex); + ANGLE_VK_TRY(displayVk, + mAllocator.findMemoryTypeIndexForBufferInfo( + createInfo, requiredFlags, preferredFlags, persistentlyMapped, + &mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::UnCachedCoherent])); + ASSERT(mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::UnCachedCoherent] != + kInvalidMemoryTypeIndex); + + // Cached coherent staging buffer + preferredFlags = VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + ANGLE_VK_TRY(displayVk, + mAllocator.findMemoryTypeIndexForBufferInfo( + createInfo, requiredFlags, preferredFlags, persistentlyMapped, + &mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::CachedCoherent])); + ASSERT(mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::CachedCoherent] != + kInvalidMemoryTypeIndex); - // Cached (b/219974369) Non-coherent staging buffer + // Cached Non-coherent staging buffer preferredFlags = VK_MEMORY_PROPERTY_HOST_CACHED_BIT; - ANGLE_VK_TRY(displayVk, mAllocator.findMemoryTypeIndexForBufferInfo( - createInfo, requiredFlags, preferredFlags, persistentlyMapped, - &mNonCoherentStagingBufferMemoryTypeIndex)); - ASSERT(mNonCoherentStagingBufferMemoryTypeIndex != kInvalidMemoryTypeIndex); + ANGLE_VK_TRY(displayVk, + mAllocator.findMemoryTypeIndexForBufferInfo( + createInfo, requiredFlags, preferredFlags, persistentlyMapped, + &mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::CachedNonCoherent])); + ASSERT(mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::CachedNonCoherent] != + kInvalidMemoryTypeIndex); // Alignment mStagingBufferAlignment = @@ -2037,7 +2049,8 @@ angle::Result RendererVk::initializeMemoryAllocator(DisplayVk *displayVk) // Host visible and non-coherent vertex conversion buffer, which is the same as non-coherent // staging buffer - mHostVisibleVertexConversionBufferMemoryTypeIndex = mNonCoherentStagingBufferMemoryTypeIndex; + mHostVisibleVertexConversionBufferMemoryTypeIndex = + mStagingBufferMemoryTypeIndex[vk::MemoryCoherency::CachedNonCoherent]; // We may use compute shader to do conversion, so we must meet // minStorageBufferOffsetAlignment requirement as well. Also take into account non-coherent diff --git a/src/libANGLE/renderer/vulkan/RendererVk.h b/src/libANGLE/renderer/vulkan/RendererVk.h index e2b5d460cf..074e96aa3d 100644 --- a/src/libANGLE/renderer/vulkan/RendererVk.h +++ b/src/libANGLE/renderer/vulkan/RendererVk.h @@ -533,9 +533,7 @@ class RendererVk : angle::NonCopyable uint32_t getStagingBufferMemoryTypeIndex(vk::MemoryCoherency coherency) const { - return coherency == vk::MemoryCoherency::Coherent - ? mCoherentStagingBufferMemoryTypeIndex - : mNonCoherentStagingBufferMemoryTypeIndex; + return mStagingBufferMemoryTypeIndex[coherency]; } size_t getStagingBufferAlignment() const { return mStagingBufferAlignment; } @@ -917,9 +915,8 @@ class RendererVk : angle::NonCopyable // The default alignment for BufferVk object size_t mDefaultBufferAlignment; - // The cached memory type index for staging buffer that is host visible. - uint32_t mCoherentStagingBufferMemoryTypeIndex; - uint32_t mNonCoherentStagingBufferMemoryTypeIndex; + // The memory type index for staging buffer that is host visible. + angle::PackedEnumMap<vk::MemoryCoherency, uint32_t> mStagingBufferMemoryTypeIndex; size_t mStagingBufferAlignment; // For vertex conversion buffers uint32_t mHostVisibleVertexConversionBufferMemoryTypeIndex; diff --git a/src/libANGLE/renderer/vulkan/Suballocation.h b/src/libANGLE/renderer/vulkan/Suballocation.h index 004cbffccb..6f010b58d7 100644 --- a/src/libANGLE/renderer/vulkan/Suballocation.h +++ b/src/libANGLE/renderer/vulkan/Suballocation.h @@ -72,6 +72,7 @@ class BufferBlock final : angle::NonCopyable bool hasVirtualBlock() const { return mVirtualBlock.valid(); } bool isHostVisible() const; bool isCoherent() const; + bool isCached() const; bool isMapped() const; VkResult map(const VkDevice device); void unmap(const VkDevice device); @@ -200,6 +201,7 @@ class BufferSuballocation final : angle::NonCopyable VkMemoryMapFlags getMemoryPropertyFlags() const; bool isHostVisible() const; bool isCoherent() const; + bool isCached() const; bool isMapped() const; uint8_t *getMappedMemory() const; void flush(const VkDevice &device); @@ -288,6 +290,11 @@ ANGLE_INLINE bool BufferBlock::isCoherent() const return (mMemoryPropertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT) != 0; } +ANGLE_INLINE bool BufferBlock::isCached() const +{ + return (mMemoryPropertyFlags & VK_MEMORY_PROPERTY_HOST_CACHED_BIT) != 0; +} + ANGLE_INLINE bool BufferBlock::isMapped() const { return mMappedMemory != nullptr; @@ -415,6 +422,10 @@ ANGLE_INLINE bool BufferSuballocation::isCoherent() const { return mBufferBlock->isCoherent(); } +ANGLE_INLINE bool BufferSuballocation::isCached() const +{ + return mBufferBlock->isCached(); +} ANGLE_INLINE bool BufferSuballocation::isMapped() const { return mBufferBlock->isMapped(); diff --git a/src/libANGLE/renderer/vulkan/SyncVk.cpp b/src/libANGLE/renderer/vulkan/SyncVk.cpp index 243a0d67f8..286e61e153 100644 --- a/src/libANGLE/renderer/vulkan/SyncVk.cpp +++ b/src/libANGLE/renderer/vulkan/SyncVk.cpp @@ -613,10 +613,7 @@ angle::Result SyncVk::getStatus(const gl::Context *context, GLint *outResult) EGLSyncVk::EGLSyncVk() : EGLSyncImpl(), mSyncHelper(nullptr) {} -EGLSyncVk::~EGLSyncVk() -{ - SafeDelete(mSyncHelper); -} +EGLSyncVk::~EGLSyncVk() {} void EGLSyncVk::onDestroy(const egl::Display *display) { @@ -635,7 +632,7 @@ egl::Error EGLSyncVk::initialize(const egl::Display *display, case EGL_SYNC_FENCE_KHR: { vk::SyncHelper *syncHelper = new vk::SyncHelper(); - mSyncHelper = syncHelper; + mSyncHelper.reset(syncHelper); if (syncHelper->initialize(vk::GetImpl(context), true) == angle::Result::Stop) { return egl::Error(EGL_BAD_ALLOC, "eglCreateSyncKHR failed to create sync object"); @@ -645,7 +642,7 @@ egl::Error EGLSyncVk::initialize(const egl::Display *display, case EGL_SYNC_NATIVE_FENCE_ANDROID: { vk::SyncHelperNativeFence *syncHelper = new vk::SyncHelperNativeFence(); - mSyncHelper = syncHelper; + mSyncHelper.reset(syncHelper); EGLint nativeFenceFd = attribs.getAsInt(EGL_SYNC_NATIVE_FENCE_FD_ANDROID, EGL_NO_NATIVE_FENCE_FD_ANDROID); return angle::ToEGL(syncHelper->initializeWithFd(vk::GetImpl(context), nativeFenceFd), diff --git a/src/libANGLE/renderer/vulkan/SyncVk.h b/src/libANGLE/renderer/vulkan/SyncVk.h index a9c37bf871..0c71a61c5f 100644 --- a/src/libANGLE/renderer/vulkan/SyncVk.h +++ b/src/libANGLE/renderer/vulkan/SyncVk.h @@ -198,7 +198,7 @@ class EGLSyncVk final : public EGLSyncImpl private: // SyncHelper or SyncHelperNativeFence decided at run-time. - vk::SyncHelperInterface *mSyncHelper; + std::unique_ptr<vk::SyncHelperInterface> mSyncHelper; }; } // namespace rx diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.cpp b/src/libANGLE/renderer/vulkan/vk_helpers.cpp index 419800416e..b95d41386f 100644 --- a/src/libANGLE/renderer/vulkan/vk_helpers.cpp +++ b/src/libANGLE/renderer/vulkan/vk_helpers.cpp @@ -4789,10 +4789,15 @@ BufferHelper::BufferHelper() mCurrentReadAccess(0), mCurrentWriteStages(0), mCurrentReadStages(0), - mSerial() + mSerial(), + mClientBuffer(nullptr) {} -BufferHelper::~BufferHelper() = default; +BufferHelper::~BufferHelper() +{ + // We must have released external buffer properly + ASSERT(mClientBuffer == nullptr); +} BufferHelper::BufferHelper(BufferHelper &&other) { @@ -4812,6 +4817,7 @@ BufferHelper &BufferHelper::operator=(BufferHelper &&other) mCurrentWriteStages = other.mCurrentWriteStages; mCurrentReadStages = other.mCurrentReadStages; mSerial = other.mSerial; + mClientBuffer = std::move(other.mClientBuffer); return *this; } @@ -4916,6 +4922,7 @@ angle::Result BufferHelper::initExternal(ContextVk *contextVk, ANGLE_TRY(InitAndroidExternalMemory(contextVk, clientBuffer, memoryProperties, &buffer.get(), &memoryPropertyFlagsOut, &memoryTypeIndex, &deviceMemory.get(), &allocatedSize)); + mClientBuffer = clientBuffer; mSuballocation.initWithEntireBuffer( contextVk, buffer.get(), MemoryAllocationType::BufferExternal, memoryTypeIndex, @@ -4925,7 +4932,6 @@ angle::Result BufferHelper::initExternal(ContextVk *contextVk, uint8_t *ptrOut; ANGLE_TRY(map(contextVk, &ptrOut)); } - return angle::Result::Continue; } @@ -5090,6 +5096,11 @@ void BufferHelper::destroy(RendererVk *renderer) unmap(renderer); mBufferWithUserSize.destroy(renderer->getDevice()); mSuballocation.destroy(renderer); + if (mClientBuffer != nullptr) + { + ReleaseAndroidExternalMemory(renderer, mClientBuffer); + mClientBuffer = nullptr; + } } void BufferHelper::release(RendererVk *renderer) @@ -5111,6 +5122,12 @@ void BufferHelper::release(RendererVk *renderer) mUse.reset(); mWriteUse.reset(); ASSERT(!mBufferWithUserSize.valid()); + + if (mClientBuffer != nullptr) + { + ReleaseAndroidExternalMemory(renderer, mClientBuffer); + mClientBuffer = nullptr; + } } void BufferHelper::releaseBufferAndDescriptorSetCache(RendererVk *renderer) @@ -7526,8 +7543,8 @@ angle::Result ImageHelper::stageSubresourceUpdateImpl(ContextVk *contextVk, uint8_t *stagingPointer; VkDeviceSize stagingOffset; ANGLE_TRY(contextVk->initBufferForImageCopy(currentBuffer, allocationSize, - MemoryCoherency::NonCoherent, storageFormat.id, - &stagingOffset, &stagingPointer)); + MemoryCoherency::CachedNonCoherent, + storageFormat.id, &stagingOffset, &stagingPointer)); loadFunctionInfo.loadFunction( contextVk->getImageLoadContext(), glExtents.width, glExtents.height, glExtents.depth, @@ -7847,7 +7864,7 @@ angle::Result ImageHelper::reformatStagedBufferUpdates(ContextVk *contextVk, VkDeviceSize dstBufferOffset; size_t dstBufferSize = dstDataDepthPitch * copy.imageExtent.depth; ANGLE_TRY(contextVk->initBufferForImageCopy( - dstBuffer, dstBufferSize, MemoryCoherency::NonCoherent, dstFormatID, + dstBuffer, dstBufferSize, MemoryCoherency::CachedNonCoherent, dstFormatID, &dstBufferOffset, &dstData)); rx::PixelReadFunction pixelReadFunction = srcFormat.pixelReadFunction; @@ -8189,7 +8206,7 @@ angle::Result ImageHelper::stageSubresourceUpdateAndGetData(ContextVk *contextVk VkDeviceSize stagingOffset; ANGLE_TRY(contextVk->initBufferForImageCopy(currentBuffer, allocationSize, - MemoryCoherency::NonCoherent, formatID, + MemoryCoherency::CachedNonCoherent, formatID, &stagingOffset, dstData)); gl::LevelIndex updateLevelGL(imageIndex.getLevelIndex()); @@ -8263,8 +8280,8 @@ angle::Result ImageHelper::stageSubresourceUpdateFromFramebuffer( // The destination is only one layer deep. size_t allocationSize = outputDepthPitch; ANGLE_TRY(contextVk->initBufferForImageCopy(currentBuffer, allocationSize, - MemoryCoherency::NonCoherent, storageFormat.id, - &stagingOffset, &stagingPointer)); + MemoryCoherency::CachedNonCoherent, + storageFormat.id, &stagingOffset, &stagingPointer)); const angle::Format ©Format = GetFormatFromFormatType(formatInfo.internalFormat, formatInfo.type); @@ -8432,9 +8449,9 @@ angle::Result ImageHelper::stageResourceClearWithFormat(ContextVk *contextVk, uint8_t *stagingPointer; VkDeviceSize stagingOffset; - ANGLE_TRY(contextVk->initBufferForImageCopy(currentBuffer, totalSize, - MemoryCoherency::NonCoherent, imageFormat.id, - &stagingOffset, &stagingPointer)); + ANGLE_TRY(contextVk->initBufferForImageCopy( + currentBuffer, totalSize, MemoryCoherency::CachedNonCoherent, imageFormat.id, + &stagingOffset, &stagingPointer)); memset(stagingPointer, 0, totalSize); VkBufferImageCopy copyRegion = {}; @@ -9381,8 +9398,9 @@ angle::Result ImageHelper::copyImageDataToBuffer(ContextVk *contextVk, // Allocate coherent staging buffer ASSERT(dstBuffer != nullptr && !dstBuffer->valid()); VkDeviceSize dstOffset; - ANGLE_TRY(contextVk->initBufferForImageCopy(dstBuffer, bufferSize, MemoryCoherency::Coherent, - imageFormat.id, &dstOffset, outDataPtr)); + ANGLE_TRY(contextVk->initBufferForImageCopy(dstBuffer, bufferSize, + MemoryCoherency::CachedCoherent, imageFormat.id, + &dstOffset, outDataPtr)); VkBuffer bufferHandle = dstBuffer->getBuffer().getHandle(); LevelIndex sourceLevelVk = toVkLevel(sourceLevelGL); @@ -10050,7 +10068,7 @@ angle::Result ImageHelper::readPixelsImpl(ContextVk *contextVk, size_t allocationSize = readFormat->pixelBytes * area.width * area.height; ANGLE_TRY(contextVk->initBufferForImageCopy(stagingBuffer, allocationSize, - MemoryCoherency::Coherent, readFormat->id, + MemoryCoherency::CachedCoherent, readFormat->id, &stagingOffset, &readPixelBuffer)); VkBuffer bufferHandle = stagingBuffer->getBuffer().getHandle(); diff --git a/src/libANGLE/renderer/vulkan/vk_helpers.h b/src/libANGLE/renderer/vulkan/vk_helpers.h index bad0c94bd2..fb954cb477 100644 --- a/src/libANGLE/renderer/vulkan/vk_helpers.h +++ b/src/libANGLE/renderer/vulkan/vk_helpers.h @@ -725,11 +725,25 @@ class PipelineBarrier : angle::NonCopyable }; using PipelineBarrierArray = angle::PackedEnumMap<PipelineStage, PipelineBarrier>; -enum class MemoryCoherency +enum class MemoryCoherency : uint8_t { - NonCoherent, - Coherent + CachedNonCoherent, + CachedCoherent, + UnCachedCoherent, + + InvalidEnum = 3, + EnumCount = 3, }; +ANGLE_INLINE bool IsCached(MemoryCoherency coherency) +{ + return coherency == MemoryCoherency::CachedNonCoherent || + coherency == MemoryCoherency::CachedCoherent; +} +ANGLE_INLINE bool IsCoherent(MemoryCoherency coherency) +{ + return coherency == MemoryCoherency::UnCachedCoherent || + coherency == MemoryCoherency::CachedCoherent; +} enum class MemoryHostVisibility { @@ -788,7 +802,7 @@ class BufferHelper : public ReadWriteResource VkDeviceSize getBlockMemorySize() const { return mSuballocation.getBlockMemorySize(); } bool isHostVisible() const { return mSuballocation.isHostVisible(); } bool isCoherent() const { return mSuballocation.isCoherent(); } - + bool isCached() const { return mSuballocation.isCached(); } bool isMapped() const { return mSuballocation.isMapped(); } // Also implicitly sets up the correct barriers. @@ -885,6 +899,8 @@ class BufferHelper : public ReadWriteResource BufferSerial mSerial; // Manages the descriptorSet cache that created with this BufferHelper object. DescriptorSetCacheManager mDescriptorSetCacheManager; + // For external buffer + GLeglClientBufferEXT mClientBuffer; }; class BufferPool : angle::NonCopyable diff --git a/src/tests/angle_end2end_tests_expectations.txt b/src/tests/angle_end2end_tests_expectations.txt index e4a30369f8..d55b874ffe 100644 --- a/src/tests/angle_end2end_tests_expectations.txt +++ b/src/tests/angle_end2end_tests_expectations.txt @@ -338,9 +338,6 @@ b/273271471 WIN INTEL VULKAN : ShaderAlgorithmTest.rgb_to_hsl_vertex_shader/* = 6458 MAC METAL : TriangleFanDrawTest.DrawTriangleFanPrimitiveRestartAtBegin/* = SKIP -// Metal doesn't implement 3D texture yet. -4136 MAC METAL : WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D/* = SKIP - 5233 MAC METAL : WebGL2ValidationStateChangeTest.MultiAttachmentDrawFramebufferNegativeAPI/* = SKIP 7451 MAC METAL INTEL : PointSpritesTest.PointSizeAboveMaxIsClamped/ES2_Metal = SKIP @@ -907,10 +904,6 @@ b/308668391 PIXEL4ORXL VULKAN : ImageTest.SourceYUVAHBTargetExternalRGBSampleNoD 7994 IOS METAL : VertexAttributeTest.AliasingVectorAttribLocationsDifferingPrecisions/ES3_Metal = SKIP 7994 IOS METAL : VertexAttributeTest.AliasingVectorAttribLocationsDifferingPrecisions/ES3_Metal_HasCheapRenderPass_NoHasExplicitMemBarrier = SKIP 7994 IOS METAL : VertexAttributeTest.AliasingVectorAttribLocationsDifferingPrecisions/ES3_Metal_NoHasExplicitMemBarrier_NoHasCheapRenderPass = SKIP -7994 IOS METAL : VertexAttributeTestES3.DrawWithUnalignedData/ES3_Metal = SKIP -7994 IOS METAL : VertexAttributeTestES3.DrawWithUnalignedData/ES3_Metal_HasCheapRenderPass_NoHasExplicitMemBarrier = SKIP -7994 IOS METAL : VertexAttributeTestES3.DrawWithUnalignedData/ES3_Metal_NoHasExplicitMemBarrier_NoHasCheapRenderPass = SKIP -7994 IOS METAL : WebGL2ReadOutsideFramebufferTest.CopyTexSubImage3D/ES2_Metal = SKIP 7994 IOS METAL : WebGL2ValidationStateChangeTest.MultiAttachmentDrawFramebufferNegativeAPI/ES3_Metal = SKIP 8043 IOS METAL : FramebufferTest_ES3.RenderSharedExponent/ES3_Metal = SKIP 8051 IOS METAL : Texture2DDepthStencilTestES3.TexSampleModes*Swizzled/ES3_Metal = SKIP @@ -954,8 +947,6 @@ b/308668391 PIXEL4ORXL VULKAN : ImageTest.SourceYUVAHBTargetExternalRGBSampleNoD 7445 METAL : IOSurfaceClientBufferTest.RenderToR16IOSurface/* = SKIP -7068 METAL : VertexAttributeTestES3.DrawWithUnalignedData/* = SKIP - // ASAN flakes with Vulkan / SwiftShader / AsyncCommandQueue 6875 ASAN VULKAN SWIFTSHADER : ComputeShaderTest.*/ES3_1_Vulkan_SwiftShader_AsyncCommandQueue = SKIP 6875 SWIFTSHADER : TransformFeedbackTest.SpanMultipleRenderPasses/*AsyncCommandQueue* = SKIP diff --git a/src/tests/deqp_support/deqp_gles3_test_expectations.txt b/src/tests/deqp_support/deqp_gles3_test_expectations.txt index 65b0d7e75e..38f2b9ec06 100644 --- a/src/tests/deqp_support/deqp_gles3_test_expectations.txt +++ b/src/tests/deqp_support/deqp_gles3_test_expectations.txt @@ -773,20 +773,6 @@ 6678 UBSAN : dEQP-GLES3.functional.fragment_out.* = SKIP 6678 UBSAN : dEQP-GLES3.functional.vertex_arrays.single_attribute.* = SKIP -// https://gitlab.khronos.org/opengl/API/-/issues/179 -8048 NVIDIA : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.r8_snorm = SKIP -8048 NVIDIA : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rg8_snorm = SKIP -8048 NVIDIA : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rgba8_snorm = SKIP -8048 NVIDIA : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.r8_snorm = SKIP -8048 NVIDIA : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rg8_snorm = SKIP -8048 NVIDIA : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rgba8_snorm = SKIP -8048 MAC : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.r8_snorm = SKIP -8048 MAC : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rg8_snorm = SKIP -8048 MAC : dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0.rgba8_snorm = SKIP -8048 MAC : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.r8_snorm = SKIP -8048 MAC : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rg8_snorm = SKIP -8048 MAC : dEQP-GLES3.functional.fbo.completeness.renderable.texture.color0.rgba8_snorm = SKIP - // Samsung Galaxy S23 8157 GALAXYS23 VULKAN : dEQP-GLES3.functional.fbo.blit.depth_stencil.* = SKIP 8157 GALAXYS23 VULKAN : dEQP-GLES3.functional.fbo.invalidate.format.stencil_index8 = SKIP diff --git a/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp b/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp index 63a9bddcf8..ea26fcc09a 100644 --- a/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp +++ b/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cpp @@ -1181,29 +1181,22 @@ TEST_P(DrawBaseInstanceTest, DrawElementsInstancedBaseVertexBaseInstance) checkDrawResult(true, true); } -const angle::PlatformParameters platforms[] = { - ES3_D3D11(), ES3_METAL(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN(), -}; - GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(DrawBaseVertexBaseInstanceTest); -INSTANTIATE_TEST_SUITE_P( - , + +ANGLE_INSTANTIATE_TEST_COMBINE_3( DrawBaseVertexBaseInstanceTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(platforms, ArraySize(platforms))), - testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), - testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); - -INSTANTIATE_TEST_SUITE_P( - , + PrintToStringParamName(), + testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), + testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), + testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES3); + +ANGLE_INSTANTIATE_TEST_COMBINE_3( DrawBaseInstanceTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(platforms, ArraySize(platforms))), - testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), - testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); + PrintToStringParamName(), + testing::Values(BaseVertexOption::NoBaseVertex, BaseVertexOption::UseBaseVertex), + testing::Values(BaseInstanceOption::NoBaseInstance, BaseInstanceOption::UseBaseInstance), + testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES3); } // namespace diff --git a/src/tests/gl_tests/ExternalBufferTest.cpp b/src/tests/gl_tests/ExternalBufferTest.cpp index 465f7d66ae..59720c9cb9 100644 --- a/src/tests/gl_tests/ExternalBufferTest.cpp +++ b/src/tests/gl_tests/ExternalBufferTest.cpp @@ -60,7 +60,10 @@ class ExternalBufferTestES31 : public ANGLETest<> // Need to grab the stride the implementation might have enforced AHardwareBuffer_describe(aHardwareBuffer, &aHardwareBufferDescription); - memcpy(mappedMemory, data, size); + if (data) + { + memcpy(mappedMemory, data, size); + } EXPECT_EQ(0, AHardwareBuffer_unlock(aHardwareBuffer, nullptr)); return aHardwareBuffer; @@ -345,6 +348,31 @@ TEST_P(ExternalBufferTestES31, MapBufferDoesNotCauseOrphaning) destroyAndroidHardwareBuffer(aHardwareBuffer); } +// Verify that create and destroy external buffer backed by an AHB doesn't leak AHB +TEST_P(ExternalBufferTestES31, BufferDoesNotLeakAHB) +{ + ANGLE_SKIP_TEST_IF(!IsGLExtensionEnabled("GL_EXT_external_buffer") || + !IsGLExtensionEnabled("GL_EXT_buffer_storage")); + + // Create and destroy 128M AHB backed buffer in a loop. If we leak AHB, it will fail due to AHB + // allocation failure before loop ends. + constexpr size_t kBufferSize = 128 * 1024 * 1024; + for (int loop = 0; loop < 1000; loop++) + { + // Create the AHB + AHardwareBuffer *aHardwareBuffer; + constexpr GLbitfield kFlags = GL_DYNAMIC_STORAGE_BIT_EXT; + aHardwareBuffer = createAndroidHardwareBuffer(kBufferSize, nullptr); + GLBuffer buffer; + glBindBuffer(GL_SHADER_STORAGE_BUFFER, buffer); + glBufferStorageExternalEXT(GL_SHADER_STORAGE_BUFFER, 0, kBufferSize, + eglGetNativeClientBufferANDROID(aHardwareBuffer), kFlags); + ASSERT_GL_NO_ERROR(); + // Delete the source AHB + destroyAndroidHardwareBuffer(aHardwareBuffer); + } +} + GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(ExternalBufferTestES31); ANGLE_INSTANTIATE_TEST_ES31(ExternalBufferTestES31); } // namespace angle diff --git a/src/tests/gl_tests/GLSLTest.cpp b/src/tests/gl_tests/GLSLTest.cpp index 7b6e70d168..b34db39c4a 100644 --- a/src/tests/gl_tests/GLSLTest.cpp +++ b/src/tests/gl_tests/GLSLTest.cpp @@ -9094,6 +9094,45 @@ void main() EXPECT_NE(compileResult, 0); } +// Test that packing of excessive 3-column variables does not overflow the count of 3-column +// variables in VariablePacker +TEST_P(WebGL2GLSLTest, ExcessiveMat3UniformPacking) +{ + std::ostringstream srcStream; + + srcStream << "#version 300 es\n"; + srcStream << "precision mediump float;\n"; + srcStream << "out vec4 finalColor;\n"; + srcStream << "in vec4 color;\n"; + srcStream << "uniform mat4 r[254];\n"; + + srcStream << "uniform mat3 "; + constexpr size_t kNumUniforms = 10000; + for (size_t i = 0; i < kNumUniforms; ++i) + { + if (i > 0) + { + srcStream << ", "; + } + srcStream << "m3a_" << i << "[256]"; + } + srcStream << ";\n"; + + srcStream << "void main(void) { finalColor = color; }\n"; + std::string src = std::move(srcStream).str(); + + GLuint shader = glCreateShader(GL_VERTEX_SHADER); + + const char *sourceArray[1] = {src.c_str()}; + GLint lengths[1] = {static_cast<GLint>(src.length())}; + glShaderSource(shader, 1, sourceArray, lengths); + glCompileShader(shader); + + GLint compileResult; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compileResult); + EXPECT_EQ(compileResult, 0); +} + // Test that a varying with a flat qualifier that is used as an operand of a folded ternary operator // is handled correctly. TEST_P(GLSLTest_ES3, FlatVaryingUsedInFoldedTernary) diff --git a/src/tests/gl_tests/MultiDrawTest.cpp b/src/tests/gl_tests/MultiDrawTest.cpp index b827b9f539..b11d3e5357 100644 --- a/src/tests/gl_tests/MultiDrawTest.cpp +++ b/src/tests/gl_tests/MultiDrawTest.cpp @@ -178,8 +178,7 @@ varying vec4 color; void main() { int id = )" << (IsDrawIDTest() ? "gl_DrawID" : "0") - << ";" - << R"( + << ";" << R"( float quad_id = float(id / 2); float color_id = quad_id - (3.0 * floor(quad_id / 3.0)); if (color_id == 0.0) { @@ -1247,48 +1246,32 @@ TEST_P(MultiDrawNoInstancingSupportTest, InvalidOperation) EXPECT_GL_ERROR(GL_INVALID_OPERATION); } -const angle::PlatformParameters platforms[] = { - ES2_D3D9(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN(), ES3_D3D11(), ES3_OPENGL(), - ES3_OPENGLES(), ES3_VULKAN(), ES3_VULKAN_SWIFTSHADER(), -}; - -const angle::PlatformParameters es2_platforms[] = { - ES2_D3D9(), ES2_OPENGL(), ES2_OPENGLES(), ES2_VULKAN(), ES2_VULKAN_SWIFTSHADER(), -}; - -const angle::PlatformParameters es3_platforms[] = { - ES3_D3D11(), ES3_OPENGL(), ES3_OPENGLES(), ES3_VULKAN(), ES3_VULKAN_SWIFTSHADER(), -}; - -INSTANTIATE_TEST_SUITE_P( - , - MultiDrawTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(platforms, ArraySize(platforms))), - testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), - testing::Values(InstancingOption::NoInstancing, InstancingOption::UseInstancing), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); - -INSTANTIATE_TEST_SUITE_P( - , - MultiDrawNoInstancingSupportTest, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(es2_platforms, ArraySize(es2_platforms))), - testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), - testing::Values(InstancingOption::UseInstancing), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); - -INSTANTIATE_TEST_SUITE_P( - , - MultiDrawTestES3, - testing::Combine( - testing::ValuesIn(::angle::FilterTestParams(es3_platforms, ArraySize(es3_platforms))), - testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), - testing::Values(InstancingOption::NoInstancing, InstancingOption::UseInstancing), - testing::Values(BufferDataUsageOption::StaticDraw, BufferDataUsageOption::DynamicDraw)), - PrintToStringParamName()); +ANGLE_INSTANTIATE_TEST_COMBINE_3(MultiDrawTest, + PrintToStringParamName(), + testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), + testing::Values(InstancingOption::NoInstancing, + InstancingOption::UseInstancing), + testing::Values(BufferDataUsageOption::StaticDraw, + BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES2, + ANGLE_ALL_TEST_PLATFORMS_ES3); + +ANGLE_INSTANTIATE_TEST_COMBINE_3(MultiDrawNoInstancingSupportTest, + PrintToStringParamName(), + testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), + testing::Values(InstancingOption::UseInstancing), + testing::Values(BufferDataUsageOption::StaticDraw, + BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES2); + +ANGLE_INSTANTIATE_TEST_COMBINE_3(MultiDrawTestES3, + PrintToStringParamName(), + testing::Values(DrawIDOption::NoDrawID, DrawIDOption::UseDrawID), + testing::Values(InstancingOption::NoInstancing, + InstancingOption::UseInstancing), + testing::Values(BufferDataUsageOption::StaticDraw, + BufferDataUsageOption::DynamicDraw), + ANGLE_ALL_TEST_PLATFORMS_ES3); GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(MultiDrawIndirectTest); ANGLE_INSTANTIATE_TEST_ES31_AND(MultiDrawIndirectTest, diff --git a/src/tests/gl_tests/PackUnpackTest.cpp b/src/tests/gl_tests/PackUnpackTest.cpp index 853a9661b9..a4189ab20d 100644 --- a/src/tests/gl_tests/PackUnpackTest.cpp +++ b/src/tests/gl_tests/PackUnpackTest.cpp @@ -237,7 +237,6 @@ TEST_P(PackUnpackTest, PackUnpackSnormOverflow) compareBeforeAfter(mSNormProgram, 67000.0f, -67000.0f, 1.0f, -1.0f); } -// http://anglebug.com/4092 Not instantiating on other backends currently GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(PackUnpackTest); -ANGLE_INSTANTIATE_TEST(PackUnpackTest, ES3_OPENGL(), ES3_OPENGLES()); +ANGLE_INSTANTIATE_TEST_ES3(PackUnpackTest); } // namespace diff --git a/src/tests/gl_tests/VertexAttributeTest.cpp b/src/tests/gl_tests/VertexAttributeTest.cpp index 2443ac8395..a11d77d40c 100644 --- a/src/tests/gl_tests/VertexAttributeTest.cpp +++ b/src/tests/gl_tests/VertexAttributeTest.cpp @@ -1832,11 +1832,11 @@ TEST_P(VertexAttributeTestES3, DrawWithUnalignedData) constexpr char kVS[] = R"(#version 300 es precision highp float; in highp vec4 a_position; -in highp ivec2 a_ColorTest; +in highp vec2 a_ColorTest; out highp vec2 v_colorTest; void main() { - v_colorTest = vec2(a_ColorTest); + v_colorTest = a_ColorTest; gl_Position = a_position; })"; @@ -1846,7 +1846,8 @@ in highp vec2 v_colorTest; out vec4 fragColor; void main() { - if(v_colorTest.x > 0.5) { + // The input value is 0x01000000 / 0x7FFFFFFF + if(abs(v_colorTest.x - 0.0078125) < 0.001) { fragColor = vec4(0.0, 1.0, 0.0, 1.0); } else { fragColor = vec4(1.0, 0.0, 0.0, 1.0); diff --git a/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp b/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp index 16d710f8e3..5b6edd8b74 100644 --- a/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp +++ b/src/tests/gl_tests/WebGLReadOutsideFramebufferTest.cpp @@ -63,22 +63,22 @@ class PixelRect glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); } - void toTexture3D(GLuint texid, GLint depth) const + void toTexture3D(GLuint target, GLuint texid, GLint depth) const { - glBindTexture(GL_TEXTURE_3D, texid); + glBindTexture(target, texid); - glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA, mWidth, mHeight, depth, 0, GL_RGBA, - GL_UNSIGNED_BYTE, nullptr); + glTexImage3D(target, 0, GL_RGBA, mWidth, mHeight, depth, 0, GL_RGBA, GL_UNSIGNED_BYTE, + nullptr); for (GLint z = 0; z < depth; z++) { - glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, z, mWidth, mHeight, 1, GL_RGBA, - GL_UNSIGNED_BYTE, mData.data()); + glTexSubImage3D(target, 0, 0, 0, z, mWidth, mHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE, + mData.data()); } - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); + glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexParameteri(target, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); } void readFB(int x, int y) @@ -169,12 +169,24 @@ class WebGLReadOutsideFramebufferTest : public ANGLETest<> pixelsOut); } + // Read framebuffer to 'pixelsOut' via glCopyTexSubImage3D and a 2D array texture. + void TestCopyTexSubImage2DArray(int x, int y, int z, PixelRect *pixelsOut) + { + // Init texture with given pixels. + GLTexture destTexture; + pixelsOut->toTexture3D(GL_TEXTURE_2D_ARRAY, destTexture.get(), kTextureDepth); + + // Read framebuffer -> texture -> 'pixelsOut' + glCopyTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, z, x, y, kReadWidth, kReadHeight); + readTexture3D(destTexture, kReadWidth, kReadHeight, z, pixelsOut); + } + // Read framebuffer to 'pixelsOut' via glCopyTexSubImage3D. void TestCopyTexSubImage3D(int x, int y, int z, PixelRect *pixelsOut) { // Init texture with given pixels. GLTexture destTexture; - pixelsOut->toTexture3D(destTexture.get(), kTextureDepth); + pixelsOut->toTexture3D(GL_TEXTURE_3D, destTexture.get(), kTextureDepth); // Read framebuffer -> texture -> 'pixelsOut' glCopyTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, z, x, y, kReadWidth, kReadHeight); @@ -228,6 +240,7 @@ class WebGLReadOutsideFramebufferTest : public ANGLETest<> setConfigGreenBits(8); setConfigBlueBits(8); setConfigAlphaBits(8); + setRobustResourceInit(true); setWebGLCompatibilityEnabled(true); } @@ -357,8 +370,6 @@ TEST_P(WebGLReadOutsideFramebufferTest, CopyTexSubImage2D) // Check that copyTexImage2D sets (0,0,0,0) for pixels outside the framebuffer. TEST_P(WebGLReadOutsideFramebufferTest, CopyTexImage2D) { - // http://anglebug.com/4092 - ANGLE_SKIP_TEST_IF(IsVulkan() || IsD3D9() || IsD3D11()); Main2D(&WebGLReadOutsideFramebufferTest::TestCopyTexImage2D, true); Main2D(&WebGLReadOutsideFramebufferTest::TestCopyTexImageCube, true); } @@ -367,16 +378,12 @@ TEST_P(WebGLReadOutsideFramebufferTest, CopyTexImage2D) // the corresponding source pixel is outside the framebuffer. TEST_P(WebGL2ReadOutsideFramebufferTest, CopyTexSubImage3D) { - // http://anglebug.com/4092 - ANGLE_SKIP_TEST_IF(IsVulkan() || IsD3D9() || IsD3D11()); - // Robust CopyTexSubImage3D behaviour is not implemented on OpenGL. - ANGLE_SKIP_TEST_IF(IsDesktopOpenGL() || IsOpenGLES()); - + Main3D(&WebGLReadOutsideFramebufferTest::TestCopyTexSubImage2DArray, false); Main3D(&WebGLReadOutsideFramebufferTest::TestCopyTexSubImage3D, false); } ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WebGLReadOutsideFramebufferTest); -ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(WebGL2ReadOutsideFramebufferTest); +ANGLE_INSTANTIATE_TEST_ES3(WebGL2ReadOutsideFramebufferTest); } // namespace angle diff --git a/src/tests/restricted_traces/restricted_traces.json b/src/tests/restricted_traces/restricted_traces.json index 81518c52e6..2a1e57b6e5 100644 --- a/src/tests/restricted_traces/restricted_traces.json +++ b/src/tests/restricted_traces/restricted_traces.json @@ -236,6 +236,7 @@ "the_gardens_between 1", "the_sims_mobile 1", "the_witcher_monster_slayer 1", + "thimbleweed_park 1", "tmnt_shredders_revenge 1", "toon_blast 5", "top_war 1", diff --git a/src/tests/test_utils/angle_test_instantiate.h b/src/tests/test_utils/angle_test_instantiate.h index 684bc4640b..7e2a0fd27f 100644 --- a/src/tests/test_utils/angle_test_instantiate.h +++ b/src/tests/test_utils/angle_test_instantiate.h @@ -296,6 +296,14 @@ struct CombinedPrintToStringParamName ##__VA_ARGS__}; \ INSTANTIATE_TEST_SUITE_P( \ , testName, testing::Combine(ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), combine1), print) +#define ANGLE_INSTANTIATE_TEST_COMBINE_3(testName, print, combine1, combine2, combine3, first, \ + ...) \ + const std::remove_reference<decltype(first)>::type testName##params[] = {first, \ + ##__VA_ARGS__}; \ + INSTANTIATE_TEST_SUITE_P(, testName, \ + testing::Combine(ANGLE_INSTANTIATE_TEST_PLATFORMS(testName), \ + combine1, combine2, combine3), \ + print) #define ANGLE_INSTANTIATE_TEST_COMBINE_4(testName, print, combine1, combine2, combine3, combine4, \ first, ...) \ const std::remove_reference<decltype(first)>::type testName##params[] = {first, \ diff --git a/third_party/r8/lib/r8.jar b/third_party/r8/lib/r8.jar Binary files differindex a3b60cfd91..78fd3b559b 100644 --- a/third_party/r8/lib/r8.jar +++ b/third_party/r8/lib/r8.jar diff --git a/third_party/vulkan-deps/DEPS b/third_party/vulkan-deps/DEPS index fb2c3f9ae9..aff6f9b988 100644 --- a/third_party/vulkan-deps/DEPS +++ b/third_party/vulkan-deps/DEPS @@ -13,7 +13,7 @@ vars = { 'glslang_revision': '9a35abff55440655dda5326c1d07ae23450ae64f', # Current revision of spirv-cross, the Khronos SPIRV cross compiler. - 'spirv_cross_revision': 'e6b013a492d55e2f9d981eaa961f4168303524ef', + 'spirv_cross_revision': 'f349c91274b91c1a7c173f2df70ec53080076191', # Current revision fo the SPIRV-Headers Vulkan support library. 'spirv_headers_revision': '1c6bb2743599e6eb6f37b2969acc0aef812e32e3', @@ -25,16 +25,16 @@ vars = { 'vulkan_headers_revision': '19a863ccce773ff393b186329478b1eb1a519fd3', # Current revision of Khronos Vulkan-Loader. - 'vulkan_loader_revision': 'a0308b56d851bea6496ed36b088e2d24afd3cb6d', + 'vulkan_loader_revision': '0133778cb1c4493a9d580700b8a6e0fe493c601c', # Current revision of Khronos Vulkan-Tools. 'vulkan_tools_revision': '1ee9eea9f1f58fe0677703eb121ae445e6513b9a', # Current revision of Khronos Vulkan-Utility-Libraries. - 'vulkan_utility_libraries_revision': '2feac587338c7e1b631b2ef9bd6e894d7ad7f56d', + 'vulkan_utility_libraries_revision': '4a89051018cef521243b0bc5c7d13ca362e328d7', # Current revision of Khronos Vulkan-ValidationLayers. - 'vulkan_validation_revision': '847a8a1f8ac49fb9b7523953dadfff3c960b103d', + 'vulkan_validation_revision': '3d6bdd9dc7214c38d1965e0bf1a7c1e0c2089044', } deps = { |