Commit Graph

21558 Commits

Author SHA1 Message Date
Geoff Lang
7f9e9fce2f Metal: Remove copy constructors in various util classes
By using a different array initializer in RenderUtils, the copies are
not neccessary.

Bug: chromium:1329376
Change-Id: Iec98a31741457f8d76a84f0340772167d7b9700a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4607151
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-16 15:55:26 +00:00
Colin Blundell
6e3808db30 Record duration of syncFromNativeContext()
Bug: chromium:1168587
Change-Id: I9e9770ab253df8ca4fd45979f2e5d67932c0a2ae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614517
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
2023-06-16 15:07:07 +00:00
angle-autoroll
78be95529f Roll VK-GL-CTS from f7646f53ba61 to 7fcb3c6e0082 (1 revision)
f7646f53ba..7fcb3c6e00

2023-06-16 lordalcol@users.noreply.github.com Merge pull request #397
from jenatali/patch-1

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: I316af1897e47324dfdd74fed5a6f208d39b3ceff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4620520
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-16 13:55:34 +00:00
angle-autoroll
498c744bc7 Roll vulkan-deps from cebf5626ca50 to 58c6e1ea988a (14 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/cebf5626ca50..58c6e1ea988a

Changed dependencies:
* spirv-headers: 8e2ad27488..6e09e44cd8
* spirv-tools: 40dde04ca2..d33bea5847
* vulkan-loader: 88d70047fb..bcfb502054
* vulkan-tools: 2c83dd6cb2..17edcc1455
* vulkan-validation-layers: 5cde5d21a3..4d4fc0e5a2

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: I1674b1342d0fb9e1924d8b921dc4fe2a69217a0a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4620294
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-16 13:06:26 +00:00
L. E. Segovia
edf58105d6 Validate GL backend after dispatch table initialization
This commit adds a check to ensure that the GL backend's functions
have been properly initialized. This may happen with third party
build toolchains, like vcpkg, which reimplement parts of the
existing build system.

Bug: angleproject:8195
Change-Id: Iaca2200a563c5049d90acad57785088c94b4e580
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4614645
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-16 03:41:22 +00:00
Roman Lavrov
46ff02f8a2 Capture/Replay: Initial setup for angle_capture_tests
Implements the first part (FrameCapture) of the proposal
go/frame-capture-and-interpreter-testing

Adds a basic test (CapturedTest) with a few frames. This test gets
captured by capture_tests.py into a temporary directory and the
resulting files are diff'ed with the files under expected/

A diff fails the test. When capture changes, the workflow would be to
run the command indicated by the error message in the test which will
overwrite the files with new ones so that they can be added to the CL.

Example test failure on capture change:
https://chromium-swarm.appspot.com/task?id=62b5f4034527c610
when testing https://crrev.com/c/4598046/3

Tests in CI: https://screenshot.googleplex.com/77o8vZVuj8AbFRj

Also adds a "angle_capture_tests_trace" lib with the trace just to test
that this capture also builds, the lib is not currently loaded by
anything.

Bug: b/286067106
Change-Id: I7d5f6eed088d84f9e3eb8a72b24b1d92515fff38
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545408
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2023-06-15 22:23:29 +00:00
Igor Nazarov
3545ae0ca0 Add isContextMutexStateConsistent() ASSERT
Added `gl::Context::isContextMutexStateConsistent()` method. This method
is primarily used to check if "SharedContextMutex" activation worked
successfully. It is automatically called in the updated
`ScopedContextMutexLock` before unlocking. This is to catch possible
errors using ASSERT during normal ANGLE operation in applications and
tests.

The `ScopedContextMutexLock` is now also used instead of the
`std::lock_guard<egl::ContextMutex>` in the `SCOPED_SHARE_CONTEXT_LOCK`.
No performance regression observed.

Important note: `lockAndActivateSharedContextMutex()` is NOT 100% safe
regardless of the `kActivationDelayMicro` value, so `ASSERT` may still
fail. However,  failure does not necessary mean that there will be an
undefined behavior, it means that UB might happen.

Bug: angleproject:6957
Bug: chromium:1336126
Change-Id: Iee7357fede0d37fa315fe2cc7d27a4e30a304194
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610227
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
2023-06-15 16:23:17 +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
Geoff Lang
bd5a7f24a4 Metal: Set alphaToCoverageEnabled in checkIfPipelineChanged
alphaToCoverageEnabled was tweaked to false for non-multisampled
rendering cases in RenderPipelineCache::createRenderPipelineState
but this caused a copy and could be done much earlier during context
state syncing.

Bug: chromium:1329376
Change-Id: I37a461554e1e2b162313b4a952baa1526356db3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608484
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-15 15:27:03 +00:00
Kramer Ge
88c6dfcc7d Mali: Make the placeholder FBO complete for timer queries
Change the bindFramebufferForTimerQueries workaround to ensure
the framebuffer is complete.

Bug: chromium:1356053,b/269068358
Change-Id: Ief3198fdc4800468670a3f4323a1ffd3ca083c6f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4582606
Auto-Submit: Kramer Ge <fangzhoug@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2023-06-15 15:26:04 +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
Yuxin Hu
5a5f21f4a2 Disable supportsExtendedDynamicState on ARM
There are multiple issues with dynamic states on
ARM. Previously we have disabled individual dynamic
state that had issues, but it turns out some dynamic
states need to be enabled/disabled together for tests
traces to work correctly.

Disabling the supportsExtendedDynamicState until
all the issues are addressed.

Bug: b/287318431
Bug: b/285196249
Bug: b/286224923
Change-Id: If2f039b8392898e1e42b5da6b1277e82818a1b1a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615995
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2023-06-14 23:33:59 +00:00
Yuxin Hu
ecc287a8a0 Clean up skipped deqp khr gles32 tests on Pixel 6
Remove deqp khr gles32 test suppression on Pixel 6
that are no longer failing.

Remove suppression of below tests
KHR-GLES32.core.texture_buffer.texture_buffer_texture_buffer_range
KHR-GLES32.core.compressed_format.api.texstorage_accepts_compressed_format
KHR-GLES32.core.compressed_format.api.invalid_inconsistent_data_size
KHR-GLES32.core.compressed_format.api.invalid_inconsistent_data_size_array
KHR-GLES32.core.compressed_format.api.invalid_offset_or_size

Remove suppression of below tests on Android Vulkan
KHR-GLES32.core.constant_expressions.*geometry
KHR-GLES32.core.shader_macros.fragment_precision_high_geometry
KHR-GLES32.core.texture_cube_map_array.stencil_attachments_*mutable_layered
KHR-GLES32.core.texture_cube_map_array.*tessellation*
KHR-GLES32.core.texture_cube_map_array.sampling

Restrict suppression of below tests on Pixel4 Vulkan
KHR-GLES32.core.geometry_shader.*
KHR-GLES32.core.texture_cube_map_array.*geometry*
KHR-GLES32.core.separable_programs_tf.geometry_active
KHR-GLES32.core.texture_cube_map_array.color_depth_attachments
KHR-GLES32.core.texture_cube_map_array.fbo_incompleteness
KHR-GLES32.core.tessellation_shader.*
KHR-GLES32.core.texture_cube_map_array.*tesselation*
KHR-GLES32.core.constant_expressions.*tess_control
KHR-GLES32.core.constant_expressions.*tess_eval
KHR-GLES32.core.separable_programs_tf.tessellation_active
KHR-GLES32.core.shader_macros.fragment_precision_high_tess_*
KHR-GLES32.core.texture_border_clamp.*
KHR-GLES32.core.gpu_shader5.*clamp*_border
KHR-GLES32.core.gpu_shader5.*clamp*_edge

Restrict suppression of below tests on Pixel6 Vulkan
and Windows Nvidia Vulkan:
KHR-GLES32.core.texture_border_clamp.Texture2DDC16Linear
KHR-GLES32.core.texture_border_clamp.Texture2DDC32FLinear

Add test suppression on Pixel 6 Vulkan
KHR-GLES32.core.tessellation_shader.vertex.vertex_ordering
KHR-GLES32.core.tessellation_shader.tessellation_shader_tessellation.gl_InvocationID_PatchVerticesIn_PrimitiveID
KHR-GLES32.core.tessellation_shader.tessellation_shader_quads_tessellation.degenerate_case
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule2
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule5
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule6
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule4
KHR-GLES32.core.tessellation_shader.tessellation_shader_point_mode.points_verification
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_tessLevel
KHR-GLES32.core.tessellation_shader.vertex.vertex_spacing
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule7
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_in
KHR-GLES32.core.tessellation_shader.tessellation_shader_triangles_tessellation.inner_tessellation_level_rounding
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.data_pass_through
KHR-GLES32.core.tessellation_shader.tessellation_shader_tessellation.TCS_TES
KHR-GLES32.core.tessellation_shader.tessellation_shader_quads_tessellation.inner_tessellation_level_rounding
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule3
KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_MaxPatchVertices_Position_PointSize
KHR-GLES32.core.tessellation_shader.tessellation_shader_triangles_tessellation.identical_triangles
KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule1

Bug: b/224537784
Bug: angleproject:5579
Bug: angleproject:5557
Bug: angleproject:5978
Bug: angleproject:3577
Bug: angleproject:3573
Bug: angleproject:6441
Change-Id: Ia734217c340fd927a93ea385120d0cf952cd428d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606544
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2023-06-14 23:31:36 +00:00
Yuxin Hu
9f158eb538 Clean up skipped deqp khr gles31 tests on Pixel 6
Remove deqp khr gles31 test suppression on Pixel 6
that are no longer failing.

Remove the suppression of below tests:
KHR-GLES31.core.texture_buffer.texture_buffer_texture_buffer_range

Restrict the suppression of below tests on
swiftshader, windows nvidia vulkan, and pixel6 vulkan
KHR-GLES31.core.texture_border_clamp.Texture2DDC16Linear
KHR-GLES31.core.texture_border_clamp.Texture2DDC32FLinear

Remove the suppression of below tests
KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength*

Restrict the suppression of below tests on swiftshader
KHR-GLES31.core.arrays_of_arrays.ConstructorsAndUnsizedDeclConstructors1
KHR-GLES31.core.arrays_of_arrays.ConstructorsAndUnsizedDeclConstructorSizing1

Bug: angleproject:3573
Bug: angleproject:5978
Bug: angleproject:4107
Bug: angleproject:4300
Bug: angleproject:4108
Bug: angleproject:4188
Bug: angleproject:4190
Bug: angleproject:4240
Bug: angleproject:6295
Bug: b/224537784
Change-Id: I2c4d67ad3c50381ece4ed6241657b79402c91d3d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606543
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2023-06-14 23:16:40 +00:00
Yuxin Hu
8df249d728 Clean up skipped deqp khr gles3 tests on Pixel 6
Remove deqp khr gles3 test suppression on Pixel 6
that are no longer failing.

Restrict the suppression of below tests on Pixel4 Vulkan
KHR-GLES3.packed_depth_stencil.clear_buffer.depth32f_stencil8

Restrict the suppression of below tests on
NVIDIA Vulkan and Android Vulkan
KHR-GLES3.packed_pixels.varied_rectangle.*

Restrict the suppression of below tests on
NVIDIA Vulkan and Android Vulkan
KHR-GLES3.packed_pixels.pbo_rectangle.r8_snorm
KHR-GLES3.packed_pixels.pbo_rectangle.rg8_snorm
KHR-GLES3.packed_pixels.pbo_rectangle.rgba8_snorm
KHR-GLES3.packed_pixels.rectangle.r8_snorm
KHR-GLES3.packed_pixels.rectangle.rg8_snorm
KHR-GLES3.packed_pixels.rectangle.rgba8_snorm

Bug: angleproject:3683
Bug: angleproject:6678
Bug: angleproject:8048
Bug: b/224537784
Change-Id: Id24591e3bc21fa263fa64d3bd812d82209b8c5fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606542
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-14 22:13:32 +00:00
Yuxin Hu
57cccfd4e0 Clean up skipped deqp gles31 tests on Pixel 6
Remove the deqp gles31 test suppression on Pixel 6
that are no longer failing.

Below tests no longer fails on win-test bot, remove them
from the expectation file:
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36

Restrict the suppression of below tests on NVIDIA Vulkan
dEQP-GLES31.functional.image_load_store.3d.*single_layer

Restrict the suppression of below tests on Pixel4 Vulkan
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb10_a2*
dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb9_e5*

Remove the suppression of below tests on Android Vulkan
dEQP-GLES31.functional.stencil_texturing.misc.base_level

Remove the suppression of below tests on Pixel6
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules.internal_different_precision

Bug: b/224537784
Bug: angleproject:3445
Bug: angleproject:6021
Bug: angleproject:4080
Bug: angleproject:5277
Bug: angleproject:7488
Change-Id: I9baff33ade443d2ad28d1bc7a1333e0c672942c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606541
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2023-06-14 21:18:41 +00:00
Yuxin Hu
5ff9d9318b Clean up skipped deqp gles3 tests on Pixel 6
Remove deqp gles3 test suppression on Pixel 6
that are no longer failing.

Undefined behaviors in below test should have been
addressed by the upstream change in VK-GL-CTS:
5d286e0dae
Remove the suppression of them:
dEQP-GLES3.functional.shaders.operator.unary_operator.minus.lowp_uvec4_vertex
dEQP-GLES3.functional.shaders.operator.unary_operator.minus.mediump_uvec4_vertex

Restrict the suppression of below tests on
NVIDIA and MAC
dEQP-GLES3.functional.fbo.completeness.renderable.*.r8_snorm
dEQP-GLES3.functional.fbo.completeness.renderable.*.rg8_snorm
dEQP-GLES3.functional.fbo.completeness.renderable.*.rgba8_snorm

Bug: b/224537784
Bug: angleproject:1101
Bug: angleproject:6214
Bug: angleproject:8048
Change-Id: Ic227be3e08b85f9f812171faafbbb1d421e9c30a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606540
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-14 19:06:23 +00:00
Yuxin Hu
d73ce6e367 Clean up skipped deqp gles2 tests on Pixel 6
Update comments to explain why the test
dEQP-GLES2.functional.flush_finish.* need
to be skipped.

Bug: b/224537784
Bug: angleproject:1034
Change-Id: I09dbf3134006a76129e6e4e483ac43616c550418
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606539
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2023-06-14 18:49:40 +00:00
Yuxin Hu
97e3851d12 Clean up skipped deqp egl tests on Pixel 6
Remove the deqp test suppression on Pixel 6
that are no longer failing.

Restrict suppression of below tests on Android Vulkan
and Pixel 4 GLES
dEQP-EGL.functional.native_color_mapping.native_window.*
dEQP-EGL.functional.native_coord_mapping.native_window.*

Restrict suppression of below tests on Pixel 4 Vulkan
dEQP-EGL.functional.image.api.create_image_gles2_android_native_rgb8
dEQP-EGL.functional.image.create.gles2_android_native_rgb8_read_pixels
dEQP-EGL.functional.image.create.gles2_android_native_rgb8_texture
dEQP-EGL.functional.image.create.gles3_android_native_array_rgb565_texture_array
dEQP-EGL.functional.image.create.gles3_android_native_array_rgb8_texture_array
dEQP-EGL.functional.image.create.gles3_android_native_array_rgba8_texture_array
dEQP-EGL.functional.image.modify.android_native_rgb8_renderbuffer_clear_color
dEQP-EGL.functional.image.modify.android_native_rgb8_tex_subimage_rgb8
dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_read_pixels
dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_texture
dEQP-EGL.functional.image.create.gles3_android_native_array_*_render_sample_texture_array

Restrict suppression of below tests on Swiftshader
and Nvidia Vulkan
dEQP-EGL.functional.create_context_ext.gl_30.*
dEQP-EGL.functional.create_context_ext.robust_gl_30.*

Bug: b/224537784
Bug: angleproject:6533
Bug: angleproject:6277
Bug: angleproject:7506
Bug: angleproject:7533
Change-Id: I769bb1ef15c187ae0de62cc901f907cb095dc73a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4602771
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-14 17:36:59 +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
Mark Lobodzinski
82151df0c9 Android: Pixel 7 and Oppo Flip N2 device support
Add device detection for test expectation files.

Bug: b/285628492
Bug: angleproject:8205
Change-Id: Ia4ed8f7adc4f65ebb36c3248edadb3900b4caf58
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615663
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2023-06-14 16:53:00 +00:00
Mike Schuchardt
af1768a487 Android: Add Galaxy A34, A54 and Oppo Find X6
Adds device detection for use in expectation files

Bug: b/285047631
Bug: b/285047394
Bug: b/285630872
Change-Id: I30361d7bc1a0a08441c8b5afe64d4b5f22ae4ddb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4611333
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Ian Elliott <ianelliott@google.com>
2023-06-14 15:36:05 +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
7daa3442ca Roll Chromium from 28f11e95962d to bfc7c889fd6c (628 revisions)
28f11e9596..bfc7c889fd

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: cb80611890..a838ac9f43
* buildtools: 3819ac6f3d..3739a36193
* testing: 40b038e86d..ed771cb046
* third_party/abseil-cpp: 9c2e12d0a6..85f7b5752b
* third_party/android_build_tools/lint: 3AJFzcPQ9EDTP7XlHY6bgKZvGn7D812ptquuXFcUWzEC..nGuHS3ccbDvKba1WE0bWYRax-Ibs76dLKpdsPpXqCiMC
* third_party/android_build_tools/manifest_merger: nGzWwB6kx8dBDTH7L1jUxm8y3INDX3qVm9co3ntGk7EC..UNXioFXYvz7k7UmE2WYAaXuYIK3Ky0aSQ0IuDEdS9soC
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ca32af6260
* third_party/depot_tools: 7b5e3d7868..2b19afb820
* third_party/fuchsia-sdk/sdk: version:12.20230612.1.1..version:13.20230613.4.1
* third_party/r8: 35Zwd7tLHQKr_VieKX2NBes8RQ37TAwoMJ8UiObvpM8C..AostPkk2hQv2Pz7k7JMtoD346t5IWWll26jAdkVHk2wC
* tools/clang: 381a058eb7..21289a1a1b
* tools/perf: 0f15a3a3ae..1b905778b8
No update to Clang.

Bug: None
Tbr: syoussefi@google.com
Change-Id: Ic802dff0427bffd2b84356357b4fc832a9443693
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4612062
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 08:01:42 +00:00
Yuxin Hu
3a3a3c655a Remove override test31Context.cpp
Remove the override test31Context so that

1) we can run deqp test suites on Pixel devices
with the same configuration as Android CTS test
runner.

