Commit Graph

16218 Commits

Author SHA1 Message Date
Geoff Lang
232e523656 Remove the explicit context extension.
This extension currently has no known users and doubles the
number of entry points that ANGLE exports which is a significant
binary size cost.

This saves about 130kb of binary size on Android.

Bug: chromium:1084580
Change-Id: Ib0fc4930b38a33bd61434f7d0030ba9fb9b93ba7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3015518
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-16 20:04:00 +00:00
Shahbaz Youssefi
f4ce6d00c4 Vulkan: SPIR-V Gen: Support bool in interface blocks
SPIR-V doesn't allow bool in interface blocks.  Another type
specialization is added for this purpose, turning those bools to uint.

Bug: angleproject:4889
Change-Id: I803bffcf5ea58c913d4df6e7aae3386c67901b25
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032021
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-16 19:07:59 +00:00
Jamie Madill
48da1c3594 Vulkan: Prefer the local vulkan loader over the system one.
Load the Vulkan loader ourselves and give vkGetInstanceProcAddr to
volk. This allows us to always prefer loading from the current module
directory instead of using the platform-specific ordering.

Refactor angle::Library loading to use ModuleDir instead of
ApplicationDir.

CL originally authored by Geoff Lang.

Bug: chromium:1219969
Change-Id: I21d1926e90fd66e1c23cea7323991ae55f3d22d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035444
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-16 18:56:40 +00:00
Jamie Madill
dd0e8a1fc0 Capture/Replay tests: Enable dcheck_always_on.
This will enable release ASSERTs. ASSERTs were unintentionally
disabled when switching to release builds.

Bug: angleproject:5133
Change-Id: Ie19e9fd02624b10283192467c4e22e3cf2b382c6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3035521
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-07-16 17:02:36 +00:00
Pujun Lun
2a713d9299 Avoid recreating activity when rotating the display.
Reference:
https://developer.android.com/guide/topics/resources/runtime-changes#HandlingTheChange

Bug: b/193828422
Change-Id: I4caa80941e4d32bdf5c830985a19536efd041069
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032150
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-16 15:27:19 +00:00
Jamie Madill
966c6a9aa0 Capture/Replay: Don't try to serialize compressed textures.
Instead we write out a simple string indicating compressed texel
contents. We in the future could implement a GetCompressedTexImage
API.

Bug: angleproject:6176
Change-Id: I6673ec85ac94d5268b24bda4d510247a63fa97e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032022
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-07-16 14:48:19 +00:00
Jamie Madill
ac61386dcb Capture/Replay Tests: Swap before TearDown.
Swapping before TearDown lets the capture and serialization logic
see all the test resources that will be cleaned up by the fixture.
This will increase coverage quite a bit because many tests do
automatic cleanup which would previously skip serialization.

Bug: angleproject:6175
Change-Id: I85aa3f6d9bcf2fd66836523e55862a2d5f0d8e32
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031702
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-16 14:26:28 +00:00
Gert Wollny
044856565e Capture/Replay: Capture WaitSemaphore and SignalSemaphore
Enable tests that now pass, but keep tests that time out or
still crash on the skip list.

Bug: angleproject:6164
Change-Id: I39e56f0a1bfae09c74a54b06367f7eef41d1063c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024208
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-07-16 11:21:57 +00:00
Gert Wollny
1e75181f31 Capture/Replay: redesign capturing of arrays passed by pointer
Instead of doing a lookup of the number of passes array when the
call is written, store the number of array values in the
ParamCapture when the call is captured.

Bug: angleproject:6164
Change-Id: I87b0e2f776a6884b999cc50844e0777cda26b380
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2021-07-16 10:23:36 +00:00
Gert Wollny
1d2c60da34 tests: GL_NUM_BINARY_FORMATS is a ES 3.0 property
Enable according test.

