Граф коммитов

17505 Коммитов

Автор SHA1 Сообщение Дата
Gregg Tavares c6d86da214 Add test for gl_VertexID and DrawElements
This fails on the WebGL CTS conformance2/rendering/vertex-id.html.
Repoing here to make it easier to debug/find/fix.

Bug: angleproject:6688
Change-Id: I0a4bafc5700c77e0b6c44b067167fc4a60e63c22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276708
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
2021-11-12 09:43:12 +00:00
angle-autoroll b1dcf97bca Roll Chromium from 44723f7dd122 to 02bf0f96483c (416 revisions)
44723f7dd1..02bf0f9648

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 jmadill@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: 25c5adab15..c0c930390e
* testing: 845c3dc326..5cae5806fe
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a7ad5b5c96
* third_party/depot_tools: 787f2f0eb5..08a95d8392
* third_party/zlib: 6da1d53b97..f8964a5ccf
* tools/luci-go: git_revision:d17c642c8c3c6d9e37bd9c25535c4c5b66b99781..git_revision:bf56a119c5f056a1f7a04c8dbe19cdd86728b540
* tools/luci-go: git_revision:d17c642c8c3c6d9e37bd9c25535c4c5b66b99781..git_revision:bf56a119c5f056a1f7a04c8dbe19cdd86728b540
* tools/mb: 7c1995f2cc..4279847036
* tools/perf: a7498191ed..4df4d99bd6
No update to Clang.

Bug: None
Tbr: jmadill@google.com
Change-Id: Ie2beb13c39d5f237863d49851a6daef7aa71b28c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276463
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-12 09:18:52 +00:00
Shahbaz Youssefi ee941238f5 Capture/Replay: Mark another ImageTest test as FLAKY
Bug: angleproject:6286
Change-Id: Idbbdab532a449d754d05208aeadd94462c8c572a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276041
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-12 04:22:42 +00:00
Shahbaz Youssefi 9c486b6752 Unoverride upstreamed dEQP fix
Bug: angleproject:5500
Change-Id: I486ebf72840e8b6ff9ca36ac7ad491fea9dd4cf8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275834
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-12 03:44:52 +00:00
Shahbaz Youssefi d2d3a54609 Vulkan: Write perf warnings in command buffer
It's much easier to understand what command the perf warning refers to
when it's visible in the command buffer using a graphics API debugger.
This change creates ANGLE_VK_PERF_WARNING which gives the warning both
to the application (through ANGLE_PERF_WARNING) and inserts it in the
command buffer.

Bug: angleproject:2472
Change-Id: Ie84feed53eca5cda93e1f2bc653fcbf9bcd57b56
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275839
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-12 03:15:22 +00:00
Brandon Schade 2aa62964a6 Vulkan: Reset mFramebuffer when mFramebufferCache is cleared
The mFramebuffer pointer becomes stale when mFramebufferCache
is cleared. Set mFramebuffer to nullptr when this happens.

Test: --deqp-surface-type=fbo --deqp-case=KHR-GLES31.*
Bug: angleproject:6682
Change-Id: I5fd21a64f0f935de04e2934e794c915ccf880c16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276701
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
2021-11-12 02:38:20 +00:00
Shahbaz Youssefi 558981c1e2 Vulkan: Make write-after-invalidate checks more precise
Previously, the size of the command buffer was used as indication for
whether the render pass attachments might have been modified after
glInvalidateFramebuffer.  In that case, the invalidate was undone.  This
is made more precise by making sure only vkCmdClearAttachments and
vkCmdDraw* calls are counted for this purpose.

For example, inserting event markers after glInvalidateFramebuffer now
retains the invalidation.

Note that this can be even further optimized by tracking real writes to
attachments.  For example, currently a draw call with depth test
disabled still undoes the invalidation of the depth buffer, but it
shouldn't.

Bug: angleproject:5079
Change-Id: I6257b4116a73213884b919bc7f3c86ff39b6aeed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274176
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-12 01:54:12 +00:00
Jamie Madill b5adbe272e Vulkan: Allow SystemInfo to pick ICD.
This will be used in conjunction with SwiftShader.