2) those deqp tests that require a GLES 3.2
context will not be skipped and can execute on
devices that supports GLES 3.2.

Since the deqp test runner overrides the feature
exposeNonConformantExtensionsAndVersions with "true" value,
a context is created regardless of whether the device supports
GLES 3.2. However, not all of the devices are GLES 3.2
conformant, we will suppress those tests that
are failing on non-conformant devices.

Bug: b/224537784
Bug: angleproject:3687
Bug: angleproject:3688
Bug: angleproject:6678
Change-Id: I2a549537bdbb2c0356fcccaa96291229c699ed0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559445
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
2023-06-14 01:41:13 +00:00
Peiyong Lin
ce7b9602aa Avoid clearing global settings when register receiver.
Global settings can be set by adb command and hence clearing the all
global settings values are not ideal. Previously ANGLE apk triggers a
clear when device boot is completed because we register the receiver and
immediately trigger the callback. However, that causes race condition as
our testing infra will set up the ANGLE per-application override to run
tests on top of ANGLE apk. This patch removes that trigger.

Bug: b/285594264
Test: Verify per-application override is no longer cleared
Change-Id: Ic10703b72593cee7f067570a523f668553047ae2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4611447
Reviewed-by: Solti Ho <solti@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Peiyong Lin <lpy@google.com>
2023-06-14 00:46:12 +00:00
Ian Elliott
14339812a9 Merge Galaxy A23 and S23 e2d expectations where can
Many of the Samsung Galaxy A23 and S23 (all Qualcomm GPU) expectations
were common, and so they are merged into a common GALAXYQUALCOMM ID.

