Log

Author Commit Date CI Message
Charlie Lao c402ea1c 2023-02-15T12:01:38 Vulkan: Rename hasUnfinishedUse to hasResourceUseFinished Most usage of hasUnfinishedUse is for !hasUnfinishedUse, and there was feedback that negative API is not preferred. This CL changes it to positive API name. Similarly renamed hasUnsubmittedUse to hasResourceUseSubmitted. Bug: b/267348918 Change-Id: Idb10b0f998ec50116ffb6aada19a98a516e87824 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4257105 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 5dba27e0 2023-02-15T10:24:38 Vulkan: CommandProcessor API name clean up This CL is mechanical change only and limited to CommandProcessor class. This CL renames submitCommands to enqueueSubmitCommands, queueSubmitOneOff to enqueueSubmitOneOffCommand, queuePresent to enqueuePresent, flushWaitSemaphores to enqueueFlushWaitSemaphores, flushOutsideRPCommands to enqueueFlushOutsideRPCommands, flushRenderPassCommands to enqueueFlushRenderPassCommands. This CL also renames CommandProcessor::mLastSubmittedSerial to mLastEnqueuedSerials, and getLastSubmittedSerial to getLastEnqueuedSerial, hasUnsubmittedUse to hasResourceUseEnqueued (opposite meaning). Bug: b/267348918 Change-Id: I611889815f5824837dc6e0f547e3cddc595d447b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255809 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Solti b4116fea 2023-02-17T16:14:27 Disable supportsSwapchainMaintenance1 feature on Android Temporarily disable upportsSwapchainMaintenance1 feature on Android devices to unblock the ANGLE-To-Android roller, while the auto-roller failure investigation is taking place. Bug: b/269606195 Change-Id: I8a122b04996c9f0f02cbaaedcba5c6fb0615e5e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264812 Commit-Queue: Solti Ho <solti@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 3307e8d2 2023-02-16T10:26:20 Vulkan: Add ostream operator for ResourceUse/QueueSerial This is some debug logging code I have been using in the past. Want to land it for convenience. Bug: None Change-Id: Ife044dd7dc733d3d38283949bdfc11b203cbe429 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4177488 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 75153e10 2023-02-17T17:55:41 Manual roll Chromium from ab83a5e1b973 to 3919c700dd2c (169 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/chromium/src.git/+log/ab83a5e1b973..3919c700dd2c 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,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 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/89ae2c4b1c..166db27fd0 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..44b7bc5487 * third_party/fuchsia-sdk/sdk: version:11.20230216.2.1..version:11.20230217.0.1 * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/45851774ad..57396ed0a2 * third_party/r8: CNzcoXA0246FgCmus3Uk0w-NXoGjqjHku8jocP5AcuUC..EzD88AUfNs2DWG8ytv86PmRrgkNmeLLaiQOrNNLUWwAC * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/a16f83a4ff..e10cbe0a12 No update to Clang. Bug: angleproject:8026 Tbr: ianelliott@google.com,ynovikov@google.com Change-Id: I4680eb0d9b0f92836be7dec2892077983b47f6ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4264577 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 19d1a0a4 2023-02-17T07:01:02 Roll Chromium from 63251d7a0997 to ab83a5e1b973 (573 revisions) Update flatbuffers BUILD.gn per https://chromium-review.googlesource.com/c/chromium/src/+/4258966 https://chromium.googlesource.com/chromium/src.git/+log/63251d7a0997..ab83a5e1b973 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/606ec055d2..1103ef535c * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/1bb36c7a92..2ff42d2008 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/3e929b8e59..6f4617b9ef * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/b77ac02dd5..f7460fc60a * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/a154c73c85..c4ed9cba55 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/f4ef1e4cea..89ae2c4b1c * third_party/android_build_tools/lint: HvuZ-UNmu4oxZAJFSD_BiPEdibZvFZBRqB_ShtWRYr8C..6R1spS-Itpxh7oLzwUptWcZyFwQeEH6aFwtkuTo8ROoC * third_party/android_build_tools/manifest_merger: 2JpGK05syKIkt6K-gSTBDV90H50KLdXLP_vyVhXRWqcC..EnlN2b-khJhe8B9hSfh7UxvglJXEwWDKaMm4ixhLYTMC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..44b7bc5487 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6b98cdcbc1..3879bd830c * third_party/flatbuffers/src: https://chromium.googlesource.com/external/github.com/google/flatbuffers.git/+log/b47ba1d5ff..a56f9ec50e * third_party/fuchsia-sdk/sdk: version:11.20230215.0.1..version:11.20230216.2.1 * third_party/r8: _epIZkuhmcrUw9c591kUQWELdMlpKy_Uq0KVXhpeBl8C..CNzcoXA0246FgCmus3Uk0w-NXoGjqjHku8jocP5AcuUC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/b855484bb7..effd9257d4 * tools/luci-go: git_revision:d120042f61f626b913a89d314cf585d54495bddc..git_revision:c543f47ae455dbfe7e8fed5baa61a14d9068e98c * tools/luci-go: git_revision:d120042f61f626b913a89d314cf585d54495bddc..git_revision:c543f47ae455dbfe7e8fed5baa61a14d9068e98c * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/132569747b..a16f83a4ff * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f15b3214d5..104db43f88 * tools/skia_goldctl/linux: 0sWTRxVF-JnbihtHIuwUrWkXaZfHnlGbgbq_iuNBbbkC..qmQkeQixRLhNh8h9NFtyogaGsZT2_Hq8ecJfh_-S8KgC * tools/skia_goldctl/mac_amd64: UORVay0POLHppb8dNBQEBrEfYacH2edRleKTs5BF8QMC..yaL4-zE_LjEmhx48AHqVNH39H5j_GsYsUjaF6VR0dG0C * tools/skia_goldctl/mac_arm64: oCnjNSVWVT02JMCAWdBovX83D7IHEFNdxpkkYUKtmtQC..wl2cVS48xW9pWCxQ7Dgd7lBe94FSbX4L2Xz9s3rRxTIC * tools/skia_goldctl/win: 4uAK564j5zJPfrjm3Ebtql0dFZWxzdr7mGbqxakRvb0C..ehooWmfDnjMX96wtA5yuHh4YuXsV7mq9bj61rFd_xogC No update to Clang. Bug: chromium:1417182, chromium:1401327 Change-Id: I775a49fbb98a6436f39cd5f90bc71a65b67bf2fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4263987 Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 1148a662 2023-02-15T08:25:51 Update GL_ARM_shader_framebuffer_fetch token support These were missed during initial implementation because the target app doesn't use them, and there are no tests for vendor extensions. The implementation is basically a noop, but allows setting and querying state, unblocking apps. Also add a test that has basic usage. Test: FramebufferFetchES31.BasicTokenUsage_ARM Bug: b/269233744 Bug: angleproject:8025 Change-Id: Ic107150d4afd9c4c4984c58a1dafb1c18e608997 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255965 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Igor Nazarov fcba0d43 2023-01-17T19:21:31 Fix "RefCountObjectReleaser" move-assignment operator. Current operator properly assigns only to an empty object. No actual problem in the current code. May be problems in a new, especially in a debug code like this: releaseImage = {}; The above line will not release resources as expected, and may waste a lot of time during debugging process. Bug: None Change-Id: I0fe064b68ade9211fdef5790ed3c41b0101cfa93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262069 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 8cac53cd 2023-01-17T19:22:57 Vulkan: Fix incorrect "SharedPresent" barrier. Previous fix swapped top/bottom barriers: 629da7fc9cd4886dd87f07a069c259551e892936 Fix dEQP-EGL.functional.mutable_render_buffer#basic Above fix is only partial, because it only includes execution dependency without memory barriers (top/bottom stages has no memory access). Fixed by forcing all possible stages for "SharedPresent" images. Better solution requires creating specific versions of "ImageLayout::SharedPresent". Added new test that skips "glFlush()" before "glReadPixels()". Performing flush executes present and may "fix" the barrier problem. New test fails on "Samsung Galaxy S22+ S906B" Bug: b/264420030 Test: angle_end2end_tests --gtest_filter="EGLSingleBufferTest.SharedPresentBarrier*" Change-Id: Icbb50900d99e42d2e9482cd6109981bbc460348a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262068 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov a6dba4b4 2023-01-17T19:24:18 Vulkan: Minor fix in "WindowSurfaceVk::hasStagedUpdates()". This CL adds check to prevent checking buffer that is not technically acquired. Also if in the future this function will be called for double buffered surfaces it will not check a previous buffer. Bug: b/237449314 Change-Id: I79f1a2c4cd05a5424e963503891449f310177e93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4262070 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 9d84ad7d 2023-02-14T10:47:54 Translator: Fix sampler-in-struct when struct is unused Standalone symbols as statements are also pruned. For example in the below: ``` x; g(); ``` The line that only contains `x;` is pruned. In particular, this was causing a bug with sampler-in-struct processing where the code ASSERTs that if an instance of the struct is visited during traversal, that it's already processed as part of an index chain (like s.member), but in the above situation that is not true. Bug: chromium:1416152 Change-Id: I49e9a5826fc4d8c1fef1fa6f1d38c65f33f8acfd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4247584 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Mark Lobodzinski 6f092c31 2023-02-16T08:45:18 Tests: Add star trek fleet command trace Test: angle_trace_tests --gtest_filter=TraceTest.star_trek_fleet_command bug: b/269577054 Change-Id: I2e7ae40d47b89b854a3ecbb87aba7fe8fcfdf8ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4261952 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Zan Dobersek 8d23f34e 2023-01-18T16:20:05 Reland: DisplayEGL should support targeting specific EGL platforms This is a reland of 01c641d58c7b4e4809163e48f570145af89c4acc Updated changes: The value is used only if non-zero and marked as one of the supported platforms. For the moment the only platform listed as supported is EGL_PLATFORM_SURFACELESS_MESA since it's the only relevant platform value that the EGL_ANGLE_platform_angle extension is listing as acceptable value for the EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE attribute. When validated, and with relevant EGL extensions listed in the client EGL extensions list, a display object for the desired EGL platform is retrieved through the eglGetPlatformDisplayEXT entrypoint. Original change's description: > DisplayEGL should support targeting specific EGL platforms > > DisplayEGL should use the EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE > value, if provided, to target specific platforms when constructing the > native EGL display. > > The value is retrieved from the display attributes map and propagated > to FunctionsEGL::initialize(). If non-zero, and if the > eglGetPlatformDisplayEXT entrypoint is successfully loaded, then a > display object for the desired EGL platform is retrieved. > > Bug: angleproject:7942 > Change-Id: I3d8dd70c4c5c80259ae647dce039cfe741b0cf7d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4152531 > Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Bug: angleproject:7942 Change-Id: I75212b48e0e0edceef92e38bf68791017fb30a56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178310 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brian Sheedy 81c7a7d9 2023-02-15T11:33:05 Use per-channel fuzzy threshold Switches the fuzzy threshold used in Gold-backed pixel tests to be per-channel instead of the sum of all channels. This means that a difference of [1, 1, 1, 0] between two pixels will now pass, whereas before that would have required a threshold of 3. This is intended to only ever auto-approve changes that can be attributed to rounding errors. Bug: angleproject:7985 Change-Id: Id057534c3e92ee9a4fbd1545fd1a16b28fea61b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4256778 Auto-Submit: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 27d412fb 2023-02-16T11:41:46 Presubmit: relax line length rules for quotes ... and : after Roll, Reland etc Bug: angleproject:4683 Change-Id: Ibe1098402a2fd67b929a71fa74c5a1747a90fc3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4261310 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 8c2fcc70 2023-02-02T00:00:00 Metal: Implement EXT_blend_func_extended Fixed: angleproject:8015 Change-Id: Ic92a8823869bf097349aee6241f6cfb86942c945 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4242128 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kyle Piddington <kpiddington@apple.com>
angle-autoroll 5db4f3e9 2023-02-16T10:01:28 Roll SwiftShader from a9f5c19e28bd to 64eb04027b9f (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/a9f5c19e28bd.. 64eb04027b9f 2023-02-15 pkasting@chromium.org More C++20 build fixes. 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 Change-Id: I545811bfe09bd1c311fc10d7352b24509ee077b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4257772 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 665a5cea 2023-02-16T10:01:38 Roll vulkan-deps from 25333b9d7bff to d03d09324f14 (11 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/25333b9d7bff..d03 d09324f14 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/95f93810bb..956114df28 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/e1940bd368..27c28d4b40 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/a774921032..5d2b7d957e 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: I1f218e6eebcb1353fe24b64ea0a96e09e126b712 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4260025 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov ceb49b1c 2023-01-17T19:21:43 Vulkan: Fix crashes when Surface is not current. It is possible to destroy Surface while some resources are still in use (by CPU/GPU): 1. Make Surface current. 2. Draw something. 3. Make other Surface current (same Context). 4. (optional - if test Surface is Window Surface) Draw something. 5. Delete Surface. 6. UnMake the Context from current. 7. Different crashes possible depending on Surface type and what is done in step 2. Bug: angleproject:8017 Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.DestroyNotCurrent*Surface*" Change-Id: I3102aa237075b301b3222b420415753c83ba192a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227073 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
angle-autoroll c2e25b70 2023-02-16T07:37:06 Roll Chromium from 3043a4c048b2 to 63251d7a0997 (544 revisions) https://chromium.googlesource.com/chromium/src.git/+log/3043a4c048b2..63 251d7a0997 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/895ab7e260..606ec055d2 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9b577d15c1..1bb36c7a92 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/7492f13b0b..3e929b8e59 * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/35b945871c..b77ac02dd5 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/4e37a58163..a154c73c85 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/4d5c7f83a2..f4ef1e4cea * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/60eac147fe..c1aaebb624 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..d55076ba29 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e2f35370f5..6b98cdcbc1 * third_party/fuchsia-sdk/sdk: version:11.20230214.2.1..version:11.20230215.0.1 * third_party/kotlin_stdlib: yDx4bgi6fy03EzeCNgTQFs5WWyqNkJtPvSN7yqqN-48C..Mg7371mEUwDQH4_z29HdWqYWVlXN6t2dXX0kIutg_SwC * third_party/r8: gZGs-pJ_-u01VOdFNxu0W7ABR3ga7mqq9cmHOTr1Jn8C.._epIZkuhmcrUw9c591kUQWELdMlpKy_Uq0KVXhpeBl8C * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/4bffa240bd..132569747b * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/04ff20d2f6..f15b3214d5 * tools/skia_goldctl/linux: BDKegxfQ0gfqaGT-WbahabtRyj8gWJp6jfWN5oFGoJMC..0sWTRxVF-JnbihtHIuwUrWkXaZfHnlGbgbq_iuNBbbkC * tools/skia_goldctl/mac_amd64: 9Y06tOyAr_N_xhISU9yNR0Axvf_716FzCDhko8ENOa8C..UORVay0POLHppb8dNBQEBrEfYacH2edRleKTs5BF8QMC * tools/skia_goldctl/mac_arm64: Uw-uqwC-qLDh1r5y9BDfkLm1qdFC7VTJpB19hs2SZcoC..oCnjNSVWVT02JMCAWdBovX83D7IHEFNdxpkkYUKtmtQC * tools/skia_goldctl/win: NvPeEBjkQDR-QgnFonxeGfDRWWH3ckLNXKdUg86OrYEC..4uAK564j5zJPfrjm3Ebtql0dFZWxzdr7mGbqxakRvb0C No update to Clang. Bug: angleproject:6430,angleproject:7985 Tbr: ianelliott@google.com Change-Id: I3ed6b1efbf2e517ef104ee88972247e5c07aea3b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4257257 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Jonah Ryan-Davis 13e8dabc 2023-02-15T14:34:05 Add EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE To allow the creation of multiple EGLDisplays on the same graphics device, we need a value to key for the display cache. When the display key is specified, the cache will return a new display for that key, even if there is an existing display on the same graphics device. Bug: chromium:1251724 Change-Id: I55e169776770734fc33b8bc8e1265ea6f7472fe3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255730 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Charlie Lao c4912744 2023-02-15T09:55:09 Vulkan: Clean up CommandProcessor mutex name This CL is mechanical change only and limited to CommandProcessor class. It renames mTasks to mTaskQueue, renames mWorkerMutex to mTaskEnqueueMutex, rename mSubmissionMutex to mTaskDequeueMutex. Bug: b/267348918 Change-Id: I7a8c6820eb3bd27d4e6aacb1abe7275f3c0ec5c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4255807 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Yuxin Hu 629da7fc 2023-01-26T12:25:04 Fix dEQP-EGL.functional.mutable_render_buffer#basic These are vulkan commands submitted between glClear() and glReadPixels() when the EGL_RENDER_BUFFER is EGL_SINGLE_BUFFER (ImageLayour is SharedPresent): ``` vkCmdClearColorImage() vkCmdPipelineBarrier: ( VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,//srcStageMask VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,//dstStageMask VK_ACCESS_MEMORY_WRITE_BIT,//srcAccessMask VK_ACCESS_MEMORY_WRITE_BIT|VK_ACCESS_MEMORY_READ_BIT//dstAccessMask ) vkCmdCopyImageToBuffer() ``` This means that operations at the bottom of pipeline in vkCmdCopyImageToBuffer() need to wait for operations at the top of pipeline in vmCmdClearColorImage(), which translates to vkCmdCopyImageToBuffer() does not have to wait for vkCmdClearColorImage() to finish. Even the dstAccessMask ensures that vkCmdCopyImageToBuffer() will invalidate cache before copying image, it is possible that it will retrieve the old Framebuffer color attachment data as the vkCmdClearColorImage() has not finished. This CL fixes the bug by making the srcStageMask to be VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT and the dstStageMask to be VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, when the ImageLayout is SharedPresent. This ensures that vkCmdCopyImageToBuffer() waits for vkCmdClearColorImage() to finish. This CL also addresses similar issue in some other rx::vk::ImageLayout items in kImageMemoryBarrierData. Bug: b/264420030 Change-Id: If47ab071afaf96e396357cb0f50131339fa58509 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4198476 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Bruce Dawson 79b0d80b 2023-02-14T14:29:59 Remove d3dcompiler_old.dll references d3dcompiler_old.dll was retained for compatibility with Windows 7 but can now be removed. It will be missing from future toolchain packages and we no longer need code to handle it. This also updates a doc page to change python to python3. Bug: chromium:1416385, chromium:1385856 Change-Id: I80c9b6dec887bc403f6fe3dac4007acb1f164ea6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251620 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Gert Wollny a52c0a6c 2023-02-06T16:01:27 Capture/Replay: Add and handle new resource type for EGLSync So far calls involving EGLSync were not tracking the actual sync objects, and this may lead to race conditions in multi-threaded and multi-context scenarios. This CL adds the type EGLSyncID and some specialized code handling of egl::Sync to distinguish EGLSync from the already existing GLSync objects in order to track them separately. Bug: angleproject:7911 Change-Id: I91b188a41069bc0620f51c55ee516d23b55bdd38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4200095 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Igor Nazarov 94ff37bb 2023-01-17T19:11:50 Fixed bugs in "FastVector" class. Bugs: - items resources may not be freed after resizing to a lesser size. - reusing capacity may use old values for the new items. Fixed by resting removed items to default values. Alternative fix is to disallow dangerous operations on non trivially constructible/destructible types. Bug: angleproject:8021 Test: angle_unittests --gtest_filter="FastVector.DestroyOldItems" Test: angle_unittests --gtest_filter="FastVector.ReuseCapacity" Change-Id: I8bc616a9476608c9301e3f7af3a0d504e7e2d2db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4249960 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Constantine Shablya 31d576ca 2023-02-15T00:34:07 Tests: Add SuperTuxKart trace Test: angle_trace_tests --gtest_filter=TraceTest.supertuxkart Bug: angleproject:8023 Change-Id: I9d427700a5e3badde0e66e55b24d50725c338251 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251637 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Gert Wollny 111aca40 2023-02-15T14:06:15 Capture/Replay: Emit NULL instead of nullptr in trace When created C traces the value "nullptr" is not defined, so emit NULL instead, because this is supported in both, C and C++. Bug: angleproject:8018 Change-Id: I77584c462b1b02df39871929c1979d7ee7624361 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4254388 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll daaf424c 2023-02-15T12:35:43 Roll vulkan-deps from bb14a2634243 to 25333b9d7bff (9 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/bb14a2634243..253 33b9d7bff Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/e150e716ff..95f93810bb * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/74221a9a55..2015474294 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/6e6e6b4216..a774921032 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: I446035d472416a5148e805f91afcc0d71f89dfe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4254805 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll b14c4740 2023-02-15T10:01:17 Roll SwiftShader from 938d3a1fac4d to a9f5c19e28bd (3 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/938d3a1fac4d.. a9f5c19e28bd 2023-02-14 pkasting@chromium.org More C++20 build fixes. 2023-02-13 pkasting@chromium.org Compile in whatever C++ version is default. 2023-02-13 pkasting@chromium.org Fix build for C++20. 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 Change-Id: I3b404581f8fc0e97cebe41a29c69631e644f6a3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4254125 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll df3a6092 2023-02-15T09:11:23 Roll Chromium from 618575b40534 to 3043a4c048b2 (617 revisions) https://chromium.googlesource.com/chromium/src.git/+log/618575b40534..30 43a4c048b2 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/9b08339c0a..895ab7e260 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9229cda057..9b577d15c1 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/276c835f37..7492f13b0b * buildtools/third_party/libc++abi/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/b74d771611..35b945871c * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/f0ea28495a..4e37a58163 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/698c01b92b..4d5c7f83a2 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/94b5a255c3..60eac147fe * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..61ebd13566 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ce1ef9afdf..e2f35370f5 * third_party/fuchsia-sdk/sdk: version:11.20230213.2.1..version:11.20230214.2.1 * third_party/r8: zNxnng7fj9frkcsT2nGmcLpFfUhjo0681UiG8-V632YC..gZGs-pJ_-u01VOdFNxu0W7ABR3ga7mqq9cmHOTr1Jn8C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/ec115fd2d7..b855484bb7 * tools/luci-go: git_revision:a4b0cf91f9d6e0436705b94b979fe070d21912b1..git_revision:d120042f61f626b913a89d314cf585d54495bddc * tools/luci-go: git_revision:a4b0cf91f9d6e0436705b94b979fe070d21912b1..git_revision:d120042f61f626b913a89d314cf585d54495bddc * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/91d154887d..4bffa240bd * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/deea6e2982..04ff20d2f6 * tools/skia_goldctl/linux: LwN7ZJrQvM8sN80_aX10MUXINMSjQBvxibNfB23TK7AC..BDKegxfQ0gfqaGT-WbahabtRyj8gWJp6jfWN5oFGoJMC * tools/skia_goldctl/mac_amd64: Qnkn88mMsJO34PYkpRIvl-NLuVRex_EErC2mae0s8-wC..9Y06tOyAr_N_xhISU9yNR0Axvf_716FzCDhko8ENOa8C * tools/skia_goldctl/mac_arm64: zwMY6HDvacAXQ7H2YoRaJaaZvTEjFqdaP-u8jsS1yksC..Uw-uqwC-qLDh1r5y9BDfkLm1qdFC7VTJpB19hs2SZcoC * tools/skia_goldctl/win: ZEdHm2J5ysCEG6U97Ynh99pxkjw67x7lhhhZUMiXShkC..NvPeEBjkQDR-QgnFonxeGfDRWWH3ckLNXKdUg86OrYEC Clang version changed llvmorg-16-init-17653-g39da55e8:llvmorg-17-init-2082-g6d4a674a Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/ec115fd2d7a24aa8db667db1544d56b18068f8d4..b855484bb737914887aaabfd3cc37cfd41876fc9/scripts/update.py Bug: None Tbr: ianelliott@google.com Change-Id: Ie3481077bbda5630c49b49747a7f7c1ccad5c748 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251633 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 1145a497 2023-01-17T19:22:45 Vulkan: Very minor "rx::vk::BindingPointer" move-ctor update. Initialize "mRefCounted" in member initializer list to avoid unnecessary initialization with "nullptr" provided by the default member initializer. Optimizer will eliminate extra store in release builds but not in debug. This change is more for code cleanness than for performance. Bug: None Change-Id: I1127a543468bb4138ae12d8941af27591ec4a2e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4251638 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 4bb17bf1 2023-02-14T12:01:43 Docs: Fix Visual Studio generation step Bug: angleproject:8022 Change-Id: Ic2223d0a0093bba11a77c4b7e0fe4150ff786ae7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4249981 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Geoff Lang 5a77200b 2023-02-08T17:10:28 Metal: Implement parallel shader linking. Update the Metal library cache to be thread safe. Change absl::flat_hash_map back to std::unordered_map because the value types now contain a mutex which must not move. Only generate async compilation tasks for shaders that were not already compiled and in the cache. Collapse some of the link methods in ProgramMtl that only had one call site. All linking is now done in ProgramMtl::link and ProgramMtl::load. Support disabling parallel linking using the new enableParallelMtlLibraryCompilation feature. Bug: chromium:1385510 Change-Id: I71ba71a34d994066729df7e4170911f88c89de4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4234153 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mike Schuchardt 2e70fa15 2023-02-13T23:01:51 Tests: Add Top War: Battle Game trace Test: angle_trace_tests --gtest_filter=TraceTest.top_war Bug: b/269178202 Change-Id: I4537fb99227b6a357a2d16d83da6514ecfd2a39e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4246716 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
Charlie Lao 9e33b83a 2023-02-14T11:47:17 Vulkan: Fix bug in EGLMultiContextTest.ReuseUnterminatedDisplay This test is not destroying the context properly, which leads to eglTerminate(dpy) not actually destroying the RendererVk. When the next test app runs, it calls RendererVk::initialize again and calls volkLoadInstance(mInstance). Because the previous RendererVk object is still there, and the two CommandQueue shares the same volk instance, writing to volk function table causes tsan to complain that other thread is still using the old function pointer that now gets overwritten. The test really should clean up properly here in order to have other test to continue to run. Bug: angleproject:7602 Change-Id: I93cd2439194aba9f28ce478aaf79ae8b81c6426b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4249984 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Igor Nazarov f2617a09 2023-02-13T20:59:05 Vulkan: Minor fix when waitFor*ToBeSubmitted() may skip error. Calling "checkAndPopPendingError()" without "mSubmissionMutex" lock may cause situation, when new error is added to "mErrors" right after the call. This new error may be for the work we are waiting for, and it processing will be skipped. Current CommandProcessor error handing should be rewritten in the future anyway, but I think this minor error should be addressed now. Bug: b/267348918 Change-Id: I65c49f7dc8e1984696d464c38f13fcdce93337bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245421 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Igor Nazarov 8374bf5f 2023-02-13T20:35:32 Fix bug in FixedQueue::clear() and refactoring. - bug: "mSize" used to end the loop but also changed inside the loop by call to the "pop()" method. - refactoring: "mBackIndex" name is not correct, because variable references to the "index for next write", in other words - to the element past "back" (last written). Renamed to "mEndIndex" to match the "std" terminology. Bug: b/267348918 Test: angle_unittests --gtest_filter="FixedQueue.Clear" Change-Id: Ic65291a7ff2ff6f4eed223ca80fef187e42df3e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245420 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Maksim Sisov 25e9686c 2023-02-09T11:51:24 [ios]: fix missing caps for D16_UNORM Fixes "Assert failed in updateCaps (third_party/angle/src/libANGLE/ \ Context.cpp:4368): getClientVersion() < ES_3_0 || \ formatMaxSamples >= 4" as D16_UNORM caps were missing, which resulted in GenerateTextureCapsMap skipping that format. Bug: angleproject:6597, chromium:1413715 Change-Id: I031271e2db07d129e0c383107db2080794a11da1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236537 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Igor Nazarov 91d55479 2023-02-13T21:18:13 Vulkan: reverted back SuballocationGarbage logic. This commit: Vulkan: Switch CommandQueue::mInflightCommands to FixedQueue ad81cc95509379a213b9fddc6e7fe1cafc79115a changes how SuballocationGarbage is processed in the "submitCommands()" method. New logic allows clearing entire "mInFlightCommands" queue. In case if this change was intentional, it should also remove this text from the comment: // But if there is only one command buffer in flight, we do not wait // here to ensure we keep GPU busy. Bug: b/267682377 Change-Id: Ia280c468c79f45dd44791cff09887982094521e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245422 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 2bcf94cc 2023-02-14T10:01:17 Roll vulkan-deps from 428c60617e42 to bb14a2634243 (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/428c60617e42..bb1 4a2634243 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/7221381361..e150e716ff * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/ebb932a402..74221a9a55 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/ebc1fbec61..6e6e6b4216 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: Id5e634e23f4f9cbdb2472609c9c939f99f7b93cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4248685 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 4058c2b3 2023-02-14T07:00:22 Roll Chromium from 155bf9f7bac6 to 618575b40534 (558 revisions) https://chromium.googlesource.com/chromium/src.git/+log/155bf9f7bac6..61 8575b40534 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/df19a5c740..9b08339c0a * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/dbaf3c47d5..9229cda057 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/fb27d308b0..276c835f37 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/244bbf5b99..698c01b92b * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/d3f88fee5d..94b5a255c3 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/384e4741b8..3d210ba046 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..9f1ccd6b4c * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e636a25853..ce1ef9afdf * third_party/fuchsia-sdk/sdk: version:11.20230212.3.1..version:11.20230213.2.1 * third_party/r8: aPfF8BYhTWRf1GioUYZMwrC8hlAaLFllM_tfppFbRBIC..zNxnng7fj9frkcsT2nGmcLpFfUhjo0681UiG8-V632YC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/fff7f04d30..ec115fd2d7 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/c1f5729e71..deea6e2982 No update to Clang. Bug: None Tbr: ianelliott@google.com Change-Id: Ie79aba31d277b8cbae2ea955ab5fd720c362fd5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4248024 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kenneth Russell ee64836f 2023-02-11T17:56:06 Revert "Metal: Optimized BufferSubData per device" This reverts commit 968041b54770af8917001d8fe9b52a881cfed0b2. Includes the following patches: git revert -n 995db1f66bcf87fc9e47d908fb2a885e810d2567 \ 9a6c90c8f802b4d107a081bfccaf4be007e7af54 \ dbd47e378582ef86db52c7379cd220cf0b2c8193 \ 369b320f92f54774879e8b8faff834fc8db0793e \ 4abae6f97586448712e2dc1cced4a678b0901d7b \ 968041b54770af8917001d8fe9b52a881cfed0b2 Several conflicts with top-of-tree were resolved during this revert. The aim is to reland this with additional code which will reduce the amount of excess buffer memory allocated, and release the resources associated with temporary buffer allocations. Bug: angleproject:7544 Change-Id: Ib7a6bc2ab1c2f23cb43112cd980106e2898c3826 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4240556 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 5c2a6010 2023-02-13T16:32:58 Vulkan: Fix loading instance extension entry points This change makes sure instance extension entry points are loaded right after the instance is. Previously, this was done after all features are initialized, including device features, but the code that decides the device features was using the instance entry points. Bug: angleproject:7959 Change-Id: I6869f40261eec7a3146c9e0e05b3fc139bc9223a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4247097 Commit-Queue: Ian Elliott <ianelliott@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Geoff Lang be5e767e 2023-02-01T11:03:26 dump_shader_source: Also dump program links. When the dump_shader_source is enabled, dump a small file for each program link containing which shaders were attached to the program. This allows us to build perf tests knowing which shaders can link together. Bug: angleproject:7760, chromium:1385510 Change-Id: I0713e9f04cc157c3a3eeeec6d597db27b08575d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214011 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Igor Nazarov 48b6ebad 2023-02-13T16:37:15 Test: Move code of EGLSurfaceTest::runWaitSemaphoreTest(). To improve readability, code moved from class body closer to the tests. Bug: angleproject:7995 Change-Id: I2c0aef593b28cfffe2b04de308274d0007d863c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4245177 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 689e523c 2023-02-07T14:33:23 Vulkan: Remove vkResetQueryPoolEXT null-check hack This was observed to be nullptr in some builds and assumed to be a driver bug. However, this was due to a bug in implementation where the code that was supposed to load the entry point was actually loading another entry point. This was fixed in https://chromium-review.googlesource.com/c/angle/angle/+/4224582 Bug: chromium:1273344 Change-Id: I8c2003b322878fcab9282c793a8b1901d5d8e7a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227990 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Geoff Lang cad19f01 2022-02-01T17:36:03 Vulkan: Wait forever when waiting on fences If a timeout occurs while waiting for the VK queue to be idle during context destruction, there is no way to safely delete the resources without potentially crashing as the driver is still reading them. Instead, wait forever and let Chrome's watchdog tear the process down. Bug: chromium:1223346 Change-Id: Ifa91465270f54b62a5ead88e8f26b3315072c380 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3430243 Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 54951da2 2022-12-18T17:11:33 Vulkan: Refactor extension vs core version checks Extensions are now grouped based on promotion-to-core status, and initialization code is generally cleaned up. ANGLE currently doesn't attempt to use a core version above Vulkan 1.1, as extensions are always assumed to be exposed even if promoted to core in later versions. With this change, it would be simpler to use a newer core version if ever necessary. Bug: angleproject:7959 Change-Id: Ia5fd3e06c18f7289e9e5a63af0f039a6dc89c687 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224582 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 6374ac64 2023-02-13T10:01:57 Roll vulkan-deps from 00e3edd6b635 to 428c60617e42 (4 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/00e3edd6b635..428 c60617e42 Changed dependencies: * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/5b48c549b0..7221381361 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/8f15d57b35..ebc1fbec61 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: I1249c2919bcfdf00524a678e98d0ad19468dd964 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4244159 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Gert Wollny 91bd7e6e 2023-01-09T15:57:35 Capture/Replay: VertexArrayState: also track binding index too We have to capture the case when only the binding index is not at the default value. Bug: angleproject:7912 Change-Id: Id08b20788422694db60f38c6e0b8b4a9191890c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4143841 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
angle-autoroll e60b0e4e 2023-02-13T07:02:07 Roll Chromium from 5221896b4233 to 155bf9f7bac6 (660 revisions) https://chromium.googlesource.com/chromium/src.git/+log/5221896b4233..15 5bf9f7bac6 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/f8016dcd09..df19a5c740 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/0e64446d34..dbaf3c47d5 * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/035440c707..fb27d308b0 * buildtools/third_party/libunwind/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/e95b94b74d..f0ea28495a * testing: https://chromium.googlesource.com/chromium/src/testing/+log/439aacf3d9..244bbf5b99 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/93d7491b2e..d3f88fee5d * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/f623f723b3..384e4741b8 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7947234401 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/10369890bb..e636a25853 * third_party/fuchsia-sdk/sdk: version:11.20230209.3.1..version:11.20230212.3.1 * third_party/r8: UgTC8OKm5SiqQeTkdMMHkq0jL9h_6gbpI0YTBfHWrs8C..aPfF8BYhTWRf1GioUYZMwrC8hlAaLFllM_tfppFbRBIC * tools/luci-go: git_revision:f6b5518e872364f59bb17dd5a967270b38331b84..git_revision:a4b0cf91f9d6e0436705b94b979fe070d21912b1 * tools/luci-go: git_revision:f6b5518e872364f59bb17dd5a967270b38331b84..git_revision:a4b0cf91f9d6e0436705b94b979fe070d21912b1 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/419aeec3e9..91d154887d * tools/skia_goldctl/linux: B3ETgoPk2gSY8aomIHMZNixKf63RvZDpuJhnZFelSl0C..LwN7ZJrQvM8sN80_aX10MUXINMSjQBvxibNfB23TK7AC * tools/skia_goldctl/mac_amd64: NOk7u3dYnhPnUxaMRoyyCQJuMKm8zRMFGnFQEABngAoC..Qnkn88mMsJO34PYkpRIvl-NLuVRex_EErC2mae0s8-wC * tools/skia_goldctl/mac_arm64: BUhEAfs1NoEiksslNZjWOXyg_zHe-s72fTUjjN1pCLkC..zwMY6HDvacAXQ7H2YoRaJaaZvTEjFqdaP-u8jsS1yksC * tools/skia_goldctl/win: 4l2ybbWBlKkcGXEi6Z6MOOanDzH2X3JuwuKW3hlLcq8C..ZEdHm2J5ysCEG6U97Ynh99pxkjw67x7lhhhZUMiXShkC No update to Clang. Bug: None Tbr: jonahr@google.com Change-Id: If05afcc12c85f8597f3ed09bd67eacc1c795ddca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4242772 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kimmo Kinnunen 62d35a60 2023-02-10T13:05:14 Metal Fix norm16 subimage uploads w/ signed types The supported texture format tables would have entries for a signed or unsigned internal format and matching type. The texSubImage variants do not communicate the sized internal format, rather unsized format type. Data parameters are validated based on format, not internal format. For these, the signed variants were missing. Add texture format table entries for signed types that match the format parameters. Add a precautionary validation case so that future such bugs would not pass the control flow forward, into the copying phase. Fixed: angleproject:8014 Change-Id: I5b00cca8672691fdb953f62093d62feaa724db99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4238881 Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Roman Lavrov 90ddd7c7 2023-02-10T16:47:32 Tests: Add Mini Block Craft trace Test: angle_trace_tests --gtest_filter="*mini_block_craft*" Bug: b/267795849 Change-Id: Ia6087066476992367f432d5d032f6f5542eeb2d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241403 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang 2ca14a9f 2023-02-10T13:58:19 EGL: No-op dma_buf import modifiers on some Mali devices. Some of the vendor checks in the EGL_EXT_image_dma_buf_import_modifiers enablement logic disable the extension on older Mali devices while Chrome depends on the presence of this extension, even if the implementation is no-op'ed. Refactor the logic into DisplayEGL with a tri-state: * Extension exposed and forwarded to the driver * Extension exposed and no-op'ed (Mali) * Extension not exposed (ARM) Bug: angleproject:7664 Change-Id: Idca7bb609423366779a65cd65093c9d5a65f0c19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241483 Reviewed-by: Brian Ho <hob@chromium.org> Auto-Submit: Geoff Lang <geofflang@chromium.org> Commit-Queue: Brian Ho <hob@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov a57e36dc 2023-02-10T12:21:36 Tests: Add Durak Online trace Test: angle_trace_tests --gtest_filter="*durak_online*" Bug: b/267794160 Change-Id: Id8047921bf5c48109fd7b59e8262849571701c5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241398 Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2eb5d29a 2023-02-10T11:42:58 Vulkan: Linked pipelines always need the layout A fix in the spec made it clear that the pipeline layout is always necessary when creating the linked pipeline. This change removes the comment that marks it as a driver workaround. Bug: angleproject:7369 Change-Id: I7d068d330a7517fbc6e064fe2e796c2c53f6b859 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4241397 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
angle-autoroll 6e819b32 2023-02-10T10:01:17 Roll vulkan-deps from 40badb6018c5 to 00e3edd6b635 (3 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/40badb6018c5..00e 3edd6b635 Changed dependencies: * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/be666f39c4..8f15d57b35 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: I9f80e7f86c00d8307c96fdb131946a05bc133405 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4238557 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll e6e7976c 2023-02-10T07:01:44 Roll Chromium from 111e2c20b468 to 5221896b4233 (520 revisions) https://chromium.googlesource.com/chromium/src.git/+log/111e2c20b468..52 21896b4233 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/ec73ae49c0..f8016dcd09 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/70e9f44cbc..0e64446d34 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0e9e5db2f3..439aacf3d9 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/e51c1873aa..93d7491b2e * third_party/android_build_tools/lint: 5BDAxjWpDzT13mci6A0GjF4jCSjYOwUQD_-z9MnRhtUC..HvuZ-UNmu4oxZAJFSD_BiPEdibZvFZBRqB_ShtWRYr8C * third_party/android_build_tools/manifest_merger: gzy9U2HI42hR8r1zspR-mPI3BQ6I3zTmJ3GojAQrvgcC..2JpGK05syKIkt6K-gSTBDV90H50KLdXLP_vyVhXRWqcC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/773cfa5e8b..f623f723b3 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..7947234401 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/d8fb7c9667..10369890bb * third_party/fuchsia-sdk/sdk: version:11.20230208.3.1..version:11.20230209.3.1 * third_party/r8: shk1TNQCPsWWeZyuC5uzvDQmrY2wQfPzO0E_SKCaEu0C..UgTC8OKm5SiqQeTkdMMHkq0jL9h_6gbpI0YTBfHWrs8C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/98dd69cae2..fff7f04d30 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/e534325cbe..419aeec3e9 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/9c5059d900..c1f5729e71 * tools/skia_goldctl/mac_arm64: xe7SkOafMEH4PikK8N-7c1Wt2rPEVLnTG10xrBCAExYC..BUhEAfs1NoEiksslNZjWOXyg_zHe-s72fTUjjN1pCLkC No update to Clang. Bug: angleproject:8003 Tbr: jonahr@google.com Change-Id: Idf52096c48c3c4669d6f8262f682f5bb722417ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4237333 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 9d7292a8 2023-02-09T15:56:57 Vulkan: Unsupress fixed VUs Bug: chromium:1412096 Change-Id: I6b5f2c0e894d354216cb49deba3a65aa7782004f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4237579 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Igor Nazarov 0d0e8c37 2023-02-08T17:33:39 Vulkan: Fix mutable render buffer with protected content. Original implementation used Unprotected submission unconditionally. In case of protected content/commands this may cause undefined behavior. New test works OK despite the bug. VVL also did not show error, but should report: VUID-VkSubmitInfo-pNext-04120 If the pNext chain of this structure does not include a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an unprotected command buffer Also from spec: protectedSubmit specifies whether the batch is protected. If protectedSubmit is VK_TRUE, the batch is protected. If protectedSubmit is VK_FALSE, the batch is unprotected. If the VkSubmitInfo::pNext chain does not include this structure, the batch is unprotected. It is a bug in VVL. It ignores check entirely if VkSubmitInfo::pNext chain does not include VkProtectedSubmitInfo structure. Bug: angleproject:3966 Test: angle_end2end_test --gtest_filter="EGLProtectedContentTest.ProtectedContextWithProtectedMutableRenderBufferWindowSurface*" Change-Id: I0e0762e5fdfe19ce6c2184a36d057a95c2c79f00 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232115 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 70dd4433 2023-02-09T09:56:56 Roll Chromium from 22b1fa2b9cc1 to 111e2c20b468 (1179 revisions) Manually adds third_party/kotlin_stdlib DEPS based on https://chromium-review.googlesource.com/c/chromium/src/+/4226232 https://chromium.googlesource.com/chromium/src.git/+log/22b1fa2b9cc1..11 1e2c20b468 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/a88dbf7fdc..ec73ae49c0 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/8b4b823eed..70e9f44cbc * buildtools/linux64: git_revision:84c8431f3e03cc6226c59dd49637c15ea31169a1..git_revision:edf6ef4b06b42c58292faea78498aff76bdf68ed * buildtools/mac: git_revision:84c8431f3e03cc6226c59dd49637c15ea31169a1..git_revision:edf6ef4b06b42c58292faea78498aff76bdf68ed * buildtools/third_party/libc++/trunk: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/31cf778cc2..035440c707 * buildtools/win: git_revision:84c8431f3e03cc6226c59dd49637c15ea31169a1..git_revision:edf6ef4b06b42c58292faea78498aff76bdf68ed * testing: https://chromium.googlesource.com/chromium/src/testing/+log/38eb24c9f2..0e9e5db2f3 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/cd843b25b4..e51c1873aa * third_party/android_build_tools/lint: sZdG1MNQ0xJujrekhrJYNg_olHerEdSIrcRjrsfZDC4C..5BDAxjWpDzT13mci6A0GjF4jCSjYOwUQD_-z9MnRhtUC * third_party/android_build_tools/manifest_merger: 5Zw4RYBL86koJro2O-jjcZYxOOdEW-hJDYykae8efQAC..gzy9U2HI42hR8r1zspR-mPI3BQ6I3zTmJ3GojAQrvgcC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/fd77243c4e..773cfa5e8b * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/{catapult_..37e879a7d1 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/2c90793139..d8fb7c9667 * third_party/fuchsia-sdk/sdk: version:11.20230202.3.1..version:11.20230208.3.1 * third_party/r8: Ned_emxwurmNCGpvlG5BpLkBfs4sQkz1GvFudutb2TAC..shk1TNQCPsWWeZyuC5uzvDQmrY2wQfPzO0E_SKCaEu0C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6e5ae687b5..98dd69cae2 * tools/luci-go: git_revision:46eca1e3a280c340bf58f967aaded13c87ca3859..git_revision:f6b5518e872364f59bb17dd5a967270b38331b84 * tools/luci-go: git_revision:46eca1e3a280c340bf58f967aaded13c87ca3859..git_revision:f6b5518e872364f59bb17dd5a967270b38331b84 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/2c56755363..e534325cbe * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/be10dc8b8c..9c5059d900 * tools/skia_goldctl/linux: 96rbK3aat75vEXP7ECt3n7am23k8o4IW1Kj2NGUovQIC..B3ETgoPk2gSY8aomIHMZNixKf63RvZDpuJhnZFelSl0C * tools/skia_goldctl/mac_amd64: FntW8cjbXgVS_GvJvQvtt-7TJNG3fIimvtTYIZk0D1oC..NOk7u3dYnhPnUxaMRoyyCQJuMKm8zRMFGnFQEABngAoC * tools/skia_goldctl/mac_arm64: NZBp40siQ-lxQNC8b1WfCOirUrl613zS5Kvaux4g0cwC..xe7SkOafMEH4PikK8N-7c1Wt2rPEVLnTG10xrBCAExYC * tools/skia_goldctl/win: ENCJikCHD8vdfDSnlM_pfnzJG4G3uRkrN2s6giSlxWcC..4l2ybbWBlKkcGXEi6Z6MOOanDzH2X3JuwuKW3hlLcq8C No update to Clang. Bug: angleproject:7828, chromium:1412135 Change-Id: Iadf717df829df0d58b8dab3791b403bc882da082 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236309 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Igor Nazarov aa1f7e19 2023-02-08T21:05:35 Vulkan: Fix CommandQueue Wait Semaphores asyncCommandQueue race. Recently implemented fix has a problem: When using "asyncCommandQueue", wait semaphores flush performed in the context thread, while submit in the async thread. Both operations protected by the mutex, so there is no data race or other UB. It is a potential performance problem: submit operation may attach wait semaphores prematurely, before corresponding commands flushed into the primary command buffer. Fix adds "CustomTask::FlushWaitSemaphores" to ensure wait semaphores and commands flushed in order. Bug: angleproject:7995 Change-Id: I7d3cfad867c59d3cd0a5c0bb3f81ae8d98238362 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4231844 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Charlie Lao b2cfe726 2023-02-07T14:35:24 Vulkan: Make queueSubmit without holding CommandQueue::mMutex VkQueueSubmit and VkQueuePresent could potentially take long. Right now it is called while holding CommandQueue::mMutex lock. In previous CL we moved mInFlightCommands to FixedQueue, which allows push/pop occur concurrently. This CL moves queueSubmit and queuePresent to not take mMutex but uses mSubmissionMutex. This allows other thread to checkCompletedCommands etc while we doing submit/present. The tricky part is that mPrimaryCommands is shared between all contexts. It can contain commands from different contexts, thus the vkQueueSubmit ordering must strictly follow the order of RendererVk::submitCommands() call. The mMutex and mQueueSubmitMutex are managed in a way that does the lock relay so that we always have a lock covering the submitCommands call all the way to vkQueueSubmit. Bug: b/267682377 Change-Id: Ic556cd4c64d334ad1cfc68942b803e401c6b0cc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4218198 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 5d97cbd1 2023-02-07T12:54:26 Vulkan: Move post submit code into a separate function This CL is mostly a clean up and refactoring and prepare for next CL. No actual functionality change is expected. It added a new function for the post queueSubmit logic. It moves CommandQueue::queueSubmit() into the same location as queuePresent. Bug: b/267682377 Change-Id: I240934dc4db06ce1277955938427a9e257211277 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4226006 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Dave Tapuska 995db1f6 2023-02-08T10:40:08 [ios] Fix build failure on iOS. In CL https://chromium-review.googlesource.com/c/angle/angle/+/4217712 a switch was added that is not really supported on iOS but will cause an error with -Wswitch. Return MTLResourceStorageModeShared for that code path. Bug: angleproject:7975 Change-Id: I68e326da4a733892d9282460c3f57e0aac58df08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4233079 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
angle-autoroll 4d0b754b 2023-02-09T16:45:10 Manual roll vulkan-deps from 223515618c53 to 40badb6018c5 (22 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/223515618c53..40b adb6018c5 Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/4386679bcd..6d41bb9c55 * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/0ce2bc4ce0..5b48c549b0 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/93cb25c6a4..e8b8e06d09 * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/96f49d713e..be666f39c4 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,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 Tbr: jonahr@google.com,ynovikov@google.com Change-Id: Ib0850879dd7b4869b8e719bc5db2239d991f74dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236824 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Alexey Knyazev ad582b26 2023-02-07T00:00:00 GL: Expose EXT_texture_border_clamp * Adjusted validation * Exposed both EXT and OES extension names * Fixed border color when lumaWorkaround is enabled Bug: angleproject:7969 Change-Id: Ia5622d4ecbc0b6338ee3651ab58bf1ca5276bbc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4231843 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Yuxin Hu e1bd0415 2023-02-03T16:58:21 Revert "Re-land fixing of commit ID for Android builds." This reverts commit e6662832af3c6394d0a0bbecd1e7a52581e88b12. After the commit https://github.com/google/angle/commit/61728827d2e5ecce685578bc54bb2c744b65fc9a, we no longer depends on git hash to determine if the program binary cache is valid. The reverted commit was added to handle unknown git hash. Android build infra does not guarantee access to git, and we needed GetANGLEHasBinaryLoading() check because we can't tell if ANGLE program changed if git hash remains "unknown" across different builds. Now that we used a different hash ANGLE_PROGRAM_VERSION as the cache key, which generates from a list of code files that affect program binary content and it won't be unknown on Android build, we can revert the commit and rely on ANGLE_PROGRAM_VERSION to reject invalid program binary cache. This fixes the dEQP test dEQP-GLES3.functional.shader_api.program_binary. simple.uniform_reset_on_binary_load, which failed because the GetANGLEHasBinaryLoading() is stopping Program::loadBinary() due to "unknown" git hash on Android build. This CL reverts most of the original commit, cleans up unused macros and variables, and reserves the change in program::loadBinary() that returns incomplete if binary format is not GL_PROGRAM_BINARY_ANGLE. This CL also reserves the changes in https://github.com/google/angle/commit/dd8021d98cd2909dfb85012f9b25010bd3ce2536 in case Sumsung parter still needs them. Bug: b/258445879 Change-Id: Ia4380de9362f7b8bed6de6a54943bec6600cb76b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219368 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Igor Nazarov 7da34485 2023-01-17T16:17:51 Vulkan: Changed "asyncCommandQueue" Pending Present info logic. Required for future commits. Details: - Fixes possible stale result in "CommandProcessor::mSwapchainStatus" after WindowSurfaceVk destruction. - Fixes possible dead-lock when the old "getLastPresentResult()" method might be called more than once. - New implementation allows waiting multiple times (and multiple threads) for the same Present result. Before commit: 31c4093651079775acf34ea1bb06bdabb4ea4386 Vulkan: Rework present semaphore recycling There was assert in CTS: dEQP-EGL.functional.swap_buffers_with_damage.resize_before_swap.* Assert failed in ~SwapchainCleanupData (../../src/libANGLE/renderer/vulkan/SurfaceVk.cpp:669): swapchain == VK_NULL_HANDLE Because of the stale "CommandProcessor::mSwapchainStatus" and a race-condition as the result. The "Vulkan: Rework present semaphore recycling" did not fix the problem, but rather changed undefined behavior symptom. Bug: None Change-Id: Idf08a29265a43c711941b142001eb4380e2aa2b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194184 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 93515ccf 2023-02-08T18:04:40 Vulkan: Add OneOffCommandPool for unprotected/protected commands Current implementation of "OneOffCommandPool" initializes single "vk::CommandPool" instance basing on the first use. This may cause a situation when Protected command buffer is used for Unprotected content/submissions and vice versa. This CL replaces single "OneOffCommandPool" instance with "ProtectionType" enumeration map. Bug: angleproject:8010 Change-Id: I7baa7ff5a42a96bc2f8bfeedcdc74d70a455abb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232116 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 8b9bd182 2023-02-08T16:17:10 Vulkan: Refactoring to use ProtectionType enum instead of bool This is a second stage of refactoring that was started here: Vulkan: Minor CommandQueue implementation refactoring. 0210b46d35b51ea04bddafb48ba406a87c39e58e Enumeration renamed: CommandContent -> ProtectionType. Currently interfaces of ContextVk/RendererVk/CommandQueue use "hasProtectedContent" boolean. Internally CommandQueue uses "vk::ProtectionType" enumeration to separate states related to Unprotected/Protected commands. This CL replaces boolean with enumeration for consistency. Bug: angleproject:7995 Change-Id: Ibb98cce661358d464be7c6a8367a1297d7093b1c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232114 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Cody Northrop 1f9759aa 2023-02-03T11:14:08 Tests: Add Samsung support in our test harness Test: Progress towards running end2end tests on Android Bug: b/267953710 Change-Id: I91e4e58833c3a55705b96871be6b124964605b83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227946 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 2618a9bc 2023-02-08T14:14:02 Vulkan: Fix fragment shading rate entry point init The function to initialize vkGetPhysicalDeviceFragmentShadingRatesKHR was accidentally initializing vkGetPhysicalDeviceExternalSemaphorePropertiesKHR. Bug: angleproject:7172 Change-Id: I2c76e1b88c5ce2e996d5581731010053821e6f7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4233091 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Roman Lavrov 4c978523 2023-02-08T13:46:01 Tests: Add Add Words Crush: Word Puzzle Game trace Test: angle_trace_tests --gtest_filter="*words_crush*" Bug: b/267795212 Change-Id: I7c5c19b4306dd9b141f8880e1b4e7948629b6a73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4233090 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 1936ac00 2023-02-08T18:51:58 Fix InstancingTestES3.LargeDivisor suppression Really skip on Win SwANGLE Bug: angleproject:7900 Change-Id: Idcce5545eb4a990c1bc571acf537aac3347a3191 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4231842 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Geoff Lang 46f68dba 2023-02-06T15:22:31 Metal: Support LibraryCache below c++20. Usage of generic lookup with is_transparent is supported in c++20 or any recent absl version. Add macros to feature test c++ and fall back to copying the keys if generic lookup is not supported. Bug: chromium:1385510 Change-Id: I4017890e2cc664afe127defd63b8dd50fb6f4163 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224874 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Auto-Submit: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Alexey Knyazev 93e311f7 2023-02-07T00:00:00 Add channel info to compressed formats in angle::Format Fixed: angleproject:8011 Change-Id: I2ea08f30523c08b7ca11ee327990a110a448ca42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4232118 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Le Hoang Quyen 92f26ce3 2023-02-02T17:53:48 Metal: fix UBO argument buffers didn't work with managed storage. This bug would happen when forceBufferGPUStorage feature is turned on. This feature forces all buffers to use managed storage mode. We use mtl::BufferPool to allocate an UBO argument buffer. However, we didn't tell it to map the buffer. Later when we used MTLArgumentEncoder to encode the buffer, mtl::Buffer::flush would be a no-op because the Buffer didn't know that it was modified by the MTLArgumentEncoder on the CPU. Consequently, its memory's encoding write wouldn't be visible to the GPU. Fix by passing a mapped pointer to mtl::BufferPool::allocate. This will force a buffer mapping to occur. And memory flushing will properly be invoked after MTLArgumentEncoder finishes the encoding. Fixed: angleproject:7999 Change-Id: Ie486ae526672c89548ee14bc0824da1fdd5673c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4217055 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Gregg Tavares <gman@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Igor Nazarov b6cc5754 2023-01-17T16:17:22 Vulkan: Fixed Wait Semaphores problems. This feature fixes 2 problems. 1. Swapchain Image Acquire Semaphore added to wait list AFTER rendering commands: - Make Window Surface current. - Clear Window Surface (Image is Acquired). - Perform rendering to the Window Surface. - Change to other Surface (for example: PbufferSurface) using the same Context. - Unmake Context from current to ensure commands are submitted. - Rendering commands to the Window Surface will be submitted without Acquire Semaphore. 2. Context from other thread may submit command of another Context without proper Wait Semaphores: - Make Window Surface current in the first context. - Clear Window Surface (Image is Acquired). - Perform rendering to the Window Surface. - Call "glBeginQuery()/glEndQuery()" (or other commands) - this will flush command to the Primary Command Buffer without submitting. - In other Thread and Context make some Surface current (for example: PbufferSurface). - Clear that surface with scissor and unmake Context from current to ensure commands are submitted. - Rendering commands to the Window Surface from the first Context will be submitted without Acquire Semaphore. - Problem will happen even if add Wait Semaphore BEFORE writing rendering commands. Bug: angleproject:7995 Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.WaitSemaphoreAddedAfterCommands*" Test: angle_end2end_tests --gtest_filter="EGLSurfaceTest.CommandsSubmittedWithoutWaitSemaphore*" Change-Id: I28174ff98fdd09b4117962fc0810cfeeb2a4d1f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4194182 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yuxin Hu a4c7abcb 2023-02-06T10:37:41 Advertise GL_OES_geometry_shader and GL_EXT_tessellation_shader Remove the exposeNonConformantExtensionsAndVersions flag from the GL_OES_geometry_shader and GL_EXT_tessellation_shader extensions enable condition in vulkan backend. All the dEQP tests related to geometry shader and tessellation shader are passing on Pixel 6 and Pixel 7. See reults here: https://atp.googleplex.com/test-runs?offset=0&testName=v2%2Fangle-for-android%2Fangle_deqp_internal_main&trigger=BUILD. Current dEQP failures: dEQP-GLES3.functional.shader_api.program_binary.simple.uniform_reset_on_binary_load GLES31.functional.synchronization.in_invocation.ssbo_alias_overwrite dEQP-EGL.functional.mutable_render_buffer.basic are unrelated to these two extensions. We can remove the exposeNonConformantExtensionsAndVersions flag restriction on exposing these two extensions. Bug: b/238244188 Change-Id: Ide5252e27e2132997d1b3d36c6f2bfe5958be45d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4226312 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Kimmo Kinnunen 9a6c90c8 2023-01-26T14:26:49 Reland "Metal: Avoid leaking buffers for GPU access for non-discrete" The code would pass BufferManager::getBuffer(..,useShared=false,..) and use that as key to try to obtain a buffer from the cache. The BufferManager would store the returned buffers based on the actual storage mode of the buffer. The storage mode for the buffers for integrated / iOS devices is always shared. The above logic would lead the buffer manager always storing returned buffers to the cache, but never being able to consume any from the cache. The cache is designed to grow unbounded, and so it did. Remove the inconsistent logic of passing variation of "use shared bool" as the arguments. Various places consulted various different Feature options in inconsistent manner. Instead, add Buffer::Usage for the callers to express what kind of access pattern to expect a buffer to be used. Add explicit MTLStorageMode parameters to Buffer constructing functions. Remove redundant functions from Buffer. Remove dead code from BufferPool related to allocation policy. Reland: continue to allocate buffers with shared rather than managed mode in BufferPool, as otherwise bug angleproject:7997 is encountered. Bug: angleproject:7975 Change-Id: Iae4e75a85e6d49b20e724ed037a7c14cc0f7693f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4217712 Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Gregg Tavares <gman@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Kaiyi Li ac0a4a7d 2023-02-03T15:34:32 Add finer memory allocation type ... so that when we hit an OOM we have better understanding on why. Bug: b/266466279 Test: trigger a Vulkan OOM, see detailed allocation logging info Change-Id: I71c1ebd83e18ddb22e7abfd29a785bf4ad6454dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219365 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Kaiyi Li <kaiyili@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Kaiyi Li 9b2f52d2 2023-02-02T14:25:44 Use WARN to log the allocation info on allocation failure ANGLE just strips off the INFO log, so we won't see any logs in production when an allocation failure happens. Change to use WARN instead. Bug: b/266466279 Test: launch with an emulator, see the log output when allocation fails Change-Id: I0a0828176feaf840aaa95f7127a2b90cf9cc653c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219939 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Kaiyi Li <kaiyili@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi b3846714 2022-11-28T11:05:05 Vulkan: Feature to make async queue slow for testing Bug: angleproject:6746 Change-Id: I2573cae2dcf42d177168c55bc2a6d8bb012dde18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227986 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 28da0a3e 2022-11-28T14:43:10 Vulkan: Avoid swapchain recreation on present mode change Bug: angleproject:7878 Change-Id: I5a36c206dc8feb640fc684f92c10c26628633601 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4088907 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jeff Vigil <j.vigil@samsung.com>
Charlie Lao ad81cc95 2023-02-01T16:23:02 Vulkan: Switch CommandQueue::mInflightCommands to FixedQueue mInflightCommands has a limit of size. With std::dequeue, we may end up resize the storage which means moving elements around. This CL switches it to use angle::FixedQueue. This also allows us to make calls to CommandQueue like checkCompletedCommands while other context doing queueSubmit/queuePresent in the future CLs. Bug: b/267682377 Change-Id: Id29641d37929328d00c5b52c019eea34f7189d0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4214507 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 11951f2f 2023-01-31T09:56:16 Vulkan: Add FixedQueue class for CommandProcessor::mTask This CL adds FixedQueue class. It uses std::array for the storage. It supports concurrent push and pop from two different threads. If producer want to push from two different threads, then proper mutex must be used to ensure the access is serialized. Similarly if consumers want to pop from two different threads, a mutex must be used to ensure serialized access. Caller must ensure queue is not empty before pop and not full before push. This CL switches CommandProcessor::mTasks to FixedQueue and moved mSubmissionMutex to protect the serialized submission (i.e, pop from queue). mWorkerMutex is still used to protect push operation. With this change, we now supports continued enqueue to mTask of CommandProcessor while other context is doing CommandProcessor::waitForResourceUseToBeSubmitted(). Bug: b/267348918 Change-Id: I6c5fe288436daa7e0f3bcbbcd16c5d2e5e27f2e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210653 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 046db15c 2023-01-16T15:25:33 Vulkan: Remove redundant ImageState::sourceType It was the same as ImageState::target Bug: angleproject:7962 Change-Id: I0ed95deaa23087abbe975a99304bae6ea515ab7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4168455 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov a77e8e3a 2023-02-06T16:24:06 Limit logging when invalid calls are not captured. An app was crashing during capture due to a huge volume of such calls: % adb logcat -d | grep 'Not capturing invalid call' | wc -l 20609 There are a couple of cases where validation silently ignores "benign" invalid calls, such as glUniform*(-1, ...): https://crsrc.org/c/third_party/angle/src/libANGLE/validationES.cpp;drc=0c4306fc554c80506eb0f9b833a5d2a5fdd452d5;l=2815 Limit to (separately for active and inactive capture so that we still see these after triggering mid-execution capture). Example log after this CL: 02-07 11:54:45.869 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f 02-07 11:54:45.874 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f 02-07 11:54:45.882 7657 7749 I ANGLE : INFO: FrameCapture (capture inactive): Not capturing invalid call to glUniform1f (will no longer repeat for this entry point) ... (then I triggered capture) ... 02-07 11:55:13.049 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f 02-07 11:55:13.049 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f 02-07 11:55:13.050 7657 7749 I ANGLE : INFO: FrameCapture (capture active): Not capturing invalid call to glUniform1f (will no longer repeat for this entry point) Bug: b/267795212 Change-Id: I2f150cfa5b4c74fc1ebe5abeb1201cc4caad80e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224875 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Igor Nazarov 0ee67145 2023-02-06T18:08:26 Vulkan: Fix bug with ContextVk::mWaitSemaphores processing. Regression: 2e5ca217ca134a7ae4e241e2f7e4cfa637305af7 Vulkan: Let each current context has its own QueueSerial. Problem details: - Call to finishImpl()/flushImpl() will skip mWaitSemaphores processing when there are no pending commands. - finishImpl() will call clearAllGarbage() that will clear all mCurrentGarbage. - However, some mWaitSemaphores may be in the mCurrentGarbage (Semaphore created in SyncHelperNativeFence::serverWait()). Bug: angleproject:8007 Test: angle_end2end_tests --gtest_filter="EGLSyncTest.AndroidNativeFence_VkSemaphoreDestroyBug*" Change-Id: Ia51663eae739b505ca00437cea4ae71526dedbfb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4225392 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Charlie Lao b930cdbf 2023-01-31T12:27:42 Vulkan: Make CommandProcessor only wait for required work CommandProcessor::waitForResourceUseToBeSubmitted() is waiting for all works in the mTasks to be submitted. This CL makes it only wait until the requested ResourceUse has been submitted to vulkan. The reason waitForResourceUseToBeSubmitted is currently waiting for all mTasks to empty is because submission can only occur in worker thread. In this CL, this has been changed so that submission can come from any thread. In the case of waitForResourceUseToBeSubmitted, since we are waiting, we could rather just drain the mTasks in the calling thread. This avoid thread hoping, and more importantly, able to get rid of the idle conditional variables and make code simpler. Bug: b/267348918 Change-Id: Ia55dc4bc93925cf926aad5b53936cbc42036ac38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4210650 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov a88d9f03 2023-02-07T02:37:53 Vulkan: Refactoring in RenderPassCommandBufferHelper. This is a follow-up refactoring after CL: cae00d9bba91bd6857d71c07b853dba8485e2ab8 Vulkan: Cleanup shared ring buffer cmd alloc feature. "mCurrentSubpass" naming is a bit confusing. When custom Vulkan secondary command buffers are used, "mCurrentSubpass" is always "0". This is because custom command buffers allows storing multiple subpasses. This CL renames this member into "mCurrentSubpassCommandBufferIndex", to clearly state that it is refer to command buffer index of a current subpass. Custom command buffers will always use single buffer ("0"), while Vulkan secondary command buffers will have a buffer per subpass. Bug: b/256666069 Change-Id: I6777e3ca4ee57513e1c36f05f8d223eb086b095a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227072 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Igor Nazarov 001b004d 2023-02-07T00:48:37 Vulkan: Fixed assert in DedicatedCommandBlockPool onNewCommand() It is valid to allocate "kBlockSize" bytes. Bug: b/256666069 Change-Id: I0cd37a450af3de476c05e7681f32cdae5916d56b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227071 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov 36a4b33c 2023-02-07T17:41:01 Remove valid_param_values.h exception from export_targets Fixed upstream Bug: chromium:1412096 Change-Id: Iedb91040a835015301e1395310eea57f4744732f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4225034 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Kenneth Russell c799074c 2023-02-06T21:52:41 Metal: Implement EXT_disjoint_timer_query. Time-elapsed query objects allocate and deallocate storage slots in the CommandQueue. Command buffers register themselves with these slots (if active) upon allocation, and upon completion, accumulate their execution time in the slot. Query objects accurately track completion and report the total accumulated execution time for all command buffers issued while the time-elapsed query was active. Timestamp queries are not implemented. A pointer to implementation suggestions has been added to the code. Tested with the WebGL conformance test: conformance/extensions/ext-disjoint-timer-query.html Fixed: angleproject:7828 Change-Id: Ia022d0f3a52f2098bd01cf96f7cc20e3d347197e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4226410 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Kyle Piddington <kpiddington@apple.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Caleb Raitto 95c60d90 2023-02-07T16:39:46 Fix broken links https://chromium-review.googlesource.com/new-password serves a 404 -- it's changed to https://chromium.googlesource.com/new-password Bug:chromium:1412557 Change-Id: I229d8f493d2452c929b872ac79cb3434e6ceeaab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4224884 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Brian Sheedy 2510afd2 2023-02-02T13:30:26 Enable Skia Gold inexact matching Enables inexact matching for ANGLE tests that use Skia Gold using the fuzzy algorithm. This will allow images to be auto-approved if it appears that the differences are due to rounding. Bug: angleproject:7985 Change-Id: Iee791ff2bd06ce426d27e05cf5a6eb0058e857af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4219862 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 1857345f 2023-02-07T10:18:25 Improve logging when crashing due to locked screen. When screen is locked we see this message in logcat: 02-07 10:13:42.663 1623 4713 V SplashScreenExceptionList: SplashScreen checking exception for package com.android.angle.test (target sdk:33) -> false followed by ANGLE crash due to nullptr. Bug: chromium:1405504 Change-Id: Ib3c00cae160e950f8207c9cc0297c92c8b8afe98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4227987 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 3886af6e 2023-01-16T15:17:40 Vulkan: Generalize AHB optimization prohibitions ... to all external images. Bug: angleproject:7962 Change-Id: Ib8e090b995330b651865953057869adb4d14c83b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4169559 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>