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

17225 Коммитов

Автор SHA1 Сообщение Дата
Cody Northrop e50894a08f DEPS: Update Android SDK source to android-31
Bug: angleproject:6650
Change-Id: I7fd3a6c23d47966d055dfaa4dfffed95a9f41240
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259848
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-03 16:05:44 +00:00
angle-autoroll 8df68fd477 Roll SwiftShader from 542593f0e311 to 7a571328541a (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/542593f0e311..7a571328541a

2021-11-02 sugoi@google.com Perform all blend operations in floating-point
2021-11-02 swiftshader.regress@gmail.com Regres: Update test lists @ 542593f0

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 cnorthrop@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: cnorthrop@google.com
Change-Id: I1cd36fbf0483351d4d9b30be3108dafc366364e1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3259062
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-03 10:39:06 +00:00
Kyle Piddington 0e9e321b57 Metal: Anonymous unused uniform structs not named.
Due to some upstream changes, unused uniform structs are not being
given a name. These structs cause compilation failures, which has
completely caused shadertoy.com to fail to render.

Skip the check when naming embedded structs to allow uniform struct
types to still be named, even when no uniform exists.

Unskip targeted tests on the Metal backend which were added previously
in Issue 6641. These still need to be fixed more generically for the
Vulkan backend.

Also suppress flaky WebGLCompatibilityTest.RG32FTextures test on Mac
Intel OpenGL, which affected this CL.

Bug: angleproject:6642
Bug: angleproject:6641
Bug: angleproject:6570
Change-Id: I598fc212f4db3d3b7c5617bd8a87f8b7db60706c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258341
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-11-02 23:25:29 +00:00
Gregg Tavares 604610b410 Metal: Use Depth32F for DEPTH_COMPONENT16
depth16unorm is broken on Metal. This is a workaround.

Bug: angleproject:6597
Change-Id: I1748f9fab587b22980d13e8a141fa880eb6f9db0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3255666
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
2021-11-02 22:58:39 +00:00
Kyle Piddington 88ca3b18ab Expose translator issues with struct samplers.
Struct samplers assert in the Vulkan and Metal backends during
rewriting. Add a test - skipped for now on these backends - to
highlight this issue.

Bug: angleproject:6641
Change-Id: I95cbc9e5f4122f1ac7db926ac44c4cccc1b6f87a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256235
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
2021-11-02 21:06:38 +00:00
Shahbaz Youssefi a517d4d95f Vulkan: Regression test for xfb query before resume
Bug: angleproject:6622
Change-Id: If15195437e656dc20aed10d02cf8429ad15ae3d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254432
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-02 20:17:13 +00:00
Jamie Madill 38d5349a90 Fix out of range access in MemoryBarrierTest.
Bug: angleproject:6646
Change-Id: Ia406e290d0a6d6bef6352ac5e46a591e980d33f3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258006
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-02 18:12:14 +00:00
Tim Van Patten fce240c005 AOSP: Use '-Os' rather than '-Oz'
Cuttlefish recently hit a clang compiler issue related to -Oz:
  b/200617543

This is fixed by either disabling optimizations for ScopedExit or using
-Os.

This CL will switch ANGLE to using -Os.

When building CF in AOSP, the binary size is reduced with -Os vs -Oz:
  -Oz: 16,383,489 bytes
  -Os: 16,152,509 bytes

Bug: b/200617543
Change-Id: Ic920b0e0e4a61453d9657101a4560f74d90d5744
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253128
Reviewed-by: Jason Macnak <natsu@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-11-02 17:57:19 +00:00
Stephen White 0b56267f2d Implement ANGLE_FALLTHROUGH macro.
Use it instead of ABSL_FALLTHROUGH_INTENDED.
(ANGLE shouldn't use absl unless angle_enable_absl is true.
This is breaking the roll of ANGLE into Dawn.)

Bug: angleproject:6647
Change-Id: I47f9a00841c4605fca52b17eeb68c0b1da5004c0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258008
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-11-02 17:38:49 +00:00
Gert Wollny c4921cd87a Capture/Replay: Capture name in GetProgramResourceIndex
Bug: angleproject:6180
Change-Id: I1ee7e49dcfa5df23ff5d81d8ca43dd1843c9b2e6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250880
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-11-02 15:59:09 +00:00
Gert Wollny 7952f84cd6 Capture/Replay: Add ES3_1_Vulkan_SwiftShader expectations
Bug: angleproject:6180
Bug: angleproject:6605
Bug: angleproject:6608
Bug: angleproject:6609
Bug: angleproject:6610
Bug: angleproject:6611
Change-Id: I340d1d9ead7e1f537ea447447e7d051b8725c534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3236986
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-11-02 13:41:11 +00:00
Jamie Madill 548e7a2f71 infra: Expose ASAN configs in try.
This will allow us to manually add ASAN tryjobs to test before
landing.

Bug: angleproject:5795
Change-Id: I1085b64f2dcf09e20f470aded0d57befbe4fb084
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3257025
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-11-02 13:03:29 +00:00
Gert Wollny 02cc418d4e Capture/Replay: Mark test to be flaky on Windows
The test is passing quite often, but not always.

Bug: angleproject:6180
Change-Id: I4bed6cd2907da61023ca91b20e20d8b0722302b7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3257321
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-11-02 13:03:27 +00:00
angle-autoroll aaf82f38ff Roll SwiftShader from 9d8950e082d8 to 542593f0e311 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/9d8950e082d8..542593f0e311

2021-11-01 capn@google.com Implement support for VK_FORMAT_R16*_UNORM attachment formats
2021-11-01 capn@google.com Clamp blend factors and color output
2021-11-01 capn@google.com Refactor blending

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 cnorthrop@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: cnorthrop@google.com
Change-Id: If2c6d0503245d313c3101f98b2ee7321df4ff182
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3256524
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-02 11:29:47 +00:00
Amirali Abdolrashidi 6a749cdacd Complete validation of glGetAttribLocation()
-Added more checks to glGetAttribLocation() similar to
glBindAttribLocation().
-Added the corresponding unit tests. Using a reserved
prefix in glGetAttribLocation() should return -1.

Bug: angleproject:2419
Change-Id: I3f691f344c7003f855e53d35cd5f9578069acdae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3252643
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-02 04:21:16 +00:00
YuxinHu a514df081d Add detachShader capture calls in MEC
This change adds a capture call to detach shader
object before deleting the shader object in function
GenerateLinkedProgram(), if that is also what the app does.
GenerateLinkedProgram() is part of the Mid Execution Capture
(MEC), and the purpose of the MEC is to setup a program that
more closely mirrors the original app.

The game World Cricket Championship2 detaches the shader object
before deleting the shader object. With this change, we can follow
the same behavior in GenerateLinkedProgram(). This ensures that
the Shader Object refcount is decremented to 0 before the
CaptureDeleteShader call is applied, and the ShaderProgramID
handle assigned to the Shader Object will be released and
can be reused for subsequent glCreateShader calls. The total number
of ShaderProgramID we need will be consistent between
SetupReplayContextShared() and the game uses.
We are allocating memory slots for gUniformLocations2 array
based on the total number of ShaderProgramID the game uses.
Keeping the ShaderProgramID counts the same between
trace replay and the game ensures we allocate the right amount
of memory for the trace replay.

Bug: angleproject:6621
Bug: b/194508692
Change-Id: Ib2810b486a6e9108db2a32f084d650a25f14bebd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3246533
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2021-11-01 22:47:56 +00:00
Steven Noonan ab514d4ac0 d3d11: fix typo in pixel shader function signatures
These two shaders used "TEXCORD0" instead of "TEXCOORD0" which made the
Direct3D debug layers unhappy:

    D3D11 ERROR: ID3D11DeviceContext::Draw: Vertex Shader - Pixel Shader
    linkage error: Signatures between stages are incompatible. The input
    stage requires Semantic/Index (TEXCORD,0) as input, but it is not
    provided by the output stage. [ EXECUTION ERROR #342:
    DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND]

Fixing the typo makes that error go away.

Bug: angleproject:6614
Change-Id: Ifa1c8c01fb4502398b3b4e13a411ef50bc3db483
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3239013
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-11-01 19:39:46 +00:00
angle-autoroll 10356c0087 Roll VK-GL-CTS from 49afd2823061 to 06492d671a2d (6 revisions)
49afd28230..06492d671a

2021-10-29 rgarcia@igalia.com Add compute test with zero dispatch size
2021-10-29 rgarcia@igalia.com Test contradictory parameters on swapchain creation
2021-10-29 paulthomson@google.com Revert "Exclude cov-function-with-nested-loops-called-from-nested-loops"
2021-10-29 juha.heiskanen@siru.fi Add buffer feature check for depth/stencil formats
2021-10-29 quic_mnetsch@quicinc.com Merge vk-gl-cts/vulkan-cts-1.2.8 into vk-gl-cts/master
2021-10-28 quic_mnetsch@quicinc.com Merge vk-gl-cts/opengl-es-cts-3.2.7 into vk-gl-cts/master

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 timvp@google.com,angle-bots+autoroll-info@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: timvp@google.com,angle-bots+autoroll-info@google.com
Change-Id: Ie032d02c4b759ebfe3f4dfe5cf61b9d5fed96b2f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254001
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 19:28:46 +00:00
Jamie Madill 616dc2688f infra: Add ANGLE-side configuration for ASAN tests.
The ASAN builders will start by running compile-only and only in CI.
A follow-up change will enable sharded tests and CQ jobs.

Bug: angleproject:5795
Change-Id: I2e761b7bdd2d7215db2210c4538b6cafc4d9069a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254430
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-11-01 19:17:21 +00:00
Gregg Tavares ab42673590 Template gl::Rectangle so it can be used for float
Bug: angleproject:6598
Change-Id: I8cf5894f0e34c56a6ad856c978be93ea9d5ae113
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3253131
Commit-Queue: Gregg Tavares <gman@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-11-01 18:27:20 +00:00
angle-autoroll a7b3551ef2 Roll vulkan-deps from a03d00bd2a78 to d388b3abde67 (16 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/a03d00bd2a78..d388b3abde67

Changed dependencies:
* spirv-cross: 29632959d2..66adba17a8
* spirv-tools: d997c83b10..97d4495600
* vulkan-validation-layers: b9168891cb..6fca9899aa

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 timvp@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: timvp@google.com
Change-Id: I19b0462854ae5eed5c49e1e38d79581e4de31018
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254967
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-11-01 10:44:02 +00:00
Shahbaz Youssefi 5a0e6c1e85 Suppress failing test
ProgramBinaryES3Test.SaveAndLoadDetachedShaders depends on
VK_EXT_provoking_vertex, which is not supported on many of our bots.

Bug: angleproject:6526
Bug: chromium:1264995
Change-Id: I9ea26c1a113068381b18a65c4b79448cf642d476
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251224
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-10-30 02:26:11 +00:00
Tim Van Patten d2b4d9aec1 Revert "Vulkan: Don't expose MSRTT on SwiftShader"
This reverts commit fb77afd3c7.

Reason for revert: Breaks ANGLE roll into Chromium:
https://chromium-review.googlesource.com/c/chromium/src/+/3253966/

Please follow the directions here to update the reference images:
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/web_test_expectations.md

Original change's description:
> Vulkan: Don't expose MSRTT on SwiftShader
>
> Emulating this extension on SwiftShader is neither useful nor efficient
> (on the contrary, it hurts performance (which is true for all non-tiling
> architectures)).  This extension was exposed purely to increase testing
> coverage, but is being disabled now as OOMs resulting from allocating
> the implict multisampled image is confusing Chrome.  Note that
> SwiftShader exposes only a limited amount of memory.
>
> Bug: chromium:1263046
> Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>

Bug: chromium:1263046
Change-Id: I554df85109282db840ed6d2dbf0b153da5a7a98f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3254007
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-10-30 00:28:39 +00:00
Kyle Piddington 50fc2909d8 Merge Webkit up to Oct 27 2021
Merge the following commits from Webkit. This
change merges webkit from the following git commits

Previous:
commit 703b234524e75109ca3e94febbf63098314022f5
Author: Alex Christensen <achristensen@webkit.org>
Date:   Tue Sep 28 16:22:30 2021 +0000
    Mostly fix Mac CMake build
    https://bugs.webkit.org/show_bug.cgi?id=230868

Current:
commit 43d2e637f84b1e6b75c139ac64c26ca108b4f12f
Author: Kimmo Kinnunen <kkinnunen@apple.com>
Date:   Wed Oct 27 17:43:38 2021 +0000
    REGRESSION (Safari 15): Poor WebGL performance on
https://downloads.scirra.com/labs/particles

Commits:
commit 8238f462c96e515dabd3db0e26c143b18f47340c
Author: Kyle Piddington <kpiddington@apple.com>
Date:   Wed Oct 6 21:45:18 2021 +0000
    Shadertoy "truchet district" fails to compile with error:
    Internal error compiling shader with Metal backend"

commit 2fcb9af290e4b6c804f11ad4359555507c1492f9
Author: Kyle Piddington <kpiddington@apple.com>
Date:   Thu Oct 14 21:14:26 2021 +0000
    https://tankionline.com/play/ html5 engine not
    working: crashes. (Metal shader not working)
    https://bugs.webkit.org/show_bug.cgi?id=231490

commit e11955a258380a875115ded16ab8963142c4023b
Author: Kyle Piddington <kpiddington@apple.com>
Date:   Fri Oct 15 23:57:12 2021 +0000
    REGRESSION (r283667):
    webgl/2.0.0/deqp/functional/gles3/lifetime.html fails
    https://bugs.webkit.org/show_bug.cgi?id=231682

commit 43d2e637f84b1e6b75c139ac64c26ca108b4f12f
Author: Kimmo Kinnunen <kkinnunen@apple.com>
Date:   Wed Oct 27 17:43:38 2021 +0000

    REGRESSION (Safari 15): Poor WebGL performance on
    https://downloads.scirra.com/labs/particles
    https://bugs.webkit.org/show_bug.cgi?id=230749

Bug: angleproject:6630
Change-Id: Icca411dc429538f839f05834f1851fbc54ef8a1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248573
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Gregg Tavares <gman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-10-30 00:12:29 +00:00
Tim Van Patten 683ab73891 Android: Add back third_party/ to AOSP
The ANGLE autoroller into AOSP is currently stuck due to a merge
conflict in third_party/glmark2.   Specifically, this directory was
deleted in AOSP, but modified in upstream ANGLE.

The solution is to add back the third_party/ directories into AOSP, and
the ANGLE-owned files.   The full contents will not be added back if
they are a git submodule.

Some third_party/ directories will continue to be deleted due to how
large they are:

  third_party/jdk
  third_party/llvm-build
  third_party/android_build_tools
  third_party/android_sdk

We can look into adding these back in the future if it becomes
necessary.

Additionally, the license information in the Android.bp is being updated
to reflect the newly added files.

Bug: angleproject:6635
Change-Id: I793e5b0797218963a4d06a0399b3be80edd43b37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251685
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-10-29 21:16:08 +00:00
Jamie Madill 4a2446c6b4 Vulkan: Implement robust shader outputs.
In this CL we change ANGLE to pass the mask of missing shader
outputs down to pipeline creation. We then use the color mask
bits to block SwiftShader writing to unused outputs.
This fixes the undefined behaviour present in Genshin Impact.

Note that the other GLES implementations we tested don't seem
to modify outputs even if they're unused.

It was easier to mask out the color attachments in initialize
rather than set up the pipeline desc to mask out the attachments.
This was because we manipulate the color mask in a fairly complex
way before we initialize the pipeline desc.

Bug: angleproject:6566
Change-Id: Ie659fcd511cd286fa573fd25e3e6a0b9e123ebd6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232435
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-10-29 20:40:07 +00:00
Tim Van Patten 800c6885e9 Vulkan: Only add samplable formats to outCompressedTextureFormats
Only samplable texture formats should be added to
outCompressedTextureFormats in FormatTable::initialize(), so move that
to after the check of mActualSampleOnlyImageFormatID.

Bug: angleproject:6277
Change-Id: Id91908a04d7e94f2d6dd1f0fa499ebea6a1f107e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3243068
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-10-29 20:29:48 +00:00
Gregg Tavares 20ddb8027d Fix Blitting in Metal backend.
The Metal backend was clipping in integer space.
If the src and dst are not the same size,
say src is 3 wide and dst is 4 wide, and src
starts at -1, then src will be clipped by one
making the src 2 wide. It got 1/3 smaller so the
dst get 1/3 smaller making it 2.666 pixels wide.
The dst then needs to be expanded to pixels so 3 wide.
But, that means the src also needs to be expanded
0.3333 * 3(originalSrcWidth) / 4(originalDstWidth)
so its new left edge is -0.245 which is not an integer.

Bug: angleproject:6598
Change-Id: I2faa966b18b457f474a3e7f6844ef64bfa66dbe8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251683
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
2021-10-29 19:11:24 +00:00
Jamie Madill c31855eaf5 translator: Always report gl_FragData array size.
Previously we would report it as size 1 always if the extension
was missing. This was breaking a dEQP. The test may have a bug, but
we need to work around the issue until the upstream test is fixed.

See https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/3259

Bug: angleproject:6566
Change-Id: I5ac654f472f0e227d63804896ecc388081bec5e8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251586
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-10-29 16:42:18 +00:00
Lubosz Sarnecki 7bda9d735e DisplayVkAndroid: Always expose EGL_RECORDABLE_ANDROID.
Expose EGL_RECORDABLE_ANDROID in the config for all Vulkan drivers
on Android to provide app compatiblity with "My Talking Tom 2" and
"My Talking Tom Friends".

Don't require config to be unavailable in EGLRecordableTest and request
a config with EGL_RECORDABLE_ANDROID enabled, but do not check for
results.

Bug: angleproject:6612
Change-Id: I25113b7c7f9a4a3b13dc625f01d96ba91cb3c6d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237001
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-10-29 14:53:07 +00:00
Shahbaz Youssefi fb77afd3c7 Vulkan: Don't expose MSRTT on SwiftShader
Emulating this extension on SwiftShader is neither useful nor efficient
(on the contrary, it hurts performance (which is true for all non-tiling
architectures)).  This extension was exposed purely to increase testing
coverage, but is being disabled now as OOMs resulting from allocating
the implict multisampled image is confusing Chrome.  Note that
SwiftShader exposes only a limited amount of memory.

Bug: chromium:1263046
Change-Id: Ia69b7fc63804169431885352a8f637a95ab08bd0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251581
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-10-29 14:36:17 +00:00
Peng Huang 81d964a1ae vulkan: implement EGLDevice for vulkan backend
It allows ANGLE clients to get and use VkDevice and VkQueue
used by vulkan backend.

Bug: chromium:1264439
Change-Id: I338ac08152cfec50bb34c5025730e5e6368efba9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250964
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2021-10-29 14:34:12 +00:00
Shahbaz Youssefi 32b3c96317 Vulkan: Remove MSRTT assertion in the presence of OOM
When the MSRTT transient multisampled image is created, the emulated
clear staged update is removed (as it's also staged for the single
sampled image).  This was done after allocating memory for the image,
which can fail, leaving the update staged and leading to an ASSERT
failure when the texture is used.

Technically, the texture should not be used, and that's a Chrome bug
where the OOM result from ANGLE is being ignored.  This change makes
sure the staged update is removed before allocating memory so the
multisampled image is in a more consistent state.

Bug: chromium:1263046
Change-Id: Ida8923ccbc517f740d76b4c2880086a039fa8a1f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251580
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-10-29 14:29:17 +00:00
Lubosz Sarnecki 694c50124e capture_gles_3_2: Skip capturing debug calls
This is analogous to capture_gles_ext.

Bug: angleproject:6613
Change-Id: I8917a4cfa060f71ad616ece56038d02bfa12a952
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3237002
Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-10-29 14:11:37 +00:00
angle-autoroll 9f0db4a451 Roll Chromium from 367ea8143d4d to b8a060d71358 (521 revisions)
367ea8143d..b8a060d713

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 timvp@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: b726d24b66..40d725c711
* buildtools: 850fe71738..80e4f838fa
* buildtools/third_party/libunwind/trunk: 05a4a0312e..99015718c3
* testing: 0c771463fb..0f63f0d38b
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..819f08fc14
* third_party/depot_tools: 8daf2442e2..b3a1a797ba
* tools/clang: 279e9ceb48..f827083d00
* tools/mb: c61ca72b5d..c063514f93
* tools/perf: 2cb82b1a6d..930ae734b0
No update to Clang.

Bug: None
Tbr: timvp@google.com
Change-Id: I185edca8b556d5f9b4b30f6395bde35063d47d40
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3252787
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-29 08:21:58 +00:00
Charlie Lao bae19e0626 Vulkan: Avoid unnecessary wait if mapBufferRange indicates read only
When we call BufferVk::mapRangeImpl(), both from internal code paths for
data reads or due to glMapBufferRange call, we are not passing the
access bit to the call. This CL passes the proper access bits to the
call and only wait for GPU writes to finish if access is for read only.

This CL also adds access bitfield to the BufferVk::mapImpl() API and
have various callers pass in the proper access bits as well.

Bug: b/203582620
Change-Id: Ica8493c902dbd7b15996266c81ce0fd4dbfc2520
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3245487
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
2021-10-28 20:13:48 +00:00
Shahbaz Youssefi 5c914b57b5 Vulkan: SPIR-V Gen: Fix float+matrix
Found by a fuzzer, float+matrix was not handled correctly by the SPIR-V
output.

Bug: chromium:1264212
Change-Id: I09b13c3e48374621228f5fab4de68c33973ddfd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251585
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-10-28 20:06:09 +00:00
Tim Van Patten dacfa91778 Disable flaky multithreaded tests
The following multithreaded tests are flaky in CQ and are being
suppressed:

    VulkanMultithreadingTest.MultiContextDrawSmallDescriptorPools/ES3_Vulkan
    MultithreadingTestES3.MultithreadFenceDraw/ES3_Vulkan_SwiftShader

Bug: angleproject:5418
Bug: angleproject:6633
Change-Id: I170085064597165972b7206d98130917bb46fcaf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3251684
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-10-28 19:34:29 +00:00
Jamie Madill 191c236a6b Vulkan: Remove "current queue serial".
Queries, semaphores, and pipelines instead use the normal
vk::Resource design to track their lifetimes. Removes the current
serial APIs from all classes. Current serials are still tracked
internally in the command queue classes.

Bug: b/169788986
Change-Id: Idcd2c2a93bc8225c6f3f7c247eb8fcfb76be1030
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3223644
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-10-28 17:15:58 +00:00
Brandon Schade 5da062baf1 Translator: Fixed textureGatherOffsets validation
The parser only considered the case where the input to the
textureGatherOffsets() function is an aggregate constructor
node, but not if it is a pre-initialized constant variable.
Added code to handle the constant variable case.

Tests:KHR-GLES32.core.gpu_shader5.texture_gather_offsets_color
      KHR-GLES32.core.gpu_shader5.texture_gather_offsets_depth
Bug: angleproject:5362
Change-Id: Ib1dd3450071341082ea6f0f2a243c3bb3ef6b95a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3217852
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Brandon Schade <b.schade@samsung.com>
2021-10-28 17:06:19 +00:00
Jamie Madill 3a9f18f135 Refactor program pipeline handling.
In preparation for moving more code from gl::Program to
gl::ProgramExecutable so it can be shared with ProgramPipeline.

Bug: angleproject:6566
Change-Id: Icb7ecccb37ae8e0d7d5fef8968f0dd7ef6fe6150
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3226305
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-10-28 16:26:49 +00:00
Jamie Madill 577cfeff92 GN: Remove unneeded version header visibility rule.
These Chrome targets are now migrated to use the encapsulated API.

Bug: angleproject:2551
Change-Id: I6970f7ad85af089fd41c79476a2bdd4e605949c3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248143
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-10-28 14:56:58 +00:00
Hans Wennborg 6ce6788639 Drop -Wweak-template-vtables
Clang is dropping suport for this flag, see bug.

Bug: chromium:1264351
Change-Id: I09b3d42889eecb8e786c52c205f28507fc797c5a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250885
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-10-28 14:23:48 +00:00
angle-autoroll 8019c4e5e2 Roll vulkan-deps from e706a029a256 to a03d00bd2a78 (5 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/e706a029a256..a03d00bd2a78

Changed dependencies:
* glslang: 44b57597d8..d1608ab1ef
* vulkan-loader: 5a4c691700..830a0724aa
* vulkan-validation-layers: e200d91dc3..b9168891cb

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 timvp@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: timvp@google.com
Change-Id: Iaf613182ff8cb36b241706c281cb8ea1f5ad6913
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250031
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 12:48:58 +00:00
angle-autoroll 404fbc6a36 Roll SwiftShader from d143249a93bc to 9d8950e082d8 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/d143249a93bc..9d8950e082d8

2021-10-27 srisser@google.com Update git-hooks to HEAD revision
2021-10-27 srisser@google.com Revert "Make git-hooks track with origin/main"
2021-10-27 sugoi@google.com Refactor Queue::Submit to use internal structure

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 timvp@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: timvp@google.com
Change-Id: I9cc40aff97fe50280cfc74ac97741296323eea3f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3250554
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 11:39:08 +00:00
angle-autoroll 540118b10f Roll Chromium from 6e4379b531a3 to 367ea8143d4d (450 revisions)
6e4379b531..367ea8143d

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 timvp@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: 4703a8520d..b726d24b66
* buildtools/third_party/libc++abi/trunk: 26b101897f..1876d99930
* buildtools/third_party/libunwind/trunk: bbd954d05f..05a4a0312e
* testing: 847533d764..0c771463fb
* third_party/abseil-cpp: 14a17ad53a..aaec1f1057
* third_party/android_build_tools/aapt2: oJ_fhfmT6sLorimH6Eo6hwWS2R2gU0c4ZUQfXvzae1UC..GlCdqxHxlg-8YkDGgj5cie-6COsEAZga9jyq-LAYxY4C
* third_party/android_deps: f59fdc4257..d1c5c4d011
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..60bc3270d5
* third_party/depot_tools: 480c91d40b..8daf2442e2
* tools/clang: 819fa9604c..279e9ceb48
* tools/mb: b3ad7f71e0..c61ca72b5d
* tools/memory: 4dc64cab42..20319341da
* tools/perf: 2ff429a7b7..2cb82b1a6d
Clang version changed llvmorg-14-init-6722-g0fbd3aad:llvmorg-14-init-7378-gaee49255
Details: 819fa9604c..279e9ceb48/scripts/update.py

Bug: None
Tbr: timvp@google.com
Change-Id: Icf82072a10099ebe93baeb0dc9a57105028a6780
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3249871
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-10-28 09:52:20 +00:00
Tim Van Patten e514e1595c win-trace: Skip failing tests
The following test is failing on win-trace:

    ProgramBinaryES3Test.SaveAndLoadDetachedShaders/ES3_Vulkan_SwiftShader
    MultithreadingTest.MultiContextCreateAndDeleteResources/ES3_Vulkan_SwiftShader
    MultithreadingTestES3.MultithreadFenceDraw/ES3_Vulkan_SwiftShader
    MultithreadingTestES3.MultithreadFenceTexImage/ES3_Vulkan_SwiftShader
    MultithreadingTest.MultiContextDrawWithSwapBuffers/ES3_Vulkan_SwiftShader

This CL adds them to capture_replay_expectations.txt.

Bug: angleproject:6631
Change-Id: Ibb74afc6ff4b799e15bb8ead4d7fae0ce81620bb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248572
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-10-28 05:53:48 +00:00
Kyle Piddington db83279a7f Metal: Use 'fast' normalize to match DEQP expectations
Normalize' has a fast math option that more conformantly
deals with INF in normalize functions.

Use metal::fast::normalize instead of metal::normalize
This also matches SPIRV-Cross behavior for normalization

Bug: angleproject:6629
Change-Id: I61392ecd6f61b612d21f2832e07a135e26b53ad6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3248145
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Gregg Tavares <gman@chromium.org>
2021-10-27 23:10:19 +00:00
Kyle Piddington c1b42740b6 Metal: Use ES3 validation for GL_R/RG8_EXT formats
Fix 6 fboCompleteness tests by setting the Metal conformance version
to ES3, rather than ES2. This causes ANGLE to select the backwards
compatible ES3 validation rather than the ES2 validation.

The FBO completeness test may have a bug related to extensions
in it, as limiting the Vulkan backend to ES2 conformance
causes it to fail in the same manner of Metal.

Bug: angleproject:6618
Change-Id: I64d87ea7b9e1957baab05b6380fe09e8271393a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3244023
Commit-Queue: Kyle Piddington <kpiddington@apple.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
2021-10-27 21:43:08 +00:00
Peng Huang 36eac05f9d VANGLE: change the default vulkan device choose logic
To match the vulkan device choose logic in chrome, ANGLE will choose
the default device based on the order of (discret GPU > integrated GPU
> other GPU)

TODO: for long term, ANGLE should provide a way to let chrome specify
the physical device.

Bug: chromium:1260869
Change-Id: Id023138485eb65fcc1d2758103d59a4e6cb2a51d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3242963
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
2021-10-27 18:22:48 +00:00