src


Log

Author Commit Date CI Message
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>
Andrew Grieve 35356d95 2025-05-06T12:27:32 Use a depfile rather than exec_script to list inputs for commit_id.py Bug: chromium:416002047 Change-Id: Ia7ddd4e5e8ff7cc1e88cce6542f62a314c8e6430 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6511928 Auto-Submit: Andrew Grieve <agrieve@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Andrew Grieve <agrieve@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@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>
Neil Zhang d8ab156b 2025-04-18T10:57:14 Fix glValidateProgram() not work as spec According spec ValidateProgram should detect error: Any two active samplers in the set of active program objects are of different types, but refer to the same texture image unit. Bug: angleproject:414259791 Change-Id: I2ab503b745cffdfb8be1a1ad649432fd8a73f63d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6491669 Auto-Submit: Neil Zhang <Neil.Zhang@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 2d61c576 2025-04-24T00:00:00 Autogen support checks for PLS entry points No functional changes. Bug: angleproject:409484297 Change-Id: I0224ecc29efde87c92c75a8120d0227c95775c1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512841 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Robic Sun b373892b 2025-04-26T20:59:07 Add test using array of array varyings in tessellation shaders For per-vertex variables in the Tess shader that support two-dimensional arrays, when calling GetResourceName, the string-like tt[0][0] should be returned instead of tt[0]. Bug: angleproject:413447006 Change-Id: Iafd316495ca3c254f9424d84cab71c8385b11e03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6490616 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Robic Sun <Robic.Sun@arm.com>
Amirali Abdolrashidi 5c441a53 2025-05-06T13:00:32 Vulkan: Prefer MSRTSS for QCOM devices The feature flag `preferMSRTSSFlagByDefault` was originally added to avoid allocating extra memory if the images are created with the MSRTSS flag by default. If it is disabled, the image will be recreated with the said flag only if it bound to an MSRTT framebuffer. * preferMSRTSSFlagByDefault is now enabled for QCOM driver versions beyond 0777.0. Bug: b/329911999 Change-Id: Iea72f864eac5ecfa97b5c99de5bd66ef09c54c0e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6516037 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu fcfc9760 2025-05-06T11:26:40 Reformat VVL error message The test VulkanPerformanceCounterTest_ES31.TextureSampleByDrawDispatchDraw no longer runs into the VVL error it used to have. Remove the VVL error from the skipped VVL error list. Bug: angleproject:42265504 Change-Id: I8eff929524b3e1bd015d96db2cc45b2c8f331170 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514411 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Aurora Zhang 3cc099da 2025-03-20T16:47:46 Add tests for texelFetch with samplerExternalOES Add two tests to texelFetch in the vertex shader and fragment shader for YUV with samplerExternalOES. The fetch results are expected to be RGB value. Bug: angleproject:405149439 Change-Id: I0a5809b910ac61c678ab240aea8d303e0c9646e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6382116 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi 7447e8ac 2025-05-06T10:33:47 Vulkan: Driver workarounds on Qualcomm Dynamic rendering is disabled on 512.800 due to crashes on some devices. Imageless framebuffers are disabled on 512.805, suspecting cause of crash on some other devices. Bug: chromium:415738891 Bug: chromium:415968761 Change-Id: I71f533c7954b628ce897ed1dac478aed119658e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512663 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev 1c7fa5f8 2025-04-24T00:00:00 Add missing support checks to robust client memory entry points Ensured that implemented RobustANGLE entry points have the same command support checks as their base variants. * ReadnPixelsRobustANGLE requires OpenGL ES 3.2, or any of the robustness extensions. * GetQueryivRobustANGLE requires OpenGL ES 3.0 or any of the query extensions. * GetQueryObjectuivRobustANGLE requires OpenGL ES 3.0 or any of the query extensions. * GetInteger64vRobustANGLE requires OpenGL ES 3.0 or GL_EXT_disjoint_timer_query. * GetBufferParameteri64vRobustANGLE requires OpenGL ES 3.0. * TexImage3DRobustANGLE requires OpenGL ES 3.0 or GL_OES_texture_3D. * TexSubImage3DRobustANGLE requires OpenGL ES 3.0 or GL_OES_texture_3D. Bug: angleproject:410108264 Change-Id: I7bd4b07331a4eaee2b80232a7e54bd7370cee045 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6508731 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 9812b972 2025-03-05T16:25:45 PLS: Validate rendering feedback loops of PLS planes Validate that active textures are not bound as PLS planes in WebGL compatibility mode using the same validation as for regular framebuffer attachments. Update the PLS spec to not generate an error for feedback loops but update the definition of feedback loops to include PLS planes. The WebGL spec is dependent on this definition and makes this feedback loop an error. Bug: angleproject:40096838 Change-Id: I597efef3685da7bfb2a9d149a9ec3bc9d01e6e4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6330519 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Chris Dalton <chris@rive.app>
Alexey Knyazev 27cfdf8e 2025-04-24T00:00:00 PLS: Allow type conversions in state queries The OpenGL ES spec requires data conversions when a query command is issued that returns a data type different from the actual type of the requested state. * Updated PLS state queries to follow the main spec. * Removed PLS state query dependencies on interruptions. * Fixed non-robust command declarations in the extension spec. * Added missing extension support checks to robust commands. * Drive-by: Fixed invalid use of assertions in PLS tests. Fixed: angleproject:414361744 Fixed: angleproject:414506466 Change-Id: I573ab66d194d5666fd9c8845ac0ab262a714c5cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6507065 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Cody Northrop 3540a326 2025-05-05T16:47:30 Tests: Skip black_beacon trace on S24 Bug: angleproject:415852525 Change-Id: Ibf4d3f63e96da9cf43c34110654f9383f9ba82f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512773 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuxin Hu c6e0448b 2025-05-05T10:49:32 Reformat VVL error message The SYNC-HAZARD-WRITE-AFTER-READ VVL error is no longer observed on TraceTest.special_forces_group_2, removed the error message from skipped VVL error list. The TraceTest.special_forces_group_2 now runs into a different SYNC-HAZARD-READ-AFTER-WRITE VVL error, on Linux AMD GPU. An existing entry in the skipped VVL error list already covers this error message. Reformat that entry by adding the extraProperties, and changing the messageContents1/messageContents2 fields to nullptr for ease of clean up later. Bug: angleproject:42264123 Bug: angleproject:397775556 Change-Id: I1681cd7f76dd2090e78584b08c25224d5b05d963 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6514289 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 2ca90dab 2025-05-02T22:38:38 Vulkan: Don't calculate vertex input state when dynamic When vertex input state is dynamic, VkGraphicsPipelineCreateInfo::pVertexInputeState can be nullptr. This change makes sure time is not wasted calculating this state at pipeline creation time. The change also ensures drivers don't rely on info provided at compile time by mistake. Bug: angleproject:42265637 Change-Id: I54da8be7769f0dd0767df6d7774baa956475bf8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6510082 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi 95813607 2025-05-05T10:53:08 Manual roll VK-GL-CTS from dd7e71367795 to eeeebaca3f2e (10 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/dd7e71367795..eeeebaca3f2e 2025-04-25 mateusz.bahyrycz@mobica.com Multiple queue test runner 2025-04-25 lorenzo@khronosgroup.org Add missing mandatory features for VK_KHR_cooperative_matrix using auto-generation from XML 2025-04-25 piotr.byszewski@mobica.com Separate tests for gl_BaseVertexARB and gl_BaseInstanceARB 2025-04-25 piotr.byszewski@mobica.com Update spirv-tools and fix validation errors 2025-04-25 kamil.goras@mobica.com Add OpenGL tests for textureQueryLod 2025-04-25 rgarcia@igalia.com Force position-independent code in vulkan-video-samples 2025-04-25 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.2 into vk-gl-cts/main 2025-04-23 michal.jakubek@mobica.com Fix "Linux link failures" on Windows build 2025-04-23 michal.jakubek@cognizant.com Linux compile failure when commenting out some test additions 2025-04-23 piotr.byszewski@mobica.com Remove temporary entries from Android*.bp files 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,geofflang@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 Change-Id: I9d56381e80b6a89f307573ffc7f5c790c9ff4153 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6512791 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 671f55d8 2025-04-03T22:54:44 Vulkan: Fix texelFetch(externalSampler) behavior GLES expects YUV decoding to happen with texelFetch when an external sampler is used, but texelFetch's translation (OpImageFetch) does not do such a thing. A transformation is added to replace that with a texture call at the right coordinate. Bug: angleproject:405149439 Change-Id: I3a8d07a6399705ec07718b38085ee4bc1ad2af6c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6431570 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Matthew Denton c60d98ce 2025-05-03T01:06:02 WGPU: Ship driver uniforms in the bind groups to the shader This writes driver uniforms to a WGPU buffer and ships that buffer to the shader. Right now this creates a new buffer every time a driver uniform changes. Bug: angleproject:389145696 Change-Id: Icfbce4d995ef593e703a597bb96e72173ec29cda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477136 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Yuxin Hu ce795fa8 2025-04-28T15:31:25 Reformat VVL error message Set messageContents1 and messageContents2 fields to nullptr, for ease of clean-up in follow-up changes. Make the extra properties fields more specific. Bug: angleproject:42265363 Bug: angleproject:415382790 Bug: angleproject:415383266 Change-Id: I032bc82c6aeb16281c868778db827318fa833005 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6496650 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 18ec8824 2025-05-02T12:42:26 Vulkan: Exclude RADV from global cache preference * Added exception for AMD/RADV machines from the following flag: preferGlobalPipelineCache * (Due to no information regarding the effect of this flag on those platforms) Bug: b/411442610 Change-Id: Ifd9e2fe02e488d51cbb9e070106e86ac21e8533d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6509821 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 16e0dfd9 2025-03-20T10:59:26 Vulkan: Add feature flag to recycle VkEvent This CL adds a feature flag to enable/disable the VkEvent recycling. Given ARM prefers taking CPU overhead of creating and destroying VkEvent when last reference count to VkEvent goes away instead of the extra GPU overhead comes with vkCmdResetEvents, VkEvent recycling is disabled on ARM. Bug: angleproject:409441956 Change-Id: I288be6f7cfcbc4dd9c4701d20fba44349f25befc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6376784 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Junji Watanabe f6e1d4d7 2025-05-02T12:02:09 Fix include header case mismatches This CL fixes the include header names to be aligned with the actual file names. It's problematic for cross compile on Linux, where file system is case sensitive. Context: Goma/Reclient's deps scanner was able to handle those case mismatches. But, Siso's builtin remote execution doesn't resolve them automatically. Bug: b/401959048 Change-Id: I98282899e31ea801058f82d4cad770413634f4f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6508684 Reviewed-by: Charlie Lao <cclao@google.com> Auto-Submit: Junji Watanabe <jwata@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Yuxin Hu d4c83ace 2025-04-30T12:05:19 Fix the test to use the right uniform location mTexture2DUniformLocation and mTextureCubeUniformLocation are uniform locations retrieved from the TextureCubeTest.mProgram. We should get the location from the shader program that the current test uses. Bug: angleproject:401546698 Change-Id: I7c5f022a9fab58572cae2e78fc328c1c0f74f977 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6502892 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Amirali Abdolrashidi a3b20796 2025-04-25T13:12:08 Vulkan: Add flag to prefer renderer pipeline cache * Added the following feature: preferGlobalPipelineCache * The renderer's pipeline cache will be used to create pipelines, including for warm-up. * mPipelineCache in the program is not saved when this flag is enabled. * Currently enabled for NVIDIA and AMD. * Impact on captured trace (w/ compiling inactive shaders) * Decrease in peak system memory usage on Windows/NVIDIA: * ~7600 MB -> ~3900 MB * Decrease in peak RES memory usage on Linux/NVIDIA: * ~7100 MB -> ~3600 MB Bug: b/411442610 Change-Id: I04929569f0f8d59a77c52505072faa0244ef1393 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6495155 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shashank Sharma 998b5693 2025-04-30T11:05:52 Fix ExternalBufferTest end2end test The application or test should be responsible for managing the lifetime of external buffer ensuring that the external buffer is not deleted as long as there are any GL buffer objects referring to it. https://registry.khronos.org/OpenGL/extensions/EXT/EXT_external_buffer.txt Bug: b/396231708 Change-Id: Ib8e7e2ef0349cadc42b839019e2b2334b4cc5085 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6502674 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Vasiliy Telezhnikov c52183bd 2025-04-11T11:17:10 Reset sample coverage after fbo change on Adreno Adreno drivers cache some internal value based number of samples in currently bound FBO and glSampleCoverage value, but doesn't update it on FBO change. So if we set sample coverage to 1 when FBO with 1 samples bound and then switch to FBO with 4 samples it behaves like coverage is 0.25 instead of 1. To avoid this, reset sample coverage after each FBO change. Bug: chromium:408364831 Change-Id: I7d5e36926e8568f4c652049b43ecdbe382ddc293 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6447878 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Vasiliy Telezhnikov <vasilyt@chromium.org>
angle-autoroll 6bdbe9cc 2025-05-01T12:33:41 Manual roll Chromium from dd275389e023 to cf3a960742c3 (1975 revisions) Use third_party/depot_tools/gn.py instead of gn to accommodate https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6504176 Manual roll requested by ynovikov@google.com https://chromium.googlesource.com/chromium/src.git/+log/dd275389e023..cf3a960742c3 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/chromium-angle-autoroll Please CC angle-team@google.com,geofflang@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Chromium: https://bugs.chromium.org/p/chromium/issues/entry To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Changed dependencies * build: https://chromium.googlesource.com/chromium/src/build.git/+log/88030b3203..aaf578b4fc * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/0f32cb9025..6d4e129ac6 * buildtools/linux64: git_revision:90478db6b59b9bebf7ca4cf912d860cf868e724c..git_revision:487f8353f15456474437df32bb186187b0940b45 * buildtools/mac: git_revision:90478db6b59b9bebf7ca4cf912d860cf868e724c..git_revision:487f8353f15456474437df32bb186187b0940b45 * buildtools/win: git_revision:90478db6b59b9bebf7ca4cf912d860cf868e724c..git_revision:487f8353f15456474437df32bb186187b0940b45 * testing: https://chromium.googlesource.com/chromium/src/testing/+log/fe092931f1..35b04da37d * third_party/android_build_tools/error_prone/cipd: -IrkxgAkj3RxGNBPp6b4r9OWZC6_dTbI-jC3c3UPgq8C..2t_u1XEjof609BQE4czlCQzEqRliKS_qY35FOu_VckgC * third_party/android_build_tools/lint/cipd: gx4NrAApWUVG5HG3WJRIIzZrTssD6H5uGbKe0g77mucC..TEDRB0F7VgCgyepd8FsIxPRqvKjvWQ_YkLV-ybx-GQYC * third_party/android_build_tools/manifest_merger/cipd: HhXknpcPosMUDHZQD-8Ogve-HaG4HmJ4p082zKKAcnMC..fPGWiT0LVG2_ifxOpHb5KNwTL-_7lb7tYOsB_ZoIiskC * third_party/android_deps: https://chromium.googlesource.com/chromium/src/third_party/android_deps/+log/1ea2115b17..a86aaa9531 * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/000f47cfa3..1591e813b6 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/1fcc527019..5982a1aeb3 * third_party/fuchsia-sdk/sdk: version:27.20250424.2.1..version:27.20250501.3.1 * third_party/libc++/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/917609c669..62724eb55f * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/912274164f..bf95cc5da6 * third_party/r8/cipd: bA3htCoEd_EArHekDGQSNpmBzQrcby2ioG6SFyl3AtwC..sxgLKZyJNZMVi8cot5yvRzqCFQxX_HbbR0psaeto5RcC * third_party/r8/d8/cipd: 6qLey8EBp9ivhThnqVPWy2ZDGpsf5Y29EsTbi_rZ1pMC..bA3htCoEd_EArHekDGQSNpmBzQrcby2ioG6SFyl3AtwC * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/926ec54499..7c098b791b * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/1e85c01b15..6f9b4e6192 * tools/android: https://chromium.googlesource.com/chromium/src/tools/android/+log/60443ebac3..e4c0da2094 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/6c4f037a98..5ae6e4bfb4 * tools/luci-go: git_revision:fd48b8efe637ea5f431fc371f1617b215b7ba1a2..git_revision:a9a10995e2889126ace91faf4052949e38c69d33 * tools/luci-go: git_revision:fd48b8efe637ea5f431fc371f1617b215b7ba1a2..git_revision:a9a10995e2889126ace91faf4052949e38c69d33 * tools/luci-go: git_revision:fd48b8efe637ea5f431fc371f1617b215b7ba1a2..git_revision:a9a10995e2889126ace91faf4052949e38c69d33 * tools/mb: https://chromium.googlesource.com/chromium/src/tools/mb/+log/3b0c718c2d..e3589a5831 * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/9c8188cae9..1a0049ce09 * tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/fa679ed68e..7e70cdf64e * tools/skia_goldctl/linux: M9CSmdri8G3miQpGPQeqstBvQ3TtlngrsiF5GdSTYs0C..srGbc-O6bVQmBoT6VLvP66h6Be4A-nffx4UhixUJ9w0C * tools/skia_goldctl/mac_amd64: Txs7Izu5kRGbcoAc9qESynBnBHo8RdRIyim5zF9rWbgC..tZvHxy8AcDJhO9A-5UuZKL_-5vfE_wC-RBkElqWZpM4C * tools/skia_goldctl/mac_arm64: LTzU4UbKV4zw61tWyttEX62vyq7nErr2gD8-jiH8IhgC..2br8hIWKHDAaOt77siYyRUclHBYUZX6dj8jtogL90nwC * tools/skia_goldctl/win: UKiySjywM8juGVuMwWbOdaBXFD1TbzUOWcGGVTYfem0C..zasiUhQIHGZ2e60_M6g41oz8mYgPta5JmOWV5LwFjGMC No update to Clang. Bug: chromium:414330998 Change-Id: I5ce14c5574391c1dd638787c09789f0577ee26a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6503456 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 9bcfb38f 2025-04-30T23:12:19 Vulkan: Disable MSRTSS on buggy qualcomm drivers Bug: chromium:413427770 Change-Id: I62499c3aa04f3786a0deb6afcaafb7976f2a6446 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6501621 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Mohan Maiya 3b77a177 2025-04-23T15:47:07 Optimize vertex attribute and buffer state change Bug: angleproject:386749841 Change-Id: I25968902282f6a201510e2ee17ea85fd71ef57c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6483915 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Junji Watanabe e93c143a 2025-04-28T15:39:35 tests: Prepare capture_replay_tests for Siso migration - Adds --use_remoteexec as an alias of --use_reclient. - Adds --use_siso to add `use_siso=true` GN arg. - Changes the out dir to out_CaptureReplayTest, so that the build dir depth will be 2 for Siso remote execution rules. - Cleans up build dir when switching from Ninja to Siso. Bug: b/401959048 Change-Id: Id698644f16c161e86d1d1b42828281cb5fb690ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6489896 Auto-Submit: Junji Watanabe <jwata@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev 128c9682 2025-04-24T00:00:00 Make GL_ANGLE_texture_rectangle non-toggleable This extension is not meant to be disabled. Bug: angleproject:40096622 Change-Id: Iea87210ab1bf3800759a3c65c566af67dada75f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6494384 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Matthew Denton cac1e824 2025-04-29T18:27:36 WGSL: Output driver uniform and UBO structs This is the WGSL half of the change to implement driver uniforms. Driver uniforms are implemented as a UBO and reuse the default set of driver uniforms. User-provided UBOs don't yet have variables outputted for them. This requires moving MSL's ReduceInterfaceBlocks to the tree_ops dir in order to change interface block definitions into struct definitions. Bug: angleproject:389145696 Change-Id: I27f3837b3d115f2ffac66cc545f3b60ca9f01cb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6477564 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Matthew Denton 4b69ba93 2025-04-28T16:45:56 WGPU: upload texture bind groups and configured samplers GLSL samplers are split into separate sampler/texture variables in WGSL. Before this CL, the WGSL translator generated shaders that look like: @group(1) @binding(@@@@@@) var ANGLE_sampler_samp2D : sampler; @group(1) @binding(@@@@@@) var ANGLE_texture_samp2D : texture_2d<f32>; @group(1) @binding(@@@@@@) var ANGLE_sampler_sampCube : sampler; @group(1) @binding(@@@@@@) var ANGLE_texture_sampCube : texture_cube<f32>; This CL replaces those with actual binding numbers @group(1) @binding(0) var ANGLE_sampler_samp2D : sampler; @group(1) @binding(1) var ANGLE_texture_samp2D : texture_2d<f32>; ... Such that @binding(n*2) is the WGSL sampler variable corresponding to the n-th GLSL sampler and @binding(n*2+1) is the WGSL texture variable corresponding to the n-th GLSL sampler. This CL then generates binding group layouts matching the above, and uploads textures and configured samplers in bind groups. This makes some of the deqp_gles2 tests 2d texture tests pass, though some fail because they need a flipped y coordinate. Not yet supported: 1. arrays of samplers 2. shadow samplers 3. cube textures Bug: angleproject:389145696 Change-Id: I2ab18ae5ebb4d1289101266bd9451576aa04ce2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6382272 Reviewed-by: Liza Burakova <liza@chromium.org> Auto-Submit: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi c884460a 2025-04-24T16:43:04 Vulkan: Fix deferred clears vs noop multidraw Bug: chromium:407828338 Change-Id: I5da22aeb72605bb7943fa5ae079ae297d00888f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6488794 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9e6f44bc 2025-04-18T00:00:00 Autogen support checks for extension entry points As a side effect, added missing support checks for the following extension entry points: - GL_ANGLE_memory_object_flags - TexStorageMemFlags2DMultisampleANGLE - TexStorageMemFlags3DANGLE - TexStorageMemFlags3DMultisampleANGLE - GL_EXT_buffer_storage - BufferStorageEXT - GL_EXT_external_buffer - BufferStorageExternalEXT - GL_EXT_robustness - GetnUniformfvEXT - GetnUniformivEXT - ReadnPixelsEXT - GL_EXT_separate_shader_objects - ProgramUniform4ivEXT - ProgramUniform4uivEXT - GL_MESA_framebuffer_flip_y - FramebufferParameteriMESA - GetFramebufferParameterivMESA - GL_OES_matrix_palette - CurrentPaletteMatrixOES - LoadPaletteFromModelViewMatrixOES - MatrixIndexPointerOES - WeightPointerOES - GL_OES_query_matrix - QueryMatrixxOES - GL_OES_texture_cube_map - GetTexGenf*OES - TexGen*OES - GL_QCOM_framebuffer_foveated - FramebufferFoveationConfigQCOM - FramebufferFoveationParametersQCOM - GL_QCOM_texture_foveated - TextureFoveationParametersQCOM Bug: angleproject:409484297 Change-Id: I7fe05afe2a4575ae5d913bf9f60d5575404f808b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6494399 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev f6da7aed 2025-04-18T00:00:00 Fix UniformTest.GetUniformNoCurrentProgram Added the extension check and the result re-initialization. Fixed: angleproject:414491366 Change-Id: I04abc847a7fd48c411e62208e88c19d9d3f6ec50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6494452 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev ae70513d 2025-04-18T00:00:00 Remove NamedBufferStorageExternalEXT entry point OpenGL ES does not support DSA. Bug: angleproject:407932145 Change-Id: If5f544de2b43e05888415a4fc805ad6065d4408b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6495409 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 846dcf86 2025-04-18T00:00:00 Autogen context version checks for 2.0 entry points Bug: angleproject:409484297 Change-Id: I03b323ba5b8f9d45d41c0ff0188b3f7a7004722e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6490226 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 828bec45 2025-04-26T16:12:56 Vulkan: Fix SPIR-V gen for constant constructors ... inside non-constant constructors of different basic type. The SPIR-V generator proactively casts the elements of the inner constructor to the type of the outer constructor, but it was mistakenly using the original inner constructor's type id for the constant instead of the cast type id. Bug: chromium:413775106 Change-Id: I95e8b1dcc1ba36777eb4475042f0d106a6abe109 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6489041 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Kenneth Russell cdb34025 2025-04-25T12:09:14 Move robust APIs for PLS into robust_client_memory sections. These two entry points are at the intersection of GL_ANGLE_shader_pixel_local_storage and GL_ANGLE_robust_client_memory. Move them into the robust_client_memory section to simplify autogenerated validation. Rerun code generation. Fixed: angleproject:413597061 Change-Id: Icac160dbc7ab4088ee90471af60bb2e5ab3e1b87 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6492427 Auto-Submit: Kenneth Russell <kbr@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 50707ca6 2025-04-18T00:00:00 Remove duplicate validation declarations Removed redundant function declarations and aligned function definitions with the autogenerated declarations. Bug: angleproject:409484297 Change-Id: Ieb49399ff28e64c4e6a84180a3190895f3c08e20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6491475 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 84e3b8f1 2025-04-18T00:00:00 Fix GetInteger64vRobustANGLE validation * Removed incorrect validation code. * Implemented capture support. * Added a new test. Fixed: angleproject:413595073 Change-Id: Ib84ae410fbd7a18d4a8bbb2545fe2952938088e5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6491648 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Aurora Zhang ef61ff8d 2025-04-24T16:18:34 Improve the judgement of texture and attachment completeness When the GL_TEXTURE_MIN_FILTER is not mipmap, that is GL_LINEAR or GL_NEAREST, ANGLE should allow the texture's base level greater than the max level. The spec does not consider this situation as texture incomplete. Also, attachment completeness should ignore mipmap completeness when selected level is the base level. Hence, increase a constriction in CheckAttachmentCompleteness and end2end test Texture2DBaseMaxTestES3.Fuzz545ImmutableTexRenderFeedback. Bug: angleproject:42267266 Change-Id: I6a41f7d0716a7c9506b82390e2c0b083ab1626a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6197735 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com>
Cody Northrop 4429afe9 2025-04-23T23:47:26 Tests: Add Black Beacon trace Test: TraceTest.black_beacon Bug: b/413215850 Change-Id: Iecbb4d2b4a251943857fd3d945318cec29c1b37f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6487386 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev d08e9e9c 2025-04-18T00:00:00 Fix use of OpenGL ES 2.0 commands in ES 1.0 tests Bug: angleproject:409484297 Change-Id: I0186e23074ec7ac6cfae9d04645923d6acb163f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6487928 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Neil Zhang e5680ba6 2025-04-14T17:43:07 Fix mInFlightCommands.empty() assert in CommandQueue destroy When initialize a higher priority shared Context, ANGLE internal call updateContextsPriority to submit previously flushed commands. This submission is not tracked by any Context. Add Renderer::mSubmittedResourceUse to record submitted queue serials not belonging to any Context to fix the assertion. Bug: angleproject:410996556 Change-Id: I7a91e47c0233832b8806637f295dffd1ff54f729 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6458623 Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Neil Zhang <Neil.Zhang@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya ff110c86 2025-04-23T15:42:34 Early-return instead of rebinding the same subject Bug: angleproject:386749841 Change-Id: I190f9bd7a7c492bdd263a624e835abefabfab560 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6484560 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Alexey Knyazev 4c1c7c08 2025-04-18T00:00:00 Include entry point names in error messages Moved entry point name injection to ErrorSet::validationError to ensure that error messages handled via GL_KHR_debug always contain the corresponding entry point names. Updated affected tests. Fixed: angleproject:412384507 Change-Id: I9e898cadca0634505d70b36dbbb00feedb6c10b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480177 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev 56b62c62 2025-04-18T00:00:00 Include entry point names in context lost error messages Also added "likely" hints to valid context branches. Bug: angleproject:412384507 Change-Id: I6fc2c4a5934b767f55742f4657fec7ae954f1387 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6479959 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d392eeae 2025-04-22T10:54:13 Vulkan: Force host-image-copy for LUMA textures on ARM Bug: angleproject:42266771 Change-Id: I79a8fe14ba389195d5846261752be847bc13bcf4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6479371 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Xin Yuan cdcf6a63 2025-04-22T10:19:33 Add R10X6G10X6B10X6A10X6 support on angle Bug: angleproject:409355677 Change-Id: I8115ca73a038360f673552532e9d9b87ff846867 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6438114 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 555038b8 2025-04-23T12:47:02 Translator Fuzzer: Enable required options Bug: chromium:409603851 Change-Id: I73067fcd3855f6cdcb6eea05b06bafa45d23fb19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6482917 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Peng Huang d698500d 2025-04-08T09:05:42 Fix an ASSERT() crash in ExternalFence SyncWaitFd(). https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html If pGetFdInfo->handleType is VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT and the fence is signaled at the time vkGetFenceFdKHR is called, pFd may return the value -1 instead of a valid file descriptor. So when above scenario happens, ANGLE will get a -1 fd from vkGetFenceFdKHR(), and then Angle will call SyncWaitFd() with the invalid fd, it will cause an ASSERT() crash. Bug:angleproject:409342980 Change-Id: I48d4d21d531e40f8ba275918454632ae14fec04b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6439303 Auto-Submit: Peng Huang <penghuang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Igor Nazarov 691140da 2025-04-22T21:05:44 Vulkan: Do not skip VUID-vkQueueSubmit-pSignalSemaphores-00067 ... when "VK_EXT_swapchain_maintenance1" is enabled. Original problem is a VVL bug, introduced in: 62e9314e2eb9c58af42f6f1b613d200d5362598d layers: Track semaphore is in use by swapchain It was later partially fixed in: 88934ae6acf0c8b8ae169df9607e779ac4a70239 layers: Fix waiting on present fence did not have effect Bug is only fixed when using present fences (when "VK_EXT_swapchain_maintenance1" is enabled). Without present fences, VUID error still prints the following: Swapchain image 0 was presented but not re-acquired, so VkSemaphore 0x41c700000041c7 may still be in use and cannot be safely reused with image index 0. a) Use a separate semaphore per swapchain image. Index these semaphores using the index of the acquired image. Since problem only happens in a shared present mode, re-acquiring the image causing "VUID-vkAcquireNextImageKHR-surface-07783". It is also unclear from the Vulkan spec if the image may be re-acquired in shared present mode, but it is currently not necessary. When not using present fences, ANGLE tracks present semaphores by attaching submit serial to the previous present operation when same image is presented. This guarantees to use more than one present semaphore (in a shared present mode) and not to reuse semaphore with signal operation pending. This is more strict synchronization than what is suggested by the VUID error in the item (a). However, it is debatable if this is ANGLE's or VVL error. If it is not a VVL error, it at least should provide correct message of how to fix the problem in case of a shared present mode. Theoretically, ANGLE may fix this error by only using present semaphore for the initial present, and skip it for all subsequent present operations, since image is already shared with the presentation engine and present operation is only used for notification purposes. Bug: angleproject:408190758 Change-Id: Id0dc3c0efcba72e844ba6b2c241d0076f70fcd51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480175 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 6f9f343a 2025-04-16T14:45:33 Reland "Vulkan: Prune superseded updates during host-image-copy" This is a reland of commit f8a8adf63c5834a725d1bd752acc6d63c3f45c05 Original change's description: > Vulkan: Prune superseded updates during host-image-copy > > Bug: angleproject:42266771 > Change-Id: I7aa8e85720a54537389df615b575ddfa9951770d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6462475 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Cody Northrop <cnorthrop@google.com> Bug: angleproject:42266771 Change-Id: I95e6f1d2421327a6394e627f03ef5b4cddf4a1e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480011 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Mavis Deng 3c554454 2025-04-03T16:55:11 Incorrect BUFFER_DATA_SIZE and UNIFORM_OFFSET for ACB array of array The buffer size and offset calculation for the atomic counter buffer defined as an array of arrays is incorrect. The issue occurs with the following declaration: layout (binding=0, offset=0) uniform atomic_uint ac[2][2]; Observed Results: GL_BUFFER_DATA_SIZE -> 8; GL_UNIFORM_OFFSET of "ac[1][0]" -> 0; Expected Results: GL_BUFFER_DATA_SIZE -> 16; GL_UNIFORM_OFFSET of "ac[1][0]" -> 8; Bug: angleproject:407564097 Change-Id: Ibf99ccd5412629f0feb74a9a34337b82894e74c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6429625 Auto-Submit: Mavis Deng <mavis.deng@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Alex abe3c63a 2025-04-16T15:30:10 Add CubeMapBug2 test to trigger Angle bug in validation Add one extra texture sampler in fragment shader and adjust texture binding unit for textures Bug: angleproject:401546698 Change-Id: Ib5c3482a243075a98f1ce1b1f4d4cc9884f5f980 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6458622 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 61bfe86c 2025-04-04T00:00:00 Autogen context version checks for 1.0 entry points * Added missing extension support checks for glPointSizePointerOES and glDrawTex*OES. * Removed incorrect validation from ValidateDepthRangex. * Removed unused functions. Bug: angleproject:409484297 Change-Id: I9c12be4c0ed60f943fa3c16a8e23693d8fb7a76f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6479833 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Tingwei Guo 3f88a505 2025-04-03T17:29:20 GenerateMipmap encode and decode sRGB when GL_SKIP_DECODE_EXT is set According to the spec, if TEXTURE_SRGB_DECODE_EXT is set before GenerateMipmap for a texture with format sRGB, mipmap generation should skips the encode and decode steps during mipmap generation, matching the mipmap generation for a non-sRGB texture. Bug: angleproject:406829410 Change-Id: Icea8c27a1ab2f20e9fd6c8d79187c0c5cfe8e789 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6428506 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Tingwei Guo <tingwei.guo@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 50a4ad19 2025-04-22T09:29:17 Revert "Vulkan: Prune superseded updates during host-image-copy" This reverts commit f8a8adf63c5834a725d1bd752acc6d63c3f45c05. Reason for revert: Has a bug in the calculation of image layers whose updates should be dropped. Bug: angleproject:42266771 Original change's description: > Vulkan: Prune superseded updates during host-image-copy > > Bug: angleproject:42266771 > Change-Id: I7aa8e85720a54537389df615b575ddfa9951770d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6462475 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Cody Northrop <cnorthrop@google.com> Bug: angleproject:42266771 Change-Id: I2b992c8598f58c40386338ade3cf59ffdb03abd5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6480413 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Alexey Knyazev 69a0fc24 2025-04-04T00:00:00 Use dedicated error messages for context version checks To highlight that the command itself is not supported rather than any of its parameters. Bug: angleproject:409484297 Change-Id: I573e935b3179bb1001267b383a1efa4cf48a7197 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6479832 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev db12f43b 2025-04-04T00:00:00 Autogen context version checks for 3.0 entry points * Added a missing version check for the GetBufferParameteri64v entry point. * The following commands are now rejected on ES 2.0 even if the GL_OES_texture_3D extension is enabled: * CompressedTexImage3D * CompressedTexSubImage3D * CopyTexSubImage3D * TexImage3D * TexSubImage3D Bug: angleproject:409484297 Change-Id: I82374157596fd292efbf67c6bb582eb874348b73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6469895 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 81f1a733 2025-04-04T00:00:00 Fix use of OpenGL ES 3.0 commands in image tests Fixed tests that used OpenGL ES 3.0 commands instead of extensions when running on lower context versions. Bug: angleproject:409484297 Change-Id: Ie220acbf8d1d287e3e19a52307ac3625d2f29c9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6469896 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi f355e2b3 2025-04-15T18:58:25 Vulkan: Remove preferDriverUniformOverSpecConst This was practically true for every vendor on Android (where rotation matters). For Qualcomm, it was also true due to a bug in version checking and didn't seem to be causing any concerns. Where pre-rotation is supported, it is better to enable this feature to avoid excessive pipeline creation. This change removes the feature and makes sure ANGLE always uses uniforms for rotation instead of spec consts. While technically this may have an adverse effect on platforms that never need pre-rotation, the ability is retained for all vendors since pre-rotation is finding its way into more platforms and would likely eventually be needed everywhere anyway. Bug: angleproject:42265878 Bug: angleproject:42262166 Change-Id: I4b64c04da46db08cfdd44b60789b66d93d8e8b17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6459025 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Le Hoang Quyen 07eeca12 2025-04-17T20:58:19 Metal: prevent padding in state cache's structs. Fixed: angleproject:411845677 Change-Id: I8a9635634e66f86c132205f75825a916481f7ad0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6468239 Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Le Hoang Quyen f6a350de 2025-04-17T20:43:08 Metal: fix rasterSamplecount not used in comparing render passes. RenderPassDesc's rasterSamplecount was not used to comparing two render passes' descriptors. Note: no reported bug found related to this missing comparison yet. This bug most likely affects render passes without any attachment (PLS?). Because if the 2 render passes have the same attachments, their rasterSamplecount values must also be equal. There was also a missing rasterSamplecount comparison in RenderPipelineOutputDesc::operator==. However, this function is not used. When comparing two render pipelines, RenderPipelineDesc::operator== is used instead, which is currently implemented using memcmp. So removing the former to avoid confusions. Bug: angleproject:411845677 Change-Id: Ic9b1867226561d096c1fb8ca2194b657d29daa18 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6468238 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Shahbaz Youssefi f8a8adf6 2025-04-16T14:45:33 Vulkan: Prune superseded updates during host-image-copy Bug: angleproject:42266771 Change-Id: I7aa8e85720a54537389df615b575ddfa9951770d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6462475 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi a9f2f87f 2025-04-15T13:46:34 Vulkan: Update version macros * Updated the deprecated version macros * VK_VERSION_MAJOR -> VK_API_VERSION_MAJOR * VK_VERSION_MINOR -> VK_API_VERSION_MINOR * VK_VERSION_PATCH -> VK_API_VERSION_PATCH * VK_MAKE_VERSION -> VK_MAKE_API_VERSION * Added a separate case for QCOM drivers in getVersionString(). * The major version is now OR-ed with 512. * (New drivers seems to have a major version of 512, which falls not within the major field, but the variant field, when using the VK_API_VERSION_x macros.) Bug: angleproject:42267006 Change-Id: Ic9b761d182ff49c3ede43c7bd14f366f945fbf36 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460682 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 4b9525b2 2025-04-04T00:00:00 Remove all getClientMajorVersion helpers Client version checks should use proper struct compare operations. Bug: angleproject:408843436 Change-Id: I92cd91d1e7e6daa761f79060835aa534c5671264 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6467460 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 9db4bf6e 2025-04-04T00:00:00 Autogen context version checks for 3.1 & 3.2 entry points As a side effect, added missing version checks for the following OpenGL ES 3.2 entry points: * BlendEquationi * BlendEquationSeparatei * BlendFunci * BlendFuncSeparatei * ColorMaski * Disablei * DrawElementsBaseVertex * DrawElementsInstancedBaseVertex * DrawRangeElementsBaseVertex * Enablei * GetDebugMessageLog * GetPointerv * IsEnabledi * MinSampleShading * PopDebugGroup * PrimitiveBoundingBox * PushDebugGroup Bug: angleproject:409484297 Change-Id: I6be7e3a4a8ba9b99595f4930d9c3a1fa1b4c6154 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6441552 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu b86d7d8f 2025-04-14T15:37:47 Android: Add Galaxy S24 support (Xclipse) Bug: b/410630704 Change-Id: I97fd649de4278f447893a01fbe5ceeee02dd100e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6456664 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 53279e92 2025-04-16T16:04:55 Traces: Update traces that need ES 3.2 With Alexey's change to autogen ES version checks, he found that some traces required 3.2 without requesting it: http://crrev/c/6441552 This likely happened due to a combination of apps assuming it is supported, and get_min_reqs reliance on errors thrown to detect when an ES version is needed. This CL updates the traces identified to properly request ES 3.2 and any extensions. It also removes redundant extension requests from TracePerfTest.cpp now that they show up in JSON. Test: Trace tests with autogen fixes Test: retrace_restricted_traces.py get_min_reqs Bug: angleproject:409484297 Change-Id: Ia19d70316f5e6422d027c1ce135593391abce378 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6465695 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi ccabbbca 2025-04-16T23:52:32 Suppress flaky test on Nvidia/D3D Bug: angleproject:411157348 Change-Id: I08542c9ca0d332ab2f88a3174ab42e08d9a21f31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6466885 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya a6a7de5a 2025-04-16T14:28:13 Vulkan: Sync perf counters in finishImpl(...) .. instead of finish(...) so other code paths like onDestroy(...) have a chance to update perf counters before decoupling from the sharegroup Bug: angleproject:386749841 Change-Id: Ib0f847dda2274686ed9e5d3c8211ee5a364e4b65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6463366 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 408f5853 2025-04-04T00:00:00 Make gl::Version data members private * Further simplified gl::Version implementation by making data members private and merging them. * Used proper version struct comparisons instead of accessing individual version components. * Moved known version constants to Version.h for broader availability. * Removed no longer used helpers: * PrivateState::getClientMinorVersion() * State::getClientMinorVersion() * Context::getClientMinorVersion() Bug: angleproject:408843436 Change-Id: I3ae8f495269d649253fa2381ecbfc018a184fa20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460787 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Shahbaz Youssefi b64d380e 2025-04-15T00:54:22 Vulkan: Ghost texture's image backing if overwritten If the texture's image is in use by the GPU but is overwritten completely, this change releases the old image and creates a fresh one. If the texture was used in a render pass, this avoids breaking the render pass. Otherwise, it allows the new image to be initialized with VK_EXT_host_image_copy functionality. In the very least, an unnecessary barrier is avoided. As a targeted optimization, this functionality is limited to non-array 2D color textures which are known to benefit from this ghosting in applications. Other texture types can be easily added, but need lots of tests to be added. Bug: angleproject:42265356 Change-Id: I18a7587599e36f9f70109264ddc1003b24b8b2df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6456345 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 0ed51ec7 2025-04-10T22:41:22 Vulkan: Disable color attachment usage for LUMA formats Bug: angleproject:42265356 Change-Id: If97fd59e85febfdf345a36097901a2015aa4183b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6447236 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi ca0457f6 2025-04-15T13:10:58 Vulkan: Fix parsed QCOM major version When running tests on QCOM, the major driver version in the renderer string is shown as 512 (e.g, 512.777.0). However, the parsed driver version from the device shows it as 0 (i.e., 0.777.0). Since the features limited on QCOM use 512 as the driver version cap, they would be initialized incorrectly, as they would always be seen as smaller than the cap. This change will remedy this. * Updated ParseQualcommVulkanDriverVersion() to set the major version for the new QCOM drivers as 512 after parsing. Bug: chromium:371512561 Change-Id: I9cd5cf6d3dec50eb900429e4fdda6c563f670f7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6460066 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 49d0a332 2025-04-08T16:07:17 Vulkan: Remove ring buffer allocators * Removed the ring buffer allocator functionality from ANGLE: angle::RingBufferAllocator * Also removed the related common files. * (Pool allocators will be used at all times.) * Removed the placeholder functions from the pool allocator. * Removed the following BUILD flag: angle_enable_vulkan_shared_ring_buffer_cmd_alloc * Removed redundant line from ContextVk. Bug: b/410036490 Change-Id: I368fb93a66ddfd192018b09f65004a32339abd5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442640 Reviewed-by: Igor Nazarov <i.nazarov@samsung.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev cf7eeec2 2025-04-04T00:00:00 Simplify client version compare operations Packed client context version struct into two bytes and defined specialized compare operations instead of using std::tie. Bug: angleproject:408843436 Change-Id: Ic7d91f171a3bce40d46b9cfd3c65d1fc3d3f568c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6432439 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 838c6596 2025-04-14T16:46:42 Add EGL image tests where source texture is modified Covering the following cases: * The source texture is changed with glTexImage2D. In this case, the image is orphaned and the siblings point to the old image. * The source texture is used in a compute shader. In Vulkan, the internal image backing is recreated, and siblings should continue to track the new image (which they don't, due to a bug). * The source texture is completely overwritten. This is in anticipation of a follow up change in the Vulkan backend that similarly may recreate the backing image of the texture (and should not be affected by the same bug). * The source texture's base level is completely overwritten while the image is in use, and glGenerateMipmap is called. This is also in anticipation of another follow up change in the Vulkan backend that may recreate the backing image. Bug: angleproject:42265356 Bug: angleproject:410584007 Change-Id: I2d5f7f668d77ec6940d34bdf80eb7c885fc6a59d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6454132 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev 33e035f9 2025-04-04T00:00:00 Enforce correct usage of gl::Version In preparation for the implementation update, ensured that gl::Version struct is always initialized with 8-bit values. Bug: angleproject:408843436 Change-Id: Idcc925b49cadc7fdc4f05ff2acaed8020e72a32e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6458758 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxiang Qian e39bcdc3 2025-04-09T17:26:34 Support GLES query counter bits ANGLE only support query GL_QUERY_COUNTER_BITS_EXT with TIME_ELAPSED_EXT or TIMESTAMP_EXT, but other targets should also be supported. Since the values are stored in 32 bits, we just return 32 for other target. An end2end test is added. Bug: angleproject:409674598 Change-Id: I98941f4dd36ef62c57bcb87475ebb9f626c1bbf9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6437686 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com>
Mavis Deng 4be3143c 2025-04-10T15:18:52 Vulkan: Vertex attribute hole crash workaround When the start vertex index of glDrawArrays is not 0, this hole case will crash again. * Added a condition to bypass the attribute update if the attribute pointer is null. * Added a glDrawArrays(GL_TRIANGLES, 3, 3) in unit test VertexAttribPointerCopyBufferFromInvalidAddress Bug: angleproject:359729255 Change-Id: I1d7f50dc56080ef0b4e48c4c3c983189a26171c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6445172 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Mavis Deng <mavis.deng@arm.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shelly Wang ac8607a9 2025-03-27T16:46:21 Vulkan: Disable graphics pipeline on ARM due to performance loss ARM is investigating on Graphics Pipeline Library(GPL) on contents whose performance loss is unacceptable. Therefore, it's recommended to disable GPL until the problematic area gets fixed and the final performance data is acceptable. Bug: angleproject:404581992 Change-Id: I2bcb5f8bca3d64be0e947d7262a615ef867532ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6400174 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi a3f2545f 2025-04-11T14:03:08 Tests that exercise overwriting textures while in use The first three tests are credit Cheryl Wei <@arm.com>, adopted from https://chromium-review.googlesource.com/c/angle/angle/+/3366193 The change also exposed the fact that the force_fallback_format with ASTC leads to assertion failure if ASTC emulation is not built. This change adjusts the format table to fix that as well. Bug: angleproject:42265356 Change-Id: Ib68355f317472d8cc3f035b492b273ac452a8217 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6447202 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Igor Nazarov d32c6c03 2025-04-11T15:12:24 Vulkan: Treat present SURFACE_LOST_KHR as OUT_OF_DATE ... when in shared present mode. Handle `VK_ERROR_SURFACE_LOST_KHR` the same way as `VK_ERROR_OUT_OF_DATE_KHR`, because on some platforms (observed on Android) swapchain recreate still succeeds making this error behave the same as OUT_OF_DATE. In case of a real surface lost, following swapchain recreate will also fail, effectively deferring the failure. This will avoid generating swap buffers failure unnecessarily, which may cause abortion of the application. Bug: angleproject:409809766 Change-Id: Ie8abd6b10f160254c94abc0f799195d7414681e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6450580 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Yuxiang Qian a5d750fb 2025-03-25T14:24:19 Add test to check EGL_KHR_platform_android Add an end2end test to check that eglGetPlatformDisplayEXT can use EGL_PLATFORM_ANDROID_KHR to get display. Also, to follow the spec, ValidateGetPlatformDisplayCommon should set EGL_BAD_PARAMETER for unsupported platform. Bug: angleproject:404581995 Change-Id: I20a962adb2dab4434141417b11c959924aff1597 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6369995 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 5dd05578 2025-04-14T07:34:57 Revert "GL: Allow untranslated shaders to pass through on GLES" This reverts commit 4e77552b86a89b449ada6d6c18f84285f5812b1d. Reason for revert: breaks ChromeOS and fuzzers Bug: angleproject:398857482 Original change's description: > GL: Allow untranslated shaders to pass through on GLES > > Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which > uses the NULL translator and passes the original shader to the driver. > The parser is still used for shader reflection. > > Bug: angleproject:398857482 > Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:398857482, angleproject:410423936 Bug: chromium:410114655, chromium:410100607, chromium:410121218 Bug: chromium:410052365, chromium:410290507, chromium:410178288 No-Presubmit: true Change-Id: I45b01960637a1cda05d21a7df6d07465f6a8f5e9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6448984 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 96628296 2025-04-04T00:00:00 Fix GL_OES_texture_3D entry points validation * Added missing checks to the extension entry points to generate proper error messages. * Ensured that the extension entry points are invalid on unextended OpenGL ES 3.x contexts. * Fixed invalid usage of the extension entry points in PLS tests. Fixed: angleproject:409959473 Change-Id: If579e6171751dea1049e1ed85020f485d1e9deb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6449807 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 4e77552b 2025-02-24T18:04:32 GL: Allow untranslated shaders to pass through on GLES Add an EGL extension EGL_ANGLE_create_context_passthrough_shaders which uses the NULL translator and passes the original shader to the driver. The parser is still used for shader reflection. Bug: angleproject:398857482 Change-Id: I7c5fcc318c7e11931f78c08dcbf4764bf77d397d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6297527 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuxin Hu d5ab1331 2025-04-09T20:26:47 Reland^2 "Enable VVL on vulkan instance created in GetSystemInfoVulkanWithICD" This is a reland of 16c852917d0e384fdba780ee6239ab40c3652a7a vkGetPhysicalDeviceProperties2 can be null on devices where VkPhysicalDeviceProperties.apiVersion < VK_API_VERSION_1_1. Even the vkEnumerateInstanceVersion returns VK_API_VERSION_1_1, it doesn't mean the actual device supports VK_API_VERSION_1_1. It only means the loader can handle vulkan instance creaion requests up to VK_API_VERSION_1_1, so we shouldn't assume the device also supports VK_API_VERSION_1_1 and fail vulkan instance creation if vkGetPhysicalDeviceProperties2 is null. Instead, we should proceed with instance creation, and only check vkGetPhysicalDeviceProperties2 is not null when the actual device supports VK_API_VERSION_1_1. Original change's description > On Fuchsia, it is possible that there is no vulkan driver and > vkCreateInstance() triggered VVLDebugUtilsMessenger. > "vkCreateInstance: Found no drivers" is a > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT message. We should only > care about VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT message > type. Remove VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT and > VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT from the > VkDebugUtilsMessengerCreateInfoEXT. > Add code to print the VVL message in the log so we know what's wrong. > Add a condition to only assert when the VVL message severity is > VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT. > Bug: angleproject:407116232 > Change-Id: I1ffc4041368782641fc605366ff7cf03e43eb53f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6435033 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:407116232 Change-Id: I138933a235c4e638fac73559903cf77ecef9159a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444660 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Kimmo Kinnunen 78048112 2025-01-15T15:13:14 Fix IndexRange::vertexIndexCount calculation Use only one loop. Avoid redundant primitive restart index parameter. Avoid calling GetPrimitiveRestartIndexFromType() because the algorithm relies on the value being numeric_limits<T>::max(). Fixes a bug where primitive restart case would process the value after first primitive restart twice, once in both for loops. This would result in incorrect vertexIndexCount. Fix by removing IndexRange::vertexIndexCount, and instead using IndexRange::mCount == 0 to signify empty range. Bug: angleproject:401284933 Change-Id: Ifaeb9949f2e852fb7c5ef80bc47f72bfabba21a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6333541 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com>
Yuxin Hu 1c0bcb06 2025-04-08T18:42:43 Reformat VVL error angleproject:42265363: dead_by_daylight hits the VVL error covered by another entry in the skip list. Move the dead_by_daylight comment above the other entry. angleproject:42265427: VVL error added to the skip list in this bug still occurs on blade_and_soul_revolution and FramebufferFetch* tests. Change the VVL error message to use the new formats: remove the messageContents1 and messageContents2, and add more extraProperties. Bug: angleproject:42265363 Bug: angleproject:42265427 Change-Id: Ie913a7345b9f16580507894edd4a2befa29e9418 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6442305 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Liza Burakova 3dcf109d 2025-04-10T17:19:09 WebGPU: Refactor syncClientArrays. This change adds a few helper methods for syncClientArrays to improve readability Bug: angleproject:401499251 Change-Id: Ida427f80e07f469b83ff12850169b2110e65743c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6441946 Reviewed-by: Matthew Denton <mpdenton@chromium.org> Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>