Bug: angleproject:6165
Change-Id: Idb0908024ebce485ac182463a02eba415f0ffec8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024207
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2021-07-16 09:40:46 +00:00
angle-autoroll
ab440fe932 Roll Chromium from 8cd71c4b8d72 to ec932ff42c9b (494 revisions)
8cd71c4b8d..ec932ff42c

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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: a0ffb5c18b..c0b24c3c75
* buildtools/third_party/libc++abi/trunk: bb278658aa..486cb62885
* testing: fc691f716e..d5800742c1
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..88e3e03477
* tools/clang: 9ae36fe326..c81b8b948f
* tools/mb: 8160e2a4da..ed1db6c6b3
* tools/perf: f6e0d38cba..8e00ef0f0d
* tools/skia_goldctl/linux: akNu1KJYVHgTQNr5JP2zeDRr55on3hTjOig4L_oTFC8C..v3HXOS7MJkC2TfycHGZS1dHlQ_BosbzqLeuDXXLbxMUC
* tools/skia_goldctl/mac: tZIg-mPdIZ6uAOSczjKk5xX2bYbpRxpWf03pIR1H57UC..nx0V9Budj8K1DfPIdKA9oakeQE7SPTMIvVwqzX0DkF4C
No update to Clang.

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I6c4e73b53f31d2a956769a84e9a32136cf561906
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3033965
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-16 08:34:26 +00:00
Gert Wollny
106ed74c5b Capture/Replay: Capture FenceNV parameters
Enable according tests.

Bug: angleproject:6163
Change-Id: I4435a650530006997ed3f14315461060729b836a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024206
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2021-07-16 07:29:16 +00:00
Qin Jiajia
397fc145b8 Fix the ext-texture-norm16 with RG16 failures
Don't apply the readPixelsUsingImplementationColorReadFormatForNorm16
workaround for Intel GPU. With this workaround, below error will be
printed:
GL_INVALID_OPERATION in glReadPixels(invalid format GL_RG and/or type
GL_UNSIGNED_SHORT)
in FramebufferGL.cpp, readPixelsAllAtOnce

Test:
conformance2/extensions/ext-texture-norm16.html

Bug: chromium:1208297
Change-Id: Ic9016c3afd8a0d2add61247adbf0d9434e8ce9f4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028810
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
2021-07-16 01:02:33 +00:00
Jonah Ryan-Davis
96aa681ce3 Enable SwANGLE on ozone headless
To switch ozone testing to SwANGLE we need ANGLE to be able to run
vulkan/swiftshader on the ozone headless platform.

Bug: chromium:1227864
Change-Id: Icb8dc8fc4b3a5bc2402be2e41334350815fdd4dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027045
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-07-15 22:21:03 +00:00
Tom Anderson
298fafd7f8 [GLX] Allow usage of multiple visuals
When using AMGLE_x11_visual, a single visual is specified for the whole
session.  This is limiting since windows can have different visuals.
For example, one window may want transparency and another window may
not.  This CL makes it not-an-error to use a window with a visual other
than the one set with ANGLE_X11_VISUAL_ID.  In this case, ANGLE will
fallback to using a child window, as if ANGLE_X11_VISUAL_ID had not been
specified.

Long term, a better solution would be to allow specifying
ANGLE_X11_VISUAL_ID per window.

Bug: chromium:1225953
Change-Id: Ibec411cfd1341c30b2842a7ddba3fea6023de2b3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028803
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-07-15 21:58:43 +00:00
Shahbaz Youssefi
9c6fb52c74 Vulkan: SPIR-V Gen: Assignment between mismatching SPIR-V types
In general, GLSL qualifiers translate to SPIR-V decorations on SPIR-V
variables.  In the case of blocks (struct or interface block),
OpMemberDecorate is used, which due to its specification in SPIR-V, can
only apply decorations to direct members of a block.  This makes it
impossible for example to decorate a nested member of a block through
its variable id.

As such, some decorations such as RowMajor and Invariant apply to
members of a block given its _type_ id.  Unfortunately SPIR-V requires
ArrayStride to also be applied to a type directly, rather than a member
of a block.  This implies that some types, such as structs used in
uniform/buffer interface block, or decorated with invariant or
row_major, as well as arrays (of any type) used inside and outside
interface blocks to produce different SPIR-V types from the same GLSL
type.  The SpirvTypeSpec data previously introduced specialize these
types.

