src/tests


Log

Author Commit Date CI Message
Roberto Rodriguez 157a99aa 2025-05-20T23:59:29 Update logic for redeclaring gl_FragDepth. Update ParseContext logic to handle redeclaration of gl_FragDepth. Bug: angleproject:419066563 Change-Id: I774d036922ec75ca151f1c871afc243ca09a3061 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6573532 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@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 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>
Yuxin Hu 26e790f7 2025-05-21T14:07:40 Update the gn arg to avoid warning message in gn desc json file After this change https://chromium-review.googlesource.com/c/chromium/src/+/6547915, using android32_ndk_api_level and android64_ndk_api_level gn args will results in a warning message generated at the top of the gn desc json file: WARNING Build argument has no effect. android32_ndk_api_level = 26 ^- Did you mean "android_ndk_api_level"? This causes the json.load() function in generate_android_bp.py failing when parsing the json file json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) Update roll_aosp.sh to use the android_ndk_apk_level to remove the warning message. Also update the gn arg from android32_ndk_apk_level and android64_ndk_api_level to android_ndk_apk_level in other files. Bug: b/418837345 Change-Id: I12fa48dcb5638b37a9965d0adb339a2dee018297 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6576736 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
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>
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 71b58cdc 2025-05-17T18:12:33 Fix feedback loop in ImageTest.SourceRenderbufferTargetTexture* This test would make a renderbuffer as an EGLImage source and a texture as the target. It would then try to verify the data in the texture by sampling but the renderbuffer was currently bound to the framebuffer creating a feedback loop. Bug: angleproject:418022112 Change-Id: I456eb541c84d98d99e6b8d8be817ce67d7b1d519 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6556610 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Tim Van Patten dcbcee8a 2025-05-15T10:39:55 Tests: Use eglGetPlatformDisplay() From the EGL 1.5 spec: Appendix F Version 1.5 EGL version 1.5 was voted out of the Khronos Technical Working Group on January 31, 2014, and formally approved by the Khronos Board of Promoters on March 14, 2014. EGL 1.5 is the sixth release of EGL. It introduces the following new features (the EGL extension(s) each feature is based on are also shown parenthetically): * Platform support: – Providing a mechanism for support of multiple platforms (such as window systems or offscreen rendering frameworks) in a single EGL implementation at runtime (EGL_EXT_platform_base). Many tests use eglGetPlatformDisplayEXT() which is provided by the EGL extension EGL_EXT_platform_base. With the promotion of the EGL_EXT_platform_base functions to core EGL in version 1.5 and ANGLE supporting EGL 1.5 (as of at least 2019), update the calls to use eglGetPlatformDisplay(). This is in preparation for running the ANGLE end2end tests in Android, which only exposes the EGL 1.5 functions, and not the EGL_EXT_platform_base functions. Bug: b/391967165 Test: angle_end2end_tests Change-Id: I58109c3afe270f46db952e124ee3f5c11200ca35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6552257 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Tim Van Patten e7277deb 2025-05-19T11:16:56 Add test to validate eglGetPlatformDisplayEXT() Add a test to validate eglGetPlatformDisplayEXT() returns a valid display on devices that support the EGL extension EGL_EXT_platform_base. Bug: b/279980674 Test: EGLDisplayTest.GetPlatformDisplayEXT/* Change-Id: I8cbb9c3905deb960e567a07d64e6c9d590a4ae70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6565328 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.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>
Xiang Wang 3f7bded1 2025-05-15T13:35:18 Add ANGLE_FORMAT_PRINTF to StringPrintf Bug: b/414880678 Test: verified that the compiler attribute will generate error when building without crrev.com/c/6543549 Change-Id: If1b57f78370d57969e999b93e17444236f194be1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6551849 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@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>
angle-autoroll 1fea2d12 2025-05-15T09:57:22 Roll Chromium from 6511b87fb086 to 924b8c206ea6 (678 revisions) https://chromium.googlesource.com/chromium/src.git/+log/6511b87fb086..924b8c206ea6 Fix warnings detected by Error Prone checks enabled in https://chromium-review.googlesource.com/c/chromium/src/+/6543826 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,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/e42f899ae7..a4e74b4312 * buildtools: https://chromium.googlesource.com/chromium/src/buildtools.git/+log/077a66f30f..e9b36e9ffb * testing: https://chromium.googlesource.com/chromium/src/testing/+log/e93dc3dea2..56ef5f113b * third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/fd624be2fa..2fa93b2332 * third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/032eddc73b..f810dae272 * third_party/llvm-libc/src: https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/27ee073016..9aefa1cede * third_party/protobuf: https://chromium.googlesource.com/chromium/src/third_party/protobuf/+log/49f482cb46..36e2b378de * third_party/rust: https://chromium.googlesource.com/chromium/src/third_party/rust/+log/c523543cf4..abb422e192 * third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/86aca59d7b..fbb9ce5767 * tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang.git/+log/92a5f60019..4e2e7b926a * tools/perf: https://chromium.googlesource.com/chromium/src/tools/perf/+log/f7a506e700..866151e951 * tools/rust: https://chromium.googlesource.com/chromium/src/tools/rust.git/+log/96def2f44c..d88ef9e4de Clang version changed llvmorg-21-init-9266-g09006611:llvmorg-21-init-11777-gfd3fecfc Details: https://chromium.googlesource.com/chromium/src/tools/clang/+/92a5f60019f3a9ff63b9388d181fa65047377fb4..4e2e7b926a033fc85695da101404f79b7ce2d7a7/scripts/update.py Bug: None Change-Id: I95d7c36f8e9baeb828b24f7d96452363175bba2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6551736 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten f21ec7a0 2025-05-14T10:52:50 Tests: Skip VerifyMutableRenderBufferKHR on Intel+Win The test EGLSingleBufferTest.VerifyMutableRenderBufferKHR/ES*_Vulkan_NoFixture is failing on Intel+Windows and generating VVL errors. ERR: vk_renderer.cpp:968 (rx::vk::(anonymous namespace)::DebugUtilsMessenger): [ VUID-VkSwapchainCreateInfoKHR-presentMode-parameter ] vkCreateSwapchainKHR(): pCreateInfo->presentMode (VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR) requires the extensions VK_KHR_shared_presentable_image. The Vulkan spec states: presentMode must be a valid VkPresentModeKHR value (https://docs.vulkan.org/spec/latest/chapters/VK_KHR_surface/wsi.html#VUID-VkSwapchainCreateInfoKHR-presentMode-parameter) ..\..\src\tests\egl_tests\EGLSurfaceTest.cpp(2036): error: Value of: IsEGLDisplayExtensionEnabled(mDisplay, "EGL_KHR_mutable_render_buffer") Actual: false Expected: true It's not entirely clear where things are going wrong, but appears to be something in the Intel+Windows driver. Skip the test for now to keep win-exp-test green otherwise. Bug: b/417459061 Test: EGLSingleBufferTest.VerifyMutableRenderBufferKHR Change-Id: Iee848b46cddaf05d0cbb0c2d81d76d07dd0b9bba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6548415 Auto-Submit: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.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 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>
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>
Xiang Wang e69813e0 2025-05-13T12:29:46 Fix the formatting for size_t in perf_test This will print 64bit unsigned int max properly Bug: b/414880678 Test: (process memory size SIZE_MAX) *RESULT TracePerf_vulkan.memory_median: black_beacon= 18446744073709551615 sizeInBytes Change-Id: I27f0e2dd34d7fc7c055bea64ecd786e0567b754a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6543549 Commit-Queue: Xiang Wang <xwxw@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.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>
Tim Van Patten ed4d7278 2025-05-13T10:06:18 Tests: Skip VerifyMutableRenderBufferKHR on Intel+Win The test EGLSingleBufferTest.VerifyMutableRenderBufferKHR/ES*_Vulkan_NoFixture is failing on Intel+Windows and generating VVL errors. ERR: vk_renderer.cpp:968 (rx::vk::(anonymous namespace)::DebugUtilsMessenger): [ VUID-VkSwapchainCreateInfoKHR-presentMode-parameter ] vkCreateSwapchainKHR(): pCreateInfo->presentMode (VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR) requires the extensions VK_KHR_shared_presentable_image. The Vulkan spec states: presentMode must be a valid VkPresentModeKHR value (https://docs.vulkan.org/spec/latest/chapters/VK_KHR_surface/wsi.html#VUID-VkSwapchainCreateInfoKHR-presentMode-parameter) ..\..\src\tests\egl_tests\EGLSurfaceTest.cpp(2036): error: Value of: IsEGLDisplayExtensionEnabled(mDisplay, "EGL_KHR_mutable_render_buffer") Actual: false Expected: true It's not entirely clear where things are going wrong, but appears to be something in the Intel+Windows driver. Skip the test for now to keep win-exp-test green otherwise. Bug: b/417459061 Test: EGLSingleBufferTest.VerifyMutableRenderBufferKHR Change-Id: I3bc21dfa059b1c0d7c4e8f7ae0452a3819bedbb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6541387 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 73dabb85 2025-04-29T12:39:12 Add end2end test for AdvancedSyncVertexArray This is just a port of the upstream test: KHR-GLES31.core.shader_image_load_store.advanced-sync-vertexArray Test: ComputeShaderTest.AdvancedSyncVertexArray Bug: b/416573908 Change-Id: Id04af0a7efa667b7afc8061a9ccaa044e709fe1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6496293 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Junji Watanabe 214b7ce2 2025-05-09T11:35:31 Remove --use-reclient flag from capture_replay_tests.py The flag isn't used anymore. Bug: b/401959048 Change-Id: I6bedc9fcb2c5a5ed152b3da4bcbce0ba4785c883 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6528770 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Junji Watanabe <jwata@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 2f1f9568 2025-05-08T12:37:57 Tests: Run respawnables trace on S24 Xclipse native driver Their "native" driver is actually ANGLE. Bug: angleproject:42266627 Change-Id: I53795925219f0be42fbfcb059ce45575f5a98034 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6526326 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
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 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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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 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>
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>
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>
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>
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>
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>
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 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 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>
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>
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 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>
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>
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>
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>
Alexey Knyazev b81b7115 2025-04-04T00:00:00 Fix entry point replacements in TracePerfTest The same entry point name, including its suffix, must be used when replacing command arguments for perf testing to avoid validation errors. Fixed: angleproject:409576882 Change-Id: I076f476a7fec3fcd6a6d5e59016a67bf2cdc1aa5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6446633 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev cb60429d 2025-04-04T00:00:00 Fix BlitFramebuffer entry point validation * Fixed validation for BlitFramebufferNV and BlitFramebuffer (ES 3.0). * Updated tests. Fixed: angleproject:409579363 Change-Id: I11ef69433a5ae947c0deb069bd0abfa0144e9661 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444471 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 4f450985 2025-04-09T14:34:01 Skip 3D texture unpack test on Mac * Skipped the following test on the Mac bots (for AMD): Texture3DTestES3.PixelUnpackParamsChangeTexImage/ES3_OpenGL * Example of error on the bots: https://ci.chromium.org/ui/p/angle/builders/ci/mac-exp-test/2475 Bug: angleproject:406566447 Change-Id: Iea584dd8526ac1773c6a0bd22ea8ad3e1ef05b14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6444358 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Alexey Knyazev 76561acc 2025-04-04T00:00:00 Fix use of OpenGL ES 3.2 commands in tests Fixed tests that used OpenGL ES 3.2 commands instead of extensions when running on lower context versions. Bug: angleproject:409484297 Change-Id: I1d032a8ed4df429e564c24321101b4dfcd5d1ba8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6441554 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 02ae054c 2025-04-07T13:48:29 Translator: Fix init of inactive output variables Bug: chromium:398401939 Change-Id: I0df494b945b8d0e805a62cf7645d06bf233f36ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6438495 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Jiaqi Li a6f44806 2025-04-01T17:30:53 Wrong condition to call copyBufferDataToImage In function copyBufferDataToImage, it call vulkan vkCopyBufferToImage directly. To call copyBufferDataToImage directly, it needs that there's no overlap when copy. If mImage is not valid, it will assert in mImage->getActualFormatID(). Need to check its validation at beginning. Bug: angleproject:406566447 Change-Id: I875c2a97bec52251b9c5b3d196466e8bf5ce662d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6400313 Auto-Submit: Jiaqi Li <Jiaqi.Li@arm.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 3207b535 2025-04-08T12:50:19 Tests: Skip new denorm test on Pixel 6 Test: GLSLTest_ES3.DenormFloatsToIntValues Bug: b/406827038 Change-Id: I9202e750dc5f80f1ed0d9c2153cdc2c73b72c1d2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6441469 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 2fcd88e1 2025-04-08T09:30:59 Tests: order bot mode batch configs alphabetically Currently ordered by hashmap key ordering which shuffles the order even with --max-processes=1. Adding a sort to make this deterministic. Bug: angleproject:408276172 Change-Id: Ice96e350ba4247a1f40870e275d04d2f654bc4f5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6438024 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuly Novikov 8424dd22 2025-04-08T13:39:59 Suppress end2end test on iOS Metal PixelLocalStorageTest.FlushFinishSync added in https://chromium-review.googlesource.com/c/angle/angle/+/6427324 Bug: angleproject:40096838 Change-Id: Ibd357a357823e757c71c0d4527db774f721b28f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6440285 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Yuly Novikov 1a1978fd 2025-04-08T13:29:12 Suppress dEQP-GLES2.functional.debug_marker.random on Linux SwANGLE Bug: angleproject:42266920 Change-Id: Ib45f9c6f5c64c6fab5310f8ea24b5da308097c66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6439421 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop d27a1fd0 2025-04-03T19:59:20 Compiler: Allow denorm float values in the lexer This adds an option to preserve denorm values in the lexer, skipping the explicit zero conversions for below range floats. There are applications in the wild that expect to be able to use denorm float values. They are typically immediately converted to integer values, not used in floating point operations. The option is only enabled for Vulkan backends. Test: FloatLexTest, DenormFloatsToIntValues, app traces Bug: b/406827038 Change-Id: Iab5a1a69a540b78ccbce8ea90b532d2d4976e29e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6432237 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 79832ea3 2025-04-07T10:33:17 Revert "Suppress 5 dEQP EGL tests on Pixel 6 Vulkan" This reverts commit 87950668c45a0b5df6045d750afd4fd3c0502be2. Reason for revert: should be fixed by https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/9860 Original change's description: > Suppress 5 dEQP EGL tests on Pixel 6 Vulkan > > Report VUID-vkGetDeviceFaultInfoEXT-device-07336 after VVL roll > https://chromium-review.googlesource.com/c/angle/angle/+/6430461 > > Bug: angleproject:408225528 > Change-Id: I5208e5b4a8eea598feb0a155a6dadb3e1e722143 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6432451 > Auto-Submit: Yuly Novikov <ynovikov@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bug: angleproject:408225528 Change-Id: Ie832e7cb6856184e51a26d27c372753e2e597137 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6439031 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Chris Dalton 0f356a34 2025-04-02T14:14:43 Update invalidation commands to disable PLS Previously, commands that flush or invalidate tiled memory were specified to generate an error if issued while PLS was active. Remove all provisions around Flush(), Finish() and ClientWaitSync(), and add a test to ensure these commands have no effect on PLS. The reason we can make this change now is because we no longer support EXT_shader_pixel_local_storage, which previously prevented us from allowing these 3 commands. Update the invalidation commands to disable PLS instead. This is more in line with the general design pattern of PLS. Update the wording of the spec to reflect this better organization. Also clean up some legacy code that was no longer used. Bug: angleproject:40096838 Change-Id: I9687deaf17a583f8757ffcd050eda154b4e7a949 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6427324 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Alex Dean 3818d37d 2025-04-04T15:07:59 CL: Add end_capture to capture/replay tool Many different applications don't explicitly make it clear the ending frame of what's being run. With the end_capture utility, when the user sets end_capture to 0, the application automatically finishes the capture immediately. Example OpenCL applications where this is useful: AI-Benchmark, Geekbench Compute, Geekbench AI Bug: angleproject:402174922 Change-Id: I1710ae1b1703f710865a9862c4cf3de753c2ccbd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6339791 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi c9e90490 2025-03-27T18:26:19 Capture: Keep binary data in memory in chunks This is needed for taking large captures out of Chromium, because its memory allocator refuses to allocate objects bigger than 1~2GB. Incidentally, it also optimizes taking large captures by avoiding frequent calls to `vector::resize` while the vector is very large. Bug: b/381284577 Change-Id: I4ccd3c8ea50df59520334f70e99083847da20c9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6406214 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Igor Nazarov f798b0d2 2025-04-04T08:17:57 Vulkan: Remove enablePreRotateSurfaces feature Removed to simplify the code and to avoid the problem for which `presentSubOptimalReturnedOnTransformChange` feature was added. Platforms without the per-rotation support always have `VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR` as the `currentTransform`, so the code will perform the same as when the feature was disabled. Add `warmUpPreRotatePipelineVariations` to explicitly control per-rotation pipeline warm up. Bug: angleproject:42262166 Change-Id: I44f6c221c11105f01f62f62622987b1955bc58aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6433586 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Yuly Novikov 87950668 2025-04-04T10:38:07 Suppress 5 dEQP EGL tests on Pixel 6 Vulkan Report VUID-vkGetDeviceFaultInfoEXT-device-07336 after VVL roll https://chromium-review.googlesource.com/c/angle/angle/+/6430461 Bug: angleproject:408225528 Change-Id: I5208e5b4a8eea598feb0a155a6dadb3e1e722143 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6432451 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Le Hoang Quyen 0f9feb49 2025-03-15T23:51:04 Metal: Use render passes for B2T PBO copies. This would make it possible to avoid setting ShaderWrite usage to all textures in future. Bug: chromium:392521084 Change-Id: I25145f3578589c71ee469df08162d3a3f17c8cbe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6356129 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Alexey Knyazev f56c8e02 2025-03-28T00:00:00 Fix & cleanup advanced blend equations support * Made advanced blend equation extensions enableable to facilitate better testing. * Made initial BLEND_ADVANCED_COHERENT state to be unconditionally true regardless of the extension support. If the coherent extension is unsupported, that state must not be observable anyway. * Ensured that advanced blend equation functionality is supported on unextended OpenGL ES 3.2 contexts. * Removed redundant ES 2.0+ context version checks because these extensions must never be enabled on ES 1.x contexts. * Fixed ValidateBlendBarrierKHR to set the correct error code and properly mark invalid calls. * Added more negative test cases and enabled tests on OpenGL ES 3.0 contexts. Bug: angleproject:42262258 Bug: angleproject:406922380 Change-Id: I709376ad40b09972a31a691ca3813e87dd2c8165 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6421857 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Robic Sun 45de9be0 2025-03-27T16:38:28 num_views layout qualifiers are allowed only in vs Bug: angleproject:385038758 Change-Id: I415c9d83b227673f9fbeeb30e8f51d69c34212ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6414749 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Robic Sun <Robic.Sun@arm.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev eec873ed 2025-03-28T00:00:00 Fix FramebufferTexture2DMultisampleEXT validation Generate an error when the samples value is negative. Bug: angleproject:406922380 Change-Id: I508f3ddf82e30291fdcc3086ab19ebfa4f84947c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6421716 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Amirali Abdolrashidi bbf92d12 2025-03-21T12:43:14 Vulkan: Add workaround flag for extra submit fence This change is a workaround for some devices exhibiting a device-lost error related to the fence usage in the command batches when working with EGL sync objects, such as a cycle similar to below: - <Some GL work> - eglCreateSyncKHR() - glFlush() - eglDupNativeFenceFDANDROID() - eglDestroySyncKHR() - <More GL work> (The exact point of error and the reason for the device-lost remain unknown.) This change is meant to mitigate such errors on those devices if needed. However, for the rest, the feature will remain disabled. * Added a new feature flag: enableExtraSubmitFence * Modified the usage of mFence in CommandBatch * It is also used when enableExtraSubmitFence is enabled, even if there is an external fence. * When there is an external fence, this object is used to create an empty submission after the primary commands are submitted using the external fence. * Added the config to enable EnableExtraSubmitFence for the following suite: EGLSyncTest Bug: b/384477641 Change-Id: I05f8bdcc804967c4984416af802326d22afd7a46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6378778 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>