Bug: angleproject:6496
Change-Id: I894aa4cf3b9473738b549de9941eb82e09234121
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276515
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-11 18:28:01 +00:00
Shahbaz Youssefi 96b587b0e2 Vulkan: Fix rendering to RGB external images
Based on the provided usage flags, the texture's image access mode is
updated to be renderable.

Bug: chromium:1266094
Change-Id: I5d092a2786fc12537ef0ad1f224137cc1fd8f864
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270980
Reviewed-by: Craig Stout <cstout@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-11 18:24:31 +00:00
Jamie Madill 42c0207d76 infra: Remove remaining references to 'master'.
These are all now replaced with 'main'.

Bug: angleproject:6685
Change-Id: I36cb17625c44d06689f7debf004abd3dd016265b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276517
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-11 18:22:52 +00:00
Jamie Madill b570a84498 infra: Remove outdated "master" ref in CI config.
This should let the CI console start running changes again.

Bug: angleproject:6685
Change-Id: I2d172bd9a90b9772efeeaa9cadf0bc865b917e16
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3276516
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-11 17:48:01 +00:00
Jamie Madill 2a9e6e4828 infra: Add tests to ASAN configs.
These add basic ANGLE tests with SwiftShader + ASAN.

Bug: angleproject:5795
Change-Id: I92a51a44214ff0f442d4a1b2a0bc6ac2b8d3f4eb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254431
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-11-11 16:13:51 +00:00
Shahbaz Youssefi 2a71c9cdbe Remove stray deqp override file
Override was effectively reverted in:

    https://chromium-review.googlesource.com/c/angle/angle/+/2375965

Bug: angleproject:4143
Change-Id: Idd38bdfa542eec44bc873791910c070b1e0d98c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275833
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-11 15:52:16 +00:00
Jamie Madill a4a52f78e8 EGL: Validate CreatePbufferSurface attributes.
This fixes an ASAN issue with a dEQP negative test:

dEQP.EGL/functional_negative_api_create_pbuffer_surface

Bug: angleproject:6660
Change-Id: I2d052f9f948b7a2a6fe3fbb1f1621dd280bb0d36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270978
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-11 15:48:46 +00:00
Shahbaz Youssefi 4e26eac5b5 Vulkan: Fix VVL warnings on extensions that are not enabled
Bug: chromium:1266094
Change-Id: Idbae6cbe2c5593665438d118f17d184f8a81f0d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274932
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-11 15:40:31 +00:00
Jamie Madill 393785b723 Add attribute validation for context creation.
This fixes another ASAN bug that popped up with the dEQP EGL tests:

dEQP.EGL/functional_negative_api_create_context

Bug: angleproject:6660
Change-Id: I8f5ca1cc9ca77f2be28ecf120a90c9efcf9d4b24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270977
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-11 15:18:51 +00:00
angle-autoroll 92bdb59b3c Roll SwiftShader from 82d932bdfc41 to 73a6940a2d14 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/82d932bdfc41..73a6940a2d14

2021-11-10 sugoi@google.com Tightly pack PlaneEquations array

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/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

Bug: None
Tbr: jmadill@google.com
Change-Id: I1a1673aebe1ad4c7948eee7f815299d6dcf53017
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3275316
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-11 11:16:01 +00:00
angle-autoroll b8d6331d53 Roll Chromium from 6d25c1889eb7 to 44723f7dd122 (470 revisions)
6d25c1889e..44723f7dd1

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 jmadill@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: 3a26983ac0..25c5adab15
* buildtools/third_party/libc++abi/trunk: ee43952a47..707d75f53e
* testing: f6490e8f59..845c3dc326
* third_party/abseil-cpp: a1290bc895..cea9b74ecb
* third_party/android_deps: ca1e82f3c5..3aa5bf5616
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..8d1435ba08
* third_party/depot_tools: ea9285c47f..787f2f0eb5
* tools/mb: b553e6d46a..7c1995f2cc
* tools/perf: d88a90b430..a7498191ed
No update to Clang.

Bug: angleproject:6430
Tbr: jmadill@google.com
Change-Id: I07e3ccf27c78a6d39acb4f433d887b637b6360d3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3274894
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-11 08:29:42 +00:00
Kyle Piddington ec5d3795f3 Metal: Fix InvalidateCopyThenBlend
Render pass descriptor was not being changed
due to blend state not being checked when
looking for equality.

