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

13984 Коммитов

Автор SHA1 Сообщение Дата
Le Hoang Quyen 6422d3b467 Metal: Fix 2D array texture's robust resource init
2D array texture's robust resource init didn't work due to
mtl::InitializeTextureContents() expects one slice at a time, however
TextureMtl::initializeContents() created entire layers index via
GetZeroLevelIndex() before passing to mtl::InitializeTextureContents().
Fixed by changing to GetLayerMipIndex() instead.

Bug: angleproject:2634
Change-Id: Ie8d80d927a987c2b393d913fda8288b6e06e97d0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494527
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
2020-10-25 15:46:29 +00:00
Le Hoang Quyen 9ff58e264a Metal: Implement sampler object & shadow compare mode
Note: GL_TEXTURE_COMPARE_MODE=GL_NONE is not supported on shadow sampler
for now.

Bug: angleproject:2634
Change-Id: I470bad6322e78ef1408e4334e1e778821df7cbf1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433332
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
2020-10-25 09:31:49 +00:00
Mohan Maiya f037cdc446 Check for precision match of uniforms only if there is static use
There are legacy apps that have uniforms declared with
different precisions across shaders. There is some wiggle
room in the ESSL spec to accommodate such cases as long as
the uniforms are not statically used in shaders. We choose
this lenient interpretation since it allows for more apps
to be compatible with ANGLE.

This change allows BADLANDS to progress past a black screen.

Bug: angleproject:4971
Tests: angle_end2end_tests
           --gtest_filter=GLSLTest_ES31.UniformPrecisionMatchValidation*
Change-Id: Icdd2056c8415803eb34f2840b0758e1acf53c23a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495493
Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-25 01:45:18 +00:00
Jamie Madill 23c12db266 Expand Mac XFB suppression.
TransformFeedbackTest.RecordAndDraw/ES3_OpenGL

Bug: angleproject:4992
Change-Id: I42118bba63e32901c3213f9a4ac5b87f2ab209f0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495698
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-24 21:39:08 +00:00
Jamie Madill 9990a8143f Suppress failing Windows 7 test.
ClearTestES3.ScissoredClearHeterogeneousAttachments/ES3_D3D11

Bug: angleproject:5237
Change-Id: I3f3c062e23d77b4621df13ea75f7910ed22ab983
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2496144
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-24 21:00:48 +00:00
Jamie Madill 259d14e5c8 Disable timing out Vulkan GLES 1 test.
This test is timing out on a Windows 7 config.

Test: GLES1ConformanceTest.AmbLight/ES1_Vulkan
Bug: angleproject:5234
Change-Id: I4c3ccdeb58d793952aaa44d4902dedf7ce192ec3
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2496142
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-24 18:09:08 +00:00
Le Hoang Quyen 37e84651a3 Metal: Partially implement EXT_debug_marker
Partially implemented to make it easier to debug.
Only debug group is supported for now.

Bug: angleproject:2634
Change-Id: I029dd4283790fb57a6964aad89c37d092e3378e5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433331
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-24 10:26:08 +00:00
Le Hoang Quyen 1c881dadd9 Metal: Implement glRenderbufferStorageMultisample(ANGLE)
Bug: angleproject:2634
Change-Id: Ia4dd477cfbad298994036705b43f3a5877e3c9cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433330
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-24 09:52:58 +00:00
Le Hoang Quyen 80d4901a79 Metal: Support integer textures.
Bug: angleproject:2634
Bug: angleproject:5154
Change-Id: Iffea26fe2c683557b4fa7c13fddf3523294b47d4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2433329
Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-24 09:18:18 +00:00
Shahbaz Youssefi 96714af885 Vulkan: Dirty pipeline and desc set after mid-RP clear with draw
If UtilsVk::clearFramebuffer issues a draw call on the currently open
render pass (as opposed to starting one itself), ContextVk would be
unaware of the fact that the graphics pipeline and descriptor sets have
been changed.

This change sets the necessary dirty bits for ContextVk to recover from
a UtilsVk::clearFramebuffer call.

