Commit Graph

18508 Commits

Author SHA1 Message Date
Antonio Caggiano
e0dd196a0e Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.

Re-land fixes link failure in systems with no libwayland installed.

Bug: angleproject:6902
Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-05-02 14:34:11 +00:00
Gert Wollny
ea9a2dbeac Capture/Replay: handle glGetVertexAttrib parameter value
Bug: angleproject:7153
Change-Id: I56cbe833268a6d1f6d184c90b7fbe1a345e5f012
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3614518
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2022-05-02 14:11:05 +00:00
Roman Lavrov
41adabc48c Use app data dir instead of /sdcard for writing qpa file
Appears to drastically reduce runtime variability. Example:

Max shard runtime (28m 15s) + overhead (10s): 28m 24s (shard #8)
Min shard runtime (3m 5s) + overhead (20s): 3m 24s (shard #6)

-->

Max shard runtime (4m 6s) + overhead (11s): 4m 17s (shard #0)
Min shard runtime (3m 7s) + overhead (10s): 3m 17s (shard #6)

--deqp-log-flush is enabled by default (only disabled for multi-process
execution http://anglebug.com/5157) and together with
--deqp-log-shader-sources which is also enabled by default results in a
huge number of line-by-line flushes degradng filesystem performance.
Example strace capture in a degraded state:

    [pid 21208] 10:55:51.194033 write(77, "</ShaderSource>\n   <InfoLog>", 28) = 28 <0.181028>
    [pid 21208] 10:55:51.375879 write(77, "</InfoLog>\n</FragmentShader>\n</S"..., 78) = 78 <0.179196>
    [pid 21208] 10:55:51.555790 write(77, "\" Description=\"Vertex shader com"..., 41) = 41 <0.177602>

~180ms *per line written* !!! (28, 78, 41 characters...)

Under normal conditions these are way down in the microsecond range:

    [pid 11412] 10:55:56.689894 write(72, "</ShaderSource>\n   <InfoLog>", 28) = 28 <0.000020>
    [pid 11412] 10:55:56.689957 write(72, "</InfoLog>\n</FragmentShader>\n</S"..., 78) = 78 <0.000026>

I think that the reason for this is some peculiarity of the /sdcard
filesystem which uses fuse:

% df -h /sdcard/chromium_tests_root/
/dev/fuse        50G  3.7G   46G   8% /mnt/user/0/emulated

As opposed to block/dm-N of the (non-app accessible) temp directory:

% df -h /data/local/tmp/
/dev/block/dm-9  50G  3.7G   46G   8% /data_mirror/cur_profiles

And the app data directory appears to be using the same filesystem:

% df -h /data/data/com.android.angle.test/
/dev/block/dm-9  50G  3.7G   46G   8% /data_mirror/cur_profiles

As far as I can tell the degradation of performance does not happen on
this filesystem despite the huge amount of small writes. Disabling deqp
log flushes when running on bots probably makes sense too but I'd like
to first confirm the impact of this CL separately.

Bug: chromium:1217662
Bug: angleproject:7242
Change-Id: I507e4c330fd4e1f4ce05f9768506f905e142f835
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615081
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
2022-05-02 13:25:51 +00:00
Antonio Caggiano
5b4f180cdb Fix formatting
Unrelated changes created by running "git cl format"

Bug: None
Change-Id: I880c7d50aead70353f22502d953efa7aa60ff5d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616882
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-05-02 12:23:31 +00:00
angle-autoroll
f1c5e2b114 Roll vulkan-deps from 7b51f5f85aad to 1cde45b8d7aa (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/7b51f5f85aad..1cde45b8d7aa

Changed dependencies:
* vulkan-validation-layers: 984ed30008..2d83cbf35b

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 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: I62cb3b0bea58563ff2f897d101cd80582b21e098
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3619898
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-02 11:04:32 +00:00
angle-autoroll
fd57d8f0c0 Roll Chromium from 3a1ff9044aec to 929311ac6298 (541 revisions)
3a1ff9044a..929311ac62

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 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: 7da32be821..35387279e4
* buildtools/linux64: git_revision:48b013c9d9debc0f5fc1dd71a257b3c38c5acb43..git_revision:53ef169800760fdc09f0773bf380fe99eaeab339
* buildtools/mac: git_revision:48b013c9d9debc0f5fc1dd71a257b3c38c5acb43..git_revision:53ef169800760fdc09f0773bf380fe99eaeab339
* buildtools/third_party/libc++abi/trunk: c055932162..c7888dd707
* buildtools/win: git_revision:48b013c9d9debc0f5fc1dd71a257b3c38c5acb43..git_revision:53ef169800760fdc09f0773bf380fe99eaeab339
* testing: c259b4a75c..6039be79b9
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..9ba02ee5ca
* third_party/depot_tools: 8a87603683..fccf35cb8e
* third_party/zlib: e28c5403fb..e53d3f018a
* tools/clang: 942772f588..75625c6906
* tools/mb: f9c72277fe..12653c4be0
* tools/perf: a8517e8784..ea7a03c31e
Clang version changed llvmorg-15-init-8945-g3d7da810:llvmorg-15-init-9074-gc62b014d
Details: 942772f588..75625c6906/scripts/update.py

Bug: angleproject:7200,angleproject:7246
Tbr: cnorthrop@google.com
Change-Id: Ia0f2cb96d5f51fe0b1bcca6524d159e7909c9c22
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3619895
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-02 09:19:21 +00:00
Gert Wollny
e55990e35d Capture/Replay: Handle arrays with uniform block indices
When we update the uniform block indices we have to take into accountg
that there may be arrays and that the indices of array elements can be
retrived by querying with an index. Consider a layout

layout(std140) uniform Data {
  vec4 plainData;
  vec4 arrayData[3];
} buffers;

Then the loop for updating the uniform block indices will see
 [ "plainData", "arrayData", "arrayData", "arrayData" ]
and we have to take care to add the array indices if they are
greaten than zero, otherwise we would always query the index
of the first array element.

Bug: angleproject:6180
Change-Id: I21f96ab49c1c33bc4024711b72df961377afea4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198881
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2022-05-01 16:00:40 +00:00
Gert Wollny
1aa4c120d6 gl_tests: Fix formatting
"git cl format" updated some formatting in code unrelated to
the change set.

Bug: None
Change-Id: I4f63db03328356964c2e7c3a9785affa1078a82b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613919
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
2022-05-01 15:59:52 +00:00
Shahbaz Youssefi
c7a9f0c6c4 Vulkan: Remove syncval suppressions no longer triggering
Bug: angleproject:6422
Bug: angleproject:6424
Bug: angleproject:6566
Change-Id: If4d6cf097108f71732d093f3debfc30475a3c90c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3612183
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-30 02:16:59 +00:00
angle-autoroll
e39dfe0fe6 Roll VK-GL-CTS from a22069b4e3b7 to 106df4122297 (1 revision)
a22069b4e3..106df41222

2022-04-29 quic_mnetsch@quicinc.com Merge pull request #314 from etra0/patch-1

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll
Please CC angle-bots+autoroll-info@google.com,cnorthrop@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: angle-bots+autoroll-info@google.com,cnorthrop@google.com
Change-Id: Ia6fea2a9d7524ce100ca1b02cf7546baa61c27e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616985
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-29 22:46:39 +00:00
Shahbaz Youssefi
3eb2bcf77b Vulkan: Fix syncval errors with DONT_CARE for unused attachments
DONT_CARE is a write operation for synchronization purposes.  ANGLE
doesn't synchronize depth/stencil attachments that are not written to,
as it uses the read-only layout.

This change makes sure LOAD/STORE_OP_NONE are used instead of DONT_CARE
for attachments that are not used, even if they don't have defined
contents.  This allows ANGLE to continue to not do additional
synchronization.

Bug: angleproject:5371
Bug: angleproject:5962
Bug: angleproject:6411
Bug: angleproject:6584
Change-Id: I539379aa34f6655f00e798e8c4a5c57f40f7a12d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3612182
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Charlie Lao <cclao@google.com>
2022-04-29 19:45:49 +00:00
angle-autoroll
3eb8919603 Roll Chromium from 1e97e6cd1c3c to 3a1ff9044aec (639 revisions)
1e97e6cd1c..3a1ff9044a

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 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: 8d186c298b..7da32be821
* buildtools: f0d740e4e2..113378f9b3
* buildtools/linux64: git_revision:ecec350e71ea4600f7bde967854e083fbc53a37f..git_revision:48b013c9d9debc0f5fc1dd71a257b3c38c5acb43
* buildtools/mac: git_revision:ecec350e71ea4600f7bde967854e083fbc53a37f..git_revision:48b013c9d9debc0f5fc1dd71a257b3c38c5acb43
* buildtools/third_party/libc++abi/trunk: a53022fa7e..c055932162
* buildtools/third_party/libunwind/trunk: 43a7a256a0..d8a47466e3
* buildtools/win: git_revision:ecec350e71ea4600f7bde967854e083fbc53a37f..git_revision:48b013c9d9debc0f5fc1dd71a257b3c38c5acb43
* testing: fd65c024d7..c259b4a75c
* third_party/android_deps: 1af344e3fa..61ba3de9aa
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ef89d1327c
* third_party/depot_tools: 381db68adc..8a87603683
* third_party/zlib: 0078980ac6..e28c5403fb
* tools/clang: 3c4a622d9f..942772f588
* tools/mb: a51dba1207..f9c72277fe
* tools/perf: 4d3e7e0884..a8517e8784
Clang version changed llvmorg-15-init-8609-g3254f468:llvmorg-15-init-8945-g3d7da810
Details: 3c4a622d9f..942772f588/scripts/update.py

Bug: None
Tbr: cnorthrop@google.com
Change-Id: I839822f59675f7626c0e2f57b63d0703aa8f2b36
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615827
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-29 19:11:59 +00:00
Brian Osman
31f8413860 Add option for Metal output to angle_shader_translator
Bug: angleproject:7254
Change-Id: Idbccae3aaf11043940c53f4239e402aaa8b240b1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615078
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-29 19:00:49 +00:00
Charlie Lao
394fb0d342 Vulkan: Don't take lock for getLastCompletedQueueSerial
getLastCompletedQueueSerial() is simply returning a uint64_t serial
number. There is no need to take a mutex lock. This CL uses atomic for
mLastCompletedQueueSerial and removed the lock as well as removed the
virtual function call. This also avoid the annoyance with mutex lock,
that if you call getLastCompletedQueueSerial in places that has other
lock held, you may end up with deadlock. This CL avoids that trouble all
together other than improves performance.

Bug: b/230759914
Change-Id: I9dc688d410e4c6bca7fc70ae4f9fe0c3acc2e005
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3607500
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2022-04-29 18:49:09 +00:00
Cody Northrop
5e4c141c23 Tests: Add GFXBench Driver Overhead 2 trace
Bug: angleproject:7249
Test: angle_perftests --gtest_filter="*driver_overhead_2*"
Change-Id: I29af5cd4afa442b223968f68ec24cd72a7b5bf90
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615612
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-04-29 15:52:22 +00:00
Lubosz Sarnecki
7184fe38c3 Tests: Add Jetpack Joyride trace.
Test: angle_perftests --gtest_filter="*jetpack_joyride*"
Bug: angleproject:7253
Change-Id: I4823e13ba4543ed19d91631de2cef21a320b813f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613925
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2022-04-29 14:10:39 +00:00
angle-autoroll
8b26c14c04 Roll SwiftShader from b92f7acb7e81 to adef92e7b4c6 (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b92f7acb7e81..adef92e7b4c6

2022-04-28 capn@google.com Fix CMake build using Clang 13 compiler
2022-04-28 capn@google.com Remove 'partial precision' intrinsics
2022-04-28 capn@google.com Run the MemorySanitizer pass after optimizations
2022-04-28 capn@google.com Revert to using LLVM's O0 pipeline for coroutines

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: I11f0b6599761bbc7f8d5d55c30b32d372668d0d7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615347
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-29 11:32:39 +00:00
angle-autoroll
2d3ad8ec6f Roll vulkan-deps from 1963b94c99e8 to 7b51f5f85aad (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/1963b94c99e8..7b51f5f85aad

Changed dependencies:
* spirv-cross: c52333b984..a9d23d7652
* spirv-tools: 671f6e633f..46492aa45a
* vulkan-validation-layers: 5c384fa7e0..984ed30008

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 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: I8fc9575edd7aa52e6d33a171381934a59af754a1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615625
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-29 10:56:48 +00:00
Gert Wollny
1c4c9fe959 Capture/Replay: Fix formatting
These unrelated changes were created by running "git cl format"

Bug: None
Change-Id: I5a263818c3a94c40993312716d5782c5b9beb595
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613909
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2022-04-29 08:38:58 +00:00
Brian Osman
2c58e7a5ba Reduce console spam from Metal shader translation
Skia is seeing this for every test, and it's polluting
the logs. Realistically, a developer only needs this
once per process.

Bug: angleproject:7155
Change-Id: Ied4df3af4024ec542c6a9fd8c33d36f4e82b69cd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611062
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-29 01:58:27 +00:00
Cody Northrop
437053a163 Revert "Make SPIRV optional for Metal backend"
This reverts commit 29287e1fc7.

Reason for revert:
Possible root cause of Mac failures http://crbug.com/1320588

Original change's description:
> Make SPIRV optional for Metal backend
>
> This allows clients (ie Skia) to build ANGLE without needing
> all of the additional Vulkan dependencies. Developer builds
> will continue to include both the direct and SPIRV paths, for
> debugging purposes.
>
> Bug: angleproject:7155
> Change-Id: I1c38ee19e747df8b25fd2f8e8efa3b420a4d7766
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605764
> Commit-Queue: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Auto-Submit: Brian Osman <brianosman@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

Bug: chromium:1320588
Change-Id: Id160118146dad1b8f1af40c60ddefd717516cd1d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3614527
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
2022-04-28 16:38:31 +00:00
Jamie Madill
f9729598a6 Revert "Fix commit ID gathering on Android builds."
This reverts commit 1835e5d895.

Reason for revert: Breaks Skia integration in linkImpl.

Original change's description:
> Fix commit ID gathering on Android builds.
>
> Android infra does not store the .git directory alongside the
> checked out code, instead using a gitdir directive to point
> elsewhere. This caused the commit_id script to fail, which
> could cause issues with disk-backed program caches on updates
> when the serialization format changes.
>
> This CL also makes it a build failure to fail to get the commit id,
> and removes the ANGLE_DISABLE_PROGRAM_BINARY_LOAD fallback (which
> was broken anyway due to not being used anywhere).
>
> Bug: b/206109660
> Test: Run script on Android infra, verify hash is gathered properly.
> Change-Id: Ie28dc9278b6fbd3dd4f09232c0a88d602fca6980
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3604710
> Commit-Queue: Doug Horn <doughorn@google.com>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Reviewed-by: Jamie Madill <jmadill@chromium.org>

Bug: b/206109660
Change-Id: I64ac0831a46b9e1ff2e2738624650d67d0609f3c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615009
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Doug Horn <doughorn@google.com>
2022-04-28 16:37:18 +00:00
angle-autoroll
c1d0e139d9 Roll vulkan-deps from 4f93dbdc6060 to 1963b94c99e8 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/4f93dbdc6060..1963b94c99e8

Changed dependencies:
* spirv-cross: d7cae5e7cd..c52333b984

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 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: I56488ff6081391fd8953869c89dc44df1a3e38d9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611918
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-28 12:18:48 +00:00
angle-autoroll
d5ceba0b44 Roll SwiftShader from f88fc3b53c52 to b92f7acb7e81 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/f88fc3b53c52..b92f7acb7e81

2022-04-27 capn@google.com Merge coroutine pass manager run into a single pipeline
2022-04-27 capn@google.com Skip optimization passes when generating debug info
2022-04-27 capn@google.com Validate LLVM IR before running passes

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: I99e766d644a0a4c08dda86d4d67dd73ebb62dee7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613155
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-28 10:58:38 +00:00
angle-autoroll
3e40692907 Roll Chromium from c7e51a124fab to 1e97e6cd1c3c (915 revisions)
c7e51a124f..1e97e6cd1c

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 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: 1323d36646..8d186c298b
* buildtools/linux64: git_revision:d0f8bc99e0584cd33ea8030441d58ee875af7842..git_revision:ecec350e71ea4600f7bde967854e083fbc53a37f
* buildtools/mac: git_revision:d0f8bc99e0584cd33ea8030441d58ee875af7842..git_revision:ecec350e71ea4600f7bde967854e083fbc53a37f
* buildtools/third_party/libc++abi/trunk: 7d9bbeb389..a53022fa7e
* buildtools/third_party/libunwind/trunk: fe26c4b100..43a7a256a0
* buildtools/win: git_revision:d0f8bc99e0584cd33ea8030441d58ee875af7842..git_revision:ecec350e71ea4600f7bde967854e083fbc53a37f
* testing: d0fbcee500..fd65c024d7
* third_party/abseil-cpp: 8a8842cb53..ae9f091e95
* third_party/android_deps: f7b1f51269..1af344e3fa
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..ef89d1327c
* third_party/depot_tools: 7feb245cf5..381db68adc
* third_party/zlib: 69bda632e1..0078980ac6
* tools/mb: b63fdb15ca..a51dba1207
* tools/memory: 4bec803ccb..ca7c1ec42a
* tools/perf: e77900edf8..4d3e7e0884
No update to Clang.

Bug: angleproject:7079,angleproject:7200
Tbr: cnorthrop@google.com
Change-Id: I9a7ea4452e54cbc43d7aedacc760b7c75ed1c40c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611917
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-28 09:27:26 +00:00
Charlie Lao
2a6e123b16 Vulkan: Move pruneOrphanedBufferBlocks to last
RendererVk::cleanupGarbage() should call pruneOrphanedBufferBlocks()
after clean up mSuballocationGarbage, so that we will be able to find
the orphaned buffer block being empty if mSuballocationGarbage actually
made it empty.

Bug: chromium:1318110
Change-Id: I0cc6e45c192f406e7bbb15c7427d30e06208dd06
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611648
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
2022-04-27 23:58:34 +00:00
Shahbaz Youssefi
266111a55d Vulkan: Fix SemaphoreCount best practice warning
Bug: angleproject:7231
Change-Id: Ifd02084887aca44aade96474a45f3060b276226e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603701
Reviewed-by: Ian Elliott <ianelliott@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 23:37:47 +00:00
Charlie Lao
1ef90012b3 Vulkan: Remove API access for mTotalBufferToImageCopySizen
Don't expose mTotalBufferToImageCopySize via API if it is unnecessary,
for better encapsulation.

Bug: angleproject:6354
Change-Id: If69a5a78cc40d54feee6f3474aef6292d60b89c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609016
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 22:46:37 +00:00
Alexey Knyazev
454efd1d54 Add forceDepthAttachmentInitOnClear frontend workaround
AMD on D3D11 skips depth buffer updates in some cases.

Bug: angleproject:7246
Bug: angleproject:7200
Change-Id: I27bbea30fbf4173470063a670b9c43a805286c39
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608092
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
2022-04-27 22:29:57 +00:00
Brian Osman
29287e1fc7 Make SPIRV optional for Metal backend
This allows clients (ie Skia) to build ANGLE without needing
all of the additional Vulkan dependencies. Developer builds
will continue to include both the direct and SPIRV paths, for
debugging purposes.

Bug: angleproject:7155
Change-Id: I1c38ee19e747df8b25fd2f8e8efa3b420a4d7766
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605764
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 21:03:37 +00:00
Shahbaz Youssefi
3b65b80379 Vulkan: Work around Qualcomm imprecision with dithering
On qualcomm, sometimes the output is ceil()ed instead of round()ed.
With ditering emulation affecting values, some dEQP tests fail due to
the excessive change in value when dithering bumps the value slightly
over to the next quantum.

In this change, a workaround is added to round() the value before
outputting it.

Bug: angleproject:6953
Change-Id: Iae7df5ca20055b4db3185c6153f3c0bf4ba07f68
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611064
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 19:47:13 +00:00
Jeff Vigil
6c24869183 Enable SINGLE_BUFFER with eglCreateWindowSurface
Enable core EGL feature for Vulkan using:
VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR

Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest

Bug: angleproject:7224
Change-Id: I3e85f932471f7b3c97bbc5c2f5314f25eb9b2867
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3610975
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 19:23:39 +00:00
Doug Horn
1835e5d895 Fix commit ID gathering on Android builds.
Android infra does not store the .git directory alongside the
checked out code, instead using a gitdir directive to point
elsewhere. This caused the commit_id script to fail, which
could cause issues with disk-backed program caches on updates
when the serialization format changes.

This CL also makes it a build failure to fail to get the commit id,
and removes the ANGLE_DISABLE_PROGRAM_BINARY_LOAD fallback (which
was broken anyway due to not being used anywhere).

Bug: b/206109660
Test: Run script on Android infra, verify hash is gathered properly.
Change-Id: Ie28dc9278b6fbd3dd4f09232c0a88d602fca6980
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3604710
Commit-Queue: Doug Horn <doughorn@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2022-04-27 19:18:47 +00:00
Roman Lavrov
c9794d6c03 Run a smoke test in each shard and crash on timeouts.
The smoke test (words_with_friends_2) typically takes only a few seconds
to run. Run it first to check that everything is working as intended. As
we know it's a short test, we can set a small timeout (60s) and fail
early in case something goes wrong. This will speed up tests failures
when something is completely broken.

I also changed the main shard run to crash when timeout is detected
instead of just dumping debug info as if the tests didn't finish in 10
minutes they're also unlikely to finish in the 20 minutes after which
swarming times out the shard.

Bug: angleproject:7242
Change-Id: Ia99ca4b2e1676d09b9ff7d67ab116aba94f66512
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611446
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
2022-04-27 19:01:15 +00:00
Yuxin Hu
80d50b9928 Add build arg to automatically attach renderdoc
Macro ANGLE_TEST_ENABLE_RENDERDOC_CAPTURE was defined
only for files under src/libANGLE, however, we need to
use this Macro in filed under src/tests/. Move the Macro
config from BUILD.gn to src/tests/BUILD.gn.
Also add a new gn arg angle_enable_renderdoc
to control enable/disable the Macro.

Bug: angleproject:6072
Change-Id: I3879015e9bdfe2530012ea39729a31c47129ce4c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609024
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 18:14:27 +00:00
Shahbaz Youssefi
7d31a47fc7 Vulkan: Optimize away eglSwapBuffers for single buffer surfaces
For single buffer surfaces, eglSwapBuffers serves two purposes:

- Switch to/from single buffer mode
- Implicitly issue a glFlush

Simultaneously, for single buffer surfaces, glFlush serves three
purposes:

- Submit the commands
- Call queue present (if necessary)
- Throttle the CPU

In this mode, ContextVk::flush() already redirects to the surface,
calling WindowSurfaceVk::swapImpl() which calls back to
ContextVk::flushImpl() (to submit the commands), calls queue present and
throttles the CPU.

If the application calls eglSwapBuffers(), the exact same thing happens
(i.e. WindowSurfaceVk::swapImpl() is called to the same effect).
Calling swapImpl() leads to an addition of the corresponding submit
serial to the "swap history".  The CPU throttling code always throttles
the CPU to the serial of two swaps ago.

Unnecessary calls to eglSwapBuffers() (when there is no command to be
flushed) in single buffer mode would thus lead to the CPU throttled to
the end of the last submission, effectively turning into a glFinish().

In this change, eglSwapBuffers() in single buffer mode, when not
switching to/from this mode, is redirected to glFlush() as it's
functionally equivalent.  Simultaneously, ContextVk now tracks whether
it has any pending commands for submission at all, and skips glFlush()
altogether if there are none.  Together, this results in the unnecessary
eglSwapBuffers() to become no-op.

Bug: b/229908040
Change-Id: I0e3b4a8b7eb4f6b0e0ed22260644825fc67dd330
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603841
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2022-04-27 17:57:37 +00:00
Charlie Lao
5c756bc1a1 Perf Tests: Compute GPU time periodically
If you specify `--fixed-test-time 30` while running app perftest and
watch for GPU memory allocation, you see GPU memory keeps growing. This
is due to we generate timestamp query for every frame, but don't
calculate the GPU time at the end of run. We accumulate all these
queries over the entire test run. Even though this is technically not a
leak, it does grow monotonically while test is running. This CL calls
computeGPUTime every 16 frames (steps) and changed the mTimestampQueries
to a queue structure and clean up the completed query as GPU time is
computed.

Bug: angleproject:7243
Change-Id: I283ee24c4835fe0fb4d15f8d1975c85b64e16443
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609011
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Charlie Lao <cclao@google.com>
2022-04-27 16:48:33 +00:00
Roman Lavrov
c402f002bd Android perf tests shards 20->6 (only --smoke-test-mode)
try 4470:
Max shard runtime (5m 14s) + overhead (19s): 5m 34s (shard #2)
Min shard runtime (4m 41s) + overhead (10s): 4m 51s (shard #1)
Total shard runtime (29m 21s) + overhead(1m 37s): 30m 58s

Bug: angleproject:6854
Change-Id: Ia1664bd56f502a81eaa4b2f0e35722b2ff5bea3b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605765
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2022-04-27 16:08:26 +00:00
Roman Lavrov
6930184efe Log runTests so that it shows up in logcat dumps.
04-27 14:41:32.303 11507 11538 I NativeTest: runTests: --list-tests
    04-27 14:41:32.321 11507 11538 I NativeTest: runTests finished
    ...
    04-27 14:41:34.742 11585 11615 I NativeTest: runTests: --gtest_filter=TracePerfTest.Run/native_trex_200 --verbose --calibration-time 2 --calibration --warmup-loops 2 --isolated-script-test-output=/sdcard/Download/temp_file-cbce720a15e62e25
    04-27 14:41:56.628 11585 11615 I NativeTest: runTests finished

Bug: angleproject:7242
Change-Id: I5c03501982d6b268c0dd83d71ce82080fb3c551a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611063
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Auto-Submit: Roman Lavrov <romanl@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-04-27 15:23:06 +00:00
angle-autoroll
c45aff4f27 Roll SwiftShader from 5f5faa3a2aad to f88fc3b53c52 (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5f5faa3a2aad..f88fc3b53c52

2022-04-26 capn@google.com Always enable MemorySanitizer instrumentation for setup routines
2022-04-26 capn@google.com Replace rr::Config with an integer optimization level pragma
2022-04-26 capn@google.com Implement ScopedPragma
2022-04-26 stha09@googlemail.com GCC: add explicit template instantiation

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: I25719dec252c5d565650112fb52d8fa19558a5c5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609802
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-27 11:47:37 +00:00
angle-autoroll
cc834907ff Roll vulkan-deps from f685346e2e51 to 4f93dbdc6060 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/f685346e2e51..4f93dbdc6060

Changed dependencies:
* vulkan-validation-layers: af9e2e43a0..5c384fa7e0

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 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: Id44c3cb4094de1878dce761aaf775681dcc22731
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609695
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-27 11:01:36 +00:00
Jeff Vigil
95c1ff52b1 EGL: Fix EGL_KHR_mutable_render_buffer
Fixes for eglSurfaceAttrib error cases.
Improve query for render buffer
Add test case to EGLSurfaceTest

Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest

Bug: angleproject:7134
Change-Id: I4fa568c9530312003dc17111be212bf5b66d97fb
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556088
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
2022-04-27 03:13:08 +00:00
Roman Lavrov
0c59b5d90d Log debuggerd $PID output when instrumentation gets stuck.
Bug: angleproject:7242
Change-Id: I2b12e94177bce65acf68e4420fd1fcabffdb993e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3607499
Auto-Submit: Roman Lavrov <romanl@google.com>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2022-04-27 01:18:16 +00:00
Yuxin Hu
fe2c82ad38 check integer overflow in Texture copyImage
The code that checks forceCopySubImage could run
into integer overflow error for these values:
sourceArea.x + sourceArea.width
sourceArea.y + sourceArea.height
With gn arg is_ubsan=true, these two equations
lead to crash.
Add the code to check integer overflow

Bug: chromium:1314268
Bug: angleproject:5246
Change-Id: I6dee98457a44797ffb806ef8bd05f052c9aaa733
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597713
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
2022-04-26 23:35:06 +00:00
Roman Lavrov
cdcf171530 Add missing result_skip and result_fail.
Missing result_skip results in tests missing from json.output in perf
CI builders. Not sure if the missing result_fail actually happens.

Bug: angleproject:6854
Change-Id: I0d70a93be0d595c45e23558345481e749ba128bc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606921
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
2022-04-26 20:06:46 +00:00
Gregg Tavares
1a144edfeb Metal:ReadPixels AMD Copy Texture to Buffer optimization
On AMD GPUs it's faster to copy a texture to a buffer
for read back than to read via a texture.

For reading from a normal texture 24-27ms -> 6-9ms
For reading from a IOSurface texture 17-20ms -> 7-10ms

Bug: angleproject:7117
Change-Id: I7c7f276a3121e87f5c52a1a4287d13203a6b1b37
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584423
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kyle Piddington <kpiddington@apple.com>
Commit-Queue: Gregg Tavares <gman@chromium.org>
2022-04-26 19:23:16 +00:00
Charlie Lao
6b9c5c8d1c Vulkan: Improve GetStorageMemoryType logic
This is follow up from previous CL. For discrete GPU
(preferDeviceLocalMemoryHostVisible is disabled), we will get
HostVisible memory if any map can be created on it. For non discrete
GPU, this CL also adds the check if the buffer will never gets updated,
we just use DeviceLocal memory without HostVisible bit.

Bug: angleproject:7047
Change-Id: I73bdc133badbf01c098db23563b30898d4d16a41
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602943
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Charlie Lao <cclao@google.com>
2022-04-26 18:42:46 +00:00
Cody Northrop
cbdefd9330 Roll chromium_revision 192db13f85..c7e51a124f (995097:996181)
Change log: 192db13f85..c7e51a124f
Full diff: 192db13f85..c7e51a124f

Changed dependencies
* build: 60cda7a32c..1323d36646
* buildtools: c2e4795660..f0d740e4e2
* buildtools/linux64: git_revision:0d6d1310d005cb9bace909cb8352e83113c6fc51..git_revision:d0f8bc99e0584cd33ea8030441d58ee875af7842
* buildtools/mac: git_revision:0d6d1310d005cb9bace909cb8352e83113c6fc51..git_revision:d0f8bc99e0584cd33ea8030441d58ee875af7842
* buildtools/third_party/libc++abi/trunk: e025ba5dc8..7d9bbeb389
* buildtools/third_party/libunwind/trunk: 1acfbbb474..fe26c4b100
* buildtools/win: git_revision:0d6d1310d005cb9bace909cb8352e83113c6fc51..git_revision:d0f8bc99e0584cd33ea8030441d58ee875af7842
* testing: 4b98991268..d0fbcee500
* third_party/abseil-cpp: b0f34841af..8a8842cb53
* third_party/android_build_tools/bundletool: zQILIUnCaQ93HTtR07m4ahlE9mrkkwks52L5vFaUaUUC..AqsPZpWJh-ZyGraHKlbH8XgjRnmyDmolX4HhwPEo9XUC
* third_party/android_deps: 7876d5194b..f7b1f51269
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..820618f8e6
* third_party/depot_tools: 5e49eda5c4..7feb245cf5
* third_party/protobuf: b3054f7a3a..dea66ed25b
* third_party/zlib: 32e65ef975..69bda632e1
* tools/clang: ea2f00c10b..3c4a622d9f
* tools/luci-go: git_revision:6da0608e4fa8a3c6d1fa4f855485c0038b05bf72..git_revision:2aa3d7e5e8662c5193059a490f07b7d91331933e
* tools/luci-go: git_revision:6da0608e4fa8a3c6d1fa4f855485c0038b05bf72..git_revision:2aa3d7e5e8662c5193059a490f07b7d91331933e
* tools/mb: fb3d891815..b63fdb15ca
* tools/memory: 087c7630a3..4bec803ccb
* tools/perf: c2a5ea3c68..e77900edf8
DEPS diff: 192db13f85..c7e51a124f/DEPS

Clang version changed llvmorg-15-init-7570-gba4537b2:llvmorg-15-init-8609-g3254f468
Details: ea2f00c10b..3c4a622d9f/scripts/update.py

TBR=cnorthrop@google.com,
BUG=None

Change-Id: I383174415b5fd092b01e54cabf3721d9e5d77281
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3607435
Auto-Submit: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-04-26 16:50:26 +00:00
Roman Lavrov
d0c8363e0e Dump logcat if instrumentation doesn't finish in 10 minutes.
Let's see if this helps us understand stuckness as described in
https://anglebug.com/6854#c46

Normally each instrumentation call takes way less than 10 minutes as we
run tests individually or in small batches. When stuck, runner times out
after 20 minutes.

Bug: angleproject:6854
Change-Id: I20074db0fb3e783555a530b9ecef3765f1911fd9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605763
Commit-Queue: Roman Lavrov <romanl@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
2022-04-26 16:38:47 +00:00
Roman Lavrov
ebfb9b9f00 Configure logging in perf and gold tests to include time.
Currently no timestamp is logged:
[I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd}
INFO:root:adb --version ...

Before switching to android_helper relative timestamps in seconds
were printed, set up by catapult. Timestamps proposed in this CL are
more consistent with outer logging but keep prefix short. Example:

[I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd}
I18:45:14.999999Z adb --version ...

Bug: angleproject:6854
Change-Id: I8ef7c9ae44eb5dba564a41456ce9417e3fe0f06c
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606913
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Roman Lavrov <romanl@google.com>
2022-04-26 16:33:45 +00:00