src


Log

Author Commit Date CI Message
Shahbaz Youssefi dbbae298 2025-09-05T12:39:01 Vulkan: Remove debug name from ImageMemoryBarrierData It was always there, but never became useful. Bug: angleproject:422982681 Change-Id: I409c061b07840a1cc9b85220fcbe792944358dba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6919463 Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi fee5826f 2025-09-05T11:23:23 Vulkan: Enable VK_KHR_unified_image_layouts Functionality of the extension is not used by this change. Bug: angleproject:422982681 Change-Id: I68c8b93e69eb47b1d4287edad105514edd36dfcd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6918517 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu cb6b73d2 2025-09-05T10:37:28 Temporarily disable FP16 float uniform transform feature Some webgl_conformance_vulkan_passthrough_tests are failing with the shaders generating 16-bit for lower precision uniforms. Temporarily disable the feature while investigating the root cause. Bug: chromium:443182226 Bug: chromium:443182234 Bug: angleproject:405795981 Change-Id: I62850f5dc979912a0605edb1aea5b74774b4421d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6918101 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Charlie Lao fecb02db 2025-08-28T12:08:34 Vulkan: Reduce onVertexBufferChange/onVertexAttributeChange When we loop each attribute we end up calling onVertexBufferChange or onVertexAttributeChange. For most drivers supportsVertexInputDynamicState is enabled. This means we are repeatedly check feature bit and set DIRTY_BIT_VERTEX_BUFFERS repeatedly for each dirty attributes. This CL moves these calls out of attribIndex for loop. ContextVk::onVertexArrayChange() now get called directly from VertexArrayVk::syncState() so that we only go through most logic only once if supportsVertexInputDynamicState is enabled. Bug: b/439073246 Change-Id: Ib1316560ef686222e72b4d7ad32c63b043dfbaa5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896934 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.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>
Charlie Lao 8bae2565 2025-08-22T14:38:23 Vulkan: Improve VertexArrayVk::syncState VertexArrayVk::syncState often time shows up the biggest single API in simpleperf. For example, in tower_of_fantasy it is 7.9% of all CPU time in libANGLE. This function also uses macros which made it hard to debug. This CL removes the usage of macros which makes code much easier to handle. The other real problem is that we are repeatedly calling syncDirtyAttrib() function for disabled attributes. This CL breaks the dirty bits into bindingDirtyBits and bufferDataDiryBits and attribDirtyBits. Only attribDirtyBits will end up doing the actual state sync. All other dirty bits will just turn them into attribDirtyBits. Also disabled attributes will be looped separately. This simplification makes it impossible to have duplicate state syncs since we only call sync*Attrib at the end of function. By splitting syncDirtyAttrib into syncDirtyEnabledAttrib/syncDirtyDIsabledAttrib/syncNeedsConversionAttrib, we also moved the if check from syncDirtyAttrib (which is called within for loop) to syncState. With this CL, simpleperf shows this function has reduced from 7.9% to 5.9%. Bug: b/439073246 Change-Id: I99b5ff0b34a5992e31541d2e9cd81ff5c9dda716 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6876527 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@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>
angle-autoroll 1c275402 2025-09-04T12:38:29 Roll vulkan-deps from 8415cc875465 to 5107e9eef1bc (8 revisions) * Skipped some WRITE-AFTER-READ hazards related to the following: * vkCmdDraw() -> vkCmdCopyImageToBuffer() * vkCmdDrawIndexed() -> vkCmdCopyImageToBuffer() https://chromium.googlesource.com/vulkan-deps.git/+log/8415cc875465..5107e9eef1bc Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang/+log/3289b1d61b69a6c66c4b7cd2c6d3ab2a6df031e5..9d764997360b202d2ba7aaad9a401e57d8df56b3 https://chromium.googlesource.com/external/github.com/LunarG/VulkanTools/+log/345804025b4cd32ff6e1959cc6c0280927c2e9dd..055b25c02fa80cdcca77fcf94ab64a02f02d9199 https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/44cf554790020ee44355dde75f0aff79141cab3c..f6940d2b8a9dc6de805c48eb3e8bafd65118b25c https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/a528f95dc2f92bdd83c0c32efe2d13c806428c9d..34edde1191548c51cf4958f2dc6772bf7f76c8cd https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/54e4c34d401b5b4c5abc5dd04804f7b02a8bc0c0..dc22b23433ab3a390b4c75710836691fdb6f11f4 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-angle-autoroll Please CC abdolrashidi@google.com,angle-team@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:443095908 Tbr: abdolrashidi@google.com Change-Id: I305b9dc0089ac58be610b99cbf61112c33a03d7d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6916334 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@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>
Shahbaz Youssefi 6888dfb1 2025-09-03T13:40:33 Vulkan: Fix missing vkGetImageSubresourceLayout2EXT ... with angle_shared_libvulkan=false Bug: angleproject:352364583 Change-Id: I6c81aefc6b074d45103a514ddd6d55192c2f660b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6912583 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
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>
Tom Sepez f8ce4a01 2025-08-26T18:18:54 Add src/common/unsafe_buffers.h Allow for line-by-line control of unsafe buffers warnings. Bug: b/436880895 Change-Id: I609d60c83611037f39d541d5b8c9aba98a6656a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6886308 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Tom Sepez <tsepez@chromium.org>
Liza Burakova 778969f2 2025-08-28T15:54:35 [WebGPU] Fix ImageHelper::flushSingleLevelUpdates This change modifies ImageHelper:flushSingleLevelUpdates to only send a flush command to the context once, instead of in each iteration of the loop if there are multiple texture uploads. This also means that the last texture upload is guaranteed to be flushed, as otherwise that texture could be staged in the queue, but a different command could redefine texture levels which would delete the underlying texture handle but not the command queued for that texture. Bug: angleproject:438268609 Change-Id: I2d49b15fc921829175e99bdb550dddbd81179061 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885223 Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Matthew Denton <mpdenton@chromium.org>
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>
Geoff Lang b449a24a 2025-08-28T14:23:00 GL: Disable BaseVertex and BaseInstance extensions on Linux This is a speculative fix for some rendering issues seen on Linux. Client data also appears to be broken when using BaseVertex functions, this will disable the functions until those issues are fixed. Re-add the check for GL_ARB_base_instance, this was likely not the culprit. Bug: chromium:427956856, angleproject:431097618 Change-Id: If48121d3c4819a46091de4360a2159b9bf14313e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6897307 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yang Gu a3505ae6 2025-08-28T13:47:05 Prefer non-WARP device for angle_end2end_tests When we have both WARP and a real GPU, but WARP comes first, angle_end2end_tests always shows the active GPU is 0, and always uses WARP for tests. This CL prefer the non-WARP device instead. Bug: angleproject:441816895 Change-Id: I787b25f9ff6ad0a98e5fbc445b580b897bd52033 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896220 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Tom Sepez 2d28e33f 2025-08-28T23:50:51 Avoid some large copies in range-based for-loops Avoid copies as detected some time ago by a clang compiler plugin, typically this indicates a missing & in the range-based for-loop. -- For the vector initialize code, see https://godbolt.org/z/4PWseve5P as to why I think a copy-assign is more efficient than a copy- construct followed by a move-assign. Bug: b/415953694 Change-Id: I2cf9f713277d811127834235507ee075c4a72956 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6898417 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Tom Sepez <tsepez@chromium.org>
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>
Cody Northrop 1e3e4eb7 2025-08-30T17:25:20 FrameCapture: Don't issue Begin/End for Timestamp queries Timestamp queries are issued with glQueryCounterEXT rather than glBeginQuery/glEndQuery. This CL updates how we generate timestamp queries in MEC. Before this, we were getting the following errors: API, Error, High: Error:glBeginQuery::<target> is not an accepted value API, Error, High: Error:glEndQuery::<target> is not an accepted value Test: Minecraft Vibrant Visuals trace Bug: b/442154222 Change-Id: Ib6dc01c3b57afcbebfdefa38e6abc883564ea6bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6903038 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Tom Sepez 3d08d885 2025-08-27T23:27:51 Log sanitized message in InfoLog::appendSanitized(). Currently, after producing a sanitized version, the unsanitized string is logged. -- convert away from char* arguments while at it. Bug: b/441583909 Change-Id: I9ee91d303df6c5b874fd1971347b9db3ba03f51c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6893268 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>
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 eefcdafd 2025-08-29T00:13:27 Fix some old clang-tidy warnings about move constructors -- Remove move of copy-only ImmutableString -- Fix rule-of-five issues with StringPart. Bug: b/364788123 Change-Id: Ief9c2a83df15d2e8856e8f729c1908df65004bfc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896659 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Tom Sepez <tsepez@chromium.org>
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>
Igor Nazarov e64b1e54 2025-08-29T15:51:30 FrameCapture: Restore end of trace capture log The log was accidentally removed by: Add long ANGLE traces feature https://crrev.com/c/angle/angle/+/6476924 That was originally added in: FrameCapture: log end of trace capture https://crrev.com/c/angle/angle/+/5557966 Bug: angleproject:343190307 Bug: angleproject:425728227 Change-Id: I68125981a3841c3d5e25aeaab3d792b8b047182a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6898285 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.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>
Gowtham Tammana 4983b4c9 2025-05-14T13:54:47 CL/VK: Track both read/write usages of mem objects Track both the read and write usages when determining the need for barrier insertion. Bug: angleproject:441240590 Change-Id: I2a70905dbadd9bdba6fe6b83dd980963b6380a79 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885851 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Gowtham Tammana ce158355 2025-05-06T17:11:33 CL/VK: Add isReadOnly() query for CLKernelArgument A new helper function `isReadOnly()` is added to CLKernelArgument. This makes the determination of memory dependencies more flexible. As a result, updated the `addMemoryDependencies` function to take in the write usage boolean. Bug: angleproject:441240590 Change-Id: I8826f88b7ff84ee7c689a68df4c5121ee9f12619 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885850 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Gowtham Tammana 2a44be85 2025-05-28T15:17:33 CL/VK: Update the HostTransferConfig to supported configs Setup HostTransferConfig constructors to enable only supported configurations. Bug: angleproject:441471275 Tests-Passing: - ocl_cts.test_mem_host_flags - ocl_cts.test_basic readwritebufferrect - ocl_cts.test_buffers - ocl_cts.test_allocations Change-Id: I19afab8f66d2b025b532b42de161557b9dfbf563 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6892626 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Gowtham Tammana 0efe1a44 2025-05-16T16:23:10 CL/VK: Use UHP buffers for host transfer config We setup staging copy command for host side enqueue commands - eg. enqueueWriteBuffer. Setting CL_MEM_USE_HOST_POINTER (UHP) buffers as defaults for these staging ops so that zero-copy can be leveraged if supported. Bug: angleproject:441471275 Tests-Passing: - ocl_cts.test_buffers - ocl_cts.test_allocations - ocl_cts.test_mem_host_flags - ocl_cts.test_basic bufferreadwriterect Change-Id: Ifc584652b513f0ed0633a8d0383b244f53d57363 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6892625 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tom Sepez cf28f60d 2025-08-26T19:25:22 Avoid c-style string arguments to writeFile(). Demonstrate how std::string_views can be used to make code simpler and safer, since all the callers already have std::strings. Bug: b/436880895 Change-Id: I0f9d4d95925e684c83eb10c2a1fbab22df55c2d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6886033 Auto-Submit: Tom Sepez <tsepez@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Shyam Manohar e842b5f8 2025-05-06T14:38:27 CL/Vulkan: Zero-copy support added for CL Buffers - Used VK_EXT_external_memory_host and VK_KHR_external_memory extensions - Added interfaces to CLBufferVk class for validating zero-copy ability - Added logic in CLBufferVk::create to use zero-copy if eligible - Added new HostExternalMemory class to provide utility functions - Added VkPhysicalDeviceExternalMemoryHostPropertiesEXT for querying Tests-Passing (having usage of CL_MEM_USE_HOST_PTR): - ocl_cts.test_api - ocl_cts.test_basic - ocl_cts.test_buffers - ocl_cts.test_mem_host_flags Bug: angleproject:441471275 Change-Id: I296e709a4f67911dcd6d0ae89750e8e0262625f4 Signed-off-by: Shyam Manohar <s.manohar@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6892624 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Tom Sepez a4e0bacc 2025-08-28T16:41:09 Avoid dangling pointer in Context11::popGroupMarker(). Fortunately, the pointee is unused, but move the string from the marker stack before destroying it during a pop() of the stack, so that its c_str() may live through a call to endEvent(). -- Do the same for Context9::popGroupMarker(). Bug: b/441729484 Change-Id: Id05aa92529ecc8938282273e68d95ac51966d229 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896927 Auto-Submit: Tom Sepez <tsepez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
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 9dc36791 2025-08-28T07:24:21 WGSL: Fix unused variable in translator Test: Build with is_debug = false Bug: angleproject:441701631 Change-Id: Ifa44bb5388788602e76c2ae2005bdd41d2c22dd4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6896036 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Jonghyuk Eun cdf428a2 2025-04-01T10:24:08 CL/VK: Update Samsung preferred/native vec widths Update CL_DEVICE_PREFERRED_VECTOR_WIDTH_* and CL_DEVICE_NATIVE_VECTOR_WIDTH_* for Samsung. The values may vary depending on the vendor. Updating only the values for SAMSUNG here. Bug: angleproject:406022413 Change-Id: Iad575298a11cfb41e620ab9cfd5f970eb6ea0b55 Signed-off-by: jh.eun <jh.eun@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6386421 Reviewed-by: Austin Annestrand <a.annestrand@samsung.com> Commit-Queue: Austin Annestrand <a.annestrand@samsung.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>
Amirali Abdolrashidi e9214c63 2025-08-26T13:53:52 Update trace event header to allow unsafe buffers * Updated the following file to allow unsafe buffers: trace_event.h * This is to prevent errors when the following GN flag is enabled: angle_enable_platform_trace_events Bug: b/436880895 Change-Id: Iefb5ab6ab07259580b569760816fe9ad1a833161 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6885893 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Sungyong Choi 616a341b 2025-08-26T13:56:40 Vulkan: Set EGL_NATIVE_VISUAL_ID for EGL_KHR_platform_gbm Spec requires EGLConfig on GBM platform to report a GBM color format in EGL_NATIVE_VISUAL_ID. Previously this field was left unset. This change ensures compliance by assigning the appropriate GBM color format. Bug: angleproject:7829 Change-Id: I6c5a23374824c444e0de0b6592ea31eb855722e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6882716 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@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>
Shahbaz Youssefi 677d8281 2025-08-25T15:59:46 Vulkan: Pass ContextVk to view-creation functions In preparation for moving the ycbcr conversion cache to the share group. This change is a no-op. Bug: angleproject:440364873 Change-Id: I0c18062259b07813dd04ec02650bb6fab48947ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6879204 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
kyongjoo.oh 2b45ec65 2025-08-24T12:26:12 CL/VK: Fix default LWS when GWS is less than 64 In the case where LWS is NULL and GWS is smaller than 64, the runtime produces a useless uniform region info. Thus, this change clamps LWS to the GWS to avoid this edge-case. Bug: angleproject:42267067 Change-Id: I418c7d503918f4f082825924b463c266bfd862dc Signed-off-by: kyongjoo.oh <kyongjoo.oh@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6877794 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Shahbaz Youssefi fee2bf73 2025-08-25T15:54:50 Vulkan: Limit EGL_NV_context_priority_realtime to Android Device creation fails on Linux when a REALTIME queue is requested, likely due to permission issues. Bug: angleproject:397474813 Change-Id: I0451db1dac9cbf2795439b251274f1a8057cbd6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6880530 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
hoonee.cho 5fed937e 2025-08-24T12:21:53 CL/VK: Add a compile option "-inline-entry-points" When processing the -cl-std=CL2.0 option, ensure that the processed options string includes both "-cl-std=CL2.0" and "-inline-entry-points". This change addresses a CLSPV's compiler option check failure where the -inline-entry-points flag was not being added when the -cl-std=CL2.0 (using generic address space) was specified. Bug: angleproject:440814992 Change-Id: Ie3e8907e367f21830e58cd5c405de06ba2cbd1da Signed-off-by: hoonee.cho <hoonee.cho@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6877793 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yang Gu 943aed8c 2025-08-25T17:37:34 Skip fake device with remote desktop on Windows When connecting with remote desktop on Windows, a fake device with same vendorId, deviceId, and driverVersion may be reported. This commit adds logic to skip such device to fix end2end tests. Bug: angleproject:440892567 Change-Id: Ie3b602385424bf4a77a302793b34eb06b610bbc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6878724 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
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>
Yuxin Hu f63751db 2025-08-22T10:34:45 Fix the UniformSortComparator not following strict weak order If one uniform is lowp and the other uniform is mediump, then the compare(a, b) and compare (b, a) both return true. This violates the strict weak order rule where: If comp(a, b) == true then comp(b, a) == false This change fixes the bug. Bug: angleproject:405795981 Change-Id: I47e2668fc0fa87ecea9d3f9bce511c9823a39929 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6876519 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@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>
jh.eun 061a43c6 2025-08-13T16:35:20 CL/Vulkan: Implement cl_khr_priority_hints cl::CommandQueue contains queue priority from clCreateCommandQueueWithProperties. Similar to EGL_IMG_context_priority, a queue with a pre-assigned priority is selected when submission. Bug: angleproject:433980937 Tests-Passing: OCLCTS.test_api queue_hint Change-Id: I3a7bcc62e5d8186b51f771ab2c01cc18ddfcd195 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785088 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
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>
Raja  Wasim Husain 8ef76b6a 2025-08-04T12:34:17 CL/Vulkan: cl_khr_external_memory extension (pt.2) - Make this extension visible if Vulkan implementation support features supportsExternalMemoryFd and/or supportsExternalMemoryDmaBuf - Implemented APIs clEnqueueAcquireExternalMemObjectsKHR and clEnqueueReleaseExternalMemObjectsKHR - Updated clCreateBufferWithProperties to handle external memory file descriptor. Bug: angleproject:378017028 Change-Id: I1751982c8e9b2cd07b7e251cc54db5dcd1bcda20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6843980 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu d4d42356 2025-08-22T11:30:42 Remove the duplicated branch There is no code difference in the if and the else branches, remove the duplicated branch. Bug: angleproject:405795981 Change-Id: If593476d2b5cd02567ed1896625072128cf21b0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6876346 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxiang Qian 1f83d739 2025-08-01T16:59:11 Expose VK_EXT_global_priority and VK_EXT_global_priority_query To implement EGL_NV_context_priority_realtime, VK_EXT_global_priority and VK_EXT_global_priority_query should be exposed. With these extensions, we can query supported global priority and set global priority for the Vulkan queue. Bug: angleproject:397474813 Change-Id: I83f9f19d46f3c81b02246aae2892f7a9c1a09d1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6857671 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 01cfb98f 2025-08-14T14:17:28 Add a new property to LinkedUniform struct The new property isTransformedFloat will be used by front end API to determine if we should transform 32-bit float to 16-bit float before writing to memory, and transform 16-bit float to 32-bit float after reading from memory. The property value will be passed from UsedUniform (child struct of ShaderVariable) object in UniformLinkder::getResults(). This CL is no op. Bug: angleproject:405795981 Change-Id: Ic4908712f5fa56cb657206a25d9d618b51ac6322 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6851554 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 20dca0b9 2025-08-14T13:54:37 Add a new TInterfaceBlock class member to hint ANGLE default Uniform In later change, we will transform floats in ANGLE default uniform struct from 32-bit to 16-bit in SPIRV. The new class member mIsDefaultUniformBlock will help us identify this special struct. This change is no op. Bug: angleproject:405795981 Change-Id: I939caf7491ab5d7de130ba6a2fd8b1202958c375 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6852398 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@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>
Raja  Wasim Husain 6c160cad 2025-08-04T12:32:36 CL/Vulkan: cl_khr_external_memory extension (pt.1) - Make this extension visible if Vulkan implementation support features supportsExternalMemoryFd and/or supportsExternalMemoryDmaBuf - Implemented APIs clEnqueueAcquireExternalMemObjectsKHR and clEnqueueReleaseExternalMemObjectsKHR - Updated clCreateBufferWithProperties to handle external memory file descriptor. Bug: angleproject:378017028 Change-Id: Idff08808bc0227b5f98b84c2086b68541665146d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6785087 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.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>
Raja Wasim Husain 6ff016fb 2025-03-31T09:52:14 CL/Vulkan: Update caps for image1d_buffer max size Updated max number of pixels for a 1D image created from a buffer object to come from VK implementation. Bug: angleproject:406022415 Change-Id: I56e9821895245c3a3655ca0c4afbe49ed89baded Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6386422 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Sungyong Choi da5a5628 2025-08-11T10:53:06 bitset_utils: Fix GCC shift-count-overflow warning GCC triggers a -Werror=shift-count-overflow when kDefaultBitSetSize is 64, due to the constructor compiling a branch with `value >>= 64`. Although this path is never executed at runtime, GCC still inspects the code and emits the warning as an error. Refactored the constructor to: - Move common reset() into a single place - Split initialization into initFromValue<S>() overloads enabled only for S < 64 or S >= 64 via std::enable_if_t - Avoid generating any shift code when S >= 64 This change ensures GCC does not instantiate invalid shift operations and keeps the initialization logic cleaner. BUG: angleproject:438226513 Change-Id: I1ed0b42540f1bfce469d5738757045bc6d92ac61 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845475 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Sungyong Choi 68baeeeb 2025-08-12T15:51:07 State: avoid GCC -Waddress by using constexpr null-check helper GCC with -Waddress warns that the static_assert comparing `handlers[0] != nullptr` is always true when MakeDirtyObjectHandlers() fully initializes the array. During constant evaluation, handlers[0] is replaced with the specific member function address (&State::syncActiveTextures), which can never be null, making the comparison tautological. This change replaces the direct `handlers[0] != nullptr` check with a constexpr helper that iterates over all handlers and verifies none are null. By comparing each element in a loop, the check still runs at compile time (constexpr), but avoids a direct “function address vs nullptr” pattern that triggers -Waddress. BUG: angleproject:438226513 Change-Id: Iaa8441000f8b2aa28c44d17730ca223fd4d4595b Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845477 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Sungyong Choi 39265327 2025-08-13T08:05:24 Fix BindDescriptorSetParams bit-field size and -Wpadded warning Replace pipelineBindPoint : 8 with full VkPipelineBindPoint to hold all enum values. Reorder members and adjust bit-field widths to pack within 32-bit units, adding explicit padding to eliminate compiler-inserted padding and silence -Wpadded. BUG: angleproject:438226513 Change-Id: I8950fcb10d5796bd8485791f63980a2905179324 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845479 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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 1622d4ad 2025-08-13T07:22:13 Fix -Wparentheses in unlockAndRelease Add parentheses around (valid && owns_lock()) to clarify the intended grouping and silence GCC -Wparentheses warning. BUG: angleproject:438226513 Change-Id: I0d4f3e0153c277c96ec85f255f844bab085f9550 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845478 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>
Sungyong Choi 3474d4f3 2025-08-13T08:13:31 Guard overlayVk->onPresent call in drawOverlay GCC warns "'this' pointer is null" (-Wnonnull) when overlayVk could be null at the call site. Wrap the call with an explicit null check to avoid dereferencing a null overlay and silence the warning. BUG: angleproject:438226513 Change-Id: I3c719d703277c0a888eac9fb9edaaac77cf76a85 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845481 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Sungyong Choi a06cb368 2025-08-12T11:45:43 Fix GCC -Wdangling-pointer warning in NodeStackGuard The previous implementation stored the address of a local member (oldNodeStack) into ConsList::tail, which triggers the warning even though the lifetime is safe within the guard's scope. This change allocates a copy of the previous nodeStack on the heap using std::make_unique, and stores that pointer in tail. This ensures the referenced ConsList object has a lifetime tied to the guard object itself and is not considered a dangling pointer by GCC's static analysis. BUG: angleproject:438226513 Change-Id: Ifea04515db7b1988dff6ec41c60799158b753128 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845476 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Sungyong Choi 2b8f216c 2025-08-13T08:44:34 Fix GCC -Wdeprecated-copy warning in ImageLoadContext Add an explicit copy assignment operator to ImageLoadContext to replace the implicitly-declared, deprecated version. This makes the intended assignment behavior explicit and silences the GCC warning when assigning a default-initialized value. BUG: angleproject:438226513 Change-Id: I44d9b8bf12c5e3172d30ce5413460d881e61449b Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845482 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Sungyong Choi 7febacfe 2025-08-13T08:10:11 Remove unused compressionProp in TextureVk::initImage compressionProp was declared and sType initialized but never used, triggering -Werror=unused-but-set-variable with GCC. The query path uses compressionInfoVar instead, so drop the dead variable and its initialization. BUG: angleproject:438226513 Change-Id: Ib81f418a570b1a7fd858eec4cee4250db49cdd08 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845480 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sungyong Choi 6b03372e 2025-08-13T08:58:35 Fix GCC -Wconversion-null error in WriteParamValueReplay Replace insertion of NULL with the string literal "NULL" to prevent GCC -Wconversion-null. BUG: angleproject:438226513 Change-Id: I7048bc43f282d94e72a5e090176c805d2baa5b06 Signed-off-by: Sungyong Choi <sywow.choi@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6845483 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
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>
Yuxin Hu 806c80ec 2025-08-14T13:41:58 Add a new ShaderVariable struct property Add a new ShaderVariable struct property isTransformedFP16FloatUniform. This property will be set by compiler when the corresponding shader variable data type in shader code is transformed from 32 bit to 16 bit. The property value be later passed to LinkedUniform so that the frontend knows if it should transform the data from 32 bit to 16 bit before writing to memory, and if it should transform the data from 16 bit to 32 bit after reading from memory. This change is no op. Bug: angleproject:405795981 Change-Id: Iaae15baa8ab9f7c3295071fa1e1ab04752bd69bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6852396 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
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>