It's necessary to "cast" between these types when needed.  The
translator handles casts at load/store boundary:

- Upon load, the value is cast to the type with the default
  SpirvTypeSpec.
- Upon store, the value is cast from the default to the store target
  SpirvTypeSpec.
- All intermediate results use the default SpirvTypeSpec.

Bug: angleproject:4889
Change-Id: I6fa28e518ec6b517ff163f44b6892859eb4b10fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3026145
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-15 21:21:35 +00:00
Shahbaz Youssefi
5e579a1879 Vulkan: SPIR-V Gen: Support row-major blocks
The SPIR-V type generation is refactored to contain all
type-differentiating properties in a specific struct that is passed
around.  The following can lead to different SPIR-V types generated from
the same GLSL type:

- Block storage for blocks
- Invariant for blocks
- Row-major for blocks with matrices
- Row-major for matrix arrays in blocks
- Bool when used inside an interface block (not yet implemented)

Previously, block storage and invariant were passed around.  Instead,
with this change the aggregate of all the above is passed around.  The
row-major specialization is added in this change.

This change also refactors the uniform/buffer block encoding to use the
existing encoders in blocklayout.h.

Bug: angleproject:4889
Change-Id: I3cfa8bd96bb380a1f1f05fbbd6b3eebd702c9e24
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021670
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-15 19:55:33 +00:00
Yuly Novikov
992a2f7094 Skip DrawRepeatUnalignedVboChange on Mac ARM Metal
SimpleStateChangeTest.DrawRepeatUnalignedVboChange/ES2_Metal
flaky on Mac FYI arm64 Release (Apple DTK)

Bug: angleproject:6171
Change-Id: I9fa8b39e172c6422d9430ab3a0aa8ce9e7558b9f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3032024
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
2021-07-15 19:02:30 +00:00
Jamie Madill
4b47e8f30f GL-CTS: Add option to run on D3D11 refrast.
Bug: None
Change-Id: Ia28afed48b3fddcd9725094f4892a1aa27957fd4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027540
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-15 17:55:53 +00:00
Cody Northrop
f46df3978a Vulkan: Suppress VVL errors triggered by external formats
Since several tests are hitting these and it may be a VVL bug,
moving to ignore rather than skips.

Bug: angleproject:6155
Bug: angleproject:6168
Change-Id: I38a5be8d792b8b13a490be895a68349bffe69c6e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028809
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-15 15:46:33 +00:00
Mohan Maiya
669acb00b2 Add YUV format utils and validation code
1. Add YuvFormatInfo struct and a few YUV format helpers
2. Update ES3 validation code to account for YUV formats

Bug: angleproject:5773
Change-Id: I82ababe8bf2a065e7d5c4f868e4a512ba8c9d7d2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947766
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-15 15:36:33 +00:00
angle-autoroll
4264138a69 Roll vulkan-deps from a03f2d365426 to 7c4121a2cfd0 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/a03f2d365426..7c4121a2cfd0

Changed dependencies:
* vulkan-validation-layers: dada63db18..8b83ca019c

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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: I4a3aa5dfe053be1cc20824d07143c99fd347195c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3031221
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-15 11:41:24 +00:00
angle-autoroll
4b9b435bd5 Roll Chromium from 47358b0400b8 to 8cd71c4b8d72 (448 revisions)
47358b0400..8cd71c4b8d

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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: c8b96e2021..a0ffb5c18b
* buildtools/third_party/libc++abi/trunk: 6803464b0f..bb278658aa
* testing: 70c4b1c859..fc691f716e
* third_party/android_sdk: ea5c2c2838..76bd51b56b
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..f61fac0492
* tools/clang: 9d0a403e85..9ae36fe326
* tools/luci-go: git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd..git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f
* tools/luci-go: git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd..git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f
* tools/luci-go: git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd..git_revision:91a04914ac71b7b6fe7b95ce8691d45eeb69bf4f
* tools/mb: 9f08bce929..8160e2a4da
* tools/perf: 1f94e8277f..f6e0d38cba
* tools/skia_goldctl/linux: McKpb1_oys52qBLvSwGec9-adPkk72RTCSdOBnzZiakC..akNu1KJYVHgTQNr5JP2zeDRr55on3hTjOig4L_oTFC8C
* tools/skia_goldctl/mac: Ea5khSEBtnBiIUjc8YOW1PTAiFTBzcSCJcQXyS_RcV8C..tZIg-mPdIZ6uAOSczjKk5xX2bYbpRxpWf03pIR1H57UC
* tools/skia_goldctl/win: hrfC-m0pHo7gMu28Bdo4wR8Fnxk_GQkMcO9LyPNPThoC..5vRobMZ1N26UvonRAdJZ66IEfzd3vF8r6z8j4Nqrhc8C
No update to Clang.