Bug: angleproject:6669
Change-Id: Ic85dbec29ddb53a8c7e2e708f1ac0c99512e7248
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270596
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-11-11 03:12:41 +00:00
Jamie Madill 133cf4be64 Fix out-of-bounds read in MemoryBarrierTestBase.
This second read was in transformFeedbackBitBufferWriteThenCapture.

Bug: angleproject:6646
Change-Id: I67134e5a7a9a610c11266c51bdc1ced6ef018b8a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270981
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-10 21:46:51 +00:00
Jamie Madill 2d4bee832d EGL: Add early exit when hitting invalid attribute.
According to the EGL spec, we stop checking attributes when we
encounter an invalid enum. That means it's valid for an application to
pass in a list of attributes without EGL_NONE as long as one of them
is invalid. To handle this, we add lazy attribute validation to the
AttributeMap class, that gets triggered in the validation calls.

We only implement the early exit validation for the config attributes
to fix an EGL test that would access out of bounds memory.

Bug: angleproject:6660
Change-Id: I264d0f98b4ddd9e74187846e9e668270a6fbaee1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262478
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2021-11-10 18:18:41 +00:00
Shahbaz Youssefi 5a5996aa5c Vulkan: Handle missing decorations in SPIR-V precision fixer
Bug: angleproject:6674
Change-Id: Ibfc72f14b9eeb17d7c70cf6d2384d970b2e66650
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3271551
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-10 16:52:41 +00:00
Geoff Lang f045fe079e Fix MSRTT unsized texture formats querying supported samples.
The texture format information in gl::Context is sized formats only.
When MSRTT textures are used, they would query the potentially unsized
format for maximum supported samples. This would return 0 and cause an
incomplete framebuffer when the sample count missmatched with other
attachments.

Bug: chromium:1238327
Change-Id: I06514b1b9badefa81bba3b7ad9ba5db932b4c12b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3260555
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2021-11-10 16:09:31 +00:00
Jamie Madill 0fcad6260a Vulkan: Fix edge case with changing base level.
Bug: chromium:1267624
Change-Id: I36b983fdbbb258454215abe827837517df5a5aff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270971
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-10 15:24:31 +00:00
Jonah Ryan-Davis f422f21a4c Reland "Metal: Reintroduce GPU power preference selection code."
This reverts commit 67a8cf07a7.

Reason for revert: Landed Chromium-side dependency:
https://chromium-review.googlesource.com/c/chromium/src/+/3271170

Original change's description:
> Revert "Metal: Reintroduce GPU power preference selection code."
>
> This reverts commit 017161701b.
>
> Reason for revert: Blocking roller, please re-land with the fix.
>
> Original change's description:
> > Metal: Reintroduce GPU power preference selection code.
> >
> > This CL re-introduces the GPU power preference code to
> > the metal backend. It also reworks EGLDisplay caching
> > in the frontend to cache based on the native display
> > as well as the power preference attribute.
> > A new extension, EGL_ANGLE_display_power_preference is
> > added based on EGL_ANGLE_power_preference. This extension
> > is a client extension that allows selection of GPU on
> > display creation, similar to how GPUs are selected on
> > context creation in EGL_ANGLE_power_preference.
> > This CL adds EGLDisplayPowerPreferenceTest and enables it on
> > the metal backend.
> >
> > Bug: angleproject:6143
> > Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> > Reviewed-by: Kenneth Russell <kbr@chromium.org>
> > Reviewed-by: Jamie Madill <jmadill@chromium.org>
> > Reviewed-by: Gregg Tavares <gman@chromium.org>
> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
>
> TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: angleproject:6143
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

# Not skipping CQ checks because this is a reland.

Bug: angleproject:6143
Change-Id: Id9b0a5cbb76e4dea9e2f2da2b1c47a0587dfdaf5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270970
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-11-10 15:11:01 +00:00
Brian Sheedy 53def659ce Unskip RenderSolidColor test
Unskips EGLDirectCompositionTest.RenderSolidColor, as the driver bug
that caused it to be disabled should hopefully be fixed.

