Log

Author Commit Date CI Message
Amirali Abdolrashidi aa6291aa 2023-05-08T15:49:15 Suppress VUID-vkCmdDrawIndexed-None-0784x * Suppressed the following VVLs * VUID-vkCmdDrawIndexed-None-07840 * VUID-vkCmdDrawIndexed-None-07841 * VUID-vkCmdDrawIndexed-None-07843 * VUID-vkCmdDrawIndexed-None-07844 * VUID-vkCmdDrawIndexed-None-07845 * VUID-vkCmdDrawIndexed-None-07847 * VUID-vkCmdDrawIndexed-None-07848 Bug: angleproject:8159 Change-Id: Id516d0a8e677b00b3f46a456d07386c5fd91d6dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514440 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang fbca2b29 2023-05-08T16:19:54 Metal: Build built-in shaders from source on the simulator Compiling the built-in shaders with iphonesimulator sdk generates the same shaders as on iOS which do not work on the simulator. Fall back to simply building them from source on the simulator. Bug: chromium:1385510 Change-Id: If6a3846fd06a4ff12c1e46c31f207e2a7b6c50bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4515521 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
angle-autoroll d7a684e9 2023-05-08T19:54:52 Manual roll vulkan-deps from 446f1da0d121 to e672f7dbab42 (2 revisions) Manual roll requested by abdolrashidi@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/446f1da0d121..e672f7dbab42 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/2189ad7a5a..01055c60cf 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 abdolrashidi@google.com,angle-team@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: abdolrashidi@google.com Change-Id: I13800ee8b23983d557c806cd876f8e74398e1015 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514776 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi 74d1da6c 2023-05-08T11:07:28 Add instruction for trace tests w/multiple devices * Added instruction on running trace tests when more than one device is available through adb. Bug: None Change-Id: I4522311d4ad3517634f9c34b7af8c546bf4665e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4509237 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev 9c376a02 2023-03-31T00:00:00 Metal: Implement ANGLE_polygon_mode Bug: angleproject:1791 Change-Id: Iea1e10751ad8e853b4fb209952488211cfa4bac4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497909 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev c710023d 2023-03-31T00:00:00 D3D11: Implement ANGLE_polygon_mode Bug: angleproject:1791 Change-Id: I17a1ec9222199d4afb2dbcba3d0219f0a37f6a67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4500079 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 7f04dc7d 2023-04-19T15:05:47 Reland: Metal: Embed precompiled default shaders. Compile all builtin shaders to an embedded mtllib to avoid the overhead of compiling them at startup. This reland adds ios simulator precompiled shaders. Bug: chromium:1385510 Change-Id: Ic8585ffe566875e705f2fb00f8e665e8a80797f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4512494 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
angle-autoroll 1a847d4a 2023-05-08T07:01:47 Roll Chromium from 16e9449c3c88 to d08108198321 (723 revisions) https://chromium.googlesource.com/chromium/src.git/+log/16e9449c3c88..d08108198321 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/54bd39c0c5..d609da478e * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/dd3595d173..a26ff314e9 * buildtools/linux64: git_revision:5a004f9427a050c6c393c07ddb85cba8ff3849fa..git_revision:3dadaf0ee3ee07d7c29ad926e1a42d90068d7e6b * buildtools/mac: git_revision:5a004f9427a050c6c393c07ddb85cba8ff3849fa..git_revision:3dadaf0ee3ee07d7c29ad926e1a42d90068d7e6b * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/737446fc52..f8279b0108 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/66967963e9..d5e79e117c * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/88bd83fe09..229ff3e232 * buildtools/win: git_revision:5a004f9427a050c6c393c07ddb85cba8ff3849fa..git_revision:3dadaf0ee3ee07d7c29ad926e1a42d90068d7e6b * testing: https://chromium.googlesource.com/chromium/src/testing/+log/7a97f0e3c4..74258afcd3 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/eec484b5a6..2248225726 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7924448af6 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/71ab1b77a7..4931c18599 * third_party/fuchsia-sdk/sdk: version:12.20230504.4.1..version:12.20230505.3.1 * third_party/r8: 7-lseJ9e9PfiZg_2LgyaUA4ru9NwaTGoDwYGMYP0BeYC.._FuL1VmaJnETpwNIaiuiSLxVNzzt0qXGmsfAck4CPCkC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/dc8628ce87..0377ee52d9 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/02f2a2edd4..5b4a9ede47 No update to Clang. Bug: angleproject:5223,angleproject:6430 Tbr: cnorthrop@google.com Change-Id: I319fdde69f4ff5b854a86f45c70175a2eb03cf77 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4511879 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 255c6738 2023-04-28T21:08:01 Vulkan: Fix flaky linux-asan-test failure with asyncCommandQueue Regression from this commit: Vulkan: Clean up CommandProcessor::queuePresent https://chromium-review.googlesource.com/c/angle/angle/+/4257927 Details: - `CommandProcessor::processTask()` handles `CustomTask::Present`; - It calls `CommandProcessor::present()` that assigns `swapchainStatus->isPending = false`; - `CommandProcessor` thread is suspended for a while...; - `WindowSurfaceVk::destroy()` calls `waitForPresentToBeSubmitted()`; - It sees that `swapchainStatus->isPending == false` and skips waiting; - `WindowSurfaceVk` (and `SwapchainStatus` ) instance is destroyed; - `CommandProcessor` thread resumes and checks `task->getSwapchainStatus()->lastPresentResult` - ASAN failure. The 460 bytes offset is `SwapchainStatus::lastPresentResult` member inside `WindowSurfaceVk` instance. Test that failed: ImageTest.ValidationGLEGLImageExternal/ES2_Vulkan_SwiftShader_AsyncCommandQueue ==27108==ERROR: AddressSanitizer: heap-use-after-free on address 0x61e0000eea4c at pc 0x7f98434e0e10 bp 0x7f98363c0a70 sp 0x7f98363c0a68 READ of size 4 at 0x61e0000eea4c thread T29 #0 0x7f98434e0e0f in rx::vk::CommandProcessor::processTask(rx::vk::CommandProcessorTask*) src/libANGLE/renderer/vulkan/CommandProcessor.cpp:664:59 0x61e0000eea4c is located 460 bytes inside of 2880-byte region [0x61e0000ee880,0x61e0000ef3c0) freed by thread T0 here: #0 0x5651c72a563d in operator delete(void*) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:152:3 #1 0x7f9843f4c8c9 in SafeDelete<rx::SurfaceImpl> src/common/angleutils.h:285:5 previously allocated by thread T0 here: #0 0x5651c72a4ddd in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:95:3 #1 0x7f9843a38599 in rx::DisplayVkXcb::createWindowSurfaceVk(egl::SurfaceState const&, long) src/libANGLE/renderer/vulkan/linux/xcb/DisplayVkXcb.cpp:99:12 Bug: b/269524271 Change-Id: Ie70bc9e2b89267653ddb6b3a30c1a67e22864f26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4491743 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 54532241 2023-01-19T15:45:29 Vulkan: Remove mUse related code from SyncHelperNativeFence Since adding `rx::vk::ExternalFence` class, waiting on `mUse` is almost the same as waiting directly on `mExternalFence`. Because `mUse` is no longer required to release the fence and to reduce code complexity, `mUse` related code paths were removed. Since `SyncHelperNativeFence` no longer using `mUse` no need to inherit from `SyncHelper`. Added `SyncHelperInterface` abstract base instead. Bug: angleproject:8115 Change-Id: I2aabbc905d833f8bf6db36b3be356d6db40349d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392880 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Mark Lobodzinski 577b6c8d 2023-05-05T10:49:04 Tests: Add Street Fighter IV CE trace Test: angle_trace_tests --gtest_filter=TraceTest.street_fighter_iv_ce Bug: b/281007960 Change-Id: I81da4b005c50e915090f342d50362e4f8f0ac1f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508393 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 76fa3806 2023-05-04T10:19:35 Vulkan: Expand BufferOnly path for VertexArray binding change VertexArrayVk has a fast code path for attribute change where the only change is buffer (i.e, no format or relativeOffset change). It will pass in bufferOnly to syncDirtyAttrib() call and will avoid invalidate graphics pipeline. This CL expands DIRTY_BIT_BINDING_n change and will also try to detect the bufferOnly case. This CL and crrev.com/c/4507978 together seeing Gfxbench driver overhead score improves 1.48% (from average 6804 before CLs to 6905 after CLs) on pixel 7 pro. Bug: b/277644512 Change-Id: I71da1b886bb26ba2629b83af3aeaba4d45c3d3c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4504919 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Charlie Lao <cclao@google.com>
Charlie Lao 086b6c20 2023-05-04T15:55:31 Vulkan: Simplify TransformFeedback buffer tracking Right now the buffers that used by transform feedback is tracked by mCurrentTransformFeedbackBuffers, which is angle::FlatUnorderedSet. With the QueueSerial numbers, this can be much simplified. This CL removes mCurrentTransformFeedbackBuffers. It adds a new QueueSerial variable called mCurrentTransformFeedbackQueueSerial, and is inavlid if no active transform feedback. Then check if a buffer is used by transform feedback is as simple as check if it is written by mCurrentTransformFeedbackQueueSerial. Since buffers are already tracked by queue serial, so there is no new tracking needed. It is simply a check if the buffer contains mCurrentTransformFeedbackQueueSerial or not. Bug: b/280889890 Change-Id: I54bdc4a0cfc7194a12d2aa0abdc67a3211949024 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507978 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov 961788fd 2023-05-05T11:35:38 Capture/Replay: reorganize trace-related gni Move trace-related code from gni/angle.gni to src/tests/angle_traces.gni Rename template angle_trace_library to angle_trace_libs as the idea is for it to build multiple libs. Name outside-of-apk lib group ${target_name}__unpacked_libs which is more consistent with how targets are usually named in gn, and makes the dependency explicitly tied to template instantiation. Bug: b/276474703 Change-Id: I316f2a549063b8ebae177f4ffc0d4a8de1942384 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508387 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Igor Nazarov 903d9fdf 2023-01-19T15:37:45 Vulkan: Implement ExternalFence for use in SyncHelperNativeFence `ExternalFence` allows concurrent usage in `CommandQueue` and `SyncHelperNativeFence` classes eliminating need of additional `vkQueueSubmit()` call. Waiting in `CommandQueue` on `QueueSerial` or `ResourceUse` will ensure corresponding state of the native FD (because `CommandQueue` will wait on the same FD instead of some other fence). After this change there will be only single `vkQueueSubmit()` call from the `SyncHelperNativeFence::initializeWithFd()` method. This CL and the follow-up is sufficient to fix the bugs below. Bug: angleproject:8115 Bug: angleproject:8117 Test: angle_end2end_tests --gtest_filter=EGLSyncTest.AndroidNativeFence_ExternalFenceWaitVVLBug* Change-Id: Ic562ecc71a95203454a1dc438589a13bcf3bff7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392879 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov e71207de 2023-01-18T13:39:58 Vulkan: Fixes in rx::vk::SyncHelperNativeFence class Issues: - Resource::mUse was not updated in initializeWithFd() method, making code paths, that checking for "mUse" a dead-code. - mFenceWithFd may be potentially destroyed while still in use. (Because mUse is not valid). - missing checkCompletedCommands() in getStatus(), that may cause infinite loop in the application. Bug: angleproject:8115 Change-Id: I857d785f564b809eb83417fe5f212f7d0f12c5b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392878 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Roman Lavrov 7d6d18e4 2023-05-05T09:48:19 Improve adb root handling If `id -u` returns 0, adbd is already running as root (convenient fast path for local dev and seems we have that on bots too) If `which su` returns something, we should be able to get root. If "su" is there but we can't get adb root, raise. Go back to up to 10 seconds wait. On my local device adb root is routinely taking ~4 seconds. adb root restarts adbd on the device so it's expected not to be fast. Bug: b/276742336 Change-Id: If720b9176ba18ebd9734c0b8288eabc5970b5ef8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508392 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Igor Nazarov 72f9add4 2023-05-03T15:30:33 Vulkan: Initialize mLastSubmittedQueueSerial to valid value Currently, ContextVk::mLastFlushedQueueSerial and ContextVk::mLastSubmittedQueueSerial are invalid after Context initialization. Although, invalid QueueSerial will always test as submitted and finished, this produce a edge case. In case of SyncHelper::mUse, we can not longer assert that mUse.valid() after submitSyncIfDeferred() call, because invalid mUse is now a valid case... This CL initializes both members to valid value, that will also always test as submitted and finished. This removes the edge case, and allow using assert in SyncHelper to check if everything works as expected. Bug: b/277644512 Change-Id: I6be71596ab7dca1026764756fba7b21b81524413 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4503485 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Roman Lavrov 3ad1d702 2023-05-04T15:57:43 angle_trace_tests_android_binaries: test -> group We don't need it to be a test to begin with. But I looked into it because test with use_raw_android_executable=True makes things really complicated due to the way this is implemented upstream: ''' this __dist target here https://crsrc.org/c/testing/test.gni;drc=acb6ab509901650450fc387c0d9f09eb6f3f3248;l=265 which uses create_native_executable_dist which copies files according to the list of libs: https://crsrc.org/c/build/config/android/rules.gni;drc=a8c26a11f6cf763a5e81b2bced40584a678b9b8a;l=94 which is actually generated not at build time but by gn gen (also called when editing gn args) and so the inputs are not the libs themselves but this file which only contains a list of file names so when libs change there is no change to the inputs of this rule.. so it doesn't get invoked and the copy doesn't happen ''' One caveat is we need to produce a list of .so libs as a data dependency for them to be picked up by isolate Bug: b/276474703 Change-Id: I375a5be8499f13311654244036e36c60d945c363 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507534 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Igor Nazarov e24f4519 2023-01-19T02:30:39 Vulkan: Add externalFence into submitCommands() Currently one-off fence in the `queueSubmitOneOff()` is used only in `SyncHelperNativeFence::initializeWithFd()` to submit external fence. Other `queueSubmitOneOff()` calls may use `QueueSerial` instead of a fence. Providing `fence` into `queueSubmitOneOff()` prevents tracking that submission with `QueueSerial`. Therefore using `mUse` to collecting `mFenceWithFd` as garbage will not work as intended. This CL removes `fence` from `queueSubmitOneOff()` and adds optional `externalFence` into `submitCommands()` instead. Providing `externalFence` will cause additional `vkQueueSubmit()` call: - first submission will submit everything as usual except using the `externalFence`. - second, will only submit internal `CommandQueue` fence for `QueueSerial` tracking. As the result of this CL, call to `initializeWithFd()` will always produce two (2) `vkQueueSubmit()` calls. Previously it may be one (1) or two (2) submissions. Future CL will reduce submission count to one (1). If add additional submission into `queueSubmitOneOff()` instead of `submitCommands()`, then maximum number of submissions will be three (3). Bug: angleproject:8117 Change-Id: I6f1ec12682aaab71bfc871e665fec2659df96b26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4392877 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
angle-autoroll df8733c9 2023-05-05T09:08:55 Roll Chromium from becaac9672a0 to 16e9449c3c88 (618 revisions) https://chromium.googlesource.com/chromium/src.git/+log/becaac9672a0..16e9449c3c88 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/1345fb9c5d..54bd39c0c5 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/fe9a4e4107..dd3595d173 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/9460fb138d..737446fc52 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/19470647da..7a97f0e3c4 * third_party/android_platform: https://chromium.googlesource.com/chromium/src/third_party/android_platform/+log/f0c7b47622..f312145c41 * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/5353fa6142..d8e55758cb * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..6b573b0676 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/dbcecc9017..71ab1b77a7 * third_party/fuchsia-sdk/sdk: version:12.20230503.3.1..version:12.20230504.4.1 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/9969814713..448305bbeb * tools/luci-go: git_revision:e91834850a06011c64eb9a24f317371194bde3de..git_revision:55cc876158c057cd64677f1a1a2573c36c6c3025 * tools/luci-go: git_revision:e91834850a06011c64eb9a24f317371194bde3de..git_revision:55cc876158c057cd64677f1a1a2573c36c6c3025 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/295d9239b1..dc8628ce87 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ce6519bca3..02f2a2edd4 * tools/python: https://chromium.googlesource.com/chromium/src/tools/python/+log/00ecbd0693..64dd0e593f * tools/skia_goldctl/linux: CxdbSDz7x0X2t_Dg2V1hC-j5REZM59AmMDtLZNg9J_8C..a-YJwLTxkjqd2RiPjLgNKQrPzZY4CwqYLxtiQmB1KM8C * tools/skia_goldctl/mac_amd64: 66xq4FM7P4vA4N6oUkuUIEHz8vHWRjxClUgkjPZ71pQC..UVEHL3UFZ4Zyc_SiQYiOWInJuMcA4GAcLMlCWyEH6W0C * tools/skia_goldctl/mac_arm64: d3aWqZUdjjbgmIsOh-iK7HRZKaYz672JkzWg-0BkauUC..AwMNPFd_J5v55oBqSbV3MzxaPtyLyLmtEA_e1KMQ_PcC * tools/skia_goldctl/win: 5HtHEYI8MUjySHqpU8-ewiaPfNEVcY0SamdPah6R0CYC..rZtqSPxHMFApdEuqDjW0FlpdEQJTl335JOkoHTawxtkC Clang version changed llvmorg-17-init-8029-g27f27d15:llvmorg-17-init-10134-g3da83fba Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/996981471300dc79bd41808d4b02bc44ee1112e7..448305bbeb6dfddd88b74a016c6aeeb16d6de1cd/scripts/update.py Bug: angleproject:6430 Tbr: cnorthrop@google.com Change-Id: Ifa152a1d4e8239666c070cf1353efe708938a0e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508558 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Cody Northrop dd7eb1d8 2023-05-04T14:07:44 Scripts: Fix non-root support in android_helper.py Test: angle_trace_tests on production device Bug: b/276742336 Change-Id: I7c1f33adb37d8109540c70ac402e43462c046cec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4504920 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop d925c5c9 2023-05-04T16:16:11 Revert "Metal: Embed precompiled default shaders." This reverts commit 9f6c9f6630b63f541f5fd875aef87ce2a26fd618. Reason for revert: iOS Metal tests broken downstream: https://ci.chromium.org/ui/p/chromium/builders/ci/ios-blink-dbg-fyi/4972/overview Original change's description: > Metal: Embed precompiled default shaders. > > Compile all builtin shaders to an embedded mtllib to avoid the overhead > of compiling them at startup. > > Bug: chromium:1385510 > Change-Id: I1c31ae0088babae01a9e42d63b3c2c30b65f4476 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450126 > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Reviewed-by: Quyen Le <lehoangquyen@chromium.org> > Reviewed-by: Kenneth Russell <kbr@chromium.org> Bug: angleproject:8152 Bug: chromium:1385510, chromium:1441754 Change-Id: I7f253f7aa14117b93d1e09ed61db0c4563fc9c3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4508064 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 1f672466 2023-05-02T16:13:13 Make export_targets faster Use temporary sets, then sort them is faster than sorting all the time. And a faster regex. ~1.5s faster presubmits on my machine. Bug: None Change-Id: Ieb4a9c35781ffba7ae0057086490489727b305ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507977 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov e350330d 2023-05-02T09:57:42 Fix EGLContextCompatibilityTest registration Before this CL these tests are not registered at all. Avoid test name duplicates by skipping configs. Bug: angleproject:8088 Change-Id: I0d9b8260bd2ed76bda7fb46e6a131c4d2624c55f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492920 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Mark Lobodzinski c687078a 2023-05-01T16:45:19 FrameCapture: Add GLES1 case for BlendFunc state init/reset A recent frame capture change added state init/reset for glBlendFunc/glBlendFuncSeparate calls and combined them to avoid complexity, but this caused crashes in GLES1 native trace playback. This CL separates handling of the two calls. Test: angle_trace_tests --gtest_filter=TraceTest.street_fighter_iv_ce Bug: b/280329971 Change-Id: I34d674e2fc051f5af70a60a24e5b65c5ce54fd49 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4494261 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Peng Huang 55df82e0 2023-05-04T15:23:08 Fix crash in std::stoi() std::stoi() will throw exceptions when the input is invalid, so change to use std::atoi() which doesn't throw exception. Bug: chromium:1401610 Change-Id: I188412363b26286003b5daf311e5725fe4c4d7e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507533 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Peng Huang <penghuang@chromium.org>
Shahbaz Youssefi 7fd01d03 2023-04-19T00:54:24 Vulkan: Throttle the CPU without holding the global lock CPU throttling goes through CommandQueue and is thread-safe. Performing it in an unlocked tail call allows other unrelated EGL calls to go through. Bug: angleproject:8135 Change-Id: Idb3841be5d8ea8c4b76217f6707be26b28ea39c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4444027 Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Roman Lavrov fdb2dcb1 2023-05-02T14:24:20 Gather auto_script 'inputs' and 'outputs' in parallel Get rid of chdir which breaks parallel execution due to global state. Makes dirty verification faster. auto_script runs scripts with args which can be slow (as scripts have imports) On my machine, this speeds up verification from ~6s to ~1.3s Bug: None Change-Id: I78227cc80be54b0901029a286b0f017d36348a71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4499820 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 1ad27152 2023-04-18T12:17:00 Switch angle_trace_tests scripts to android_helper out/Android/angle_trace_tests {args} replaces (cd out/Android; python3 ../../src/tests/run_angle_android_test.py {args}) changes this generated file: % grep angle_android_test_runner out/Android/bin/run_angle_trace_tests args = ['@WrappedPath(../../src/tests/angle_android_test_runner.py)', 'gtest', '--output-directory', '@WrappedPath(.)', '--wrapper-script-args', '--runtime-deps-path', '@WrappedPath(gen.runtime/src/tests/angle_trace_tests__test_runner_script.runtime_deps)', '--suite', 'angle_trace_tests'] android_helper.py is already what we use for running traces on bots (we don't invoke out/Android/angle_trace_tests when IsAndroid()) so this change affects only local runs Keep run_angle_android_test.py to be able to run other suites, but now it takes --suite instead of a positional arg (which is consistent with how scripts are invoked on CI) Bug: chromium:1441148 Change-Id: I5af10e8df7d9a651e0a9d52e47e3bce28d7a931b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4442006 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Justin Novosad fbff065c 2023-05-03T22:19:07 Replace GetResourceFromHashSet with map lookup Function GetResourceFromHashSet had linear time complexity because it was sweeping through the set until a resource with a matching ID was found. This change replaces hash sets with hash maps to get constant time lookup. This solves, among other things, O(N^2) time complexity for rendering scenes containing a large number of surfaces. Function GetResourceFromHashSet was consuming over 50% of all CPU time on the main thread of Chrome's GPU process while running the MotionMark 1.2 Images test. With this change, the benchmark score increases by 70% on an M1 MacBook running a PGO official build of Chrome. Bug: chromium:1435066 Change-Id: I895ac0141a91d324c63adec2c0efb8e030d9675b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505950 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Justin Novosad <junov@chromium.org> Reviewed-by: Igor Nazarov <i.nazarov@samsung.com>
Shahbaz Youssefi d6481cdf 2023-04-18T22:36:39 Vulkan: Make eglPrepareSwapBuffersANGLE thread-safe This function now only calls vkAcquireNextImageKHR without any further processing of its results. That is deferred to the following eglSwapBuffers call which does that under the share group lock. The vkAcquireNextImageKHR call, together with the allocation of its related semaphore and fence are protected by a fine-grained lock. mNeedToAcquireNextSwapchainImage is turned atomic to guard against races to call vkAcquireNextImageKHR from multiple contexts. Note that the latter is not currently possible, but will be once calling vkAcquireNextImageKHR is moved to the end of the render pass. Bug: angleproject:6851 Bug: angleproject:8133 Change-Id: If2eeab475b4acf0621fd930c43d9d86a78a9197b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4445495 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 2087fe01 2023-05-04T10:01:41 Roll vulkan-deps from 94976560d112 to 446f1da0d121 (11 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/94976560d112..446f1da0d121 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/dfc97740ff..bc6b2bc17a * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/7f1d2f4158..268a061764 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/a525dccbe8..2189ad7a5a * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/870a531486..bae9700cd9 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/71254bedee..ab6f4023be * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/631fde41b2..94f89255bc 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 angle-team@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: cnorthrop@google.com Change-Id: Ibed0395d18f93a573519d2f90c6aca1e5f3253df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505298 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 4c704c52 2023-05-04T10:01:14 Roll SwiftShader from b89ed2f23a03 to ecefa6c65969 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/b89ed2f23a03..ecefa6c65969 2023-05-03 stha09@googlemail.com IWYU: add cstdint for uintptr_t in llvm-10.0 Signals.h 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 angle-team@google.com,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 Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ie7e9bd406f585eccd3dcb8450791626e2f155110 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505116 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll f03ad027 2023-05-04T07:58:10 Roll Chromium from 70803179b4b8 to becaac9672a0 (552 revisions) https://chromium.googlesource.com/chromium/src.git/+log/70803179b4b8..becaac9672a0 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/64c99419f9..1345fb9c5d * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/cb7297fa0d..fe9a4e4107 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/d756fe5d80..9460fb138d * testing: https://chromium.googlesource.com/chromium/src/testing/+log/4f51cb92dc..19470647da * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/c7a5260448..eec484b5a6 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..2717171db9 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/f2da906faf..dbcecc9017 * third_party/fuchsia-sdk/sdk: version:12.20230502.3.1..version:12.20230503.3.1 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/56556e9bb6..9969814713 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/1c3d2fa970..295d9239b1 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/022202937e..ce6519bca3 No update to Clang. Bug: None Tbr: cnorthrop@google.com Change-Id: I46964252afc052633f1322c4643a69bf58635447 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4505297 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi cd171d2e 2023-03-28T14:58:57 Vulkan: Enable async pipeline cache compression * Enabled the feature after adding more header data, including original cache size, chunk index, and CRC. Bug: b/246683126 Change-Id: Idef85f0a6f9e0072fcb800aedb6b720cc88c46b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4378720 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi d0ee0197 2023-05-03T13:41:36 WebGL: Limit total size of private data ... not just individual arrays. Bug: chromium:1431761 Change-Id: I721e29aeceeaf12c3f6a67b668abffb8dfbc89b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4503753 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov aa1dc5da 2023-05-03T19:36:04 Revert "Vulkan: Simplify present history logic" This reverts commit 1dee7cad284dda0c7c3ca18c10d8b7764353c7b0. Reason for revert: error: SurfaceVk.cpp:784 (destroy): ! Assert failed in destroy (..\..\src\libANGLE\renderer\vulkan\SurfaceVk.cpp:784): fence.getStatus(device) == VK_SUCCESS Example builds: https://ci.chromium.org/ui/p/angle/builders/try/win-test/13341/overview https://ci.chromium.org/ui/p/angle/builders/try/win-test/13345/overview Original change's description: > Vulkan: Simplify present history logic > > Instead of marking `ImagePresentOperation` as corresponding to an older > swapchain, accumulate all present history in the `mOldSwapchains`. > > Keeping old Swapchain's `ImagePresentOperation` with Fences can lead to > multiple "old swapchains" lists. This may cause situations exceeding > the `kMaxOldSwapchains` limit. > > Keeping items with Fences may help cleanup resources faster, but I think > that it is not worth the code complexity. It also should be safe to > recycle Fences at the same time as the Semaphores (when the first image > is recycled). > > Also this CL may fix bug: > if (mPresentHistory.empty() || mPresentHistory.back().imageIndex == kInvalidImageIndex) > The above condition will always pass when using actual present Fences > (VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT). > > Bug: angleproject:7847 > Change-Id: I39d854b03733dcb976c6bd7eb5f848d0cbece5d6 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481251 > Reviewed-by: Charlie Lao <cclao@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Bug: angleproject:7847 Change-Id: Icf0cf5b12dd1efa682abebd83699b8d87dc07427 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4502778 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 2fec8ae8 2023-05-02T15:53:29 Vulkan: Handle inactive render pass in draw-based clear For simplicity, if a render pass is open for the current framebuffer but is not active, a new one is started in UtilsVk::clearFramebuffer. A future optimization could decide to reactive the render pass instead, but needs to check for whether that's possible (with a condition similar to what's found in ContextVk::handleDirtyGraphicsRenderPass) Bug: chromium:1440764 Change-Id: I727d4ecefc2bc0a1a9e399b8851c4cc830d20879 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4499765 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 64727601 2023-05-03T12:44:56 Manual roll vulkan-deps from 7873f429a5c2 to 94976560d112 (18 revisions) Cherry-picked from https://chromium-review.googlesource.com/c/angle/angle/+/4500931 https://chromium.googlesource.com/vulkan-deps.git/+log/7873f429a5c2..94976560d112 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/9c7fd1a33e..dfc97740ff * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/8e1001e938..a525dccbe8 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/18fafc6399..631fde41b2 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 angle-team@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: cnorthrop@google.com Change-Id: I9fe7700694ce5bae68a8de0f75e6c2531bb35ed3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4500929 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Igor Nazarov 1dee7cad 2023-01-17T18:01:49 Vulkan: Simplify present history logic Instead of marking `ImagePresentOperation` as corresponding to an older swapchain, accumulate all present history in the `mOldSwapchains`. Keeping old Swapchain's `ImagePresentOperation` with Fences can lead to multiple "old swapchains" lists. This may cause situations exceeding the `kMaxOldSwapchains` limit. Keeping items with Fences may help cleanup resources faster, but I think that it is not worth the code complexity. It also should be safe to recycle Fences at the same time as the Semaphores (when the first image is recycled). Also this CL may fix bug: if (mPresentHistory.empty() || mPresentHistory.back().imageIndex == kInvalidImageIndex) The above condition will always pass when using actual present Fences (VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT). Bug: angleproject:7847 Change-Id: I39d854b03733dcb976c6bd7eb5f848d0cbece5d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481251 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Cody Northrop 533cf9a4 2023-05-02T22:39:09 Vulkan: Suppress new VUID-vkCmdDraw-None VVL errors Test: angle_trace_tests --gtest_filter="*slingshot_test2*" Bug: angleproject:8151 Change-Id: Ifc26a57fe92b57c30f253f5bb491a1ac3932f2f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4500928 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 24844560 2023-05-03T08:10:05 Roll Chromium from 4c9976e5d118 to 70803179b4b8 (627 revisions) https://chromium.googlesource.com/chromium/src.git/+log/4c9976e5d118..70803179b4b8 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/26b89abb7f..64c99419f9 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/7f6b6fac63..cb7297fa0d * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/bcadf44b4f..d756fe5d80 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/05c5e65b61..4f51cb92dc * third_party/android_build_tools/lint: ZSkxAL8_7h9oDrnzrXhEq5YeRe4P5Y1qh1eQY0iWtCsC..uCylUrC5eRYlMPJJhaQVDtSIVVxyY78Rn1_VRuEl61gC * third_party/android_build_tools/manifest_merger: ys365zMawyT4G5W5lx5QYlkBTYDr8GUdTF1kPeF3pkYC..ySC3BNx98q7gghvjZBjXRXhn_vwg5qb5diTesW2i8OAC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/41123c305e..c225168a18 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..247560fd67 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/1398e4fc69..f2da906faf * third_party/fuchsia-sdk/sdk: version:12.20230501.3.1..version:12.20230502.3.1 * third_party/r8: tVFTXgyHbHbRUFR6AWNCWnxy98HagL_hRE1f5KLfEbsC..7-lseJ9e9PfiZg_2LgyaUA4ru9NwaTGoDwYGMYP0BeYC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/2f9ce8ce37..56556e9bb6 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/ad09606a4b..1c3d2fa970 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/7c6c15207c..022202937e No update to Clang. Bug: None Tbr: cnorthrop@google.com Change-Id: I64b533ccb1c76b206d3474a6720ce4472577b523 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4501378 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi a73e546c 2023-04-14T13:40:19 Vulkan: Add pending memory size for VMA images * Added implementation for vma::FindMemoryTypeIndexForImageInfo(). * Add pending memory allocation tracking for VMA images using the memory requirement from getMemoryRequirements() and the memory type index from the function above. Bug: b/218891184 Change-Id: I1c3d3a8f5f36eb57bd7a5a059aa3bf713b819831 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428535 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop dcc37e31 2023-05-02T13:22:18 Vulkan: Restore stencil write mask workaround for ARM Still has issues on latest drivers. Test: angle_trace_tests --gtest_filter="*pokemon_go*" Bug: b/279715714 Bug: angleproject:7556 Change-Id: I4d46cdc2b86da374413f97e45858e18022e0cc7b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4499032 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev b052a5bf 2023-03-31T00:00:00 Vulkan: Implement polygon mode extensions * NV_polygon_mode * ANGLE_polygon_mode Bug: angleproject:1791 Bug: angleproject:8132 Change-Id: I2beffdad0c1569546020b78a9c6d9b8ea87c2100 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4498687 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao 0561884e 2023-04-26T17:26:42 Vulkan: Dirty VertexArray binding bit if buffer storage change In crrev.com/c/3669603, we did optimization for black_desert_mobile that when vertex array is unbound, we remove vertex array from buffer's observer list to reduce overhead of observer notifications when buffer is been modified. To compensate for the lost notification, when vertex array is bound, we always assume every buffer that is bound to vertex array has been dirtied, for the simplicity at that time. This CL further the optimization of that CL. In this CL, I moved the dirty bit set into backend and improves vulkan backend by checking buffer's serial number and only dirty the binding if the serial has changed. Given this, now we can also remove all the non-current vertex array from buffer's observer list (previously it is heuristic based with a hard coded observer count limit). This and the previous CL improves asphalt_9 by ~1%. Bug: b/277644512 Change-Id: Ibc3f8e3df9fe70c6879e0b2bca86d8487a9dba73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481241 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 89a8ba7d 2023-04-25T17:08:42 Vulkan: Add bit mask vertex array buffer binding point. There are various places we are looping all vertex binding points. Right now it is always 16, even though most of them do not have any buffer bound. This CL adds mArrayBufferBindingBitMask, which is the bit mask tracking all binding index that has a buffer bound. Now we only need to loop for all bindings that actually have a buffer, which usually much less than 16. This CL also removes some redundant use of "gl::" name space. Bug: b/277644512 Change-Id: I30d053274839bfa7c56487651b95c62f2a2c67e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4478229 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 2ceb04e0 2023-05-02T10:45:11 Initialize display TLS at thread creation time Bug: chromium:1441754 Change-Id: I611c6f591f2a6d3439e3c5d1250e2fde996c0ecf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496673 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov d4aacb29 2023-05-02T10:39:47 angle_end2end_tests Pixel 6 shards: 4 -> 8 There are much more Pixel 6 bots now and even without the current slowdown we should be running this in more shards. Bug: angleproject:8150 Change-Id: Id688f27f77dcc4181e21a1d7b2b8c50fd0363278 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497730 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll 0d78cbe8 2023-05-01T10:01:03 Roll vulkan-deps from 4b61bdad813f to 7873f429a5c2 (45 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/4b61bdad813f..7873f429a5c2 Changed dependencies: * spirv-cross: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross.git/+log/fc9bee27f4..4faeb81f3f * spirv-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+log/cfbe4feef2..7f1d2f4158 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/25ad5e19f1..8e1001e938 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/8a397558c4..870a531486 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/07d1854c67..71254bedee * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/df10a2759b..b647be6419 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/86e3809a9d..18fafc6399 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 angle-team@google.com,ianelliott@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: ianelliott@google.com Change-Id: I3def7445e0677b8fefd102732c0a875160dbef72 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496325 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll acbba222 2023-05-02T07:59:37 Roll Chromium from fe2d690d4674 to 4c9976e5d118 (429 revisions) https://chromium.googlesource.com/chromium/src.git/+log/fe2d690d4674..4c9976e5d118 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/345dcdfdbf..26b89abb7f * testing: https://chromium.googlesource.com/chromium/src/testing/+log/baf37dbb78..05c5e65b61 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..247560fd67 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ce9bc414c0..1398e4fc69 * third_party/fuchsia-sdk/sdk: version:12.20230501.0.1..version:12.20230501.3.1 * third_party/r8: EY3UUuH4bTp3sn3Da79Wfu5qAQo4GWGifjruAPnqGjwC..tVFTXgyHbHbRUFR6AWNCWnxy98HagL_hRE1f5KLfEbsC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/fbc7772d39..ad09606a4b * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/54d900c07f..7c6c15207c No update to Clang. Bug: angleproject:5038 Tbr: cnorthrop@google.com Change-Id: Ib158f3b3092b525c56ac89311df3b7de3cf87ac2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4498302 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 1fc399c6 2023-05-01T22:29:35 Vulkan: Adjust VVL suppression after VU consolidation Bug: angleproject:8119 Change-Id: I42746d399841591e78114cb26c2e377e255e791e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492542 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 5c04f18a 2023-04-24T16:18:24 Vulkan: Remove DisplayVk param from ToEGL It's no longer used Bug: angleproject:3041 Change-Id: I5063152d1598aa5d40d94bbf5c643a1288589037 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4470387 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 144f2d2c 2023-04-24T12:52:27 Vulkan: Use thread-local space for EGL errors The assumption in anglebug.com/3041 that ANGLE is "single-threaded anyway" no longer holds. Bug: angleproject:3041 Change-Id: I613395c8003cad60764362d2776aaf7b6804b788 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4468107 Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 73f9cf00 2023-03-31T00:00:00 GL: Implement polygon mode extensions * Implemented polygon mode extensions on the OpenGL backend * Supported capture and serialization of the new commands and state * Added PolygonModeTest end2end tests Bug: angleproject:1791 Bug: angleproject:8132 Change-Id: I3bc08546a02f110dd739950129bee25ccc507bf6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492683 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi cd6a58f2 2023-04-18T12:45:10 Vulkan: Make eglPrepareSwapBuffersANGLE less special This function now uses the UnlockedTailCall mechanism so it doesn't require as much special-case code generation. This change does not fix the bug that this function is doing too much work without holding any locks. That will be done in a follow up. Bug: angleproject:6851 Bug: angleproject:8133 Change-Id: I77f4d514ff4aeef85bc1cc59214f7caa23aca7df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4443186 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev b7a5714f 2023-03-31T00:00:00 Add polygon mode extension stubs * Added NV_polygon_mode * Specified a portable polygon mode extension implementable on all ANGLE backends Bug: angleproject:1791 Bug: angleproject:8132 Change-Id: I018aaaf1fb43ec16910859b152049e02169ede91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492684 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang 9f6c9f66 2023-04-19T15:05:47 Metal: Embed precompiled default shaders. Compile all builtin shaders to an embedded mtllib to avoid the overhead of compiling them at startup. Bug: chromium:1385510 Change-Id: I1c31ae0088babae01a9e42d63b3c2c30b65f4476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450126 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 1328f2f3 2023-04-17T16:43:12 Vulkan: Destroy the surface without holding the EGL lock This change defers surface destruction to the end of the entry point that causes it so that it is done without holding the EGL lock. This works around a specific deadlock in Android. On this platform: - For EGL applications, parts of surface creation and destruction are handled by the platform, and parts of it are done by the native EGL driver. Namely, on surface destruction, native_window_api_disconnect is called outside the EGL driver. - For Vulkan applications, vkDestroySurfaceKHR takes full responsibility for destroying the surface, including calling native_window_api_disconnect. Unfortunately, native_window_api_disconnect may use EGL sync objects and can lead to calling into the EGL driver. For ANGLE, this is particularly problematic because it is simultaneously a Vulkan application and the EGL driver, causing `vkDestroySurfaceKHR` to call back into ANGLE and attempt to reacquire the EGL lock. Since there are no users of the surface when calling vkDestroySurfaceKHR, it is safe for ANGLE to destroy it without holding the EGL lock. Note that only eglDestroySurface and eglMakeCurrent may lead to the destruction of a window surface. Bug: b/275176234 Bug: angleproject:8127 Change-Id: I02dc52e53e150943457e3f503e7ef30469f96b05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428754 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov a88635c4 2023-04-28T18:54:25 Android logs also go to stdout/err, line-buffered if possible Currently logs like WARN() or INFO() only go to logcat, which doesn't make them visible in console. This change makes them go to both logcat and stdout/err. Fix android_helper choking on missing json data output when test crashes and test runner doesn't have a chance to produce that file. We still have the stdout/err in this case, so print it. However, a crash (such as SIGSEGV or __builtin_trap()) doesn't flush output so the non-flushed part of the buffer doesn't get in there. AngleNativeTest redirects stdout/err to a file which enables fully-buffered (stdlib) mode. Change this to line-buffered when stdout path is set to /data/ (/sdcard/ is slow) and use /data/data/com.android.angle.test/tmp/ as the temp path in android_helper. This makes e.g. FATAL() << "message"; show up in the logs in CI or local runs. This currently only applies to trace and perf tests, other tests will continue using fully-buffered /stdout/ as chromium's test_runner uses /sdcard/Download/ for temp files. Bug: b/276742336 Change-Id: Ia622c610f776f501223b0cca11d5ec1976eb9887 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493463 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov fbf0e025 2023-05-01T14:21:01 Re-enable angle_restricted_trace_gold_interpreted_tests Works again once libangle_trace_interpreter is handled the same way as other trace libraries. Bug: b/276742336 Change-Id: Idc55c502c05cabbc38b766823ddfaa92cf2144b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492537 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 84b2e9d1 2023-05-01T13:52:54 Capture/Replay: android_helper handles traces in/outside of apk * list files in apk using `aapt list` * determine lib_extension (.so vs .cr.so) based on a known lib name * determine traces_outside_of_apk based on libangle_trace_interpreter * update so libs handling to use these vars * also fixes an issue where libangle_trace_interpreter.cr.so wasn't copied to the device due to a missing check for .cr.so Bug: b/276742336 Change-Id: I5ccc6490ed3398668feec56c816dd65a444234cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4495326 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov f46f3908 2023-05-01T14:06:16 Capture/Replay: fix interpreter lib placed inside/outside APK libangle_trace_interpreter is a shared library loaded the same way as binary trace libraries, so they should all go together either inside or outside the APK. Before this change this lib would end up inside the APK when binary libs were configured to stay outside of the APK. Bug: b/276742336 Change-Id: I690d63dcec94893692d6838bb816f9ec2477dfe1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4495327 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 8be67007 2023-05-01T13:32:56 Capture/Replay: make failure to load a trace lib more clear Before this CL, the logs would point to inability to find SetTraceInfo, which is misleading as the actual issue is that the library wasn't loaded in the first place. Error handling is a bit obscure due to mTraceLibrary being set to a non-null object wrapping a null library so we have to check if getNative() is null. `loadError.empty()` can't be used to check this because it's getting set in case of success as well ¯\_(ツ)_/¯ Bug: b/276742336 Change-Id: I90f2184c35461c16d04d6bef6d921706c010fefd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4492532 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yiwei Zhang 059efd15 2023-04-27T18:37:05 Vulkan: use any available memory type for external For external memory import, compatible memory types are decided by the Vulkan driver since the memory has been allocated externally. There are usually special requirements against external memory. e.g. AHB allocated with CPU R/W often usage bits is only importable for non-device-local heap on some AMD systems. So if angle requests for device-local, it'd be unable to find a compatible memory type for import. This change updates to pick the first available type on the external fallback code path. Bug: b/279862309 Test: android.media.cts.DecodeAccuracyTest on venus atop radv Change-Id: I0fd5ceb6fe633f591cbcdb01d246803fe0130796 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4484422 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 2ee97f91 2023-04-27T15:43:03 Unconditionally enable append_aliased_memory_decorations_to_ssbo After the discussion with Khronos group on how to handle aliased ssbo in GL driver: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4321 https://gitlab.khronos.org/opengl/API/-/issues/183 it is the correct behavior to append aliased memory qualifier to SSBOs, if restrict memory qualifier is not specified. Unconditonally enable this feature for all hardware. Bug: b/266235549 Change-Id: I20c811710bb10f0de39de5707adab0262a46d296 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4485008 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Alexey Knyazev e96e919f 2023-04-24T00:00:00 D3D11: Implement multisampling shader extensions * OES_sample_variables * OES_shader_multisample_interpolation Bug: angleproject:8097 Bug: angleproject:8131 Change-Id: I8ea81725d30ab3a5db6254b897fe72dbe88739d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4484164 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll b7115be9 2023-05-01T10:01:13 Roll SwiftShader from f0d31e0f4846 to b89ed2f23a03 (3 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/f0d31e0f4846..b89ed2f23a03 2023-04-28 natsu@google.com Add Android host build support 2023-04-28 natsu@google.com UPSTREAM: Fix Android host build 2023-04-28 natsu@google.com Fix vulkan.pastel.debug build 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 angle-team@google.com,ianelliott@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: ianelliott@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I4903d4d1cee01bee3cca84e2e90852fa5ba777b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496212 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 56801373 2023-05-01T08:13:13 Roll Chromium from 82c53dbf916a to fe2d690d4674 (760 revisions) https://chromium.googlesource.com/chromium/src.git/+log/82c53dbf916a..fe2d690d4674 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/6726134eb9..345dcdfdbf * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/e6571d3d0e..7f6b6fac63 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/53dab5c548..bcadf44b4f * testing: https://chromium.googlesource.com/chromium/src/testing/+log/1b29d9ab4d..baf37dbb78 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..247560fd67 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/b5eff1ccff..ce9bc414c0 * third_party/fuchsia-sdk/sdk: version:12.20230428.0.1..version:12.20230501.0.1 * third_party/r8: Zk6_UgJ8ynvYExnTyZw4eai1GH2cpPmNgMx6rr5AKScC..EY3UUuH4bTp3sn3Da79Wfu5qAQo4GWGifjruAPnqGjwC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/3ef7ddea54..fbc7772d39 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3cb05723c9..54d900c07f No update to Clang. Bug: angleproject:6430 Tbr: ianelliott@google.com Change-Id: I0d9c435bec791672d8e11cf67bd908a8ae55e114 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4496245 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi f9a700ee 2023-04-27T14:15:56 Disable mutable texture upload for discrete GPUs A local case was observed for the trace "vainglory" on Linux, where it fails due to OOM on one of the memory heaps. * mutableMipmapTextureUpload is now disabled when discrete GPUs are used in order to migitate OOM for VRAM. * After this change, the heap usage for "vainglory" drops from ~3,794,862,080 to ~1,126,891,520. Bug: b/278600575 Change-Id: Ie09d0037ffaf28640c4e36c5fff5d329c3a3f9cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4458269 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang ae6b2d11 2023-04-25T14:23:30 Metal: Gracefully fail compilation of stencil blit shaders. ANGLE only supports stencil blits on Metal 2.1 and greater. Generate useful error messages and fail the blit gracefully when these shaders are not supported instead of asserting/crashing. Bug: chromium:1385510 Change-Id: I11df34d38f203c1498164def274135d8f1d14635 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4476346 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Scott Violet 3e281219 2023-04-27T14:52:18 Adds feature to output blob cache key and source for shader Bug: chromium:1423136 Change-Id: Ic03e1b9971b2f1417c0b2e95c8d3846f28a01572 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4480976 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org>
Scott Violet 059bfe89 2023-04-27T16:13:06 metal(ish): Adds platform function for logging cache hits/misses And adds call from metal. This way chrome can log overall cache stats. Bug: chromium:1423136 Change-Id: Iba5b3bd138adf15fe5e999d3dee0002f140edac1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4484260 Commit-Queue: Scott Violet <sky@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
angle-autoroll a52c37ba 2023-04-28T10:01:04 Roll SwiftShader from 3076b4c0d8ce to f0d31e0f4846 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/3076b4c0d8ce..f0d31e0f4846 2023-04-27 jif@google.com Disable LLVM_ENABLE_ZSTD for darwin in llvm16. 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 angle-team@google.com,ianelliott@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: ianelliott@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ica5672e90ce571fa8900247aae8a136a1364628e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4485587 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll d5eee882 2023-04-28T08:11:25 Roll Chromium from e055a80240d4 to 82c53dbf916a (663 revisions) https://chromium.googlesource.com/chromium/src.git/+log/e055a80240d4..82c53dbf916a 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/e20d81d4c4..6726134eb9 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/f841f2b2fd..e6571d3d0e * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/0e4617cf8c..53dab5c548 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/307bd16360..66967963e9 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/2795322d57..88bd83fe09 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d9db50a004..1b29d9ab4d * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/77418c40ae..c7a5260448 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..3606cfeb36 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/536c9b9662..b5eff1ccff * third_party/fuchsia-sdk/sdk: version:12.20230426.3.1..version:12.20230428.0.1 * third_party/r8: i333eZi1faIlPAW0TnIGfOcaq5ZQtOwIsxtneMv7Yd4C..Zk6_UgJ8ynvYExnTyZw4eai1GH2cpPmNgMx6rr5AKScC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/13a1a986ee..2f9ce8ce37 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ef5b7b39ff..3cb05723c9 No update to Clang. Bug: None Tbr: ianelliott@google.com Change-Id: Ie1c2f62efcbac706a9829a8a43b53838e21db974 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4485435 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Roman Lavrov adf21a92 2023-04-27T22:45:55 Revert "When asserts enabled, log validation errors as WARN" This reverts commit 362c70238251c3610a1668b9f4c91f422d7d7f24. Reason for revert: spams logs in Chrome wegbl conformance testing causing instability Original change's description: > When asserts enabled, log validation errors as WARN > > These messages are useful for debugging but INFO() doesn't get logged > at all (e.g. when using flags from linux-test CI) > > Bug: None > Change-Id: I7fc02e866fc304c1e925becff58b71345d34238b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4456067 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Roman Lavrov <romanl@google.com> Bug: chromium:1439591 Bug: chromium:1440881 Change-Id: I211ee710568a4162b04ffcc297c20efb67019acb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4480384 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 90539b10 2023-04-24T16:36:01 Vulkan: Clean up some of trace events CommandBuffer::begin/end/reset events are too fine grain. The trace event retireFinishedCommandsLocked already covers reset. Also made flushImpl generate event only if we did submit, if we end up early out, that is not interesting. Also add event for fenceWait, since that is quite important for performance investigation, sometimes an indication of bad synchronization. Bug: b/277644512 Change-Id: I7d2f6d0716a83bf3b88a9e590ddc042b038b347a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4471747 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Charlie Lao b875f47b 2023-04-24T11:11:03 Vulkan: Make mLastSubmittedQueueSerial reflect what it means Right now we always update ContextVk::mLastSubmittedQueueSerial and ContextVk::mLastFlushedQueueSerial when context becomes current, even though it does not make any submission. It was done it this way mainly for simplification (i.e, you will always see both queueSerial's index the same). But this also causes a performance cost when a mLastSubmittedQueueSerial is used to tag a resource. For example, if you insert a EGLSync right after makeCurrent, that EGLSync may get a queue serial number bigger than it should be, which will translate to longer sync wait time. This CL changes these two queue serial to exact what the name suggests, that it will only update if we made a "flush" or "submit" call. Bug: b/277644512 Change-Id: Ibe4c78985a3fe0726836d620202e5276894a8e7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4458532 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Mark Lobodzinski 1810995c 2023-04-25T13:09:27 Capture/Replay: Initialize MEC alpha test state Fixes Street Fighter IV CE rendering issues when capturing. Test: angle_trace_tests --gtest_filter="*street_figher_iv_ce*" Bug: b/278606770 Change-Id: Ifb44c45b19514e4cabed1e81be99bce5706ac4d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4475732 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Colin Blundell 3625b749 2023-04-27T08:19:05 [ContextEGL] Synchronize state only when first making current ContextEGL::onMakeCurrent() can be called when this context is already current, which introduces complexities for the case where this context is wrapping an external context. This CL ensures that in this case we save state from the native context only when first transitioning this context to be current. To test: Exercise the repro steps in crbug.com/1434657: No assert should go off. Bug: chromium:1434657 Change-Id: I9690a76917fcb6d0fa31361bfbd3766bb6074d41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4483695 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Colin Blundell <blundell@chromium.org>
Cody Northrop c3ae9ac5 2023-03-30T19:58:18 Tests: Add Monster Hunter Stories trace Test: angle_trace_tests --gtest_filter="*monster_hunter_stories*" Bug: b/265827643 Bug: angleproject:7557 Change-Id: I7b53eff28fcd891456a755c82be3dc1de12eb79b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4385780 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Igor Nazarov 1904410a 2023-04-26T19:37:04 Vulkan: Add missing ASSERTs to QueueSerial relation operators Bug: b/255414841 Change-Id: I46203a6f51bd43818cc8c136b47ed4420e7dd184 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4481249 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
angle-autoroll 2c066db6 2023-04-27T07:00:46 Roll Chromium from 0b6a55056c05 to e055a80240d4 (569 revisions) https://chromium.googlesource.com/chromium/src.git/+log/0b6a55056c05..e055a80240d4 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/db31cb950c..e20d81d4c4 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/01af4b3ae0..f841f2b2fd * testing: https://chromium.googlesource.com/chromium/src/testing/+log/3035b481eb..d9db50a004 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/3c6eb3447c..77418c40ae * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/b18da278a7..41123c305e * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..3606cfeb36 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6e714e6dfe..536c9b9662 * third_party/fuchsia-sdk/sdk: version:12.20230425.2.1..version:12.20230426.3.1 * third_party/r8: iFuVaazPwWVf3lFPwZbgAKcF-mHQhFetogi2J9b5ktYC..i333eZi1faIlPAW0TnIGfOcaq5ZQtOwIsxtneMv7Yd4C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/1d4b755ca4..13a1a986ee * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/95eb3fc1a0..3ef7ddea54 No update to Clang. Bug: None Tbr: ianelliott@google.com Change-Id: I5b41e6e5b49d99487c3463ddf54e30df4a14d7b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4483654 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Cody Northrop 5c0b4251 2023-04-25T19:58:03 Reland "Tests: Add Gacha Life trace" This reverts commit 55fbc2c502abc3d4265052eec865864f02cf8095 Relanding the trace now that we can support more traces on Android. Original change's description: > Tests: Add Gacha Life trace > > Test: angle_trace_tests --gtest_filter="*gacha_life*" > Bug: b/267382443 > Change-Id: I6bbfb28015bf0317ccdba699e08ce6bce51b4ce3 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4211589 > Reviewed-by: Roman Lavrov <romanl@google.com> Test: run_angle_android_test.py angle_trace_tests --filter='*gacha_life*' Bug: b/276474703 Change-Id: Ia7f3b65d19a779b8cb925f429437b6548c59f669 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477659 Commit-Queue: Ian Elliott <ianelliott@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi f4febc9c 2023-04-25T10:16:47 Vulkan: Remove generic syncval suppression about storage buffers Bug: angleproject:7125 Change-Id: I3778e82c90f9d546f4e3948894060af0173b7b84 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4471628 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Igor Nazarov ec04c40d 2023-04-24T23:12:09 Vulkan: Fix regression not calling mRenderer->notifyDeviceLost Change: Vulkan: Fix freeing not completed Secondary Command Buffers. https://chromium-review.googlesource.com/c/angle/angle/+/4334579 .. accidentally removed `mRenderer->notifyDeviceLost();` line from `ContextVk::handleDeviceLost()` method. This CL fixes that regression. Bug: angleproject:6100 Change-Id: Iba3c9df71399821ac1b05109e873abfe5dc02bad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4470307 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop c7905f0a 2023-04-25T19:55:06 Scripts: Update setup for restricted_trace_perf Bug: b/276474703 Change-Id: I99a6ef212f6584ecace786da2587a8d2ae34eaa0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477658 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Igor Nazarov 8b97c8d3 2023-03-31T15:54:40 Implement build option for load-time GlobalMutex allocation. Performance difference on S906B for 1000'000 `eglGetError()` calls. Before: 26.5 ms After: 23.8 ms (Assuming `angle::FastMutex2` is used). Potentially can be enabled for other platforms. Bug: angleproject:8101 Change-Id: Ic2037edaae6da82dbded71288bae250d7981e7d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4386408 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 45dd1324 2023-04-26T10:01:11 Roll SwiftShader from 23e97b79fb91 to 3076b4c0d8ce (3 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/23e97b79fb91..3076b4c0d8ce 2023-04-25 natsu@google.com Add back arm files to only arm targets 2023-04-25 natsu@google.com Split LLVM16 srcs based on target. 2023-04-25 natsu@google.com Fix "multiple rules generate <>.o" 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 angle-team@google.com,ianelliott@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: ianelliott@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I8d688df1b746e9dfe32ea5c459af2b95ef6732ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477643 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll d5d5b443 2023-04-26T08:12:18 Roll Chromium from f0378c0e540a to 0b6a55056c05 (687 revisions) https://chromium.googlesource.com/chromium/src.git/+log/f0378c0e540a..0b6a55056c05 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 angle-team@google.com,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: https://chromium.googlesource.com/chromium/src/build.git/+log/a9d28a095c..db31cb950c * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/539a6f6873..01af4b3ae0 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/bff81b702f..0e4617cf8c * testing: https://chromium.googlesource.com/chromium/src/testing/+log/ee4801b4e9..3035b481eb * third_party/android_build_tools/lint: 667xWoGhzEgkSGU0T6WsZwwXOg1PTUw0b1yjbLunR6kC..ZSkxAL8_7h9oDrnzrXhEq5YeRe4P5Y1qh1eQY0iWtCsC * third_party/android_build_tools/manifest_merger: 1g5VzjyIYFR1uY6iwEOLv8aZp-OQJQc5W2U-dPyg97IC..ys365zMawyT4G5W5lx5QYlkBTYDr8GUdTF1kPeF3pkYC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f3aabc07ce..b18da278a7 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..8efa1a98a1 * third_party/fuchsia-sdk/sdk: version:12.20230424.2.1..version:12.20230425.2.1 * third_party/r8: EasU4gRQz5fwXjPOM82KyQOTpv6FGp_Q7wUg1l94iHYC..iFuVaazPwWVf3lFPwZbgAKcF-mHQhFetogi2J9b5ktYC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/30d20734f5..1d4b755ca4 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/51cccb966c..95eb3fc1a0 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/b86965a405..ef5b7b39ff No update to Clang. Bug: None Tbr: ianelliott@google.com Change-Id: I692fe5b22539f6ba31d8b2639bcd493ea5bf6686 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4477721 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Alexey Knyazev d37c97d1 2023-04-17T00:00:00 Metal: Implement OES_shader_multisample_interpolation * Added support for sample qualifier and shader interpolation functions * Added MSL-specific AST transformations * Adjusted minimum fragment interpolation offset state query test so that accurate limits could be reported * Drive-by: Y-flip gl_SamplePosition adjustment * Renamed ANGLESampleMaskEnabled function constant to ANGLEMultisampledRendering to correctly reflect its usage Bug: angleproject:8097 Bug: angleproject:8131 Change-Id: I25c9f36487e29f05bb9fe874e146d06378fef975 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4440827 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Vikas Soni b5fa8728 2023-04-20T14:59:28 Add extension to skip texture renderability validation in ANGLE. Add a new extension to skip the texture renderability validation in ANGLE. Bug: angleproject:0000 Change-Id: Ia9e5a1eff233f5aced4706b7d3c183058d474c41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455549 Auto-Submit: vikas soni <vikassoni@chromium.org> Commit-Queue: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: vikas soni <vikassoni@chromium.org>
Cody Northrop 35461e60 2023-04-12T20:02:08 Android: Build traces outside of APK Our trace list has gotten too large for a single APK (2GB). To continue supporting compiled traces, we can now place the libraries in the test application's home directory, which is discoverable and executable without root. To build and run with all traces, use `angle_trace_perf_tests` as your build target, then use the local Android helper script: $ autoninja -C out/<config> angle_trace_perf_tests $ (cd out/<config>; ../../src/tests/run_angle_android_test.py \ angle_trace_tests --filter='*among_us' \ --verbose --local-output --verbose-logging \ --fixed-test-time-with-warmup 10) To continue using bundled libraries, specify your trace list in GN args using `angle_restricted_traces` and use steps that match other platforms: $ autoninja -C out/<config> angle_trace_tests $ out/Android/angle_trace_tests --gtest_filter='*among_us*' \ --verbose --local-output --verbose-logging \ --fixed-test-time-with-warmup 10 Bug: b/276474703 Change-Id: I3829cf7016e21894eee8890e2b0d527e8214f04e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4420279 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev e27759f9 2023-04-20T00:00:00 D3D11: Ignore sample mask and A2C for single-sampled rendering Also fixed alpha-to-coverage for single-sampled rendering and simplified sample coverage code in the Vulkan backend. Fixed: angleproject:8102 Change-Id: Ieea03dfdc13c6105ddf916dca6d0fea593eb3a62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455508 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 13935469 2023-04-25T09:58:42 Vulkan: Fix access mask of generateMipmap's blit Bug: angleproject:8143 Bug: angleproject:7125 Change-Id: I6e5b6cd1f445c2c41d4b78aeb368e30cc4c5354b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4475444 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Geoff Lang a2fceac2 2023-04-17T12:55:34 Prefer Metal over CGL for querying device registry IDs. This avoids loading the OpenGL framework when it will not be used. The Metal framework is already loaded unconditionally. Bug: chromium:1433697 Change-Id: I171f842f2245d974eb6798880a7fbaf336edecfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4434709 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev b494691d 2023-04-20T00:00:00 GL: Enable NV_shader_noperspective_interpolation on ES Although the extension requires ESSL 3.00, some drivers support it only in ESSL 3.10. Fixed: angleproject:4542 Change-Id: I2c50b521056f485a5986942ea882780b327844a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455507 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Alexey Knyazev 5c9821fd 2023-04-21T00:00:00 GL: Fix readPixels for snorm color buffers Bug: angleproject:8048 Change-Id: Ie4f6c5abb6d53c195f4bf460f179ae24fffd0102 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4464157 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang f1b8a29a 2023-04-21T14:37:23 D3D11: Fix instanced vertex streaming data copies. Fix the other usage of ComputeVertexBindingElementCount in the D3D11 vertex streaming code. It is possible to try to copy too much source data due to incorrect instanced count calculations. Bug: chromium:1425606, chromium:1433180 Change-Id: Ie393b1c0b1291cf2b5087341c9fba8c98343d7bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4459152 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>