Bug: b/285045753
Bug: angleproject:8185
Change-Id: I5eb44f5de969763df290a938935a3a76ea3aab98
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610479
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-13 19:54:52 +00:00
Romaric Jodin
8882feeb25 common: linux: add support for DRM_FORMAT_NV12
In DrmFourCCFormatToVkFormats convert DRM_FORMAT_NV12 to
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM.
DmaBufImageSiblingVkLinux can already consume it.

BUG: b/277798516
Change-Id: I3173763101cf926fb2277651918631ec4de76e96
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604507
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-13 18:28:23 +00:00
Roman Lavrov
3a42d02433 Only import xvfb on Linux.
Allows to run certain scripts with python3 (instead of vpython3)
on Windows.

Same as testing/scripts/common.py:
https://crsrc.org/c/testing/scripts/common.py;drc=dfebdf76453bb843c0910d8a3e74468f6ab4a474;l=25

Bug: b/286067106
Change-Id: I57f5478082c2147bb5e9cf98baae762b8b844cec
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610084
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
2023-06-13 18:17:27 +00:00
Shahbaz Youssefi
86e21fa286 Vulkan: Refactor angle::Format depth/stencil checks
Bug: b/246008627
Change-Id: If0a2992c5bd66adf27c6866aea04e54ba465a522
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608489
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
2023-06-13 18:07:31 +00:00
Shahbaz Youssefi
ef582ba3d7 Vulkan: Suppress vertex attribute divisor VUID
... to unblock the roller.  Need to investigate if the failure is real.