Bug: chromium:1063962
Change-Id: I8a01ca65fc7e2b4b820d61fced24cf53af9e9f3c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270597
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-11-10 14:21:22 +00:00
angle-autoroll 6e6947e685 Roll SwiftShader from 7e9b8b317f16 to 82d932bdfc41 (13 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7e9b8b317f16..82d932bdfc41

2021-11-10 sugoi@google.com Fix Android.bp build after SPIRV-Headers update
2021-11-09 sugoi@google.com Follow-up 2: Fix Android.bp build after SPIRV-Tools update
2021-11-09 sugoi@google.com Follow-up: Fix Android.bp build after SPIRV-Tools update
2021-11-09 capn@google.com Associate inline sampler caches with instruction position
2021-11-09 capn@google.com Use the Vulkan format for OpImageWrite
2021-11-09 capn@google.com Simplify obtaining the type from a SPIR-V object <id>
2021-11-09 capn@google.com Treat sRGB formats as unsigned normalized
2021-11-09 capn@google.com Improve inverse blendConstant() readability
2021-11-09 capn@google.com Optimize clamping of constant blend factors
2021-11-09 capn@google.com Parse SPIR-V image instructions before code generation
2021-11-09 capn@google.com Check for valid SPIR-V <id>s by comparing against 0
2021-11-09 sugoi@google.com Fix Android.bp build after SPIRV-Tools update
2021-11-09 sugoi@google.com Add warning treated as error for missing case statement

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/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

Bug: None
Tbr: jmadill@google.com
Change-Id: I1ae9d517c5abaa72b8d4ec068a639a58b50b4208
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3272370
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-10 11:33:50 +00:00
angle-autoroll 3aa04f0029 Roll Chromium from 76a46804f683 to 6d25c1889eb7 (471 revisions)
76a46804f6..6d25c1889e

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 jmadill@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: b9210ac77f..3a26983ac0
* buildtools: 80e4f838fa..b138e6ce86
* buildtools/third_party/libc++abi/trunk: bc060a25be..ee43952a47
* testing: 792217f643..f6490e8f59
* third_party/abseil-cpp: 6fdb0784b9..a1290bc895
* third_party/android_deps: 0f5030b08c..ca1e82f3c5
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..5c5e5a1d28
* third_party/depot_tools: 266129cba3..ea9285c47f
* tools/mb: 125bb2ea5f..b553e6d46a
* tools/perf: a95854871a..d88a90b430
No update to Clang.

Bug: angleproject:6143
Tbr: jmadill@google.com
Change-Id: I50b10efd5fbe70515160c92047c362ada0276754
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270602
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-10 08:27:51 +00:00
Lingfeng Yang cd82286851 Vulkan: MAP_INVALIDATE_RANGE_BIT: shadow or exclude
One method of dealing with glMapBufferRange + range invalidation; treat
it like bufferSubData and stage the update.

Another method is to ghost the buffer but copy only memory outside the
invalidated range.

This CL pursues a policy where if less than half of the buffer is
invalidated, we stage. Otherwise, we ghost and copy only memory outside
the invalidated range.

DynamicBuffer is chosen over DynamicShadowBuffer because it turns out to
end up implicitly tracking all active invalidate ranges (through its
freelist), and performs buffer copy on GPU. if we use a
DynamicShadowBuffer and then BufferVk::stagedUpdate, it's the same thing
but more work (an extra memcpy into the staging buffer). To make this
clear, we split the logic of stagedUpdate into two parts, the
allocation/map, and the flush, and reuse one half in glMapBufferRange,
and the other half in glUnmapBuffer.

Test: Faster performance in MapBufferRange perf test, no non-noisy
regress in trace tests

Bug: angleproject:6634
Change-Id: Ie2e6a9586824b8cb59a97419bb8052acd1de2033
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251686
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
2021-11-10 06:51:14 +00:00
Lingfeng Yang 0b46ef4074 Vulkan: Start on a MapBufferRange benchmark
We have a lot of apps that use MapBufferRange to upload data. That can
be low performance. Let's have a benchmark for this.

Bug: angleproject:6634
Change-Id: I7e20ad65b89700733c02995a7c56d641e39a43b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261378
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Lingfeng Yang <lfy@google.com>
2021-11-10 02:13:54 +00:00
Craig Stout 24136212d6 Allow GN specification of shared library extension name
For use as system libraries in virtualized Linux environments,
allow use of custom sonames.

Bug: angleproject:6672
Change-Id: If297e3eaa090bfd08cb9df68a4c727da72228bcc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3268941
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 20:22:44 +00:00
Jeff Vigil 5eb86d4ab7 EGL: EGL_KHR_lock_surface3 frontend
Add queries to get locked buffer attributes
Add validation for LockSurface, QuerySurface

Bug: angleproject:6062
Change-Id: I4919bef2a17d3505cccad08f7c4f8a3ca5d7e4e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174322
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 19:10:54 +00:00
Jeff Vigil d3e6771671 EGL: EGL_KHR_lock_surface3
Add new extension KHR__lock_surface3
Add new interfaces for locking and unlocking a surface.

Test: angle_end2end_test --gtest_filter=EGLLockSurface3Test

Bug: angleproject:6062
Change-Id: Ic40708db4db552107025635540a0c62f956d741e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3161447
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 17:29:34 +00:00
Sylvain Defresne 5ae7342b76 [ios] Remove support for building with Xcode clang
Chromium //build will soon remove the `use_xcode_clang` variable.
Remove it from Angle to avoid breakage when the variable is gone.

This is a followup to https://crrev.com/c/angle/angle/+/3259713
where one use of `use_xcode_clang` was not left by mistake.

Bug: chromium:1266466
Change-Id: Idbd8b3daeacac1ba88fc818f3939bdcd15e449c8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3269890
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 17:26:54 +00:00
Shahbaz Youssefi 91d3647325 Fix invalidation of GL_FRAMEBUFFER invalidating READ FBO
Per spec, GL_FRAMEBUFFER means GL_DRAW_FRAMEBUFFER for
glInvalidateFramebuffer.

Bug: chromium:1267424
Change-Id: I8c9ab61ecdbd4ccee4262dc8559b2feb02b4837c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266176
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 16:46:54 +00:00
Shahbaz Youssefi 517ff22004 Add test for texture state change bug
Bug: chromium:1267624
Change-Id: I270e54921d40a2d139afdc78c90ab05164cbfabf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3268492
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 15:57:44 +00:00
Shahbaz Youssefi ef93b32c10 Vulkan: Fix deferred clears vs invalidate
In this scenario:

- Clear color
- Invalidate depth
- Clear color

The invalidate step flushed the deferred color clear, but the following
clear did not expect an open render pass without any draw calls in it.

This change fixes this issue, while simultaneously optimizing invalidate
by making sure the clears accumulated during syncState() are redeferred
instead of flushed.

This issue was discovered in
https://chromium-review.googlesource.com/c/angle/angle/+/3266176 where,
as part of an unrelated fix, an accidental render pass closure is
removed.

Bug: chromium:1267424
Change-Id: Icfc0a53dbf84e6339ee23960ed847444830054e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266178
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-09 15:51:04 +00:00
Jamie Madill 67a8cf07a7 Revert "Metal: Reintroduce GPU power preference selection code."
This reverts commit 017161701b.

Reason for revert: Blocking roller, please re-land with the fix.

Original change's description:
> Metal: Reintroduce GPU power preference selection code.
>
> This CL re-introduces the GPU power preference code to
> the metal backend. It also reworks EGLDisplay caching
> in the frontend to cache based on the native display
> as well as the power preference attribute.
> A new extension, EGL_ANGLE_display_power_preference is
> added based on EGL_ANGLE_power_preference. This extension
> is a client extension that allows selection of GPU on
> display creation, similar to how GPUs are selected on
> context creation in EGL_ANGLE_power_preference.
> This CL adds EGLDisplayPowerPreferenceTest and enables it on
> the metal backend.
>
> Bug: angleproject:6143
> Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Reviewed-by: Gregg Tavares <gman@chromium.org>
> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>

TBR=kbr@chromium.org,gman@chromium.org,jonahr@google.com,jmadill@chromium.org,angle-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I4f775bf7139253a87b033a30e0da2100b3c1bb02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:6143
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270749
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-09 15:11:03 +00:00
angle-autoroll c9595b37ae Roll SwiftShader from 4c6da56da96c to 7e9b8b317f16 (6 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/4c6da56da96c..7e9b8b317f16

2021-11-08 srisser@google.com Regres updates SHA and testlists after daily run
2021-11-08 sugoi@google.com Update SPIR-V shader instructions after SPIRV-Tools update
2021-11-08 swiftshader.regress@gmail.com Regres: Update test lists @ 4c6da56d
2021-11-08 sugoi@google.com Update SPIR-V Tools to 339d4475c
2021-11-08 sugoi@google.com Update SPIR-V Headers to 29817199b
2021-11-08 sugoi@google.com No format verification in SPIR-V headers and tools update scripts

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/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

Bug: None
Tbr: jmadill@google.com
Change-Id: I82eb8b1e12f16214ce6e96a3c39fbdb888678643
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3268659
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-09 12:53:37 +00:00
Gert Wollny 5f7c3ba64b Capture/Replay: Don't force initialization of FS inout vars
Since these variables are to be considered inputs as well as outputs
initializing them would overwrite the valid input values, hence skip
initialization.

Bug: angleproject:6608
Change-Id: Id8baf856a23ac84d18c61dd54cd6095128190075
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253377
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2021-11-09 10:42:31 +00:00
angle-autoroll 40ea507ec7 Roll Chromium from f1944afd4c24 to 76a46804f683 (1053 revisions)
f1944afd4c..76a46804f6

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 jmadill@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: 53c802ccf2..b9210ac77f
* buildtools/third_party/libc++abi/trunk: 4c6e0991b1..bc060a25be
* buildtools/third_party/libunwind/trunk: 99015718c3..51ffc5ed5c
* testing: d4fd825c14..792217f643
* third_party/android_sdk: fc91ebbf8a..67d9735161
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..c9cf63a9b5
* third_party/depot_tools: b85aef9b5c..266129cba3
* tools/clang: af96b7b56f..92efe5e964
* tools/luci-go: git_revision:de048fb36dbb1cb5b78774cc4a758e783865062f..git_revision:d17c642c8c3c6d9e37bd9c25535c4c5b66b99781
* tools/luci-go: git_revision:de048fb36dbb1cb5b78774cc4a758e783865062f..git_revision:d17c642c8c3c6d9e37bd9c25535c4c5b66b99781
* tools/mb: 22f5180e91..125bb2ea5f
* tools/perf: 418f322961..a95854871a
* tools/skia_goldctl/linux: odChSNaPr6zCeStFFbBuHC29-LH02C49Bm_9htJrpagC..CseaUnLJ7HPr--xryu13CF7Iir6n0b8qmCJXm6gyZ4oC
* tools/skia_goldctl/mac: Ee-Y58INmdIA4z_rfmJjvZ-ljrcn-L2tk9nMJVDkidkC..VY8wueKQ3PgFlxfrtkyEqIEUBvFjmyowZ9aUNYRyEhcC
* tools/skia_goldctl/win: wgZW1xuI0RPDHDd63jpbn9w5KS6PRzkQrSqOp-Em3gQC..W_IYtpGZzolSY2j4xqryufwbZeApZYaqqcn4-CTtpL0C
No update to Clang.

Bug: angleproject:6430
Tbr: jmadill@google.com
Change-Id: I104948a0dd4e53804e75e5f299e37b4e348ead0d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3269375
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-09 10:03:35 +00:00
Gert Wollny 2dd6ea51db Capture/Replay: Limit the sleep time based on unfinished jobs
When running only a few tests the script has the tendency to sleep
a long time after the tests were finished. So limit the sleep time
by the number of remaining jobs.

Bug: None
Change-Id: I52ad39bf047abf93cd900f687bd3aae3962e9e20
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3263999
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2021-11-09 09:53:45 +00:00
Maksim Sisov fa2e374974 Reland "rename use_x11 to ozone_platform_x11"
This is a reland of 86f2854579

X11 shouldn't be enable for is_chromecast cases as
the original use_x11 gn arg is only enabled on linux && !chromecast.

Original change's description:
> rename use_x11 to ozone_platform_x11
>
> Ozone is default now in Chromium and non-Ozone/X11 (aka use_x11) is
> deprecated. During the transition period use_x11 == ozone_platform_x11.
>
> Bug: chromium:1096425
> Change-Id: Ia691ce249bc49040956bed033891799127a57bbc
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151755
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>

Bug: chromium:1096425
Change-Id: I6f8dbacb756ce57ca7379bbd991ca1ff470c244d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3263987
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Maksim Sisov <msisov@igalia.com>
2021-11-09 06:35:56 +00:00
Tim Van Patten 5c16f77b94 Vulkan: Add flushCommandsAndEndRenderPassWithoutQueueSubmit()
Add flushCommandsAndEndRenderPassWithoutQueueSubmit() to allow
ContextVk::flushAndGetSerial() to only issue a single vkQueueSubmit().

Bug: angleproject:6546
Change-Id: Ia3fc2bb93e88583ebd80ee153749dc8ca42245dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3200673
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-11-09 02:34:35 +00:00
Tim Van Patten 53371cc0a7 Vulkan: Use optimalBufferCopyOffsetAlignment
optimalBufferCopyOffsetAlignment is the optimal buffer offset alignment
in bytes for vkCmdCopyBufferToImage2KHR, vkCmdCopyBufferToImage,
vkCmdCopyImageToBuffer2KHR, and vkCmdCopyImageToBuffer. The per texel
alignment requirements are enforced, but applications should use the
optimal alignment for optimal performance and power use.

To improve efficiency, this CL updates ContextVk::mStagingBuffer's
alignment to the max of:
- minMemoryMapAlignment
- nonCoherentAtomSize
- optimalBufferCopyOffsetAlignment

On ARM, this is not expected to have any affect, since all three values
are 0x40, but other platforms may see a benefit.

Bug: angleproject:4297
Change-Id: I9185da111e09c5d782eb1dedb10369727cb9bf51
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256007
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2021-11-09 01:51:35 +00:00
Shahbaz Youssefi 0e20c68092 Sync framebuffer bindings in glInvalidateFramebuffer
If a framebuffer binding change is followed by glInvalidateFramebuffer,
ANGLE was not syncing the framebuffer binding.

- This means that invalidation was being done on the previous
  framebuffer.
- Paired with deferred clears, this was causing ContextVk to start a
  render pass on the previous, potentially deleted, framebuffer.

Bug: chromium:1267027
Change-Id: I092a0c8dd764db9e49258b694c970babb19cf24b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266175
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-11-08 22:50:45 +00:00
Jamie Madill a9f24fa529 infra: Switch ASAN to 64-bit on Windows.
ASAN is not supported in 32-bits on Windows.

Bug: angleproject:5795
Change-Id: Icabf31b8c9ad4d371217c9f4a288f909888eae61
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265532
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2021-11-08 22:32:41 +00:00
Shahbaz Youssefi 651ae514bd Capture/Replay: Skip test of new failing tests
Bug: angleproject:6663
Change-Id: Ic253a4695eb4c27df2e77641df9f03b2ad8a33e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3266172
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-08 19:43:21 +00:00
Jonah Ryan-Davis 017161701b Metal: Reintroduce GPU power preference selection code.
This CL re-introduces the GPU power preference code to
the metal backend. It also reworks EGLDisplay caching
in the frontend to cache based on the native display
as well as the power preference attribute.
A new extension, EGL_ANGLE_display_power_preference is
added based on EGL_ANGLE_power_preference. This extension
is a client extension that allows selection of GPU on
display creation, similar to how GPUs are selected on
context creation in EGL_ANGLE_power_preference.
This CL adds EGLDisplayPowerPreferenceTest and enables it on
the metal backend.

Bug: angleproject:6143
Change-Id: I0a081dcd2e3f18ab365fdd3498ddcb6e2ba35212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3231986
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-11-08 16:11:51 +00:00
Shahbaz Youssefi 79a5dc0af7 Vulkan: Fix spammy best practices message
A GPU WRITE->HOST barrier frequently issued when the GPU outputs to a
host-visible buffer used the ALL_COMMANDS stage mask causing a best
practices message.  This message is suppressed in ANGLE, but shows up in
RenderDoc and clutters the output.

Bug: angleproject:5070
Change-Id: I59aa7f8c7b3bf2788a3f7ae0ab6abdb4d3cd175e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3265606
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-08 15:58:21 +00:00