2164 Commits

Author SHA1 Message Date
Shahbaz Youssefi
2d5fb09d7f Stubs for EGL_ANGLE_external_context_and_surface
Bug: angleproject:5509
Change-Id: I8e2395784abcd2b4e3e1f888e70a879ef49287bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4706026
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2023-07-25 16:16:54 +00:00
Joanna Wang
7ae6458b66 Temporarily remove repos involved in llvm builds.
Add these deps back once the change in chromium/src is merged:
https://chromium-review.googlesource.com/c/chromium/src/+/4666325

Bug: chromium:1458042
Change-Id: I63b5b80e5a5a594ce61e9b72eaffb3a87d6719c4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4706819
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2023-07-25 13:36:54 +00:00
angle-autoroll
0b41e4edd7 Roll vulkan-deps from 7db08a9e0a29 to 6f1c3384ecb6 (24 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/7db08a9e0a29..6f1c3384ecb6

Changed dependencies:
* glslang: 65397339c5..4aa56496d6
* spirv-headers: 14914db17a..51b1064617
* spirv-tools: 17d9669d51..ec90d2872a
* vulkan-headers: 6eee20744f..cb7b123f2d
* vulkan-loader: fdae336d4f..220a00bf95
* vulkan-tools: c5ac1413f0..ed6820d508
* vulkan-validation-layers: 34a5dd9aec..e5f54cc2ea

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,romanl@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: romanl@google.com
Change-Id: Ia8e2491d99cd90b6e68e0b8e62fdde0d55c7e6ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4713573
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-07-25 10:57:56 +00:00
Roman Lavrov
e1a34cbfce Android.bp generation: vulkan-headers LICENSE.txt -> .md
Bug: angleproject:8271
Change-Id: I7e31ce26afcf8da22f6aa8518433bb131be4e74b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4711825
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
2023-07-24 14:36:07 +00:00
Phan Quang Minh
ef4327f6aa Vulkan: Make UtilsVk::copyImage copy YCbCr images properly
This changes the descriptor binding for the image from
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE to
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER for YCbCr source textures and
ensures that the copy pipelines and descriptor sets for YCbCr source
textures are created with the appropriate YCbCr samplers, and use the
`texture()` function instead of `texelFetch()` for YCbCr images.

Bug: angleproject:8252
Change-Id: Ife3e230d3669b275f4e0fab1922d75b6b6c4f8bd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4675806
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2023-07-19 14:44:41 +00:00
Geoff Lang
9aadc7aacd Metal: Require MSL 2.1.
We had previously shipped both MSL 2.0 and 2.1 shaders to support
MacOS 10.13 (MSL 2.0 only) while also supporting the stencil blit
fast path that MSL 2.1 provides with the has_shader_stencil_output
feature.

Each configuration of precompiled shaders is ~300kb so we will drop
support for MacOS 10.13 and only ship the MSL 2.1 shaders.

Rework of the disablement for NVIDIA and GPU family 1 to be more
readable. The features themselves are always true because "disable on
NVIDIA" is always true and the check for "is NVIDIA" is moved to the
code which fails the initialization.

Bug: angleproject:8258
Change-Id: Icc8c69540e43fd2b0b237fffbfe170bb3422903f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4681130
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-17 22:00:36 +00:00
Roman Lavrov
d6dc46dbd9 Revert "Add minimal setup for Go codegen in Android.bp."
This reverts commit 9f7b6babe1.

Reason for revert: No longer appears needed as 1) number of diffs was greatly reduced via cc_default 2) build configs got simpler with switching to platform zlib. No recent conflicts introduced by build scripts

Original change's description:
> Add minimal setup for Go codegen in Android.bp.
>
> Based on Cody's http://ag/19603310.
>
> Only adds libEGL_angle_codegen to libEGL_angle and is a no-op.
>
> Tested in an aosp checkout. Hopefully this doesn't cause merge conflicts
> with internal master as all diffs are close to the top of the file.
>
> Android.bp diff: https://paste.googleplex.com/6626641357832192
>
> Bug: b/242929755
> Change-Id: I6d7ac9f3dd502074c41838bd1aa10075a8c99145
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3876890
> Commit-Queue: Roman Lavrov <romanl@google.com>
> Reviewed-by: Cody Northrop <cnorthrop@google.com>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>

