Log

Author Commit Date CI Message
Mark Lobodzinski 1943d505 2025-08-06T10:03:45 Tests: Add Seaside Escape ANGLE trace Test: angle_trace_tests --gtest_filter=*seaside_escape Bug: b/436801950 Change-Id: Iedc4b03317ef02585ccf86b54494f1938379a68a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6823580 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Mark Łobodziński <mark@lunarg.com>
angle-autoroll 671f3e60 2025-08-07T09:09:57 Roll Chromium from 67602e695f23 to 38622a565a0f (3396 revisions) https://chromium.googlesource.com/chromium/src.git/+log/67602e695f23..38622a565a0f 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,syoussefi@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/38265dc962..b0a7830b79 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/6a6a2b6fd3..16b1d7d539 * buildtools/linux64: git_revision:3a4f5cea73eca32e9586e8145f97b04cbd4a1aee..git_revision:cc7c61e105fb56183fd6c5c52bbe3c37ff724a0d * buildtools/mac: git_revision:3a4f5cea73eca32e9586e8145f97b04cbd4a1aee..git_revision:cc7c61e105fb56183fd6c5c52bbe3c37ff724a0d * buildtools/win: git_revision:3a4f5cea73eca32e9586e8145f97b04cbd4a1aee..git_revision:cc7c61e105fb56183fd6c5c52bbe3c37ff724a0d * testing: https://chromium.googlesource.com/chromium/src/testing/+log/d383bed741..6b4f7b3aa6 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/5f6b05eac0..1e18dc54a0 * third_party/android_build_tools/error_prone/cipd: V1UaojOb1ghWxbzvm7e3KAo4E5L41McXcK_4S37dQWAC..56Xo0VEDkKxzOr5L7pafI6SaIY2S7wnOOcgy4CNSANEC * third_party/android_build_tools/lint/cipd: aS4jV08o7OzcMeyyL2RcyXM0e8V2feomEKdqh8nowjwC..AGywP4kNoPZjZa3fVdf1g2cKgEPkXnVFRxhlFjroXJcC * third_party/android_build_tools/manifest_merger/cipd: XY78mpSqG9c2zsRPfLI2m16ihBltxa3R27qOXhV9WMIC..K-0K2jznbc6LGEnKhT8NliSShwC43TBuVFZ6gRjOuxgC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/4460514cd2..47abf56825 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/4e4076a0d7..4cf600c459 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/ba3926011b..322a071997 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/c105b13e37..6f8fe913d6 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/866857ce9c..1ae5fcb80c * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/17e748fa88..bfa8cbf94e * third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2.git/+log/66a656e6d9..85c7c0fb11 * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/1b9595854c..5de5e7b6ba * third_party/siso/cipd: git_revision:e5fa67c5a456c1ab932f440ddfb195a8a33c235b..git_revision:2643989eca46dcd64a8d8f0ba842016b203e97b8 * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/4e1963c579..b44ad70ef5 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/094a12c2b1..a88e228080 * tools/luci-go: git_revision:f2aee64d8d98e4fe969d433785e969f3effe90c6..git_revision:2aa8d904a9f8cc8891d2710e4cf58156057fa4b3 * tools/luci-go: git_revision:f2aee64d8d98e4fe969d433785e969f3effe90c6..git_revision:2aa8d904a9f8cc8891d2710e4cf58156057fa4b3 * tools/luci-go: git_revision:f2aee64d8d98e4fe969d433785e969f3effe90c6..git_revision:2aa8d904a9f8cc8891d2710e4cf58156057fa4b3 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/d90a4a94e0..c5719eb114 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/1965f74931..8c5f1d5cea * tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/1195ae05a7..fa1df48579 * tools/skia_goldctl/linux: UePaQAmB4znC2DdGIm_DqUAEKytlOUofw0oMO0VhStcC..84tAKAqEtqjebJywg8jyXDWUVodNBYZraFt9RZ0A2pwC * tools/skia_goldctl/mac_amd64: RVm2d4iM3iQFkXafgLvvzi3KHIq_qhFWz3dNRFhamowC..dpgLOuWsqpBYSIj44DbnlJD7fnp640TD4cprUlwV0VMC * tools/skia_goldctl/mac_arm64: X4Xi1f4spVZ7l32U7eqx8LghvrWxh_NLSkTB_hqW3s4C..AU5OTil4VjYO94g8-Jhq02qBoLka6t-JsgKKEzllcy8C * tools/skia_goldctl/win: Y69lYD2QQGCN58_A0A21UHInQVZU2kWqKStG-ls-4NkC..DW55Ki0OZtTTzxrsItNbFeB9IDA9GBVXB647W6SOLN4C No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: I307a84254fdc10b43ce6470d33727be2688aa366 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6825318 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Charlie Lao a93f4c8d 2025-08-05T16:45:21 Fix bug when reattach the same buffer not pick up the change Added a test that the same buffer is used in two contexts. Buffer is modified in one context and reattached the same buffer on the second context's vertex array should pick up the buffer changes. This test exposed the bug and it is fixed in this CL. Bug: b/433331119 Change-Id: Ia5675581857a642fe9727f196326da9af43d52cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821923 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 7a193b06 2025-08-06T13:50:50 Unthrottle validation error messages for all of Chromium Chromium uses the debug callback to check if there were any errors instead of glGetError(). With the previous change that throttled error messages, some webgl tests failed to correctly recognize that an invalid call did actually fail validation, as well as passthrough command decoder fuzzer tests. Bug: angleproject:423956139 Bug: chromium:436292490 Change-Id: Ida254c9bdd2137afcc9483cc1860254781338dbc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6823824 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 88de021d 2025-08-01T17:15:22 tests: Skip PbufferDifferentConfig on system EGL Skip the test EGLBackwardsCompatibleContextTest.PbufferDifferentConfig when testing the system EGL, because not all platforms expose ANGLE-specific extensions. Bug: b/409384875 Test: angle_end2end_tests \ --gtest_filter=EGLBackwardsCompatibleContextTest.PbufferDifferentConfig/ES2_Vulkan_NoFixture Change-Id: I1556d7981d1e6c8c6fc1803cafcb76fa1052dcef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814161 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Tim Van Patten bc7e86b1 2025-07-30T14:55:34 tests: RequestedRendererCreated: Get created context version If the driver being tested does not support the ANGLE extension EGL_ANGLE_create_context_backwards_compatible, then the Context version returned may not match the requested version. Update the test RendererTest.RequestedRendererCreated to query the current Context's version if the extension is not supported so the renderer string is checked against the correct value. Continue enforcing the renderer string has the expected value if the extension is supported. Bug: b/409384875 Test: angle_end2end_tests --gtest_filter=RendererTest.RequestedRendererCreated/* Change-Id: Iad1b6d36a31b7d79e8fc5fae9e4cc9769b55edb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803326 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten c2316adb 2025-08-05T10:43:09 Add support for ARM to expectations file Add support for skipping tests on ARM devices with the tag "ARM". Bug: b/279980674 Change-Id: If310955c5dfb2af19493f8af70f4f6c00c97fcc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821832 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi da8462d4 2025-08-06T05:44:28 Unthrottle validation error messages in WebGL Chromium uses the debug callback to check if there were any errors instead of glGetError(). With the previous change that throttled error messages, some webgl tests failed to correctly recognize that an invalid call did actually fail validation. Bug: angleproject:423956139 Bug: chromium:436354527 Change-Id: Ic65761f412d3548fedd63f48d36357c9568c0b53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6822578 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi f1c6e1a8 2025-08-04T19:55:02 Vulkan: Disable EXT_fragment_shading_rate Due to a few dEQP failures, this extension will be temporarily disabled. It can be reverted once the issues have been resolved. * Disabled fragmentShadingRateEXT for Vulkan. Bug: b/436169197 Bug: angleproject:420310117 Change-Id: I94fbbb8b0a0866465e8c67e34c214b465fc35558 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6820702 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 394df705 2025-08-01T14:03:17 Cache per bufferIndex buffer properties in VertexArrayPrivate This is another preparation CL. This CL caches per bindingIndex buffer properties in VertexArrayPrivate: mCachedBufferPropertyMapped and mCachedBufferPropertyMutableOrImpersistent. The only difference between these and mCachedMappedArrayBuffers / mCachedMutableOrImpersistentArrayBuffers is that one indexed by attribIndex and another is indexed by bindingIndex. With this, when attribute binding changes, we no longer need to make buffer access. With this, we can move setVertexAttribBinding and setVertexBindingDivisor from VertexArray into VertexArrayPrivate class and Context argument is also removed. Bug: b/433331119 Change-Id: I666544ee0585727ca92d640f372f5a64d1d85576 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814156 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi 5f42ce7e 2025-08-05T11:57:54 Enable KHR-GLESEXT tests on bots * Enabled several bots to run the khr_glesext tests. * Skipped some failing tests for Vulkan. Bug: b/436389014 Change-Id: If0c43f508eb04c21307f75c6dc62e3ef30b0556e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821642 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 71b7b5ee 2025-08-04T18:44:35 Add KHR-GLESEXT test suite * Added rules to build new dEQP test binary to run KHR-GLESEXT tests: angle_deqp_khr_glesext_tests Bug: b/436389014 Change-Id: I53b74605d3c2a9a5f6a8fece17bc3f7656a6772c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6820701 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop f3b4b716 2025-08-05T14:28:04 TracePerfTest: Disable debug callbacks for GLES1 on Android We're seeing nullptr crashes when running GLES1 traces through the Android EGL loader with debug callbacks enabled. The callbacks are only enabled for Debug builds. Current theory is that the loader exposes the extension, but doesn't actually connect the call for GLES1 contexts. For now, expand the existing ARM skip to all Android devices. Test: restricted_trace_perf.py --renderer vulkan -f minetest Bug: b/352386141 Bug: b/436624755 Change-Id: I8ebe8f53c5efdecb2169ce017886753779ef5219 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821913 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi bafe39e2 2025-07-14T16:07:51 Vulkan: Use BindIndexBuffer2 when available This Vulkan API becomes available with VK_KHR_maintenance5. In addition to the original args, it also takes the index buffer size. * Added the necessary functions to use the following API: vkCmdBindIndexBuffer2KHR() * handleDirtyGraphicsIndexBuffer() now uses this API if maintenance5 is available. Bug: angleproject:394337110 Change-Id: I9a650ac5a033b449da05e0c226e2cfb6df74a75c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6735725 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Charlie Lao eca5244d 2025-07-30T16:59:16 Remove buffer from VertexArrayState::setAttribBinding In later CLs we try to remove shared lock from glVertexAttribBinding(). One of the lockers for that is right now setAttribBinding() references "buffer" for size. This CL caches the per binding index bufferSize in VertexArrayPrivate (i.e, std::vector<size_t> mCachedBufferSize). setAttribBinding() moved from VertexArray to VertexArrayPrivate since it no longer needs buffer access, but uses mCachedBufferSize instead. This CL also changes std::vector to std::array for mVertexArrayBuffers Bug: b/433331119 Change-Id: Ie34aef82379af8f04099cdc20ebdf354d2787a65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803592 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
angle-autoroll 0a93fc11 2025-08-05T03:01:47 Roll SwiftShader from 681d07e76d8e to fdb6700ecb04 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/681d07e76d8e..fdb6700ecb04 2025-08-04 swiftshader.regress@gmail.com Regres: Update test lists @ 681d07e7 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,syoussefi@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: syoussefi@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I639309cf9fe1ac076a7af92964bd52a6d81b9ca1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821313 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 8950217b 2025-08-05T10:01:02 Roll vulkan-deps from 5755777e263c to ab8547a94528 (14 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/5755777e263c..ab8547a94528 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/38f6708b6b6f213010c51ffa8f577a7751e12ce7..0d614c24699d986afd590b93a8c0f0946e997919 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/ac2c388bf81603af09d0eb599322b2f3447c5812..6ff473ebd460d2f8463b1c45542ed4dd4086cd95 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/37057b4756df4009ad85803bd2e06ec8a3bb1bca..a01329f307fa6067da824de9f587f292d761680b https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/f2389e27734347c1d9f40e03be53f69f969976b1..7a1d96aae809216705b2d0ed6c36ec747ab00845 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/b0a40d2e50310e9f84327061290a390a061125a3..b149d5c52c06836ab333ba571791f79a9fb8eb50 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/f113d73531fb6b82f6cb3aebc0e7c0915b3f611e..4a7bd3884fac006445a87b7eacf2770e0e4c9fc6 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,syoussefi@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: syoussefi@google.com Change-Id: I538f0a9681ec2fccd127041b9767b85c9c330d47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821332 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Amirali Abdolrashidi fc0e0397 2025-07-31T13:15:45 Translator: Fix location validation for inout Without this validation, a shader using an inout variable can write into a memory beyond the limit set by MaxDrawBuffers when shader framebuffer fetch is enabled. * Extended the location check in visitSymbol() to include InOut qualifiers (EvqFragmentInOut) as well (in ValidateOutputsTraverser). * Moved RewritePixelLocalStorage() after ValidateOutputs() to avoid issues related to locations not being specified in the InOut nodes from the PLS implementation. * Added a unit test to test that this case results in a compilation error: GLSLTest_ES3.CompileFSWithInoutLocBeyondMaxDrawBuffers Bug: chromium:435139154 Change-Id: I44c729377a2e1d3126c2d279172217b2ab92b57b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6806230 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 91fa29be 2025-08-04T11:08:20 Add a feature to force contexts into debug mode Bug: angleproject:423956139 Change-Id: Ie166b40eb9c241140daf4a35df3391829c64f84e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6817467 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Aurora Zhang be43e317 2025-07-31T17:40:24 EXT_external_buffer should have DYNAMIC_DRAW usage EXT_buffer_storage requires that BUFFER_USAGE must be DYNAMIC_DRAW. EXT_external_buffer only mentions that the buffer can be sourced from an external EGLClientBuffer. Therefore, the BUFFER_USAGE should still be DYNAMIC_DRAW. Add an end2end test. Bug: angleproject:436046320 Change-Id: Ie79a1b1f8be0df4566bff26800599b192c4f70b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6817076 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 35023c8a 2025-07-31T17:40:45 Throttle validation error messages in release builds Some apps make invalid but harmless calls every frame. ANGLE inserts a debug message for each validation failure which comes with a performance cost. This change makes ANGLE stop reporting validation failure messages after a handful have already been reported. This is only done when assertions are disabled and when the context is not a debug context. Bug: angleproject:423956139 Change-Id: Ie3fb121b2686cddf7da98fc23422b5d12097c6fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6805901 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll b6b2f380 2025-08-01T16:52:17 Manual roll vulkan-deps from c98f4a016f37 to 5755777e263c (15 revisions) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/c98f4a016f37..5755777e263c Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/8e12361e6be96dee212177e3eeb162d007959ecf..38f6708b6b6f213010c51ffa8f577a7751e12ce7 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/9b035b701e6ee7b6e80c0192f8826979da1f332f..3aeaaa088d37b86cff036eee1a9bf452abad7d9d https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/89268a6d17fc87003b209a1422c17ab288be99a0..37057b4756df4009ad85803bd2e06ec8a3bb1bca https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/c8ac60ea2ddc5fc5c4c180c40f0d2f4caa23e1cf..f2389e27734347c1d9f40e03be53f69f969976b1 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/f28c0df8a5170cbcc66f7cb6b49674f2c13983e7..f113d73531fb6b82f6cb3aebc0e7c0915b3f611e 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,solti@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: solti@google.com Change-Id: I6266b319d9d600579412e1f722fe419a80d1ff4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6811126 Commit-Queue: Solti Ho <solti@google.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Charlie Lao fa29f604 2025-07-02T13:23:31 Remove sharedContextLock from {Enable|Disable}VertexAttribArray VertexArray objects are per context objects. In theory they do not need to protected by shared context lock. The reason we are taking locks because all these functions end up accessing Buffer object which are shared. In prior CLs we have removed subject observer usage from VertexArray which means VertexArray no longer accessed from other thread. In prior CLs we also split VertexArray into two classes: VertexArrayPrivate which has no buffer, and VertexArray which is subclass from VertexArrayPrivate and owns buffer. In this CL, glEnableVertexAttribArray and glDisableVertexAttribArray calls no longer take shared context lock. ContextPrivateEnableVertexAttribArray and ContextPrivateDisableVertexAttribArray are called from these two APIs and they only have access to StatePrivate. State Private holds a VertexArrayPrivate pointer, which means they do not have anyway to access buffer objects. The main challenge I run into here is mCachedActiveClientAttribsMask, mCachedActiveBufferedAttribsMask, mCachedActiveDefaultAttribsMask, mCachedHasAnyEnabledClientAttrib, mCachedNonInstancedVertexElementLimit, mCachedInstancedVertexElementLimit. These StateCache variable needs to be updated when these two APIs are called, and calculating these variable needs access to buffer object. The solution here is adding a bool mIsCachedActiveAttribMasksValid in the PrivateStateCache so that instead of immediately update these mCached* variable, we just set mIsCachedActiveAttribMasksValid to false. Then whenever any of these mCached* variable is needed, we will check mIsCachedActiveAttribMasksValid and calculate these cached variables. It adds one if check when accessing these caches, but the other benefit is that we may have avoided duplicated calculation when multiple states changed. Bug: b/433331119 Change-Id: I3227c72bc40501712db93fb3d540b835f07150b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4514436 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Panfeng Hou 2ef85c24 2025-07-09T17:13:52 Vulkan: Add support for GL_EXT_fragment_shading_rate Add support for GL_EXT_fragment_shading_rate. Bug: angleproject:420310117 Change-Id: I7b368afc45baf8551c222b2569991269117d385b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6726817 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Panfeng Hou <panfeng.hou@arm.com> Reviewed-by: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi 279652e3 2025-07-21T16:21:28 Vulkan: Flush more often due to render pass count Accumulating too much workload before submission can lead to stuttering and reduced quality in rendering. In this change, a threshold is set for the number of render passes in order to submit the command buffer. * Added the following to ContextVk: mRenderPassCountSinceSubmit * It is incremented every time a render pass begins in the command buffer. * When the count reaches the following threshold at the RP closure, there is a submission: kMaxRenderPassCountPerCommandBuffer * (Currently set to 128) Bug: b/426439980 Change-Id: I4cde223fb81e6a27a61f78c924d3c9f2a082e995 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775626 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Matthew Denton a1d5d102 2025-07-22T02:15:43 WGSL: Allow matrices as in/out vars in shaders WGSL only supports scalars and vectors in in/out vars in shaders, matrices will need to be broken into column vectors and then put back together at the beginning (or end) of the shader. Arrays also need to be split, which will be done in another CL. Bug: angleproject:42267100 Change-Id: If1ba28c1b687ae0a3a5a554479f0ff0b5d9df39c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777201 Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
angle-autoroll ddd397b3 2025-07-31T01:00:34 Manual roll vulkan-deps from 3418ef9703fe to c98f4a016f37 (2 revisions) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/3418ef9703fe..c98f4a016f37 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/f43df42fe69bb38d43625b53e0706bbee43d74b4..8e12361e6be96dee212177e3eeb162d007959ecf https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e41b4bb2ae355fd3119c19ce3d898d0c111a7060..f28c0df8a5170cbcc66f7cb6b49674f2c13983e7 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,solti@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: solti@google.com Change-Id: If5979cab3ce4285ba926b534a977b098ac5870ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803594 Commit-Queue: Solti Ho <solti@google.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Tim Van Patten b0e0c9f6 2025-07-30T17:20:25 tests: DefineTexture2DArrayShouldFail skip on ES3+ The test Texture3DTestES2.DefineTexture2DArrayShouldFail is validating behavior specific to OpenGL ES 2.0. Skip the test when running on OpenGL ES 3+ contexts, which is possible when testing the system EGL which may not support the extension EGL_ANGLE_create_context_backwards_compatible. Bug: b/409384875 Test: angle_end2end_tests --gtest_filter=Texture3DTestES2.DefineTexture2DArrayShouldFail/* Change-Id: I129ce494c784c3889f21d4950a0302258b423b08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803336 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
angle-autoroll 2a2cb538 2025-07-31T03:02:00 Roll SwiftShader from 7cd1022cdc50 to 681d07e76d8e (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/7cd1022cdc50..681d07e76d8e 2025-07-30 sharjeelkhan@google.com Suppress -Wnontrivial-memcall warning 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,solti@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: solti@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ibaca15b65476a2470091097086f1b2ccc59ba619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6805444 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 5fd368aa 2025-07-30T14:45:55 Replace Surface::getWidth/Height() with getSize() Most places in the code use both `getWidth/Height()` methods at the same time. On some back-ends it is more optimal to have single method. For example, `WindowSurfaceWGL` first uses `GetClientRect()` Win32 API inside each method to then calculate width and hight in each method, causing repeated `GetClientRect()` call. The only place where only one of the methods may be used is from `SurfaceImpl::getUserSize()` when one of the parameters is `nullptr`, which is only possible from `QuerySurfaceAttrib()` function. This method is rewritten to use new `getSize()` method and then use whatever dimensions is requested by the caller. This may cause `QuerySurfaceAttrib()` inefficiency on some back-ends that get width and height of the surface differently (`SurfaceEGL` for example). In such cases `getUserSize()` is overridden to avoid returning a dimension which is not required. After this change all places in the code that previously used both `getWidth/Height()` methods (like `Surface::getAttachmentSize()`) will be more efficient. The `QuerySurfaceAttrib()`, on the other hand, will have slightly more overhead on back-ends where base `SurfaceImpl::getUserSize()` method is used, which only happens on back-ends with trivial `getSize()` implementation. Bug: angleproject:397848903 Change-Id: I4a22701a1e62ee4e7d07e77cac5b388050d98e4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6802440 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
angle-autoroll 456204ea 2025-07-31T09:00:03 Roll Chromium from e55234bb049e to 67602e695f23 (642 revisions) https://chromium.googlesource.com/chromium/src.git/+log/e55234bb049e..67602e695f23 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,solti@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/f08f3ce8d6..38265dc962 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/ea47cf7cad..6a6a2b6fd3 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2e9b59c277..d383bed741 * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/8b3cac3801..5f6b05eac0 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/44bda899a5..4460514cd2 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/e473b90df1..ba3926011b * third_party/fuchsia-sdk/sdk: version:28.20250723.2.1..version:29.20250730.5.1 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/33645b3d12..866857ce9c * third_party/r8/cipd: JPUb5oFXJVCZnmHps_x4jsuJNZzT4zTUYPDo0AsI1K0C..qD5apdNjxRv3dBblf27nEZYf7r_pbLEgfN7hWyXvP_UC * third_party/r8/d8/cipd: JPUb5oFXJVCZnmHps_x4jsuJNZzT4zTUYPDo0AsI1K0C..qD5apdNjxRv3dBblf27nEZYf7r_pbLEgfN7hWyXvP_UC * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/498b55d696..1b9595854c * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/b6138bef35..094a12c2b1 * tools/md_browser: https://chromium.googlesource.com/chromium/src/tools/md_browser/+log/6cc8e58a83..b7cfebc814 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/12a10dcc90..1965f74931 No update to Clang. Bug: None Tbr: solti@google.com Change-Id: Id786b478bffc67b722e1c8bd5776de269182d993 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6805553 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll d94f5aa3 2025-07-30T23:00:37 Manual roll vulkan-deps from 89ca3c7958f1 to 3418ef9703fe (2 revisions) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/89ca3c7958f1..3418ef9703fe Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/cef15589abb337bf883f7e8835279eee6546a6a7..9b035b701e6ee7b6e80c0192f8826979da1f332f https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/a1684e4bd23ab130c5e7c37ab72b07dd541897a9..c8ac60ea2ddc5fc5c4c180c40f0d2f4caa23e1cf 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,solti@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: solti@google.com Change-Id: I492e6a5f26329164574f5c36306f369ff880e865 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803590 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi fa90dac8 2025-07-30T14:04:58 Revert "Vulkan: Disable VK_EXT_host_image_copy on Fuchsia" This reverts commit d62db89e1753ece99633143faf4c87b2ff23f96c. Reason for revert: It's been years, hopefully VVL is updated by now. Bug: angleproject:8341 Original change's description: > Vulkan: Disable VK_EXT_host_image_copy on Fuchsia > > An old version of VVL is used, causing incorrect failures. > > Bug: angleproject:8341 > Change-Id: I0fc605616671343a49fed6ff02ecd67eea672dca > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4873440 > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> Bug: angleproject:8341 Change-Id: Ia7a8875b955a120c80d59f2ae7566648e055eedc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6804001 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten aa533732 2025-07-28T15:56:13 CreateGeometryShaderInES3: Skip on ES3.1+ When testing the system EGL (angle_test_enable_system_egl = true), the context returned is the maximally conformant version, which can be OpenGL ES 3.2. The test GeometryShaderTestES3.CreateGeometryShaderInES3 verifies that geometry shaders cannot be created, assuming it will only ever be testing ES 3.0 contexts. 1. Add ANGLE_INSTANTIATE_TEST_ES3_AND_ES31_AND_ES32() to instantiate a test for ES 3.0, 3.1, and 3.2. 2. Update GeometryShaderTestES3.CreateGeometryShaderInES3 to skip when testing ES 3.1+ contexts. 3. Instantiate GeometryShaderTestES3 for ES 3.0, 3.1, and 3.2. Bug: b/409384875 Test: GeometryShaderTestES3 Change-Id: Ic5b4dbb167b8de7f24da285b4620f5257ed7df54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794766 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Eugene Zemtsov 4189fbb8 2025-07-29T17:50:24 Implement EGL_ANDROID_presentation_time for Vulkan backend The implementation leverages the VK_GOOGLE_display_timing Vulkan extension. Bug: chromium:434977616 Bug: angleproject:42261214 Change-Id: I7e6c64eca6c01e7eb79d41dc5ef63311a7792e2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6799254 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll b84c764f 2025-07-30T19:39:38 Manual roll vulkan-deps from 03166deacb9d to 89ca3c7958f1 (2 revisions) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/03166deacb9d..89ca3c7958f1 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/de1807b7cfa8e722979d5ab7b7445b258dbc1836..97e96f9e9defeb4bba3cfbd034dec516671dd7a3 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/c8fd10183c2059e3226b1a310e0826b09579155e..cef15589abb337bf883f7e8835279eee6546a6a7 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,solti@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: solti@google.com Change-Id: I725f9b2cda9af8fed119b70d40c111393209f75d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6802870 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Tim Van Patten 92089dce 2025-07-29T14:09:24 Vulkan: Limit maxPerStageTextures to 4096 Many devices support a huge number of samplers (millions) and every one needs a uniform location, either generated by ANGLE or assigned by the user. Limit the number of samplers per stage to something reasonable, which in turn also lowers the number of uniform locations. This isn't expected to have any practical effect on real apps/users, but is instead to keep tests for these limits (e.g., dEQP, end2end) within reason in terms of shader program sizes and compilation times. Test: KHR-GLES31.core.explicit_uniform_location.uniform-loc-mix-with-implicit-max Test: angle_end2end_tests --gtest_filter=GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers* Bug: b/434763439 Change-Id: I378483fd869b9f5ebee21760eec4dec2dd793b92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6798920 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi cd969c3e 2025-07-28T16:27:12 Vulkan: Disable clipCullDistance ext if GS/TS The extension GL_EXT_clip_cull_distance also interacts with geometry and tessellation shaders. These features are currently in development. * Added temporary flag: supportsClipCullDistanceInGSAndTS * Currently disabled by default * clipCullDistanceEXT can only be enabled if this feature is enabled, or if the device does not support geometry or tessellation shaders. * After the features become available, this flag can be removed. Bug: angleproject:42264006 Bug: b/415288635 Change-Id: Iac5c672fd980710519407c482bc95d2b0019aea2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6795025 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Mark Lobodzinski b61038bf 2025-07-28T21:55:11 Tests: Add ANGLE trace for Whiteout Survival Test: angle_trace_tests --gtest_filter=*whiteout_survival Bug: b/435147875 Change-Id: I09c429dca130321f2a7cd33abdb0521715637257 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6801131 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
angle-autoroll f8aecaf9 2025-07-30T03:01:00 Roll SwiftShader from 4bd5bd8d51e4 to 7cd1022cdc50 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/4bd5bd8d51e4..7cd1022cdc50 2025-07-29 casey.smalley@arm.com Update arm_control_flow_integrity to use bti+pac-ret 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,solti@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: solti@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ibc1e8929942c9b345ed3f6f1c30d0ae44807bf1a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6801547 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 3e52318c 2025-06-26T10:46:00 Vulkan: Ensure always using resolved Window Surface size `WindowSurfaceVk::getWidth/Height()` methods return cached, previously resolved Surface size. Using these methods while current Window Surface size is unresolved may return stale values, causing undesired behavior. Appropriate ASSERTs were added to these methods to prevent such usage. Added ASSERTs revealed few places with incorrect usage: - In `Context::makeCurrent()` to set initial viewport or for capture. - In `IsPartialBlit()` and `ValidateReadPixelsBase()` validations. - In `SerializeFramebufferAttachment()` during capture. Rest of the code was thoroughly checked if it is possible to call `WindowSurfaceVk::getWidth/Height()` when size is unresolved. All other places always call these methods after framebuffer state synchronization, which acquires swapchain images and resolves the surface size. Added `ensureSizeResolved()` method that is called during validation and in the `SerializeFramebufferAttachment()` method. It is possible to use existing `Framebuffer::syncState()` method as alternative, but this solution was discarded since it may potentially interfere with `State::syncDirtyObjects()` method. The `Surface::getUserSize()` replaces old methods as optimization, to prevent calling relatively expensive method twice from `Context::makeCurrent()` to get width and height of the `drawSurface`. Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeBeforeMakeCurrent/* Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeBeforeMakeCurrentPostSizeQuery/* Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeAndReadPixelsRobustANGLE/* Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeAndBlitFramebufferANGLE/* Bug: angleproject:397848903 Change-Id: I082e13d0b8db5fd7d08ff25b102df1f283e1256d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792928 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 11120f40 2025-07-30T09:16:04 Roll Chromium from 1beec4a855e7 to e55234bb049e (713 revisions) https://chromium.googlesource.com/chromium/src.git/+log/1beec4a855e7..e55234bb049e 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,solti@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/105157d961..f08f3ce8d6 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/bbc0003050..ea47cf7cad * buildtools/linux64: git_revision:acfe5fde8c5475a9a83bd55f3f222a6dbbcbd0ae..git_revision:3a4f5cea73eca32e9586e8145f97b04cbd4a1aee * buildtools/mac: git_revision:acfe5fde8c5475a9a83bd55f3f222a6dbbcbd0ae..git_revision:3a4f5cea73eca32e9586e8145f97b04cbd4a1aee * buildtools/win: git_revision:acfe5fde8c5475a9a83bd55f3f222a6dbbcbd0ae..git_revision:3a4f5cea73eca32e9586e8145f97b04cbd4a1aee * testing: https://chromium.googlesource.com/chromium/src/testing/+log/2e275f3da7..2e9b59c277 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/b7afe66a62..44bda899a5 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6d019469b4..e473b90df1 * third_party/libc++abi/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/00a175050b..a6c815c69d * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/14ca6ad7d6..33645b3d12 * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/3793401522..4e1963c579 * tools/luci-go: git_revision:7e34add007600430452e65b281863bb4fbeb25c8..git_revision:f2aee64d8d98e4fe969d433785e969f3effe90c6 * tools/luci-go: git_revision:7e34add007600430452e65b281863bb4fbeb25c8..git_revision:f2aee64d8d98e4fe969d433785e969f3effe90c6 * tools/luci-go: git_revision:7e34add007600430452e65b281863bb4fbeb25c8..git_revision:f2aee64d8d98e4fe969d433785e969f3effe90c6 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/8d35380437..12a10dcc90 * tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/522bd21e55..1195ae05a7 * tools/skia_goldctl/linux: 9cBfu6rdomrQL916sGYsOiSQUrWOuIR_jBjvm7ccFeQC..UePaQAmB4znC2DdGIm_DqUAEKytlOUofw0oMO0VhStcC * tools/skia_goldctl/mac_amd64: e7Uq2XB1IRBbp3a32o4m4yyU-eHdxmQ-2Kcp464UUoQC..RVm2d4iM3iQFkXafgLvvzi3KHIq_qhFWz3dNRFhamowC * tools/skia_goldctl/mac_arm64: mfzexptpGHu1w9xTtsm7-y3fgnZeDzkcRg99pgZm6XYC..X4Xi1f4spVZ7l32U7eqx8LghvrWxh_NLSkTB_hqW3s4C * tools/skia_goldctl/win: vQKW52sc1DbdemqngJE-HRBoOAXzfbPJiltAV2gCcT8C..Y69lYD2QQGCN58_A0A21UHInQVZU2kWqKStG-ls-4NkC No update to Clang. Bug: None Tbr: solti@google.com Change-Id: I84dbc5cff0a9a78b60a425b36b5ad3b77724e05e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6801411 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Solti e286ef78 2025-07-24T21:19:54 ANGLE: Add validation test for GL_RENDERER string format This change introduces a new ANGLE end-to-end test to validate the format of the GL_RENDERER string, preventing regressions caused by downstream modifications. A recent issue (b/318636997) was caused by a partner modifying the ANGLE GL_RENDERER string in a way that broke Skia's parser. This revealed that the string format is a de-facto API contract that must be enforced. This new test, RendererTest.ValidateCanonicalFormat, serves as an automated guardrail and will become part of the Android CTS. The test enforces the following structural contract: 1. The overall structure must be "ANGLE (Vendor, Renderer, Version)". 2. The separator between components must be ", ". 3. The Vendor, Renderer, and Version components must not be empty. This ensures the string is parsable by clients like Skia without over-constraining the content of the component strings, which may originate from underlying drivers. The test correctly skips validation on the Null backend, which is not subject to this contract. Test: autoninja -C out/Android angle_end2end_tests && out/Android/angle_end2end_tests --gtest_filter="RendererTest.*" --num-retries=0 Bug: b/432805963 Change-Id: I1202074cc9f4413ee88e4534fb72fb71101721e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6788522 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Solti Ho <solti@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao b4d84458 2025-05-23T18:08:19 Move Buffer from VertexBinding to VertexArray In later CL we will not taking shared context lock for certain VertexArray API calls. VertexArray itself is per context, so this sounds reasonable to do. The main challenge here is a lot of VertexArray function end up accessing gl::Buffer object, which could be modified by other shared contexts. In order to safely not taking the shared context lock, we need to separate out Buffer object out of VertexArray itself so that these lockless APIs will take VertexArray that does not have access to buffer. In this CL, VertexArray is split into two classes: VertexArrayPrivate is everything in VertexArray except buffers. VertexArray is a subclass of VertexArrayPrivate and owns all the buffers. Buffer is removed from gl::VertexBinding class. In order to let back end access to buffers, VertexArrayImpl holds a weak reference to VertexArray::mVertexArrayBuffers (which is a vector of buffers). Further, VertexArrayBufferBindingMask mBufferBindingMask is moved from VertexArrayState into VertexArray class well, since it tracks which index has a non-null buffer. The bulk of change are due to the VertexARrayImpl constructor change, since it now takes vertexArrayBuffers argument. Other bulk of changes are due to VertexBinding no long has the buffer, but you need to get it directly from VertexArray or VertexArrayImpl. This CL also reverts some of the change in crrev.com/c/6758215 that mVertexBindings no longer contains kElementArrayBufferIndex. BYPASS_LARGE_CHANGE_WARNING Bug: b/433331119 Change-Id: I15f4576f7c5c8d8f4d9c9c07d38a60ce539bfeea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774702 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 8dca0efe 2025-07-21T15:29:10 Replace VertexArray::DIRTY_BIT_LOST_OBSERVATION with API call This dirty bit was added so that back end can inspect buffers and set proper VertexArray::DirtyBitType. The same thing can achieved by add a virtual function on VertexArrayImpl class. The advantage of virtual function on VertexArrayImpl is that all back end essentially have the same implementation and we can just implemented in VertexArrayImpl instead of duplicate in each back end. The other advantage is after this CL DIRTY_BIT_BINDING_n and DIRTY_BIT_BUFFER_DATA_n will be well aligned instead of offset by 1 caused by DIRTY_BIT_LOST_OBSERVATION. The other motivation of this change is in later CL I want to move mBufferBindingMask out of VertexArrayState, which means back end will not have access to it. By using VertexArrayImpl API, I can pass mBufferBindingMask directly to the back end via function parameter. So, this CL removed DIRTY_BIT_LOST_OBSERVATION, added VertexArrayImpl::checkBufferForDirtyBits(). Bug: b/433331119 Change-Id: I5c8cbc9bace63db416e86c2ae3631f74a12b20b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775986 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 130fb2a1 2025-07-29T08:16:57 Vulkan: Don't allocate ExternalFormatIDs for sampling usecases Update the condition for allocating YUV ExternalFormatIDs to exclude sampling-only usecases. Also, rename "isYuvResolve()" to "isYuvExternalFormat()" to better reflect intent. Bug: angleproject:386749841 Change-Id: I0e4f5b79937ea8ad98b5d00fdc7531b34ffa7e16 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6797965 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Charlie Lao 40a2a912 2025-07-15T14:39:10 Track mElementArrayBuffer in std::vector<VertexBinding> Right now mElementArrayBuffer are treated a little bit differently from other vertex buffers, mainly because of elementBuffer does not have corresponding "attributeIndex" to bind to. But a lot of logic in VertexArray are same for mElementArrayBuffer and mVertexBindings. In recent CLs, we are using mBufferBindingMask to track both mElementArrayBuffer and mVertexBindings with kElementArrayBufferIndex represents element buffer. With that, some of logic handling buffers can be merged, with looping of mBufferBindingMask bits. In later CL, we are going to separate "binding" from "buffer" so that we can move buffer out of VertexArrayState class. So this is also a preparation CL so that when we move buffers out of VertexArrayState class, it does so for all buffers (both element buffer and vertex buffers). In order to track how many vertex buffers in mVertexBindings, a new variable mMaxVertexAttribBindings is added. In later CL when we move buffers out of VertexBinding, some of this CL's change will be reverted back, mVertexBindings will be reverted back to track only bindings and mMaxVertexAttribBindings will be deleted. Bug: b/433331119 Change-Id: Idd2cfe4ce64bb22923bac70abb752e132fe1abd3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6758215 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 09bbe914 2025-07-28T12:53:53 Add test for mapBuffer and disable/enable attrib interaction Added a test that mapBuffer while attribute is disabled, the draw call should succeed. If attribute is then enabled, the next draw call should fail with GL_INVALID_OPERATION error. Bug: b/433331119 Change-Id: I61d9ff16b0d485309c58c2fe2939c3de8b25864a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792268 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Tingwei Guo 4f4eab29 2025-06-30T14:58:28 Reset index buffer offset between indirect GL_LINE_LOOP draws In two consecutive glDrawArraysIndirect with GL_LINE_LOOP mode, and bound to a different Indirect Buffer, the variable value captured through TransformFeedback is the same as the first result when the second DrawArraysIndirect. When calling DrawArraysIndirect the second time, DIRTY_BIT_INDEX_BUFFER should be set to dirty so that it re-gets INDEX BUFFER to get the correct result. Bug: angleproject:428561247 Change-Id: I7f4ebb53e20cf8e362e67679b45185b8b68c56ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6687309 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Tingwei Guo <tingwei.guo@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 866370dc 2025-07-28T22:12:00 Disable texture_compression_astc_decode_mode exts during capture The GL_EXT_texture_compression_astc_decode_mode and GL_EXT_texture_compression_astc_decode_mode_rgb9e5 extensions are not widely supported outside of ARM and Qualcomm. Disable while ANGLE capture is enabled. Test: angle_trace_tests --gtest_filter=*whiteout_survival Bug: b/434819166 Change-Id: I4cebf6942144c61a954dfd9dfe9bd9935638ff60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794776 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll 6fe8c6ed 2025-07-29T10:01:33 Roll vulkan-deps from aef5b0045b59 to 03166deacb9d (8 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/aef5b0045b59..03166deacb9d Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/e832dc66e14bb68683cd5ae51fd2431c3f544c4d..ac2c388bf81603af09d0eb599322b2f3447c5812 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/a983ab19d6f91a07a8272767427b6c5208576d08..c8fd10183c2059e3226b1a310e0826b09579155e https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/9007c052db384bdea65c0c4dba927efdf93c465a..e41b4bb2ae355fd3119c19ce3d898d0c111a7060 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,solti@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: solti@google.com Change-Id: Idda582e26561e72c8521923450b6003896cd39f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794779 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll ebfee8a1 2025-07-29T03:01:46 Roll SwiftShader from 8802b4ec130b to 4bd5bd8d51e4 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/8802b4ec130b..4bd5bd8d51e4 2025-07-28 swiftshader.regress@gmail.com Regres: Update test lists @ 8802b4ec 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,solti@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: solti@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: Ie463d1381e60bc1ebd4bf74b18765113fda654b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6796494 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll a08c092e 2025-07-29T07:42:42 Roll Chromium from 2f075e19fc00 to 1beec4a855e7 (711 revisions) https://chromium.googlesource.com/chromium/src.git/+log/2f075e19fc00..1beec4a855e7 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,solti@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/7c4b770a83..105157d961 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/9c179c04d3..bbc0003050 * buildtools/linux64: git_revision:4cfb717bbd5ecfcf63af3cb4487da5ea4777ef67..git_revision:acfe5fde8c5475a9a83bd55f3f222a6dbbcbd0ae * buildtools/mac: git_revision:4cfb717bbd5ecfcf63af3cb4487da5ea4777ef67..git_revision:acfe5fde8c5475a9a83bd55f3f222a6dbbcbd0ae * buildtools/win: git_revision:4cfb717bbd5ecfcf63af3cb4487da5ea4777ef67..git_revision:acfe5fde8c5475a9a83bd55f3f222a6dbbcbd0ae * testing: https://chromium.googlesource.com/chromium/src/testing/+log/485707903e..2e275f3da7 * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/3146ad28d4..b7afe66a62 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1addc95539..4e4076a0d7 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/56f1f96c4b..6d019469b4 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/be9dd89ffb..c105b13e37 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/f24be5deb7..14ca6ad7d6 * third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2.git/+log/6e8f5be3a3..66a656e6d9 * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/283b3095a9..498b55d696 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6cec3ec692..b6138bef35 * tools/luci-go: git_revision:efbba64186435ac28ad419751e67e377c7459c38..git_revision:7e34add007600430452e65b281863bb4fbeb25c8 * tools/luci-go: git_revision:efbba64186435ac28ad419751e67e377c7459c38..git_revision:7e34add007600430452e65b281863bb4fbeb25c8 * tools/luci-go: git_revision:efbba64186435ac28ad419751e67e377c7459c38..git_revision:7e34add007600430452e65b281863bb4fbeb25c8 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/3e256eafee..8d35380437 * tools/skia_goldctl/linux: Sg25-ZztJqPtMF0rPXgRDM3-fKRveWcIbIvbwwKPAPUC..9cBfu6rdomrQL916sGYsOiSQUrWOuIR_jBjvm7ccFeQC * tools/skia_goldctl/mac_amd64: hZpj0hRnYNFplpUOcSd95nLfQDnWLU1-a_aTEzwQCjwC..e7Uq2XB1IRBbp3a32o4m4yyU-eHdxmQ-2Kcp464UUoQC * tools/skia_goldctl/mac_arm64: ulgsu9nJXlCe-TeAX6PIPIIVr557_qKnjOjyPO9ib9UC..mfzexptpGHu1w9xTtsm7-y3fgnZeDzkcRg99pgZm6XYC * tools/skia_goldctl/win: 0sP0Mad75mVvpE0TL1hNJaOPR1oZCkpx5K_zELfKe2YC..vQKW52sc1DbdemqngJE-HRBoOAXzfbPJiltAV2gCcT8C No update to Clang. Bug: None Tbr: solti@google.com Change-Id: I1e598edafe63df5550e82daa7f5522e8304b102d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794777 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Charlie Lao 9635df8e 2025-07-16T15:13:19 Move mCached*ArrayBuffers from VertexArrayState to VertexArray The three cached AttributeMasks variables are mCachedMappedArrayBuffers, mCachedMutableOrImpersistentArrayBuffers, mCachedInvalidMappedArrayBuffer. They are currently declared in VertexArrayState class. They are only accessed by VertexArray front end, back end does not use them, which means they do not need to be in VertexArrayState class. This CL moves these three variables to VertexArray class in preparation for later CLs that VertexArrayState will not have access to Buffer objects. This CL also removed unnecessary updateCachedMutableOrNonPersistentArrayBuffers call from VertexArray::enableAttribute, since mCachedMutableOrImpersistentArrayBuffers does not depend on any variables enableAttribute() is modifying. Bug: b/433331119 Change-Id: I8b1f0c7d511dbc6858d20f33863154e8fe3077f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6762902 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Tim Van Patten a6699c9f 2025-07-23T13:33:48 Android: Stop polling messages when app destroy requested The Chromium Android testing app enters an infinite loop to poll for messages to run the tests. However, this prevents the app from gracefully shutting down when the DESTROY event is received, because android_main() never returns, so the NDK function android_app_free() never sees android_app->destroyed become true. This prevents using Android instrumented tests in CTS, because the instrumentation never sees the ANGLE app complete the handling of the DESTROY event and exit cleanly. To fix this, check sApp->destroyRequested after each event and break from the infinite loop if the app is being destroyed. Bug: b/279980674 Change-Id: I63edaa6d64e57cd99b6b63a9631c30a65c416220 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6781760 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 214a48c4 2025-07-16T12:42:18 Vulkan: add support for yuv resolve with transient image Add support for the YUV_target extension in cases where the implementation supports VK_ANDROID_external_format_resolve without supporting nullColorAttachmentWithExternalFormatResolve. Bug: angleproject:386749841 Tests: ImageTest*YUV* Change-Id: Iebcb4f843b962f3d0d2f4e42db479902b6c1f849 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6761834 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 2b12571c 2025-07-27T20:07:50 Tests: Add Last War: Survival Game trace Test: angle_trace_tests --gtest_filter="*last_war_survival_game" Bug: b/434548051 Change-Id: I25750ef43d58ee06a3149b9fce26b6d9b42c9931 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789518 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
angle-autoroll 788daaf5 2025-07-28T12:10:41 Roll vulkan-deps from b16be89ea18d to aef5b0045b59 (9 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/b16be89ea18d..aef5b0045b59 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/192b610c89300a30221b8909bf71dcb12cd3c92d..e832dc66e14bb68683cd5ae51fd2431c3f544c4d https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/d8c5240c39fdda04bf93e86318916bf19b78a24d..a983ab19d6f91a07a8272767427b6c5208576d08 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/df2e3581520f36776cd42b9fec3ec4a51ab878ef..b0a40d2e50310e9f84327061290a390a061125a3 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/ebaf10be2a9b5a523d2e01c2e5820b3f7a444fed..9007c052db384bdea65c0c4dba927efdf93c465a 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,solti@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: solti@google.com Change-Id: Ia920ad9894946673f46d4d5b20ec527c394ea115 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792265 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 51baa83f 2025-07-28T03:01:55 Roll SwiftShader from a84d1801cf7b to 8802b4ec130b (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/a84d1801cf7b..8802b4ec130b 2025-07-25 swiftshader.regress@gmail.com Regres: Update test lists @ a84d1801 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,solti@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: solti@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I5e7ec0500dee7506accd756879ce61bff0ce15e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6790871 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll b58de53d 2025-07-28T07:00:30 Roll Chromium from 1a3e7139a23e to 2f075e19fc00 (754 revisions) https://chromium.googlesource.com/chromium/src.git/+log/1a3e7139a23e..2f075e19fc00 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,solti@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/31eb17c224..7c4b770a83 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/30c72f27f5..9c179c04d3 * buildtools/linux64: git_revision:e9fc92ac17deefc369690f412dc32f1b23bf0ce3..git_revision:4cfb717bbd5ecfcf63af3cb4487da5ea4777ef67 * buildtools/mac: git_revision:e9fc92ac17deefc369690f412dc32f1b23bf0ce3..git_revision:4cfb717bbd5ecfcf63af3cb4487da5ea4777ef67 * buildtools/win: git_revision:e9fc92ac17deefc369690f412dc32f1b23bf0ce3..git_revision:4cfb717bbd5ecfcf63af3cb4487da5ea4777ef67 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/26f0d3392d..485707903e * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/b24d00e5a5..8b3cac3801 * third_party/android_build_tools/error_prone/cipd: 5a3g1B4p_Tm13W7rpQ_J2eKjfkyCHweFjgKSvkRjH1gC..V1UaojOb1ghWxbzvm7e3KAo4E5L41McXcK_4S37dQWAC * third_party/android_build_tools/lint/cipd: vUYMCtWFB6js-IE5eVipej3y_TzYSbWb3WzIT1uerYUC..aS4jV08o7OzcMeyyL2RcyXM0e8V2feomEKdqh8nowjwC * third_party/android_build_tools/manifest_merger/cipd: wSkRiVgXkyd47hI2iK2Yj9UZCPqHBGS6_ypfDlAsdw4C..XY78mpSqG9c2zsRPfLI2m16ihBltxa3R27qOXhV9WMIC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5b2aa8309e..1addc95539 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/ed0f32ee7a..be9dd89ffb * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/73cbf2b166..f24be5deb7 * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/0b339933cd..283b3095a9 * third_party/siso/cipd: git_revision:33e71490533f445467879650036b6af7940455f3..git_revision:e5fa67c5a456c1ab932f440ddfb195a8a33c235b * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/e8b2f1816f..3793401522 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/c5dc331440..6cec3ec692 * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/2ea414c50e..3c7b1f4daa * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f3981b4176..3e256eafee No update to Clang. Bug: None Tbr: solti@google.com Change-Id: I464e3b6e0a847450dde2a4d560fb6eff7b184f0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789521 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Mark Lobodzinski 1df94a64 2025-07-25T15:46:42 Tests: Add Dice Dreams ANGLE trace Test: angle_trace_tests --gtest_filter=*dice_dreams Bug: b/434552757 Change-Id: Ie56bd5fee6aebbddc9c613609d636acca11749a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789519 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski c8209fec 2025-07-25T10:16:25 Tests: Add Avatar World trace Test: angle_trace_tests --gtest_filter=*avatar_world Bug: b/434146678 Change-Id: I3983c0720f541f5d28a82f4c3bcff7b6ea4252a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785913 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Geoff Lang e4007fff 2025-07-24T15:50:48 GL: Remove ARB_base_instance check for EXT_base_instance support This is a speculative fix for reported flickering issues on Linux. https://chromium-review.googlesource.com/c/angle/angle/+/6580170 changed EXT_base_instance to only be supported when it is not emulated and fixed the condition to include ARB_base_instance, possibly hitting driver bugs on some devices. Bug: angleproject:355645824 Bug: chromium:427956856 Change-Id: I869fa7f618e82ad46c1953f0bacef0767bbc793e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777576 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
angle-autoroll f4d16e64 2025-07-25T12:39:05 Roll vulkan-deps from b7374531e4a2 to b16be89ea18d (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/b7374531e4a2..b16be89ea18d Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/04d4deab5d608af8fbe418c422734a73555589c3..d8c5240c39fdda04bf93e86318916bf19b78a24d https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/4cf7390eb853a54e7f9ae1c948ac09995ed8b8e5..ebaf10be2a9b5a523d2e01c2e5820b3f7a444fed 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,syoussefi@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: syoussefi@google.com Change-Id: I509b0a6151a80cf82dccd1cb497a12a1489a9191 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6788362 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuly Novikov 7fc1baa0 2025-07-25T05:17:25 Revert "Remove dupe dependency: vulkan-deps" This reverts commit 43f8d708b87446d233640ad27abf8c1b4a7d68dc. Reason for revert: breaks autoroll Bug: chromium:433839081 Original change's description: > Remove dupe dependency: vulkan-deps > > Credit rop@ > > Bug: chromium:433839081 > Change-Id: Ibea08597e3490dcd374d386b8ae165b7399bd972 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6776852 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: chromium:433839081 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I4cb65820ac8fe25c19efa186b5864c6f2eaadc94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6786933 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>
angle-autoroll e5a2c396 2025-07-25T07:03:21 Roll Chromium from 07e7c6a89f6c to 1a3e7139a23e (1216 revisions) https://chromium.googlesource.com/chromium/src.git/+log/07e7c6a89f6c..1a3e7139a23e 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,syoussefi@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/17fc288d82..31eb17c224 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/36ee1c7a30..30c72f27f5 * buildtools/linux64: git_revision:85f62c164c829442fb662f6aa1243c02bcc47155..git_revision:e9fc92ac17deefc369690f412dc32f1b23bf0ce3 * buildtools/mac: git_revision:85f62c164c829442fb662f6aa1243c02bcc47155..git_revision:e9fc92ac17deefc369690f412dc32f1b23bf0ce3 * buildtools/win: git_revision:85f62c164c829442fb662f6aa1243c02bcc47155..git_revision:e9fc92ac17deefc369690f412dc32f1b23bf0ce3 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/436769856a..26f0d3392d * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/320a9daea6..b24d00e5a5 * third_party/android_build_tools/aapt2/cipd: QAJPvXRIKAdvDEnn23X7nLv-pZlN3qjPeD_vq4QsYRIC..2Tff49a5dYTM5YvxxqyOsTQ9k8nOqM4ayydbCuKoxIwC * third_party/android_build_tools/error_prone/cipd: CEqMYEsaqKnNQyglUsxm_2t7HlZvMDFoLEDpOwojrLQC..5a3g1B4p_Tm13W7rpQ_J2eKjfkyCHweFjgKSvkRjH1gC * third_party/android_build_tools/lint/cipd: b8AHtDAbZgiVrWGB-AEmvVAb_qTfgMhi0hi_swHIx6EC..vUYMCtWFB6js-IE5eVipej3y_TzYSbWb3WzIT1uerYUC * third_party/android_build_tools/manifest_merger/cipd: 1hP6AEaf7D9UPDHSjdo0-C1zpHYErmkxDJRMfymsexAC..wSkRiVgXkyd47hI2iK2Yj9UZCPqHBGS6_ypfDlAsdw4C * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/214ad75f39..3146ad28d4 * third_party/android_sdk/public: mjFmRj7k_XR9yj60pYbr9mG38FyEbU5oWdU56bZQ5cwC..qTD9QdBlBf3dyHsN1lJ0RH6AhHxR42Hmg2Ih-Vj4zIEC * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/ed07b403a2..5b2aa8309e * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/28358f4020..56f1f96c4b * third_party/fuchsia-sdk/sdk: version:28.20250709.3.1..version:28.20250723.2.1 * third_party/ijar: https://chromium.googlesource.com/chromium/src/third_party/ijar/+log/935be444d6..4b641086e0 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/ac9e4860ca..ed0f32ee7a * third_party/libc++abi/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/b6f2833c99..00a175050b * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/15268943dc..73cbf2b166 * third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2.git/+log/ade723c0c3..6e8f5be3a3 * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/3203dc1933..0b339933cd * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/ad203d4ebe..c5dc331440 * tools/luci-go: git_revision:3d4e77634359485da65136798a6278c463bdf11d..git_revision:efbba64186435ac28ad419751e67e377c7459c38 * tools/luci-go: git_revision:3d4e77634359485da65136798a6278c463bdf11d..git_revision:efbba64186435ac28ad419751e67e377c7459c38 * tools/luci-go: git_revision:3d4e77634359485da65136798a6278c463bdf11d..git_revision:efbba64186435ac28ad419751e67e377c7459c38 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/6c50647ee9..d90a4a94e0 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/2af564c7f9..f3981b4176 * tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/13687c3088..522bd21e55 * tools/skia_goldctl/linux: dKZpRJmIZbZWCBXvVVjs1YTZslJoSBMHBIqTpdpsN-QC..Sg25-ZztJqPtMF0rPXgRDM3-fKRveWcIbIvbwwKPAPUC * tools/skia_goldctl/mac_amd64: 12tDnieLoBvORD80sklJL-hfBv4LYEKMmrZHsGJ5gnsC..hZpj0hRnYNFplpUOcSd95nLfQDnWLU1-a_aTEzwQCjwC * tools/skia_goldctl/mac_arm64: t1RKQ6QfRd7ARC5xw--IwYvSAfxeKuY0e2B3CgVWjugC..ulgsu9nJXlCe-TeAX6PIPIIVr557_qKnjOjyPO9ib9UC * tools/skia_goldctl/win: 59DTb2NmGNjG4dCKnsF9mfg-bxq-4OLfQ4z78-PChnkC..0sP0Mad75mVvpE0TL1hNJaOPR1oZCkpx5K_zELfKe2YC No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: I923fbb06cfa7017c535824c20ada0dedd5c5f6f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6787516 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Yuxiang Qian 6a03109f 2025-07-09T18:24:31 Refine getCompressionRate As Vulkan spec states, vkGetImageSubresourceLayout should not be called for the android swapchainimage when the image is not bound to memory. Refine the path of getCompressionRate to make sure at least swapchainimage[0] has been initialized when it is been called. Bug: angleproject:433057375 Change-Id: I80b68874686940c0ef77df97b928b0e153c5bbf8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774721 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d38531e8 2025-07-23T09:39:11 Fix extension check for xfb mode validation With geometry and tessellation shaders, it's possible to use different primitive modes between transform feedback and draw, as long as they are from the same class. The code accidentally allowed this only if both extensions are supported, but it should be allowed if either is. Bug: angleproject:428561247 Change-Id: Ia18d4ac15a3d0739ce18dc0e1f3d3f0b1aea621c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780744 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jordan Brown 13f6df49 2025-07-17T20:40:19 Fix the format of the "License" field in README.chromium files. Add missing license for util/android/thrid_party based on license at the source url. Bug: chromium:421988485 Bug: chromium:421989135 Bug: chromium:421988956 Bug: chromium:421988537 Bug: chromium:421988894 Bug: chromium:421989250 Bug: chromium:421988522 Bug: chromium:421988185 Bug: chromium:421989147 Bug: chromium:421988875 Bug: chromium:421988779 Bug: chromium:421988799 Bug: chromium:421988324 Bug: chromium:421988930 Bug: chromium:421988996 Change-Id: I4008229b3031734dd2dc991026cdebe0894c352c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6768429 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jordan Brown <rop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Matthew Denton 6a3ff5a1 2025-07-17T12:41:13 WGSL: extra debug logging for failure cases Bug: angleproject:42267100 Change-Id: I8938526b60af71d15d4327bc10fa172117afef60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777200 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Matthew Denton 343e3bdc 2025-07-17T12:38:31 ScalarizeVecAndMatConstructors: also handle scalar constructors In WGSL you cannot "construct" a scalar from a non-scalar (vec or mat). This modifies ScalarizeVecAndMatConstructors to handle scalar constructors as well, indexing and swizzling the argument to select the first element of the nonscalar. This makes dEQP-GLES2.functional.shaders.conversions.vector_to_scalar.* pass (except those that use bool uniforms which are still unsupported). Bug: angleproject:42267100, angleproject:395659799 Change-Id: Ibaa3dc14f36fecb384bfb6e7f226c6d5f377dd5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777199 Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski 7181239d 2025-04-04T14:13:58 Add long ANGLE traces feature Enables very long Android captures by swapping binary data chunked buffers to/from disk. Bug: b/425728227 Change-Id: I539f72590eece03cfc69d42fc34be9825a9ff1fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6476924 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Tim Van Patten cf4c8c2a 2025-07-10T15:50:36 Add max sampler count to maxUniformLocations OpenGL ES 3.2 Spec: > ## 7.6. UNIFORM VARIABLES > > When a program is linked successfully, all active uniforms, except for > atomic counters, belonging to the program object’s default uniform > block are initialized as defined by the version of the OpenGL ES > Shading Language used to compile the program. A successful link will > also generate a location for each active uniform in the default > uniform block which doesn’t already have an explicit location defined > in the shader. The generated locations will never take the location of > a uniform with an explicit location defined in the shader, even if that > uniform is determined to be inactive. The values of active uniforms in > the default uniform block can be changed using this location and the > appropriate Uniform* or ProgramUniform* command (see section 7.6.1). > These generated locations are invalidated and new ones assigned after > each successful re-link. The explicitly defined locations and the > generated locations must be in the range of 0 to the value of > MAX_UNIFORM_LOCATIONS minus one. Currently, ANGLE sets the mNativeCaps.maxUniformLocations to the maximum number of supported uniform variables (maxUniformVectors). However, samplers are also uniforms and consume uniform locations during shader linking. This causes shader compilation to fail for context versions 3.1+ if a shader uses both the maximum number of uniform variables and maximum number of samplers because the number of uniform locations is exceeded. This specific edge case is being tested by the end2end test GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers. Unfortunately, that test is only instantiated for GLES 2.0 and 3.0 and ANGLE's shader linker only validates the number of supported uniform locations are not exceeded for GLES 3.1+, so that error path is not being validated. 1. Include both the maximum number of supported uniform variables and maximum number of samplers whe calculating the supported maximum number of uniform locations. 2. Instantiate GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers for GLES 2.0, 3.0, 3.1, and 3.2 so the edge cases are tested for all supported GLES versions. Bug: b/279980674 Test: angle_end2end_tests --gtest_filter=GLSLTest.VerifyMaxVertexUniformVectorsWithSamplers* Change-Id: I8ad1f4d2a040a189625d516b54bf2f79ef218edc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6724940 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 43f8d708 2025-07-24T10:43:53 Remove dupe dependency: vulkan-deps Credit rop@ Bug: chromium:433839081 Change-Id: Ibea08597e3490dcd374d386b8ae165b7399bd972 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6776852 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tim Van Patten bc9ff5e6 2025-07-11T13:43:05 Don't cache shaders/programs that are too large Currently, ANGLE compresses and caches every shader program, but can then fail to decompress the cached program because the uncompressed size is too large. Instead, check if the program size is too large before compressing and caching the program, so ANGLE doesn't generate an error later while attempting to decompress the cached program. This change is applied to both shaders and programs: * MemoryShaderCache::putShader() * MemoryProgramCache::putProgram() Bug: b/279980674 Change-Id: I67a3b542b460a41dbbc4a3d8bad4031a212223e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6728876 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Geoff Lang b7582680 2025-02-24T18:04:32 Reland: GL: Allow untranslated shaders to pass through on GLES Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which uses the NULL translator and passes the original shader to the driver. The parser is still used for shader reflection. Always enable the null compiler backend. It has almost no binary size cost and is now potentially used when the null ANGLE backend is not enabled. Bug: angleproject:398857482 Change-Id: Id528189ccbbacb1c444eacb151baadfda9fcc04b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6488609 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop cd6680b4 2025-07-23T22:25:32 Tests: Add Last Z: Survival Shooter trace Test: angle_trace_tests --gtest_filter="*last_z_survival_shooter*" Bug: b/433847164 Change-Id: Ifb142d750de9fc9a626896608aefe30ecd06b1f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6782543 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
angle-autoroll dd6a1a2c 2025-07-24T10:02:04 Roll vulkan-deps from 0b8bda098b9a to b7374531e4a2 (9 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/0b8bda098b9a..b7374531e4a2 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/597e427cce3fc97a8455b26aba1a1189546717c3..192b610c89300a30221b8909bf71dcb12cd3c92d https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/c8ad050fcb29e42a2f57d9f59e97488f465c436d..de1807b7cfa8e722979d5ab7b7445b258dbc1836 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/8cf1bf9bb922e33135e6e343a566764015da2dc6..04d4deab5d608af8fbe418c422734a73555589c3 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/dad479f6294df6c7a706964c489926be943a8baf..4cf7390eb853a54e7f9ae1c948ac09995ed8b8e5 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,syoussefi@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: syoussefi@google.com Change-Id: Iff95f0d257f10922a681697549f833092622f395 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6782918 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 95749708 2025-07-24T03:01:52 Roll SwiftShader from b347398f5e86 to a84d1801cf7b (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/b347398f5e86..a84d1801cf7b 2025-07-23 swiftshader.regress@gmail.com Regres: Update test lists @ b347398f 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,syoussefi@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: syoussefi@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I9c6f02338c18f94e9433f04cbf3abaaede7db55b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6782794 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Igor Nazarov 03676f3f 2025-07-22T15:34:18 Tests: Add MixedMultisampleSingleSampledDraw test Test: angle_trace_tests --gtest_filter=MultisampledRenderToTextureES3Test.MixedMultisampleSingleSampledDraw Bug: angleproject:433462527 Change-Id: I87b56452bd5ad1d7841341ddd7af9479fe966f6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6773431 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop f94510ab 2025-07-22T21:16:37 Tests: Add Honkai Impact 3rd trace Test: angle_trace_tests --gtest_filter="*honkai_impact_3rd*" Bug: b/433331917 Change-Id: Ia7edcf0b930a646923019b6e4c8b49678d6b189f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780136 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop ab74884c 2025-07-22T20:46:05 FrameCapture: Check current state for indexed buffers When checking whether we need to set per draw buffer blend state, we don't care whether they differ from default, we only care if they differ from each other. The non-indexed commands will set the same state for all buffers. This CL removes default state from the check. Otherwise, we are getting a block of identical indexed commands: glBlendFuncSeparateiEXT(0, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFuncSeparateiEXT(1, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFuncSeparateiEXT(2, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFuncSeparateiEXT(3, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFuncSeparateiEXT(4, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFuncSeparateiEXT(5, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Which is equivalent to: glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Test: Honkai Impact 3rd trace Bug: b/433331917 Change-Id: Ie6bd7549d69c1548aace92126312527b8e585046 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780135 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
angle-autoroll 0aebab74 2025-07-23T03:01:18 Roll SwiftShader from 084f9893520c to b347398f5e86 (1 revision) https://swiftshader.googlesource.com/SwiftShader.git/+log/084f9893520c..b347398f5e86 2025-07-22 swiftshader.regress@gmail.com Regres: Update test lists @ 084f9893 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,syoussefi@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: syoussefi@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I1b381770573b15c64cea0633f6f8daccbd05f141 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780992 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 7b20c2b1 2025-07-23T10:01:12 Roll vulkan-deps from e07930aa8378 to 0b8bda098b9a (5 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/e07930aa8378..0b8bda098b9a Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/775230d6de3d58095331bc5a314dd63255c6d659..dad479f6294df6c7a706964c489926be943a8baf 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,syoussefi@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: syoussefi@google.com Change-Id: Ic0532fd72e9b24601839a85f4074bca0707168f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780993 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll c8bcf513 2025-07-23T07:42:38 Roll Chromium from 714e16cda637 to 07e7c6a89f6c (651 revisions) https://chromium.googlesource.com/chromium/src.git/+log/714e16cda637..07e7c6a89f6c 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,syoussefi@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/a1f8648722..17fc288d82 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/90b48c96e7..36ee1c7a30 * buildtools/linux64: git_revision:eb4530a2cb7813f81e390ebc3505f64b94518458..git_revision:85f62c164c829442fb662f6aa1243c02bcc47155 * buildtools/mac: git_revision:eb4530a2cb7813f81e390ebc3505f64b94518458..git_revision:85f62c164c829442fb662f6aa1243c02bcc47155 * buildtools/win: git_revision:eb4530a2cb7813f81e390ebc3505f64b94518458..git_revision:85f62c164c829442fb662f6aa1243c02bcc47155 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/5d5179585b..436769856a * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/fa304eccac..320a9daea6 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/569aa83b4b..ac9e4860ca * third_party/libunwind/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git/+log/634c609746..84c5262b57 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/f603c99c99..15268943dc * third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2.git/+log/79741d66ed..ade723c0c3 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/3454fad2d4..ad203d4ebe * tools/luci-go: git_revision:ce380e662ce9327acf0c5d84fa310a7bfaa108c3..git_revision:3d4e77634359485da65136798a6278c463bdf11d * tools/luci-go: git_revision:ce380e662ce9327acf0c5d84fa310a7bfaa108c3..git_revision:3d4e77634359485da65136798a6278c463bdf11d * tools/luci-go: git_revision:ce380e662ce9327acf0c5d84fa310a7bfaa108c3..git_revision:3d4e77634359485da65136798a6278c463bdf11d * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/7f4bdaac14..2ea414c50e * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/5515978448..2af564c7f9 * tools/skia_goldctl/linux: bjFgrjj2HgmCZmoQUwM2GMDYWF7SAEh7IwTGapy6NBwC..dKZpRJmIZbZWCBXvVVjs1YTZslJoSBMHBIqTpdpsN-QC * tools/skia_goldctl/mac_amd64: tJ9Ig7GLCer81AflLHJX0Krknawqd51qehvwhaGpZO4C..12tDnieLoBvORD80sklJL-hfBv4LYEKMmrZHsGJ5gnsC * tools/skia_goldctl/mac_arm64: MQtt3k5TKZdMiE0lva_ulaLqLDoKjZm0ItZgvjidjmYC..t1RKQ6QfRd7ARC5xw--IwYvSAfxeKuY0e2B3CgVWjugC * tools/skia_goldctl/win: lYztLUb5WOMcDcTJpbHpiikw3PA2zagzacUpMBGlWwoC..59DTb2NmGNjG4dCKnsF9mfg-bxq-4OLfQ4z78-PChnkC No update to Clang. Bug: angleproject:5038,angleproject:6245 Tbr: syoussefi@google.com Change-Id: I5fd8e0dffa6ff9afb22681cea1fe3167b734a4f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6778284 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Shahbaz Youssefi 1c245d90 2025-07-22T17:44:15 Fix ASTC emulation for array textures Only the first slice was decoded. Bug: angleproject:432782046 Change-Id: Ibb9d7ff72424c26b240900c1a5f39acd1fc62650 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6779463 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 4e81cd79 2025-07-21T10:45:02 FrameCapture: Update context limits We're seeing multiple titles run incorrectly without updating these two limits during capture. I've verified locally that these still fit within the limits of all modern devices we're looking at. If there are any problems with older devices, we can address them with: addIntegerPrerequisite(GL_MAX_DRAW_BUFFERS_EXT, 6); addIntegerPrerequisite(GL_MAX_VERTEX_UNIFORM_VECTORS, 4096); Bug: b/431854319 Bug: b/433331917 Change-Id: Id21de17acc4d24157dfe07de6b9de818561399ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775624 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi c2224aef 2025-07-22T14:35:49 Revert "Fix VK-GL-CTS build error" This reverts commit a676c4725490ee896e1154d5fbe1b1c1adc83678. Reason for revert: CTS build issue is fixed upstream and rolled into ANGLE. Bug: angleproject:432337091 Original change's description: > Fix VK-GL-CTS build error > > ... temporarily by overriding the offending file until the upstream fix > lands. > > Bug: angleproject:432337091 > Change-Id: I878561e0856e43b657bcaf08a7563ac639794098 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775382 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:432337091 Change-Id: I1607d32b4007df91c721601fc16bcb05932f2567 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777764 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton cbff5658 2025-07-16T14:10:47 ScalarizeVecAndMatConstructorArgs: cast for mat constructors In WGSL, matrix constructors also can't handle arguments of differing basic type than the constructor's basic type, so cast when necessary. Makes dEQP-GLES2.functional.shaders.conversions.scalar_to_matrix.* pass for WGSL. dEQP-GLES2.functional.shaders.conversions.matrix_to_matrix.* does not yet pass because WGSL can't handle matrix shader inputs/outputs. Bug: angleproject:42267100, angleproject:395659799 Change-Id: Ia4761190c78ccfe7d748275642361ada93314529 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777198 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Matthew Denton 2c1a55b3 2025-07-16T13:44:49 WGSL: implement == for vectors by wrapping in all() WGSL's vec comparisons are component-wise, so wrapping the result in a call to all() returns true if all components compare equal, matching the behavior of GLSL's vec comparisons (== and !=). Bug: angleproject:42267100 Change-Id: Icfbfacf72e53096e2567fa89bcd4bf573e457ec1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777197 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Charlie Lao cdffecb7 2025-07-21T11:30:45 Vulkan: Ensure FramebufferVk::mRasterizationSamples > 0 GraphicsPipelineDesc can't handle samples being zero. This CL ensures we always use at least one sample. Bug: angleproject:431250668 Change-Id: I7f6b14c6060585fe7ef6fb55ed6a4b9813634f3f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6431827 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Neil Zhang 364ad1c4 2025-07-15T12:47:55 Enable test ImageTestES3.SourceYUVAHBTargetExternalCopySrc on Pixel 6 This issue been fixed by patch: http://crrev.com/c/6679988, when sampling YUV formats, angle use texture() instead of texelFetch(), and should adjust texture coordinates by + 0.5 Bug: angleproject:395520107 Change-Id: I22166b28c5ee2949d5e9570137e110edc34fffaa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6738562 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Neil Zhang <Neil.Zhang@arm.com>
angle-autoroll b98d0525 2025-07-22T03:01:17 Roll SwiftShader from 65b2c4777e5f to 084f9893520c (3 revisions) https://swiftshader.googlesource.com/SwiftShader.git/+log/65b2c4777e5f..084f9893520c 2025-07-21 rsworktech@outlook.com Make llvm-16.0 Chromium build warning free 2025-07-21 rop@google.com Use standard SPDX license identifier in README.chromium 2025-07-21 swiftshader.regress@gmail.com Regres: Update test lists @ 65b2c477 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,syoussefi@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: syoussefi@google.com Use-Permissive-Angle-Pixel-Comparison: True Change-Id: I17f6bde3fbe98b1d49663360bef186bd96019642 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777258 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 22b41a03 2025-07-22T10:01:12 Roll vulkan-deps from 115cdec98cc6 to e07930aa8378 (7 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/115cdec98cc6..e07930aa8378 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/15b727afdd0b69ef5d178727e7ac66be991e678f..f43df42fe69bb38d43625b53e0706bbee43d74b4 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/257a227fbadf8176ea386c7d8fb9b889cbf08640..8cf1bf9bb922e33135e6e343a566764015da2dc6 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/36f2e7584258bea0b6d71aed7108f5afe11ea494..f766b30b2de3ffe2cf6b656d943720882617ec58 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/d19ef11ea8981974e46c031633fadf50a2ced209..775230d6de3d58095331bc5a314dd63255c6d659 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,syoussefi@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: syoussefi@google.com Change-Id: I62daf037cddfff7a15416bfed3be7363da7e8493 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777056 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll 3365445b 2025-07-22T09:06:51 Roll VK-GL-CTS from 368ac769be44 to ad59a18f2ce0 (1 revision) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/368ac769be44..ad59a18f2ce0 2025-07-22 abdolrashidi@google.com Include iterator to gl4cEnhancedLayoutsTests 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,syoussefi@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: syoussefi@google.com Change-Id: If88417209c9f58f87256cc69d87b2631cc98a6e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777055 Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
angle-autoroll e815df7f 2025-07-22T08:23:36 Roll Chromium from 3f250af9a632 to 714e16cda637 (2558 revisions) https://chromium.googlesource.com/chromium/src.git/+log/3f250af9a632..714e16cda637 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,syoussefi@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/c734cf94f4..a1f8648722 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/bb0dbc354c..90b48c96e7 * buildtools/linux64: git_revision:c4748415f12ac92d2781608b8b84fcc0e33e5ff9..git_revision:eb4530a2cb7813f81e390ebc3505f64b94518458 * buildtools/mac: git_revision:c4748415f12ac92d2781608b8b84fcc0e33e5ff9..git_revision:eb4530a2cb7813f81e390ebc3505f64b94518458 * buildtools/win: git_revision:c4748415f12ac92d2781608b8b84fcc0e33e5ff9..git_revision:eb4530a2cb7813f81e390ebc3505f64b94518458 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/da9b17c744..5d5179585b * third_party/abseil-cpp: https://chromium.googlesource.com/chromium/src/third_party/abseil-cpp/+log/cae4b6a399..fa304eccac * third_party/android_build_tools/error_prone/cipd: bCQ_MOCwzM4fJFiHDoTJEB9hoP1Oo-OypDACePv2ChEC..CEqMYEsaqKnNQyglUsxm_2t7HlZvMDFoLEDpOwojrLQC * third_party/android_build_tools/lint/cipd: Udt_ui9-OCSxeIcww7Glc5tu_22Nynmo1p-LSAUG6qkC..b8AHtDAbZgiVrWGB-AEmvVAb_qTfgMhi0hi_swHIx6EC * third_party/android_build_tools/manifest_merger/cipd: X1QeCG1bnGy8cHpJcHN8WYgMmiQXjpDUbIvx7cc1MbMC..1hP6AEaf7D9UPDHSjdo0-C1zpHYErmkxDJRMfymsexAC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/31cfff6e10..214ad75f39 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/16ae41e875..ed07b403a2 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/8532fbcf79..28358f4020 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/7a36df3acb..569aa83b4b * third_party/libc++abi/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/8eeec53078..b6f2833c99 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/cac117af24..f603c99c99 * third_party/re2/src: https://chromium.googlesource.com/external/github.com/google/re2.git/+log/8ea5841693..79741d66ed * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/8bbd6f5553..3203dc1933 * third_party/siso/cipd: git_revision:dcd000e47f19677c7a5e02550abafa9eadbd4923..git_revision:33e71490533f445467879650036b6af7940455f3 * third_party/turbine/cipd: pLwUKCRZD6noaKQQ0JaosQDV85ccs7FpR9OJT4biM1UC..TkTaFqF4Bs-JmFtxFV_Nfh4u5jh_401ZQsLhC7vIEqQC * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/2a25945218..e8b2f1816f * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/7ade8a8f2a..3454fad2d4 * tools/luci-go: git_revision:6d38f0fa9f6c3c973753dbb762b0ed7b711db56c..git_revision:ce380e662ce9327acf0c5d84fa310a7bfaa108c3 * tools/luci-go: git_revision:6d38f0fa9f6c3c973753dbb762b0ed7b711db56c..git_revision:ce380e662ce9327acf0c5d84fa310a7bfaa108c3 * tools/luci-go: git_revision:6d38f0fa9f6c3c973753dbb762b0ed7b711db56c..git_revision:ce380e662ce9327acf0c5d84fa310a7bfaa108c3 * tools/memory: https://chromium.googlesource.com/chromium/src/tools/memory/+log/cc38b4b04f..7f4bdaac14 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/a840c75371..5515978448 * tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/c52b68f9dc..13687c3088 * tools/skia_goldctl/linux: S61nYM2LARYt8FGKUv9IwoQhQe-J4-IuZJ23SCq5R1oC..bjFgrjj2HgmCZmoQUwM2GMDYWF7SAEh7IwTGapy6NBwC * tools/skia_goldctl/mac_amd64: d88GmiB-c0r_703cXAupUOC3E17SEnJ2gWASKadmsdsC..tJ9Ig7GLCer81AflLHJX0Krknawqd51qehvwhaGpZO4C * tools/skia_goldctl/mac_arm64: 97SClzQJSwtymf_fcA4k_ZKZ2-BFRfFpUqIrgsRMM0EC..MQtt3k5TKZdMiE0lva_ulaLqLDoKjZm0ItZgvjidjmYC * tools/skia_goldctl/win: KuqayTqHpavNZjlc3YwoVsu3LhcUItZKbHs-NEl148sC..lYztLUb5WOMcDcTJpbHpiikw3PA2zagzacUpMBGlWwoC No update to Clang. Bug: None Tbr: syoussefi@google.com Change-Id: Ie0025b7fe7334c3ec32d8c040886bce03f2cd415 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775192 Commit-Queue: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com> Bot-Commit: angle-autoroll <angle-autoroll@skia-public.iam.gserviceaccount.com>
Austin Annestrand 239763d9 2025-04-04T17:52:10 CL/VK: Fix ArgumentWorkgroup setArg logic Issue was that clSetKernelArg for ArgumentWorkgroup type arguments would blindly push new values into kernel's spec-constant FastVector on every clSetKernelArg (even on same arg updates). This would lead to over-pushing due to same arg updates, which caused all kinds of issues, mainly erroneous misses in compute pipeline cache since the key is based on VkSpecializationInfo. Since kernel object already keeps a vector of kernel args, we don't need a separate spec-constant FastVector in CLKernelVk to track this. Remove it and derive the spec-constant data from the kernel args themselves. Bug: angleproject:366415134 Tests-Passing: Geekbench-6.2.2 - Workloads: [ 401 & 601 ] Change-Id: Iab7f27fdfdfede33881e1dd717ba3b771cffb985 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6773615 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e98dec82 2025-07-20T22:16:00 Translator: Remove Sampler2DRectShadow This is a desktop GLSL type. Bug: angleproject:370937467 Change-Id: Ife8b50e57f6e054ccd35df10c2157f8e4a218d37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774081 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 93afebf5 2025-07-17T11:08:02 Change the way we get vkEnumerateInstanceExtensionProperties After this change https://chromium-review.googlesource.com/c/angle/angle/+/6444660, more crashes were observed in this function GetSystemInfoVulkanWithICD on Chrome, Linux. One crash report showed the crash occurs in calling vkEnumerateInstanceExtensionProperties(). Before the change, we get the function pointer of vkEnumerateInstanceExtensionProperties() by angle::GetLibrarySymbol(). After the change, we get the function pointer by vkGetInstanceProcAddr(). Switching the way we get the function pointer back to angle::GetLibrarySymbol() to check if this helps with reducing the crash rate. Bug: angleproject:407116232 Bug: chromium:424207320 Change-Id: I962533fcf4401522f459ff27d2342e0f5c29d407 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6766724 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi a676c472 2025-07-21T12:29:29 Fix VK-GL-CTS build error ... temporarily by overriding the offending file until the upstream fix lands. Bug: angleproject:432337091 Change-Id: I878561e0856e43b657bcaf08a7563ac639794098 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6775382 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>