Bug: angleproject:8203
Change-Id: I958de60188a67e519d7d3b27c52b9ea260d36d80
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610083
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
2023-06-13 17:57:35 +00:00
Geoff Lang
18010f58be Metal: Limit the debug spew for blocked cache reads/writes
When running tests in debug builds, most of the output is logging about
blocked reads and writes to the metal system cache. Limit it to 5
messages per type.

Bug: None
Change-Id: Id10e901d2d96164a86d8fdc7dafec14f81b700fe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4607152
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-13 16:59:45 +00:00
Ian Elliott
7e075469ff A23: Improve end2end SKIP lines and add FAIL lines
Bug: b/285045753
Bug: angleproject:8185
Change-Id: I863878e06495c0431c07113d9de702b0bb7dd8ad
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606370
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-13 13:13:11 +00:00
angle-autoroll
057b8b61b2 Roll Chromium from 5ec32d118efd to 28f11e95962d (682 revisions)
5ec32d118e..28f11e9596

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: 5e03e46b47..cb80611890
* testing: 1c1bb5094d..40b038e86d
* third_party/android_toolchain: version:2@r25c.cr0..version:2@r25c.cr1
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..793b83da06
* third_party/depot_tools: 6eaeb04ac1..7b5e3d7868
* third_party/fuchsia-sdk/sdk: version:12.20230612.0.1..version:12.20230612.1.1
* third_party/protobuf: 46428dc4d3..553ce6033e
* third_party/r8: 4KIUOAKhjtCRa2saTdxTrchL0zgexuTpcifzY1KzZDoC..35Zwd7tLHQKr_VieKX2NBes8RQ37TAwoMJ8UiObvpM8C
* tools/clang: fc015c0358..381a058eb7
* tools/perf: c2b6ebc490..0f15a3a3ae
No update to Clang.