Bug: None
Tbr: cnorthrop@google.com
Change-Id: Iee7633c3b092fc9399383a24b5d0f812b9841e13
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028523
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-15 08:31:50 +00:00
Tim Van Patten
223cd0ac24 Capture/Replay: Refactor shared context handling
This is the initial CL to enable capture/replay of multi-context
applications.

This CL refactors FrameCapture and FrameCaptureShared to move much of
the functionality into FrameCaptureShared, since most everything is
shared by Contexts in the share group. For example, the setup of the
majority of the GL objects is done in the new SetupReplayContextShared()
function in the new $LABEL_capture_context_shared_frame001.cpp file. The
setup is performed by (for example):

    void SetupReplay()
    {
        $LABEL::InitReplay();
        $LABEL::SetupReplayContextShared();
        SetupReplayContext2();
    }

This performs the shared setup first, followed by the context-specific
setup, which may reference shared objects careated by
LABEL::SetupReplayContextShared().

No re-capturing is required with this change, since the external APIs
(i.e., SetupReplay()) are still the same.

Bug: angleproject:5878
Test: Manual MEC and replay of Magic Tiles 3, Candy Crush Soda Saga, Temple Run 2
Change-Id: Iab7bfe651437e9be1dee83514cd97acc20c61d1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965780
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-15 04:03:03 +00:00
Mohan Maiya
db54b8dd65 Add YUV format support to frontend
Add GL_G8_B8R8_2PLANE_420_UNORM_ANGLE and
GL_G8_B8_R8_2PLANE_420_UNORM_ANGLE formats to InternalFormatInfoMap

Bug: angleproject:5773
Change-Id: Iaad4043f803c2702a5d41d3b9dc3a00c5f6aed73
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947765
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 23:40:09 +00:00
Mohan Maiya
979876586d D3D: Update format table with new YUV formats
They are currently mapped to angle::FormatID::NONE