Bug: b/242929755
Change-Id: Id4cbdf68e9704138396ee1bef7a4f1edef3f50cf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4685320
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2023-07-14 19:16:03 +00:00
Shahbaz Youssefi
74cf6a3a60 Ensure lockless entry point validations only access private data
Bug: angleproject:8224
Change-Id: I19e867923b088879f9f37d0a3b4ff8b681470be0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678352
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-13 23:38:48 +00:00
yanhongchen
b03a018c43 Android: Add privapp-permissions XML
Bug: angleproject:8210
Bug: b/242671681
Change-Id: I57d14eb026fab319e080cedcfefd5c160c1321d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4617552
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2023-07-13 15:16:19 +00:00
Shahbaz Youssefi
9962f078ae Pass only context-private state to private entry points
This change ensures that the implementation for these entry points
cannot access anything other than context-private state.

Bug: angleproject:8224
Change-Id: I988672b138d861db25e91d71ab8c34baa4e8ebee
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678783
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2023-07-12 19:56:48 +00:00
Shahbaz Youssefi
40111c68dd Rename context-local to context-private state
Bug: angleproject:8224
Change-Id: I1bb39475043f8fb14d683d11a038b4850692a8c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678781
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-12 18:47:18 +00:00
Cody Northrop
c93682d3dc Revert "Stop rolling third_party/cpu_features"
This reverts commit da710ac3f7

Reason for revert: Causes Android roll to fail
http://anglebug.com/8255

Original change's description:
> Stop rolling third_party/cpu_features
>
> It was probably needed for zlib previously but now zlib already depends
> on the ndk's cpufeatures. There are no references to third_party
> cpu_features in the generated Android.bp.
>
> Bug: b/289259681
> Change-Id: Ib849b26391d0c23e533662094e74384c267c8620
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4656761
> Reviewed-by: Solti Ho <solti@google.com>
> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
> Auto-Submit: Roman Lavrov <romanl@google.com>
> Commit-Queue: Solti Ho <solti@google.com>

Test: scripts/roll_aosp.sh
Bug: angleproject:8255
Change-Id: I2a879a3675a1c041a0e6ffff2be886aa693e486d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4680107
Reviewed-by: Solti Ho <solti@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2023-07-12 17:46:11 +00:00
Alexey Knyazev
94ceedb7e8 Add GL_EXT_texture_compression_astc_decode_mode stubs
Bug: angleproject:8254
Change-Id: I2a839139b5738710e32842b04db35eab8fb04687
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4679683
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-12 10:27:03 +00:00
Shahbaz Youssefi
9b63700be1 Translator: Reorganize files
This change makes the translator files more organized by:

- Grouping files that are specific to a certain output under their own
  directory,
- Moving transformations under tree_ops
- Removing Direct from metal translation now that that SPIR-V Cross path
  is removed