Bug: None
Tbr: syoussefi@google.com
Change-Id: I429932f26ce6d7e9190d0b9f469046ba23a5943c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606372
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-13 08:33:14 +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
Shahbaz Youssefi
f1e1987261 Vulkan: Fix read pixels with RGBX
Typically, the format used for data uploads and downloads as well as the
storage format are consistent.  That is unfortunately not the case for
GL_RGBX8_ANGLE where data uploads are through 3-byte RGB pixels while
downloads are through 4-byte RGBX pixels.  This change swaps out RGBX
for RGBA on the read pixels path.

Test credit of Jason Macnak <natsu@google.com>

Bug: b/246008627
Test: atest CtsSkQPTestCases
Change-Id: I531ebd8318bf4fe5ac09c623068b790a7e301428
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608488
Reviewed-by: Jason Macnak <natsu@google.com>
Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2023-06-12 20:49:34 +00:00
Zijie He
07eb410020 [GlobalMutex] Do not assume the thread conflict happens in tests
There isn't a guarantee that threads would always conflict with each
other, so the assertion here would fail randomly.

Overall:
https://ci.chromium.org/ui/test/chromium/ninja%3A%2F%2Fthird_party%2Fangle%2Fsrc%2Ftests%3Aangle_unittests%2FGlobalMutexTest.ScopedOptionalGlobalMutexLockDisabled?q=+V%3Atest_suite%3Dangle_unittests+