Bug: angleproject:5773
Change-Id: I0cba77158ef06bf39fbb30702e0fa91a37f660a9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2947764
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 21:44:59 +00:00
angle-autoroll
8a72174055 Roll vulkan-deps from 015a6f8b338d to a03f2d365426 (30 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/015a6f8b338d..a03f2d365426

Changed dependencies:
* glslang: 9e707294f1..4b7b86d568
* spirv-cross: 1ae2b58f19..be3988b13c
* spirv-headers: ddf3230c14..1d4e3a7e3a
* spirv-tools: c26baf4c93..640b17b5fb
* vulkan-loader: 3bdb32d29f..99c0b1433a
* vulkan-tools: 8b86fbac17..33a87ce6da
* vulkan-validation-layers: f2912cd0f6..dada63db18

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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: I9c7df90a144727812e03fb5417ea0df22ba34bae
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027273
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-14 21:42:28 +00:00
Mohan Maiya
e66e334491 Vulkan: Add GL_ANGLE_yuv_internal_format extension
1. Add a new extension to support creation of immutable textures with
   sized internal YUV formats
2. Rename YUV format enums from *_ANGLEX to *_ANGLE
3. Move YUV format enums from angleutils.h to glext_angle.h

Bug: angleproject:5773
Change-Id: Ibfe732f4c9a4a536be56481f33e4768f6227c212
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2820153
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 21:02:30 +00:00
Cody Northrop
cd73949c48 Skip SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData P4+VK
New validation layers are triggering failures.

Test: SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData
Bug: angleproject:6168
Change-Id: I4070bd028a598e8d91a3b8f2172b42f3e782c932
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3028802
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-14 21:01:59 +00:00
Shahbaz Youssefi
3dda3afa2f Vulkan: SPIR-V Gen: Add missing SampleRateShading capability
Bug: angleproject:4889
Bug: chromium:1229324
Change-Id: I8782ea4b0f9967c12b205a8c48d5f85bd94e950c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027044
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 20:57:59 +00:00
Mohan Maiya
715a49c754 Vulkan: Handle incompatible immutable sampler formats
If the immutable sampler format of an active texture is not
compatible with those supported by the pipeline layout, recreate
the pipeline layout.

Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Test: ImageTest.SourceAHBTarget2DExternalCycleThroughYuvTargetsNoData*Vulkan
Change-Id: Iea78e1738ea2fb133a24dc88f5b68daf4cc1bdfe
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2997289
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 18:40:41 +00:00
Jamie Madill
ead83da933 Add environment variable args to trigger script.
This can allow specifying args such as VK_LOADER_DEBUG.

Bug: chromium:1228274
Change-Id: Idf9298e32a0c6a353891eb8b929a3524d27541b0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027539
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-14 17:52:41 +00:00
Mohan Maiya
31b06f5f79 Vulkan: Account for immutable samplers that need multiple descriptors
It is valid for immutable samplers to need more than 1 descriptor count.
Account for this possiblity while calculating descriptor pool size.

Bug: b/155487768
Bug: angleproject:5033
Bug: angleproject:5773
Bug: angleproject:6141
Change-Id: Ifb0ed3e4b3c01c61d81dd0c628101f31d4c8bd05
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3005329
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
2021-07-14 17:33:01 +00:00
Cody Northrop
cfc8db0b91 Skip SimpleStateChangeTest.RedefineFramebufferTexture on NV+WIN
Bug: chromium:1229184
Change-Id: I68339ddf1bd3ac2ae04c1191045bd27c321131fd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3027264
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-14 17:16:11 +00:00
Jamie Madill
41980f05a0 Download rc binaries for win cross-compile.
This copies code missing from the Chromium DEPS file.

Bug: angleproject:6170
Change-Id: I0f12fe185bf97e9d316a03bec57e4e3ce2fee080
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025126
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-14 16:28:50 +00:00
Cheryl Wei
45965e725a Vulkan: Translate border color's channel by image view format
ANGLE implementes some formats as other formats,such as ALPHA8 to R8,
this caused some tests failed due to missing border color's channel
translation,this change add a new textureBorderLoadFunction to
translate channels of border color by image view format.

Bug: angleproject:6046
Change-Id: I94ce719b4db3724ffd3dc862b51a412b5d9f3cce
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2972328
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2021-07-14 15:59:20 +00:00
Peter Kasting
45c344c19b Roll third_party/glmark2/src/ 9e01aef1a..ca8de51fe (52 commits)
Bug: chromium:1066980
Change-Id: Id364f9039fb563eafc80b2e05e3d0709aae1647f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024962
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2021-07-14 15:28:11 +00:00
Shahbaz Youssefi
07c39616b5 Vulkan: SPIR-V Gen: Enable GLSLTest*
This change includes an assortment of small fixes to enable most of
GLSLTest* end2end tests.

- User-defined std140 storage buffers were mistakenly turned to std430.
- External and WEBGL samplers were redundantly redeclaring the sampler2D
  type.
- `invariant` specified on a field of struct type didn't apply it to
  said struct's members.
- Arrays of struct as a member of an interface block didn't have their
  size aligned, producing incorrect stride
- Interpolation and auxiliary qualifiers are now generated
- Arrays of opaque uniforms are now correctly passed to functions when
  indexed.
- atan(x, y)'s built-in Op is fixed
- early_fragment_tests is now generated

Additionally, the SPIR-V transformer didn't handle the Invariant
decoration applied to gl_PerVertex built-ins, which is possible as a
result of:

    #pragma STDGL invariant(all)

This bug existed in the transformer due to two bugs:

- ANGLE didn't generate this line when generating GLSL to feed to
  glslang.  This is fixed by this change.
- glslang itself ignores this line:
  https://github.com/KhronosGroup/glslang/issues/2689

Bug: angleproject:4889
Change-Id: I15ad9fcc178abc1eae944e7a58f4e6153fa5dfd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016762
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 14:25:40 +00:00
angle-autoroll
2ec3f57428 Roll SwiftShader from 4716eec90fcb to ba18c78e4696 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/4716eec90fcb..ba18c78e4696

2021-07-13 thakis@chromium.org Define NO_SANITIZE_FUNCTION on win/clang too

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 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: I5252213e220a9fc516b80592ead71b8f68947337
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025289
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-14 11:52:13 +00:00
angle-autoroll
7bbd3224ae Roll Chromium from 624f8c7a15ff to 47358b0400b8 (511 revisions)
624f8c7a15..47358b0400

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 cnorthrop@google.com on the revert to ensure that a human
is aware of the problem.

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: 9c63d2e3b0..c8b96e2021
* buildtools/third_party/libc++abi/trunk: cb34896ebd..6803464b0f
* testing: d749d1b98b..70c4b1c859
* third_party/android_deps: 329436118b..8c49b419c2
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..a67592355d
* third_party/zlib: f376b41126..dfbc590f58
* tools/clang: aca9f71bde..9d0a403e85
* tools/luci-go: git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3..git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd
* tools/luci-go: git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3..git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd
* tools/luci-go: git_revision:2ac8bd9cbc20824bb04a39b0f1b77178ace930b3..git_revision:8b8a9a6040ca6debd30694a71a99a1eac97d72fd
* tools/mb: 1820a3adb0..9f08bce929
* tools/perf: 6dad62e2eb..1f94e8277f
* tools/skia_goldctl/linux: R0Jd4IlcndZlI5C9Pejy7DqtmVEQT8Sc6Ye09MGyFxYC..McKpb1_oys52qBLvSwGec9-adPkk72RTCSdOBnzZiakC
* tools/skia_goldctl/mac: 5NoUEq08DuYUlQWnf2yj6rQvBtlMvWiDqfuUuE5nJFIC..Ea5khSEBtnBiIUjc8YOW1PTAiFTBzcSCJcQXyS_RcV8C
* tools/skia_goldctl/win: M2_R9AXWaN0xmm6nz_nRzKlhpzzOp3P9EUxNaLZ5owMC..hrfC-m0pHo7gMu28Bdo4wR8Fnxk_GQkMcO9LyPNPThoC
Clang version changed llvmorg-13-init-14732-g8a7b5ebf:llvmorg-13-init-15163-g98033fdc
Details: aca9f71bde..9d0a403e85/scripts/update.py

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I4e4fd8a8207ae99ad7d2ba90a3584941e3ea6f42
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3026068
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-14 09:41:14 +00:00
Kenneth Russell
2534ee4c5b Limit the size of declared variables in WebGL shaders.
Add an implementation-specific limit for the sizes of variables
(specifically arrays, structs, and arrays of structs) in WebGL 1.0 and
2.0 shaders, and interface blocks in WebGL 2.0 shaders, no matter
whether they're input, output, or local variables.

It is legal in the OpenGL ES and OpenGL ES Shading Language
specifications to fail to compile shaders for implementation-specific
reasons.

Add WebGLCompatibilityTests covering the new limit.

Bug: chromium:1220237
Change-Id: I6c1d24a5d9a382ba4454c2dfbb856ab9468f5409
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3023033
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2021-07-14 02:49:51 +00:00
Kenneth Russell
2a668d9219 Fix iOS Simulator build after direct-to-Metal upstreaming.
Bug: angleproject:5505
Change-Id: I4e690099502be2f2404a25d67356d452cf63451b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025240
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-14 01:23:00 +00:00
Qin Jiajia
15581f35e9 Fix the INVALID_ENUM error
This PR fixes the GL_INVALID_ENUM error caused by framebufferTexture2D
in copySubTextureCPUReadback with TEXTURE_EXTERNAL_OES as the texture
target.

TEST
conformance/textures/video/tex-2d-luminance_alpha-luminance_alpha-unsigned_byte.html
conformance/textures/video/tex-2d-luminance-luminance-unsigned_byte.html
conformance/textures/video/tex-2d-alpha-alpha-unsigned_byte.html
conformance2/textures/video/tex-2d-srgb8-rgb-unsigned_byte.html
conformance2/textures/video/tex-2d-rgb9_e5-rgb-float.html
conformance2/textures/video/tex-2d-srgb8_alpha8-rgba-unsigned_byte.html
conformance2/textures/video/tex-2d-rgb9_e5-rgb-half_float.html
conformance2/textures/video/tex-2d-rgb16f-rgb-float.html
conformance2/textures/video/tex-2d-rgb16f-rgb-half_float.html
conformance2/textures/video/tex-2d-rgb32f-rgb-float.html

Bug: chromium:1208297
Change-Id: Ic62ba95ad6fd70f293a7261dc640a95dcabe7ba2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3023666
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
2021-07-13 23:47:15 +00:00
Kenneth Russell
4d9dbf9cb7 Use "frameworks" rather than "libs" for iOS dependencies.
The angle_test_expectations static library has added this dependency
but it fails to build on the ios-simulator bot. Try using "frameworks"
instead.

Bug: angleproject:5505
Change-Id: Ia08240a042f241c7eefe0de730b6942a60047054
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025238
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-13 22:58:30 +00:00
Cody Northrop
4efcd10c6f Skip SourceYUVAHBTargetExternalRGBSampleInitData on Pixel4
Two new Vulkan validation errors are being triggered.

Test: SourceYUVAHBTargetExternalRGBSampleInitData
Bug: angleproject:6168
Change-Id: I11c86bcb8e47f0dbf8032652aae3988279478ace
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3025486
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-13 22:10:31 +00:00
Jason Macnak
7c4404da1d Vulkan: update D/S state in ContextVk::onFramebufferChange
ANGLE needs to ensure that the stencil test is correctly handled
when framebuffers are cleared before stencil attachments are
configured.

Adds two stencil tests for clearing fbo before stencil attached
which fail before this change and which replicate the behavior of
CtsNativeHardwareTestCases's StencilAffectsDrawAcrossContexts.

BUG=b/192315789
TEST=newly added tests on Cuttlefish
Change-Id: I58d97af97d3f78787051b069d2594041ccd2bfba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3018486
Commit-Queue: Jason Macnak <natsu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2021-07-13 19:52:29 +00:00
Jonah Ryan-Davis
b202d5cf30 Suppress BlitFramebufferTest.MultisampleDepth on Metal
This test is failing on Intel as well, expand the suppression.

Bug: chromium:1228433
Bug: angleproject:5505
Change-Id: I98e240897b996d5d8d9a5977ef777f928b25c9dd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3024591
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-07-13 19:13:04 +00:00
Tim Van Patten
16a9a89250 Cleanup license data and remove Android.mk files
In an effort to better satisfy the Android legal/license requirements:
1.) Cleanup the license data in the generated Android.bp.
2.) Remove unused Android.mk files.

Bug: b/191882454
Change-Id: Ia1937c1e2e822e688cca2a4d3ebc9a294f67ad69
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3021851
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Tim Van Patten <timvp@google.com>
2021-07-13 16:59:56 +00:00
Cody Northrop
634d156f5e TracePerfTests: Add ScreenShotFrame option
Allows the user to specify a frame to capture instead
of defaulting to the first one.

Usage: --screenshot-frame <frame>

Bug: angleproject:4615
Change-Id: I000ee17aa9b3019188816aa6203f3266b39155b8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3016356
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2021-07-13 16:36:35 +00:00
Jonah Ryan-Davis
428d7c4d9b GL: Widen scope of disable_sync_control_support workaround.
Crashes and hangs are still happening on Linux/Intel/Mesa 20. This
should already not expose the OML_sync_control extension, so widen
the scope of the workaround to see if there is an issue detecting
Mesa version.

Bug: chromium:1187475
Change-Id: I6397f459cd58dba449913ef1c7ce897e8a06cbd1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3022222
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2021-07-13 14:37:12 +00:00