Bug: chromium:1141040
Change-Id: I865220fb5b3b78bf4c6b6b2896e57d8a7490c270
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493184
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
2020-10-24 03:54:58 +00:00
Shahbaz Youssefi 62d010f9e5 Vulkan: Assert that attributes in shader info map are active
Attributes that are not active shouldn't have made it to the
ShaderInterfaceVariableInfoMap of gl::ShaderType::Vertex.  This change
turns a few ifs to ASSERT in SpirvVertexAttributeAliasingTransformer.

Bug: angleproject:4249
Change-Id: I3da4ea773eae20fe2f126b82f7790e9f2cab0bc1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491929
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-24 03:35:17 +00:00
Tim Van Patten e99b8bc07c Fixes to roll ANGLE into AOSP
Rolling ANGLE into AOSP requires the following fixes:

1.) Update scripts/roll_aosp.sh to not delete third_party/abseil-cpp.
2.) Update BUILD.gn to add a dependency on libnativewindow for
"angle_common".

Test: AOSP Presubmit
Bug: angleproject:5230
Change-Id: If97c44ce041e576edc7c0c43700030b4538e8ab5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495550
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2020-10-24 02:02:17 +00:00
Jamie Madill 2f7fc0f371 Tests: Remove standalone duplication.
Also cleans up some compiler warnings that crept in because of how
we structured the test sources in GN. We also no longer need special
handling for the test "main" files.

Must land after http://crrev.com/c/2495003 rolls into ANGLE.

Bug: angleproject:5124
Change-Id: I43ff91b5c8f00214886cd8ac2403702e5026a840
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495281
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-24 01:10:28 +00:00
Tim Van Patten 4953f03dff Revert "Link C++ histogram support into angle_perftests."
This reverts commit 7a0263547c.

Reason for revert: Breaks roll of ANGLE into AOSP:

ERROR at //testing/test.gni:76:5: Assertion failed.
    assert(_use_raw_android_executable || enable_java_templates)
    ^-----