Examples:
https://chromium-swarm.appspot.com/task?id=623bb4e76b382911
https://chromium-swarm.appspot.com/task?id=62ba96ea430b8811

Fixed: angleproject:8194
Change-Id: Iaf2e5371a162d21f565e72f96d487d12c69f88c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606236
Auto-Submit: Zijie He <zijiehe@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-12 20:15:24 +00:00
Roman Lavrov
cf095dfb82 Tests: disable TraceTest.respawnables on native Win & Linux
Bug: angleproject:8191
Change-Id: Ie61adc4b15c7db20aa890fad36c079e301f9ffc4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608487
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Roman Lavrov <romanl@google.com>
2023-06-12 19:23:58 +00:00
Cody Northrop
4384e49ca9 Vulkan: Disable some dynamic states on ARM
Bug: b/286224923
Bug: b/285196249
Bug: b/285124778
Change-Id: Ia19a278581d6586a2e1efcc46987925dcc9ccd3e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608501
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2023-06-12 18:26:40 +00:00
angle-autoroll
73be6c9f6d Roll VK-GL-CTS from f7613775cdc7 to 7dc49a77dd0f (1 revision)
f7613775cd..7dc49a77dd

2023-06-12 piotr.byszewski@mobica.com Merge pull request #395 from
jenatali/fix-synchronization2-skip-windows

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: I85eb16a0c44bb597f0ae5ba863cd840b7a18f886
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606369
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-12 18:09:35 +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
Cody Northrop
43ef50f389 Android: Assert that CFI is disabled
There appears to be a bug in the interaction of CFI and
relative vtables. On armv9 it results in a crash with SIGILL
when loading traces.

