Log

Author Commit Date CI Message
Shahbaz Youssefi d252425d 2025-02-06T14:51:36 Vulkan: Check source image usage flags in copy paths ... instead of the format feature flags. If the source of the copy is has external format (allowed with glCopy[Sub]TextureCHROMIUM), the format feature checks are unable to query the format features. However, the image usage flags already have the required information (whether the image can be copied from, sampled from, etc). Bug: chromium:383056998 Change-Id: I2ba8820751eb526ef497a8be724193276fd46160 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6238265 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Igor Nazarov ae84e067 2025-02-10T19:31:37 Vulkan: Use correct feature in queryAndAdjustSurfaceCaps() Check "supportsSurfaceMaintenance1" feature instead of "supportsSwapchainMaintenance1", because `VkSurfacePresentModeEXT` structure requires "VK_EXT_surface_maintenance1" extension and not "VK_EXT_swapchain_maintenance1". Some platforms may expose one but not the other, causing inconsistent `GetMinImageCount()` calculations and swapchain recreation on each frame if "perFrameWindowSizeQuery" feature is enabled. Bug: angleproject:42267111 Change-Id: Id17bec8017799a7c175e6a4b03583665faf5dddd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6249841 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 0026006d 2025-02-10T12:03:40 Vulkan: Fix missing barrier between dispatch calls When storage images are used, ANGLE accidentally did not mark the images as being written to, so subsequent barriers were not produced when necessary. Bug: angleproject:352610491 Bug: b/394611669 Change-Id: Idd3e6aa6b90212605594240a533ebaec66850ea9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6249459 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov c4caed5f 2025-02-10T06:17:01 Revert "UNREACHABLE -> __builtin_unreachable() in release clang builds" This reverts commit 7370bb573dd8b37006d409fc8917ff49912dd75a. Reason for revert: issue identified by fuzzer crbug.com/394980074 Original change's description: > UNREACHABLE -> __builtin_unreachable() in release clang builds > > This enables compiler optimizations such as reducing the amount of > branching, see anglebug.com/394129077#comment1 > > Reduces .so size in an Android perf build by 0.4%. I spot checked a few > differences and saw less branches (this will be causing a different > behavior in UNREACHABLE branches) as well as more functions getting > inlined (likely due to compiler heuristics due to less branches) > > Bug: angleproject:394129077 > Change-Id: I23411ca7a49d3daf2a0621bfcc0b2523d4db4f5a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231111 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Roman Lavrov <romanl@google.com> Bug: angleproject:394129077 Bug: chromium:394980074 Change-Id: I7398d86c692e5c50ac1185c30e2053eb87f9bd70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6248417 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll a4b89fc8 2025-02-10T08:01:51 Roll VK-GL-CTS from 1177f7b7d556 to 69ec1790cb7c (8 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/1177f7b7d556..69ec1790cb7c 2025-02-06 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main 2025-02-06 rgarcia@igalia.com Test DGC with mesh shaders and no fragment shader 2025-02-06 rgarcia@igalia.com Add SampleMask variants to dynamic A2C DGC tests 2025-02-06 rgarcia@igalia.com Test dynamic FSR with device-generated commands 2025-02-06 rgarcia@igalia.com Test destroying set layout immediately after creating DGC IES 2025-02-06 rgarcia@igalia.com Test using a depth-only pass with mesh shaders 2025-02-06 marcin.zajac@cognizant.com Fix subgroups multiple dispatches test for Vulkan SC 2025-02-06 kamil.goras@mobica.com Test maximum degree of anisotropy. Testing was removed by #637. Add excluding tests using *test-issues.txt for gles3-khr in build_mustpass.py If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC abdolrashidi@google.com,angle-team@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: abdolrashidi@google.com Change-Id: I3c4203b0da9b9cfc95fccc695a31df7ba972e99d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6247809 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 9b75ed9a 2025-02-10T10:01:11 Roll vulkan-deps from c32804ca5a39 to b4c8dd090b72 (10 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/c32804ca5a39..b4c8dd090b72 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/a15ec3f54859037512aac22e58ea45aef09cde40..a0bfdde8b720c81fb37f42d2fa00522e68699268 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/682bcd51548e670811f1d03511968bb59a1157ce..b3fe11f89bd6673a1a8c55b0ddb9ba42811f0774 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e00009bc3f550898c92e96a77ae4dca963778301..05e71c3af5bb92b26af767b00789e71bc65b72aa If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC abdolrashidi@google.com,angle-team@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: abdolrashidi@google.com Change-Id: I4346a51c1ed3565df37ba0914b8866f28c80b0de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6247811 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov ef2ef107 2025-02-09T10:53:00 Suppress ImageTestES3 on Pixel 6 Vulkan ImageTestES3.ClearYUVAHB ImageTestES3.RenderToYUVAHB Report on Pixel 6 Android 14: VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336 Suppress temporarily while VUID is being fixed. Bug: angleproject:395223719 Change-Id: I52c7fea1058b522badbbd3be5050a01b099d15a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243416 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> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya aef40167 2025-02-07T13:42:34 Vulkan: Account for padBuffersToMaxVertexAttribStride ... when evaluating maxTextureBufferSize Bug: angleproject:391002353 Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size KHR-GLES32.core.texture_buffer.texture_buffer_max_size Change-Id: I7f59d642ed5af87fdb0c683189da88b0a70a1122 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244611 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Robic Sun b5584cfd 2025-02-05T15:14:52 ValidTexLevelDestinationTarget should add external related cases GL_TEXTURE_EXTERNAL_OES is not documented in OES_EGL_image_external spec, but we consider that to be an omission in the spec. Bug: angleproject:394380758 Change-Id: Idb5523c173ae0a5910af97639dadff3c5adf9fdf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232504 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Charlie Lao ffb7575c 2025-02-07T10:25:22 Vulkan: Reserve reasonable amount storage for GarbageObjects Based on data collected from app traces, set the initial storage enough to accommodate most of the usage cases. For ContextVk::mCurrentGarbage, the problem is that after the collectGarbage call, it lose the capacity value, so next time it end up with 0 and slowly grow the capacity again. This CL always keeps the capacity after the collectGarbage call. Bug: b/293297177 Change-Id: I70deccd879311aebe6ea3bbf4ecf5c54a74ef584 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244922 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 3dcd143c 2025-02-06T15:06:02 Vulkan: Reduce GL_EXT_texture_storage_compression related overhead Most of apps not using fixed rate compression extension, but we are getting into all these logic that checking for vulkan driver's support of compression rate. This CL adds a check in TextureVk::initImage(), so that it only goes down that logic if mState.getSurfaceCompressionFixedRate() is not GL_SURFACE_COMPRESSION_FIXED_RATE_NONE_EXT. This means for all existing app traces we have, we should not go down these logic any more. This CL also made TextureVk::getFormatSupportedCompressionRatesImpl() and ImageHelper::getCompressionFixedRate() out of TextureVk and ImageHelper class given they are not accessing the data member at all. Bug: b/293297177 Bug: angleproject:352364583 Change-Id: Ib5eebf54172f194d7c65c2d2d751326b7923403f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239523 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao f6c5db26 2025-02-06T13:28:03 Vulkan: Reserve enough storage for GLRates Bug: b/293297177 Change-Id: Ie42dd646f7a4f5b0710058fc1612148c1d650e03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231517 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 6eb9789e 2025-02-06T11:59:31 Vulkan: Reserve enough storage for mSwapchainImages Investigation shows that when running traces in back to back mode, mSwapchainImages end up with max size of 6 or 7. This CL reserve the enough capacity (8 to be power of 2) so that no storage reallocation related data copy will occur. Similar storage is reserved for mSwapchainImageBindings as well. Bug: b/293297177 Change-Id: I1e216b6eaeed72554a20d27963b797b00ca5fd07 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6240592 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Austin Annestrand 2ab36882 2024-09-16T14:28:49 CL/VK: Add fillBuffer staging/transfer routine Bug: angleproject:377545840 Change-Id: I90f6896f96af25d7776a36595930b81af8c1141b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6237414 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Austin Annestrand ffbcd15e 2025-01-06T16:07:02 CL: Update event creation routines Move backend construction after frontend construction completes. This avoids potential undefined behavior if backend construction tries to access members of half-constructed frontend object. Add virtual onEventCreate routine for any actions that need to be performed after cmd event has been created. Additionally, this also fixes incorrect timestamp values when queue profiling is enabled for the VK backend. This was due to a missed event association to the cmd queue. Bug: angleproject:377942756 Change-Id: I0a2f0390cc04f94143d1801ad71e06f63785f3ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149055 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Gowtham Tammana <g.tammana@samsung.com>
Mohan Maiya eaf06ea7 2025-02-06T13:58:07 Vulkan: Bugfix in resolvePrecisionMismatch(...) Early-return if a varying is not active in either the front or back shader Bug: angleproject:386749841 Test: GLSLTest.MismatchedInactiveVarying* Change-Id: Ie0c6dfd6616afcb94bec043d36d4f8188df8abb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239031 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Geoff Lang 9f8d7cc2 2025-01-23T13:27:19 WebGPU: Stream incompatible vertex and index data. Support reading back index and vertex buffers to stream incompatible source data. For now this includes: * Non-multiple-of-4 stride vertex data * Stride not a multiple of the type size * Unsigned byte indices Fix fallback formats so that all GLES formats have a fallback. Fix CopyToFloatVertexData writing the alpha channel as Float32One with a static_cast which converted Float32One (an integer) to a float instead of bit-casting. Bug: angleproject:368602384 Change-Id: I7eb1ba7ad1ec4292060c18de22f5948136cbb0a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194556 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 49ca2e22 2025-02-07T09:58:12 Vulkan: vkQueueWaitIdle on device loss On device loss, a driver bug was encountered when cleaning up resources if vkQueueWaitIdle is not called. Bug: chromium:371512561 Change-Id: Ib0d4f317a15a1788f0cf206842cb1e7bf6936d96 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244337 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 0790b50d 2025-02-07T11:15:11 Android: Sleep after orientation change in EGL test In each of the EGLPreRotation* tests that change dislay orientation, we have a sleep that gives the Android device time to react. A new test was added that didn't include the sleeps and is causing flaky asserts based on how it got sharded for testing. This CL adds the sleeps, mirroring other tests. Test: EGLPreRotationSurfaceTest.CheckSurfaceCapabilities Bug: angleproject:395110957 Change-Id: If2a959d69ba4f4b4ed0f6a6fbffb94762174966d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244919 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll a7f5ae52 2025-02-07T10:01:08 Roll vulkan-deps from 4d67b5012a2f to c32804ca5a39 (25 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/4d67b5012a2f..c32804ca5a39 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/39766a06679bf5e4bc1e0339136f1b6a519fcec5..8a6b381c9afbfaf9fff851582539fab15ea480c0 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/5728a66537b23986135f50c465fcb282b0434da4..a15ec3f54859037512aac22e58ea45aef09cde40 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/e7294a8ebed84f8c5bd3686c68dbe12a4e65b644..09913f088a1197aba4aefd300a876b2ebbaa3391 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/9d07794bc955101c79cbd260233fcc65b9951cfc..682bcd51548e670811f1d03511968bb59a1157ce https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/c52931f012cb7b48e42bbf2050a7fb2183b76406..a9f88a232a4cd6634e47f0f93c8fac5789387a7a https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e9d5ff418fd29381205b7617170a6d556bc6a10e..e00009bc3f550898c92e96a77ae4dca963778301 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Change-Id: I304fb09e84cc50d18abd28938ee4733042ca739c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243349 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Kimmo Kinnunen d4083c79 2025-01-31T15:06:36 Metal: Make ObjCPtr available to all modules Move ObjCPtr implementation to src/common/ObjCPtr.h, angle::ObjCPtr so that it's available also outside libANGLE. Bug: angleproject:393263506 Change-Id: I8ecd5632c7ae33ef4b409fc820fad229e91bc0ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219318 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
angle-autoroll d3552825 2025-02-07T02:01:43 Roll SwiftShader from 28a2e8a45f16 to 5017ce3c800e (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/28a2e8a45f16..5017ce3c800e 2025-02-05 swiftshader.regress@gmail.com Regres: Update test lists @ 28a2e8a4 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/swiftshader-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Iaf27239487ce52843501fb7dc7ca9958a5224cd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6241924 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kimmo Kinnunen 4e5f2ca3 2025-01-31T14:30:05 Metal: Rewrite AutoObjCPtr as ObjCPtr Rewrite without WrappedObject base class, the base class only convolutes things and does not help. This way the class can be moved upwards in the software layers in subsequent commits. Fix the class so that it can be used with ObjCPtr<T> and ObjCPtr<id<P>> signatures, to resemble other smart pointers. Remove the Auto prefix, ObjCPtr should be relatable to other smart pointers such as unique_ptr. Bug: angleproject:393263506 Change-Id: Ia5a5728514b7f9182c2ec8380c04716e8b9d2351 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219317 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
angle-autoroll e9cda7f6 2025-02-06T08:01:49 Roll VK-GL-CTS from 48e7f3020f52 to 1177f7b7d556 (5 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/48e7f3020f52..1177f7b7d556 Includes manual merge to remove GN reference to deDefs_kc_cts.h 2025-02-04 lorenzo@khronosgroup.org Remove all references to KC-CTS and GTF 2025-02-04 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main 2025-02-04 elima@igalia.com Add VK_KHR_video_maintenance2 tests 2025-02-04 lorenzo@khronosgroup.org Update external sources and use Vulkan 1.4.307 2025-02-04 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Change-Id: I881df1f09ca98c892a485c5a8368c3f6eda390f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6237566 Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov c24468c9 2025-02-06T19:04:19 Fix "fallthrough annotation in unreachable code" in release d3d builds The same issue I ran into in https://crrev.com/c/6231111 but on d3d Bug: angleproject:394129077 Change-Id: I90faa01fa66c514162a1d5e4cbe56a2bfd85085e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6237859 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Amirali Abdolrashidi 7263989e 2025-02-06T13:20:14 Vulkan: Fix VUID-vkBindBufferMemory-buffer-01444 Some platforms issue a VVL error regarding memory allocation for an external buffer. It seems to be due to the fact that the memory is not allocated as a dedicated memory for the buffer, whereas the buffer requirements (as reported in vkGetBufferMemoryRequirements2()) show that it requires a dedicated memory. This causes an issue when binding the buffer to the memory. This change explicitly sets the dedicated memory information for the external buffer, so the memory is regarded as dedicated and be able to be bound to the buffer without errors. * Added VkMemoryDedicatedAllocateInfo when calling to allocate memory for the external buffer (InitAndroidExternalMemory()). * Appended this structure to the extra allocation info via pNext. * Unsuppressed VUID-vkBindBufferMemory-buffer-01444. Bug: angleproject:394598758 Change-Id: I0d952cea204e528c23859c74909dbbb0751d0b65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239029 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov 0ef55535 2025-02-06T15:40:28 FastVector::resize_down never increases capacity Note: this function is currently only called by SPIR-V code generation In particular, SpirvTransformer::transform() was bloated 8896 -> 9756 bytes due to ensure_capacity() getting fully inlined. After https://crrev.com/c/6236800 this makes a much smaller difference but this still probably makes sense as before this CL the only difference between resize() and resize_down() was an assertion. Bug: angleproject:394848869 Change-Id: If55a41d67e26a9bc1a30cb0012d1958faa734cc8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6238266 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov fb563c3e 2025-02-06T15:29:14 FastVector capacity increase is a function call FastVector::ensure_capacity() gets inlined in many places, but capacity increase is a rarely needed case. Move code to increase_capacity and make it a function call. This reduces the size of a release Android .so by ~14KB. Bug: angleproject:394848869 Change-Id: Iefb5fe894d8c8eaba2d251502925de453290bc31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6236800 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Kimmo Kinnunen 1675d47f 2025-01-31T10:05:03 Metal: Remove incorrect AutoObjCPtr construct on T && The T && constructor and operator= were incorrectly marked up as "ownership transfer", clearing the source. However, there is no ownership transfer in the assignment, and the call sites only work due to the T source holding is never unretained directly. Consider correct sequence (T is NSMutableArray *): NSMutableArray *obj = [[NSMutableArray alloc] init]; AutoObjCPtr<NSMutableArray *> myHolder = std::move(obj); [obj release]; Since the construct was retaining, the correct operation would need a release on the original raw obj-c pointer. However, the T && constructor would clear out the raw obj-c pointer, and thus calling release on the original pointer would not be possible. Remove the T && constructor, and use just normal T constructor. There's no ownership transfer when constructing AutoObjCPtr -- it is a retaining operation. The constructor does need T &&, raw obj-c objects are just passed normally as pointers, T. Call sites keep their std::move()s, which are no-ops. When functions accepting obj-c pointers get changed to accepting AutoObjCPtrs, the move will start actually transferring the ownership. Bug: angleproject:393263506 Change-Id: I5847f2ec98ab372343d0d2559c92dee9a327e126 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219316 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 60a9320c 2025-02-06T14:31:43 Move unlikely path of MakeLengthOp to a function call This function gets inlined many times, adding 96 bytes of assembly to each caller such as angle::spirv::WriteStore etc. In total, this CL reduces Android release .so size by ~14KB Bug: angleproject:394848869 Change-Id: Ief364116fd9b881f9c0dfefb1ca5005282bf57ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6236799 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 7370bb57 2025-02-04T13:19:37 UNREACHABLE -> __builtin_unreachable() in release clang builds This enables compiler optimizations such as reducing the amount of branching, see anglebug.com/394129077#comment1 Reduces .so size in an Android perf build by 0.4%. I spot checked a few differences and saw less branches (this will be causing a different behavior in UNREACHABLE branches) as well as more functions getting inlined (likely due to compiler heuristics due to less branches) Bug: angleproject:394129077 Change-Id: I23411ca7a49d3daf2a0621bfcc0b2523d4db4f5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231111 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
angle-autoroll 38aa0780 2025-02-05T10:01:12 Roll vulkan-deps from 430dae9cea66 to 4d67b5012a2f (34 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/430dae9cea66..4d67b5012a2f Manual suppression for new VVL errors: VUID-vkBindBufferMemory-size-01037 SYNC-HAZARD-WRITE-AFTER-READ for vkCmdCopyBuffer Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/0549c7127c2fbab2904892c9d6ff491fa1e93751..39766a06679bf5e4bc1e0339136f1b6a519fcec5 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/c1c4712c75bc123dac21daea5dfffd416e103e59..5728a66537b23986135f50c465fcb282b0434da4 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/04b4a204aa501992ae85a207be1e200e195c98e1..9d07794bc955101c79cbd260233fcc65b9951cfc https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/39f924b810e561fd86b2558b6711ca68d4363f68..234c4b7370a8ea3239a214c9e871e4b17c89f4ab https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/0508dee4ff864f5034ae6b7f68d34cb2822b827d..fde0f9718bd60b49cf8efc80d3fb7a093c309ac0 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/c3dc948b0b960b3a01506b57a15ecee2a9e31bf2..e9d5ff418fd29381205b7617170a6d556bc6a10e If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/394598758 Bug: b/394598470 Tbr: cnorthrop@google.com Change-Id: Id968b54695b441eb4d21a63c23885eda0f567b9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6233954 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jordan 4ce8b71e 2025-02-05T08:06:09 LSC updating angle License ids This is based on the existing id and the license file provided. Bug: b/358504615 Change-Id: I0f0956806f27f8bfed6589157b583d159a25a3d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232605 Owners-Override: Jordan Brown <rop@google.com> Auto-Submit: Jordan Brown <rop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Austin Annestrand 483be92c 2025-02-05T14:03:00 CL/VK: Cleanup old non-uniform restriction in CLDeviceVk Bug: angleproject:42267085 Change-Id: I5499324c89d0358c12b6ce2f6f0015547730fc8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235928 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Shahbaz Youssefi 93e99da3 2025-02-05T11:23:50 Vulkan: Fix bugs with varying precision fixer This transformation creates new variables and turns the original ones Private. There were a few bugs where some transformations referred to the replaced id (larger than the original index bound) and had wrong look up (where e.g. they would cache something based on the original id, then try to look it up with the replaced id). This change makes it such that where needed, both the old and new ids are given to the various transformations, so they can look up with the old id, but output instructions with the replaced id. Bug: angleproject:386749841 Bug: b/394299327 Change-Id: Ie6b3c3445c440417cbbffdd849a036abfc504fe2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235664 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Austin Annestrand bab3f9ab 2025-01-30T14:30:16 CL/VK: Cosmetic kernel arg updates - Move POD argument buffer init to kernel-init - Remove unused CLKernelVK members/types - Switch inside of setArg loop - Rename kernel members that best aligns to their resources Bug: angleproject:42267001 Change-Id: I837ceeceaf1ff903b67b7f100298d4a3159b97d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6220895 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 9c82e55a 2025-01-16T17:47:41 Vulkan: Make VkEvent for Buffer work with more general usage Before this CL, BufferHelper::mCurrentWriteAccess and mCurrentReadAccess, mCurrentWriteStages, mCurrentReadStages still track all accesses, regardless if it is tracked by RfCountedEvent or via PipelineBarrier. This is okay for very limited usage case, but becomes fragile when expand the event for general usage case. The problem is that you can not correctly tell which bits in mCurrentReadAccess is for pipelineBarrier and which is for Event, since event and pipeline barrier could have the same VkAccessFlags. Similarly problem exist for mCurrentWriteAccess. The reliable way is actually track pipeline barrier access and VkEvent access completely separately. This CL changes mCurrentWriteAccess, mCurrentWriteStages, mCurrentReadAccess and mCurrentReadStage to only contain bits that not tracked by VkEvent. For this reason, RefCountedEventWithAccessFlags wrapper class is added to wrap mCurrentWriteEvent and its associated VkAccessFlags. Bug: angleproject:360274928 Change-Id: I057484f0c3baa2739d56c3a75889eb88a647a65a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6210683 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen 82e25a32 2025-02-03T15:07:33 Make all " < 0" error messages consistent Use the form: Error is due to reason: <error message> Bug: angleproject:392938089 Change-Id: I9e72858cf76a46ab874ffc211afdae1eb93ca05d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6225600 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Austin Annestrand da837830 2025-01-30T15:37:56 CL: Fix device queue query validation for 3.0 Was missing 3.0 check for device queue size. Since device queue support is optional for 3.0, device queue query (CL_QUEUE_SIZE) needed device queue support. Adding validation check for that here. Bug: angleproject:42267011 Change-Id: Ibc1d7e00f78df01f131f69047b1390b02b5fa780 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6220894 Reviewed-by: Gowtham Tammana <g.tammana@samsung.com> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Igor Nazarov fb118e41 2025-01-22T13:26:31 Vulkan: Always defer acquireNextSwapchainImage() call This change is a preparation before the follow up EGL_WIDTH/EGL_HEIGH eglQuerySurface rework. There is no need to acquire initial swapchain image after surface initialization. Skipping ANI may speed-up apps startup in some cases. The operation is also removed from swap (in case of out-of-date swapchain) for consistency and as a preparation for the follow up change. Change also enables "perFrameWindowSizeQuery" for NVIDIA on Windows because of the "SurfaceDimensionsChangeAndFragCoord" test failure. Test fails because `vkQueuePresentKHR()` does not return `VK_ERROR_OUT_OF_DATE_KHR` when presenting old image size after the window resize, even despite that surface caps currentExtent has already new size. Issue is not permanent, and may "fix" itself if add few empty swap buffers before starting the test or do ANI in the initialize (which one will work depends on GPU). Above issue is observed on the driver 546.01 (currently used by bots). Old 531.68 and new 566.36 does not have this issue (tested on RTX 3060 Laptop). The 546.01 driver, however, fails on that same system even on the base CL (without this change). Bug: angleproject:153329980 Bug: angleproject:42264593 Change-Id: I261e1f573a6b892f1ba4282dd17f17289c2f4184 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182599 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen bee34ea7 2025-01-30T18:39:00 Metal: Remove redundant AutoObjCObj template alias Some members were held with AutoObjCObj<T> and some with AutoObjCPtr<T *>. Use the latter. Bug: angleproject:393263506 Change-Id: I9d8d56e9ffe3281d5e9087de7959249cbb4b9bd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216872 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 81412e88 2025-01-30T16:46:26 Metal: Avoid using retainAssign() Use more native C++ name for assign: operator=. Bug: angleproject:393263506 Change-Id: Ia31a79fbb15474ba754034338340ef5c3ed6e8ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216871 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 49e2b5e2 2025-01-31T15:52:39 Support compiling without GetProcAddress Move GetProcAddress implementation next to the proc array. This way it is possible to not compile the implementation. Bug: angleproject:393513311 Change-Id: Ic9c9022ee74a7619bec25f1481fd9da68b14b119 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219320 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
angle-autoroll a6e010d6 2025-02-05T02:01:07 Roll SwiftShader from 86cf34f50cbe to 28a2e8a45f16 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/86cf34f50cbe..28a2e8a45f16 2025-02-04 swiftshader.regress@gmail.com Regres: Update test lists @ 86cf34f5 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/swiftshader-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ieefe88d9a03cc759777fc386e6f24b683af24302 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6231408 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 9c6af5ce 2025-02-04T22:50:01 Vulkan: Fix crash in SPIR-V transform with varying precision fix Bug: angleproject:386749841 Change-Id: I5743eb049dde6c8a093b175e857251bad9b2bc9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6232948 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop aa94da02 2025-02-04T12:41:36 Revert "Vulkan: Bugfix in SPIRV entrypoint transformation" This reverts commit 9975e80b9d98a2158ae859b3f4eff7340baa540d. Reason for revert: Crashes on platforms with varyingsRequireMatchingPrecisionInSpirv Original change's description: > Vulkan: Bugfix in SPIRV entrypoint transformation > > Perform varying precision fixer transformation before > other shader-stage-specific transforms that could > potentially modify the interfaceList. > > Also enhance EXTBlendFuncExtendedDrawTest by enabling > additional config with VaryingsRequireMatchingPrecisionInSpirv > feature enabled > > Bug: angleproject:386749841 > Change-Id: Ife4a2f932415296f1565527e50a2b8646cd7697d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207741 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: mohan maiya <m.maiya@samsung.com> Change-Id: I07064136f962a7d73ce5c80289da300d474faa22 Test: professional_baseball_spirits trace Bug: b/394299327 Bug: angleproject:386749841 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6227993 Reviewed-by: Cody Northrop <cnorthrop@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov c2cb1603 2025-02-03T18:21:10 Perf tests: change fps limiter method to timestamp based Instead of using previous frames, target start_time + N * delta. This will result in a smoother playback when there is no hiccups. In case of a big hiccup, replay will be catching up by submitting frames without sleeps until it hits the timestamp, then submit at the target rate again. Bug: b/376300037 Change-Id: I481f1325867d53e911acd2d381bfda4c94adefc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226746 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Hans Wennborg 6808ef83 2025-02-04T10:57:18 Tests: suppress -Wunused-private-field warning The latest version of Clang warns about an unused member variable in es31fSRGBDecodeTests.cpp. Suppress it for now. Bug: chromium:393942204 Change-Id: Ic03c2f8f2710ff3ccf44c102d1fd991bc4d1d380 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226805 Auto-Submit: Hans Wennborg <hans@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Kimmo Kinnunen c6a8faf6 2025-02-03T15:00:07 Mark error strings as *, not [] Partially revert "Mark error strings as inline constexpr". Try to fix the reported 100kb+ size regression on Linux builds. Bug: angleproject:392938089 Change-Id: Id40f8820ff096497fc75165b23e520f96725e18a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6225599 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya b32a808d 2025-02-03T17:35:59 Re-enable EXT_multi_draw_indirect on the Vulkan backend. Update limitations before evaluating extension support Bug: angleproject:355645824 Change-Id: If34c0d5791443841798fd85a2d396b8b6cbbe837 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6226331 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 29e20d52 2025-01-29T15:58:04 Vulkan: Use single VkEvent to track depth/stencil and color attachment Right now ANGLE uses two VkCmdSetEvent calls to synchronize color and depth attachments in a render pass, one for color attachment and another for depth/stencil attachment. This is inefficient. ARM engineers confirmed combining both into one event with a combined stage mask (VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | kAllDepthStencilPipelineStageFlags) should not negatively impact performance. This CL merges depth/stencil related events into color attachment. The benefit of this is that for most render passes, you will see one less VkEvent which translates to reduced overhead. Bug: b/393150736 Change-Id: I0808b4dfd0b91efaaa2af649fef8bb02abbb3039 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187980 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
angle-autoroll 3e156322 2025-02-04T07:54:03 Roll Chromium from 8cb2fac8059f to 7a15ef98fa46 (607 revisions) https://chromium.googlesource.com/chromium/src.git/+log/8cb2fac8059f..7a15ef98fa46 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 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/a9640b2af4..dc7b3561cd * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/6b4eaa1ed0..6377d6649b * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e87a266983..8a57c900f4 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/aaed376e01..9d07d51c6e * third_party/android_build_tools/lint/cipd: ADzNzHHqZEK8ELtfKxVHQE9nlzafzaM7bW-0FJdyqeUC..jsEEMs5gHWH0oWH-A-WwE4Q4a5JnfgwwHYdaNd9UP9oC * third_party/android_build_tools/manifest_merger/cipd: dpBIpmqeRKRSK-XETu-3uRvAutKAS22ulPVpm1l0MpoC..no0RMx3qPOc-XlBlr8d_hUdnAYnHUeN6-qd2kXZO9e0C * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/98b7273c8d..0cc30c3baf * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/6b4e376d45..6d0c8ee02e * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/6f49850910..d8e413be0c * third_party/r8/cipd: ukddmPlorF_6XXPBcxDxCmK2PSAJlhu_MDUhZQCz1l8C..8dKduCb-T1CXo1k__TsFWTWKwtx92qcCCIJ8zGP7QaAC * third_party/r8/d8/cipd: DJU_YH-xmuJ4kRnli6eXC-q9Q21-GPFj4YVZyAqKSWoC..ukddmPlorF_6XXPBcxDxCmK2PSAJlhu_MDUhZQCz1l8C * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/b74f5d5c0d..588e69eab2 * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/3d14d0d9ec..d5b1dd58bd * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/a037c8c5ad..1340d3ed8b * tools/luci-go: git_revision:c36fd1e86ba464371c3e6d817c14f2b40d43cb29..git_revision:b408832fea9036895f2767817491be5463ee6b22 * tools/luci-go: git_revision:c36fd1e86ba464371c3e6d817c14f2b40d43cb29..git_revision:b408832fea9036895f2767817491be5463ee6b22 * tools/luci-go: git_revision:c36fd1e86ba464371c3e6d817c14f2b40d43cb29..git_revision:b408832fea9036895f2767817491be5463ee6b22 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/748b34e9eb..2ed187cab2 * tools/skia_goldctl/linux: M1GANqZ-d2Qp4DHOEtmfafgGkTeeDLKJUreuBV_psroC..Djmxg641BIFDuvtwbk4GxAWptW7AWRnqZ5hCffbpETcC * tools/skia_goldctl/mac_arm64: Nej3vvoT_ssGeDCs5clWDgEDHARO4KP8W3EKOLNxXTkC..4aUb9UJChUHJebFHC5FjJ5d6Lf7cYuLSEJbco0uC3WEC * tools/skia_goldctl/win: Mg04jm-4f1YP4Vv2GYoJdIv8gxvPFQSgwovCzVlN-w0C..Rj9DcPKzbqhsLO2by6iMiqZvlUFzBcSsp42l8nyHD8MC No update to Clang. Bug: None Tbr: cnorthrop@google.com Change-Id: I3671674023500fdb34d2f37d759605e010bfa90e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6229211 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Austin Annestrand 957bafb5 2025-01-30T11:49:41 Infra: Print stdout for TIMEOUT cases Bug: angleproject:392929827 Change-Id: I47625474e4ce9253a4cf275ea027290a6a2fbc33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207671 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alex Dean 56d796a9 2025-01-31T09:13:30 CL/VK: Fix max read/write image arg limits Modifies how CL_DEVICE_MAX_READ_IMAGE_ARGS, CL_DEVICE_MAX_WRITE_IMAGE_ARGS, and CL_DEVICE_MAX_READ_WRITE_IMAGE_ARGS are set. Temporarily accounts for the backend Vulkan driver reporting a meaningless value (ex: UINT_MAX). Bug: angleproject:391414842 Change-Id: I7d0ca865d3a516b22dc34849e4dc0a3a83e778c9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187613 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen a04cb42a 2025-01-30T16:26:44 Metal: Remove autorelease use from libANGLE parts Use adoptObjCPtr() instead of AUTORELEASE to make all code uniform and more easy to reason about. Bug: angleproject:393263506 Change-Id: I15ea7e29784bcbe6bee6341fe288b340db813538 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216870 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Austin Annestrand e87d87f8 2025-01-29T22:23:27 CL: Add NDRange region chunk max GWS clamp Some implementations provide a value for maxComputeWorkGroupCount that goes beyond uint32_t when multiplied by local work size (to get the max global work size). This change clamps product to UINT32_MAX if that case occurs. Bug: angleproject:42267085 Change-Id: Ide87ef7be473c52db23c16ebf1e44a7fdcaf3081 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6217421 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 8157f927 2025-02-03T09:22:32 Roll Chromium from b795d308ae56 to 8cb2fac8059f (840 revisions) https://chromium.googlesource.com/chromium/src.git/+log/b795d308ae56..8cb2fac8059f If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 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/3ec76f733b..a9640b2af4 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/de2110201a..e87a266983 * third_party/android_build_tools/error_prone/cipd: nMRsstwSV_yyzV8beLhNfywd81JUi3QmAXpbHD0stscC..PW_AkPGAdnmLPk-dG161a_wYd9FRhQ9INn9f8HKj3fcC * third_party/android_build_tools/lint/cipd: pVQ05VquWske4TcBSXyzfgZCS5VBomVXJ0NTXXbbnS4C..ADzNzHHqZEK8ELtfKxVHQE9nlzafzaM7bW-0FJdyqeUC * third_party/android_build_tools/manifest_merger/cipd: k__Rs3pAmfiyzS9AAiiKHzBQdzs7iAx4u9fgScVOwTsC..dpBIpmqeRKRSK-XETu-3uRvAutKAS22ulPVpm1l0MpoC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/19f086d093..d516686190 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/c88ad7af1a..98b7273c8d * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/4997b50ea0..6b4e376d45 * third_party/r8/cipd: -ksREVIoU_CBsrSenB5wAU_Tq0gG1fDRaQC7_MFT6BMC..ukddmPlorF_6XXPBcxDxCmK2PSAJlhu_MDUhZQCz1l8C * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6afc0a4470..a037c8c5ad * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/34721d4450..748b34e9eb No update to Clang. Bug: None Tbr: cnorthrop@google.com Change-Id: I9eb335fbc9c0535b0f460bc57ac26522b042b81f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6223543 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 91a559c9 2025-02-03T08:01:38 Roll VK-GL-CTS from cf81553b703a to 48e7f3020f52 (9 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/cf81553b703a..48e7f3020f52 2025-01-31 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkansc-cts-1.0.2 into vk-gl-cts/main 2025-01-31 mateusz.bahyrycz@mobica.com Utils functions fix for compute only 2025-01-31 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-cts-4.6.5 into vk-gl-cts/main 2025-01-31 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.11 into vk-gl-cts/main 2025-01-31 ziga@lunarg.com Fix structs going out of scope in shader object tests 2025-01-31 ziga@lunarg.com Test pipelines with dynamic states and without related shader stages 2025-01-31 rgarcia@igalia.com Test DGC IES with dynamic alpha to coverage enable 2025-01-31 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main 2025-01-28 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Change-Id: I40fabdd9f856cf2551cfd8f07fc1b72e678b86d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6223542 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Gowtham Tammana 44b5f0a5 2025-01-06T16:01:28 OpenCL: Pass in options to the CTS tests In the case where options are specified, pass them down to the CTS tests. New tests with options for copy_images, fill_images and bruteforce are added. The changes in `angle.json` file are autogenerated by running `python3 scripts.run_code_generation.py` Bug: angleproject:388319897 Change-Id: I1c7e133d8df00e008857b652132b45975f61a08e Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6153935 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Geoff Lang c0b224c3 2025-01-31T12:20:00 Re-enable EXT_base_instance on the Vulkan backend. Vulkan has native support for the base instance draw calls and does not go through the emulation paths. Bug: angleproject:355645824 Change-Id: I370ece42cffff6df5b1c070d637c20e071598de7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216375 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 65c07386 2024-12-04T16:17:49 Vulkan: Limit dyn vertex input state WA on QCOM * Limited the workaround for dynamic vertex input state so it is enabled on the later version in which it has been fixed. Bug: angleproject:381384988 Change-Id: I71db843e4ce247691dae2c7d0db32678d12492be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072407 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana 433d14e0 2025-01-28T17:05:32 CL/Vulkan: Submit an empty command on command buffer reset On resetting the command buffer, the queue serial associated with it wont get signalled leading to causality issues. Instead submit an empty command to maintain queue serial timelines. Bug: angleproject:392934330 Change-Id: I53996b295d2744b58487e483dd45918e48f58c83 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207673 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov e6115fdd 2025-01-27T19:37:25 Vulkan: Fix and simplify Wayland window resize The `doDeferredAcquireNextImage()` may only be called with `forceSwapchainRecreate == true` argument when in `ImageAcquireState::NeedToAcquire` state. In any case, method must not be called when state is `ImageAcquireState::Ready`. Instead of adding state check to the `WindowSurfaceVkWayland::getAttachmentRenderTarget()` method, this change removes this method entirely, since calling `doDeferredAcquireNextImage()` is not required (as well as the `mResided` member). The `WindowSurfaceVkWayland::mExtents` will be compared with the current extent in the `checkForOutOfDateSwapchain()` since "perFrameWindowSizeQuery" feature is enabled for Wayland. Bug: angleproject:40096815 Change-Id: I31608d52ba72305cbb31220f21829ad18f9d2ce7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6203062 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen c411081f 2025-01-30T15:18:20 Metal: Remove RenderUtils mtl::Context base RenderUtils is not using mtl::Context error handling for anything. Bug: angleproject:392938089 Change-Id: I1ef86db8f03ff34bb54726a0aad31d07fb1b44ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218788 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Austin Annestrand 2567dc4f 2025-01-30T11:20:57 CL/VK: Add spv validation for program build Bug: angleproject:42266976 Change-Id: I529395cba2d935cd6117c9c18fefd9a27903e2a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216570 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Austin Annestrand fb2ae3fb 2024-11-26T16:23:52 CL/VK: Missing ext check in reflection parser When parsing "spv::OpExtInst", we also need to check for "ext_inst_type" to be clspv reflection type. Otherwise we might end up parsing bogus/non clspv ext type instructions. Bug: angleproject:42266976 Change-Id: Iab115f44890ce83fea09fb39be24b45ee2fa827b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216569 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Kimmo Kinnunen 7d37d970 2025-01-30T13:47:59 Make error messages end in a dot Some messages had dot and some not. Fix by adding dot to all error message string literals. Best effort, for free form string literals, check ANGLE_CHECK invocation sites only. Bug: angleproject:392938089 Change-Id: Idedc3fe1d1e186fb91b5e54407df87f6830995a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218460 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi 1df10f8a 2025-01-29T14:50:21 Unsuppress VUID-VkImageViewCreateInfo-pNext-01585 * Updated ImageHelper::DeriveCreateInfoPNext() to check the usage flags as well. * If the image uses the storage bit, the format list should not be added to it as pNext. Otherwise, if the count is not zero, it expects the format used in its image view to be one of the stated formats and will result in a VVL if this is not the case. Bug: angleproject:42264452 Change-Id: I789ec5a9751366029929c4c25a942056df13b9ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216381 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen eb0e72e0 2025-01-30T09:50:27 Mark error strings as inline constexpr Some WebKit build configurations are seeing duplicated strings. A global constexpr implies static, which allows that each compile unit gets its own instance. A global inline constexpr guarantees that the instance address evaluates same for all address takers. This should guarantee that the strings are not duplicated. Use char[] instead of char * to guarantee that referencers would get the length. Bug: angleproject:392938089 Change-Id: I5652ed8807d5052abe41671f4a0005905fe8d30b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6218459 Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Austin Annestrand 0549137f 2025-01-30T13:15:09 CL/VK: Fix cmd queue deadlock on clFlush Issue was that app-thread held mCommandQueueMutex for clFlush duration. App-thread notifies the queue-thread via "mHasWorkSubmitted" condition-variable. Queue-thread later calls finishQueueSerial(), and that routine tries to recursively grab mCommandQueueMutex. This change avoids this by unlocking app-thread before it notifies the queue-thread (also takes capture of QueueSerial before unlocking). Bug: angleproject:375231041 Change-Id: I71e0c9f9455a86b97acbc88107b0edbc05ce33a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194198 Commit-Queue: Gowtham Tammana <g.tammana@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
angle-autoroll 0c2d793c 2025-01-31T11:52:51 Manual roll vulkan-deps from 3a89e5275402 to 430dae9cea66 (15 revisions) Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/3a89e5275402..430dae9cea66 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/5165b6d2bdff5244e8aef6408441a962424cf2d1..c1c4712c75bc123dac21daea5dfffd416e103e59 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/3364b982713a0440d1d342dd5eec65b122a61b71..04b4a204aa501992ae85a207be1e200e195c98e1 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/e43027aa41c4f51b12d79aeae53ff608951c36ec..39f924b810e561fd86b2558b6711ca68d4363f68 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/369afe24d1351d6e03cbfc3daf1fc5f6cd103649..0508dee4ff864f5034ae6b7f68d34cb2822b827d https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/7658238ddc50d7ef1fe923d95b7112597a5adc68..c52931f012cb7b48e42bbf2050a7fb2183b76406 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/1ddbe6c40aeaf98d4138f07c325ebb01beeece68..fe7a09b13899c5c77d956fa310286f7a7eb2c4ed https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/cc4c765c9ccacabd6338f348082841846053abb9..c3dc948b0b960b3a01506b57a15ecee2a9e31bf2 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: If34c6c40f06e14b42316a05ad5dc59a9c9314c9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6220892 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 34aeaa17 2025-01-31T09:10:25 Roll Chromium from a51c83d792dd to b795d308ae56 (631 revisions) https://chromium.googlesource.com/chromium/src.git/+log/a51c83d792dd..b795d308ae56 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 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/381f9f22a0..3ec76f733b * testing: https://chromium.googlesource.com/chromium/src/testing/+log/98d613eb20..de2110201a * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ce598256f2..c88ad7af1a * third_party/fuchsia-sdk/sdk: version:27.20250129.4.1..version:27.20250130.7.1 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/0d8d089914..4997b50ea0 * third_party/r8/cipd: twmEo-SOTxF2yvzPBCZ6XnSnzi3RekGMhUHTIhc5ox8C..-ksREVIoU_CBsrSenB5wAU_Tq0gG1fDRaQC7_MFT6BMC * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/961fba8da2..b74f5d5c0d * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/35179fc54f..3d14d0d9ec * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/544050827c..6afc0a4470 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/47b4070816..34721d4450 * tools/skia_goldctl/mac_amd64: rB-KKpciKP6EJPB7uDYVpqHCFEaz7IF5JTCYggCznmcC..w4KjkADnVRHE8TgQXpDuP6qD3uivftyQ3ue-Ee-gqWQC No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I8e9a20ce9dbca5f358fc03c60a594733443aa701 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6219670 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Rafay Khurram 439dfe5e 2024-12-12T00:37:13 CL/Vulkan: Add options passed to clspv compiler * Passes rte mode and image feature macros options to clspv compiler * Adds image feature macros device reported cl features Tests-Passing: OCLCTS.test_compiler features_macro, OCLCTS.test_samplerless_reads, OCLCTS.test_image_streams, OCLCTS.test_basic image_param Bug: angleproject:42266936 Change-Id: Ifd2b2c49a525ba3ee4be572de004fd317b0ff1ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6089949 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rafay Khurram <r.khurram@samsung.com>
Charlie Lao 9d934912 2025-01-09T11:31:42 Vulkan: Use VkEvent to track transform feedback buffer write This CL adds event tracking into BufferHelper class: mCurrentWriteEvent is used to track the write event and mCurrentReadEvents is used to track all different reads from the buffer. Since you can have multiple different reads accumulate over time, read events are an array of EventStage and the actual VkAccessFlags per event is tracked in mCurrentReadEventsAccessFlags. Note that this is specifically designed to allow pipelineBarrier and eventBarrier to co-exist. If mCurrentReadStages contains more bits than mCurrentReadEvents, the remaining bits will be using pipelineBarrier. Similarly if mCurrentWriteStages contains more bits than mCurrentWriteEvent, the remaining bits will be using pipelineBarrier. A heuristic tracking is also added to track the buffer writes over a period of time. Right now we will opt buffer into VkEvent if the buffer ever written by transform feedback in the heuristic tracking window. This could be expanded in future if we found more usage pattern that would be benefit from using VkEvent. Also note that DrawIndirect and VertexInput will be using the same VkEvent to track. It still will be using different VkAccessFlags since the access flags comes from buffer instead of event. Bug: angleproject:360274928 Change-Id: I027ffed8a0fbff7f280f42cf70564b8a3f243d69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6085490 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 03019646 2025-01-29T10:36:38 Vulkan: Fix invalidate of emulated format followed by more draws If invalidating a color image with emulated channels, a clear is automatically staged so the emulated channels don't contain invalid data later. This is problematic with deferred clears; the clear marks the framebuffer attachment as dirty, and the next command causes `FramebufferVk::syncState` to pick the clear up as a deferred clear. This is normally correct, except if the following command is another draw call; in that case, the render pass does not close, yet the clear is cached in `mDeferredClears`. When the render pass later closes, it undoes the invalidate and attempts to remove the clear from the image... but it does not exist there anymore (it's in `mDeferredClears`). Next usage of the image then clears it, undoing the draws after invalidate. In this case, the simplest approach is to close the render pass right away here. Note that it is not possible to make `FramebufferVk::syncState` avoid picking up the clear in `mDeferredClears`, not apply the clear, _and_ keep the render pass open; because future uses of the image (like with |glReadPixels|) will not trigger `FramebufferVk::syncState` and the clear won't be done. Bug: angleproject:353167428 Change-Id: Ie677bd12d9f11953cdcd5e4c374b59c4f63e7456 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6214331 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 02bd7ad6 2025-01-29T12:18:08 Revert "Force logging ANativeWindow events for debugging." This reverts commit 08365628f4fdb72308757574f7ae414875150f9b. Reason for revert: no longer needed Original change's description: > Force logging ANativeWindow events for debugging. > > Temporarily switch from LOGV to LOGI, > so that logs from these events show in release builds of ANGLE: > onNativeWindowCreated > onNativeWindowDestroyed > onNativeWindowRedrawNeeded > onNativeWindowResized > > These are only printed in ANGLE tests. > > Bug: chromium:339457761 > Change-Id: I0d81b05348ee3184fdc90da1a16e69704bcc084a > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5526470 > Reviewed-by: Roman Lavrov <romanl@google.com> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: chromium:339457761 Change-Id: I63bd69945ef997374f2184d7c72cf2cc3e301a04 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6215272 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll a870888a 2025-01-30T10:01:18 Roll vulkan-deps from 0a35e614cfbd to 3a89e5275402 (14 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/0a35e614cfbd..3a89e5275402 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/633e9b6e15b7b142eb311ecc316858eab5425033..0549c7127c2fbab2904892c9d6ff491fa1e93751 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/2b2e05e088841c63c0b6fd4c9fb380d8688738d3..e7294a8ebed84f8c5bd3686c68dbe12a4e65b644 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/bdf077623c55dabae66ce64639086b4391e14016..3364b982713a0440d1d342dd5eec65b122a61b71 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/0d99e5aad4299d8e4b3bcf4bf1e1bea4a32a9044..cc4c765c9ccacabd6338f348082841846053abb9 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: Iaf74dbf889388ac22d282ba89ffd5fdc8bd73d21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6217422 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll df67137f 2025-01-30T07:02:16 Roll Chromium from d33160322271 to a51c83d792dd (575 revisions) https://chromium.googlesource.com/chromium/src.git/+log/d33160322271..a51c83d792dd 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 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/f50a45f36e..381f9f22a0 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/4521cec19f..6b4eaa1ed0 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/602354bd16..98d613eb20 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/065e549702..aaed376e01 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/6fba8f15dc..19f086d093 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/9f48a4ca85..ce598256f2 * third_party/fuchsia-sdk/sdk: version:26.20250117.5.1..version:27.20250129.4.1 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/12150825ca..2e25154d49 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/c015540044..0d8d089914 * third_party/r8/cipd: kXrlzFdbtrTA5fGDhJngfPu9c-g4zvKJfzY9ar7HDqwC..twmEo-SOTxF2yvzPBCZ6XnSnzi3RekGMhUHTIhc5ox8C * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/19ead498eb..35179fc54f * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/dab4e480ea..544050827c * tools/luci-go: git_revision:83f8c966f0ca5b6d249d042c7ca6f6deba3c7464..git_revision:c36fd1e86ba464371c3e6d817c14f2b40d43cb29 * tools/luci-go: git_revision:83f8c966f0ca5b6d249d042c7ca6f6deba3c7464..git_revision:c36fd1e86ba464371c3e6d817c14f2b40d43cb29 * tools/luci-go: git_revision:83f8c966f0ca5b6d249d042c7ca6f6deba3c7464..git_revision:c36fd1e86ba464371c3e6d817c14f2b40d43cb29 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/7c0f6f0781..47b4070816 * tools/skia_goldctl/linux: S8KkLIhCwVe-hsj8R5K7Mc2puD0PkQY0t_YQZ0-rrDwC..M1GANqZ-d2Qp4DHOEtmfafgGkTeeDLKJUreuBV_psroC * tools/skia_goldctl/mac_amd64: eCSZRvEvRPq8bq7BcZ086o2PMGFHGmrnIlrtgq_3WNcC..rB-KKpciKP6EJPB7uDYVpqHCFEaz7IF5JTCYggCznmcC * tools/skia_goldctl/mac_arm64: 9SDFiZaagGd9jEbCtYfv3VgwH2Bn4McoYBAVJoeCGc8C..Nej3vvoT_ssGeDCs5clWDgEDHARO4KP8W3EKOLNxXTkC * tools/skia_goldctl/win: Hx02LAyUjppCjvPbUB4_ekvQILOOxwptggbjbqFAKxEC..Mg04jm-4f1YP4Vv2GYoJdIv8gxvPFQSgwovCzVlN-w0C No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I79f68cc5a81a9f6fe67e801e9f5e0a7ab4863d4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6216216 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Kimmo Kinnunen 5325904b 2025-01-29T14:43:35 Metal: Simplify error checking Use normal ANGLE_CHECK, ANGLE_CHECK_GL_ALLOC, ANGLE_CHECK_GL_MATH when appropriate. Use ANGLE_MTL_CHECK for checking Metal NSError return value. Remove mtl::ErrorHandler::handleError variant that responds to NSError. Uses "Internal error." that occur due to implementation bugs. Binary size is already expended with __FILE__ et al to disambiguate the location. The descriptions were not actionable for the API client and sometimes wrong cut-and-paste. Bug: angleproject:392938089 Change-Id: If9525d3d1610d5bc757855053600d78d2a1526c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6211841 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 5798be5e 2025-01-13T07:45:11 FrameCapture: Fix framebuffer bindings in MEC While capturing an app, I was crashing on the line reading replayState.getReadFramebuffer()->id() That's because replayState did not have a read framebuffer bound, and we dereferenced nullptr. replayState is a default state that we've created and we're modifying to make it *look* like apiState. We should be updating replayState to match the framebuffers bound in apistate. In this case state*Framebuffer is read from apiState and is the value we want to propagate. AFAICT these have been incorrect since they landed in the initial implementation, but the code is complex: https://chromium-review.googlesource.com/c/angle/angle/+/1689329 Test: Tower of Fantasy capture Bug: b/389808881 Change-Id: Ibf7bc56cd385c34139676c5813926f756bb38f42 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174746 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Gowtham Tammana e330d959 2024-04-09T15:13:48 CL/Vulkan: Add native builtins to clspv compiler Add a set of native builtins that are known to perform better for Samsung devices. A feature condition `uses_native_builtin_cl_kernel` is setup in `vk_featurs.json` for control of the selection. The following files are autogenerated - FeaturesVk_autogen.h - angle_features_autogen.cpp - angle_features_autogen.h Bug: angleproject:361717757 Change-Id: I10ffad0cbf1d4c2e9bfeea768311d90b0f65af2d Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092036 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Austin Annestrand b4cac1ad 2025-01-29T10:59:22 CL/VK: Hotfix: Implementation of Compute Pipeline Cache Unnecessary "new" that was leaking when moving raw ptr to cache map. Easy fix is to stack allocate and std::move the object to container when finished initializing. Bug: angleproject:391672281 Change-Id: I7b0f922de2a1332e8e452e87bc498d3c9907d7d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6214690 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 6f5b32d0 2025-01-29T18:55:21 Suppress flaky end2end test on Linux NVIDIA Vulkan ClearTextureEXTTestES31Renderable.Clear3D Bug: angleproject:362486580 Change-Id: Iff0195d85c828d172ea4b9e150b62da7df0769d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6215271 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Kimmo Kinnunen 43e7384d 2025-01-28T18:28:44 Metal: Fix a race in failing compilation subtasks Program link invokes two link subtasks, one MSL compilation per shader in program. If these tasks would fail, they would race to write the error message to the error string held in link object. Fix by recording the error message to the compile tasks and forwarding it to the context when sub task result is fetched. Bug: angleproject:392652319 Change-Id: Icb369f7bd62da5155d7915f2743ac53d91d61ea8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207769 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Liza Burakova 40523499 2025-01-29T12:13:45 WebGPU: Emulate line loops for drawElements Bug: angleproject:383356846 Change-Id: I82a6dfad4a1c5d434f029701611e4b61344655f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6086120 Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 9975e80b 2025-01-28T17:25:38 Vulkan: Bugfix in SPIRV entrypoint transformation Perform varying precision fixer transformation before other shader-stage-specific transforms that could potentially modify the interfaceList. Also enhance EXTBlendFuncExtendedDrawTest by enabling additional config with VaryingsRequireMatchingPrecisionInSpirv feature enabled Bug: angleproject:386749841 Change-Id: Ife4a2f932415296f1565527e50a2b8646cd7697d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207741 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuly Novikov af4817db 2025-01-29T14:12:02 Suppress angle_oclcts_non_uniform_work_group failures on Linux NVIDIA Bug: angleproject:42267085 Change-Id: I13f85d8b7ed140f3a10262fe335de664cfd68624 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6213432 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov 00f0b887 2025-01-29T14:04:38 Skip pokemon_go flaky crash on Linux Intel Bug: angleproject:392938092 Change-Id: Ie46582b91fc498640b2651f3e04aaf7d1769da6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6213430 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll 95af326c 2025-01-29T10:01:44 Roll vulkan-deps from ef9be82521e9 to 0a35e614cfbd (14 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/ef9be82521e9..0a35e614cfbd Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/6eeaaadd15eb8603af175504427a7ebcc0364815..5165b6d2bdff5244e8aef6408441a962424cf2d1 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/a4680e67d0bad1dcc8a0fca2fc4b6f33519ae093..369afe24d1351d6e03cbfc3daf1fc5f6cd103649 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/abf70b95ed671aac7f2ed90fa5a16888fb33f1d8..0d99e5aad4299d8e4b3bcf4bf1e1bea4a32a9044 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: Ib398405a95e9360952af5b5b7aeeacd35fd28d39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6210122 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov b5809efa 2025-01-16T17:56:47 Delay eglSwapInterval() effect until swap ... and fix resetting effect of `eglSwapInterval()` call by changing the `EGL_RENDER_BUFFER` attribute, and resetting desired shared present mode when calling `eglSwapInterval()`. Bug: angleproject:390333526 Change-Id: I473c7d4c5929e2179bbcd378b3695d10213644de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169922 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
angle-autoroll 83a6d223 2025-01-29T08:31:06 Roll Chromium from 1ecb21e0f634 to d33160322271 (638 revisions) https://chromium.googlesource.com/chromium/src.git/+log/1ecb21e0f634..d33160322271 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 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/f56ffde666..f50a45f36e * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/a660247d3c..4521cec19f * testing: https://chromium.googlesource.com/chromium/src/testing/+log/0d6228c8b2..602354bd16 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/5f29517d08..065e549702 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/af7eadb024..9f48a4ca85 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/2e25154d49..12150825ca * third_party/libc++abi/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/7e0f3a8471..634228a732 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/75ca665df9..c015540044 * third_party/r8/cipd: VSVmC5R_5xS8P4rv9--88KTcqKPfJ6oDKRQ-hX9IRsUC..kXrlzFdbtrTA5fGDhJngfPu9c-g4zvKJfzY9ar7HDqwC * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/d04dc8f182..dab4e480ea * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/47158e077c..7c0f6f0781 * tools/skia_goldctl/mac_amd64: rB-KKpciKP6EJPB7uDYVpqHCFEaz7IF5JTCYggCznmcC..eCSZRvEvRPq8bq7BcZ086o2PMGFHGmrnIlrtgq_3WNcC No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I501e5ad1e3341a34a6a00948926c193875403e0c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6210207 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Charlie Lao f231d94b 2025-01-13T14:58:16 Vulkan: Add kBufferMemoryBarrierData to mirror image Right now we only maintain a mapping from EventStage (which is a value of VkPipelineStageFlags) to VkPipelineStageFlags for images. For next CL we need to indicate if use VkEvent is preferred or not for a given PipelineStage access. This CL expands kPipelineStageFlagBitMap (and renamed to kBufferMemoryBarrierData) to contain both the VkPipelineStages and EventStage to indicate if VkEvent should be used or not, similar to kImageMemoryBarrierData but a lot simpler. Right now it all set to EventStage::InvalidEnum which means will use pipelineBarrier. This will change in next CL. This CL also does some clean up: A few BufferHelper related functions changed argument from ErrorContext* to Context*, mainly because of BufferHelper::release() now takes Context* as argument so that we can recycle events within context's share group without lock. ImageLayoutToMemoryBarrierDataMap is added to replace angle::PackedEnumMap<ImageLayout, ImageMemoryBarrierData> kEventStageAndPipelineStageFlagsMap is removed. InitializeEventAndPipelineStagesMap is now using kImageMemoryBarrierData directly to construct mEventStageToPipelineStageFlagsMap. As result of this, EventAndPipelineBarrierHaveMatchingStageFlags is also removed since InitializeEventStageToVkPipelineStageFlagsMap already ensures this. Bug: angleproject:360274928 Change-Id: Idb74f3e4120ca9a04b8eccb7ed034aa769024bf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6172763 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Austin Annestrand e0cbdbb5 2025-01-15T14:08:45 CL/VK: Enable dispatch region chunking This change does two things: - Allow non-uniform workgroup size - Dispatches that go beyond VK workgroup count limit Bug: angleproject:42267085 Change-Id: I1f2da93252e466b811273ee34d9d38e454f11686 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180550 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Austin Annestrand 95635ef0 2025-01-23T16:30:41 CL/VK: Implementation of Compute Pipeline Cache. Implemented ComputePipelineCache, hash map from OpenCL and OpenGL compute state vectors to compiled pipelines. Implemented ComputePipelineDesc, a tightly packed description of the current compute state. Compute Pipeline State includes the specialization constants, Pipeline Options (Protected, Robust). Updated-by: Austin Annestrand <a.annestrand@samsung.com> Bug: angleproject:391672281 Change-Id: I88944dc169d194d1b2c75747769d7346b041fa75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191437 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Geoff Lang 1161ac8e 2025-01-23T13:25:01 WebGPU: Implement no-op gl_PointSize Support writing to the gl_PointSize builtin but do not pass it to the next shader stages. Bug: angleproject:392604862 Change-Id: I845a3edeb0ce8e7ea41a5e96e5f3b443100f2cbf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6194555 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Roman Lavrov d9128ff4 2025-01-28T09:43:58 Clean up Galaxy expectations for A/S23 and S24 Exynos/QC Split A23 and S23 into separate lists GALAXYS24EXYNOS for S24 Exynos ("International") GALAXYS24QUALCOMM for S24 Qualcomm Bug: angleproject:359904354 Bug: b/338429767 Change-Id: If9c1f184df6c6f15e3b5d5af3a7e1310cb445984 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207255 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop fa0de0dd 2025-01-27T17:32:49 restricted_trace_perf: Support --fps-limit Simply passes the flag and value through. Test: restricted_trace_perf.py --fps-limit 30 ... Bug: b/376300037 Change-Id: I344492944babed33edcbdae6b2906795d31715e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6204802 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
angle-autoroll 91985374 2025-01-28T10:01:29 Roll vulkan-deps from 7425f0646395 to ef9be82521e9 (20 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/7425f0646395..ef9be82521e9 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/bd1f1c263fc10969eb4a4b393e774a75ffcb2673..633e9b6e15b7b142eb311ecc316858eab5425033 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/4897b17f67bd6ddfeabb9c4e0bf5e8298eab3064..6eeaaadd15eb8603af175504427a7ebcc0364815 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/173fe3c60a8d9c7d35d7842ae267bb9df267a127..bdf077623c55dabae66ce64639086b4391e14016 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/ce3fbf53c8f77d04bc23d573a45b57fb6ed52e86..a4680e67d0bad1dcc8a0fca2fc4b6f33519ae093 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/8ec84823afa46cd054c8b094269eab958e078010..1ddbe6c40aeaf98d4138f07c325ebb01beeece68 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/258528b408898da932e3c681ff731b0be73fd9fc..abf70b95ed671aac7f2ed90fa5a16888fb33f1d8 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: I90dcca8ad121234488b662e8896b6f8129f2d668 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6204256 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 7085b6b1 2025-01-28T02:01:28 Roll SwiftShader from a87fa39f6446 to 86cf34f50cbe (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/a87fa39f6446..86cf34f50cbe 2025-01-27 swiftshader.regress@gmail.com Regres: Update test lists @ a87fa39f 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,ynovikov@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://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: If0d2773d29a69a51e29476da175a35ee80513167 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6205823 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 806277c6 2025-01-28T07:01:03 Roll Chromium from 44e2240f3d75 to 1ecb21e0f634 (630 revisions) https://chromium.googlesource.com/chromium/src.git/+log/44e2240f3d75..1ecb21e0f634 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,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://issues.skia.org/issues/new?component=1389291&template=1850622 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/2e946a1769..f56ffde666 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/eb00e5b142..0d6228c8b2 * third_party/android_build_tools/error_prone/cipd: 8BhbnOXLLwq5cMmiboLj9_ep5FeMNwJuVPvz9BrY1PoC..nMRsstwSV_yyzV8beLhNfywd81JUi3QmAXpbHD0stscC * third_party/android_build_tools/lint/cipd: 1veHvODGn5XZ5IcxP36LQZ16pvydqdtMVqfm4Bj3EFcC..pVQ05VquWske4TcBSXyzfgZCS5VBomVXJ0NTXXbbnS4C * third_party/android_build_tools/manifest_merger/cipd: 2izJpKHtwg2L4dRBZvMneb2h_7370lDH6yuhAgnAYc0C..k__Rs3pAmfiyzS9AAiiKHzBQdzs7iAx4u9fgScVOwTsC * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/77a800d729..af7eadb024 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/68c77f0566..75ca665df9 * third_party/r8/cipd: J6-Klb-dVUAdm4YtIE1uNG5nm8u4MbS2NVRoOkGx6pMC..VSVmC5R_5xS8P4rv9--88KTcqKPfJ6oDKRQ-hX9IRsUC * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/ce8b65518e..961fba8da2 * third_party/siso/cipd: git_revision:250e61b595d4f46eeff5901d3218bb2eaecf575b..git_revision:0b6159c39573013a79a47f8544200df07a6a74fc * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/0b5dab2791..19ead498eb * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/e262f0f889..d04dc8f182 * tools/luci-go: git_revision:e3703a4d1c29e8355653c19b59b0aa793a850956..git_revision:83f8c966f0ca5b6d249d042c7ca6f6deba3c7464 * tools/luci-go: git_revision:e3703a4d1c29e8355653c19b59b0aa793a850956..git_revision:83f8c966f0ca5b6d249d042c7ca6f6deba3c7464 * tools/luci-go: git_revision:e3703a4d1c29e8355653c19b59b0aa793a850956..git_revision:83f8c966f0ca5b6d249d042c7ca6f6deba3c7464 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/dbbf0e0bee..47158e077c * tools/skia_goldctl/linux: B1lNvmnjnO7yf_AfZgDPUmoCdMreSDhPPROwkiWk8jQC..S8KkLIhCwVe-hsj8R5K7Mc2puD0PkQY0t_YQZ0-rrDwC * tools/skia_goldctl/mac_amd64: Cb2Fx5W46eaNENhgoYiw8Tabe1JjHh7MEjab7fYNmjEC..rB-KKpciKP6EJPB7uDYVpqHCFEaz7IF5JTCYggCznmcC * tools/skia_goldctl/mac_arm64: yEMI787ucvQWVBOeW4q8TMjvZz_yNOwB1aKRtLYfR1kC..9SDFiZaagGd9jEbCtYfv3VgwH2Bn4McoYBAVJoeCGc8C * tools/skia_goldctl/win: uk3Q5uckAHDJH6eZZtZzxgWfE_SSuRlZ38RpWSjFIu8C..Hx02LAyUjppCjvPbUB4_ekvQILOOxwptggbjbqFAKxEC No update to Clang. Bug: None Tbr: ynovikov@google.com Change-Id: I9451442dd1628944cf43336f2c39b9d8b2e16a1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6204804 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>