src/libANGLE


Log

Author Commit Date CI Message
Jeff Vigil a7877665 2025-06-02T08:13:30 Fix drm format and modifier handling Move functions to private Change case on methods to lowercase per style guide Change related methods to use set instead of vector, this saves a copy from set to vector. Initialize formats before supportsDmaBufFormat because queryDmaBufModifiers can be called before queryDmaBufFormats and need to initialize at supportsDmaBufFormats. Bug: angleproject:412730346 Change-Id: I8575bee6e7a6a09d9065ed81acff899e73004764 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6610088 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Panfeng Hou 9a436772 2025-06-04T16:47:51 Vulkan: Add entry points for GL_EXT_fragment_shading_rate Bug: angleproject:420310117 Change-Id: I8a8efad6cad810b2cb0b600106f6496070495605 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6620340 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Mavis Deng 65091427 2025-06-05T14:08:01 Query draw buffer should return NONE for no surface default FB When querying the draw buffer state via glGetIntegerv(GL_DRAW_BUFFER) on the default framebuffer with no surface bound, GL_NONE should be returned. Bug: angleproject:422631118 Change-Id: Iad2f1662692b0a92563e4cfd7fe09437cb40f0c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6619453 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Mavis Deng <mavis.deng@arm.com> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya db962407 2025-06-03T08:00:43 Vulkan: Optimize FramebufferVk::getSamples() Cache value of samples during syncState(...) and return this value on subsequent queries Bug: angleproject:386749841 Change-Id: I21fb2221187c7b2159fed1b271da642ba2552348 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6619019 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Alexey Knyazev f6b40bc8 2025-05-15T00:00:00 Add a missing compile macro Bug: angleproject:406922380 Change-Id: If2d4cc1472b490b3507591f0a6ac940369df5ccb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6624377 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 8c48b502 2025-06-05T02:09:54 Vulkan: Fix deferred clear vs robust init vs invalidate The DIRTY_OBJECT_DRAW_ATTACHMENTS bit, when handled, goes over framebuffer attachments and requests that they be cleared. This is done only with robust init. The DIRTY_OBJECT_DRAW_FRAMEBUFFER bit, when handled, results in staged updates to be applied to the attachments. When syncDirtyObjects is called, the above bits are handled. If we end up in a situation where DIRTY_OBJECT_DRAW_ATTACHMENTS is set, but not DIRTY_OBJECT_DRAW_FRAMEBUFFER, the following happens with Vulkan: - Handle DIRTY_OBJECT_DRAW_ATTACHMENTS - TextureVk::initializeContents - ImageHelper::stageResourceClearWithFormat - Observer message to TextureVk->Texture->Framebuffer->Context - Context sets DIRTY_OBJECT_DRAW_FRAMEBUFFER - However syncDirtyObjects does not notice this bit, as it has cached the dirty objects and is in the middle of looping over them In the above scenario, the call that results in syncDirtyObjects does not process the draw framebuffer (if not already dirty for some other reason), meaning the clear is not applied _before_ the current operation but after it (whenever framebuffer is synced next). In this change, I attempted to ensure that if DIRTY_OBJECT_DRAW_ATTACHMENTS is ever dirty, DIRTY_OBJECT_DRAW_FRAMEBUFFER is also dirty. There were a few operations that could theoretically lead to this which are fixed by this change. The particular one that revealed the bug was State::syncDirtyObject syncing only the FRAMEBUFFER bit and leaving the ATTACHMENTS bit for the unsuspecting following operation. The aforementioned assertion is not included in this change however, as it revealed one unresolved issue with the d3d backend where DIRTY_OBJECT_DRAW_ATTACHMENTS is not set, but processing DIRTY_OBJECT_DRAW_ATTACHMENTS sets it while dirty bits are being processed. Bug: b/381284577 Change-Id: If3c35fbade069ae75f66dd6d4df5d73882a08a93 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6621059 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 92dec961 2025-05-15T00:00:00 Enforce validation consistency for lockless entry points Bug: angleproject:406922380 Change-Id: If4e6051d0ac465f4ae8abca0a62cad14d1d739b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6624114 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya ef31b3ed 2025-06-04T12:00:04 Vulkan: Selectively dirty DIRTY_BIT_SAMPLE_SHADING When program executable changes dirty DIRTY_BIT_SAMPLE_SHADING bit if either the current or previous program enabled per sample shading Bug: angleproject:386749841 Change-Id: I82aa7df29473e455aa68dfba9fefdb1bc712a78d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6622156 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jiaqi Li 88ea74bf 2025-05-30T14:17:09 Add another condition to call copyBufferDataToImage directly To directly copy from a buffer, it's necessary that the buffer does not need conversion. Add this condition to the check function. Add related end2end test. Bug: angleproject:421288695 Change-Id: Id57df32f91a8f385bc07b2788149cc4478ccbab4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6605140 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jiaqi Li <Jiaqi.Li@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Xiang Wang e877e655 2025-06-02T17:02:36 Reland "Suppress VUID-VkRenderPassBeginInfo-renderPass-00904" This reverts commit 8c75960e034a09bad67ece528c99e202bed69b64. Reason for revert: retry dry-run without revert Bug: b/303441816 Original change's description: > Revert "Suppress VUID-VkRenderPassBeginInfo-renderPass-00904" > > This reverts commit f8f9847771fa86589da29527c806d89e6f92c7a9. > As the issue is no longer reproducible on a P25 device with > latest ANGLE. > > Bug: b/303441816 > Change-Id: Iae86b3f4e30609cd5b1aedb4293192b06be71919 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6614157 > Commit-Queue: Xiang Wang <xwxw@google.com> > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Bug: b/303441816 Change-Id: Ib447a5af33bd17f891a8db99766fc8f275162a6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6614164 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Xiang Wang <xwxw@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Xiang Wang 8c75960e 2025-05-30T16:06:54 Revert "Suppress VUID-VkRenderPassBeginInfo-renderPass-00904" This reverts commit f8f9847771fa86589da29527c806d89e6f92c7a9. As the issue is no longer reproducible on a P25 device with latest ANGLE. Bug: b/303441816 Change-Id: Iae86b3f4e30609cd5b1aedb4293192b06be71919 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6614157 Commit-Queue: Xiang Wang <xwxw@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Serdar Kocdemir b1359277 2025-05-14T22:53:36 Declare lavapipe device type Fixes 'Unknown GPU architecture' warning when using lavapipe driver with guest side ANGLE enabled on the emulators. Also treats lavapipe similar to swiftshader for test coverage purposes. Bug: b/417791087 Test: run goldfish emulator with '-gpu lavapipe' Change-Id: I40002ce191aa49f08d887c066321c4d0c27f2738 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6547537 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu f000acf8 2025-05-28T12:37:20 Vulkan: Remove suppressed VVL errors that no longer applies on bots All the devices on bots support VK_ATTACHMENT_STORE_OP_NONE. To pass the bot, we no longer need to suppress the VVL errors that only occur on devices where VK_ATTACHMENT_STORE_OP_NONE is not supported. Remove the error messages from the suppression list. Bug: angleproject:42264496 Bug: angleproject:42265159 Change-Id: I47bfcb6cff77ae68b1755e8e0105411f31f713e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6598217 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Tingwei Guo ef29d42e 2025-05-22T15:52:49 Support ASTC decode mode extensions in ANGLE Added support for GL_EXT_texture_compression_astc_decode_mode and GL_EXT_texture_compression_astc_decode_mode_rgb9e5 in ANGLE. Also added corresponding end-to-end tests for ASTC decode mode queries, including ASTC decode mode queries and rendering with ASTC texture formats with different decode modes on GL_TEXTURE_2D works. Bug: angleproject:419403188 Change-Id: I0f2dced8468c4e25597740d1de346b2f699bb81e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6575285 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Mohan Maiya 58f21f8f 2025-05-29T07:53:02 Vulkan: Optimize ProgramExecutableVk::bindDescriptor(...) Cache valid descriptor set indices in a bitset, this helps eliminate branches within loops and makes for more readable code Bug: angleproject:386749841 Change-Id: I06fbf529ceb6c8ece9313b3b5e9edd6c6b63542b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6601733 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Geoff Lang 433906d7 2025-05-29T16:22:18 WebGPU: Protect against null compilation info. compilationInfo is an optional parameter of this callback. Bug: chromium:413078308 Change-Id: I12770c566b3daad5eaf8d6c8b66e464a85da06f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596988 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Kai Ninomiya 7ddc219f 2025-05-28T22:25:37 WebGPU: Handle Dawn breaking change in QueueWorkDoneCallback Needed in order to update Dawn to match the standard webgpu.h, here: https://dawn-review.googlesource.com/c/dawn/+/243697 Bug: chromium:414868699 Change-Id: Ib52c0e32b685ef3f9f05fe1fe549ab16e8eec610 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6600550 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kai Ninomiya <kainino@chromium.org>
Alexey Knyazev 8dbb0997 2025-05-15T00:00:00 Autogen support checks for ANGLE_base_vertex_base_instance Bug: angleproject:409484297 Change-Id: Id730b55709e27910f2908294637e17cde9a791b8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6597178 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 7855312a 2025-05-15T00:00:00 Adjust multi draw validation * Fixed validation of negative drawcount for all MultiDraw*ANGLE entry points. * Added missing extension checks to MultiDraw*BaseInstanceANGLE entry points. Fixed: angleproject:420956723 Change-Id: I3a058471446cd96a883970d4e38ba5af2fa07a8c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6597176 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 79cef542 2025-05-15T00:00:00 Autogen EGL image extension entry points Bug: angleproject:409484297 Change-Id: I0e4a83c5e902f010a66fefa4fa6cc4169ab5529f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596617 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 4c964bc7 2025-05-15T00:00:00 Roll third_party/OpenGL-Registry/src/ 5bae8738b..200cea403 (74 commits) https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry/+log/5bae8738b23d..200cea4030cb Additional changes: * Removed obsolete workarounds for mismatching signatures between CreateShaderProgramvEXT and CreateShaderProgramv. * Aligned GL backend bindings for GL_OVR_multiview entry points with the specs. * Updated include/GLES2/gl2ext.h. Bug: angleproject:409484297 Change-Id: Ifbb63dcc4bad312b22a368455a121e088b346fab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596941 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 6462880b 2025-05-15T00:00:00 Autogen support checks for query extensions Bug: angleproject:409484297 Change-Id: I91e6b7318c62868e65d48ceb380b7c2d53c447ac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6596569 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 392dc591 2025-05-15T00:00:00 Remove GL_CHROMIUM_sync_query Fixed: angleproject:420627279 Change-Id: I26dac7c55a7cf6b04121658144e1387be65d2569 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593552 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Robic Sun 88f1a668 2025-05-20T10:35:36 Query sample count by getting image format props ANGLE should query the image format properties to set TextureCaps.sampleCounts based on internalformats. Bug: angleproject:418815176 Change-Id: I7718121008acd9bb9bbb9964af5842646d7a689a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6564528 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Robic Sun <Robic.Sun@arm.com> Reviewed-by: Charlie Lao <cclao@google.com>
Mohan Maiya 90668ecf 2025-05-25T10:51:52 Vulkan: Reset uniform buffer dirty bit on program change When a program changes all of its non-texture shader resources are invalidated, there is no need to re-invalidate uniform buffers. Bug: angleproject:386749841 Change-Id: I7e941784c40046cef3a2ce297e6941a963b3a8dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6583476 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuxin Hu eafcbbf9 2025-05-27T11:24:17 Vulkan: Reformat VVL error message Remove the VVL skip messages that no longer apply. Set the messageContents1 and messageContents2 to nullptr for ease of clean up later. Bug: angleproject:399191283 Change-Id: I6d4477a6c401e6b7d2915b1fc574413be31fdc9b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6594251 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 6542fea9 2025-05-07T17:28:45 Vulkan: Fix SpirV Error in Tessellation Control Shader When feature varyingsRequireMatchingPrecisionInSpirv is enabled, in the generated SpirV, if the shader output varying precision needs to be adjusted, we create a new shader varying to replace the original shader output varying, and save the original shader output varying to the replacement shader output varying at the end of the function. However, this does not work for tessellation control shader, because the SpirV generated will perform following equivalent peudo code: layout (vertices=3) out; in mediump float tc_in[]; out mediump float tc_out[]; highp float original_out[]; void main() { original_out[gl_InvocationID] = tc_in[gl_InvocationID]; // some other code in between tc_out = original_out; } The last line will attempt to write to all indice of tc_out. However, according to the spec, "each tessellation control shader invocation may write only to those outputs corresponding to its output patch vertex. Tessellation control shader must use the special variable gl_InvocationID as the vertex number index when writing to per-vertex output variables." This change fixes the problem by keeping the precision of tessellation control shader output as it is, and adjust the precision of tessellation evaluation shader input instead. Bug: b/42266751 Change-Id: I398545e2cbbf703c716d6738f1ba278baac4171f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6521225 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Kimmo Kinnunen 27a1b2c9 2025-03-13T09:10:54 Metal: Fix crash with 3d tex, alpha, depth Fix a crash when generating mipmaps for a 3d texture that has mipmaps with w,h == 1, i.e. depth > max(2*w, 2*h). Bug: angleproject:419755713 Change-Id: I7bf7f1f71c03b2bf6f8a30df30dc77ad06d433fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580167 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com>
Geoff Lang dac0ef51 2025-05-27T18:36:56 WebGPU: Add a feature to avoid wgpuInstanceWaitAny Synchronous waiting is not available in Chrome's renderer process yet. Add a temporary feature to avoid some WaitAny calls and just log errors instead. Bug: angleproject:413078308 Change-Id: I67e54dfcfc093fd250da8cc616c05d44b78c8d64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6593531 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mavis Deng 2a18fdbf 2025-05-21T16:14:51 Fix sync issue between XFB output and UBO input For the following scenario, where the first draw writes to the transform feedback buffer and the second draw reads from the same buffer as UBO, it is necessary to end the render pass between the two draws and add a barrier. // xfb write glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, xfb); glBeginTransformFeedback(); glDrawArrays(); glEndTransformFeedback(); // Draw with same buffer as UBO glBindBuffer(GL_UNIFORM_BUFFER, xfb); glDraw(); Bug: angleproject:418568423 Change-Id: Ia294d174111c6104b55762590ec26056ee759b53 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6572198 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 7470cae4 2025-05-15T00:00:00 GL: Do not emulate EXT_base_instance If a driver does not support the corresponding commands, do not expose the extension at all, regardless of the enabled features. Bug: angleproject:355645824 Change-Id: Ideaae32e401c169690ca3aca6e437443a4b038f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580170 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang f0c46b2a 2025-05-25T10:44:23 WebGPU: Do not set autoresizingMask on the iOS Metal Layer autoresizingMask is not a member on iOS builds. This mirrors the window surface in the Metal backend. Bug: angleproject:342213844 Change-Id: I8b5cfbb2b7f7af4f3284ddd7055e68e762c77883 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6584993 Reviewed-by: Colin Blundell <blundell@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 4b375fe5 2025-05-23T18:44:54 WebGPU: Fix NoOpErrorScope constructor. We would always build with asserts enabled on our bots and missed that this constructor did not match the ErrorScope constructor. Bug: angleproject:342213844 Change-Id: Ieb73e6e1b0a0359b0ad336f14b7b9580c2ecc00b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580169 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 61e383dc 2025-05-23T18:41:57 WebGPU: Fix build on iOS and ChromeOS. Make sure we return a NativeWindowSystem in all branches. Build the Metal window surface on iOS. Bug: chromium:419793882 Change-Id: Ic829c83b71c18df9907ef729320377d82958f6ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6580168 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 275745ff 2025-05-23T12:59:03 Vulkan: Fix warning about shared present mode support An incorrect warning was issued about shared present mode being requested without support for it, even if shared present mode was _not_ being requested. Bug: b/412446258 Change-Id: I33f4ea9bcbd09695375010da93a68b375cfc8c8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578819 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 525757d6 2025-05-22T16:32:32 Vulkan: Reformat VVL Error Message Change the error message to use the extraProperties field. Set the messageContents1 and messageContents2 to nullptr for ease of clean up later. Bug: angleproject:394598470 Change-Id: I0b7aec0b7e9a6e5206c89caae712e76db3338c4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6581371 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Kimmo Kinnunen 150f1242 2025-03-11T18:34:37 Metal: Provoking vertex conv. reads out of buffer The provoking vertex helper would encode the addresses of index count and primitive count variables, not their values. This would cause the provoking vertex conversion shader to read overly many indices. Not testable easily from the API, as the excessive read is hard to test. Would cause context loss on the existing tests when run with validation. Bug: angleproject:419755715 Change-Id: Id81ecc66513c0eac1e95d11937f12d9bebb5e11e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578202 Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roberto Rodriguez 571450df 2025-05-15T16:24:12 Depth value not clamped for clearBufferfi and clearBufferfv Clamp depth values to [0,1] for calls to glClearBufferfi and glClearBufferfv. Bug: angleproject:418030862 Change-Id: I6f5393da863a17c5fd1d78f1b800df0e61d3dc60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552161 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang c1e806de 2025-05-22T15:59:01 WebGPU: Allow providing an external WGPUDevice. Update EGL_ANGLE_platform_angle_webgpu with a new parameter which allows initializing DisplayWgpu with a pre-existing WGPUDevice. The adapter and instance are queried from this device. Bug: angleproject:42266898, angleproject:414827222 Change-Id: I3159ebe19750e75c5cf9aa395332f48385fdb4d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6578196 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Geoff Lang 3cf7a604 2025-05-17T19:39:08 WebGPU: Add extensions for importing external textures Add EGL_ANGLE_device_webgpu which exposes the adapter and device used by ANGLE internally. Add EGL_ANGLE_webgpu_texture_client_buffer which allows importing external WGPUTexture handles if they share the same device as ANGLE (queried from EGL_ANGLE_device_webgpu). Bug: angleproject:418022112 Change-Id: I0683d36b84a0f8e0e9b68a5ec0d3aa8b7a95152c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6553063 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Charlie Lao 8d6d127a 2025-05-20T12:26:56 Vulkan: Avoid some loops in VertexArray::onBufferChanged Before this CL, VertexArray::onBufferChanged() loops over bufferBindingMask bits and calls onSubjectStateChange. In this CL, VertexArray::onSubjectStateChange is embedded into VertexArray::onBufferChanged(). DIRTY_BIT_ELEMENT_ARRAY_BUFFER and DIRTY_BIT_ELEMENT_ARRAY_BUFFER_DATA is re-arranged so that we can map bufferBindingMask directly to VertexArray::mDirtyBits. This especially useful when one buffer is bound to multiple indices in the VertexArray. This CL also removes angle::ObserverInterface from VertexArray, since it no longer observes anything. ASSERT is added in gl::Buffer::mContentsObservers to ensure it only contains BufferTexture, since vertexArray is no longer using the subject/observer. Bug: angleproject:400711938 Change-Id: Ie6e7159d7a89f0da5e1b7ca0a9dbe60a1e6c682f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6569638 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 3f012a43 2025-05-14T17:11:06 Vulkan: Move VertexArray::ElementBuffer away from observer Right now, VertexArray's element buffer is always observing buffer's change. In previous CLs, we have moved vertex array away from subject/observer usage. This CL moves element buffer away from subject/observer as well. Since the gl::Buffer tracks buffer's binding to each context's current vertex array's binding point, kElementArrayBufferIndex is added to VertexArrayBufferBindingMask bits so that the element buffer is tracked exactly the same as other vertex array buffer bindings. The VerextArray code has been modified to handle this special bit, since element buffer has its own binding point VertexArrayState::mElementArrayBuffer as opposed to VertexArrayState::mVertexBindings. After this CL, VertexArray object should be completely off subject/observer usages. Bug: angleproject:400711938 Change-Id: I662ddfabc95034bdc7734939c944ab033f41801c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552160 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev bdaf87cf 2025-05-15T00:00:00 Enforce validation consistency Asserted that: * Exactly one error is generated if validation fails. * No error is generated if validation passes. Supported only for entry points with autogenerated context support checks. Lockless entry points are excluded for now. Bug: angleproject:406922380 Change-Id: I7549c8011768b1aa311d843b1658005ca3aba3b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6568559 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 3c0b2787 2025-05-17T19:36:42 WebGPU: Implement EGLImages Implement EGLImages for WebGPU. Cube maps, and non-zero mip sources are not supported yet. Bug: angleproject:418022112 Change-Id: I59955aee907167a1829f870b7d0730a6269d814c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6557130 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Charlie Lao 937cf23c 2025-05-13T16:11:47 Vulkan: Remove VertexArrayBufferContentsObservers When vertex array needs to convert buffer's data, right now it uses Subject/Observer to subscribe notifications from buffers about the data change. Since we always dirty all binding point when we bind VertexArray, or app has to rebind buffer to vertex array if its on the other context, this notification really is only needed for the current context's vertex array. In prior CLs we already moved notification from buffer to the current context's vertex array away from Subject/Observer usage pattern. This CL did similar things to VertexArrayBufferContentsObservers::mContentsObservers. VertexArrayBufferContentsObservers has been deleted in this CL. Each VertexArrayImpl now tracks the need of content observer with a bit mask of each bindingIndex (which is tracked by mContentsObserverBindingsMask). When a buffer's content changes, gl::Buffer will retrieve this bit mask from backend and pass it to the current gl::Context, which sends to current VertexArray object, which then set proper DATA dirty bits on VertexArray based on the binding bit mask. If back end think it does not need any data conversion, then the bit mask is zero and nothing will be done. This further removes dependence on subject observer, which enables us to avoid taking shared context lock for glEnableVertexAttribArray and glDisableVertexAttribArray. Bug: angleproject:400711938 Change-Id: Ieb0c09c042a560dd121242b63ec24478482399b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6549157 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang dc43c3ba 2025-05-17T19:28:20 WebGPU: Implement Renderbuffers Implement the RenderbufferWgpu class. Add the concept of a non-owned webgpu::ImageHelper for supporting EGLImage in the future. Fix some missing texture formats that now get tested with dEQP. Bug: angleproject:418022112 Change-Id: Ie1239ec581e62044e7c8723fc33cb7565d50575c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6557129 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang f537c6d9 2025-04-28T17:30:13 Allow passing a DawnProcTable to DisplayWgpu. Bug: angleproject:42266898, angleproject:414827222 Change-Id: Ibf381461881244c9a874f2d24d3248995ea0760c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6496389 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Geoff Lang 70b90f22 2025-05-09T16:51:31 WebGPU: Use the C API only from the proc table Define WGPU_SKIP_DECLARATIONS so that errors are generated when using the global c or cpp functions. The default proc table getter requires the cpp API is visible. Hide this in a new wgpu_proc_utils so the rest of the WebGPU backend cannot see those APIs. Bug: angleproject:342213844 Change-Id: Ia1e9bfd25b0bb538cebeaa0efe7b9d2eeabc990d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6534317 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Alexey Knyazev 720f6bbe 2025-05-15T00:00:00 Fix attribute and uniform name validation * Fixed null name error messages to refer to correct parameters. * BindUniformLocation * Added name checks for null and all reserved prefixes. * Fixed error code for reserved prefixes. * GetAttribLocation & GetUniformLocation * Moved reserved prefixes check to the Context. * Fixed and expanded tests. Fixed: angleproject:418986804 Change-Id: I62760b3010fd38ee2e31e4ff88d9910647b329dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6568552 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang 3158d638 2025-05-06T17:08:56 WebGPU: Store the WebGPU proc table in wrappers Instead of relying on the global WebGPU functions, pass the proc table to the object wrappers. Bug: angleproject:342213844 Change-Id: I79a5e819ffac5b366fed0a159a6cef116b5e82b3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514676 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Yuxin Hu b4d39a07 2025-05-19T11:07:08 Reformat VVL Error Message Tests failed in this manual roll https://chromium-review.googlesource.com/c/angle/angle/+/5689521 no longer runs into the SYNC-HAZARD-WRITE-AFTER-WRITE VVL error. Remove the VVL error from the skipped VVL error list. Bug: angleproject:352094384 Change-Id: I8b0a4baebd7276fc6d42e0357a3b6f49adb0b4f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6564666 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev 5fd79e6a 2025-05-15T00:00:00 Remove unused parameter from ValidateGetVertexAttribBase Bug: angleproject:409484297 Change-Id: I98fdfe8dbaeb6bc08a0c0a7a4a032850fcbdd37f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6558251 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xinyu Fang c601f0e7 2025-04-08T17:56:22 Add extra validation of null pointers for certain APIs Bug: angleproject:409110245 Change-Id: I25dfdbdc52cdb0d7d2a91d773a0f3600e370f139 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6440146 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Mavis Deng 30479104 2025-04-28T16:01:46 Add support for GL_EXT_texture_norm16 in glCopyImageSubDataEXT Add the following compatible norm16 formats in EXT_copy_image: RGBA16_EXT RGBA16_SNORM_EXT Bug: angleproject:412517249 Change-Id: I4939705915940dacaf3168acf1a7cc7abb0870ba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6490613 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Mavis Deng <mavis.deng@arm.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton 56becf05 2025-05-16T16:58:34 WGPU: texSubImage2D() should mark textures as dirty TextureWgpu now observes its ImageHelper's edits to staged subresources and notifies its observers (Texture) that it has changed, ensuring TextureWgpu::syncState() is called before draw if glTextSubImage2D() was called earlier. Also ends the current render pass when flushing subresource updates, otherwise if the texture is being used by the current webgpu::CommandBuffer (staged render pass commands), the texture may be updated before the staged commands are actually submitted to the GPU. Bug: angleproject:389145696 Change-Id: I07db566fca970e877a0d3faa3ceb02f8425c799a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6502676 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Yuxin Hu e6231b0f 2025-05-16T10:29:46 Reformat VVL Error Message catalyst_black trace no longer runs into the SYNC-HAZARD-WRITE-AFTER-READ VVL error mentioned in http://anglebug.com/42266390. Remove the VVL error from the skipped error list. Bug: angleproject:42266390 Change-Id: I7e3055e61632e1de42dc24233724f73beefef653 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6557942 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Matthew Denton 4a5e20f2 2025-05-15T11:20:31 WGPU: Round uniform buffers to the alignment of a uniform struct The default uniforms are packed into a struct, and structs in WGPU's uniform address space are always aligned to 16. I.e. RequiredAlignOf (struct S, uniform) = roundUp(16, AlignOf(S)) and AlignOf(S) is at most 16. The uniform buffer should be sized to include all bytes of the struct including the padding bytes at the end. Fixes bugs like "The shader uses more bytes of the buffer (224) than the layout's minBindingSize (212)" Bug: angleproject:376553328 Change-Id: I7e52e81a6a6f45470d14e891888627ac6d0d9c02 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6549155 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Matthew Denton 96c9f065 2025-05-15T19:22:29 WGPU: Flip y for the default framebuffer Bug: angleproject:389145696 Change-Id: I0d527ad3dc24dbca7e9d914b03edacdc257a568f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477137 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Yuxin Hu b74a4714 2025-05-15T10:24:41 Reformat VVL Error Message diablo_immortal trace on swiftshader no longer runs into the SYNC-HAZARD-WRITE-AFTER-READ error mentioned in b/42266309. Remove the VVL error from the VVL error skip lists. Bug: angleproject:42266309 Change-Id: I53a5377ea26541a37dc251717d3f2d08f553a3a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6551848 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Geoff Lang 9b16a3e9 2025-05-05T16:43:19 WebGPU: Remove last references to cpp API Bug: angleproject:414831373 Change-Id: I25c03de40c579bf984d9a905ecf655c82d239811 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512149 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 147f4810 2025-05-05T16:33:19 WebGPU: Use WebGPU C API for Display and error utils Bug: angleproject:414831373 Change-Id: I56f90e453a746399c65956cc73eb4fcb020bcb5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512148 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Geoff Lang 1faf6ef2 2025-05-05T15:18:58 WebGPU: Use WebGPU C API for Programs and Buffers Bug: angleproject:414831373 Change-Id: I773f26483f53957bdfb8321b2a557df7febb376c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512147 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang cf0565f2 2025-05-14T17:59:41 WebGPU: Pack render pass descriptors The render pass descriptors stored in FramebufferWgpu contained references to textures that were fragile and depended on the RenderTargetCache keeping the texture views alive. Refactor the desc so that it does ref counting like the cpp interface and clean up some FramebufferWgpu logic around copying descs. Bug: angleproject:414831373 Change-Id: Ibea96e013474cc43aa30909b596b8898ebccef98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6546256 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Amirali Abdolrashidi 6ba47bed 2025-05-13T12:44:06 Vulkan: Use GS input prim type for warmup pipeline For graphics pipeline creation, the primitive topology should be set in the input assembly state create info (unless for dynamic state). This can come from the primitive mode in ProgramExecutableVk (prepareForWarmUpPipelineCache()). Currently, the patch mode is used if there is a tessellation shader, and triangle strip otherwise. However, if there is a geometry shader without tessellation, this can lead to a VVL error on certain platforms if the primitive mode for the pipeline does not match the input primitive type for the geometry shader. * Updated the primitive mode in the above function for the case of geometry shader without tessellation shaders, to be set to the input primitive type of the GS. * This will be used later for graphics pipeline initialization for the input assembly state info (in case of vertex input). * (GraphicsPipelineDesc::initializePipeline()) * Removed the following VVL suppression: VUID-VkGraphicsPipelineCreateInfo-pStages-00738 Bug: angleproject:303219657 Change-Id: I8d804fd87438033071261a5002a4155e6d62d27c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6541872 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 69841d3c 2025-04-30T23:55:16 WebGPU: Use WebGPU C API for Textures and Framebuffers Bug: angleproject:414831373 Change-Id: I6b547a726b22e8eb5d407e2d6340b1d18bf39033 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6503024 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang d82036f5 2025-05-15T09:43:03 WebGPU: Add missing destructor for object wrappers. Bug: angleproject:414831373 Change-Id: I65aa17b5cbac2564140491744461bc94e9ae9f2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6551496 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Alexey Knyazev ad05f93b 2025-05-08T00:00:00 Vulkan: Fix debug marker handling Used passed length in InsertEventMarker and PushGroupMarker commands because markers do not have to be null-terminated. Bug: angleproject:408709155 Change-Id: I6221223dabc1b01dbc175bfb7f5aeb41b9e67c6f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552401 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 1e7442b2 2025-04-24T00:00:00 Fix KHR_debug operations DebugMessageInsert: * Used correct error message when the severity parameter is invalid and aligned parameter validation order with the command declaration. DebugMessageInsert and PushDebugGroup: * Fixed message length validation. * Fixed message insertion when the explicit length is zero. Object[Ptr]Label: * Fixed label length validation. Added new tests. Fixed: angleproject:417621246 Fixed: angleproject:417684698 Change-Id: I00cd939a83c5b9ae7dddefc51222278615bc0df9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6544152 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev a06e4d49 2025-05-08T00:00:00 Metal: Implement InsertEventMarker * Added a missing command buffer call. * Renamed related symbols to match Metal API. * Removed ConvertMarkerToString helper because marker length is now handled in the frontend. Bug: angleproject:417857731 Change-Id: Ifa9edaafaf16af9913420554e5847a5a25b8d2f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6549282 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Hailin zhang cc02a537 2025-05-05T22:12:42 Vulkan: move the recycled fence reset from fetch to destroy. move the fence reset from main thread to gc thread to avoid blocking at gfxstream. Bug: b/400480303 Change-Id: I7940fcb4a1edad5e388f1afdde97a3261a5cc4d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6519236 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Alexey Knyazev 8d75490a 2025-05-08T00:00:00 Update zero length for debug marker commands If the marker length passed to InsertEventMarkerEXT or PushGroupMarkerEXT commands is zero, compute the actual marker length in the Context so that the backends could always rely on the passed length. Bug: angleproject:408709155 Bug: angleproject:417757002 Change-Id: Ifa36d8d16c7c808855a7500556b569587cdc89a1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6547538 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 74bf9527 2025-05-14T13:52:24 Reformat VVL Error Message diablo_immortal trace on swiftshader no longer runs into the SYNC-HAZARD-WRITE-AFTER-WRITE VVL error mentioned in b/42266309. Remove the VVL error from the VVL error skip lists. The trace does run into a different SYNC-HAZARD-WRITE-AFTER-WRITE error and another SYNC-HAZARD-READ-AFTER-WRITE error, which are already covered by two existing entries in the VVL error skip lists, and this change updates the comments accordingly. Bug: angleproject:42266309 Change-Id: I3466d8d8320750c7edef52c6629fb2dd377da284 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6548199 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao ad18dc93 2025-04-02T16:23:50 D3D11: Remove the message from Buffer11 to gl::Buffer This CL removes the D3D back end's usage of Subject/Observer from Buffer11 to gl::Buffer. BufferFeedback argument has been added to various functions and directly applied to gl::Buffer object (which will propagate to VertexArray and texture/XFB if needed). gl::Buffer::mImplObserver is removed in this CL, and no longer a Observer. Bug: angleproject:400711938 Change-Id: Idf4d423904d057ab3a1e52acf8e2496df606cb89 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514288 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao f5f6704c 2025-03-27T13:58:14 Vulkan: Remove mArrayBufferObserverBindings Right now VertexArray observes gl::Buffer change. Buffer change will end up with many virtual function calls on VertexArray. GL spec says that when buffer changes, only the current context's vertex array have to pick up the changes without any GL API call. All other context's vertex array must issue bind calls to pick up the buffer's state change. This CL removes VertexArray::mArrayBufferObserverBindings as gl::Buffer's observer. The Buffer's change is directly applied to current context's vertexArray (Note that gl::VertexArray still have mContentsObservers which is not touched in this CL. Once the content observer also removed, there will be no observer calls into gl::VertexArray which allows us to do further optimizations on vertex arrays.) In order to further reduce the overhead, we also tracks vertex array's binding index in the buffer. When a buffer is bound to current vertex array, the bit is set at that index and bit is removed when buffer is unbound. When vertex array becomes un-current, all bits are cleared. Since a buffer could be bound to multiple context's current vertex array, that bitmask is tracked for multiple contexts with the contextID. Bug: angleproject:400711938 Change-Id: I9ad91573e101d7bf11a742a3d823bd8965f43395 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6419663 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev d0616d54 2025-04-24T00:00:00 Autogen support checks for multiview commands Bug: angleproject:409484297 Change-Id: Ia86f30922480dd1d8793868581629669cc83719f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6547155 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 64888cb8 2025-04-24T00:00:00 Align multiview extensions usage with the specs As per the specs, the OVR_multiview2 extension requires and implicitly enables the OVR_multiview extension. Cleaned up the extension state checks and added dependency tests. No functional changes. Fixed: angleproject:417173927 Change-Id: I67d2c19f4ed2f2450bf7fe2a92625cc9525ca020 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6535750 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 82c75df3 2025-04-24T00:00:00 Fix GetDebugMessageLog validation Used the same validation for GetDebugMessageLog and GetDebugMessageLogKHR entry points; added tests. Simplified validation redirects for: - ObjectLabel and ObjectLabelKHR - GetObjectLabel and GetObjectLabelKHR - ObjectPtrLabel and ObjectPtrLabelKHR - GetObjectPtrLabel and GetObjectPtrLabelKHR Fixed: angleproject:417493213 Change-Id: Id1fad6c94db78da403e70f40f44630632d375472 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6543489 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 3bbdee0f 2025-03-28T11:55:24 Vulkan: Remove Subject/Observer from BufferImpl Right now the gl::Buffer back end send message to the front end and then gl::Buffer propagate the message to the observers (vertex array, textures, transform feedback). We are seeing many of these kind of message passing (mainly to vertexArray), and each message is a virtual function call. The message call also lacks of context information that we can not do certain optimizations. This CL adopts the new API feedback argument approach for buffer APIs from the back end to the front end. The only difficulty I ran into is D3D backend where the message could be delivered from draw calls. For now the subject/observer code path is still kept in the gl::Buffer, but no back end will use it except D3D11. That will be removed in the later CL when D3D11 switch to use feedback mechanism. BYPASS_LARGE_CHANGE_WARNING Bug: angleproject:400711938 Change-Id: I5fb3b660fd4260b9ba691239ad777b575b31e2ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6408892 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev e4ec23a0 2025-04-24T00:00:00 Fix query object support in EXT_debug_label The GL_EXT_debug_label extension must support labeling timer query objects created on ES 2.0 contexts even if the GL_EXT_occlusion_query_boolean is not supported. Expanded and fixed tests. Bug: angleproject:42263878 Change-Id: If05cf1b6879d44de1cc893ed45d1b877c963dac6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6539570 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9ddb1b7f 2025-04-24T00:00:00 Disable OES_primitive_bounding_box on unsupported contexts The OES_primitive_bounding_box extension requires OpenGL ES 3.1 and must not be exposed on lower context versions. Also made both EXT and OES versions of this extension enableable. Bug: angleproject:42262238 Bug: angleproject:415495316 Change-Id: I5379daa06dba3b2b09d9656ffab15c010fb4870a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6538627 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev bf837e01 2025-04-24T00:00:00 Disable EXT_multi_draw_indirect on unsupported context versions The EXT_multi_draw_indirect extension requires OpenGL ES 3.1 and must not be exposed on lower context versions. Bug: angleproject:42264951 Change-Id: I7afc4541268f62f58bba33637df74efba47218c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6533713 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu e2352b29 2025-05-12T10:55:39 Reformat VVL Error Message TraceTest.life_is_strange no longer runs into below VVL error: {"SYNC-HAZARD-READ-AFTER-WRITE", "type: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, " "imageLayout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL", "usage: SYNC_FRAGMENT_SHADER_SHADER_"}, Remove the VVL error from the skipped message list. Bug: angleproject:42266180 Change-Id: Iddaea23b3afd8bb6238caa6aaadc49eb8469da51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6534653 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Geoff Lang 481000fd 2025-04-30T16:42:39 WebGPU: Move pipeline creation to the C API. Bug: angleproject:414831373 Change-Id: I3c4f7d22bce569d9813a580fd1f3d839ff165976 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6503023 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang ce454fee 2025-04-30T15:24:34 Add RAII wrappers for WebGPU C API objects. To ease the transition, add constructors from the cpp wrappers currently in use. These will be deleted when we have fully moved to the C API. Update the WebGPU CommandBuffer code to use the new wrappers and C API. Bug: angleproject:414831373 Change-Id: I428349d84e1f79725eb836da5bb3d384ae296d75 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6501618 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuxin Hu db33baf4 2025-05-09T14:13:08 Reformat VVL Error Message life_is_strange no longer runs into the SYNC-HAZARD-WRITE-AFTER-READ VVL error it used to, remove the VVL from the skipped VVL entries. The trace does run into another VVL error on Linux AMD GPU, update the comment. Bug: angleproject:42266180 Change-Id: I6010ca1540e1d8774992173c853b904c0b3bd117 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6534138 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Charlie Lao 506f8a95 2025-05-08T17:03:30 Vulkan: Fix incorrect shaderWrite to shaderWrite detection There is an optimization we added in https://chromium-review.googlesource.com/c/angle/angle/+/5719258 that avoids inserting WAW barrier in between two back to back shaderWrite to the buffer, unless it is app introduced barrier via glMemoryBarrier call (i.e, it is app's responsibility to issue such WAW barrier instead of ANGLE). There is a bug in that logic that if there is a vertex read in between two shaderWrite, we will incorrectly treat it like two shaderWrites. That caused we skipped WAR before the second shaderWrite. This CL fix the logic by also looking at read access on the buffer. Bug: angleproject:350994515 Bug: angleproject:416573908 Change-Id: I5bbbeff4d7222a644d1c994bffda7fd9ea292c17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6526949 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Geoff Lang a3f6a9c8 2025-05-05T10:16:53 WebGPU: Don't call destroy on null textures .Destroy requires a valid texture. Bug: angleproject:414831373 Change-Id: I9d586f38a3f1b910b4c14552d3c9a6b43b4a5e22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512850 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev d221cf40 2025-04-24T00:00:00 Adjust EXT_base_instance emulation conditions * EXT_base_instance may be emulated only on the GL backend. Other backends either support it directly or do not support at all. * EXT_base_instance is never exposed to WebGL. Bug: angleproject:355645824 Change-Id: I1edea83d83b1e6865eee8022c7110b05ea37d989 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6527730 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 60d6c94f 2025-04-24T00:00:00 Metal: Implement draw_elements_base_vertex extensions Fixed: angleproject:40096829 Change-Id: I288a38fbfa6a39cd9d683302722ebfaf495ba8db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6527729 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuxin Hu b729fb74 2025-05-08T11:35:46 Reformat VVL Error Message Test Texture2DTest.UploadThenVSThenNewRPThenFS/ES2_Vulkan no longer runs into the VVL error. Remove the VVL error from the skipped VVL message list. Bug: angleproject:42265925 Change-Id: I5d854b8b091847f136c8e57620f8dd8c72d59503 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6525049 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 16b2bf5e 2025-05-06T16:23:24 Vulkan: Only expose ASTC HDR if 3D textures supported Not all hardware supports ASTC HDR for 3D textures. This CL adds a check for each ASTC HDR format, querying the driver for 3D support, and tracking it as a feature. We use that feature when deciding to expose GL_KHR_texture_compression_astc_hdr. Test: dEQP-GLES31.functional.copy_image.compressed.viewclass_astc_8x8_rgba Bug: b/407634958, b/416095435 Change-Id: Iaa6f26e247c7e6c7451f3d4eb8dd7175509bf45f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6515816 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 51dd4087 2025-04-24T00:00:00 Autogen support checks for draw_elements_base_vertex commands Also fixed command support conditions: * With an exception of MultiDrawElementsBaseVertexEXT, command and extension suffixes must match. Updated tests to account for that. * DrawElementsInstancedBaseVertex{EXT,OES} additionally require ES 3.0 or any of the instancing extensions. * DrawRangeElementsBaseVertex{EXT,OES} additionally require ES 3.0. Updated tests to account for that. * MultiDrawElementsBaseVertexEXT additionally requires GL_EXT_multi_draw_arrays. Bug: angleproject:409484297 Change-Id: I50b72ebc7d66128bcfd5671334094b7e90cb329c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6524686 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang 00845fd6 2025-05-06T14:13:18 WebGPU: Do not reuse windows with multiple surfaces Multiple Dawn backends do not handle re-creating a surface for a native window. Instead of working around this by caching in the display, rework our test runner to recreate the OS window and surface instead of just the surface. Release all resources in DisplayWgpu::Terminate. Otherwise they wont be deleted until the display is reinitialized or the test executable terminates. Bug: angleproject:342213844 Change-Id: Ic31264a5e646a54c988ef47ca664d8575fda94eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6515886 Reviewed-by: Liza Burakova <liza@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuxiang Qian 8c8f016a 2025-04-15T17:30:01 Remove part of releaseTexImageInternal in glGenerateMipmap In glGenerateMipmap, actually clearing the ImageDesc and releasing texImage in releaseTexImageInternal is not needed. The following implementation currently is skipped because getImageDesc would return empty ImageInfo. Remove those part and put the part of disconnecting the pbuffer from the texture after generating the mipmap. And end2end test is also added to verify the implementation. Bug: angleproject:410996562 Change-Id: I0d8ccd628b98aa5063df2688e9899319c32fd97d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6461524 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Alexey Knyazev 86ce0f0e 2025-04-24T00:00:00 Add EXT_multi_draw_arrays stubs Bug: angleproject:414506477 Change-Id: Idc3ca950b88c9632268922ec7a311936916c2a43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6522405 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 317f81db 2025-05-01T14:17:47 Fix EGL_RENDER_BUFFER query if EGL_SINGLE_BUFFER unsupported eglCreateWindowSurface() can have the EGL attribute EGL_RENDER_BUFFER specified: EGL_RENDER_BUFFER specifies which buffer should be used by default for client API rendering to the window, as described in section 2.2.2. If its value is EGL_SINGLE_BUFFER, then client APIs should render directly into the visible window. If its value is EGL_BACK_BUFFER, then all client APIs should render into the back buffer. The default value of EGL_RENDER_BUFFER is EGL_BACK_BUFFER. Client APIs may not be able to respect the requested rendering buffer. To determine the actual buffer that a context will render to by default, call eglQueryContext with attribute EGL_RENDER_BUFFER (see section 3.7.4). To support EGL_SINGLE_BUFFER, Vulkan surfaces must support the VkPresentModeKHR value VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR specifies that the presentation engine and application have concurrent access to a single image, which is referred to as a shared presentable image. The presentation engine is only required to update the current image after a new presentation request is received. Therefore the application must make a presentation request whenever an update is required. However, the presentation engine may update the current image at any point, meaning this mode may result in visible tearing. However, this is only available on Vulkan devices that support the extension VK_KHR_shared_presentable_image. Add checking in Surface::initialize() to update Surface::mRenderBuffer to EGL_BACK_BUFFER if the backend implementation does not support EGL_SINGLE_BUFFER. This includes adding supportsSingleRenderBuffer() to query the backend if it supports single render buffer mode, which defaults to False. The Vulkan backend overrides this and the result is based on support for VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR. Bug: b/412446258 Test: EGLLockSurface3Test.WindowMsaaSurfaceReadTest/ES2_Vulkan_NoFixture Test: EGLSingleBufferTest.VerifyMutableRenderBufferKHR/* Change-Id: I4e6d56f01a895a5bd887580e6ffa34d574c87fad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6506764 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 618bc398 2025-04-24T00:00:00 Add EXT_draw_instanced stubs Bug: angleproject:416241733 Change-Id: I6dfb0ff1e941fdd33387e06920c97ba4232e8820 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6519383 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Sunny Sachanandani 8ea69d84 2025-05-07T12:26:48 metal: Synchronize imported IOSurfaces with command buffer We want to skip the various Metal waitUntilScheduled calls in Chromium on single GPU systems and use only shared events for synchronization. However, this doesn't work correctly today because ANGLE can do CPU readbacks from the IOSurface without synchronizing with the command buffer which contains the shared event wait. This is because ANGLE doesn't know about the dependency between the IOSurface texture and the shared event wait in the command buffer. This CL makes BindTexImage mark the IOSurface texture as used so that we wait for command buffer execution if we do a CPU readback. It reuses the setWriteDependency mechanism on mtl::CommandBuffer. Bug: chromium:40273077 Change-Id: I5d480f2c28abbd6d36cf1e1045461c84b3e4a1f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514098 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Mavis Deng 32f3f043 2025-04-28T16:15:15 Return GL_INVALID_ENUM for invalid target of CopyImageSubData From spec: INVALID_ENUM is generated if either srcTarget or dstTarget - is not RENDERBUFFER or a valid non-proxy texture target - is TEXTURE_BUFFER, or - is one of the cubemap face selectors described in table 3.17, if the target does not match the type of the object. Bug: angleproject:412524049 Change-Id: I2110223059db170e8882efc9666654d318b14ed3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6490614 Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Auto-Submit: Mavis Deng <mavis.deng@arm.com> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 8b388145 2025-04-24T00:00:00 Autogen support checks for robust client memory entry points No functional changes. Bug: angleproject:409484297 Change-Id: I9d27f8444b01b7881336ffcf3f480018efbe90e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6519381 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>