See //third_party/catapult/tracing/tracing/BUILD.gn:35:1: whence it was called.
test("histogram_unittests") {
^----------------------------
See //src/tests/BUILD.gn:262:17: which caused the file to be included.
      deps += [ "//third_party/catapult/tracing/tracing:histogram" ]
                ^-------------------------------------------------

Original change's description:
> Link C++ histogram support into angle_perftests.
>
> This is the first step in uploading histogram data instead of a gtest
> special format. We  importing several new libraries:
>
> - tools/protoc_wrapper
> - third_party/protobuf
> - third_party/catapult (was already used for Android)
>
> No functional change. Only affects compilation. Protobuf support is
> disabled when not available.
>
> Bug: angleproject:5161
> Change-Id: Ie28d57d7e142c437ebd51463ce3e2cafd87468d1
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482294
> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
> Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>

TBR=ynovikov@chromium.org,bsheedy@chromium.org,jmadill@chromium.org

Change-Id: I62c4b926cbe82d10e460b28b5f864521e2b1f8ee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5161
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495549
Reviewed-by: Tim Van Patten <timvp@google.com>
Commit-Queue: Tim Van Patten <timvp@google.com>
2020-10-23 23:11:49 +00:00
angle-autoroll cbcb2f23eb Roll Chromium from e203e4bcf072 to 4787c9ad2595 (240 revisions)
e203e4bcf0..4787c9ad25

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 jonahr@google.com,jmadill@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/master/autoroll/README.md

Changed dependencies
* build: a9415691b8..41d615a966
* testing: d41923d558..36edd70447
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7874beb5c5
No update to Clang.

Bug: angleproject:5124,angleproject:5213
Tbr: jonahr@google.com,jmadill@google.com
Change-Id: I2f5ebf5c3734c1b4038aee0b986e4f250c6abf4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495488
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 22:46:47 +00:00
Jonah Ryan-Davis 6a35cadc51 Suppress VUID-vkCmdDraw-None-02698 validation
A bug in Vulkan-ValidationLayers is stopping changes from being rolled
into ANGLE. Suppress this warning for now, until the root cause is
addressed.

Bug: angleproject:5191
Change-Id: I7c6cb65055bdc7b2eb3679f26f09530b1cff3775
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495543
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
2020-10-23 22:19:47 +00:00
Jamie Madill 3186866563 Test Runner: Only run watchdog in child processes.
For single test execution we don't need to be running the watchdog
thread. This only serves to cause timeouts in slow running tests.

Adds a new method to keep the --batch-id argument in the list of
parameters so other functions can process them.

Bug: angleproject:5124
Bug: angleproject:5218
Change-Id: I958230149b7d79830802cd55f67f0190de607200
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495282
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 20:55:46 +00:00
Jamie Madill e86b425759 Vulkan: Refactor how finishToSerial() retires commands.
This cleans up some of the logic around command completion. We no longer
query each Fence in order after a finishToSerial call. Instead we clear
out all the commands that have been completed up to the latest Fence.

Also cleans up ordering code. Because we now have a linear ordering of
Serials we can validate the ordering is "good".

Attempt at solving a suspicious ASSERT firing on AMD Win7.

Bug: angleproject:5198
Change-Id: I7750eff7f8d3aff397e7880f997ad86c9bf7d7a8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490342
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-10-23 19:13:25 +00:00
Shahbaz Youssefi cb5c0b013c Vulkan: Drop RelaxedPrecision from aliased attributes
Take the following example:

    attribute mediump vec4 a; // location 0
    attribute highp   vec2 b; // location 0

    f(b)

This was previously translated to:

    attribute mediump vec4 a; // location 0

    f(a.xy)

That difference here is that b was previously highp, but a.xy is
mediump.  This change drops RelaxedPrecision from attributes so that
they are all highp.

Note that the temporary SPIR-V ids these attributes are loaded into
still retain their RelaxedPrecision decoration (if any), and the
precision of calculations in the shader is not increased by this
change.

Bug: angleproject:4249
Change-Id: Idca0fc667ad6e36ddf428b65ea03706272a9ed9c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488131
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-10-23 18:46:16 +00:00
Cody Northrop de3a718088 Vulkan: Reduce scope of clear workaround
Forcing draw for clear only appears to be needed on Pixel 2.

Test: angle_perftest --gtest_filter="*free_fire*"
Bug: angleproject:4836
Change-Id: I4446adc04a8e5cf7b0bfef68ec70122e847755a6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495484
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-23 18:28:56 +00:00
Jamie Madill 5ffd778e68 Make capture replay tests exectuable.
This makes them runnable directly on Linux.

Bug: angleproject:5134
Change-Id: Icf5ccf9d82b8cf09b16c5c60312e33752a9724e4
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495288
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-10-23 18:22:26 +00:00
Jamie Madill 33e30205d2 Vulkan: sRGB cleanups.
A few fixes to how we check for the sRGB override in the
TextureVk class. In at least one instance there was a potential
edge case where in syncState we might not create the Texture
with the mutable bit the second time through the function.

Bug: angleproject:5176
Change-Id: I4f1ca6e469b10514c3a0de3120be9ade62568084
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482292
Reviewed-by: Mohan Maiya <m.maiya@samsung.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 17:35:25 +00:00
Jamie Madill a7c16c2d12 Trace Tests: Print trace download progress.
As the hook runs, we'll now be printing each trace's
progress. This uses some tricks with Python's subprocess.

Bug: angleproject:5210
Change-Id: I4e776a89c2b3e06ba67f9a82969aa394b24208d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491104
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2020-10-23 17:10:19 +00:00
Tim Van Patten 5dcd29a6e5 Vulkan: Make DescriptorPoolHelper a Resource
Descriptor pools need to live as long as the descriptor sets that are
allocated from them. Using Serials while building a command to judge a
pool's lifetime is prone to errors, since a command's Serial value
isn't known until the command is submitted, leading to deleting pools
too early relative to when the descriptor set is actually used.

This CL updates DescriptorPoolHelper to inherit from Resource, so the
descriptor pools can be retain()'ed. This allows the Resource's counter
to indicate that a pool is in use until the command's Serial is known
and can be recorded to indicate when the command completes. This
prevents descriptor pools from being destroyed before the command
completes (while the descriptor sets are still in use), or even before
the command has been submitted. Destroying a descriptor pool resets all
of the descriptors that were allocated from it, which can trigger a
variety of VVL errors depending on when it's erroneously performed.

This CL also adds the necessary retain() calls for the descriptor pools.
In particular, the pools need to be retained each time a cached
descriptor set that was allocated from it is re-used. This is relatively
simple with the current design, since we always clear the descriptor set
caches whenever a new pool is allocated, so the descriptor pool binding
is always accurate.

Bug: angleproject:5030
Test: MultithreadingTest::MultiContextDrawSmallDescriptorPools()
Change-Id: I5fdeeb46159448dfd679d7169e423048348be5ab
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2437609
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-10-23 16:48:35 +00:00
Jamie Madill 7a0263547c Link C++ histogram support into angle_perftests.
This is the first step in uploading histogram data instead of a gtest
special format. We  importing several new libraries:

- tools/protoc_wrapper
- third_party/protobuf
- third_party/catapult (was already used for Android)

No functional change. Only affects compilation. Protobuf support is
disabled when not available.

Bug: angleproject:5161
Change-Id: Ie28d57d7e142c437ebd51463ce3e2cafd87468d1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482294
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 15:44:15 +00:00
Courtney Goeltzenleuchter cfd70489df Re-enable dEQP-EGL.functional.fence_sync.*
Tests appear to pass now. Going to be changing functionality in this
area so prefer to have them enabled.

Bug: b/154030730
Bug: angleproject:3271
Change-Id: I1c0ffe40b726943c146fa06aa16de79d434760bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493182
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-10-23 14:30:25 +00:00
Jamie Madill 614b5e4df0 Clean up test runner TODOs.
Bug: angleproject:3162
Change-Id: Ie0a137341c7a27a1981c9a39a8e07e437589520a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495280
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 13:58:10 +00:00
angle-autoroll 4791cf2cde Roll glslang from ea52b3c2d270 to 3b334b2b8e1a (1 revision)
ea52b3c2d2..3b334b2b8e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/glslang-angle-autoroll
Please CC jonahr@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/master/autoroll/README.md

Bug: None
Tbr: jonahr@google.com
Change-Id: Idf4f45652fb002b722ba5dc96a8ba7c4769211e0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495101
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 12:34:40 +00:00
Jamie Madill c8542d28cb Temporarily duplicate standalone tests.
This switches 'angle_*_tests' to be identical to
'standalone_angle_*_tests'. Once rolled into Chromium we can
then switch back to using 'angle_*_tests' and finally remove
'standalone_angle_*_tests' entirely.

Must land after https://crrev.com/c/2490987

Bug: angleproject:5124
Change-Id: I1f4794d429733a43113dcba6aaaba0c047607e50
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491932
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2020-10-23 12:16:10 +00:00
angle-autoroll 796a0bdd0c Roll SwiftShader from e02d8938821a to 8012e62471be (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e02d8938821a..8012e62471be

2020-10-22 srisser@google.com Update VkStringify to use vulkan.hpp to_string

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 jonahr@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/master/autoroll/README.md

Bug: None
Tbr: jonahr@google.com
Change-Id: I169d99b431bc10fa4670ca7e8a36c13d6edf8be0
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495103
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 12:15:20 +00:00
angle-autoroll ed489d17c1 Roll SPIRV-Tools from 6fac705e7616 to 69f07da41b3b (24 revisions)
6fac705e76..69f07da41b

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers from 3fdabd0da293 to 05836bdba63e

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/spirv-tools-angle-autoroll
Please CC jonahr@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/master/autoroll/README.md

Bug: None
Tbr: jonahr@google.com
Change-Id: I702e8cfb0b2fd10f06e5c58ccf526e64c5d24884
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495102
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 12:05:11 +00:00
angle-autoroll d54a551ee1 Roll Chromium from cb0c1533ad91 to e203e4bcf072 (25 revisions)
cb0c1533ad..e203e4bcf0

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 jonahr@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/master/autoroll/README.md

Changed dependency
* testing: 064aaa8346..d41923d558
No update to Clang.

Bug: angleproject:5124
Tbr: jonahr@google.com
Change-Id: Ie523a00c7b4f15c7975e7bec00162df50d64bd86
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493925
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 08:17:41 +00:00
angle-autoroll adc753dbbe Roll Chromium from 8832c373d22b to cb0c1533ad91 (272 revisions)
8832c373d2..cb0c1533ad

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 jonahr@google.com,jmadill@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/master/autoroll/README.md

Changed dependencies
* build: d76cb5ed61..a9415691b8
* testing: 8c8e6c1928..064aaa8346
* tools/mb: 3da11e35c1..9fb31b93b1
No update to Clang.

Bug: angleproject:5124
Tbr: jonahr@google.com,jmadill@google.com
Change-Id: Ibe3526562c15cb5ed6fe286148cebae43033634c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493924
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-23 05:48:40 +00:00
Courtney Goeltzenleuchter 097f307e75 Vulkan: Fix segv referencing contextVk
Tests dEQP-EGL.functional.fence_sync.* can cause SyncHelper::clientWait
to be called with a null contextVk which we were trying to deference to
get to the renderer. We have a pointer to the renderer already so just
use that.

Bug: b/154030730
Change-Id: If64ec2c960f39b893d2e47a11638d16f830aecfd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2493181
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-23 01:33:29 +00:00
Ian Elliott e89c8f7c36 Add run-time check in EVENT() to disable debug markers
To avoid a large performance impact from adding Vulkan debug-util
markers for every GLES entrypoint, the EVENT() macro needs a run-time
check that avoids constructing a ScopedPerfEventHelper object.

Test: angle_perftests -v --local-output --gtest_filter="TracePerfTest.Run/*nba*"
Bug: b/170249632
Change-Id: I422111cdf6f6f713800e7ac587e66582bd00359f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491009
Commit-Queue: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2020-10-22 20:58:18 +00:00
Alexis Hétu fbec291ef8 Allow rendering to half float in ES2 contexts when possible
According to the EXT_color_buffer_half_float spec:

"Dependencies on OES_texture_half_float

    If OES_texture_half_float is not supported, then all references to
    RGBA16F_EXT, RGB16F_EXT, RG16F_EXT, R16F_EXT, HALF_FLOAT_OES and
    half should be ignored.

    If OES_texture_half_float is supported, textures created with:

        <internalformat> = RGBA
        <format> = RGBA
        <type> = HALF_FLOAT_OES

    are renderable."

This fixes 4 viz_unittests when running with SwANGLE:
    All/GLI420ConverterPixelTest.ScaleAndConvert/0
    All/GLI420ConverterPixelTest.ScaleAndConvert/1
    GLScalerPixelTest.Example_ScaleAndExportForScreenVideoCapture
    GLScalerPixelTest.ScalesWithColorManagement

The original attempt at landing this change
(https://chromium-review.googlesource.com/c/angle/angle/+/2489726)
was reverted due to dEQP failures on the Metal backend. After some
investigation, it was decided to simply disable the 2 offending
tests for now.

Bug: angleproject:5174
Change-Id: Id1e382b72d91109e4718c729cc6c5f0a0f413d7d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491930
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2020-10-22 20:04:28 +00:00
angle-autoroll 88c6218c82 Roll Chromium from 72a62c652dc1 to 8832c373d22b (1033 revisions)
72a62c652d..8832c373d2

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 jonahr@google.com,jmadill@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/master/autoroll/README.md

Changed dependencies
* build: 2c9bdffb45..d76cb5ed61
* testing: 31fa90f083..8c8e6c1928
* third_party/abseil-cpp: 9c0fc6713c..fde3620a8a
* tools/clang: 4135c061fb..151bbd685f
* tools/mb: 9b04f810d4..3da11e35c1
* tools/skia_goldctl/linux: Chou-EJOehSH7VP2sMHb5CcVaudNGgiqt2COC7NHh74C..STGouE9nmPhPvUv1KVauwIovsjIba4yq1HobYOsm2moC
* tools/skia_goldctl/mac: nws_KpUBlR5-sGre16ugsXYgccD6ySMcUkozwiyzoa4C..zglqXfuaXqShJjRK_8fR8Fo2N-hczeJASDUh4Vy2s4gC
* tools/skia_goldctl/win: 7thhl6meG4eUWxxLq14JUg9yW0VQ2TTwYwWaZxkp3E8C..uchtgU5o7fKP3pU3wO7xE_MCNW7vkUEfaG4V2ehVOv4C
No update to Clang.

Bug: angleproject:5124,angleproject:5196
Tbr: jonahr@google.com,jmadill@google.com
Change-Id: Ie96d86434c610f79cb4292e987a3849019ceab54
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491108
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-22 19:20:16 +00:00
Cody Northrop 9c8da02650 Revert "Tests: Add FIFA Mobile trace"
This reverts commit 2e1091e0ef.

Reason for revert: Potentially flaky results, http://anglebug.com/5215

Original change's description:
>    Tests: Add FIFA Mobile trace
>
>    Test: angle_perftests --gtest_filter="*fifa_mobile*"
>    Bug: b/171421051
>    Change-Id: If50c6387a1a49fb6946d20279caf6470544a2b11
>    Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490279
>    Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
>    Reviewed-by: Jamie Madill <jmadill@chromium.org>
>    Commit-Queue: Cody Northrop <cnorthrop@google.com>

TBR=jmadill@chromium.org,syoussefi@chromium.org

Bug: angleproject:5215
Change-Id: I6a332b126c6c54f189fd451725957d288ab6b76b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491113
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-10-22 17:40:46 +00:00
Shahbaz Youssefi 0f2542e163 Vulkan: Validate SPIR-V transformer at link time
Using an ASSERT, the SPIR-V transformer is run at link time to catch
bugs in tests that link but don't draw.

Bug: angleproject:4249
Change-Id: Icbeeb6e968f9901ba003918b1dd1d2eef0792469
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488227
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-22 16:12:41 +00:00
Xiaoxuan Liu 883276cc0d Fix end2end tests VertexAttribute* failure
VertexAttributeTests used 'mediump' precision to sample ushort
with 65533/65534/65535 which exceed the range defined in ESSL Spec.
(Spec "4.5.2 Precision Qualifiers")

Change precision of attribute 'test' and 'expected' to 'highp'
for numbers that exceed the minimum range.

Bug: angleproject:5211
Change-Id: I01e5c999ec43d17a7390835d2ac88ce2bc0b4c5b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491621
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-22 15:46:30 +00:00
angle-autoroll c550e3a2b3 Roll Vulkan-Loader from 970c132746b1 to 91ce213a1d88 (3 revisions)
970c132746..91ce213a1d

2020-10-20 xantares09@hotmail.com Fix vulkan link to on cfgmgr32 case-sensitive fs
2020-10-20 rverschelde@gmail.com CMake: Fix libdir in pkg-config file, dehardcode includedir
2020-10-19 cstout@google.com Add Fuchsia support

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vulkan-loader-angle-autoroll
Please CC jonahr@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/master/autoroll/README.md

Bug: None
Tbr: jonahr@google.com
Change-Id: I06493f2d3d9c5b4803c5f6f8468b6e92d99d8a79
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491806
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-22 15:29:59 +00:00
angle-autoroll 5641e3c185 Roll SwiftShader from 84f5eeb6dd9b to e02d8938821a (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/84f5eeb6dd9b..e02d8938821a

2020-10-21 bclayton@google.com LLVMJIT: Fix memory leak
2020-10-21 natsu@google.com Update SwiftShader VK AHB to support generic gralloc
2020-10-21 amaiorano@google.com Fix when built against latest LLVM (11)

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 jonahr@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/master/autoroll/README.md

Bug: None
Tbr: jonahr@google.com
Change-Id: I9c0ae692a1a5a2cc3f27aa79e31c70033642bb8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2491807
Reviewed-by: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2020-10-22 12:12:19 +00:00
Alexey Knyazev 1c7f028451 Vulkan: Fix invalid clamping of ES3 clear stencil values
Added 3 new end2end tests

Bug: angleproject:5202
Change-Id: I95f9ffd989105f5bd3283676d6fa46e904503369
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488481
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
2020-10-22 07:49:29 +00:00
Shahbaz Youssefi d74754378f Vulkan: Support vertex attribute aliasing for matrix types
This change builds on vertex attribute aliasing SPIR-V tranformation for
non-matrix types to add support for matrix attribute types.  This is
done by turning every matrix attribute declaration into multiple vector
attribute declarations, and reusing the same mechanism for resolving
aliasing between non-matrix types.

Take the following example:

    attribute mat4 a; // location 0
    attribute vec3 b; // location 1

    attribute mat3 c; // location 1
    attribute vec4 d; // location 2

The shader is modified as such:

    attribute vec4 a_0; // location 0
    attribute vec4 a_1; // location 1
    attribute vec4 a_2; // location 2
    attribute vec4 a_3; // location 3

    attribute vec3 c_0; // location 4
    attribute vec4 d;   // location 5
    attribute vec3 c_2; // location 6

    mat4 a;
    mat3 c;

and in the beginning of main(), the following code is inserted:

    a = mat4(a_0, a_1, a_2, a_3);
    c = mat3(c_0, d.xyz, c_2);

The shader continues to use a and c as before.

Bug: angleproject:4249
Change-Id: Idfcb8c6037ca0c1f21de8203d7e2a1b66fed6e7e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488128
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-10-22 02:21:39 +00:00
Cody Northrop 2e1091e0ef Tests: Add FIFA Mobile trace
Test: angle_perftests --gtest_filter="*fifa_mobile*"
Bug: b/171421051
Change-Id: If50c6387a1a49fb6946d20279caf6470544a2b11
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490279
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-10-22 00:59:18 +00:00
Cody Northrop ad222d1c9f Tests: Add KartRider Rush+ trace
Test: angle_perftests --gtet_filter="*kartrider_rush*"
Bug: b/171337677
Change-Id: I9a248ecf51e296a2b894b0951538842a7efde046
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490277
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
2020-10-21 21:53:35 +00:00
Shahbaz Youssefi 3fb490a7b4 Vulkan: Faster check for vertex attribute aliasing
In preparation for matrix attribute aliasing support, where
CalculateAliasingAttributes would get a bit more complex.

This change adds a fast-check function to determine if there is any
aliasing at all.

Bug: angleproject:4249
Change-Id: Ib2aa08b2da29a194baa905ba8f9aa2cdef0ae2c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488127
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2020-10-21 21:22:25 +00:00
Cody Northrop 8feb5c8253 Tests: Add Marvel Contest of Champions trace
Test: angle_perftests --gtest_filter="*marvel_contest_of_champions*"
Bug: b/171334313
Change-Id: Ia1195a5647ad2805e3cabd23c15719eb1ebc3534
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2487764
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
2020-10-21 20:19:45 +00:00
Alexis Hétu 032431a1c6 Revert "Allow rendering to half float in ES2 contexts when possible"
This reverts commit 1dc0d3945e.

Reason for revert: Causes a failure on the bots. See: http://anglebug.com/5206

Original change's description:
> Allow rendering to half float in ES2 contexts when possible
>
> According to the EXT_color_buffer_half_float spec:
>
> "Dependencies on OES_texture_half_float
>
>     If OES_texture_half_float is not supported, then all references to
>     RGBA16F_EXT, RGB16F_EXT, RG16F_EXT, R16F_EXT, HALF_FLOAT_OES and
>     half should be ignored.
>
>     If OES_texture_half_float is supported, textures created with:
>
>         <internalformat> = RGBA
>         <format> = RGBA
>         <type> = HALF_FLOAT_OES
>
>     are renderable."
>
> This fixes 4 viz_unittests when running with SwANGLE:
>     All/GLI420ConverterPixelTest.ScaleAndConvert/0
>     All/GLI420ConverterPixelTest.ScaleAndConvert/1
>     GLScalerPixelTest.Example_ScaleAndExportForScreenVideoCapture
>     GLScalerPixelTest.ScalesWithColorManagement
>
> Bug: angleproject:5174
> Change-Id: If8623b1edbc8f0bac83513ea202ef49ad388101c
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2489726
> Commit-Queue: Alexis Hétu <sugoi@chromium.org>
> Reviewed-by: Geoff Lang <geofflang@chromium.org>

TBR=sugoi@chromium.org,geofflang@chromium.org,sugoi@google.com

Change-Id: Iab2df8ac563661fcf270425408b17e7bbe48a255
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: angleproject:5174
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2490820
Reviewed-by: Alexis Hétu <sugoi@chromium.org>
Commit-Queue: Alexis Hétu <sugoi@chromium.org>
2020-10-21 19:32:58 +00:00
Geoff Lang 25bbf5d75a GL: Use ANGLE_GL_TRY when setting pixel pack and unpack state.
Bug: angleproject:3020
Change-Id: Ifd36973d66c850d0d0520d9721ab9e5294489b39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2134424
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2020-10-21 19:30:25 +00:00