src

Branch


Log

Author Commit Date CI Message
Geoff Lang 20a72581 2025-10-09T00:25:48 Skip the shader translator entirely with passthough shaders. Reflect attribute and uniform information from the linked program in the backend before the frontend links so that the link process can mostly continue as usual. BUG: angleproject:398857482 Change-Id: I88bcf28118deea278610d62cbb789d8c4097fb5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022354 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 6233955b 2025-10-13T17:58:29 Optimize SetUniform for isFloat16 case Before this change, we use a temporary std::vector<GLshort> to store the transformed GLshort uniform data. This incurs heap memory allocation and deallocation every time we call SetUniform(). This change removes the temporary std::vector<GLshort>, and use the stack memory to store the transformed GLshort uniform data. To make code easier to read, placing the UpdateBufferWithLayout() function for the special GLshort case inside the SetUniform() itself, and remove the UpdateBufferWithLayout implementation for GLshort type. On Pixel 9, the driver_overhead_2 trace wall_time changes from 9.4 ms to 8.7 ms after this change. Bug: angleproject:405795981 Change-Id: I7508e4a3e3c4615129ef540b0b4d6b3feea0e705 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7038417 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Steven Noonan 7f5958c7 2025-10-15T15:09:45 Vulkan: roll Volk This pulls in support for VK_AMD_anti_lag entry points. Bug: angleproject:452392028 Change-Id: I03109ac30a88bdb551f9bc1ccaae91f79464bfa9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7046016 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Xinyu Fang eaad4345 2025-09-25T11:41:47 Fix issues from mixing regular/MSRTT multisampled renderbuffers Mixing resolved and unresolved attachments results in inconsistent sample states within the FBO, which violates the completeness requirements. In ANGLE, the framebuffer completeness logic checks RenderToTextureSamples only if the first attachment uses MSRTT mode. However, it fails to account for cases where the first attachment uses regular (non-MSRTT) mode. As a result, when the same framebuffer is later used with MultisampledRenderToTexture, the sample count mismatch between attachments may go undetected or misinterpreted, leading to incorrect completeness status. Bug: angleproject:447833937 Change-Id: I2d2743d7567b052b8df418447f287e6ac8af7b9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6992818 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Sunny Sachanandani 99c47333 2025-10-15T13:21:19 [metal] Fix data race in commands scheduled sync The recently added commands scheduled sync object adds a callback to the command queue to be invoked when the scheduled handler for the committed command buffer runs. This callback could be called after the sync object is destoyed, so make sure it doesn't reference the original sync object, but only a thread-safe ref-counted state object. Bug: chromium:444702048 Change-Id: Ifaef54eae5dfdb0b6eb6b767120947e66a6a6964 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7046662 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 0b9caaf7 2025-10-16T09:28:43 Vulkan: Limit atomic counters to 32 Technically, the limit for atomic counters can be very large; we use an SSBO to emulate them, which can commonly be gigabytes. However, some tests create as many atomic counters as possible, which with the added logic to use those atomic counters result in huge shaders, risking exhausting SPIR-V's 16-bit ids. Given most GLES drivers expose a limit of 8, there's no reason for ANGLE to expose 4096 of them. This limit is lowered to 32 in this change. Bug: angleproject:42262227 Change-Id: I9f1db94bb688050cbd9b4eaa7af65317ab806322 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7042357 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Xin Yuan 665785f6 2025-10-11T14:11:26 Vulkan: Load the image when damage region is set Ensure image loads when buffer age > 0 and damage region is set, regardless of first eglQuerySurface call Bug: angleproject:450967247 Change-Id: I5cae32fc3c3e8c0b26e9d8a6eb6c1365d0d12bf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7031241 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Xin Yuan <xin.yuan@arm.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi b712a720 2025-10-10T17:06:44 Translator: Check for recursion during parse GLSL bans static recursion (i.e. it's an error even if recursion could get dead-code-eliminated). Tracking the call graph at parse time lets the translator be precise about this. This change also prepares for a few follow up changes that make CallDAG obsolete. Bug: angleproject:349994211 Change-Id: I66f2cc3e544932f089f8185ccf15b3bd98779d13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7031487 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 8469b249 2025-10-10T14:12:20 Translator: Reject infinite loop during parse Bug: angleproject:349994211 Change-Id: I38964414b2992319e5f80f18a417210f86d806a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7029684 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi caf63365 2025-10-15T13:10:37 Translator: Avoid unreachable in presence of shader error When the gl_ClipDistance/gl_CullDistance index is tracked for future validation, the parser expected the index type to be valid, but it may not be if there's a compile error. Bug: angleproject:349994211 Change-Id: I94f39bec34a8ae68ef7d6c3cce256026808c0bc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7042014 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Hoyeon Lim 3add1bfa 2025-10-10T12:31:30 FrameCapture: Add skip invalid condition If array buffers bound to the vertex array object are deleted and this vertex array object is not deleted, the replay could not work. Added a skip condition when buffers bound to VAO are deleted. Bug: b/448683996 Change-Id: I4c88438f81c9e8ff73f9dba994f445b7cb7ec58a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7030341 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Shahbaz Youssefi ded8ecc0 2025-10-15T15:26:23 Translator: Handle GS and TES output gl_Position like VS The spec declares these special shader variables identically as: ``` out gl_PerVertex { highp vec4 gl_Position; }; ``` Between vertex, geometry and tessellation evaluation shaders. Since the output is nameless, vertex shaders have always treated `gl_Position` as if it's a variable on its own. In this change, TES and GS treat that variable the same way. Additionally, this change removes `gl_Position` as a standalone variable from tessellation _control_ shaders, which must always use `gl_out` instead. Bug: angleproject:349994211 Change-Id: Ib33592fb62af31021a99f76f77c27da214425826 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7042770 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 97b93617 2025-10-15T15:17:15 Translator: Remove gl_out from TES built-ins Tessellation evaluation shaders don't have such a built-in. Like geometry shaders, they only have an `out gl_PerVertex` that is not an array. Bug: angleproject:349994211 Change-Id: I6b333a223b721ca5ceb2d6c5658d802cb66769ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7042769 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d9ff0591 2025-10-15T13:43:51 Translator fuzzer: dump the shader to stderr Bug: chromium:448166385 Change-Id: I67ff0a5b78a488bef2a867abef4b7f1ba72137bf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7042568 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mohan Maiya 4ad0cae3 2025-10-15T14:55:27 Fix OpenGL ES version string Cache only the major and minor version for GLES Bug: angleproject:386749841 Change-Id: I936ee56f19d1d459f855a643f9b67ae4f596a1d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7047080 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
kyongjoo.oh ac80018c 2025-08-17T06:33:17 CL/Vulkan: Set host cached bit for HOST_PTR buffers Leads to better performance on "clEnqueueReadBuffer" operations when CL buffers are created as host-pointer based buffers. Bug: angleproject:42267018 Change-Id: I18048deea96858180b63cfad95fe33fbab7f11c9 Signed-off-by: kyongjoo.oh <kyongjoo.oh@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981096 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fc46d336 2025-10-14T14:52:20 Add RobustBufferAccessBehaviorTest test Bug: angleproject:451733089 Change-Id: If96dc9360ac952ad83f1edd9c5779c35c84eec02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7043022 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 255dc673 2025-10-09T00:17:59 Translator: Validate ESSL 100 limitations during parse Validating the shape of the for loop as specifically required by WebGL (per ESSL 100 spec, Appendix A) is more easily done during parse, where the shape of the input GLSL is exactly known. Bug: angleproject:349994211 Change-Id: I05a9b1b6915dbc1f6c74bb9159f6cc85fefc7b67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022355 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi 84b0cf1a 2025-10-08T15:54:43 Translator: Validate gl_FragData xor gl_FragColor early The translator validates that these two built-ins are not simultaneously used. This validation is moved earlier to the post-parse checks. Bug: angleproject:349994211 Change-Id: I59f1266406c3f82da560f3a18bb88571ab614d75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022017 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 8c15b966 2025-10-08T15:31:25 Translator: Validate MaxFunctionParameters limit during parse Bug: angleproject:349994211 Change-Id: Ic9e4a6d1279cdfdb8d24a029182f3c83a79ef05f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022016 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sean Feng 7280d3d1 2025-10-14T09:56:58 Turn off preferSubmitAtFBOBoundary and add early submit logic Disabling preferSubmitAtFBOBoundary for MALI GPUs and submit pending commands at the draw call time if the number of write-commands in the current render pass reaches a threshold to avoid delaying the submission too much. Bug: angleproject:447444701 Change-Id: I413a4beb7147afd4f064286433a76014b19a49c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6994438 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Sean Feng <Sean.Feng@arm.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
hoonee.cho 2027314b 2025-08-26T17:07:27 CL/Vulkan: Enable OpenCL kernel printf in logcat Added `__android_log_write` for kernel print output buffer in case of android build Bug: angleproject:433980940 Change-Id: I4eac408076c3b4d804949724eff439137172fa54 Signed-off-by: hoonee.cho <hoonee.cho@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981095 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Austin Annestrand 54409f2b 2025-09-22T15:00:59 cl/vk: Autogen image order and types Adding ANGLE packed enums for image order and types. Bug: angleproject:447192713 Change-Id: I92950330cbaabc48b3c481d5ce3616a3c0030259 Signed-off-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6980531 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Sunny Sachanandani 774bca93 2025-10-08T18:41:13 [metal] Add commands scheduled sync object We need a thread-safe way to wait for ANGLE Metal command buffers to be scheduled for IOSurface synchronization with DrDC + Graphite on Mac. The existing eglWaitUntilWorkScheduledANGLE API isn't thread-safe as it reaches into ContextMtl innards to flush the command buffer. This CL adds the EGL_ANGLE_metal_commands_scheduled_sync extension which introduces a EGL_SYNC_METAL_COMMANDS_SCHEDULED_ANGLE sync object type. This sync object is signaled when pending Metal commands are scheduled to run on the GPU (MTLCommandBufferStatusScheduled). These sync objects are thread-safe - eglClientWaitSync() can be called on any thread even without a current context which is needed for DrDC + Graphite on Mac. Bug: chromium:444702048 Change-Id: Ia13b352385a6fefaa026526ef74f6e596a6a6964 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7027996 Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Shahbaz Youssefi e5b0553a 2025-10-08T15:18:25 Translator: Validate TCS barrier() rules during parse ... instead of doing an AST walk after parse. Bug: angleproject:349994211 Change-Id: I175fecb593ac701208c20f77bb8dd3987c63fa11 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022014 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi bf63a4ef 2025-10-08T15:13:58 Translator: Track control flow during parse This change adds a stack to track control flow structures. Currently, this replaces the loop/switch nesting level validation and may look unnecessary, but a number of other post-parse validation will be moved to parse-time and build on this stack. Bug: angleproject:349994211 Change-Id: I841ce780f22410055feedb3194c24d84871a89cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022013 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Austin Annestrand c1ae67dc 2025-08-18T17:26:21 cl/vk: Introduce Int64 Atomic support Checks for VK_KHR_shader_atomic_int64 and enables/reports the following if supported: cl_khr_int64_base_atomics cl_khr_int64_extended_atomics Bug: angleproject:447192709 Change-Id: I47102efd3e269d518558993f6068bfc4f9dd79b6 Signed-off-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981099 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 104f0e68 2025-10-13T21:20:39 Tests: Add Umamusume: Pretty Derby trace Test: angle_trace_tests --gtest_filter=*umamusume_pretty_derby Bug: b/451770108 Change-Id: I6704c89a0c65f8eb233e54784ef57259b4e0d5da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7039199 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
hoonee cho 4d52bedb 2025-08-12T00:28:48 CL/Vulkan: Add 3.0 atomic memory order feature macros With OpenCL 3.0, generic atomic_{load,store} functions are defined with memory_order_seq_cst and memory_scope_device as memory order and scope. For these corresponding feature macros need to be enabled. Setting them up accordingly. Bug: angleproject:379669750 Change-Id: I355cf4107fee10d203837ca0aa4a9f473cd81929 Signed-off-by: hoonee.cho <hoonee.cho@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981092 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
hoonee.cho 7c7fcb92 2025-07-14T07:56:22 CL/Vulkan: Allocate descriptor sets under lock Multiple threads in the application are accessing the OpenCL runtime simultaneously, resulting in multiple SharedPtr of mDynamicDescriptorPools[] being created for a single context. This can lead to incorrect reference counting and potentially cause `DynamicDescriptorPool::destroy` to be called unexpectedly. This fixes the concurrent access issue through acquiring the descriptor set mutex just before initializing mDynamicDescriptorPools to ensure that only one mDynamicDescriptorPools[] is created per context. Bug: angleproject:383999367 Tests-Passing: test_integer_ops int_logic Change-Id: Iba0fad6813a08e1631b73d5efae4f4639892b36f Signed-off-by: hoonee.cho <hoonee.cho@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981091 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Gowtham Tammana e9e17890 2025-09-24T15:21:17 CL/Vulkan: Make CommandsStateMap as self contained The `CommandsStateMap` object is used to capture all the state that needs post-processing after a command batch is finished. Making this as a standalone object. Bug: angleproject:446112158 Change-Id: I1f33741da15fe32aae06cba79650dc76426490d5 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981090 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 80130da0 2025-10-01T14:53:23 Vulkan: Enable recycleVkEvent on swiftshader Given that no GPU has reported that vkCreateEvent() + vkDestroyEvent() has more overhead than vkCmdResetEvent(), we will keep the recycleVkEvent feature flag off on all major hardware. Enable the recycleVkEvent feature on swiftshader so we can test the VkEvent recycle code path. Bug: b/440066521 Change-Id: I0eb30ea9a01e287664effa33cef5227f9f438a56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004937 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Gowtham Tammana 45b0571e 2025-09-24T15:20:53 Vulkan: Add barrier log only when present Bug: angleproject:446112158 Change-Id: I4eb94c1514df5a2eaec70267e2dbbd5a1c2579bd Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975005 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gowtham Tammana ea35293a 2025-04-14T15:52:02 CL/Vulkan: Dump commandstream on request Dump the command stream to stdout when feature flag `debug_cl_dump_command_stream` is enabled. Bug: angleproject:446112158 Change-Id: I58ea7eec4c842aee382568c7f41c99a242d29680 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6975004 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
kyongjoo.oh 02ffcb36 2025-08-01T08:13:21 CL/VK: Fix heap overflow when kernel args exceed size Prevented memory corruption by validating argument size against allocated push constant size before copying. Bug: angleproject:447192711 Tests-Passing: test_basic vector_swizzle Change-Id: I73b03a31089ad922b9ad7c2295fd1578d60458ec Signed-off-by: kyongjoo.oh <kyongjoo.oh@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981098 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Tim Van Patten 8ed16003 2025-10-09T09:43:37 tests: Fix ShadingRateEXTTest.FragmentShadingRatePrimitive The test ShadingRateEXTTest.FragmentShadingRatePrimitive has several errors: 1. The uniform 'u_color' is not set to any value. 2. The test incorrectly assumes GL_SHADING_RATE_1X1_PIXELS_EXT results in the GLSL built-in 'gl_ShadingRateEXT' having a non-zero value. 3. The test attempts to validate the GL_SHADING_RATE_2X2_PIXELS_EXT behavior, but never calls glShadingRateEXT() with this value. 4. kSimplePrimitiveShadingRateGS needs to set gl_PrimitiveShadingRateEXT each iteration of the loop, rather than just once, due to the EmitVertex() call which resets all output variables to undefined values. Once these issues are fixed, the test passes. Bug: b/450024489 Bug: angleproject:444980424 Test: ShadingRateEXTTest.FragmentShadingRatePrimitive Change-Id: If3b9379d4aac97bb106cc0b04550068cd0783a94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7027991 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Roberto Rodriguez 62fe67a7 2025-10-09T11:12:47 Update Texture2DBaseMaxTestES3.Fuzz545ImmutableTexRenderFeedback Make test updates to align more with conformance test immutable-tex-render-feedback.html: - Change several data types from unsigned to signed - Some test iterations are skipped entirely - Signed types align more closely with the gl operations in which they are used as arguments. - Update MIPS constant from 2 to 3 - Avoid modifying loop counter _level_prime_max directly Add Roberto Rodriguez to CONTRIBUTORS list. Bug: angleproject:450534531 Change-Id: I3389b64fe16bd8e59f45c228363d7f7ed089a757 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7027992 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Shahbaz Youssefi 8af6c566 2025-10-08T11:25:49 Translator: Add more action routines to glslang.y These will be used during IR generation, but are split in this change because commits with glslang_tab_autogen.cpp take forever to `git cl format`. Bug: angleproject:349994211 Change-Id: Ib0a84710fa63fc33193fd5f485a434981baab61e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022211 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi eec95a6b 2025-10-02T17:02:14 Translator: Remove NV_shader_framebuffer_fetch This extension is never exposed by ANGLE. AFAICT, it was removed in https://chromium-review.googlesource.com/c/angle/angle/+/688099 and never added again. The current implementation is incorrect even if the extension is exposed; we assume gl_LastFragColorARM is the name, while this extension uses gl_LastFragColor. This change removes mentions of this extension instead of trying to fix it. Bug: angleproject:349994211 Change-Id: I2391a225db95d73579fd71cf261360973e5935f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004390 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 074eec2f 2025-10-02T15:31:19 Translator: remove angle_BaseVertex/Instance from built-ins These aren't built-ins, they are just used for emulation. Instead of listing them in the built-in variables, they are now created as uniforms during emulation. This change also gives gl_BaseVertex/Instance their own qualifiers so they aren't considered uniforms. The emulation pass is also optimized to do fewer passes. Bug: angleproject:349994211 Change-Id: I44fd345fd4a2dc4a001eb294952a984ae710d606 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004388 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi b0ee4239 2025-10-01T16:46:10 Translator: Validate clip/cull distance size during parse ... instead of in a post-parse pass. In this process, these array sizes are determined during parse itself, and so can be applied to the IR earlier. Bug: angleproject:349994211 Change-Id: I542970f9262e346fd7443e48d780e8abfec95315 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003832 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 17977bb0 2025-10-08T20:12:13 Tests: Add Lands of Jail trace Test: angle_trace_tests --gtest_filter=*lands_of_jail Bug: b/450394708 Change-Id: I8a87eca1a48b0a96e491be294d4c45ce125dcdee Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7021859 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jordan f9685fdb 2025-10-07T07:47:14 Fix: Correct various license issues in README.chromium files Bug: chromium:365320788 Change-Id: I1cb11330176d7a63d3aedee78aa5a5c15fcca595 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7015769 Auto-Submit: Jordan Brown <rop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 715e935d 2025-10-08T21:16:08 D3D11: Add UMA metrics for Create*Shader's timing Bug: chromium:399642827 Change-Id: Iaf22b598305d8c11ec0ea9bafa6cd1361db571f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022089 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 37b48896 2025-10-08T08:51:44 Tests: Skip black_beacon on Pixel 6 Non-deterministic rendering results. Bug: b/450251026 Change-Id: I8bf192d19e2be460816dcdc0a54eac56b8f291da Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7022171 Commit-Queue: Cody Northrop <cnorthrop@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
angle-autoroll c2010eb1 2025-10-06T10:13:40 Roll VK-GL-CTS from 7e7a6001a3f4 to db48c34bebaf (14 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7e7a6001a3f4..db48c34bebaf Update GN with CMakeLists.txt changes in: https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+/d1cc04f42d9d6de78bc68abe0ce3d98754c2ac3a https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+/4c03f49146f25e18d6b1f9d983cc531f7683c87a 2025-10-03 javed@igalia.com Add format reinterpretation tests 2025-10-03 rgarcia@igalia.com Update Vulkan CTS Linux build instructions 2025-10-03 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.12 into vk-gl-cts/main 2025-10-03 scerveau@igalia.com Video: Use TCU_CHECK_AND_THROW instead of DE_ASSERT 2025-10-03 shihwang@amd.com Add mesh shader tests 2025-10-03 apinheiro@igalia.com ARB_texture_filter_minmax depends on OpenGL 3.3 not 4.5 2025-10-03 niklas.ulvinge@arm.com Improve coverage for textureQueryLod 2025-10-03 david.rosca@amd.com Add R16_SINT format for quantization delta map 2025-10-03 ziga@lunarg.com Verify supported host image copy layouts with unified image layouts 2025-10-03 ziga@lunarg.com Test vkCmdBindDescriptors2 with dynamic offsets 2025-10-03 ziga@lunarg.com Tests for dedicated device memory overallocation with buffers 2025-10-03 rgarcia@igalia.com Add GPL tests in which some set layouts are always null 2025-10-03 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.4 into vk-gl-cts/main 2025-09-29 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_KHR_copy_memory_indirect2' into main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Tbr: ynovikov@google.com Change-Id: I8706e17b59da232b4da1d5da75f78955fb3ce526 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7010736 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Solti Ho <solti@google.com>
Cody Northrop 867b9b74 2025-10-07T16:23:01 Tests: Add Match Masters trace Test: angle_trace_tests --gtest_filter=*match_masters Bug: b/450081414 Change-Id: I90546fc4dea0e7257001fbf9a68087355b8ee39b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7019035 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Matthew Denton fecb8ead 2025-09-04T12:27:48 WGSL: implement inc/dec with generated functions Implements inc/dec with generated WGSL functions that take pointers and perform a post/pre inc/decrement. This works with scalars, vectors, and matrices, both float and int. WGSL supports inc/dec only on integer types, and only as statements (not as expressions). https://www.w3.org/TR/WGSL/#increment-decrement. The regular ++ and -- are used in this specific case. The WGSL outputter records usage of increment/decrement and produces a call to the correct function. A new class is introduced to keep the record of which types need generated inc/dec WGSL functions. Bug: angleproject:42267100 Change-Id: I0e70760ba5bd00f978e216f958216ae3137a146e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6935269 Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski f8c0eae1 2025-09-30T14:06:55 Tests: Add Identity V trace Test: angle_trace_tests --gtest_filter=*identity_v Bug: b/448431054 Change-Id: Ia39f775dbc22b8c8d7df1a9c49b31f1dd47d6a02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7018081 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop b53f61e8 2025-10-06T15:48:42 Skia Gold: Limit frame count on SwiftShader ANGLE traces have the ability to specify key frames for use in golden image comparison. Since software rendering is typically slow, we want to limit the impact of key frames on our CI time. Test: restricted_trace_gold_tests.py --key-frame-limit=10 Bug: b/449677825 Change-Id: Iddc26d76672b4cac36730eb1a4172f2037ccd3ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7014647 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 6a997ce2 2025-10-03T00:03:25 Vulkan: SPIR-V Gen: Use unique id instead of pointer Bug: angleproject:349994211 Change-Id: I66d6c3cf58f1e7d850fb19def7aa863774d918a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007612 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton 6c4c0055 2025-10-01T15:13:14 WGSL: fix do-while when body has continue If the body of the do while had a "continue" it would skip over the evaluation of the loop condition and potentially loop forever. Change to use the special WGSL "continuing" statement, which goes at the end of a loop body and always executes, even if there is an earlier "continue". Bug: angleproject:42267100 Change-Id: I4ac73e6abcb12e0ff395b83dc5666ac1870724e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003772 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi e1c14f0b 2025-10-02T23:42:01 Translator: Fix gl_LastFragColorARM not being qualified correctly The qualifier adjustment was accidentally done after declaring the variable in some cases. Bug: angleproject:349994211 Change-Id: Iffd7567a119e1cd499c068742edfcb68a6a2336f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7006113 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao fd353919 2025-10-03T14:32:05 Vulkan: Fix VMA assertion The primitive restart may generate zero size, and VMA does not like it. Make sure we not pass down zero size here. Bug: angleproject:448916158 Change-Id: I9a901127e8de11ab008e39330bd2eb93a9f135bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7008828 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Gowtham Tammana 01280f65 2025-07-29T10:14:54 CL/Vulkan: Remove spurious clear The external events corresponding to a command stream submit and processed and cleared before vkSubmit. So remove the spurious clear at the time finish post processing. Bug: angleproject:446112158 Change-Id: If2efcc3173e400ad2d386ca374eebe9d9f310692 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981089 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Shahbaz Youssefi d9fa255a 2025-10-02T11:58:06 Translator: Add numerous missing gl_PerVertex validations Bug: angleproject:349994211 Change-Id: Ie4a602dd026a2dab95c9d77e8841e76967fa7f3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7002885 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jisun Lee fc98b3f6 2025-09-30T19:40:58 Add test to verify the direct YUV sampling case This is a follow-up test to the commit below. https://chromium-review.googlesource.com/c/angle/angle/+/6797965 The test verifies that the yuv image and image view are properly initialized in a program using __samplerExternal2DY2YEXT sampler. Bug: angleproject:386749841 Test: angle_end2end_tests --gtest_filter=ImageTestES3.* Change-Id: Ia0142dfb9135df6684526bf88f8c8b257416be10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7001563 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 5c58505b 2025-10-02T16:22:19 Tests: Update expectations for GalaxyS24Exynos Test: angle_end2end_tests Bug: b/410630704 Change-Id: I18c1a9d9c5dfbb4b9238ecac5a081bde5c070540 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007381 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 5e724354 2025-10-03T15:53:45 Fix UniformBufferTest.MultipleSizesSmallBeforeBig on AMD/Linux Bug: angleproject:42266818 Change-Id: I4ccb02ea1d21b5d8d8861837c3e40a3b0fa75610 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7008549 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya b276d1f8 2025-10-03T08:56:54 Vulkan: Add supportShaderPixelLocalStorageAngle feature Don't expose GL_ANGLE_shader_pixel_local_storage extension for Samsung Bug: angleproject:386749841 Change-Id: Ia22a6e8d8625db2abc7e7e9816ac34b7a7dec92c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7006000 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 51fcd399 2025-10-03T10:39:14 Revert "Vulkan: Suppress buggy VU" This reverts commit a83d674ed6b9096a5c5b1f3e3924aaa340bd3867. Reason for revert: Buggy VU was disabled in VVL Original change's description: > Vulkan: Suppress buggy VU > > Bug: angleproject:448630613 > Change-Id: Ibccc4fbbe6257a3b96f5ccb112fec866cc2c3efe > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003828 > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> Bug: angleproject:448630613 Change-Id: I19ebc3cb83d9ceefcfbbb92df0a0e1bde4ff7a36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007012 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 41bc2afa 2025-10-02T16:22:33 Vulkan: Remove mBindingDirtyBitsRequiresPipelineUpdate mBindingDirtyBitsRequiresPipelineUpdate and mAttribDirtyBitsRequiresPipelineUpdate are used to avoid GraphicsPipelineDesc::updateVertexInput() call. This function is not being used when supportsVertexInputDynamicState is enabled, which almost all recent drivers do. We could potentially do similar optimizations when supportsVertexInputDynamicState is enabled to avoid RenderPassCommands::setVertexInput() call. But the logic is complex enough not really worth it (See crrev.com/c/6961186 for draft CL). If any, simply compare the new value and old value probably is as good as checking the dirty bits. In this CL, all these dirty bits checking are removed so that we do not waste CPU cycles to track these dirty bits while not being used at all when supportsVertexInputDynamicState.enabled is true. Bug: b/439073246 Bug: b/442636174 Change-Id: I7d71d4fc9388612e7c6ccc50a2e781325fe953bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007241 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 8f8f0439 2025-10-02T15:44:46 Group the class methods together In previous many CLs, I intentionally not move around the code for ease of code review. Now everything has settled down, it is the time to regroup class methods together. Also renamed some various in VertexArrayVk to be consistent with each other. No functional change is expected in this CL. Bug: b/439073246 Bug: b/433331119 Change-Id: I84f9a2ff9ea20f359e2f546ecb4e3e503b805748 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7007472 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f1110548 2025-10-03T10:00:59 Suppress failing test on iOS Bug: angleproject:448658625 Change-Id: I35b5c41055136d2f8bffdf9e48dd6480fd248c90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7002518 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Charlie Lao 62b00f86 2025-10-02T12:19:23 Vulkan: Further minimize VertexArrayVk::syncDirtyEnabledAttrib This CL splits the streaming handling into its own function: syncDirtyEnabledAttrib is now splitted into syncDirtyEnabledNonStreamingAttrib and syncDirtyEnabledStreamingAttrib. This minimize the condition check inside syncDirtyEnabledAttrib. VertexArrayVk::syncDirtyEnabledAttrib() function has a check of bufferGL->getSize() > 0 as well as hasAtLeastOneVertex. And if either of them are false, they simply point to empty buffer. This CL merges these this fallout case into hasAtLeastOneVertex and added ASSERT to ensure that if buffer size is 0, hasAtLeastOneVertex is false. Bug: b/439073246 Change-Id: I5e3592c31469d15f5321208eb0278b10e447118c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6987341 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 2247ebec 2025-10-02T09:52:40 Trace/Replay: Don't reset max shader/program ID The mMaxShaderProgramID variable was being reset between captures. This could result in trace crashes when the temp shader/program start ID conflicted with active programs or shaders. Test: angle_trace_tests --gtest_filter=*identity_v Bug: b/448817125 Change-Id: I49c1d94b5824a8eaee444f7e4eb323ddab1a3edc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7006451 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 538129c6 2025-10-01T15:08:53 Remove b/ from end2end expectations Bug: None Change-Id: Ibfa3ca48dc5084ffd548cc1ff331bf29592a817e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004585 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 7b4ff0b2 2025-10-01T16:30:47 Vulkan: Updates to onFramebufferBoundary 1. Rename to the more appropriate onFrameBoundary 2. Add method to renderer for better encapsulation 3. When being moved to the background some apps unMakeCurrent the contexts and exit without calling other frame boundary APIs. Handle such usecases by treating ContextVk::onUnMakeCurrent(...) as a frame boundary Bug: angleproject:386749841 Change-Id: Ic2a8ecb631d132d99f8508f45f3b454c49f6624e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004936 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi ec4d8946 2025-09-29T15:32:40 A fistful of tricky GLSL tests Bug: angleproject:349994211 Bug: angleproject:448658624 Bug: angleproject:448658625 Bug: angleproject:448658631 Bug: angleproject:448675904 Change-Id: I8ad8727b7c8f7889a1249dfc7382c7e0318c5496 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6996988 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 1f3b482f 2025-10-02T12:05:44 Translator: Fix UNREACHABLE() on gl_DepthRange compile error Bug: angleproject:349994211 Change-Id: I1918c8390de3fa4a5c7542b044e91e8d5e944b3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7002886 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 4daab276 2025-10-01T16:20:53 Fix test supplying 2D texture data to 3D texture Bug: chromium:446633198 Change-Id: I4ee9cee6788123e5e2d5527e92433c5df61aa063 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7004941 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Jisun Lee b152eb30 2025-09-12T21:20:08 Vulkan: Refine conditions to force submit immutable textures To minimize unnecessary submissions, make the activation conditions for forceSubmitImmutableTextureUpdates feature more precise. This also enables the feature for Samsung devices. Bug: b/444728814 Change-Id: Idaf6b36596752f55ec6ba0ca1e4ff516f3a280df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6945861 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 7994bf76 2025-09-29T11:55:00 Vulkan: Avoid double-setting the fragment shading rate Because there were two handlers for fragment shading rate, one for the QCOM extension and one for EXT, every time the render pass started, it would set the fragment shading rate to 1x1 twice. Bug: angleproject:420310117 Change-Id: I905c504c7a7b80b5e7173e5d6a7cabe6f271e7a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6995362 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Yuxin Hu 17307955 2025-09-30T18:08:18 Vulkan: Add a threshold for RefCountedEventRecycler::mEventsToReset Surface Flinger process is not guaranteed to call Renderer::flushOutsideRPCommands(), in that case RefCountedEventRecycler::mEventsToReset is never cleaned up and send back to RefCountedEventRecycler::mEventsToReuse list, which causes file descriptors leaking. This change adds a threshold for the number of items in RefCountedEventRecycler::mEventsToReset. If the threshold is reached, don't add item to RefCountedEventRecycler::mEventsToReset, destroy the items instead. Bug: b/440066521 Change-Id: If4aa0b14ab15e70f192f380e3b9707b405dd6fcb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7001562 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi 7093e400 2025-09-29T14:31:06 Vulkan: Fix buffer size for vertex array * In syncDirtyEnabledAttrib() in VertexArrayVk, the array buffer size used for binding (BindVertexBuffers2()) has been changed to that of bufferHelper. Bug: angleproject:448047351 Change-Id: I852e4839cba698c01f92644cf32fadf366c0b54f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6996428 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a83d674e 2025-10-01T12:42:48 Vulkan: Suppress buggy VU Bug: angleproject:448630613 Change-Id: Ibccc4fbbe6257a3b96f5ccb112fec866cc2c3efe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7003828 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Matthew Denton 4cff5289 2025-08-12T19:31:36 WGSL: append TSymbolUniqueId to overloaded functions dEQP-GLES2.functional.shaders.functions.overloading.* passes after this. So that overloaded functions have unique names in GLSL, append their TSymbol's unique id to the name of the emitted WGSL function. Bug: angleproject:42267100 Change-Id: I25026e71f9e27cb323014cd4102f914226c27d02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6843927 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Cody Northrop b2acbf90 2025-09-30T16:49:40 Tests: Add Raising a Goblin trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*raising_a_goblin Bug: b/448458599, b/448468885 Change-Id: I36909d44ccf817ae54b80968b75136c2478b38f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7001560 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi ae02c329 2025-09-30T00:04:58 Translator: Give gl_DepthRange its own qualifier gl_DepthRange and gl_NumSamples are considered "uniform" by the GLSL spec, but gl_NumSamples gets its own qualifier in the translator. This left gl_DepthRange as the only built-in that had to be detected by its name instead of qualifier. This change adds a qualifier for gl_DepthRange to remove this special-ness. Bug: angleproject:349994211 Change-Id: I2b7b0acf3dcaef22bb4a98e4d35fd2cdfd5c825a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6998990 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 789693f0 2025-09-30T14:30:59 Translator: Fail compilation if built-in redeclared after qualified If a built-in is qualified then redeclared like so: invariant gl_FragDepth; out float gl_FragDepth; the translator would have to remove the previous qualification statement and apply its effect to the redeclared variable directly. While this is possible, it has always been broken (i.e. there are no users), and is not really useful to support, since the application could have done the following instead: invariant out float gl_FragDepth; The spec does not explicitly call this out as invalid, but this change generates a compile error for the above scenario anyway, as supporting it can get unnecessarily intrusive. Bug: angleproject:349994211 Change-Id: I9ddb181c8808f50aeed5b327a95b3df829206822 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6999640 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton 7b14dd73 2025-08-19T15:57:34 WGSL: RewriteMixedTypeMathExprs RewriteMixedTypeMathExprs: Some mixed-type arithmetic is legal in GLSL but not WGSL. Generate code to perform the arithmetic as specified in GLSL. Example: uvec2 x; uint y; x &= y; Is transformed into: x &= uvec(y); Also, mat2 x; int y; x += y; Is transformed into: x += mat2(float(y), float(y), float(y), float(y)) Bug: angleproject:42267100 Change-Id: I4a0ec1d9806b3331b4b1feff6fbe7c0f212f8120 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6862843 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Shahbaz Youssefi a38f60ea 2025-09-30T13:40:44 Translator: Fail compilation if main() is only prototype Bug: chromium:448166385 Change-Id: Ia6b69839e35f3e0dcdf3e6e918397d3e2fd83fa2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/7000630 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 85631b1d 2025-09-30T14:25:30 Translator fuzzer: Dump the shader before compiling it So that fuzzer reports tell you what the shader is without us needing to debug-print it. Bug: chromium:448166385 Change-Id: If2454093abd73771cbac787c7516259db6be82d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6999637 Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Rachael Newitt c4e942d6 2025-09-25T02:47:45 Tidy up some README.chromium files in Angle. Backfills the Update Mechanism field for dependencies and cleans up some of the other fields which are out of date. Bug: chromium:379934539 Change-Id: I9a952e905ce00c379c4d593dd67b7e0fc6f1794e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6981101 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Dan Glastonbury e12bb29c 2025-08-01T15:34:26 Recompute vertex capacity when resuming transform feedback. Extract vertex capacity computation into recomputeVertexCapacity() and call it from both begin() and resume() to handle cases where the backing buffer size changes while transform feedback is paused. Add a new WebGL specific test to TransformFeedback to test the expected behavior when making the backing buffer smaller via glBufferData. Bug: angleproject:437706201 Change-Id: I3ac8e1e983ab868e34c1bdac249ce17a40e274f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6830709 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com>
Mark Lobodzinski 81cda669 2025-09-29T15:16:54 Tests: Add Knives Out trace Test: angle_trace_tests --gtest_filter=*knives_out Bug: b/448170020 Change-Id: I9a24ea1ae36b870a127a670db5000dd8db1668dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6997769 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yiwei Zhang ba5db43c 2025-09-27T08:51:25 Vulkan: support MESA PanVK compatibility Naming wise: 1. isARMProprietary: ARM Mali DDK 2. isMesaPanVK: MESA PanVK Compatibility wise: 1. No behavior change for ARM proprietary driver. 2. Gone through each isARM check and update to isARMProprietary for those not applicable to MESA PanVK. 3. Fixed some isMaliJobManagerBasedGPU check which assumes the ARM prorietary driver. 4. Enabled doubleDepthBiasConstantFactor for MESA PanVK. Bug: b/399142853 Bug: b/447647367 Test: no unexpected regressions in dEQP-EGL.* and dEQP-GLES* Test: dEQP-GLES3.functional.polygon_offset.* pass Change-Id: I8f830632b4caf2e63a3ae87e15825e21476bf595 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6992252 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yiwei Zhang <zzyiwei@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi e5b33850 2025-09-26T14:59:20 Translator: Fail earlier if main() is not present. The IR assumes that main() is available on successful parse. Additionally, in preparation for IR removing a check that the AST root is set up, a compile failure to that effect is turned into an assertion. The AST generated before IR is logically only used for validation purposes, so the compiler cannot rely on it to generate an error. Bug: angleproject:349994211 Change-Id: I5d4501b52fed8214213a4ae1dada923decee9a8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6991529 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 1f723b35 2025-09-26T09:40:45 Tests: Add Puzzle & Dragons trace Test: angle_trace_tests --gtest_filter=*puzzle_and_dragons Bug: b/447599643, b/448110252 Change-Id: Ib7c167e776f5b3a64a3932b565f2984a0c6ac915 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6989949 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi f3405af0 2025-09-25T13:45:08 Translator: Fix gl_in redeclaration This was seemingly untested, and had multiple issues: * GLSL generation would output `gl_in gl_PerVertex { ... } gl_in;` * SPIR-V generation would redeclare `gl_in` despite one already existing. * If sized after declaration, the redeclared `gl_in` was referencing a different variable than the resized one. Bug: angleproject:42264111 Bug: angleproject:349994211 Bug: angleproject:447556589 Change-Id: Id63912b68625bafcc64197807b1c8a86e6f952b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6985323 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Chris Dalton f95cbef4 2025-09-07T17:50:37 Reland "Add a "noncoherent" layout qualifier to PLS" This is a reland of commit ef9c5ce43110f4f8ba56124bdee927944ce3ddd1 with an invalid assert removed. Original change's description: > Add a "noncoherent" layout qualifier to PLS > > Raster ordering can be expensive. If an app knows the geometry in a draw > does not overlap, it can mark the PLS planes as noncoherent and opt for > using barriers instead. > > Bug: angleproject:40096838 > Change-Id: I2d686c2e64f51940face186637a9fcadcc251bef > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6923300 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Kenneth Russell <kbr@chromium.org> > Commit-Queue: Chris Dalton <chris@rive.app> Bug: angleproject:40096838 Change-Id: I55077a973063427dfb0d510c87e75ec86ce8bb43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6991929 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 35fade1e 2025-09-29T11:45:11 Suppress failing tests Bug: angleproject:444980424 Bug: angleproject:40096874 Change-Id: I7f835f40fb685fb7122e921db8e047f3789c37f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6995361 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi 549e9ee0 2025-09-26T18:15:26 Capture/Replay: Re-enable passing tests: Bug: angleproject:404418769 Change-Id: I4216a6206ec3d96a75ddd5177995ee26d539d73e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6990630 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Tim Van Patten 7a7681cc 2025-09-23T16:36:43 tests: Require GL_EXT_fragment_shading_rate_primitive Shaders can only reference the built-in gl_PrimitiveShadingRateEXT if the extension GL_EXT_fragment_shading_rate_primitive is supported. However, the test ShadingRateEXTTest.FragmentShadingRateBlend uses a shader that references the built-in without checking if it's available first. Skip the test ShadingRateEXTTest.FragmentShadingRateBlend if the extension GL_EXT_fragment_shading_rate_primitive is not available. Bug: b/446958061 Test: angle_end2end_tests --gtest_filter=ShadingRateEXTTest.* Change-Id: I11d7086a30db704c560c7446b4b7d997bb54b578 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6976660 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu 020c8ea3 2025-09-26T12:35:25 Disable convertLowpAndMediumpFloatUniformsTo16Bits on non-ARM devices It is unknown if other GPUs need this explicitly 32-bit to 16-bit casts, and the performance impact of this feature needs to be verified across different GPUs. Bug: b/405795981 Change-Id: I1b450aea58d6f4a20eddac5c9edceb4ebac4d999 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6990532 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 6218bbd4 2025-09-26T12:20:39 Vulkan: Make min submit command count dynamic * Turned the constant submit count threshold to a variable that can be set for different devices independently. * Added feature flag to enable forcing submission for certain GL commands, such as Clear and Invalidate. * If disabled, it would treat all commands the same and submit at the count threshold without exception. Bug: b/422507974 Change-Id: Ib13d36adfdcf75aa865dafadc279287f4a4bd1c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6990531 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 18f28e59 2025-09-25T13:41:45 Translator: Mark redeclared gl_Position/PointSize as built-in When redeclared according to EXT_separate_shader_objects, these variables were given a UserDefined symbol type. While this doesn't affect SPIR-V (with Vulkan being the only backend that supports EXT_separate_shader_objects), it does affect the rest of the AST, including GLSL generation which would output _ugl_Position if support for the extension is enabled. Bug: angleproject:42265086 Bug: angleproject:349994211 Change-Id: I04d088017dbe6e32bfee675f0124c4cc3ffdefc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6985322 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tingwei Guo 94777428 2025-08-08T10:36:22 Shading rate should be {1,1} when enabled PER_SAMPLE According to spec, if FETCH_PER_SAMPLE_ARM is enabled, the fragment shading rate is set to {1,1}. Bug: angleproject:437957110 Change-Id: I3ea6958f1aaec5f13923f62001906c7c6c71e09e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6839957 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Tingwei Guo <tingwei.guo@arm.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Mark Lobodzinski 1ca9e7fb 2025-09-25T15:23:48 Tests: Add Harry Potter Magic Awakened trace Test: angle_trace_tests --gtest_filter=*harry_potter_magic_awakened Bug: b/441547450 Change-Id: Ie804ef3dc8c6d6d17f041dadab0f4fb58a27d867 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6986843 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 193e9cda 2025-09-25T15:26:39 Revert "Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing" This reverts commit d917f77130e5194e82418f3bdaa2cd5b2af55c03. Reason for revert: Google Meet Regression https://crbug.com/445863166 Original change's description: > Vulkan: Simplify/Fix DmaBufImageSiblingVkLinux import probing > > Remove the multi-format probing logic in DmaBufImageSiblingVkLinux. > Use the renderer’s base VkFormat and a single check with > VkImageFormatListCreateInfo, instead of looping over mVkFormats with > mutable/non-mutable combinations. This cuts down redundant queries > and streamlines initImpl. > > Also, this CL fixes some issues occur when mapping DRM format into > Vulkan backend formats. > - Default to SampleOnly but prefer Renderable if the modifier properties > exposes both sampling and rendering, since usage at import time is > unknown. > - Fix emulated-format handling issue by using getIntendedFormatID() and > getActualImageFormatID() instead of deriving both IDs from VkFormat with > GetFormatIDFromVkFormat() directly. > > Bug: angleproject:442313595 > Bug: angleproject:426475684 > Change-Id: Ia38d8e7901da10948a2c15eb284b055359dd4a2d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6904888 > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: mohan maiya <m.maiya@samsung.com> Bug: angleproject:442313595 Bug: angleproject:426475684 Bug: chromium:445863166 Change-Id: I530e9b363a2e25ec2325e3933a409d0aae9940c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6986844 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>