Log

Author Commit Date CI Message
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>
Shahbaz Youssefi 1acc6d40 2023-04-21T17:03:49 Vulkan: Use Android TLS for *valid* global context ... instead of just global context. This means that the majority of calls which call GetValidGlobalContext() will be faster (because they don't need to check for context loss). Bug: angleproject:8135 Change-Id: Ia91f8fadb5799088542c58d417f31c3e5028b3e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4454769 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
angle-autoroll 7ec05fb8 2023-04-25T11:03:35 Roll SwiftShader from dd55e592406d to 23e97b79fb91 (2 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/dd55e592406d..23e97b79fb91 2023-04-25 bclayton@google.com Fix offsets when texture sampling / fetching 2023-04-24 jif@google.com [LLVM16] Fix crash when findLSB is called with 0. 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: I489f185b82bad1c8358e5b6e855e50e0f37058ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4472453 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 97c2cbd6 2023-04-25T08:51:16 Roll Chromium from c7304c21065f to f0378c0e540a (682 revisions) https://chromium.googlesource.com/chromium/src.git/+log/c7304c21065f..f0378c0e540a 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/61c4b10212..a9d28a095c * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f882a7628e..ee4801b4e9 * third_party/android_sdk: https://chromium.googlesource.com/chromium/src/third_party/android_sdk/+log/2f8d9cdc42..5353fa6142 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..cae7ec667d * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/b5cec8c867..6e714e6dfe * third_party/fuchsia-sdk/sdk: version:12.20230424.0.1..version:12.20230424.2.1 * third_party/kotlin_stdlib: gizyEP29NQpAimwviO2pgSrqvx0YgAvSUNc5V6hvfroC..5vxa94PP6aaNePK9IF8ZwAYbDA-08mk4nkPED5CMbFoC * third_party/r8: mu27kPnuYTyTcrYhwSspdFJzOk80SoL06gL4moSrRX0C..EasU4gRQz5fwXjPOM82KyQOTpv6FGp_Q7wUg1l94iHYC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/55676aed71..30d20734f5 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f48e5b5d4d..51cccb966c * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/ea27dcced9..b86965a405 No update to Clang. Bug: None Tbr: ianelliott@google.com Change-Id: I34255b77bc60f9f4851aacb7d0befa2b7bae3463 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4472952 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Ho Cheung f8b182b5 2023-04-25T04:45:39 Remove ANGLE code comments related to base::clamp We are recently converting base::clamp to std::clamp, and the original code comments related to base::clamp can be removed. Bug: angleproject:8140, chromium:1231569, chromium:1373621 Change-Id: Iae5f9e816ef1c531d728a35079d6110d1a9dad2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4469309 Auto-Submit: Ho Cheung <uioptt24@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 25d57e41 2023-04-24T18:46:16 Disable angle_restricted_trace_gold_interpreted_tests Blocking Cody's changes to move .so outside of the apk. Will fix and reland later. Bug: b/276742336 Change-Id: I726f8ea71db26b29606bb7395d6ca54fba1e7990 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4470388 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Igor Nazarov b22124bd 2023-01-17T17:44:06 Implement new "Global Mutex" functionality. This CL improves performance compared to the existing code as well as allows using non-std mutex implementations. Also acts as a base for future changes. CL adds new build option: angle_enable_global_mutex_recursion = is_android && angle_enable_vulkan "mutex_recursion" work same way as `std::recursive_mutex` before. It will help in situations when Vulkan API may return back to the ANGLE. For example: RenderDoc layer EGL deadlock. Automatic loading of "libVkLayer_GLES_RenderDoc.so" layer causes deadlock in EGL. Recursion stack: #01 pc 000000000029ea80 /vendor/lib64/egl/libGLESv2_angle.so (egl::GlobalMutexHelper::lock(int)+596) #02 pc 000000000029c59c /vendor/lib64/egl/libGLESv2_angle.so (EGL_GetError+32) #04 pc 0000000000062368 /system/lib64/libEGL.so (eglQueryString+20) #05 pc 0000000000508fec /data/local/debug/vulkan/libVkLayer_GLES_RenderDoc.so #20 pc 0000000000016690 /system/lib64/libvulkan.so (vulkan::api::EnumerateInstanceLayerProperties(unsigned int*, VkLayerProperties*)+40) #21 pc 00000000005aa030 /vendor/lib64/egl/libGLESv2_angle.so (rx::RendererVk::initialize(rx::DisplayVk*, egl::Display*, char const*, char const*)+292) #26 pc 000000000029c7e8 /vendor/lib64/egl/libGLESv2_angle.so (EGL_Initialize+192) Additionally, recursive mutex will partially solve Android SurfaceTexture deadlock (angleproject:4354). Some performance numbers for 1000'000 `eglGetError()` calls. Mutex Time (ms.) Android S906B egl::GetGlobalMutex()(std::recursive_mutex) 41.4 (Default) GlobalMutex (std::recursive_mutex) 39.1 (Recursive) GlobalMutex (std::mutex) 34.9 (Debug) GlobalMutex (std::mutex) 34.7 (Default) GlobalMutex (std::mutex) 34.4 Windows egl::GetGlobalMutex()(std::recursive_mutex) 20.5 (Default) GlobalMutex (std::recursive_mutex) 20.0 (Recursive) GlobalMutex (std::mutex) 21.9 (Debug) GlobalMutex (std::mutex) 20.5 (Default) GlobalMutex (std::mutex) 19.9 Note: Recursive GlobalMutex enabled only for Android Vulkan by default. Original fix: https://chromium-review.googlesource.com/c/angle/angle/+/2029218 Bug: angleproject:8101 Bug: angleproject:4354 Test: angle_unittests --gtest_filter=GlobalMutexTest.* Change-Id: I9e9d9b5c598ad1177ffa147ea690bd955946a712 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401940 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 22b51592 2023-04-04T20:52:25 Implement fast GetCurrentThreadId() function. This function is 7-8x faster than GetCurrentThreadUniqueId() on Android. This CL is required for future CLs related with Global and Context mutexes. Test: angle_unittests --gtest_filter=SystemUtils.GetCurrentThreadId Bug: angleproject:8101 Change-Id: I4023b83510708ce242f4863b5cb12c6eef15e0a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4401939 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Igor Nazarov e2baaff8 2023-04-06T00:11:23 Prevent recursive GlobalMutex locking by ANGLE itself. Instead of adding `ANGLE_SCOPED_GLOBAL_LOCK()` for `glEGLImage*` GLES APIs, this CL uses new `SCOPED_GLOBAL_AND_SHARE_CONTEXT_LOCK()` macro in place of `SCOPED_SHARE_CONTEXT_LOCK()`. This will remove dependency on recursive mutex for ANGLE itself. Recursive mutex is still required for Android Vulkan or in specific cases when using layer libraries. Bug: chromium:1383195 Change-Id: I0c379c45c046b0f5e5dd3ea64a45d33b0ad3ee43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4404777 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Colin Blundell d6d7e551 2023-04-24T14:42:06 [ContextEGL] Check for default FBO being null in onUnmakeCurrent https://chromium-review.googlesource.com/c/angle/angle/+/4451908 added restoring of the default FBO ID when making external contexts un-current. However, it turns out that onUnmakeCurrent() will be called during destruction even if it was previously called without an intervening makeCurrent() call [1], with the first call having un-set the default FBO [2]. Hence, we need to check for whether the default FBO exists in this flow to avoid crashes [3]. [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/Context.cpp;l=766-787?q=Context.cpp&ss=chromium [2] https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/angle/src/libANGLE/Context.cpp;l=931;drc=a61b95c63b0b75c1cfe872d9c8cdf927c226046e;bpv=1;bpt=1 [3] https://crash.corp.google.com/browse?q=product_name%3D%22AndroidWebView%22+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28expanded_custom_data.ChromeCrashProto.experiments.ids%29+expanded_custom_data_ChromeCrashProto_experiments_ids+WHERE+expanded_custom_data_ChromeCrashProto_experiments_ids%3D%2741e765a5-991da97%27%29+AND+product.Version%3D%27114.0.5730.0%27+AND+expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D%27rx%3A%3AContextEGL%3A%3AonUnMakeCurrent%27+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28CrashedStackTrace.StackFrame%29+WHERE+FunctionName%3D%27rx%3A%3AContextEGL%3A%3AonUnMakeCurrent%28gl%3A%3AContext+const*%29%27%29+AND+EXISTS+%28SELECT+1+FROM+UNNEST%28CrashedStackTrace.StackFrame%29+WHERE+FunctionName%3D%27rx%3A%3AContextEGL%3A%3AonUnMakeCurrent%28gl%3A%3AContext+const*%29%27%29&stbtiq=&reportid=&index=0 Bug: chromium:1434315, chromium:1436354 Change-Id: I676dad65dc249e87ee0cae169ba93f605f776341 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4467147 Auto-Submit: Colin Blundell <blundell@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
angle-autoroll 84122b1d 2023-04-24T10:39:45 Roll VK-GL-CTS from b1e5b9348e77 to e3b9db9ad121 (11 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/b1e5b9348e77..e3b9db9ad121 2023-04-23 piotr.byszewski@mobica.com Merge "Merge dev/VK_KHR_map_memory2 into vk-gl-cts/main" into main 2023-04-21 piotr.byszewski@mobica.com Fix unistd.h compilation error under Windows 2023-04-21 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3 into vk-gl-cts/main 2023-04-21 javed@igalia.com Add Amber test for simple loop that results in infinite loop on some GPUs 2023-04-21 russellc@nvidia.com Fix VK_EXT_global_priority tests 2023-04-21 eric@igalia.com Use DE_DECLARE_COMMAND_LINE_OPT() macro instead of open-coding it 2023-04-21 amber@igalia.com Add tests for implicit sample shading enablement 2023-04-21 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5 into vk-gl-cts/main 2023-04-21 piotr.byszewski@mobica.com Generate inl files for vulkansc from vk.xml 2023-04-17 aitor@lunarg.com Test lifespan of unused descriptors with descriptor indexing 2023-04-17 anna.lesniewska@intel.com Add tests for component mapping on BC5 format If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,jonahr@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: jonahr@google.com Change-Id: I7f56b8ab589348e060409ba5254696de81e6d294 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4465887 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll d8756057 2023-04-24T10:01:47 Roll vulkan-deps from bfd1e43ef9d6 to 4b61bdad813f (12 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/bfd1e43ef9d6..4b61bdad813f Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/b8955549ef..9c7fd1a33e * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/4be91725ab..07d1854c67 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/db7475424c..df10a2759b * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/c827791afe..86e3809a9d 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,jonahr@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: jonahr@google.com Change-Id: I860688641eace7982c7f5d1aaf57df5cb09fb30b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4464507 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll c59739b1 2023-04-24T07:01:59 Roll Chromium from 45a2890ceb31 to c7304c21065f (778 revisions) https://chromium.googlesource.com/chromium/src.git/+log/45a2890ceb31..c7304c21065f 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,jonahr@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/f78fc195a7..61c4b10212 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/8d06fc2ffa..539a6f6873 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/a64df6cce2..307bd16360 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/665c2e5429..2795322d57 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/da88a644b4..f882a7628e * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..1aa5adbafb * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/dec6fddc86..b5cec8c867 * third_party/fuchsia-sdk/sdk: version:12.20230420.3.1..version:12.20230424.0.1 * third_party/r8: lCPwGCprok6_HL-cm8IStyKRbdF6wcFvXg74WOk3mmcC..mu27kPnuYTyTcrYhwSspdFJzOk80SoL06gL4moSrRX0C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/a443ff055e..55676aed71 * tools/luci-go: git_revision:56489f37e8efab64d8b92670e35c1122634b9cae..git_revision:e91834850a06011c64eb9a24f317371194bde3de * tools/luci-go: git_revision:56489f37e8efab64d8b92670e35c1122634b9cae..git_revision:e91834850a06011c64eb9a24f317371194bde3de * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f070c27160..f48e5b5d4d * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/6b71dfeacb..ea27dcced9 No update to Clang. Bug: None Tbr: jonahr@google.com Change-Id: Ic1668837feb6dc986c151930777aaf5f1ebc726f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4464765 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi b58ef53a 2023-04-14T14:27:12 Vulkan: Add size limit for VMA image suballocation * Added kImageSizeThresholdForDedicatedMemoryAllocation, currently set to 4MB. Any image larger than this will have its own dedicated device memory handle via the following flag: * VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT Bug: b/218891184 Change-Id: I00318188bf929cf6949d441e5048e9e9640fe5ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428536 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Colin Blundell 3ec55617 2023-04-20T08:36:24 [StateManagerGL] Add asserts to each mFunctions->get*() call Will enable pinpointing where the assert that is going off in crbug.com/1434317 is coming from. Can revert if desired once we have needed info. Note: All of these gets are called only from syncFromNativeContext() or functions that are called by that function, so adding these asserts shouldn't result in any new crashes beyond those that would already be generated via the assert at the end of syncFromNativeContext(). Bug: chromium:1434317 Change-Id: I3dfa12f631bfbbb567d6043cc467d0ddfa8911e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4451907 Auto-Submit: Colin Blundell <blundell@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Colin Blundell cf91a5e6 2023-04-20T09:07:41 [ContextEGL] Restore default FBO ID in onUnmakeCurrent() When making an external context current, ContextEGL sets the default FBO ID to that bound by the external context. However, we don't currently restore it to its previous value (expected to be 0) in onUnmakeCurrent(). Aside from being generally problematic, this specifically causes an assert to go off when later destroying this framebuffer (see the linked bug). This CL adds this restoration. This should be sufficient to resolve the linked bug, as we don't expect ANGLE to process destruction of an external context while it is current due to the GL spec [1]. [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1434315#c6 Bug: chromium:1434315 Change-Id: I6da1880aea4c5245f1506ccc22f92370babd1917 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4451908 Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Colin Blundell <blundell@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi 613adfe5 2023-04-20T14:58:10 Enable CRC for pipeline cache * Enabled CRC for the pipeline cache to see if the flakiness occurs again. Bug: b/246683126 Change-Id: Ia0de3f151823fb47be769bd1cf6a7e7ef9a8b578 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455551 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov db33a246 2023-04-21T13:17:07 Remove obsolete VUID suppression Renamed in https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/5645 Bug: angleproject:8119 Change-Id: I578ee8cf538112f974ac0a3a7b80d37947993f5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4459181 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 2ce6d8df 2023-04-20T17:16:00 TextureVk calls onStateChange when releasing buffer views TextureVk::setBuffer releases buffer views and they don't get initialized unless a dirty bit is set. That works on the first draw call because Texture::Texture() sets DIRTY_BIT_IMPLEMENTATION in constructor, but when called twice mBufferViews remains unitialized causing mBufferViews.getView() misbehavior. Fix this by calling onStateChange when buffer views are released. As mBufferViews is only initialized conditionally for texture buffers, add a bool for tracking whether it is in the initialized state to avoid marking texture as dirty unnecessarily. Note that this isn't handled by signalDirtyStorage() inside Texture::setBufferRange because (in this test case?) there are no observers on Texture so onStateChange called from Texture is a no-op. Texture however observes its TextureVk implementation so onStateChange calls from TextureVk end up setting the dirty bit in Texture::onSubjectStateChange. Bug: b/278585075 Change-Id: I2b83160cdd89a086ed81e8412cd64d0aad930911 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4457147 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 8049d082 2023-04-20T16:13:34 Vulkan: Split ShareGroupVk class from DisplayVK into its own files When ShareGroupVk class was introduced, it is a bit of convenience to put it in the DisplayVk.h and DisplayVk.cpp files. Now we have added more and more code into ShareGroupVk class and it deserves to have its own files. This CL added two files ShareGroupVk.h and ShareGroupVk.cpp and moved the class into the new files. No functional change is expected. Bug: None Change-Id: I8683a3dc4192612d6ec8abbc7f00424958f09598 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4454639 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 285baade 2023-04-20T14:47:30 Move CRC check to before cache decompression * Moved the CRC check to before the decompression is performed. * Removed the asserts related to CRC, since if it is enabled, an app is run, and then it is disabled, running the same app can trigger the assert. * Changed the FATAL() CRC logs to WARN() for now. Bug: b/246683126 Change-Id: Ie4c33079b06766904649346d498234c6fc1a3415 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455550 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yuly Novikov 60dd588e 2023-04-21T12:05:42 Revert "Temporarily restore obsolete VUID suppressions" This reverts commit d0148f12bc1226a045b1b28e1a4be89e5012ef12. Reason for revert: VVL rolled into Chromium crrev.com/c/4454789 Original change's description: > Temporarily restore obsolete VUID suppressions > > To roll ANGLE into Chromium, which still has old VVL. > > Bug: angleproject:8119 > Change-Id: Ic0b53f8a965de5f11b5a143be2a9a05f57304547 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4428872 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:8119 Change-Id: If0befdae7b69b8a4dba998f06cd022ee69d8734b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4454401 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll 6bae26f6 2023-04-21T10:01:41 Roll vulkan-deps from c1d27abff170 to bfd1e43ef9d6 (13 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/c1d27abff170..bfd1e43ef9d6 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/f46f4b192a..b8955549ef * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/4c304fac64..8a397558c4 * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/f035e57c17..4be91725ab * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6a05570bab..c827791afe 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,jonahr@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: jonahr@google.com Change-Id: Ic262749291d3d860fa493284cbddd8389708c9fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4454641 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 473bffdd 2023-04-21T07:00:55 Roll Chromium from 483fb7c5b660 to 45a2890ceb31 (406 revisions) https://chromium.googlesource.com/chromium/src.git/+log/483fb7c5b660..45a2890ceb31 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,jonahr@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/28e0d1b145..f78fc195a7 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d30ecccc94..da88a644b4 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/65b93e7bf3..3c6eb3447c * third_party/android_build_tools/lint: -QeaXYm6b9vGTpMVBhnqlwODS7YvC3vNdvA0KVEz0TwC..667xWoGhzEgkSGU0T6WsZwwXOg1PTUw0b1yjbLunR6kC * third_party/android_build_tools/manifest_merger: zrC8AzHP0aIX3PNRmyIUO6hidQryUwSv65YE8KQEZa0C..1g5VzjyIYFR1uY6iwEOLv8aZp-OQJQc5W2U-dPyg97IC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..f7a8b55f34 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6b62f42578..dec6fddc86 * third_party/fuchsia-sdk/sdk: version:12.20230420.0.1..version:12.20230420.3.1 * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/57396ed0a2..46428dc4d3 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/a642355927..f070c27160 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f19e07d3c1..6b71dfeacb No update to Clang. Bug: None Tbr: jonahr@google.com Change-Id: Id0a4e789b1e8a3b236d062c0e0c869926282837e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4454640 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 77d86c4a 2023-04-20T11:21:59 Vulkan: Set shading rate dynamic state unconditionally Since this state is dynamic, it must be set before use. Bug: angleproject:8108 Change-Id: I3ceeae95cdfad3388c35dd9e629e1424617f48b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455148 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 03f0e51d 2023-04-14T19:51:54 Roll VK-GL-CTS from a3d054bf72ab to b1e5b9348e77 (21 revisions) Define DE_FENV_ACCESS_ON based on https://github.com/KhronosGroup/VK-GL-CTS/commit/9f306457b48b3f8258ca44462003ef39b80a7515 https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/a3d054bf72ab..b1e5b9348e77 2023-04-14 gleese@broadcom.com Assert that the number of output buffers is correct 2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkansc-cts-1.0.1 into vk-gl-cts/main 2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3 into vk-gl-cts/main 2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main 2023-04-14 piotr.byszewski@mobica.com Test multiviewport with fragment density map 2023-04-14 rgarcia@igalia.com Test EDS3 feature interactions 2023-04-14 rgarcia@igalia.com Fix build with GCC 13 2023-04-14 gleese@broadcom.com Modify the max_vertex tests to have room for all attributes 2023-04-14 gleese@broadcom.com Share shader code in vertex_input tests 2023-04-14 marcin.zajac@mobica.com Add tests for manual derivatives with subgroups 2023-04-14 gleese@broadcom.com Fix some indentation in descriptor indexing tests 2023-04-14 gleese@broadcom.com Change descriptor_indexing tests to use stdint types 2023-04-14 gleese@broadcom.com Trivial simplification to descriptor_indexing tests 2023-04-14 gaopan24@hisilicon.com Fix upper Lod bound in image lod query tests 2023-04-14 cturner@igalia.com Revert "Fix VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07267 validation error." 2023-04-14 cturner@igalia.com Try to inform the compiler when dynamically changing the rounding mode. 2023-04-14 marcin.zajac@mobica.com Vulkan video 1.3.244 patch 2023-04-14 ziga@lunarg.com Initialize VkSparseImageMemoryRequirements2 struct in memory tests 2023-04-14 rgarcia@igalia.com Add dynamic color blend variants without dynamic logic op 2023-04-14 rgarcia@igalia.com Test vkCmdDrawIndirect*Count* with multiview 2023-04-14 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,ynovikov@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 Change-Id: I4e0756379eb4fcf408bc9d142ef9a14eb300897e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4427126 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
angle-autoroll 7bc07c7d 2023-04-20T18:19:12 Manual roll Chromium from 943c805072c1 to 483fb7c5b660 (277 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/chromium/src.git/+log/943c805072c1..483fb7c5b660 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,jonahr@google.com,ynovikov@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/da8c682443..28e0d1b145 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/559b8716f3..a64df6cce2 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fc28ec63d9..d30ecccc94 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..843ad30cc3 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/607284d719..6b62f42578 * third_party/fuchsia-sdk/sdk: version:12.20230419.3.1..version:12.20230420.0.1 * third_party/r8: 8NFHPxUiooKTw4bFz4TUVhDuzuDJi5xkLGaCtjX3MsAC..lCPwGCprok6_HL-cm8IStyKRbdF6wcFvXg74WOk3mmcC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/03a7fcfc32..a443ff055e * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/f9faec9819..a642355927 * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/a295e5b288..09f58c36cb * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/18fde8dc95..f19e07d3c1 No update to Clang. Bug: None Tbr: jonahr@google.com,ynovikov@google.com Change-Id: I2697cacabf1240d028d13efeade36abaad8fcb32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4453972 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Roman Lavrov 362c7023 2023-04-20T12:12:10 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>
Scott Violet 37ea6317 2023-04-19T13:40:56 Adds version switch to metal compiler This way we generate a version that works on all OS versions we support. Bug: chromium:1423136 Change-Id: I5d22bdac420d9d2d31bb65883e4470c1785d5abc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4451026 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Scott Violet <sky@chromium.org>
Stephan Hartmann b95c2867 2023-04-20T07:25:24 IWYU: add stdint.h in angle::base::SecureHashAlgorithm Bug: chromium:957519 Change-Id: Ic8980242ade4d804887da84e514c14b4e6729e38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4450309 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 23ff85fe 2023-04-20T13:32:37 Suppress newly added PixelLocalStorageTest.TextureLevelsAndLayers on iOS Metal Bug: angleproject:7994 Change-Id: I9d3a1e2af99e3127d74b96c0740054e47fd4b661 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4455107 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>