src


Log

Author Commit Date CI Message
Shahbaz Youssefi a63c2826 2025-03-08T16:12:40 Skip MultithreadingTest.ProgramLinkAndBind on Intel/windows Due to flakiness Bug: angleproject:401554049 Change-Id: I7210ff90c6de3d9b225d1e3a65df3cc4452fc9d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6334634 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 0331847e 2025-03-07T16:32:41 Vulkan: Update VkGraphicsPipelineCreateInfo::flags ... with protected access bits if VK_EXT_pipeline_protected_access is supported Bug: angleproject:42265839 Bug: angleproject:391002353 Change-Id: Ibb00a4a0dcb1084046403bf4bfaeeb8d125b9aea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6336515 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 412bd05c 2025-03-06T19:26:11 Implement workaround for MAX_COMBINED_SHADER_OUTPUT_RESOURCES. Implement a GL Feature to force MAX_COMBINED_SHADER_OUTPUT_RESOURCES to be the sum of MAX_COMBINED_SHADER_STORAGE_BLOCKS, MAX_COMBINED_IMAGE_UNIFORMS, and MAX_COLOR_ATTACHMENTS. Enable the feature for NV and PowerVR Rogue. Bug: angleproject:401232345 Change-Id: I03a113eed364617303f4ee59d90c853258865259 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6330671 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
angle-autoroll 83f3bdfd 2025-03-07T14:42:29 Manual roll vulkan-deps from 4f7de8f463f8 to d34de7171c18 (1 revision) Manual roll requested by ynovikov@google.com Due to https://github.com/KhronosGroup/Vulkan-Headers/pull/534 including <vulkan/vulkan.h> now causes <X11/Xlib.h> to be included, which breaks the build because of the macros it defines. To workaround, undefine these macros after vulkan.h include. https://chromium.googlesource.com/vulkan-deps.git/+log/4f7de8f463f8..d34de7171c18 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/952f776f6573aafbb62ea717d871cd1d6816c387..0f0cfd88d7e6ece3ca6456df692f0055bde94be7 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,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: chromium:345261080 Change-Id: Ib229dc03e7b33daf817e3248025fdcab64157e1e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6334528 Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Solti Ho <solti@google.com>
Yuly Novikov 4eb4165b 2025-03-07T10:24:05 Roll third_party/dawn/ 8119dbd27..7a8946456 (244 commits; 3 trivial rolls) Need https://dawn-review.googlesource.com/c/dawn/+/229494 to roll https://chromium-review.googlesource.com/c/angle/angle/+/6334483 vulkan_platform.h:152:9: error: 'VK_USE_PLATFORM_XLIB_KHR' macro redefined https://dawn.googlesource.com/dawn.git/+log/8119dbd27471..7a8946456d49 $ git log 8119dbd27..7a8946456 --date=short --no-merges --format='%ad %ae %s' 2025-03-07 cwallez [tint] Add support for binding_array to the IR validator 2025-03-07 hitawala [stream] Check for size invalidity before reserving in Stream::Read 2025-03-07 cwallez Reland "[dawn] Fix detection of __builtin_assume for DAWN_ASSERT" 2025-03-06 dawn-autoroll Roll ANGLE from 99ebd28ad246 to 0cdbc7814e59 (4 revisions) 2025-03-06 jiawei.shao Remove the redefinition of dawn::native::Vulkan::ClampFragDepthArgs 2025-03-06 jiawei.shao Vulkan: Implement PreferNotUsingMappableOrUniformBufferAsStorage() 2025-03-06 rharrison [tint][ir][fuzz] Re-enable SubgroupMatrix in IR binary 2025-03-06 shrekshao [Compat] Remove suppressions for ReadOnlyDepthStencilAttachmentTests 2025-03-06 thomasanderson [X11] Don't redefine VK_USE_PLATFORM_XLIB_KHR 2025-03-06 lokokung [dawn][emscripten] Fix Emscripten bindings for compilation messages. 2025-03-06 lokokung [dawn][native] Add validation for Infinities. 2025-03-06 lokokung [dawn][headers] Update wgpu::Surface APIs to match upstream. 2025-03-06 bsheedy [tools] Convert glob to use dependency injection 2025-03-06 cwallez [dawn][native] Track the set of BGLInternal separately from BGL. 2025-03-06 amaiorano tint: make PreventInfiniteLoops count down from uint32::highest() down to 0 2025-03-06 dsinclair Revert "Vulkan: Allow setting multiple `MemoryKind` bits" 2025-03-06 ynovikov Reland "Roll reclient, siso; update related DEPS to match Chromium" 2025-03-06 dawn-autoroll Roll ANGLE from 1a0c9db3748a to 99ebd28ad246 (8 revisions) 2025-03-06 cwallez Revert "[dawn] Fix detection of __builtin_assume for DAWN_ASSERT" 2025-03-05 zhaoming.jiang Dawn: Remove adapter from shader compilation request 2025-03-05 jiawei.shao Skip the test CreateBufferOOMWithValidationError when no validation 2025-03-05 lokokung [dawn][native] Make error scopes thread local. 2025-03-05 dawn-autoroll Roll ANGLE from 6b10ae3386b7 to 1a0c9db3748a (3 revisions) 2025-03-05 mohamedkhairy0101 tint: Improve error message for module-scope function calls 2025-03-05 mohammedashraf4599 add BOM error message 2025-03-05 cwallez [dawn] Fix detection of __builtin_assume for DAWN_ASSERT 2025-03-05 cwallez [tint] Add binding_array indexing to the resolver. 2025-03-05 kylechar Add SlabAllocator::DeleteEmptySlabs() 2025-03-05 dawn-autoroll Roll ANGLE from 73992d71f9d1 to 6b10ae3386b7 (7 revisions) 2025-03-05 shrekshao Remove enabling core-features-and-limits in backends 2025-03-04 lokokung [dawn][headers] Removes default UTF16 support. 2025-03-04 lokokung Reland "[dawn][headers] Remove obsolete ifdefs." 2025-03-04 jwata build: GN builds use Siso without Reclient in tools/setup-build script 2025-03-04 jrprice [vulkan] Fix subgroup matrix config gathering 2025-03-04 dawn-autoroll Roll ANGLE from bd8bc1055ecd to 73992d71f9d1 (1 revision) 2025-03-04 chrome-branch-day Activate dawn M135 2025-03-04 beaufort.francois Remove maxInterStageShaderComponents limit 2025-03-04 beaufort.francois Refactor Bindgroup constructors 2025-03-04 cwallez [tint] Add binding_array to the resolver 2025-03-04 cwallez Revert "[dawn][headers] Remove obsolete ifdefs." 2025-03-04 lokokung [dawn][headers] Remove obsolete ifdefs. 2025-03-03 zhaoming.jiang Dawn: Cache limits in AdapterBase 2025-03-03 dawn-autoroll Roll ANGLE from 19b35fcbff31 to bd8bc1055ecd (5 revisions) 2025-03-03 lokokung [dawn][headers] Adds extension support for UTF-16 in compilation message. 2025-03-03 jrprice [spirv] Only add explicit layout decorations on types that need them 2025-03-03 kainino [emscripten] Add emsdk to DEPS for Wasm builds 2025-03-03 lokokung [dawn][wire] Adds Dawn wire invalid extension struct and handling. 2025-03-03 jrprice [dawn] Validate workgroup size for subgroup matrix 2025-03-03 jrprice [inspector] Reflect the use of a subgroup matrix 2025-03-03 jrprice [tint] Reject non-compute shaders that use subgroup matrices (...) 2025-02-18 zhjiang Dawn: Tighten the scope of ScopedTintICEHandler 2025-02-18 dawn-autoroll Roll DirectX Shader Compiler from 6b68f3b5832c to fcbd2a184294 (2 revisions) 2025-02-18 jiawei.shao Replace `PipelineCompatibilityToken(0)` with `kExplicitPCT` 2025-02-18 yulong.fs fix memory address value passed to emwgpuDelete() 2025-02-18 dsinclair [spirv-reader][ir] Implement OpConvertFToU 2025-02-18 kainino dawn::DynamicLib: Leak all DLLs on Windows ASan builds 2025-02-18 dsinclair [spirv-reader][ir] Implement ConvertFToS 2025-02-18 petermcneeley Fix for assignment outside the range of representable type 2025-02-18 kainino Refactor TINT_ASAN_ENABLED into common DAWN_ASAN_ENABLED() 2025-02-18 gman Add a trace option to the Metal Backend 2025-02-18 dawn-autoroll Roll ANGLE from ba3dcfa4670d to 8dda514cb833 (3 revisions) 2025-02-18 dsinclair Mark function unused. 2025-02-18 dawn-autoroll Roll DirectX Shader Compiler from 20950d662f4d to 6b68f3b5832c (1 revision) 2025-02-17 dawn-autoroll Roll ANGLE from e0332c861004 to ba3dcfa4670d (1 revision) 2025-02-17 dawn-autoroll Roll vulkan-deps from 2a09ac22553e to 5d08bc0b0e23 (6 revisions) 2025-02-17 yulong.fs fix buffer destroy 2025-02-17 dawn-autoroll Roll ANGLE from 51d2561b5a6b to e0332c861004 (1 revision) 2025-02-17 lehoangquyen D3D: remove dead code used by the old external image API 2025-02-16 dawn-autoroll Roll Depot Tools from 77a800d7294d to 7a0dbd207449 (59 revisions) 2025-02-16 jiawei.shao Enable creating pipeline layout with null bind group layout by default 2025-02-16 dawn-autoroll Roll vulkan-deps from 2365826a66b2 to 2a09ac22553e (1 revision) 2025-02-15 dawn-autoroll Roll vulkan-deps from cc6490ed63e7 to 2365826a66b2 (5 revisions) 2025-02-15 dawn-autoroll Roll ANGLE from bef478f54e6e to 51d2561b5a6b (2 revisions) 2025-02-15 jie.a.chen Fix CooperativeMatrix extension index 2025-02-14 dawn-autoroll Roll ANGLE from 7afa2345f8d2 to bef478f54e6e (3 revisions) 2025-02-14 dsinclair [spirv-reader][ir] Register names instead of using new 2025-02-14 dsinclair [spirv-reader][ir] Support OpBranchConditional after OpSelectionMerge 2025-02-14 dawn-autoroll Roll vulkan-deps from 5cc3a63e8fdb to cc6490ed63e7 (5 revisions) 2025-02-14 gman Emit WGSL errors as part of GPUValidationError 2025-02-14 jimblackler [Kotlin] Update template now WGPUChainedStructOut has been removed. 2025-02-14 dawn-autoroll Roll ANGLE from cd7f92e1ed57 to 7afa2345f8d2 (6 revisions) 2025-02-13 petermcneeley Substitute overrides in IR (vk) 2025-02-13 shaoboyan [Spirv] Remove clamp_frag_depth attribute in Options 2025-02-13 dsinclair [spirv-reader][ir] Handle OpBranch instruction 2025-02-13 jrprice [ir] Add builtin struct support to the protobuf 2025-02-13 rharrison [tint][ir][val] Check Samplers & Textures address space 2025-02-13 jrprice [tint] Add flag for WGSL internal structures 2025-02-13 rharrison [tint] Replace unsafe casting with shift & mask in eval.cc 2025-02-13 rharrison [tint] Narrow warning suppression in table_data.h 2025-02-13 bajones Loosen Viewport validation requirements 2025-02-13 shrekshao [Compat] Add compat-min-es31 tags in expectations 2025-02-13 gman Remove old subgroups from dawn.node 2025-02-13 dawn-autoroll Roll ANGLE from 19c5293e1347 to cd7f92e1ed57 (9 revisions) 2025-02-13 dsinclair [spirv-reader][ir] Add names for functions and function parameters. 2025-02-13 dsinclair [spirv-reader][ir] Support names. 2025-02-13 dsinclair [spirv-reader][ir] Fixup mixed sign binary methods. 2025-02-13 dawn-autoroll Roll vulkan-deps from a88fd25a6a0d to 5cc3a63e8fdb (17 revisions) 2025-02-13 dsinclair Add suppressions for compat failures. 2025-02-13 jrprice [spirv] Emit Matrix*SignedComponents operands 2025-02-13 jrprice [tint] Subgroup matrix component types do not have to match Created with: roll-dep third_party/dawn Bug: chromium:345261080 Change-Id: I9ee360934bcbd838d682ffabe5029cc7baecec9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333617 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuxin Hu efb344e9 2025-03-06T15:09:21 Remove unused VVL skip message Below tests from the two bugs: angleproject:42264930 Texture2DBaseMaxTestES3.Fuzz545ImmutableTexRenderFeedback/ES3_Vulkan angleproject:42265542 FramebufferTest_ES3.ReattachToInvalidBaseLevel/ES3_Vulkan No longer fails due to VVL error. Tested on Linux with AMD Vulkan driver. Remove the original VVL error from the skip list. Bug: angleproject:42264930 Bug: angleproject:42265542 Change-Id: I249033e643211bae399712303162ab990c154fa6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6334552 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton 0cdbc781 2025-03-06T11:22:18 WGSL: Output samplers, including samplers from structs This output two WGSL variables for each GLSL sampler, including samplers in structs. This does not output the correct types for the WGSL variables, yet, nor does it generate texture access function calls. It also can't deal with arrays of samplers, which are not allowed in WGSL. Note that WGSL does not allow structs containing samplers to be arguments to a function, like Vulkan, nor does it allowed arrays of samplers at all, unlike Vulkan. This deals with the former problem the same way as Vulkan and Metal, by monomorphizing functions that take unsupported arguments. Bug: angleproject:389145696 Change-Id: I346688783dd2771c8fe6848b6783d948ed111783 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253672 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Shufen Ma 85fe2671 2025-02-25T16:54:20 Set length or infoLog when they are not NULL For glGetProgramPipelineInfoLog, spec says that if length is NULL, then no length is returned. Also do this to infoLog to avoid crash. Bug: angleproject:398904340 Change-Id: I1f87a8932f72a0d5c44c2344936ee18c674a802b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6300356 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Solti b5ad5035 2025-03-05T18:01:42 Manual roll vulkan-deps from 898a2304cea9 to 4b720a347d47 (1 revision) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/898a2304cea9..4b720a347d47 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/8496ed5028cee8c5e5f18cc791766f6b454609fb..5f8c82f68a9e1a63f3b9effceb928d7068873813 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: b/399867824 Bug: b/400986108 Tbr: solti@google.com Change-Id: I205de362c25692700f8bf092003b2882028b6740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6325931 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Solti Ho <solti@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 4f6a799a 2025-03-05T18:28:44 Fix iOS build Broken by https://chromium-review.googlesource.com/c/angle/angle/+/6302912 Bug: b/398048048 Change-Id: I41d7c8b45b42b9fc36fcd761a254f346c7fb2299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6330716 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shufen Ma 9bdc6763 2025-03-03T15:54:46 GetProgramPipelineiv may create a new state vector For glGetProgramPipelineiv, spec says that If pipeline is a name that has been generated (without subsequent deletion) by GenProgramPipelines, but refers to a program pipeline object that has not been previously bound, the GL first creates a new state vector in the same manner as when BindProgramPipeline creates a new program pipeline object. Also creates a new state vector in glValidateProgramPipeline if the pipeline has not been previously bound. Modify the ProgramPipeline's validate function so that when the program pipeline is generated, but has never been bound, the validation status would be false. Bug: angleproject:400254603 Change-Id: I906669a4e80aa12283156bae8a72a2dbf0b63b90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6316349 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 3d806ba6 2025-03-02T00:15:36 Translator: Split textureGather* ops ... based on whether the comp or refz arguments are present. Bug: angleproject:349994211 Change-Id: I19e638f6cb27cdb890c5e30c0662aad30888d2da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6313582 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov e70d1298 2025-02-18T14:32:35 Vulkan: Rework SurfaceVk::mUse tracking logic Original commit that introduced `mUse` had a bug and was then reverted: Vulkan: SurfaceVk should only wait for GPU work that uses it https://crrev.com/c/angle/angle/+/4220723 The reland fixed the original issue by adding "contextVk::mLastSubmitQueueSerial" into "Surface::mUse" before calling finish: Reland "Vulkan: SurfaceVk should only wait for GPU work that uses it" https://crrev.com/c/angle/angle/+/4406891 However, the real issue was that the `finish()` call (called because of the "waitIdleBeforeSwapchainRecreation" feature) was done after `releaseSwapchainImages()`, which resets all resource uses. Because of this bug, `finish()` ignored all uses of swapchain images, causing GPU crash on Mali. Crash was not because of semaphores that was not tracked by resource use. Adding "mLastSubmitQueueSerial" fixed the crash simply because it accounts for all uses ever made by the Context. This change fixes this issue by calling `mergeImageResourceUses()` at the beginning of `releaseSwapchainImages()`. Adds missing retain when transitioning into the `ImageLayout::Present`. Updates one-off submit tracking by updating use of the image, rather than `SurfaceVk::mUse` directly. Explicitly tracks present semaphore submission. All these changes allow to remove adding `ContextVk::mSubmittedResourceUse` before calling `finish()` and in the `unMakeCurrent()`. I confirmed that this fix works by forcing `oldSwapchain` destruction (as if it was never used) and "waitIdleBeforeSwapchainRecreation" enabled. GPU crash happens on SM-S921B if remove addition of `mSubmittedResourceUse` before `finish()` call, and fixed again by calling `mergeImageResourceUses()` in the `releaseSwapchainImages()`. So the `mergeImageResourceUses()` fixes the issue without potentially waiting for unrelated submissions from the `mSubmittedResourceUse`. After this change, surface use tracking should work according to the original intent. Bug: angleproject:397848903 Bug: b/267806287 Change-Id: Ic8197e33d0c19aad274b5f9da6f9c7377a166b60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277446 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Igor Nazarov ad6c3d74 2025-02-19T22:45:29 Vulkan: Fix RP resolve layouts w.r.t shared present mode This is partially a regression after the previous change: Vulkan: Fix present optimization w.r.t shared present mode Before the above change, swapchain image was still optimized for present even when using shared present mode. However, because SetBitField(mAttachmentOps[packedAttachmentIndex].finalResolveLayout line was using `getCurrentImageLayout()` (lucky coincidence) it was setting correct SharedPresent layout into `finalResolveLayout`. The `initialLayout` and reference `layout` was still `VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL`, but for some reason VVL was not producing any errors. This change adds setting `finalResolveLayout` for the resolve attachment, which in turn propagates `VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR` to all renderpass layouts as well as to the dynamic rendering info. Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.SharedPresentLayoutWithMSAA/* Bug: angleproject:42262606 Change-Id: I49a121f1d43a078890b0dc32e0574a79e3565270 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6281569 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Igor Nazarov 318d4038 2025-02-18T13:19:28 Vulkan: Fix present optimization w.r.t shared present mode Since the implementation of "EGL_KHR_mutable_render_buffer" mode (angleproject:42262606), the renderpass optimization for present (b/153885625) was not working correctly. It sill tries to transition into `ImageLayout::Present`, but instead of entirely skipping the transition, it inserts the barrier even when renderpass is still opened. When both "supportsSharedPresentableImageExtension" and "preferDynamicRendering" are enabled, code will hit ASSERT in `flushToPrimary()` when attempting to record `ImageLayout::Present` barrier into the primary command buffer. Above issue is fixed by skipping the transitioning into `ImageLayout::Present` when in shared present mode. Other changes and fixes: - removed renderpass flush when resolving with renderpass, since it is not necessary (angleproject:42265256). - above change reveled a bug in `finalizeImageLayout(&mColorImageMS)` call. This call reverts the layout in the previous finalize call from Present to ColorWrite. So it must have been inserted before finalizing the swapchain image. Issue fixed by removing both finalize calls. - updated condition to skip invalidate w.r.t shared present mode (b/229689340), that was missed during implementation of "EGL_ANDROID_front_buffer_auto_refresh" (angleproject:42265697). Test: angle_end2end_tests --gtest_filter=EGLSurfaceTest.PresentLayoutTransitionWithMSAA/* Bug: b/153885625 Bug: angleproject:42262606 Bug: angleproject:42265256 Bug: b/229689340 Bug: angleproject:42265697 Change-Id: Ifad8aea8548fa7bfac27941812c435b2af655309 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277445 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Shahbaz Youssefi 1a0c9db3 2025-02-27T10:43:00 Vulkan: Disable monolithic pipeline creation with GPL As it violates OpenGL ES rules. This change also removes Vulkan perf counter tests that attempt to verify that warmed up programs hit the cache... this fails in non-trivial ways especially with graphics pipeline library due to: - Warm up tasks being async, they may finish after the test reads the perf counters to set expectations - Some drivers report a cache miss when fast-linking libraries... but likely they don't even look at the cache (so both hit and miss would have been inaccurate) - There is no 100% guarantee that the warmup really leads to a draw-time cache hit. Things are made worse by https://chromium-review.googlesource.com/c/angle/angle/+/5421594 because we don't necessarily even wait for the warm up tasks if ANGLE's view of the pipeline description doesn't match what was used for warm up (even if internally to the driver some of the state does not affect the binary blobs). Bug: angleproject:42265839 Change-Id: Iaf96e4f64e2187abc666ff07fe1304d7474a0e86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309696 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Mark Lobodzinski d50cd35e 2025-02-20T08:29:07 Tests: Add expectations file for angle_trace_tests Skipping trace tests was handled in the TracePerfTest source and is now specified in angle_trace_tests_expectations.txt. Bug: b/398048048 Change-Id: Idbf5e95e74699374eb46330dc3880a0c2dfc9bc1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302912 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuxin Hu 6b10ae33 2025-03-03T14:41:21 Remove the unused SkippedSyncvalMessage Below tests from the two bugs angleproject:42264934: FramebufferFetchES31.BasicInout_NonCoherent/ES3_1_Vulkan angleproject:42264929: MultisampledRenderToTextureES3Test.RenderbufferDrawThenBlitDepthStencilOnly/ES3_Vulkan No longer fails due to VVL errors. Tested on Pixel 8. Remove them from the kSkippedSyncvalMessages list. Bug: angleproject:42264929 Bug: angleproject:42264934 Bug: angleproject:391284743 Change-Id: I4369eba5ef2a056b4085fced6419e7add7a5c279 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6317223 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Aurora Zhang 4fae3323 2025-03-03T14:21:07 ValidateEGLImageObject should not skip 3D EGLImage * Vulkan and GL backends already support 3D EGLImage, so remove related part in ValidatioinEGLImageObject. * Add a new end2end test for 3D EGLImage. Bug: angleproject:399774384 Change-Id: I6c39298a2f2d4c2dded2d6ddd8b98cdb8a22616a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6311581 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com>
Amirali Abdolrashidi ae567733 2025-02-26T19:09:14 Vulkan: Make use of VK_EXT_device_fault if exists This Vulkan extension, if available, can provide further details about the device in case of VK_ERROR_DEVICE_LOST. * Added the following ANGLE feature: supportsDeviceFault * It shows whether the extension VK_EXT_device_fault is supported and that the deviceFault bit is enabled on the physical device. * Added the Vulkan entry point for the following function: * vkGetDeviceFaultInfoEXT * Added the following to the renderer: * mFaultFeatures (device feature) * retrieveDeviceLostDetails(); to log information regarding the following if the appropriate support is available: * Address faults * Vendor-specific faults * Vendor binary dump (logged in hex format) * Added RetrieveDeviceLostInfoFromDevice() to vk_renderer.cpp to be used in Renderer::retrieveDeviceLostDetails(). * Updated ContextVk::handleError() to try to retrieve more info in case of DEVICE_LOST. Bug: b/399478440 Change-Id: If8d8e04001dabbe775c023f9922c44ef2205317e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305888 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti b6301fb1 2025-03-04T22:04:53 Manual roll vulkan-deps from 1f5d4f5673a3 to 898a2304cea9 (1 revision) Manual roll requested by solti@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/1f5d4f5673a3..898a2304cea9 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/cc4bfd761e025ff14ae329c1b1dbbf24e4f0922b..8496ed5028cee8c5e5f18cc791766f6b454609fb 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: b/400789178 Bug: b/399867824 Tbr: solti@google.com Change-Id: I375095773761362f98e6679c4297d3a58c4e5f11 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6320900 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Solti Ho <solti@google.com>
Amirali Abdolrashidi 2e65d3d4 2025-02-03T16:26:46 Vulkan: Fine-tune submission for multiple RPs This CL aims to fine-tune submission based on a certain command buffer size. This allows us to perform one submission for multiple smaller render passes. * Added mCommandsPendingSubmissionCount to ContextVk. * In ContextVk::syncState(), preferSubmitAtFBOBoundary is only used if the render pass pending command count exceeds the threshold: kMinCommandCountToSubmit * Currently set to 32. * For now, we still submit if the command is a clear (for example glClearBufferfv()). * For now, we also still submit if the command is an invalidate (for example, glInvalidateFramebuffer()). * In ContextVk::flushImpl(), if the pending command count exceeds the threshold (kMinCommandCountToSubmit) and the device is found to be idle, the work is submitted to keep the device busy. * Modified the following unit test from VulkanPerformanceCounterTest: VerifySubmitCounterForSwitchUserFBOToDirtyUserFBO * Since there is now a minimum command count for submission, the number of draw calls has been changed so that the submission is still issued at the new FBO boundary. * After this CL, life_is_strange shows the following improvements: (From the latest measurements) * +19% wall_time * +38% cpu_time Bug: angleproject:42265052 Change-Id: I18452cc1d39ca7e0ac376f6012974b498153cce8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182927 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov 729b55ba 2025-03-04T10:45:34 Tests: Fix --gtest_repeat reporting Pass on intermediate Fail When running with --gtest_repeat=N, the same test is executed multiple times and the harness was overwriting a previous Fail status with a subsequent Pass. Also made Android logging more clear. Bug: None Change-Id: Ib1d71ca89e9e9b2af8f6a0df2c9e280b86143265 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6320657 Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Hailin Zhang bd8bc105 2025-02-19T18:08:32 vulkan: disable pipeline cache data serialization for nvidia device. we still see the big cache data issue after driver version 520. rename hasEffectivePipelineCacheSerialization to skipPipelineCacheSerialization. Bug: b/358380399 Change-Id: Idd8354f95c3eb4c2e58678a4cf50c8b6af20f371 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284126 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Charlie Lao 9df57ec5 2025-02-28T14:35:01 Vulkan: Limit max vector size of mEmptySlotBits to 4 Add another safety guard: in case of some uncommon usage case that we end up with one buffer/texture is part of many descriptorSets, skip the tracking logic in SharedCacheKeyManager to avoid the excessive overhead associated with it. The only downside is that when BufferBlock gets destroyed, we will not able to immediately destroy all cached descriptorSets that it is part of. They will still gets evicted later on if needed (see evictStaleDescriptorSets for detail). Based on 300+ app traces we have, this appears very rare situation. Also made this behavior limited to DescriptorSetCacheManager, so that FramebufferCacheManager will not get affected. FramebufferCacheManager does not have any cache eviction, so it is important that we always destroy cache when texture is destroyed. Bug: b/293297177 Bug: b/384839847 Change-Id: I0f1eb21b014f83675b14fb59ab59b5c694a421e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6314161 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Hans Wennborg 1f4708b2 2025-02-28T16:38:36 Fix nullptr argument to std::string constructor Passing nullptr to std::string's constructor is not allowed and the latest libc++ version warns about it. Bug: chromium:399683086 Change-Id: Id43d2d58b8e9df99a811345e46cfe0d8b60c0cca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6311612 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Hans Wennborg <hans@chromium.org>
angle-autoroll aa697ed0 2025-02-28T11:05:55 Manual Roll vulkan-deps from c1c31f to 040c47 (9 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/c1c31f4d17a9..040c4735c51c Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/8b822ee8ac2c3e52926820f46ad858532a895951..0b7c079b32f676b57e92a8ded374976842985116 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/e1fcaef1e8f2e4f4ccbfb58ad8f20e807368de76..f82d29981c0b0136adfaa7863df485a705c80c84 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/f289d047f49fb60488301ec62bafab85573668cc..d3bfa4b9b639c47ffaee7c1c1b76044c92fa66cc https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/4e7b0c905b1a0401e24333800937cc8792efa037..7d5cab3ff7ea5a8b62dc94df72141606539344fc 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,yuxinhu@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/399191283 Bug: b/399969262 Tbr: yuxinhu@google.com Change-Id: I150f1cb9c56f014628c1a2aa06c1981b71d2d605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312337 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Solti Ho <solti@google.com>
Shahbaz Youssefi 8dd4a6e8 2025-02-28T16:50:51 Translator: Remove rect and 2DMS* images from atomic ops They are a relic of desktop GLSL support. Bug: angleproject:349994211 Change-Id: I111467fea111d22e2d12003d639bec268e418b44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6313639 Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 4bfb9da6 2025-02-28T12:49:28 Revert "Reland "Add GL_BGRA_EXT as a sized renderable format"" This reverts commit 8f2fbbd1a0d16471596afad57c88f950a1ee3032. Reason for revert: http://anglebug.com/399913714 Original change's description: > Reland "Add GL_BGRA_EXT as a sized renderable format" > > This reverts commit 22dfe435daa7c680c07bb8d4f1d98ab765e60ad0. > > Reason for revert: Fixed mapping back to BGRA_EXT for GL backend > > Original change's description: > > Revert "Add GL_BGRA_EXT as a sized renderable format" > > > > This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433. > > > > Reason for revert: suspect for blocking rolling ANGLE into Chroimum > > https://chromium-review.googlesource.com/c/chromium/src/+/6283973 > > https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview > > > > Original change's description: > > > Add GL_BGRA_EXT as a sized renderable format > > > > > > dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable > > > format. It was apparently always supposed to be, based on the > > > wording of the spec. > > > > > > This CL adds that support and updates expectations, along with a few > > > extra tests. > > > > > > Includes contributions from Robic.Sun@arm.com. > > > > > > Test: angle_end2end_tests, angle_deqp_*_tests > > > Bug: b/42267264 > > > Bug: angleproject:394384906 > > > Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7 > > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444 > > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > > Commit-Queue: Cody Northrop <cnorthrop@google.com> > > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > > > Bug: b/42267264 > > Bug: angleproject:394384906 > > Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628 > > Auto-Submit: Yuly Novikov <ynovikov@chromium.org> > > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: b/42267264 > Bug: angleproject:394384906 > Change-Id: I1bd9df904d93fd54286cbfce53fe89db89e842b9 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310699 > Commit-Queue: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Geoff Lang <geofflang@chromium.org> Bug: b/42267264 Bug: angleproject:394384906 Bug: angleproject:399913714 Change-Id: I9f79f39a6d9cba3b23c261005bc3e012d70cd1cf No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312977 Auto-Submit: Cody Northrop <cnorthrop@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov 3c08ed1e 2025-02-28T10:31:53 Cleanup: clarify ShouldReportDebugMessage logic Bug: angleproject:391284743 Change-Id: I0900bc834d2bfa177f98ddb75747ae4bc1578297 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6312881 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Liza Burakova cb81b2b2 2025-02-27T16:52:29 Set mMappedState offset and size to actual mapped offset + size Bug: angleproject:383356846 Change-Id: I68a4b4d3cb4c29071c9fb593b19fb55ded010950 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6308949 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 65343c4c 2025-02-27T11:23:04 Vulkan: Improve ConvertImageLayoutToVkImageLayout() This CL removes supportsMixedReadWriteDepthStencilLayouts feature flag. This feature flag was introduced when ANGLE only requires vulkan 1.0. But now we require vulkan 1.1 and this is part of vulkan 1.1 core spec. So it is no longer needed and wasting CPU cycles to check this every time ConvertImageLayoutToVkImageLayout() is called. With supportsMixedReadWriteDepthStencilLayouts removed, convert from ImageLayout to VkImageLayout no longer needs renderer parameter. The layout information in kImageMemoryBarrierData is never modified by renderer at run time. So the renerer arguments has been removed in a lot of places, avoids another pointer de-reference. Bug: b/384839847 Change-Id: I5a89a890c0c0a1f99d2fdc1b2a85baf7de5c28bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310839 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao e6d28755 2025-02-27T11:09:10 Vulkan: Use VkImageLayout in DescriptorInfoDesc DescriptorInfoDesc is part of the cache key for descriptorSet cache. Right now it uses ImageLayout for DescriptorInfoDesc::imageLayoutOrRange. There are cases where two ImageLayout have the exact same VkImageLayout, which end up with cache miss. Switch to use VkImageLayout will make it cache hit. Given that this field is uint32_t, we are not really getting any benefit by using ImageLayout. Bug: b/384839847 Change-Id: I14060c3faab701b76a554a1e3a07aff44e25d7cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310838 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 055123f8 2025-02-27T10:45:56 Vulkan: Don't maintain SharedCacheKeyManager for BufferBlock Dynamic descriptor type uses the underlying BufferBlock in the descriptorSet. There could be many BufferHelper objects sub-allocated from the same BufferBlock. And each BufferHelper could combine with other buffers to form a descriptorSet. This means the combination for BufferBlock could potentially be very large, in thousands with some app traces like seeing in honkai_star_rail. The overhead of maintaining mDescriptorSetCacheManager for BufferBlock could be too big. In this CL I have chosen to not maintain mDescriptorSetCacheManager in the BufferBlock. The only downside is that when BufferBlock gets destroyed, we will not able to immediately destroy all cached descriptorSets that it is part of. They will still gets evicted later on if needed (see evictStaleDescriptorSets for detail). After this CL, running with all app traces we have, the max vector size of SharedCacheKeyManager::mEmptySlotBits is no more than 2, versus ~70s before the CL. Bug: b/384839847 Bug: b/293297177 Bug: b/237686097 Change-Id: I7c7c91cd0aeacba4145575ac4270b713bf38b742 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310837 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 00f5944d 2025-02-26T15:42:14 Vulkan: Avoid duplicate sharedCacheKey in mDescriptorSetCacheManager There are usage cases that same buffer/texture bound to multiple binding points. When we have a cache miss, we end up walking through all binding points and record the sharedCacheKey there (so that when the buffer/texture is destroyed, the cache will be destroyed). This causes same cacheKey added to the same buffer/texture multiple times. This CL keeps track of last added sharedCacheKey and do a quick check against it and it matches, we just early return. With this CL, SharedCacheKeyManager::mEmptySlotBits max vector size reduced from ~200 to ~70 for batman_telltale. Bug: b/384839847 Change-Id: I0d405c18b3f1c807da4c7a402392667630bd7f1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306687 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Xinyu Fang e914b53d 2025-02-18T17:13:08 Add validation of null pointers for certain APIs Bug: angleproject:397315932 Change-Id: I3b253a7ca0bbdf4fd55cf67943971426d825cd24 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6275697 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 8f2fbbd1 2025-02-27T13:33:06 Reland "Add GL_BGRA_EXT as a sized renderable format" This reverts commit 22dfe435daa7c680c07bb8d4f1d98ab765e60ad0. Reason for revert: Fixed mapping back to BGRA_EXT for GL backend Original change's description: > Revert "Add GL_BGRA_EXT as a sized renderable format" > > This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433. > > Reason for revert: suspect for blocking rolling ANGLE into Chroimum > https://chromium-review.googlesource.com/c/chromium/src/+/6283973 > https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview > > Original change's description: > > Add GL_BGRA_EXT as a sized renderable format > > > > dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable > > format. It was apparently always supposed to be, based on the > > wording of the spec. > > > > This CL adds that support and updates expectations, along with a few > > extra tests. > > > > Includes contributions from Robic.Sun@arm.com. > > > > Test: angle_end2end_tests, angle_deqp_*_tests > > Bug: b/42267264 > > Bug: angleproject:394384906 > > Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7 > > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444 > > Reviewed-by: Geoff Lang <geofflang@chromium.org> > > Commit-Queue: Cody Northrop <cnorthrop@google.com> > > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > > Bug: b/42267264 > Bug: angleproject:394384906 > Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628 > Auto-Submit: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/42267264 Bug: angleproject:394384906 Change-Id: I1bd9df904d93fd54286cbfce53fe89db89e842b9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6310699 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi d39cabbd 2025-02-27T15:15:46 Translator: textureGather* always takes refZ with shadow sampler Bug: angleproject:349994211 Change-Id: I8337b80bf1d9ecae6943c6f1432b710040081273 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309579 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov fb03f3c5 2025-02-27T15:05:16 Vulkan: Enable the use of syncval extra properties Adjusted a couple of cases that weren't working on bots due to a difference in write barriers (which are probably safe to ignore altogether in this case) Bug: angleproject:391284743 Change-Id: I1da2d05aff8b2c9ac7497903d85754054f861495 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309578 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 73fc6666 2025-02-27T11:51:29 Revert "Add VVL Suppression to allow ANGLE rolls into Chromium" This reverts commit 1ab3889c1263f31954c21396d18a19d0b4ac0f1c. Reason for revert: latest VVL code rolls in chromium https://chromium-review.googlesource.com/c/chromium/src/+/6307665. We can remove the suppression that is dependent on the old VVL code. Original change's description: > Add VVL Suppression to allow ANGLE rolls into Chromium > > Bug: b/399191283 > Change-Id: I05092fe61141ef9265e3f067f9bdbb9f3ef86daf > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306838 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: b/399191283 Change-Id: Id373b85b5afbff73d1ce9920c73644e9245cd4e5 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6309746 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mohan Maiya ca7e8882 2025-02-26T14:39:47 Account for relaxed precision conversion data loss 1. Add highp precision qualifier for "expect" uniforms 2. Change EXPECT_EQ -> EXPECT_*NEAR when using mediump Bug: angleproject:391002353 Change-Id: I5a75ec81e622718f989f357fc263ae287c2c7dbc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306684 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 1ab3889c 2025-02-26T20:13:56 Add VVL Suppression to allow ANGLE rolls into Chromium Bug: b/399191283 Change-Id: I05092fe61141ef9265e3f067f9bdbb9f3ef86daf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6306838 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
angle-autoroll 96a1bda4 2025-02-26T18:13:01 Manual roll vulkan-deps from 1138e3898873 to d0470d9cf4eb (15 revisions) Manual roll requested by yuxinhu@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/1138e3898873..d0470d9cf4eb Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/18f581a8a2c112074815e613776b928362ec324b..8b822ee8ac2c3e52926820f46ad858532a895951 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/1af97f05fe184de16139b2dc31842334007f95e7..27732e6ed99afa91b3493bc5e5412f4914482828 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/d5b6f2de791deb73357a797d5db7aa24ce45194c..f289d047f49fb60488301ec62bafab85573668cc https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/176fef0bccaba8bdf51de54ab4eed8d5d9aaac77..fb8f5a5d69f4590ff1f5ecacb5e3957b6d11daee https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/6be00ca9f51c714780cc1d6f537f8bc5650b6204..2d8f273ebd4b843c402d9ee881616895b854e42f https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e0158a966a288dbbaca9609a76f34f91facce4a8..48c93ad7cc9e0da74ed21c8bf7d56324d995644d 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,yuxinhu@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/399191283 Tbr: yuxinhu@google.com Change-Id: Ib298161513c2d2ffded0a1b785f9c2322f553707 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6305262 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxiang Qian ca8f072e 2025-02-13T16:46:30 Implement EGL_LARGEST_PBUFFER When EGL_LARGEST_BUFFER is set to true during creating a EGL pbuffer surface, it requires the largest available pixel buffer surface when the allocation would otherwise fail. This means if width/height is bigger than config's maxPbufferWidth/maxPbufferHeight, it should be clamp to maxPbufferWidth/maxPbufferHeight. An end2end test is also added. Bug: angleproject:397315935 Change-Id: Ic160d9693478c87b59ece0a421d3acd5d6699ddc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277912 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi 8dbd2fe6 2025-02-19T14:07:21 Reland "Vulkan: Take stride into account for max buf size" This is a reland of commit 91fe334eadd279746e06367142de6e8d9f8d00ed In the original change, mMaxBufferMemorySizeLimit was cast to a 32-bit value for cap initialization. However, if the reported value was larger than 4GB, it could result in incorrect cap values, leading to shader compilation errors (e.g., exceeding maximum uniform location size). * Updated LimitToIntAnd() to always take a 64-bit value for the cap. * The other arg (physicalDeviceValue) would be cast to the same type for std::min(). * Removed the 32-bit casting from mMaxBufferMemorySizeLimit during cap initialization. Original change's description: > Vulkan: Take stride into account for max buf size > > * Added LimitToIntAnd() to limit the input value to a certain > threshold in addition to the int limit. > > * Cached the max buffer size limit in the renderer. > * mMaxBufferMemorySizeLimit > > * In vk_caps_utils: Capped the following buffer size-related limits > to the maximum memory allocation size: > > * maxStorageBufferRange > * maxTexelBufferElements > * maxUniformBufferRange > > Bug: angleproject:391002353 > Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size > KHR-GLES32.core.texture_buffer.texture_buffer_max_size > Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625 > Reviewed-by: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: angleproject:391002353 Change-Id: Ieb06a1dcf3096b4d6f3643f96d0e05b2be6b2093 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6303408 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll d9a9b75c 2025-02-25T22:21:03 Manual roll vulkan-deps from 02cb40cbb578 to 1138e3898873 (13 revisions) Manual roll requested by yuxinhu@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/02cb40cbb578..1138e3898873 Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/104bd85d990155f04f050972374a3502b4631830..18f581a8a2c112074815e613776b928362ec324b https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/c98e976b567735776a4dc692bc744231dae4b13a..1af97f05fe184de16139b2dc31842334007f95e7 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/aafd524577cc90fcdd13a6f0bcbfb929a30ee90f..d5b6f2de791deb73357a797d5db7aa24ce45194c https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/fc5788170fbe2e29162862bc817357c7fb9a04e4..e0158a966a288dbbaca9609a76f34f91facce4a8 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,yuxinhu@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/399191283 Tbr: yuxinhu@google.com Change-Id: Ic2bdc48ba5d69b80186306eda6753a0ab54ef98f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302919 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Jonathan Lee 4d66ff7a 2025-02-21T19:21:08 [gtest] Consume `AssertionResult`s in `Parse_test.cpp` Wrap each `testing::AssertionResult` in an `EXPECT_TRUE(...)` [0] to actually check if the assertion passed. The dropped assertion was revealed [1] by Googletest recently marking `AssertionResult` as `[[nodiscard]]` [2]. [0]:https://google.github.io/googletest/advanced.html#predicate-assertions-for-better-error-messages [1]:https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-rel/2296143/overview [2]:https://chromium.googlesource.com/external/github.com/google/googletest.git/+/3fbe4db9a39291ae8d7a9c5f1d75896bb4c5a18f%5E%21/ Bug: chromium:398298306 Change-Id: I438f817dc6636068664d2bd5bc41b041b867b4c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6293847 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jonathan Lee <jonathanjlee@google.com>
Yuxin Hu 0151051b 2025-02-25T11:20:15 Revert "Vulkan: Take stride into account for max buf size" This reverts commit 91fe334eadd279746e06367142de6e8d9f8d00ed. Reason for revert: breaks Android presubmit tests: https://android-review.git.corp.google.com/c/platform/external/angle/+/3506755 Original change's description: > Vulkan: Take stride into account for max buf size > > * Added LimitToIntAnd() to limit the input value to a certain > threshold in addition to the int limit. > > * Cached the max buffer size limit in the renderer. > * mMaxBufferMemorySizeLimit > > * In vk_caps_utils: Capped the following buffer size-related limits > to the maximum memory allocation size: > > * maxStorageBufferRange > * maxTexelBufferElements > * maxUniformBufferRange > > Bug: angleproject:391002353 > Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size > KHR-GLES32.core.texture_buffer.texture_buffer_max_size > Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625 > Reviewed-by: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: angleproject:391002353 Change-Id: I20f68f98dcf43fd8cd42f7dce2465332fdb3ab51 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6302249 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Charlie Lao 9202e05a 2025-02-21T18:42:42 Vulkan: Invalidate the SharedCacheKey when cache gets evicted When descriptorSet cache gets evicted, right now we have a bug that the sharedCacheKey does not gets invalidated. This caused SharedCacheKeyManager always think the sharedCacheKey is valid and the mEmptySlotBits never gets cleared, which leads to mEmptySlotBits growth over time, and increases CPU overhead when walking mEmptySlotBits vector. This CL adds an assertion to ensure that all valid sharedCacheKeys has a corresponding entry in the cache, which means without this CL, some traces and dEQP tests are hitting the assertion. This CL also fixes the bug. Bug: b/384839847 Change-Id: If013443144aceb5d62f67f619074ef831e73653b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6292988 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 9592b970 2025-02-21T12:33:57 Move LogFeatureStatus() into overrideFeatures() Both overrideFeatures() and LogFeatureStatus() a looping through the overridden features the same way, with one applying the feature override and the other logging the feature being overridden. Rather than looping twice, build up the feature override log string concurrently in overrideFeatures() and return the string, which can be logged (or not). Bug: b/372694741 Change-Id: I70b06792046fe80057f45cefaf18bdd3d05f1f21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6288657 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Tim Van Patten 99032263 2024-12-30T16:05:22 Log EGL attribute feature overrides Log the ANGLE feature overrides performed by the EGL attributes when creating a display: * EGL_FEATURE_OVERRIDES_ENABLED_ANGLE * EGL_FEATURE_OVERRIDES_DISABLED_ANGLE These log messages are useful on platforms that override features at runtime using the EGL attributes. For example, when using a configuration file to enable/disable ANGLE features. This results in log messages like: Feature: disableSeparateShaderObjects enabled Bug: b/372694741 Change-Id: I35c374c8ec29e038008224049116cfc3265e70c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133778 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi e2dace71 2025-02-24T19:21:19 Revert "Suppress dEQP ASAN failures" This reverts commit cab0acdf6208e483ac26448de926e3ca0df9dbd1. Reason for revert: The following roll has landed: https://crrev.com/c/6298534 Original change's description: > Suppress dEQP ASAN failures > > These block upgrading Clang to a new version that detects more problems. > > Bug: b/395920316 > Change-Id: Ie07d1fce240741f2572546c86e838f8b16c4950c > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6281031 > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bug: b/395920316 Change-Id: Ibbb5519a91b9ec95fb4dc74328d6fa28b6e79738 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6299712 Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 25a22dec 2025-02-24T14:32:42 Manual roll VK-GL-CTS from 69ec1790cb7c to ba86fb950043 (18 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/69ec1790cb7c..ba86fb950043 2025-02-21 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-cts-4.6.6 into vk-gl-cts/main 2025-02-21 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.12 into vk-gl-cts/main 2025-02-21 rgarcia@igalia.com Test "remaining array layers" and cube images with HIC 2025-02-21 javed@igalia.com Add coverage for tess shader IO 2025-02-21 marcin.zajac@cognizant.com Complex acceleration structure updates 2025-02-21 jbolz@nvidia.com Add tests for VK_NV_cooperative_vector 2025-02-21 syoussefi@google.com Remove last references to DE_NULL 2025-02-21 abdolrashidi@google.com Fix non-zero offset added to nullptr 2025-02-21 zzoon@igalia.com Vulkan Video Decode: Increase MAX_BOUND_MEMORY 2025-02-21 lionel.g.landwerlin@intel.com Fix incorrect structure type check 2025-02-21 gleese@broadcom.com Fix test data generation for copy tests 2025-02-21 javed@igalia.com Add tests for differing mutable format 2025-02-21 gleese@broadcom.com Stop querying device address from unbound buffers 2025-02-21 scerveau@igalia.com video: rename clip description names 2025-02-21 kamil.goras@mobica.com Add test that redeclaring gl_FragDepth is not permitted in ES 2025-02-21 kamil.goras@mobica.com Fix KHR-GLES31.core.nearest_edge.* tests that fail with EXT_read_format_bgra formats. If BGRA format and type 1_5_5_5 are preffered by device use BGRA_EXT and UNSIGNED_SHORT_1_5_5_5_REV_EXT in ReadPixels and swizzle colors. 2025-02-21 mateusz.bahyrycz@mobica.com Add support for sparse mode for ray tracing utils 2025-02-21 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,yuxinhu@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/398956813 Tbr: yuxinhu@google.com Change-Id: I8d2de8b6f8671b5cf66d6b4210877ca8f187528b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6298534 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi e3178f0e 2025-02-24T14:38:36 Add AHB clear tests using glClearTexImage * Add tests to clear AHB images before readback, but using glClearTexImage() instead of using a framebuffer and glClear() * AHBClearAppliedViaClearTexImageBeforeReadBack * AHBTwiceClearViaClearTexImageAppliedBeforeReadBack Bug: b/223456677 Change-Id: Ic5ad2b5202aa24f38dc1783205900a0dab5125f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6299797 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Tim Van Patten 56b6b628 2025-02-07T16:08:39 renderer_utils: Clean up Clang-tidy warnings Clean up various Clang-tidy warnings in renderer_utils.[cpp|h]. Most of these are around for loops: * Using const references, rather than making copies. * Using range-based for loops. There are other changes related to cleaning up ineffective const qualifiers, unused values, trivial ctors/dtors, etc. Bug: b/372694741 Change-Id: I1c88124a67a3e60537e1d5747603077f1c9cc8d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244613 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 91fe334e 2025-02-19T14:07:21 Vulkan: Take stride into account for max buf size * Added LimitToIntAnd() to limit the input value to a certain threshold in addition to the int limit. * Cached the max buffer size limit in the renderer. * mMaxBufferMemorySizeLimit * In vk_caps_utils: Capped the following buffer size-related limits to the maximum memory allocation size: * maxStorageBufferRange * maxTexelBufferElements * maxUniformBufferRange Bug: angleproject:391002353 Test: KHR-GLES31.core.texture_buffer.texture_buffer_max_size KHR-GLES32.core.texture_buffer.texture_buffer_max_size Change-Id: Iee9b13f5440a4f5e6f952e7d2beaf9485f864c2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6283625 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 5775a974 2025-02-21T11:00:05 Vulkan: Fix transition to FORIEGN and back in same submission Image layout transitions are typically automatically handled. In some cases however, the image layout is specifically "finalized". For foreign images, the relevant cases are all about the point in time when the image is being released. When a foreign image's layout is finalized, a barrier is generated to transition it to the FOREIGN queue on submission. Previously, an incorrect assumption was made that after such a point, the VkImage will no longer be used by any commands. This was incorrect because of EGL Images, which let the same VkImage (and ImageHelper) be shared between multiple textures. The following scenario broke that assumption: - Texture is bound to the (foreign) EGL image - Texture is used and deleted * VkImage's transition back to foreign is cached, but not executed - Another texture is bound to the same EGL image - Texture is used * At this point, the texture is re-acquired from foreign, but it wasn't released in the first place! In this change, a vkQueueSubmit is issued after the foreign image's layout is finalized to make sure the transition back to FOREIGN is applied. Bug: angleproject:42263241 Bug: angleproject:42262454 Bug: angleproject:390443243 Bug: chromium:382527242 Change-Id: Ibe3e6d60f282f9fb0eed1deba3325456017c3617 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6292804 Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Alex Dean b47fffc8 2025-02-20T11:11:25 CL/VK: Add rewrite-packed-structs and int8 CLSPV option To support structs with three- and four-component vectors, --rewrite-packed-structs is needed as a CLSPV option. The --int8 option is added to allow shaders to process char buffers. Tests-Passing: OCLCTS.test_vectors vec_align_packed_struct_arr Bug: angleproject:397733768 Change-Id: I98ecc9e82bc599453c27f60737bde752c69decd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6284137 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xin Yuan 5e056364 2025-02-20T11:38:23 Ignore other attributes when use EGL_CONFIG_ID to choose config Per spec, when use EGL_CONFIG_ID in eglChooseConfig, other attributes should be ignored, so additional attributes should not be inserted in this case. Bug: angleproject:396190956 Change-Id: I1170dc5312a9590c972d81f91e3d2140f2145805 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6262970 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao f09a19ce 2025-02-21T17:27:30 OpenCL: Pass bufferPtrOffsets by reference not value enqueueNativeKernel() is passing `const std::vector<size_t> bufferPtrOffsets` by value instead of reference. Changed to pass by reference in this CL. Bug: b/42266859 Change-Id: I337eb62451631297c8f389c9f850ff9ddd2421ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6293727 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi db8c86bd 2025-02-22T20:33:31 Vulkan: Disable imageless framebuffers on buggy ARM drivers Bug: chromium:371512561 Change-Id: Ibf8c4ed84a29139afd6d234690d240785656cc06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6293786 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Solti Ho <solti@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Robic Sun 34faa3db 2025-02-08T15:17:10 Fix issue that stride setting is incorrect when rotation is true When rotateXY is true, stride should increase or decrease on the Y axis. Bug: angleproject:395131251 Change-Id: I0f5363c9952ccdf0a036499a9f918853eff7cd10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6242496 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Robic Sun <Robic.Sun@arm.com>
Charlie Lao 23df4f26 2025-02-21T10:30:04 Vulkan: Avoid storage grow related copy for mDefaultUniformBlocks mDefaultUniformBlocks.uniformLayout is a std::vector, and my profile on all app traces indicates quite some storage reallocation on this data. This CL reserves enough storage upfront to avoids storage reallocation in LinkTaskVk::initDefaultUniformLayoutMapping(). Bug: b/293297177 Change-Id: If249a373aa3bd1795757d974cbcfce38a153a813 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6288314 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev 03de46ef 2025-02-20T00:00:00 Metal: Remove divMatrixScalar polyfills MSL 2.3+ natively supports matrix by scalar division. Bug: angleproject:372169468 Change-Id: I2055ab8cfff01d8a52ddc0de4d5c3bc115271aed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6289047 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Amirali Abdolrashidi c21e31a1 2025-02-20T17:32:17 Add handling null input to eglGetProcAddress * Modified eglGetProcAddress() so it can handle a null input by returning nullptr. * Added a test for this case: * EGLReadinessCheckTest.GetProcAddressNullInput * Fixed some typos. Bug: angleproject:397720948 Change-Id: If55223b12831649252e2e06e47abaf8d3546c86f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6289249 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Igor Nazarov 323c49a3 2025-02-20T15:44:08 Vulkan: Fix swap optimization after staged clear for MSAA If the MSAA image only had a clear update and the update wasn't going to be applied to the swapchain image, the clear update was accidentally dropped because `flushStagedUpdates` wouldn't see the clear update which is already extracted in `deferredClearValues`. Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.StagedClearResolveOnSwap/* Bug: angleproject:382006939 Change-Id: I53ae26eeb8a7f38b7758f86bf97982a90b1990dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285627 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov e5b87adc 2025-02-20T15:32:16 Vulkan: Fix WindowSurfaceVk::hasStagedUpdates w.r.t MSAA The old `hasStagedUpdates()` checked swapchain image for staged updates. However in case of MSAA, staged updates are added to the `mColorImageMS`. Universal solution is to check staged updates on the renderpass image from `mColorRenderTarget`, which will be `mColorImageMS` in case of MSAA surface, and the currently acquired swapchain image otherwise. No automated test is possible, since `glReadPixels()` still works as expected. Other reason is that `ANGLE_VK_TRACE_EVENT_AND_MARKER` before acquire inserts commands into the outside renderpass command buffer causing flush to happen. In other words, the debug marker interfering with the normal ANGLE behavior, so even visual test is not possible. Bug: angleproject:237449314 Change-Id: I237514a640a23a33d894109856711c1eb2dcbb29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285626 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
angle-autoroll eb22e1f8 2025-02-21T11:44:31 Roll vulkan-deps from 126c9b378eb7 to f489bd52916f (18 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/126c9b378eb7..f489bd52916f Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/e66176c3f685b14dfa83882329e5d02f4e027c9b..104bd85d990155f04f050972374a3502b4631830 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/09913f088a1197aba4aefd300a876b2ebbaa3391..54a521dd130ae1b2f38fef79b09515702d135bdd https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/9fa14b91414994e2bf4d9509b8efc8071f154991..a80d3b5c505e6541d98003b880ae583bc706bbc9 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/234c4b7370a8ea3239a214c9e871e4b17c89f4ab..952f776f6573aafbb62ea717d871cd1d6816c387 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/087c22a441e5fb8563516b6b515483898c843242..a10e2725f99c333bbc468373159442fe41158039 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: cnorthrop@google.com Change-Id: Ifb414ab9bbbd524973d4944854649deb0f1714c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6288472 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Aurora Zhang 3972cfa1 2025-02-18T19:52:06 YUV should support on all the shader stages * The spec requires all shader stages should support YUV. Therefore, move YUV related functions out of the switch. * Add a new end2end test that sampling YUV in the vertex shader. Bug: angleproject:391919465 Change-Id: I7811d419d5f1461c2499c522a902c3b2149289a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6263325 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Aurora Zhang ba174a76 2025-02-19T16:35:15 Vulkan: Bugfix for nullColorAttachmentWithExternalFormatResolve When nullColorAttachmentWithExternalFormatResolve is VK_TRUE, * The imageView in VkRenderingAttachmentInfo for dynamic rendering should be VK_NULL_HANDLE. * Push YUV resolveImageView as if it is the color attachment to ensure the coherency between ops, clearValues and attachmentViews for both dynamic rendering and render pass objects. Then pack the YUV resolve information first as well. * Add end2end tests that render and clear YUV with a depth attachment. Bug: angleproject:395212980 Change-Id: I8b6173b41723ed7dc12359e181791fb1ac22fc41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6262510 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Igor Nazarov 03bdf1ca 2025-02-18T16:37:49 Vulkan: Use correct actual FormatID for MSAA swapchain image Implementation of "overrideSurfaceFormatRGB8ToRGBA8" feature missed updating actual FormatID for the MSAA swapchain image. This bug makes possible to initialize RGBA8 swapchain image and RGB8 MSAA image. However, on practice MSAA is still RGBA8 because RGB8 renderable is generally emulated on Android. VUID-vkCmdResolveImage-srcImage-01386: srcImage and dstImage must have been created with the same image format. This fix is cosmetic and is not expected to fix any real bugs (because RGB8 is generally emulated with RGBA8). Bug: angleproject:42265147 Change-Id: Ief4b74ac31e93a655f5088b7927e970585255f25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6275968 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Alexey Knyazev f9566385 2025-02-06T00:00:00 Fix GetBooleani_v validation That entrypoint must require OpenGL ES 3.1. Fixed: angleproject:394610814 Change-Id: I9ee80d1497afadfdc0d714e49bb97b741ad57b63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6243878 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Chris Dalton be98f841 2024-11-30T02:11:05 Implicitly end PLS for framebuffer reads and writes In preparation for removing the PLS allow list, convert more problematic methods to the new paradigm of implicitly ending PLS instead of generating errors. Also simplify the disable logic for framebuffer modifications, and just blindly disable PLS for framebuffer updates, regardless of whether it's GL_READ_FRAMEBUFFER or GL_DRAW_FRAMEBUFFER. Bug: angleproject:40096838 Change-Id: Ie4390a219f5f05ef0a3d00f405d4914592726283 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6077335 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 8f8b41e3 2025-02-14T17:54:51 Vulkan: Optimize for multiple TexSubImage calls in the same level Based on app traces, some apps make glTexSubImage call for the same level multiple times in a row. One extreme example is lumino_city, which it creates a 2D texture with nullptr data, and then calls glTexSubImage2D many times back to back for each row of the texture to update the data. Because we uses std::vector to store the per level update struct (SubresourceUpdate), it means we copy these data structures every time it grows 2x, until it hit the max size 1081. The other common case we get into is app update some area of the texture (like google map and gacha_life) which also end up with a few texSubImage calls back to back. The other more common case is we staged a clear first and then glTexSubImage which end up with vector size of 2. This CL changes to use std::deque instead of std::vector to store the staged update for a given level, which allows it to grow without extra penalty. Bug: b/293297177 Change-Id: Iabbc143074ad9d6fcf47abbddee09ecf7f78d1a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6271964 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao c96844d9 2025-02-14T10:26:25 Vulkan: More vector storage fix BufferPool::mBufferBlocks reserves 32 entry storage based on data gathered from trace. BufferPool::mEmptyBufferBlocks switched to queue since we almost never walk the entire list unless it gets destroyed. Renderer::CollectGarbage is changed to take only one object. The only time it get called with more than one object is from ImageHelper::releaseImage(), which in this CL we now creates and pass GarbageObjects to Renderer::collectGarbage directly. This also allows me to delete recursive CollectGarbage() and DestroyGarbage() functions (which is doing emplace_back quite often, even though only two entries). PipelineHelper::mTransitions is updated to reserve storage for 8 entries based on trace data. Bug: b/293297177 Change-Id: I3e4552939a780dd26f9b7b8a67deee0d52d4f9bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6270518 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
angle-autoroll bd643a1a 2025-02-19T12:16:50 Roll vulkan-deps from 2a09ac22553e to 126c9b378eb7 (19 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/2a09ac22553e..126c9b378eb7 Manual suppression for new VVL error: SYNC-HAZARD-READ-AFTER-WRITE for vkCmdDrawIndexed Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/ef5207f9f8cce5097568efb15d3297d8b5d13014..e66176c3f685b14dfa83882329e5d02f4e027c9b https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/0ed717a810d28e7533d935a7c0017f6d267a8671..c98e976b567735776a4dc692bc744231dae4b13a https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/fde0f9718bd60b49cf8efc80d3fb7a093c309ac0..24e67179e2b0c7f9a2945927362c5ab0728e1fa8 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/a9f88a232a4cd6634e47f0f93c8fac5789387a7a..dbe142e8f3a7f11478c2e4741c0d4c4b748fce4b https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/e3b763ef7c17f7fd6d21a7ffe4069b0e1b45469b..087c22a441e5fb8563516b6b515483898c843242 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC angle-team@google.com,cnorthrop@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: b/397775556 Tbr: cnorthrop@google.com Change-Id: I8a22df0dd3b8238abc1c9c6998604d9f20a3a6c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6280153 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Neil Zhang f974ffa8 2025-01-27T11:06:30 Vulkan: Add stubs for expose VK_KHR_swapchain_mutable_format Bug: angleproject:386688871 Change-Id: I77a45e342ee46f65c4f2947071c713f914a937a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6196939 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 22dfe435 2025-02-20T06:46:07 Revert "Add GL_BGRA_EXT as a sized renderable format" This reverts commit 80093a7d8f850c3ab551ddb4972c2f1f27511433. Reason for revert: suspect for blocking rolling ANGLE into Chroimum https://chromium-review.googlesource.com/c/chromium/src/+/6283973 https://ci.chromium.org/ui/p/chromium/builders/try/chromeos-amd64-generic-rel-gtest/372754/overview Original change's description: > Add GL_BGRA_EXT as a sized renderable format > > dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable > format. It was apparently always supposed to be, based on the > wording of the spec. > > This CL adds that support and updates expectations, along with a few > extra tests. > > Includes contributions from Robic.Sun@arm.com. > > Test: angle_end2end_tests, angle_deqp_*_tests > Bug: b/42267264 > Bug: angleproject:394384906 > Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Bug: b/42267264 Bug: angleproject:394384906 Change-Id: I64572361cfed33b4ea17eabf278f580471d045c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6285628 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 80093a7d 2025-02-03T08:50:21 Add GL_BGRA_EXT as a sized renderable format dEQP tests were updated to cover GL_BGRA_EXT as a sized renderable format. It was apparently always supposed to be, based on the wording of the spec. This CL adds that support and updates expectations, along with a few extra tests. Includes contributions from Robic.Sun@arm.com. Test: angle_end2end_tests, angle_deqp_*_tests Bug: b/42267264 Bug: angleproject:394384906 Change-Id: Ia10bcd61f66c5d99a3d27a2cfd6008c991ddcaa7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6235444 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 4eed3a0c 2025-02-18T20:57:38 Vulkan: Remove EGL_WIDTH/HEIGHT from WindowSurfaceVk initialize The EGL_WIDTH and EGL_HEIGHT are only applicable when "EGL_ANGLE_window_fixed_size" is supported, which is currently only exposed by D3D backends. Bug: angleproject:40096349 Change-Id: I45886185d4740804709f274b70b73728b2a2e59d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6276201 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 91d0c56b 2025-02-18T20:00:00 Vulkan: Disable support for GL_EXT_YUV_target ... on vendors that don't have support for nullColorAttachmentWithExternalFormatResolve Bug: angleproject:386749841 Change-Id: I3437bf189bdfb40cba760143a442df13d6ebf8dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277811 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuly Novikov cab0acdf 2025-02-19T16:22:07 Suppress dEQP ASAN failures These block upgrading Clang to a new version that detects more problems. Bug: b/395920316 Change-Id: Ie07d1fce240741f2572546c86e838f8b16c4950c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6281031 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 0f969b98 2025-02-18T07:48:03 Vulkan: Disable dynamic rendering for Samsung Enable VK_KHR_maintenance5 iff VK_KHR_dynamic_rendering is enabled Bug: angleproject:386749841 Change-Id: I60f949b2454dd43599516f051fa51f7378513cf5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6267100 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Austin Annestrand d5a0d83a 2025-02-14T15:47:06 CL/VK: Fix addMemoryDependencies RAW barrier Additionally, remove unused barrier insertion code in processKernelResources(). Bug: angleproject:380188569 Change-Id: Id9f330410eecf45f94fe77bf072cf6601bd2a9e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6271135 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gowtham Tammana 8c0ac979 2024-06-20T16:39:26 Vulkan: Setup compute only queue for OpenCL Select compute only for OpenCL vulkan backend if `angle_enable_cl_compute_only_pipe` is set to true in gn args. And setting it as default for OpenCL. Bug: angleproject:395045928 Change-Id: Ie1a53e629646dbd5ba332dd297a4c8b737070e95 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6244610 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Rafay Khurram f102ef02 2025-02-18T18:05:28 CL/Vulkan: Fix handling for NormalizedSamplerMaskPushConstant * Fixes creation of normalized sampler for push constant * CLSamplerVk should check if the sampler has not been created Tests-Passing: OCLCTS.test_image_streams CL_FILTER_NEAREST 3D, OCLCTS.test_image_streams max_images CL_FILTER_NEAREST 3D, OCLCTS.test_image_streams use_pitches CL_FILTER_NEAREST 3D Bug: angleproject:42266936 Change-Id: Ic70c55ad05f4babdd10b516e78a061bdb7aa2488 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277809 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Liza Burakova bc40362b 2025-02-18T13:24:31 Add line loop emulation for draw arrays Bug: angleproject:383356846 Change-Id: I43f4835e17ecb2401418f77555fd70332612e1bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6090912 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Yuly Novikov 91deaea3 2025-02-13T13:57:37 Roll third_party/dawn/ 1eca38fa5..8119dbd27 (1982 commits; 30 trivial rolls) https://dawn.googlesource.com/dawn.git/+log/1eca38fa5236..8119dbd27471 $ git log 1eca38fa5..8119dbd27 --date=short --no-merges --format='%ad %ae %s' 2025-02-12 zhuangxu Set MacOS deployment target to 11.0 when building with CMake 2025-02-12 dsinclair Revert "Remove stale WebGPU Compat CTS expectations" 2025-02-12 rharrison [tint][ir][fuzz] Add missing capability to tint::hlsl::writer::IRFuzzer 2025-02-11 shrekshao [Compat] Remove gles min31 end2end suppressions 2025-02-11 shrekshao [Compat] Fix toggle string for UseBlitForRG11B10UfloatTextureCopy 2025-02-11 rharrison [tint][ir][val] Add operand and result checks for MemberBuiltinCall 2025-02-11 rharrison [tint][ir][val] Check InstructionResult->Instruction is inst 2025-02-11 jrprice [node] Support subgroupMatrixConfigs query in dawn.node 2025-02-11 jrprice [vulkan] Enable subgroup matrix feature 2025-02-11 ynovikov Remove stale WebGPU Compat CTS expectations 2025-02-11 ynovikov Remove stale WebGPU CTS expectations 2025-02-11 dawn-autoroll Roll ANGLE from e746fb068fd3 to 19c5293e1347 (5 revisions) 2025-02-11 jrprice [metal] Enable subgroup matrix feature 2025-02-11 jrprice [dawn] Add SubgroupMatrixConfigs to adapter info 2025-02-11 kylechar Skip setting Vulkan object labels 2025-02-11 dsinclair [spirv-reader][ir] Add derivative operations. 2025-02-11 lehoangquyen D3D11: skip waiting on the fence that is owned by the same queue. 2025-02-11 dawn-autoroll Roll vulkan-deps from cd5e835851d1 to a88fd25a6a0d (8 revisions) 2025-02-11 dsinclair [spirv-reader][ir] Cleanup duplicate argument code. 2025-02-11 jrprice [dawn] Add feature for subgroup matrix extension 2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpAny`. 2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpAll` 2025-02-11 dsinclair [spirv-reader][ir] Add support for `OpBitReverse`. 2025-02-11 cwallez [tint] Make type::BindingArray use ArrayCount 2025-02-11 rharrison [tint][ir][val] Add additional checking to builtin calls 2025-02-11 dsinclair [spirv-reader][ir] Support `OpBitFieldUExtract`. 2025-02-11 lehoangquyen D3D11: return error if D3D feature level < 11.0 2025-02-11 shaoboyan Dawn Native: Setup ClampFragDepth offset in Vulkan Backend 2025-02-10 dawn-autoroll Roll ANGLE from c4caed5f649d to e746fb068fd3 (8 revisions) 2025-02-10 gman Compat: Fixup Device Limits 2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitFieldSExtract`. 2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitFieldInsert`. 2025-02-10 brandon1.jones Add Missing Synchronization For D3D12 Shared Buffers 2025-02-10 ynovikov Skip more textureSample tests on WebGPU CTS compat Android 2025-02-10 cwallez [dawn][frontend] Fix error message when @group > maxBindGroups 2025-02-10 dawn-autoroll Roll SwiftShader from 5017ce3c800e to 720189cae847 (1 revision) 2025-02-10 titouan Include tint fuzzers in high-end fuzzer build. 2025-02-10 dsinclair [spirv-reader][ir] Support `OpBitCount`. 2025-02-10 dawn-autoroll Roll ANGLE from 38aa0780bb36 to c4caed5f649d (28 revisions) 2025-02-10 jrprice [spirv] Require Vulkan Memory Model when fuzzing subgroup matrices 2025-02-10 jwata infra: Add project property to $build/siso 2025-02-10 dawn-autoroll Roll vulkan-deps from b4c8dd090b72 to cd5e835851d1 (1 revision) 2025-02-09 ynovikov Skip textureSample tests on WebGPU CTS compat Android 2025-02-09 dawn-autoroll Roll vulkan-deps from dbe0a14ab512 to b4c8dd090b72 (1 revision) 2025-02-08 ynovikov Remove stale WebGPU Compat CTS expectations 2025-02-08 ynovikov Remove stale WebGPU CTS expectations 2025-02-08 ynovikov Generalize Linux NVIDIA WebGPU CTS expectation 2025-02-07 dawn-autoroll Roll vulkan-deps from c32804ca5a39 to dbe0a14ab512 (9 revisions) 2025-02-07 shrekshao [Compat] fix glsl name collisions between stages for handle 2025-02-07 shrekshao Compat suppress min es31 failure tests (...) 2024-08-15 rharrison [tint][ir][val] Improve checks on Returns 2024-08-15 petermcneeley [tint] Minor follow-up fix for insert before 2024-08-15 dawn-autoroll Roll ANGLE from 2003e06230b1 to 83ca89e58cef (6 revisions) 2024-08-15 dsinclair Allow marking expectations as INVALID. 2024-08-15 bsheedy Suppress additional Linux/NVIDIA failures 2024-08-15 chouinard Generate missing hlsl e2e tests 2024-08-15 petermcneeley [tint] MSL texture array negative integer clamp 2024-08-15 dsinclair Remove the CTS cache code 2024-08-15 amaiorano Generated missing tint e2e tests for ir.dxc.hlsl 2024-08-15 jiawei.shao Tint: Add validations on the type of `clip_distances` 2024-08-15 dawn-autoroll Roll ANGLE from 6fddb18d77a3 to 2003e06230b1 (6 revisions) 2024-08-15 jiawei.shao Tint: Add WGSL extension and built-in variable `clip_distances` 2024-08-15 jiawei.shao Remove `DeviceBase::ForceSetToggleForTesting` 2024-08-15 jiawei.shao Rename `BufferBase::GetUsage` and `BufferBase::GetUsageExternalOnly` 2024-08-15 bsheedy Suppress 16" Macbook failures 2024-08-14 rharrison [tint][ir][val] Check swizzles are well formed 2024-08-14 chouinard [tint] Implement quadSwapX, Y and Diagonal 2024-08-14 amaiorano [hlsl] Emit mip level 0 for storage textures 2024-08-14 amaiorano Regen ir.fxc.hlsl files 2024-08-14 jrprice [benchmark] Add --check-stale option 2024-08-14 dawn-autoroll Roll vulkan-deps from c297ee8a1d20 to 7660e21e64db (3 revisions) 2024-08-14 amaiorano Fix DXC roll 2024-08-14 dawn-autoroll Roll ANGLE from 5967afe70699 to 6fddb18d77a3 (3 revisions) 2024-08-14 dneto [tint] validate clamp const low <= const high when first arg is runtime-eval 2024-08-14 chouinard [tint] Implement quadBroadcast 2024-08-14 dawn-autoroll Roll ANGLE from fdd26da99a12 to 5967afe70699 (6 revisions) 2024-08-14 jrprice [benchmark][msl] Flatten bindings 2024-08-14 jrprice [benchmark] Split generated shaders into multiple lines 2024-08-14 jiawei.shao Don't check adapter nullability in the constructor of DeviceBase 2024-08-14 jrprice [benchmark] Generate map directly 2024-08-14 jrprice [benchmark] Convert SPIR-V when generating header 2024-08-14 jrprice [benchmark] Check in the generated header 2024-08-14 jrprice [benchmark] Remove spv_reader and wgsl_writer deps 2024-08-13 enga Add DeviceGetAdapter and AdapterGetInstance to client_side_commands 2024-08-13 jrprice [benchmark] Don't convert SPIR-V to WGSL at init 2024-08-13 rharrison [tint][ir][val] Check disards in validator 2024-08-13 chouinard [tint] Implement subgroupShuffleXor, Up and Down 2024-08-13 senorblanco Fix texture-only arg in combine samplers transform. 2024-08-13 jrprice [spirv] Remove ast_generate_bindings 2024-08-13 dawn-autoroll Roll vulkan-deps from 77d583f37170 to c297ee8a1d20 (3 revisions) 2024-08-13 jrprice [tint] Remove the quantizeToF16 AST polyfill 2024-08-13 jrprice [spirv] Remove AST backend 2024-08-13 jrprice [loopy] Switch to IR version of SPIR-V backend 2024-08-13 shrekshao [Compat] Use @size attribute for glsl pad struct 2024-08-13 jrprice Reland "[tint][benchmark] Generate depfile for inputs" 2024-08-13 jrprice [spirv] Move E2E expectations to default paths 2024-08-13 jrprice [spirv] Remove AST E2E expectations 2024-08-13 jrprice [tint] Only allow --use-ir with WIP IR backends 2024-08-13 dawn-autoroll Roll ANGLE from f8fc8ac36280 to fdd26da99a12 (4 revisions) 2024-08-13 dawn-autoroll Manual roll vulkan-deps from a5d4d42457c3 to 77d583f37170 (8 revisions) Created with: roll-dep third_party/dawn Bug: angleproject:396213611 Change-Id: I124bbd59dccd14d8609c37ef62ccdd4455897b2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6270256 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski bace6371 2025-02-17T15:14:37 Tests: Add Brotato ANGLE trace Test: angle_trace_tests --gtest_filter=*brotato Bug: b/397185288 Change-Id: I3d89d4b073b56efeede42abf5b0f44f8e9bd221a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6277708 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya 51d2561b 2025-01-29T11:11:50 Vulkan: Enable a few features for Samsung Enable the following features for Samsung - 1. enableAdditionalBlendFactorsForDithering 2. forceSampleUsageForAhbBackedImages Bug: angleproject:386749841 Change-Id: I9e822b884ea4e44af38c2d2dd95c67b020b94f98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6207669 Commit-Queue: mohan maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
hoonee cho bf9f69fc 2025-02-14T11:57:14 CL/Vulkan: Add support for LiteralSampler The support for LiteralSampler in clspv is enabled through the SPIR-V non-sementic clspv reflection instructions - LiteralSampler [1]. Setting the utility functions to process these instructions. Bug: angleproject:394767574 Change-Id: I47aa03dac050f723d2e3f2a7f9c6c1756e7ac9cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6239519 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Austin Annestrand <a.annestrand@samsung.com>
Brian Johnson bef478f5 2025-02-11T10:44:48 Set system settings to A14 until edge to edge is fixed Bug: b/389208485 Change-Id: Ic70cfd7135a5cbc1f14656246835476dadad8034 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6254737 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Brian Johnson <hibrian@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao 2ba1f129 2025-02-11T15:27:16 Vulkan: Avoid storage reallocation in UpdateDescriptorSetsBuilder UpdateDescriptorSetsBuilder::mDescriptorBufferInfos and mDescriptorImageInfos will keep grow to a few hundreds of entries and that grow will end up with data copy and patching mWriteDescriptorSets. There is no requirement that entire vector of mDescriptorBufferInfos andmDescriptorImageInfos must be continuous. The only requirement is that when allocDescriptorBufferInfos(count) is called, the count of entries must be continuous. This CL uses a queue of vectors so that when we need to allocate new storage we just add another vector and allocate out of the new vector. This avoids all related data copy. Similar thing applies to mWriteDescriptorSets. The only thing I added for mWriteDescriptorSets is that I try to grow the first vector big enough to hold all of the entries for next submission to minimize the vkUpdateDescriptorSets call. Bug: b/293297177 Change-Id: Ief417ace8c8f7b477a1962505e9487bf31bae2ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253675 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 7afa2345 2025-02-12T11:45:59 Vulkan: More std::vector storage fix for TransformFeedbackVk etc PersistentCommandPool::mFreeBuffers switched to use std::deque since there is no need to be continuous storage TransformFeedbackVk::mBufferObserverBindings restored storage before calling emplace_back in a loop. We could use std::array, but this works as good. Bug: b/293297177 Change-Id: Id658216d3d4d25ee1d5cb4ccb8f1a4499b18c38d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6259279 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Mark Lobodzinski 367541f5 2025-02-05T16:45:13 Capture/Replay: Add multi-capture support to tracer Multiple captures can now be grabbed by setting the trigger value to the desired framecount and then resetting it to zero to trigger a new capture. Captures will be saved in the current capture.out_dir directory and this should be changed between captures to keep traces separate. Note that this feature will not work with apps using persistent coherent memory, and in these cases the tracer will exit, preserving the initial, valid trace. Bug: b/394107532, angleproject:42263521 Change-Id: I9d31d19ec6c3736dbda356405eb91fba2dd5a8d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258503 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Austin Annestrand c8dc7c08 2025-02-13T16:35:05 CL: Fix typo in cl::BitField's exclude() routine Ignored passed "other" param. Bug: angleproject:42266936 Change-Id: Ia616bc7e2d1bfbdd39ed22221157b6aca5529ed2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6265705 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 064449af 2025-02-13T14:02:33 Vulkan: Fix race condition with foreign image transitions Bug: b/395155346 Bug: b/395513429 Bug: chromium:394148453 Change-Id: Ie6bcd74d8b6c8fdc37af0a0fbd29c0a7a96d0ec1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6265924 Reviewed-by: Jason Macnak <natsu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 93656e2d 2025-02-11T12:06:17 Vulkan: Reserve storage for ShaderInterfaceVariableInfoMap::mData To avoid data copy associated with vector storage reallocation, reserve enough space based on data gathered from app traces. Bug: b/293297177 Change-Id: I573fc89bd1c8590d9cfb72f576751c94f83720cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253674 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 3d29a799 2025-02-11T10:05:35 Vulkan: Reserve enough storage for ImageHelper::mSubresourceUpdates Most app specify textures from level 0 to level N, which works against std::vector storage grow scheme (which grows in size of 1,2,4,8,16). This CL simply reserve space for 12 mipmap levels to accommodate for most used texture sizes. Bug: b/293297177 Change-Id: I44818ed7ee436c73ab7ff146972f122ae9f08f33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6253673 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop c8049a47 2025-02-12T13:21:56 Tests: Add Tower of Fantasy trace Test: angle_trace_tests --gtest_filter="*tower_of_fantasy" Bug: b/389808881 Change-Id: I16a4ab0c12c18d2feb9df41cb0ba5667adb1f161 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6258901 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>