src/tests


Log

Author Commit Date CI Message
Cody Northrop 020e41d2 2025-09-08T12:21:51 Tests: Add Mini Games: Calm & Relax trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*mini_games_calm_and_relax Bug: b/443739993 Change-Id: Ide3ba54ec926f1ea99b50dc134c7b8094bfebb6d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6925086 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Shahbaz Youssefi 0042de5f 2025-09-08T12:04:33 Vulkan: Rename ImageAccess to ImageFormatSupport `ImageAccess` to be used for other purposes. Variable name `access` was also identical to variables of `CommandBufferAccess`. Bug: angleproject:422982681 Change-Id: I69b4d2bd773f1c5ff0fb15c7b611efd1f736061d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6923330 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 46671aea 2025-09-08T10:18:51 Tests: Add Disney Solitaire trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*disney_solitaire Bug: b/443737949 Change-Id: I0fee2e6a24682d2803e470832e910e2aca912616 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6923296 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Rafael Cintron 2207a0a2 2025-09-04T17:32:12 Remove multisampledRenderToTextureEXT from D3D Partial implemented was never completed, nor utilized for XR scenarios. CL removes the implementation Bug: chromium:443111620 Bug: angleproject:433462527 Bug: angleproject:42261786 Bug: angleproject:42263509 Bug: angleproject:42263677 Change-Id: If95581d5f9b0e43be96ef6913fe73f547e0b5501 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6915970 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Cody Northrop 62b5ab9f 2025-09-05T10:46:20 Tests: Add Talking Tom Gold Run trace Test: angle_trace_tests --gtest_filter=*talking_tom_gold_run Bug: b/443278466 Change-Id: I3109c3d03f8315fd30f5dbd259b08b160396c5d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6918099 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop e893313c 2025-09-04T17:52:21 Tests: Add Snake.io trace Test: angle_trace_tests --gtest_filter=*snake_io Bug: b/442438127 Change-Id: I86f40347d0111dfc35d813f41611691a4f71cb56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6918149 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 49366cae 2025-09-04T16:41:51 Tests: Add My Talking Tom trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*my_talking_tom Bug: b/443137624 Change-Id: I29c0b5ab0c895df7412155731d06ede897aafe0b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6915966 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Matthew Denton cfe2c8fe 2025-06-25T13:25:01 WGSL: RewriteMultielementSwizzle WGSL doesn't support assignments to multi-element swizzles. This is used in a lot of shader tests, so temporarily work around this with an AST traverser that splits these assignments into multiple assignments that only assign to single element swizzles. One special case is multiplication-by-a-matrix assignment: vec.xy *= mat; is converted to vec.x = (vec.xy * mat).x; vec.y = (vec.xy * mat).y; Bug: angleproject:392542001 Change-Id: I3f393039aae13eb3f2c5dc5e553f68eb03b6316d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6847280 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Amirali Abdolrashidi 56868bd5 2025-09-04T12:21:40 Skip uniform bool in array test for Mac * Skipped the following test on AMD Macs using Metal: SimpleUniformUsageTestES3.BoolInArray Bug: angleproject:443101808 Change-Id: Ic58b1678a99632a42e351225525f8669f70a9d8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916348 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cody Northrop 5b6084ce 2025-09-04T07:45:09 Tests: Add Matching Story trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*matching_story Bug: b/443039333 Change-Id: I4e09c05f2e21d6dcbdfb67b4631adc9b1ef69691 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916335 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuxin Hu c1cdc2b5 2025-08-22T15:23:58 Transform SPIRV to use 16-bit float for lower precision uniforms This change adds a ShCompileOption flag transformFloatUniformTo16Bits. The flag is turned on in vulkan backends where VK_KHR_16bit_storage extension is supported, and uniformAndStorageBuffer16BitAccess feature is supported. When the compiler flag is turned on, in the generated SPIRV, float data types in mediump and lowp uniforms are transformed from 32-bit to 16-bit. The 16-bit float uniform data is converted to 32-bit with OpFConvert instruction upon loading in SPIRV, this is to minimize the changes in OutputSPIRV.cpp. The converted variable is decorated with RelaxedPrecision, so that SPIRV compiler should be able to treat the converted variable as 16 bits, and the hardware can still benefit from reduced precision floats. The frontend is also notified such SPIRV shader changes by setting the isFloat16 bit in CollectVariables() step, and the frontend will transform float uniform data from 32-bit to 16-bit before storing the data into memory. That way, the uniform data that SPIRV shader reads matches with the uniform data type transformed in the SPIRV shader. This change also updates some test code to allow relative 2^-10 precision wiggle room for mediump uniform floats. This is valid according to spec: https://developer.arm.com/documentation/102502/0101/Shader-precision Bug: angleproject:405795981 Bug: angleproject:440941211 Change-Id: I05db7f5ef744df513fbad87cfed8aa173890ec26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6851560 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 397b39fe 2025-09-03T14:08:59 Tests: Add ColorBlock: Combo Blast trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*color_block_combo_blast Bug: b/442878479 Change-Id: I7a8f0ea63040f84c31d7cb96028bf2749c8644be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6913669 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 8280ca37 2025-09-02T13:27:38 Add a test for uniform reorder bug on Mac This change adds a test to cover the bug fixed in https://chromium-review.googlesource.com/c/angle/angle/+/6847281. Bug: chromium:442521269 Change-Id: I78c1b9691f7bf04b6e046d04328a42cc9eae0fcd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6907558 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 875b7400 2025-09-02T13:42:57 Tests: Add Merge Mansion trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*merge_mansion Bug: b/442622825 Change-Id: I19bec8238c3e4fd4d7f8dc9a83256a2551247998 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6907469 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 84e4054f 2025-09-02T10:43:24 Tests: Add Super Bear Adventure trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*super_bear_adventure Bug: b/442585566 Change-Id: Id04ababe0f5e28363fc615ed36db5da78c67c619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6907164 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 9e3a8f83 2025-09-01T19:17:57 Tests: Add Travel Town trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*travel_town Bug: b/442449877 Change-Id: Ia3c79ae74655fd9d917452998cba9de205ba6b83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6905176 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop bb55ea10 2025-08-31T17:59:49 Tests: Add Minecraft Vibrant Visuals trace Test: angle_trace_tests --gtest_filter=*minecraft_vibrant_visuals Bug: b/442154222 Change-Id: Iba7619720ad8dd26b0dfeaf4f8b150549189a7e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6904388 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Amirali Abdolrashidi ded3e754 2025-08-18T14:42:59 Add more tests for RGB565 * Added more tests regarding RGB565 rendering, texture copy, blit, and border color clamp. Bug: b/409867243 Change-Id: Ic9d30aee89bda3e8f6c9147fffd99d8d2d8fac64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6872406 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Tom Sepez 6f0337a0 2025-08-28T23:13:22 Avoid some needless c_str() calls. Remove conversions from string -> char* -> string, as detected some time ago by a clang compiler plugin. Typically, this occurs when passing a c_str() result to a function that expects a string argument. Bug: b/412730353 Change-Id: I1d9c83e9ed5c4900eec266e71f534661f0f3d4d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896657 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Tom Sepez <tsepez@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 28682948 2025-08-14T15:20:16 Update setFloat and getFloat APIs to handle 16-32 bit transformations This change checks that if linkedUniform.isFloat16() is true, then transform 32-bit float to 16-bit half float before writing the data to memory, and transform 16-bit half float to 32-bit float after reading the data from memory. Given that we did not change buffer layout, and the spirv requirement with matrix component alignment, we have to copy transformed data row by row / col by col, or element by element. This change is no op, as none of the linkedUniform.isFloat() bit is set to true. The change will take effect in the future change when we add the compiler code that set linkedUniform.isFloat() to true. Bug: angleproject:405795981 Change-Id: I72b74eb340dae723501038875c3706ad2c1cc3f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6851558 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 24d3f6a4 2025-08-29T09:43:58 Tests: Add Vita Mahjong trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*vita_mahjong Bug: b/441948358 Change-Id: Idde12aebb12bf3a1230de1e2f132f0a6ed586595 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6897504 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 6ca17fba 2025-08-28T17:12:51 Tests: Add Indian Bikes Driving 3D trace Test: angle_trace_tests --gtest_filter=*indian_bikes_driving_3d Bug: b/441808359 Change-Id: I0a4f526fee4b3b3d0e46f30735a8fe48fe4f4d03 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6898414 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Cody Northrop a1fa1ddc 2025-08-28T13:16:57 Tests: Add Total Battle trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*total_battle Bug: b/441768019 Change-Id: I432a14aff611e84527521bb065fe447557ce72e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896936 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 1ae273ee 2025-08-27T10:47:59 Translator: Output struct members in OutputTree Bug: chromium:438038775 Change-Id: I2a1bed5207b1b2c26f20ee9ebd80fb00ec803bc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6891072 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi af0386cb 2025-08-27T10:44:53 Reorder structs entirely made of samplers to the end of struct An earlier change [1] moved samplers to the end of structs so that extracting them does not disturb the indices to the non-sampler fields. This change does the same for structs that only contain samplers, because they too get removed from the parent struct, disturbing indices. [1]:https://chromium-review.googlesource.com/c/angle/angle/+/5748789 Bug: chromium:438038775 Change-Id: I7ac2ea13723bf06b4b172b6e70f0dbe85bc45ce3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6891071 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 08ee8585 2025-08-28T09:27:51 Tests: Add Soccer Superstar trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*soccer_superstar Bug: b/441721624 Change-Id: I8b954ace7ea96eff0dd7cc2edff19a87d6a8b437 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6897006 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Shahbaz Youssefi 1ed999ea 2025-08-25T16:02:01 Vulkan: Move sampler cache to share group The sampler cache (and the adjacent yuv-conversion-info cache) were in vk::Renderer, but they were not thread safe. Bug: angleproject:440364873 Change-Id: I2dc034f2db400f680ca91a9fde509d90f90c957e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6870736 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 9a5eea61 2025-08-27T12:01:26 Tests: Add Football League 2025 trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*football_league_2025 Bug: b/441524270 Change-Id: I2fcb0d8fa61a5c9a8f7dcb142d79b25eda3d9d44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6891990 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Cody Northrop 87347355 2025-08-27T10:14:46 Tests: Add School Party Craft trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*school_party_craft Bug: b/441504808 Change-Id: I777bccb132acc4fb1d5891ce0793e262a89af59d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6891912 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop bb27274f 2025-08-27T09:04:05 Tests: Add Offline Games trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*offline_games Bug: b/441489135 Change-Id: I0bfbfab40c525bc87c8b077748e09171e501567a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6891371 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Cody Northrop 117cddc8 2025-08-27T07:48:01 Tests: Add Tile Club trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*tile_club Bug: b/440580308 Change-Id: Idb8f18402de702a434e16c9c9835fdb20c73db69 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6890511 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Cody Northrop be2fc5c3 2025-08-27T07:43:13 Tests: Add Royal Kingdom trace This trace was contributed by Samsung. Test: angle_trace_tests --gtest_filter=*royal_kingdom Bug: b/440579756 Change-Id: Ie30f37e58f2b422aa9bd8d5fd9acf3d8409fd7e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6890419 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Tom Sepez a02670d6 2025-08-26T20:41:16 Move unsafe buffers inside header guard macros While this is exactly opposite of what Chromium has chosen to do, there is an issue with clang-format trying to indent preprocessor directives four spaces relative to include guard. This is because Angle's .clang-format file specifies IndentPPDirectives: AfterHash but Chromium's does not. The current placement is sufficient to throw off clang-format's guard detection since the guard macro no longer covers the entire file. Bug: b/436880895 Change-Id: Ic6b99c8cef6213939cdf9b42af8730e1eb423065 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885892 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Tom Sepez <tsepez@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton b9cec916 2025-08-12T19:44:18 WGSL: default uniforms gathered in interface block The default uniform struct was being manually output by OutputUniformBlocksAndSamplers(), which did not add the appropriate @align(16) annotations to lay the struct out according to WGSL's uniform address space layout requirements. This CL uses Vulkan's method of gathering the default uniforms into an interface block. The interface block will be output normally by the traverser, including @align() annotations. The variable declaring an instance of the interface block is still output by OutputUniformBlocksAndSamplers() because it needs special @group() and @binding() annotations. Bug: angleproject:376553328 Change-Id: Ib3be7d51ffedefe5ec579a1c9aaf0a535146c694 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6795028 Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 17e99163 2025-08-25T21:19:08 Tests: Add Ace Racer trace Test: angle_trace_tests --gtest_filter="*ace_racer*" Bug: b/441170882 Change-Id: I8a244b2db1c9e62bd401e40ac911e868088c7dba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6882667 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tom Sepez 25390156 2025-08-21T00:13:19 Suppress unsafe buffers on a file-by-file basis in src/ [1 of N] In this CL, we suppress many files but stop short of actually enabling the warning by not removing the line from the unsafe_buffers_paths.txt file. That will happen in a follow-on CL, along with resolving any stragglers missed here. This is mostly a manual change so as to familiarize myself with the kinds of issues faced by the Angle codebase when applying buffer safety warnings. -- Re-generate affected hashes. -- Clang-format applied to all changed files. -- Add a few missing .reserve() calls to vectors as noticed. -- Fix some mismatches between file names and header comments. -- Be more consistent with header comment format (blank lines and trailing //-only lines when a filename comment adjoins license boilerplate). Bug: b/436880895 Change-Id: I3bde5cc2059acbe8345057289214f1a26f1c34aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6869022 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxiang Qian 611f9ac0 2025-08-20T16:10:13 Lower the cap of max element index Currently, ANGLE follows vulkan spec and returns UINT_MAX -1 for GL_MAX_ELEMENT_INDEX. However, ANGLE stores vertex index in int, so even if we use index a little less than the limit, ANGLE would still catch the overflow error. Modify the cap to 2^30 - 1 to make it safer. An end2end test is also added. Bug: angleproject:440227026 Change-Id: Ie089c9847f3908f0e8a1b7c4b83c8fea1cde262e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6870270 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Mark Lobodzinski 19483cc6 2025-08-25T19:27:26 Tests: Add Bingo Blitz ANGLE trace Test: angle_trace_tests --gtest_filter=*bingo_blitz Bug: b/441137178 Change-Id: Ia463fbc93090d2c55a3f35f7cd34ca6267273c7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6882619 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Panfeng Hou d65058be 2025-08-18T11:01:11 Vulkan: Add support for GL_EXT_fragment_shading_rate_primitive Add support for built-in GL_EXT_fragment_shading_rate_primitive and tests. Bug: angleproject:397255625 Change-Id: I0f37a87a73e869a91e39402f01e53166b359ec3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6850353 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Panfeng Hou <panfeng.hou@arm.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Jisun Lee 0af6e4ee 2025-08-13T06:16:01 Vulkan: Check format compatibility to enable mip levels If redefining the texture level is needed while respecifying the image storage, the base level could be incompatible with the max level count. Enabling the whole level count can cause a null pointer dereference when copying an image that does not support `pixelReadFunction`. To handle the problem, this CL checks the format compatibility and enables only the effective base level. Bug: b/435727832 Test: angle_end2end_tests --gtest_filter=DXT1CompressedTextureTest.* Test: angle_end2end_tests --gtest_filter=Texture2DTestES3.* Change-Id: I01060332f282ef9b2856390d0d7296811a464795 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6813835 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxiang Qian 51cffa97 2025-08-13T14:23:51 Implement EGL_NV_context_priority_realtime In this extension, new attribute value EGL_CONTEXT_PRIORITY_REALTIME_NV is accepted for EGL_CONTEXT_PRIORITY_LEVEL_IMG. In ANGLE, this extension should depend on VK_EXT_global_priority and VK_EXT_global_priority_query. The implementation of creating device queue is also modified for this new attribute value. New end2end test is added to check if this new attribute works. Bug: angleproject:397474813 Change-Id: I68316fe371f5a495dbc78b106fc89787be18e086 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6857673 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 9280c6b9 2025-08-20T08:04:15 Roll VK-GL-CTS from ad59a18f2ce0 to 0a3dad34ebb4 (60 revisions) Skip dEQP-GLES31.functional.copy_image.non_compressed.viewclass_16_bits.*.texture2d_array_to_texture3d dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.* dEQP-GLES31.functional.copy_image.non_compressed.viewclass_64_bits.*.texture2d_array_to_texture3d on Pixel 4 Vulkan https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/ad59a18f2ce0..0a3dad34ebb4 2025-08-15 lorenzo@khronosgroup.org Merge "Merge vk-gl-cts/github-main into vk-gl-cts/main" into main 2025-08-15 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.3 into vk-gl-cts/main 2025-08-14 mateusz.bahyrycz@mobica.com Add tests for copying invalid binding 2025-08-14 ziga@lunarg.com Add HIC tests for all formats and reduce other variations 2025-08-14 rgarcia@igalia.com Test buffer and image capture&replay re-usage with descriptor buffer 2025-08-14 mateusz.bahyrycz@mobica.com Add tests for writting unused and invalid binding 2025-08-14 mateusz.bahyrycz@mobica.com Add tests for image to buffer copy for color formats 2025-08-14 rgarcia@igalia.com Modify suspend/resume FDM offset tests to use consistent offsets 2025-08-14 ziga@lunarg.com Fix image barrier issues in render_to_image tests 2025-08-14 ziga@lunarg.com Fix invalid access mask in buffer_view compute tests 2025-08-14 ziga@lunarg.com Fix image layout transitions in image 2d_array_compatible tests 2025-08-14 lorenzo@khronosgroup.org Update SPIR-V sources: replace gl_SemanticsRelaxed in atomicStore when used with non-zero storage class semantics 2025-08-14 piotr.byszewski@mobica.com Fix hlsl_functionality1.counter_buffer on spirv-tools TOT 2025-08-14 syoussefi@google.com GLES: Fix debug tests not clearing the error (if no message) 2025-08-11 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_KHR_shader_untyped_pointers' into main 2025-08-11 lorenzo@khronosgroup.org Update Vulkan headers to v1.4.325 2025-08-08 ziga@lunarg.com Test presenting image from retired swapchain 2025-08-08 piotr.byszewski@mobica.com Test computing LOD from explicit cubemap derivatives 2025-08-08 gleese@broadcom.com Enable some low-bit-depth bitfield tests without maint9 2025-08-08 ziga@lunarg.com Fix maintenance9 check in query pool get_create_reset tests 2025-08-08 ziga@lunarg.com Add missing barrier in sample locations tests 2025-08-08 ziga@lunarg.com Fix layer count in geometry layered tests 2025-08-08 ziga@lunarg.com Fix reading from image in undefined layout in query pool tests 2025-08-08 david.rosca@amd.com Don't require all modifiers to be compatible with video 2025-08-08 lorenzo@khronosgroup.org Complete automatic JSON generation for all remaining KHR extensions 2025-08-08 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.3 into vk-gl-cts/main 2025-08-05 lorenzo@khronosgroup.org Update Vulkan headers to 1.4.324 2025-08-01 zzoon@igalia.com Replace the customized parser with one in VVS Khronos. 2025-08-01 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.12 into vk-gl-cts/main 2025-08-01 lorenzo@khronosgroup.org Add JSON files for VK_KHR_present_id2 and VK_KHR_present_wait2 2025-08-01 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_KHR_present_id2' into main 2025-08-01 abdolrashidi@google.com Shift fixed-point value if between accepted values 2025-08-01 rgarcia@igalia.com Test descriptor buffer with 3-plane image formats 2025-08-01 rgarcia@igalia.com Check baseTriangle is honored in opacity micromap tests 2025-08-01 rgarcia@igalia.com Test large number of compute and task DGC sequences 2025-08-01 rgarcia@igalia.com Check maxMipLevels/maxArrayLayers in compressed image copy tests 2025-08-01 david.rosca@amd.com Don't call vkCmdFillBuffer on unsupported queues 2025-08-01 michal.jakubek@mobica.com Reduce link time and disk space for Capabilities 2025-08-01 michal.jakubek@mobica.com Unwritten attachments with dual-source blending 2025-08-01 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.3 into vk-gl-cts/main 2025-08-01 lorenzo@khronosgroup.org Auto-generate JSON for VK_EXT_fragment_density_map_offset 2025-08-01 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_EXT_fragment_density_map_offset' into main 2025-07-25 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-cts-4.6.6 into vk-gl-cts/main 2025-07-25 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.12 into vk-gl-cts/main 2025-07-25 ziga@lunarg.com Fix bad merge 2025-07-25 ziga@lunarg.com Add tests for ms input attachment feedback loop 2025-07-25 ziga@lunarg.com Test OpImageSampleImplicitLod with RelaxedPrecision and ycbcr image 2025-07-25 nikigupta@google.com Add test for gl_Position not declared inside built-in block in geometry shader 2025-07-25 marcin.zajac@cognizant.com Degenerate triangles in AS update 2025-07-25 david.rosca@amd.com Skip unsupported AV1 encode tiling tests according to maxTiles cap 2025-07-25 ziga@lunarg.com Fix errors in maintenance9 2d_array_compatible image tests 2025-07-25 ziga@lunarg.com Test writes to partially bound ds attachments are discarded 2025-07-25 gleese@broadcom.com Fix identity checking in subgroup scan tests 2025-07-25 lorenzo@khronosgroup.org Add auto-generation for existing KHR extensions (simple ones) 2025-07-25 scerveau@igalia.com VideoEncodeTestsAV1: keep same name for input filename 2025-07-25 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.3 into vk-gl-cts/main 2025-07-24 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.3 into vk-gl-cts/main 2025-07-24 lorenzo@khronosgroup.org Add logging and checking for missing JSONs for VK_KHR extensions 2025-07-24 lorenzo@khronosgroup.org Add VK_KHR_video_encode_intra_refresh JSON 2025-07-23 okuznetsov@google.com Add full image level copy tests to es31fCopyImageTests If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,ynovikov@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:440743718 Change-Id: I9313b003dc8ae2a1dd64d264fa2b7847ae2b02ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6865062 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Mark Lobodzinski 8d43d9b9 2025-08-21T21:15:06 Tests: Add Hunter Assassin ANGLE trace Test: angle_trace_tests --gtest_filter=*hunter_assassin Bug: b/440565036 Change-Id: I502db22ba7967406f61ffa1437865992b05c1a34 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6876526 Auto-Submit: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov ef80e82f 2025-08-22T15:07:59 Skip slow test on Mac Metal AMD GLSLTest_ES3.ManySamplerFieldsInStructComplex/ES3_Metal takes 38 seconds and causes batch timeouts. Bug: angleproject:440536251 Change-Id: I53ad821bc4da4696609f9b8c0f5cbee1ed94dbd1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6874571 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>
Geoff Lang 86a8d11c 2025-08-11T16:45:39 Metal: Fix potential incorrect format used for texSubImage TextureMtl caches the most recent format used for a texture redefinition in mFormat. During subImage calls, this format may not be the same as the image being uploaded to. Pass ImageDefinitionMtl to these functions which reference mFormat, it contains the format of the image being updated. MacOS OpenGL is skipped because the driver generates errors in glCompressedTexImage2D. Bug: chromium:435683799 Change-Id: Idec6f71870c2d376cad3a5e3628b957009bdced9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6838878 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Mark Lobodzinski d0ba2fb9 2025-08-20T12:16:07 Tests: Add Onmyoji ANGLE trace Test: angle_trace_tests --gtest_filter=*onmyoji Bug: b/440323747 Change-Id: Ia549dcfa370fac23785364adb717babde8b8ca4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6871872 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski 995c4c4d 2025-08-20T12:14:47 Capture/Replay: Target GLES3.1 to avoid SSO limitations Retracing with get_min_reqs can produce results which limit trace portability. Modify retrace script to detect when GL_EXT_separate_shader_objects is required, and then to increase min_version to 3.1 where this ext was moved to core and remove the ext from the required list. Test: angle_trace_tests --gtest_filter=*onmyoji --use-gl=native Bug: b/440102792 Change-Id: I36258fd7b9b5c5aa3e87ad9908849ef2a900e898 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6866639 Auto-Submit: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Liza Burakova 03068e0c 2025-08-20T17:36:22 [WebGPU] Implement direct copy for images. This CL implements CopyImage specifically in cases where the source is the same size and format as the destination. Bug: angleproject:438268609 Change-Id: Icf5f3685bb2f49874d996883c839515314f1c189 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842317 Commit-Queue: Liza Burakova <liza@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tim Van Patten 5d9d9b9b 2025-08-19T17:12:03 test: 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). Until https://crrev.com/c/6552257, many tests used 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), the calls were updated to use eglGetPlatformDisplay(). Unfortunately, EGLContextPassthroughShadersTest was missed. Bug: b/409384875 Test: angle_end2end_tests Change-Id: I5c620bce98c8e76113588f4c94b77d95a5223171 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6862841 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Alex Dean 9bd6785d 2025-08-12T15:19:08 Revert "Tests: Skip CapturedTestCL to unblock vulkan-deps roll" This reverts commit 2a5ad67c883a28436d7399d73a2ccdb9ef53c641. Additionally, this modifies CapturedTestCL.cpp so there is no failure coming from the vulkan-deps roll. Bug: angleproject:438220619 Bug: angleproject:438195622 Change-Id: I6cf2d11d7ff77ce4513948b22b8c59d970c7810b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842222 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Sungyong Choi 119ffd44 2025-08-13T16:07:52 Fix -Wreturn-type in ShadowSamplerFunctionsTest::FunctionName Add UNREACHABLE() and a fallback return to ensure the non-void function always returns when switch does not cover all enum values. BUG: angleproject:438226513 Change-Id: I3904dd59b323b90930d9251b060ab7067ff412c7 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845486 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana 4c834956 2025-04-09T20:30:43 CL/Vulkan: Add fp16/64 to extension list if supported The checks for fp16 and fp64 support are already setup on the vulkan backend and clspv side. Add them to the reported extension list. Also added "-d" flag to bruteforce smoke to toggle off 64-bit precision testing (i.e. just test single precision in smoke for now) Bug: angleproject:433980941 Change-Id: Icbbde7500cf43e5c0a256411f001252bfec5ad24 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785092 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Panfeng Hou 25f5e2cf 2025-08-13T17:03:19 Vulkan: Add support for built-in gl_PrimitiveShadingRateEXT Add support for built-in gl_PrimitiveShadingRateEXT and relative const value. Bug: angleproject:397255625 Change-Id: I25d51f5805697e137b232175ee790808c45850b7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845515 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 1d8279a2 2025-08-13T13:35:02 Do not sort ANGLE internal uniforms or built-in uniforms On Mac, for webGL app on chrome, if the uniforms added by ANGLE are not placed at the top of the ANGLE_UserUniforms struct, the user defined uniforms in the same ANGLE_UserUniforms struct seem to be messed up and not read correctly by shader code. This change fixes it by moving the sortUniforms() function call to the place before we add ANGLE internal uniforms. That way ANGLE internal uniforms will be inserted later and stay on top of ANGLE_UserUniforms struct. Bug: chromium:437678149 Change-Id: I34a0d3dcb98c5fe30ad248381ecb5f7f78252275 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6847281 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxin Hu edb05627 2025-08-12T12:17:36 Fix sort uniform bug Current sort doesn't take care of the case when both uniforms are struct specfiers. Given that struct types are easily broken by sort, make the sort not reordering uniforms if both are structs. Bug: b/437825940 Change-Id: Idda1810ac4234f7e1547735e4e09658ab0a57eed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842936 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 899f3505 2025-08-07T09:59:19 TestSuite: Android: Call onCrashOrTimeout() on test crash Currently, when a test crashes on Android we don't get any results for tests that ran or for the crashing test itself. This makes it difficult for developers to debug the issue, since they don't know which test crashed. Add signal handlers which call onCrashOrTimeout() when a test crashes. Typically, crashes occur within the individual tests rather than in the test runner (TestSuite), so it should be "safe" to attempt to dump the results up to and including the crash to aid with debugging. This is still risky since things are in a bad state, but we expect (essentially) all crashes to be in the individual tests, ANGLE, or the underlying driver code, rather than in the TestSuite instance, so writing the results JSON file should have a good chance of succeeding. Worst case, we just crash again and get nothing (like we have before this change). Bug: b/279980674 Change-Id: Ifd5f3b97d5af731586e7bbf765bb60b3cb4f503b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6827986 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Solti Ho <solti@google.com>
Junhua Chen ef4bc113 2025-08-07T14:20:08 Add DIR_METADATA to specific buganizer_public component_id Currently LUCI Analysis file bugs for angle test flaky issue under the top level Chromium component, example: http://crbug.com/401993176 These bugs should filed directly under the Public Trackers > ANGLE, to avoid engineers updating the component manually. Bug: b/437142709 Change-Id: Ie8fa4f02fea10c49cb94d736f674f655fe9f791b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6829151 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Xiang Wang 9d1edb4e 2025-08-08T18:21:03 Fix the assert on texture target to allow GL_TEXTURE_CUBE_MAP_ARRAY Add anend2end test to verify glCopyImageSubData works. Bug: b/419863436 Test: TextureCubeTestES32.CopyImageSubDataCubeMapArray Change-Id: I2a569680ed20f05b4182045cb4bdf08d4c66d8df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6832639 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Xiang Wang <xwxw@google.com>
Matthew Denton 7e28089b 2025-07-31T18:44:01 WGSL: support bvecs in uniforms WGSL does not allow booleans in the uniform address space. The last CL uses u32s to represent bools in the uniform address space, and this CL uses vecN<u32> to represent bvecN. Bug: angleproject:376553328 Change-Id: Ibf9f1fbf230ca03dd3d4661ba599e5fb1cb26ac4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6808955 Reviewed-by: Liza Burakova <liza@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Cody Northrop 2a5ad67c 2025-08-12T10:23:10 Tests: Skip CapturedTestCL to unblock vulkan-deps roll Test: angle_end2end_tests --gtest_filter=CapturedTestCL.* Test: capture_tests.py Bug: angleproject:438195622 Change-Id: I9dd0f861ce4325c29305aa8de598f3434ec86ab3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842935 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi b2e2766c 2025-08-12T11:08:46 Translator: Reject bool < bool This is not allowed per the GLSL ES spec. Bug: chromium:437983671 Change-Id: I9bd46718a35917dcdf6382cd51253ca2b68d5636 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6842555 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Austin Annestrand 3643c21d 2025-08-11T15:02:18 Suppress oclcts NonUniform Workgroup failures pt.2 Suppress 2 other non-uniform workgroup smoke tests (as a stop-gap) until we root-cause the issue. Unblocks: https://chromium-review.googlesource.com/c/angle/angle/+/6831861/1 Bug: angleproject:42267085 Change-Id: I956d3706e160f38e33e5789e70abdc343fac8b54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6838877 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao 555b2328 2025-08-08T13:32:13 BindVertexBuffer should pick up buffer change in other context Buffer is modified in the first context and calling glBindVertexBuffer() of the same buffer on the second context should pick up the buffer changes made in first context. Bug: b/433331119 Change-Id: I694f66b38b11b87e0efa8d9b939f8384120823af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6830125 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop 9a23635c 2025-08-09T18:17:33 Tests: Add Frost and Flame trace Test: angle_trace_tests --gtest_filter="*frost_and_flame*" Bug: b/437598600 Change-Id: Icf8c5ce3e0e1f0cadc442aedc8b38a70efb1e3f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6834277 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com>
Charlie Lao 5f5baf86 2025-08-08T10:22:07 Reduce WebGLCompatibilityTest::L32FTextures test time This test is looping formats. Within each loop it compile the same program which makes this test take very long to finish. This CL caches the programs so that it only compile/link once. This reduce this test run time on my local gLinux box from 1633 ms to 326 ms. Bug: angleproject:40096431 Change-Id: I32d7ad4fd25e1e4130766578fff21b1a2058c183 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6830119 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 9367369d 2025-08-08T16:56:58 Tests: Add Kingshot trace Test: angle_trace_tests --gtest_filter="*kingshot*" Bug: b/437417676 Change-Id: I6c4a7a095266f6f99b0810854acbbfb50024d52f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6832638 Reviewed-by: Solti Ho <solti@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Matthew Denton ca3d732d 2025-07-24T16:22:31 WGSL: support bool in uniforms WGSL does not allow booleans in the uniform address space. This CL changes the translator to substitute u32 for bool in the uniform address space, and convert it to bool on use. Arrays of bools are obviously arrays of u32s, and those will need special conversion functions to convert the entire array<u32> to array<bool> if necessary. This also includes the optimization of an array<bool> in a uniform--when indexing into it, only the indexed element will be converted to a native bool, instead of converting the entire array and then indexing. Note that substituting u32 for bool matches std140, so this change requires no changes to layout of uniforms. Also note that WGSL really likes explicit casts, so there's not really a way to avoid inserting explicit casts everywhere when using u32. Bug: angleproject:376553328 Change-Id: I8f72e55c6b401c28ff622622df7a450b7032721f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785609 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Charlie Lao d63cff37 2025-08-06T13:31:02 Fix bug when rebind the same buffer not pick up the change Buffer is modified in one context and rebind the same buffer on the second context should pick up the buffer changes. Bug: b/433331119 Change-Id: I8085fe826c339692881f2d3d6515efb19bbc4a88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6825767 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 8796f68c 2025-08-07T14:25:19 Tests: Add Top Heroes: Kingdom Saga trace Test: angle_trace_tests --gtest_filter="*top_heroes_kingdom_saga" Bug: b/437162076 Change-Id: Ia690266b34f0da0c23fbd099ed28f20657529644 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6828593 Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Tingwei Guo 7c8e357c 2025-07-15T17:24:25 Fix NULL handling in glGetAttachedShaders and ShaderPrecisionFormat Fix the case where passing NULL to the shaders parameter in getAttachedShaders and to the range and precision parameters in getShaderPrecisionFormat would trigger assertions. Bug: angleproject:431900689 Change-Id: I0d01bbb0d13f9a4704b47066c85ac7c1368534a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6733749 Auto-Submit: Tingwei Guo <tingwei.guo@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Yuly Novikov b778f1ce 2025-08-07T15:31:01 Balance test shards to 10 minutes Shards increased due to googletest roll: angle_end2end_tests on Win ASAN: 10 -> 14 angle_deqp_gles3_tests on Linux ASAN and TSAN: 8 -> 11 Drive-by shards increase for slowness which was not investigated: angle_end2end_tests: on Linux Intel and Windows and Linux NVIDIA: 2 -> 3 on Win Intel experiment (UHD 770, 2 processes): 3 -> 5 on Win Intel (UHD 630, 1 process): 4 -> 10 angle_restricted_trace_gold_tests on Linux Intel and Windows and Linux NVIDIA: 1 -> 3 on Win Intel UHD 770: 1 -> 4 on Win Intel UHD 630: 1 -> 5 angle_trace_perf_vulkan_tests on Win Intel UHD 770: 2 -> 4 on Win Intel UHD 630: 2 -> 3 Skip EGLDisplayTest.ContextLeakAfterTerminate on Linux Intel, which started failing with the new sharding. Bug: angleproject:428697844, angleproject:437259106 Change-Id: I3ba458aa7b68bddf9786bb9fcbc2a3ed7479556c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6827389 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski 61ddca79 2025-08-07T11:16:29 Tests: Add Gossip Harbor ANGLE trace Test: angle_trace_tests --gtest_filter=*gossip_harbor Bug: b/437087719 Change-Id: Ia0d313b3e34074df8e24ad3eae63b4718ed2bfc7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6828000 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Charlie Lao 328a205f 2025-08-07T11:02:12 Revert "Fix bug when reattach the same buffer not pick up the change" This reverts commit a93f4c8d29c8d214e4823032e6e2c061d5dab1b1. Reason for revert: https://issues.chromium.org/437092065 Bug: b/433331119 Original change's description: > Fix bug when reattach the same buffer not pick up the change > > Added a test that the same buffer is used in two contexts. Buffer is > modified in one context and reattached the same buffer on the second > context's vertex array should pick up the buffer changes. This test > exposed the bug and it is fixed in this CL. > > Bug: b/433331119 > Change-Id: Ia5675581857a642fe9727f196326da9af43d52cf > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821923 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Commit-Queue: Charlie Lao <cclao@google.com> Bug: b/433331119 No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Iaa14b5dbbdb02c69bb060d5073072ec6ddd473ce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6827998 Auto-Submit: Charlie Lao <cclao@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mark Lobodzinski 1943d505 2025-08-06T10:03:45 Tests: Add Seaside Escape ANGLE trace Test: angle_trace_tests --gtest_filter=*seaside_escape Bug: b/436801950 Change-Id: Iedc4b03317ef02585ccf86b54494f1938379a68a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6823580 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Mark Łobodziński <mark@lunarg.com>
Charlie Lao a93f4c8d 2025-08-05T16:45:21 Fix bug when reattach the same buffer not pick up the change Added a test that the same buffer is used in two contexts. Buffer is modified in one context and reattached the same buffer on the second context's vertex array should pick up the buffer changes. This test exposed the bug and it is fixed in this CL. Bug: b/433331119 Change-Id: Ia5675581857a642fe9727f196326da9af43d52cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821923 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Tim Van Patten 88de021d 2025-08-01T17:15:22 tests: Skip PbufferDifferentConfig on system EGL Skip the test EGLBackwardsCompatibleContextTest.PbufferDifferentConfig when testing the system EGL, because not all platforms expose ANGLE-specific extensions. Bug: b/409384875 Test: angle_end2end_tests \ --gtest_filter=EGLBackwardsCompatibleContextTest.PbufferDifferentConfig/ES2_Vulkan_NoFixture Change-Id: I1556d7981d1e6c8c6fc1803cafcb76fa1052dcef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6814161 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Tim Van Patten bc7e86b1 2025-07-30T14:55:34 tests: RequestedRendererCreated: Get created context version If the driver being tested does not support the ANGLE extension EGL_ANGLE_create_context_backwards_compatible, then the Context version returned may not match the requested version. Update the test RendererTest.RequestedRendererCreated to query the current Context's version if the extension is not supported so the renderer string is checked against the correct value. Continue enforcing the renderer string has the expected value if the extension is supported. Bug: b/409384875 Test: angle_end2end_tests --gtest_filter=RendererTest.RequestedRendererCreated/* Change-Id: Iad1b6d36a31b7d79e8fc5fae9e4cc9769b55edb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803326 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten c2316adb 2025-08-05T10:43:09 Add support for ARM to expectations file Add support for skipping tests on ARM devices with the tag "ARM". Bug: b/279980674 Change-Id: If310955c5dfb2af19493f8af70f4f6c00c97fcc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821832 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 5f42ce7e 2025-08-05T11:57:54 Enable KHR-GLESEXT tests on bots * Enabled several bots to run the khr_glesext tests. * Skipped some failing tests for Vulkan. Bug: b/436389014 Change-Id: If0c43f508eb04c21307f75c6dc62e3ef30b0556e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821642 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 71b7b5ee 2025-08-04T18:44:35 Add KHR-GLESEXT test suite * Added rules to build new dEQP test binary to run KHR-GLESEXT tests: angle_deqp_khr_glesext_tests Bug: b/436389014 Change-Id: I53b74605d3c2a9a5f6a8fece17bc3f7656a6772c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6820701 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop f3b4b716 2025-08-05T14:28:04 TracePerfTest: Disable debug callbacks for GLES1 on Android We're seeing nullptr crashes when running GLES1 traces through the Android EGL loader with debug callbacks enabled. The callbacks are only enabled for Debug builds. Current theory is that the loader exposes the extension, but doesn't actually connect the call for GLES1 contexts. For now, expand the existing ARM skip to all Android devices. Test: restricted_trace_perf.py --renderer vulkan -f minetest Bug: b/352386141 Bug: b/436624755 Change-Id: I8ebe8f53c5efdecb2169ce017886753779ef5219 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6821913 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi fc0e0397 2025-07-31T13:15:45 Translator: Fix location validation for inout Without this validation, a shader using an inout variable can write into a memory beyond the limit set by MaxDrawBuffers when shader framebuffer fetch is enabled. * Extended the location check in visitSymbol() to include InOut qualifiers (EvqFragmentInOut) as well (in ValidateOutputsTraverser). * Moved RewritePixelLocalStorage() after ValidateOutputs() to avoid issues related to locations not being specified in the InOut nodes from the PLS implementation. * Added a unit test to test that this case results in a compilation error: GLSLTest_ES3.CompileFSWithInoutLocBeyondMaxDrawBuffers Bug: chromium:435139154 Change-Id: I44c729377a2e1d3126c2d279172217b2ab92b57b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6806230 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Aurora Zhang be43e317 2025-07-31T17:40:24 EXT_external_buffer should have DYNAMIC_DRAW usage EXT_buffer_storage requires that BUFFER_USAGE must be DYNAMIC_DRAW. EXT_external_buffer only mentions that the buffer can be sourced from an external EGLClientBuffer. Therefore, the BUFFER_USAGE should still be DYNAMIC_DRAW. Add an end2end test. Bug: angleproject:436046320 Change-Id: Ie79a1b1f8be0df4566bff26800599b192c4f70b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6817076 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Aurora Zhang <Aurora.Zhang@arm.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Panfeng Hou 2ef85c24 2025-07-09T17:13:52 Vulkan: Add support for GL_EXT_fragment_shading_rate Add support for GL_EXT_fragment_shading_rate. Bug: angleproject:420310117 Change-Id: I7b368afc45baf8551c222b2569991269117d385b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6726817 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Panfeng Hou <panfeng.hou@arm.com> Reviewed-by: Charlie Lao <cclao@google.com>
Matthew Denton a1d5d102 2025-07-22T02:15:43 WGSL: Allow matrices as in/out vars in shaders WGSL only supports scalars and vectors in in/out vars in shaders, matrices will need to be broken into column vectors and then put back together at the beginning (or end) of the shader. Arrays also need to be split, which will be done in another CL. Bug: angleproject:42267100 Change-Id: If1ba28c1b687ae0a3a5a554479f0ff0b5d9df39c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777201 Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Tim Van Patten b0e0c9f6 2025-07-30T17:20:25 tests: DefineTexture2DArrayShouldFail skip on ES3+ The test Texture3DTestES2.DefineTexture2DArrayShouldFail is validating behavior specific to OpenGL ES 2.0. Skip the test when running on OpenGL ES 3+ contexts, which is possible when testing the system EGL which may not support the extension EGL_ANGLE_create_context_backwards_compatible. Bug: b/409384875 Test: angle_end2end_tests --gtest_filter=Texture3DTestES2.DefineTexture2DArrayShouldFail/* Change-Id: I129ce494c784c3889f21d4950a0302258b423b08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6803336 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Tim Van Patten aa533732 2025-07-28T15:56:13 CreateGeometryShaderInES3: Skip on ES3.1+ When testing the system EGL (angle_test_enable_system_egl = true), the context returned is the maximally conformant version, which can be OpenGL ES 3.2. The test GeometryShaderTestES3.CreateGeometryShaderInES3 verifies that geometry shaders cannot be created, assuming it will only ever be testing ES 3.0 contexts. 1. Add ANGLE_INSTANTIATE_TEST_ES3_AND_ES31_AND_ES32() to instantiate a test for ES 3.0, 3.1, and 3.2. 2. Update GeometryShaderTestES3.CreateGeometryShaderInES3 to skip when testing ES 3.1+ contexts. 3. Instantiate GeometryShaderTestES3 for ES 3.0, 3.1, and 3.2. Bug: b/409384875 Test: GeometryShaderTestES3 Change-Id: Ic5b4dbb167b8de7f24da285b4620f5257ed7df54 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6794766 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski b61038bf 2025-07-28T21:55:11 Tests: Add ANGLE trace for Whiteout Survival Test: angle_trace_tests --gtest_filter=*whiteout_survival Bug: b/435147875 Change-Id: I09c429dca130321f2a7cd33abdb0521715637257 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6801131 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Igor Nazarov 3e52318c 2025-06-26T10:46:00 Vulkan: Ensure always using resolved Window Surface size `WindowSurfaceVk::getWidth/Height()` methods return cached, previously resolved Surface size. Using these methods while current Window Surface size is unresolved may return stale values, causing undesired behavior. Appropriate ASSERTs were added to these methods to prevent such usage. Added ASSERTs revealed few places with incorrect usage: - In `Context::makeCurrent()` to set initial viewport or for capture. - In `IsPartialBlit()` and `ValidateReadPixelsBase()` validations. - In `SerializeFramebufferAttachment()` during capture. Rest of the code was thoroughly checked if it is possible to call `WindowSurfaceVk::getWidth/Height()` when size is unresolved. All other places always call these methods after framebuffer state synchronization, which acquires swapchain images and resolves the surface size. Added `ensureSizeResolved()` method that is called during validation and in the `SerializeFramebufferAttachment()` method. It is possible to use existing `Framebuffer::syncState()` method as alternative, but this solution was discarded since it may potentially interfere with `State::syncDirtyObjects()` method. The `Surface::getUserSize()` replaces old methods as optimization, to prevent calling relatively expensive method twice from `Context::makeCurrent()` to get width and height of the `drawSurface`. Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeBeforeMakeCurrent/* Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeBeforeMakeCurrentPostSizeQuery/* Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeAndReadPixelsRobustANGLE/* Test: angle_trace_tests --gtest_filter=EGLSurfaceTest.ResizeAndBlitFramebufferANGLE/* Bug: angleproject:397848903 Change-Id: I082e13d0b8db5fd7d08ff25b102df1f283e1256d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792928 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Solti e286ef78 2025-07-24T21:19:54 ANGLE: Add validation test for GL_RENDERER string format This change introduces a new ANGLE end-to-end test to validate the format of the GL_RENDERER string, preventing regressions caused by downstream modifications. A recent issue (b/318636997) was caused by a partner modifying the ANGLE GL_RENDERER string in a way that broke Skia's parser. This revealed that the string format is a de-facto API contract that must be enforced. This new test, RendererTest.ValidateCanonicalFormat, serves as an automated guardrail and will become part of the Android CTS. The test enforces the following structural contract: 1. The overall structure must be "ANGLE (Vendor, Renderer, Version)". 2. The separator between components must be ", ". 3. The Vendor, Renderer, and Version components must not be empty. This ensures the string is parsable by clients like Skia without over-constraining the content of the component strings, which may originate from underlying drivers. The test correctly skips validation on the Null backend, which is not subject to this contract. Test: autoninja -C out/Android angle_end2end_tests && out/Android/angle_end2end_tests --gtest_filter="RendererTest.*" --num-retries=0 Bug: b/432805963 Change-Id: I1202074cc9f4413ee88e4534fb72fb71101721e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6788522 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Solti Ho <solti@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao b4d84458 2025-05-23T18:08:19 Move Buffer from VertexBinding to VertexArray In later CL we will not taking shared context lock for certain VertexArray API calls. VertexArray itself is per context, so this sounds reasonable to do. The main challenge here is a lot of VertexArray function end up accessing gl::Buffer object, which could be modified by other shared contexts. In order to safely not taking the shared context lock, we need to separate out Buffer object out of VertexArray itself so that these lockless APIs will take VertexArray that does not have access to buffer. In this CL, VertexArray is split into two classes: VertexArrayPrivate is everything in VertexArray except buffers. VertexArray is a subclass of VertexArrayPrivate and owns all the buffers. Buffer is removed from gl::VertexBinding class. In order to let back end access to buffers, VertexArrayImpl holds a weak reference to VertexArray::mVertexArrayBuffers (which is a vector of buffers). Further, VertexArrayBufferBindingMask mBufferBindingMask is moved from VertexArrayState into VertexArray class well, since it tracks which index has a non-null buffer. The bulk of change are due to the VertexARrayImpl constructor change, since it now takes vertexArrayBuffers argument. Other bulk of changes are due to VertexBinding no long has the buffer, but you need to get it directly from VertexArray or VertexArrayImpl. This CL also reverts some of the change in crrev.com/c/6758215 that mVertexBindings no longer contains kElementArrayBufferIndex. BYPASS_LARGE_CHANGE_WARNING Bug: b/433331119 Change-Id: I15f4576f7c5c8d8f4d9c9c07d38a60ce539bfeea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6774702 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 09bbe914 2025-07-28T12:53:53 Add test for mapBuffer and disable/enable attrib interaction Added a test that mapBuffer while attribute is disabled, the draw call should succeed. If attribute is then enabled, the next draw call should fail with GL_INVALID_OPERATION error. Bug: b/433331119 Change-Id: I61d9ff16b0d485309c58c2fe2939c3de8b25864a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6792268 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Tingwei Guo 4f4eab29 2025-06-30T14:58:28 Reset index buffer offset between indirect GL_LINE_LOOP draws In two consecutive glDrawArraysIndirect with GL_LINE_LOOP mode, and bound to a different Indirect Buffer, the variable value captured through TransformFeedback is the same as the first result when the second DrawArraysIndirect. When calling DrawArraysIndirect the second time, DIRTY_BIT_INDEX_BUFFER should be set to dirty so that it re-gets INDEX BUFFER to get the correct result. Bug: angleproject:428561247 Change-Id: I7f4ebb53e20cf8e362e67679b45185b8b68c56ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6687309 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Tingwei Guo <tingwei.guo@arm.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 214a48c4 2025-07-16T12:42:18 Vulkan: add support for yuv resolve with transient image Add support for the YUV_target extension in cases where the implementation supports VK_ANDROID_external_format_resolve without supporting nullColorAttachmentWithExternalFormatResolve. Bug: angleproject:386749841 Tests: ImageTest*YUV* Change-Id: Iebcb4f843b962f3d0d2f4e42db479902b6c1f849 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6761834 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 2b12571c 2025-07-27T20:07:50 Tests: Add Last War: Survival Game trace Test: angle_trace_tests --gtest_filter="*last_war_survival_game" Bug: b/434548051 Change-Id: I25750ef43d58ee06a3149b9fce26b6d9b42c9931 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789518 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Mark Lobodzinski 1df94a64 2025-07-25T15:46:42 Tests: Add Dice Dreams ANGLE trace Test: angle_trace_tests --gtest_filter=*dice_dreams Bug: b/434552757 Change-Id: Ie56bd5fee6aebbddc9c613609d636acca11749a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6789519 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski c8209fec 2025-07-25T10:16:25 Tests: Add Avatar World trace Test: angle_trace_tests --gtest_filter=*avatar_world Bug: b/434146678 Change-Id: I3983c0720f541f5d28a82f4c3bcff7b6ea4252a3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785913 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Shahbaz Youssefi d38531e8 2025-07-23T09:39:11 Fix extension check for xfb mode validation With geometry and tessellation shaders, it's possible to use different primitive modes between transform feedback and draw, as long as they are from the same class. The code accidentally allowed this only if both extensions are supported, but it should be allowed if either is. Bug: angleproject:428561247 Change-Id: Ia18d4ac15a3d0739ce18dc0e1f3d3f0b1aea621c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6780744 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jordan Brown 13f6df49 2025-07-17T20:40:19 Fix the format of the "License" field in README.chromium files. Add missing license for util/android/thrid_party based on license at the source url. Bug: chromium:421988485 Bug: chromium:421989135 Bug: chromium:421988956 Bug: chromium:421988537 Bug: chromium:421988894 Bug: chromium:421989250 Bug: chromium:421988522 Bug: chromium:421988185 Bug: chromium:421989147 Bug: chromium:421988875 Bug: chromium:421988779 Bug: chromium:421988799 Bug: chromium:421988324 Bug: chromium:421988930 Bug: chromium:421988996 Change-Id: I4008229b3031734dd2dc991026cdebe0894c352c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6768429 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jordan Brown <rop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Matthew Denton 6a3ff5a1 2025-07-17T12:41:13 WGSL: extra debug logging for failure cases Bug: angleproject:42267100 Change-Id: I8938526b60af71d15d4327bc10fa172117afef60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6777200 Reviewed-by: Geoff Lang <geofflang@chromium.org>