Bug: angleproject:6394
Change-Id: Iaf5bb8d5604b84748dece029821b1f77b2813967
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4678780
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2023-07-11 17:43:15 +00:00
angle-autoroll
7de7b9a4f6 Roll vulkan-deps from 869b279baef4 to 03c816988bfd (17 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/869b279baef4..03c816988bfd

Changed dependencies:
* glslang: 3ebb72cc74..eaa7057768
* spirv-tools: 870fd1e17a..4be7d0e3ca
* vulkan-headers: 179b26a792..2565ffa31e
* vulkan-loader: 9d38cccf33..8b94e87bff
* vulkan-tools: 39090f9152..6e7fa4d975
* vulkan-validation-layers: db466666ac..db290809b5

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,cnorthrop@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: cnorthrop@google.com
Change-Id: Idb10483c233a386723d71bd478c396ba5546947c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4675703
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-07-11 11:03:13 +00:00
Shahbaz Youssefi
04c0cc8d59 Simplify aliasing-exception logic in entry point generation
Bug: angleproject:8224
Change-Id: Ic54c233ab3d8a0f9a1ac803804aea770c6f7cc07
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4672145
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-07 20:06:31 +00:00
Shahbaz Youssefi
51320fab57 Make most GLES1 entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: I80223340348d62a56109324ab3e4f935e53419b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4670407
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-07 19:51:12 +00:00
Shahbaz Youssefi
eb205e689d Make the glPatchParameteri entry point lockless
This entry points only sets context-local state and thus doesn't require
locking.

Bug: angleproject:8224
Change-Id: I17975a97aa7f68c3ddf2ef78069b8f519fdc4c1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4670405
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
2023-07-07 19:42:31 +00:00
Roman Lavrov
da710ac3f7 Stop rolling third_party/cpu_features
It was probably needed for zlib previously but now zlib already depends
on the ndk's cpufeatures. There are no references to third_party
cpu_features in the generated Android.bp.

Bug: b/289259681
Change-Id: Ib849b26391d0c23e533662094e74384c267c8620
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4656761
Reviewed-by: Solti Ho <solti@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Solti Ho <solti@google.com>
2023-07-07 15:45:23 +00:00
Shahbaz Youssefi
7e0fb7e402 Make glIsEnabled* entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: I6fe40bf4381e1d42248358f773ec9d5675883ada
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4666356
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-07 04:17:53 +00:00
Shahbaz Youssefi
72c269263c Make pack/unpack and hint entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: I5694d319df61a7a9df1766cf1f723b9a05208209
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4666352
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-07 03:53:06 +00:00
Shahbaz Youssefi
208dfe2860 Make glStencil* entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: I612d8219ba038464173490b2c261e9e7b229c83f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4661702
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-07 01:23:26 +00:00
Shahbaz Youssefi
c3c2f45046 Make glBlend* entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: Ie811c35ae7b65106db9af9f7531ad3a5e0bd4f8c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4661701
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-07 00:32:19 +00:00
Shahbaz Youssefi
4439593002 Make various state setting entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: I428c23cc862e9356d571bc085b5df0bf48017175
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4661700
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-06 23:38:50 +00:00
Shahbaz Youssefi
9daac2b7dd Make glEnable/Disable entry points lockless
These entry points only set context-local state and thus don't require
locking.

Bug: angleproject:8224
Change-Id: Id4eab729115bd75f82e1ec7a27355c821a7c4320
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4661697
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
2023-07-06 21:04:53 +00:00
Shahbaz Youssefi
0892420bcf Vulkan: Optimize PBO download between RGBA and BGRA
Google Meet hits this path in Chrome when blurring the background.  The
CPU readback was particularly slow on Intel/Mesa where readback from the
temp buffer took hundreds of milliseconds.

This change adds a compute shader that directly copies from the image to
the pack buffer in simple but common cases.

Bug: b/286882707
Change-Id: I9877ea01e3d8377db96f2539362aca67cf832b4a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4657058
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2023-07-06 17:45:07 +00:00
Shahbaz Youssefi
be41fe2949 Make glColor/DepthMask entry points lockless
These entry points only set state that is entirely accessed by the
owning context (context-local) and thus don't require locking.
glColorMask* functions also affect the cached context state (in
particular draw validity), so the relevant cached state is also modified
to support being locklessly modified.

Bug: angleproject:8224
Change-Id: I221b4efa25fc1c11419d1ac942f1c37e59ec92c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4658173
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-06 16:49:07 +00:00
Cody Northrop
ec8fb51b69 Tests: Add Evony: The King's Return trace
Test: angle_trace_tests --gtest_filter="*evony_the_kings_return*"
Bug: b/266237531
Bug: b/275096133
Change-Id: I32daa8b1bd4f3253887d02a5127ef4682df4951a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4664602
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2023-07-05 19:51:21 +00:00
Shahbaz Youssefi
4db1308136 Make glClearColor/Depth/Stencil entry points lockless
These entry points only set state that is entirely accessed by the
owning context and thus don't require locking.

Bug: angleproject:8224
Change-Id: I6cddee865ffd38e228f8f87dd14adffb916e0fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4658172
Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-07-05 18:52:57 +00:00
angle-autoroll
cb5cd76d1e Manual roll vulkan-deps from 2b2cba62bfea to e21365bc9170 (38 revisions)
Manual roll requested by ynovikov@google.com
Suppress new VUIDs:
    "VUID-vkCmdDrawIndexed-None-08608",
    "VUID-vkCmdDraw-None-08753",
    "VUID-vkCmdDrawIndexed-None-08753",

https://chromium.googlesource.com/vulkan-deps.git/+log/2b2cba62bfea..e21365bc9170

Changed dependencies:
* glslang: 9575e33186..3ebb72cc74
* spirv-cross: 2d3a152081..b8e742c91b
* spirv-tools: 310a67020a..58459c2b1a
* vulkan-headers: b6a29e5ca8..ad5f8ee975
* vulkan-loader: a1d9d485ce..dce85674e2
* vulkan-tools: 247c806c93..2e5260d44c
* vulkan-validation-layers: 926ffb1f41..4400858043

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC
angle-team@google.com,ianelliott@google.com,ynovikov@google.com on the
revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: angleproject:8242
Change-Id: I475146b418565e633043f6b57cb07baedcff02ba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4662877
Commit-Queue: Ian Elliott <ianelliott@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2023-07-04 18:24:43 +00:00
angle-autoroll
0e8a8e0f16 Roll VK-GL-CTS from 12bc45af35d5 to e7b180ad5366 (12 revisions)
12bc45af35..e7b180ad53

2023-07-03 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-06-30 lorenzo@khronosgroup.org Merge "Merge remote-tracking branch
'vk-gl-cts/vulkansc-cts-1.0.1'" into main
2023-06-30 aitor@lunarg.com Add EGL_ANDROID_RECORDABLE to config testing
2023-06-30 rgarcia@igalia.com Add GPL variants to fragment shader
barycentric tests
2023-06-30 rgarcia@igalia.com Test tessellation state switches
2023-06-30 cturner@igalia.com Vk Video: Upgrade the NVIDIA parser
interface to version 0.9.9
2023-06-30 paulthomson@google.com Skip dEQP-VK.api.info.android.* if not
Android
2023-06-30 scerveau@igalia.com cts: add deviceName to SessionInfo
2023-06-30 rgarcia@igalia.com Test maxSamplerLodBias
2023-06-30 cturner@igalia.com Update handling of field flags for
improved compatibility.
2023-06-26 gleese@broadcom.com Switch float controls tests from deBool
to C++ bool
2023-06-26 gleese@broadcom.com Remove duplicate direct linking options

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,ianelliott@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: ianelliott@google.com
Change-Id: I55e947c71f921d7ef55ffb5f2b61b0a19f304170
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4662878
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-07-03 18:47:15 +00:00
angle-autoroll
574d163f57 Manual roll vulkan-deps from 23a32754e715 to 2b2cba62bfea (29 revisions)
Manual roll requested by ynovikov@google.com

https://chromium.googlesource.com/vulkan-deps.git/+log/23a32754e715..2b2cba62bfea

Changed dependencies:
* spirv-headers: 10db9d4e19..3469b164e2
* spirv-tools: 54691dcd73..310a67020a
* vulkan-headers: c1a8560c5c..b6a29e5ca8
* vulkan-loader: b02d69f3a1..a1d9d485ce
* vulkan-tools: 07924a8a49..247c806c93
* vulkan-validation-layers: cb9c77d609..926ffb1f41

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC
angle-team@google.com,ianelliott@google.com,ynovikov@google.com on the
revert to ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: ianelliott@google.com,ynovikov@google.com
Change-Id: I4b5e433bdd24644f6e502f10f21974b670b2a0b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4662876
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-07-03 15:30:50 +00:00
angle-autoroll
f015b25357 Roll VK-GL-CTS from f29bd2feeaff to 12bc45af35d5 (10 revisions)
f29bd2feea..12bc45af35

2023-06-23 lorenzo@khronosgroup.org Merge remote-tracking branch
'vk-gl-cts/opengl-es-cts-3.2.9'
2023-06-23 piotr.byszewski@mobica.com Regenerate mustpass
2023-06-23 aitor@lunarg.com Test partial binding of depth/stencil images
2023-06-23 piotr.byszewski@mobica.com Test commands on transfer-only
queue
2023-06-23 cturner@igalia.com Allow DECODE_OUTPUT and DECODE_DPB
features for YCbCr formats
2023-06-23 matt.coster@imgtec.com Don't attempt pipeline library tests
without VK_KHR_pipeline_library
2023-06-23 rgarcia@igalia.com Test occlusion and frag shader inv counts
with flat shading
2023-06-23 alyssa@rosenzweig.io surfaceless: Fix shared contexts and
implement makeCurrent
2023-06-23 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-06-22 alexander.galazin@imgtec.com Notice of withdrawal of Vulkan
CTS 1.3.3.x

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,solti@google.com on the revert to ensure
that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: solti@google.com
Change-Id: I96a35e762f3cd5585027a5afa84d160619ee02c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4646068
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-26 16:20:45 +00:00
angle-autoroll
174742fd66 Roll VK-GL-CTS from 7fcb3c6e0082 to f29bd2feeaff (19 revisions)
Suppress dEQP-EGL failures.

7fcb3c6e00..f29bd2feea

2023-06-18 lorenzo@khronosgroup.org Merge vk-gl-cts/github-main into
vk-gl-cts/main
2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.9
into vk-gl-cts/main
2023-06-16 piotr.byszewski@mobica.com Split pipeline.txt in vksc-default
2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-06-16 alexander.galazin@imgtec.com Fix check_build_sanity.py error
2023-06-16 lorenzo@khronosgroup.org Add missing line in AndroidGen.mk
for vktFragmentShadingRateMiscTests.cpp
2023-06-16 rgarcia@igalia.com Test FSR in a pipeline without fragment
shader
2023-06-16 ziga@lunarg.com Add xfb test drawing outside of xfb begin
2023-06-16 piotr.byszewski@mobica.com Test RT interaction with flags
added by GPL
2023-06-16 rgarcia@igalia.com Test gl_SampleMaskIn with sample shading
2023-06-16 rgarcia@igalia.com Test enabling and disabling VRS statically
2023-06-16 rgarcia@igalia.com Test allocation and binding offsets with
index buffers
2023-06-16 pdaniell@nvidia.com Remove the "Error:" prefix with
NotSupported results
2023-06-16 jenatali@microsoft.com Fix skipping when synchronization2 is
unsupported on Windows
2023-06-16 gleese@broadcom.com Remove 64-bit test code for builtins
which don't support it
2023-06-16 jenatali@microsoft.com Don't include windows.h in the vk
namespace
2023-06-16 rgarcia@igalia.com Disallow direct linking of GLES libraries
by default
2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main
2023-06-15 younggwan.kim@arm.com Merge dev/EXT_shader_tile_image into
main

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: angleproject:8214
Change-Id: I84598fb784adf1e30abbeaac3c53dcd97108d58a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4624553
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-20 13:35:54 +00:00
angle-autoroll
949d9e344b Roll vulkan-deps from 58c6e1ea988a to c5656423525b (18 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/58c6e1ea988a..c5656423525b

Changed dependencies:
* glslang: 72713baf74..5793fbd624
* spirv-tools: d33bea5847..a720a6926e
* vulkan-headers: cb71b646f1..c1a8560c5c
* vulkan-loader: bcfb502054..db51885950
* vulkan-tools: 17edcc1455..ca8bb4ee3c
* vulkan-validation-layers: 4d4fc0e5a2..fff7423f1c

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: syoussefi@google.com
Change-Id: I1268ec340ea63b9cf151e77a7e69ae1d261ba77d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4626257
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-19 11:05:12 +00:00
Roman Lavrov
f102184dd7 Make Test spec JSON generator hashless.
Removes scripts/code_generation_hashes/Test_spec_JSON.json

Instead, run codegen in --verify-only mode and compare content.
This run during presubmits and is fast (~0.2s in my tests)

Similar to https://crrev.com/c/4604579

With this, should be able to auto-resolve conflicts in
infra/specs/angle.json

Also testing/buildbot/mixins.pyl
seems to have had hashes routinely updated by autorolls.

Bug: angleproject:8193
Change-Id: Ic1a657dbf464e6f4a8066ea8c5e18297e27a3b4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4605467
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-15 15:31:38 +00:00
Yuly Novikov
df787cf049 Add ANGLE experimental SwiftShader builders
For testing Ubuntu 22.04

Recipe-side CL http://crrev.com/c/4614428

Testers:
linux-exp-swiftshader
linux-exp-swiftshader-asan
linux-exp-swiftshader-tsan

Builders:
linux-exp-asan-test
linux-exp-tsan-test

Modify LUCI MILO console to show only the active experimental builders.

Bug: chromium:1380082
Change-Id: Iac74b606fca7b1762028cebf4868e691b3ed074c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614533
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
2023-06-15 15:16:18 +00:00
angle-autoroll
e8a29d6cd7 Roll Chromium from bfc7c889fd6c to 7df45c601f1c (609 revisions)
bfc7c889fd..7df45c601f

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/chromium-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in Chromium:
https://bugs.chromium.org/p/chromium/issues/entry
To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Changed dependencies
* build: a838ac9f43..1889753ce5
* buildtools/linux64: git_revision:1cd35c1b722472e714c30d12031af81443bb20ae..git_revision:4bd1a77e67958fb7f6739bd4542641646f264e5d
* buildtools/mac: git_revision:1cd35c1b722472e714c30d12031af81443bb20ae..git_revision:4bd1a77e67958fb7f6739bd4542641646f264e5d
* buildtools/win: git_revision:1cd35c1b722472e714c30d12031af81443bb20ae..git_revision:4bd1a77e67958fb7f6739bd4542641646f264e5d
* testing: ed771cb046..da030c5a1c
* third_party/abseil-cpp: 85f7b5752b..834450f113
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..89fad9023d
* third_party/depot_tools: 2b19afb820..dedeb88991
* third_party/fuchsia-sdk/sdk: version:13.20230613.4.1..version:13.20230614.3.1
* third_party/r8: AostPkk2hQv2Pz7k7JMtoD346t5IWWll26jAdkVHk2wC..vw5kLlW3-suSlCKSO9OQpFWpR8oDnvQ8k1RgKNUapQYC
* tools/clang: 21289a1a1b..573d371dff
* tools/luci-go: git_revision:e99800d3fd42249c9cdda3f58ba31c674b4876f6..git_revision:39f255d5875293d3e1d978888b819ac124a8b0cc
* tools/luci-go: git_revision:e99800d3fd42249c9cdda3f58ba31c674b4876f6..git_revision:39f255d5875293d3e1d978888b819ac124a8b0cc
* tools/mb: b69b0ca417..bf6c9c4977
* tools/perf: 1b905778b8..3a42bc4aaa
* tools/skia_goldctl/linux: TCcuUOFbPU3igS_xlEVBu_d1nZ71zngQ3oL-Bdm0GOoC..tVDltUu_xw7_tk4k-rnp7Ua8pKhf3EEHmTwX5c6BS4AC
* tools/skia_goldctl/mac_amd64: Btg2SHJpGjd1aivMSCt0RT5G6j33TDTYYfLANClZApYC..ov_DuOSHCneWQSTW6AZ9gWHEeoJxXEYDX9dl_0rA_d0C
* tools/skia_goldctl/mac_arm64: SW3HcHhCf69xzWwap7_fHNSualUgKeG_3N6xTMmVuVoC..3wDkZAVD4vV1dNhXfRNMOUBvODbzJ23AVmmsFbTsbkQC
* tools/skia_goldctl/win: yDoSOjnzDYE9APn8a3d-FcPJ6wwwq2FXWUTOJpf2__8C..yW7os_HVMoE-wq04olb6B7GNgEmaYZYPN0ecTzPPBdkC
No update to Clang.

Bug: None
Tbr: syoussefi@google.com
Change-Id: I9b6216bdb66bdc0c30c64226a785ec25e2da3b2a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4617669
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-15 08:26:25 +00:00
Igor Nazarov
36c3e0f546 Implement "Shared Context Mutex" functionality.
Existing implementation uses single `GlobalMutex` for
- EGL calls
- GL calls for Contexts with concurrent access.

This CL introduces abstract `egl::ContextMutex` with two
implementations:
- SingleContextMutex;
- SharedContextMutex<Mutex>;

Note:
`std::mutex` is used in this commit. It is very easy to change mutex
type either at compile-time or at run-time (single type per Display).

When Context:
- is not Shared;
- does not use `EGLImage`s;
- does not use EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE
- does not use EGL_DISPLAY_SEMAPHORE_SHARE_GROUP_ANGLE
then it will be using `SingleContextMutex` with minimal overhead.

Before such Context is used as `shareContext` or uses `EGLImage`
its mutex replaced by `SharedContextMutex<Mutex>`.

The `GlobalMutex` is only used for EGL calls, while `egl::ContextMutex`
implementations for GL calls. Because some EGL calls use Context,
explicit `egl::ContextMutex` lock is required. This is implemented by
generating "egl_context_mutex_autogen.h" header, and insertion of
`ANGLE_EGL_SCOPED_CONTEXT_LOCK()` macro before `ANGLE_EGL_VALIDATE()`
in each EGL entry point. Implementation in "egl_context_lock_impl.h"
returns lock for required APIs. Special cases of `egl::ContextMutex`
lock handled separately. `std::unique_lock<>` is not used for
performance reasons.

`egl::ContextMutex` explicitly locked when capturing EGL calls.

Fixes EGLImage problem:
    e18240d136
    Mark contexts as shared when importing EGL images.

Details:
- EGLImage inherits Context's mutex when created.
  Mutex is used when the EGLImage accessed or destroyed.
- When EGLImage is used in Context with other `egl::ContextMutex`,
  two mutexes are merged into one.
- After the mutex merge, Context Groups will remain separate,
  but will not be able to run in parallel.

Fixes race when checking `context->isShared()` in the
`SCOPED_SHARE_CONTEXT_LOCK()` macro. One Context may start executing GL
call while not "Shared", but become "Shared" inside the call. New
(second) "Shared" Context may immediately start using GL and potentially
corrupt some "Shared" state.

Possible performance benefit: allows parallel execution in some cases,
when single `GlobalMutex` would block.

Important note:
    Process of replacing the `SingleContextMutex` by
    `SharedContextMutex<Mutex>` is not 100% safe. This mean that
    original Context may still be using `SingleContextMutex` after
    activating `SharedContextMutex<Mutex>`. However, this was always
    the case before introduction of this CL. Old `Context::mShared`
    member update was not synchronized in any way at all. In other
    words, this solution does not 100% fix the original problem.
    For 100% safe solution `SingleContextMutex` should not be used
    (always pass `SharedContextMutex<Mutex>` to the `gl::Context`
    constructor). See `lockAndActivateSharedContextMutex()` for more
    details.

CL adds new build option:
    angle_enable_shared_context_mutex = true

Behavior with other build options:
- When:
    `angle_enable_shared_context_mutex`    is disabled or
    `angle_enable_share_context_lock`      is disabled or
    `angle_force_context_check_every_call` is enabled,
  Contexts will always have `SingleContextMutex`, however it will be
  only used in special cases. `SCOPED_SHARE_CONTEXT_LOCK()` will use
  `GlobalMutex` when applicable.
- Otherwise, `SCOPED_SHARE_CONTEXT_LOCK()` will use `egl::ContextMutex`.

Some GFXBench "1080p Driver Overhead 2 Offscreen" performance numbers.
Tested on S906B (Samsung Galaxy S22+) on old ANGLE base:
    807c94ea85
    Capture/Replay: Adjust tests do adhere to capture limits

Each test result is an average frame number from 6 runs.

    SingleContextMutex                            6579 ( +0.13%)
    (old) GetContextLock() (mShared is false)     6570

Forced `mShared = true` or NOT using `SingleContextMutex`.

    SharedContextMutex<std::mutex> FORCE          5061 (-22.97%)
    (old) GetContextLock() FORCE                  4766 (-27.46%)

Bug: angleproject:6957
Bug: chromium:1336126
Change-Id: Idcd919f9d4bf482b9ae489bd8b4415ec96048e32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4374545
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-14 16:59:15 +00:00
angle-autoroll
341dabf8e5 Roll vulkan-deps from 701c5daafb72 to cebf5626ca50 (30 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/701c5daafb72..cebf5626ca50

Changed dependencies:
* glslang: a6662c53ce..72713baf74
* spirv-cross: 030d0be28c..2d3a152081
* spirv-tools: 93c13345e1..40dde04ca2
* vulkan-headers: 605dc6d3e7..cb71b646f1
* vulkan-loader: c97930ba36..88d70047fb
* vulkan-validation-layers: ee8fe8140a..5cde5d21a3

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-deps-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: syoussefi@google.com
Change-Id: Id2fb37c26ef6d6ca61d4b72a1c18dc5180e18654
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614205
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-14 10:56:48 +00:00
angle-autoroll
1e06b31e38 Roll VK-GL-CTS from 7dc49a77dd0f to f7646f53ba61 (6 revisions)
7dc49a77dd..f7646f53ba

2023-06-12 marcin.zajac@mobica.com Vulkan video capabilities tests for
1.3.253
2023-06-12 alexander.galazin@imgtec.com Merge vk-gl-cts-public/main into
vk-gl-cts/main
2023-06-12 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3
into vk-gl-cts/main
2023-06-12 piotr.byszewski@mobica.com Merge
vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main
2023-06-12 marcin.zajac@mobica.com Enabling storage image write support
2023-06-12 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.6
into vk-gl-cts/main

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-team@google.com,syoussefi@google.com on the revert to
ensure that a human
is aware of the problem.

To file a bug in ANGLE:
https://bugs.chromium.org/p/angleproject/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Bug: None
Tbr: syoussefi@google.com
Change-Id: Idf35864a0c0a40546477e0352fd35cd59613500b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606371
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-13 07:47:04 +00:00
Roman Lavrov
1572f609c1 Disable hashes for ANGLE features generator
Features autogen files are small, fast to regenerate.
Run the generator in --verify-only mode and check content every time,
instead of using hashes.

Bug: angleproject:8193
Change-Id: I3988ab50a6c33171b7b7252c03f34a74f09fcf18
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604579
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-12 22:14:32 +00:00
Roman Lavrov
21f16cb163 Disable clang-format on ANGLE features autogen outputs
Updates the script to produce reasonably formatted code without
clang-format.

Autogen files moved to autogen/ sub-directories because clang-format
does not support per-file settings ;(

This allows to run this codegen very quickly
(~50ms on my machine)

Bug: angleproject:8193
Change-Id: Ie84282090d574ebb4debe3edcfd82f983f27a5ff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604578
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-12 17:52:18 +00:00
Steven Noonan
a01a566c48 extension xmls: fix incorrect use of <ptype> tags
I was having trouble using some GL/EGL loader generators because of some
errors in the XML definitions for ANGLE.

The first major problem is the content of the <ptype> tags. Let's refer
to the Khronos registry XML schema (which is annoyingly a PDF rather
than an xsd that we can test against, though I don't know if an xsd
would catch this anyway):

    https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/master/xml/readme.pdf

In section 12.4.2, "Contents of <param> tags" it states:

    The <ptype> tag is optional, and contains text which is a valid type
    name found in <type> tag, and indicates that this type must be
    previously defined for the definition of the command to succeed.
    Builtin C types, and any derived types which are expected to be
    found in other header files, should not be wrapped in <ptype> tags

Note that the above is repeated for the contents of <proto> tags as
well.

The extension XML files currently have a bunch of <ptype> tags which
don't meet the expectations described above. The correct transformation
for them would be, for example:

    <ptype>GLfloat *</ptype>      ->   <ptype>GLfloat</ptype> *
    <ptype>void *</ptype>         ->   void *
    <ptype>const char *</ptype>   ->   const char *
    <ptype>EGLAttrib *</ptype>    ->   <ptype>EGLAttrib</ptype> *

The next issue is that some tags have some typos, such as "<pytpe>"
instead of "<ptype>". (Now *that* is something an .xsd would catch...)

The last issue is the use of the typename "GLvoid" which is not as
serious a problem. It is still defined in Khronos' gl.xml <types> block,
but Khronos no longer uses it in their XML registries. The comment for
the "GLvoid" type in their <types> block states:

    <type comment="Not an actual GL type, though used in headers in the past">typedef void <name>GLvoid</name>;</type>

So we might as well replace those with just plain "void".

Anyway, long story short: to apply these transformations, I used Perl
regular expressions, and applied these expressions in order:

- Fix the tag misspellings:

    s#<(/?)pytpe>#<\1ptype>#g

- Move the const qualifiers (if present) and pointer asterisk(s) (if
  any) outside the <ptype> tag itself:

    s#<ptype>(const )?([A-Za-z0-9]+)[ ]?(\*\*?)</ptype> #\1<ptype>\2</ptype> \3#g

- Replace "GLvoid", "char", and "void" inside ptype tags to normal
  C types outside tags:

    s#<ptype>(GLvoid|void|char)</ptype>#\1#g

Bug: angleproject:8190
Change-Id: Ib0bea79fecb7e714910b6e92124bb9f52994d0fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603709
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-09 21:15:16 +00:00
Geoff Lang
d55c91c361 Don't roll third_party/android_toolchain into AOSP.
Bug: None
Change-Id: I43a34f4e17b81482d8a0f994f9b729b7abd94b3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603670
Reviewed-by: Solti Ho <solti@google.com>
2023-06-09 19:18:07 +00:00
Mark Lobodzinski
72df42832e Tests: Add Lotsa Slots trace
Test: angle_trace_tests --gtest_filter=TraceTest.lotsa_slots
Bug: b/286514838
Change-Id: I8756a21596f2a09abff8262b3a9489b638d3522d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603714
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Mark Łobodziński <mark@lunarg.com>
2023-06-09 18:24:26 +00:00
Steven Noonan
beeb465b6c xml: fix enum EGL_SYNC_METAL_SHARED_EVENT_SIGNALED_ANGLE
The name in the extension/require block did not match the name in the
enum specification block. This caused some EGL loader generators to fail
to run properly.

Bug: angleproject:8190
Change-Id: I6ce6e226121e7ea9aa611c7d331a8fd1bc83e55b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603708
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2023-06-09 17:56:22 +00:00
Roman Lavrov
3e4f4caebc Tests: reduce load on perf bots by collecting less data
Collecting this data takes a significant amount of resources but we do
not actively use it at the moment.

Disable --split-shard-samples (will avoid separate calibration on each
shard)
Reduce samples to 6 (from default 10)

Bug: angleproject:7671
Change-Id: I87d45f21badb30ed44de9b9854c94fe7f67ecdc8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4605335
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2023-06-09 17:21:46 +00:00
Roman Lavrov
5215293366 Add trace_interface: functions and callbacks for traces
Defines the interface between the test suite
(or an other TraceLibrary class user) and trace libraries.

TraceFunctions defines entry points for calls suite->trace, such as
SetupReplay() or SetBinaryDataDir().

TraceCallbacks defines entry points for calls trace->suite, for example
for loading .angledata.gz files.

These are set up via the exported SetupEntryPoints() call. Functions
like SetupReplay etc no longer need to be exported from the trace
library.

TraceInfo (parsed representation of the trace json) is moved to
trace_interface as is. This is convenient for further changes to the
fixture that will allow to easily move some of the captured parameters
to json.

This also moves Decompress functionality (and memory ownership) to test
suite entirely, which avoids Decompress/Delete callbacks - the trace
just calls LoadBinaryData via TraceCallbacks and TraceLibrary releases
the memory either on FinishReplay or in its destructor.
This should also take care of the memory leak described in
https://crrev.com/c/3858185

Bug: b/286072760
Change-Id: Ibc6f6f64156ad805b1917c8fc41a3b0d2c0d6375
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594445
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2023-06-08 20:06:15 +00:00
Prashanth Swaminathan
c49674d156 Remove stale Android NDK and references [2/2]
Now that chromium/base has rolled and switched the android_ndk_root to
the new android_toolchain directory, remove the stale Android NDK. Fix
roller scripts to no longer roll Android NDK and Android blueprint
generation can remove references to the removed sources.

Bug: chromium:1448383
Test: Verified build of ANGLE.
Change-Id: Iba8bfd8be9fd6bfb4f75f5d3a273411bd11f6b5e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4585389
Auto-Submit: Prashanth Swaminathan <prashanthsw@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-08 18:08:44 +00:00