This should make all sharts run at most one sample for each
test. This in turn should mitigate inter-run variance because
we'll sample from a wider pool of machines for each test.
Bug: angleproject:7738
Change-Id: Ied96235edff81c8ea6f3fb8ac0e4fb21d6254d4e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3942604
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This reduces the warmup trials from 2->1 and the trial time
from 5s -> 4s.
Old: (2 warmup + 3 trials) * 5s / trial ~= 25s per sample
New: (1 warmup + 3 trials) * 4s / trial ~= 16s per sample
The tests should run in about 2/3 the time as it took prior.
A future change will likely have to split up the tests so we
can run shorter shards in sequential groupings between tests.
Bug: angleproject:7738
Change-Id: Ic6c744be838174b61f4eb832189ccad14f89103d
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939917
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
This is an attempt to reduce utilization on the bots, which
are now taking too long and causing errors.
Bug: angleproject:7738
Change-Id: I1c576b2d0989240482d332712f7d93841e933902
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937051
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Auto-Submit: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This should force a recompile of modified files.
Bug: angleproject:7731
Change-Id: I52c607fdda97c09e557a9ac3144fa67de3a17ee7
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937048
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Changes 200 minutes to 120 minutes. Also applies the timeout
to the Pixel 4 perf tests which are now timing out with the
latest increase in warmup time.
Bug: angleproject:7738
Change-Id: Ib43d61cb218aac24a5d9ae190813256a72b9eccc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937050
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Changes introduced in CL https://crrev.com/c/3915180 caused an issue
when building Metal with TARGET_OS_SIMULATOR enabled. This fixes that
and a minor formatting issue that presubmit hook caught).
Test: build ANGLE with Metal renderer enabled on iOS.
Bug: angleproject:7573
Change-Id: I08baf64e3d37b97af76e9e04188836ed253d34b2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3939217
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Framebuffer fetch was mistakenly limited to the Apple2+ GPU families,
but Apple1 also supports programmable blending.
Bug: angleproject:7279
Change-Id: Ia5a63ac1cb6462a6299db12bfb67fea12f15bb8b
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3935458
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Instead of a single test shard running all samples for a test,
we run a single sample on different shards to produce a
combined measurement that can account for variance between
test machines.
Bug: angleproject:7671
Change-Id: I04bbd51de257f2f299783ce3bd65da3d9348c8dc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937044
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This script contains a lot of logic copied from Chromium
scripts that we don't need. This CL removes some of it.
Bug: angleproject:7671
Change-Id: I831c2620cf5d5d1325d51605122a6998fcf2d3c9
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3937043
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Don't initialize "vkCmdSetFragmentShadingRateKHR" before
creating VkDevice as it leads to a nullptr assertion in
RendererVk::canSupportFragmentShadingRate. Separate out
instance and device function pointer initializations.
Bug: angleproject:7172
Change-Id: I55b5b41313857a2861a197f17d7f88b71aec907f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3938443
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
* Added the attachment image and create info objects to be used
for imageless framebuffers created in getFramebuffer().
* New helper class for framebuffers in RenderPassCommandBufferHelper:
MaybeImagelessFramebuffer, which includes a framebuffer object, if
the framebuffer is imageless, and the image views. This is to make
sure that the args for render pass begin info will be correctly set
up according to the status of the used framebuffer.
* Refactored the collection of attachments in getFramebuffer() into
a new function, getAttachmentsAndImagesFromRenderTargets(). It also
returns their corresponding ImageHelper* objects used to create the
framebuffer (from their image properties).
* New struct: RenderTargetInfo; which keeps track of render targets
and whether resolve image should be used for the render pass in the
form of the enum class RenderTargetImage.
* Added a new arg to getFramebuffer(): resolveRenderTargetIn; to use
when there is a valid resolveImageViewIn.
* Without using the framebuffer cache, we would require to handle
the framebuffer destruction by adding it to the garbage instead
of releasing it. For example, FramebufferVk::destroy() now adds
mCurrentFramebuffer to the garbage.
* Added new framebuffer unit tests.
* Added tests where two textures with different attributes are bound
to the same framebuffer before drawing, one after another.
* Added test where a blit occurs from a multisample texture into a
non-zero level of a resolve texture, each bound to a separate FBO.
* Added a new perf test to compare performance for enabled imageless
framebuffers vs disabled. (Credit: cclao)
Bug: angleproject:7553
Change-Id: Iacdbd73aaa01cbb0e37abf01ae4892bdfdd4b12f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3827644
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Implements a subset of EXT_shader_framebuffer_fetch in the Metal
translator that is sufficient to support pixel local storage. Metal's
"programmable blending" feature is available on all Apple family GPUs
beginning with version 2.
Support for non-Apple GPUs will come later via readWrite textures,
which can also be coherent by annotating them with
[[raster_order_goup(0)]].
Bug: angleproject:7279
Change-Id: Ic74f6c0d21e87eb919e1f487163388d08d126857
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3916794
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
Reviewed-by: Gregg Tavares <gman@chromium.org>
When the user specifies a trial time, use this for the warmup
time instead of using the calibration time. This will give a
longer warmup time on our test infra and should help stabilize
perf testing scores on our bots.
Bug: angleproject:7671
Change-Id: I65fb8a7ae1f684d3f7834613d8341d17bd2df00f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3933315
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This is a reland of commit 1d8dce2587
New changes:
- fail softly on buggy drivers (which are part of the CI)
Original change's description:
> EGL: Implement EGL_EXT_image_dma_buf_import_modifiers
>
> This reverts Ifbb0a182171646df8161f6f42eafe2a476fea6b2 and implements
> the previously missing bits. Inspired by the corresponding Vulkan
> implementation.
>
> The extension is used by an upcoming Exo feature which was successfully
> tested with this patch, see
> https://chromium-review.googlesource.com/c/chromium/src/+/3857556
>
> Bug: angleproject:7664
> Change-Id: I951d1a787e1db3a77b19fcea6186b7aa0a29872f
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3904345
> Reviewed-by: Geoff Lang <geofflang@chromium.org>
> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Bug: angleproject:7664
Change-Id: I732fc9dad54366553987104fa035bde2afe08ecd
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3924350
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
cbf7ac7473..7903a06a3c
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 ianelliott@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: 1326123dbe..c34b59a3b6
* buildtools: e564697e6c..8d901f9a01
* buildtools/linux64: git_revision:cc28efe62ef0c2fb32455f414a29c4a55bb7fbc4..git_revision:b9c6c19be95a3863e02f00f1fe403b2502e345b6
* buildtools/mac: git_revision:cc28efe62ef0c2fb32455f414a29c4a55bb7fbc4..git_revision:b9c6c19be95a3863e02f00f1fe403b2502e345b6
* buildtools/third_party/libc++/trunk: 7261e95e51..27c4bb6c70
* buildtools/win: git_revision:cc28efe62ef0c2fb32455f414a29c4a55bb7fbc4..git_revision:b9c6c19be95a3863e02f00f1fe403b2502e345b6
* testing: 32e58ce34c..6ed9a5cc4a
* third_party/abseil-cpp: 751b72a8c1..2eecb3e113
* third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..0c709a95ed
* third_party/depot_tools: 2c54a19bd0..99c8282eb5
* third_party/fuchsia-sdk/sdk: version:9.20221004.1.1..version:9.20221005.2.1
* third_party/r8/d8: 0ji9wClrgOUJelQ_489AiysBnUebh6jZLyQU8BSZQo0C..C5fVAulygxp-vnd9QQ9555s4drK-wMwSthIIcDX0N-wC
* tools/clang: 5fa4996834..14ceacc495
* tools/luci-go: git_revision:4fd960efe8027d39520e9aea3bbc8d669b53218f..git_revision:9b6501cd8b61afbb92c76207dfd2594606a4b4d1
* tools/luci-go: git_revision:4fd960efe8027d39520e9aea3bbc8d669b53218f..git_revision:9b6501cd8b61afbb92c76207dfd2594606a4b4d1
* tools/mb: af67e99541..186c5f3430
* tools/perf: 572d9dcf87..5a0113e764
* tools/skia_goldctl/linux: vCe9K2hrd7rulzEscCqmJ73IvKvUMAFoedwTMZ2tyOEC..vvnmipanCNz0xZWcZxMxqF8Dm17k5IzoIIuSAxayctEC
* tools/skia_goldctl/mac_amd64: n_JzdshI5mmavD9RQUw_r4Wod2s3q6WWySo2hoFBA4YC..IvvIkJXPEctNxoRBIUUUuHSJN0vsFTR9XgTza8JoCngC
* tools/skia_goldctl/mac_arm64: oyvITC73Vi_A8AzxypnanjLCP0FWKOUp4O82SKljngUC..PobY7qdsILEzxp0nSF8_mIJNJpPQiFs2mtNqOXLZlAYC
* tools/skia_goldctl/win: mwncd-pNoe2LQDqPamvkmkqvSBhPh4QwWEV65ny5K-cC..mMto2aiE2BsVX1RoY_FYEPJ7ph496TgwksEHvbcwQJsC
Clang version changed llvmorg-16-init-6457-g20a269cf:llvmorg-16-init-6578-g0d30e92f
Details: 5fa4996834..14ceacc495/scripts/update.py
Bug: None
Tbr: ianelliott@google.com
Change-Id: I3820f2999bc64a12b70bdd63414bdbabcc734fe1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936581
Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
When combined with advanced blend (or framebuffer fetch for that
matter), MSRTT attachments could be used as input attachments. This
change fixes the missing usage bit.
Bug: angleproject:7739
Change-Id: I2190e4a6e534e120357dd68189fb9de07b6c54fa
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936444
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
This makes it harder to debug as the disassembly uses raw ids.
Additionally, the generation of friendly names itself is costly.
On GLES1's TexCombine test, this change reduces run time by ~7%.
Bug: angleproject:6644
Change-Id: I47e6752cd709733c49915dd374c18f5438c0bfdf
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3926038
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Now that the application-facing API is implemented, we don't have to
rely on ES 3.1 anymore. Expose and test the extension on ES 3.0.
Bug: angleproject:7279
Change-Id: I5635620b9088201c20bafd283813092a329225d6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3915327
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Dalton <chris@rive.app>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Chris Dalton <chris@rive.app>
set preferDeviceLocalMemoryHostVisible based on the
host visiable device local and device local heap memory heap size.
Bug: b/246909451
Change-Id: I1e63931baceda02396b0eb8f24671949920ac2a5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3934479
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Reviewed-by: Mateusz Przybylski <mprzybyl@google.com>
In order to get the most "real world" numbers possible, we're going
to start running with clocks unlocks on Pixel devices. To avoid
thermal throttling, allow for a pause between each test.
Test: restricted_trace_perf.py
Bug: angleproject:6970
Change-Id: If3f813cf1eadab6ea56122a3945f694eed79ed9a
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936965
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
With persistent shader caching enabled, we now need to run the trace
tests exclusively in "native" mode, with ANGLE as the driver. The
cache is provided via the EGL_ANDROID_blob_cache extension, and it
is only enabled using Android's EGL loader.
Test: restricted_trace_perf.py
Bug: angleproject:6970
Change-Id: If791bfe199217dcc80105b55d8769fe43ffd9739
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3868310
Reviewed-by: Charlie Lao <cclao@google.com>
Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
This halves the amount of time spent running the tests on
desktop platforms. It also reduces the number of shards used
on desktop platforms, to reduce resource utilization. It also
bumps up the test timeout to keep from getting infra errors.
Bug: angleproject:7738
Change-Id: Ie487c06452a39bb9ad1fe29b0d682e9c1bf297d5
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3936448
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
* Removed the render pass serial reset in the function where the
current framebuffer is released. (left over from a prior CL.)
Bug: angleproject:7553
Change-Id: I61b4a12ac8957f6e1dcd4bf0f4e233c068736dff
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3931901
Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>