Since we can't overwrite the flags used to control this
just assert that it is correct in GN args.

To avoid the assert, add the following to your GN args:

  arm_control_flow_integrity = "none"

Test: Build and run traces on armv9 devices
Bug: b/278955379
Bug: chromium:1441148
Change-Id: I71bf93dca9bd15d6c66ad2a7223d9bbd0c54392e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4602027
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
2023-06-12 15:57:27 +00:00
angle-autoroll
3abbc4f999 Roll Chromium from ac70ebb575ce to 5ec32d118efd (595 revisions)
ac70ebb575..5ec32d118e

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,geofflang@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: 524ed2ff3c..5e03e46b47
* testing: fa7ab1cac5..1c1bb5094d
* third_party/android_deps: f67cd905e5..ea118736f4
* third_party/android_sdk: a58930c812..f5874af13b
* third_party/android_toolchain: version:2@r23c.cr0..version:2@r25c.cr0
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..f51324c1c8
* third_party/fuchsia-sdk/sdk: version:12.20230607.1.1..version:12.20230612.0.1
* third_party/jdk: -1zDGMOzS_Qsja50TakJCSqN9C9TYppQrsny4HATSQwC..2Of9Pe_OdO4xoAATuiLDiMVNebKTNO3WrwJGqil4RosC
* third_party/r8: 4nvRHMrsaaAwaTGCTVhj-rVB4rr7rtMUb01KL83_TA8C..4KIUOAKhjtCRa2saTdxTrchL0zgexuTpcifzY1KzZDoC
* tools/clang: a8114cc97b..fc015c0358
* tools/mb: c99b873d02..b69b0ca417
* tools/perf: 34157f142c..c2b6ebc490
No update to Clang.

Bug: None
Tbr: geofflang@google.com
Change-Id: I75215a8bd95d66e9715add78ba6ac6fc29560a5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606449
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2023-06-12 07:58:02 +00:00
Shahbaz Youssefi
10380f4ba4 Vulkan: Output SPIR-V ids from compiler
In this change, the shader interface variables are given SPIR-V ids by
the compiler before SPIR-V generation.  Those ids are made available
through the ShaderVariable interface.

The transformer does not yet rely on this information.  A follow up
change will rework the backend's name->info map and the transformer to
directly use ids instead of names.

Bug: angleproject:7220
Change-Id: Ic0a62681d4bcf3ed171c39c3ecd83e438ea068c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600609
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
2023-06-10 04:49:13 +00:00
Shahbaz Youssefi
acdf872299 Vulkan: Remove reliance on names for gl_PerVertex-trimmer
Instead of passing in gl_Position etc built-in names and then find their
index by looking at OpMemberName instructions, this change has the
front-end create a bitset of active gl_PerVertex members.  The SPIR-V
transformer then directly uses this information to trim gl_PerVertex.

Bug: angleproject:7220
Change-Id: I5c3d56784801abb310d09d98d9c82c9e6e019de8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600608
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Roman Lavrov <romanl@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2023-06-10 02:04:38 +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
Yiwei Zhang
e005fbc017 Vulkan: make GetFormatModifierProperties non-fatal for fallback check
DmaBufImageSiblingVkLinux::initWithFormat is used to fallback like:
- mutable format + srgb
- mutable format + unorm
- non-mutable srgb
- non-mutable unorm

However, it never fallbacks since GetFormatModifierProperties bails.So
this change has made it non-fatal to allow fallback behavior.

Meanwhile, this change updates the fallback order to use unorm as actual
format first to favor most common scenarios.

Bug: b/277798516
Change-Id: I60283590d85b27d55010cb2f5a2cc13d4df1ac9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603208
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Auto-Submit: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Romaric Jodin <rjodin@chromium.org>
2023-06-09 18:54:09 +00:00