src


Log

Author Commit Date CI Message
Charlie Lao 40267ddc 2025-01-14T12:51:00 Vulkan: Add bufferWrite for multiple shader stages This is mostly a clean up CL. When a buffer is used in multiple shader stages, it was inserting barrier multiple times by calling bufferWrite in a loop. This creates unnecessary barrier against one shader stage to another shader stage. This CL adds a multiple shader stages version of bufferWrite that takes "const gl::ShaderBitSet &writeShaderStages" as an argument, in consistency to bufferRead. Otherwise this creates a problem in future CLs where we use VkEvent to track the write and you end up with WAW of the VkEvent that has not submitted. Bug: angleproject:360274928 Bug: angleproject:42262235 Change-Id: I923dc9df39318d337f67f4fa0f6a68f336df24f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180948 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 51cdae04 2025-01-21T18:41:15 Update dEQP-GLES2.functional.shaders.random* test expectations Most tests have been fixed with the latest qualcomm drivers, except 1 test is still failing: dEQP-GLES2.functional.shaders.random.all_features.fragment.39. Bug: b/328156792 Bug: b/338287961 Change-Id: Ib2ff74c6ae7e9f39958617fb8d00b9b1f89878ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6188697 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 0acd0a17 2025-01-21T18:31:32 Remove fixed dEQP-EGL.functional.*pbuffer tests from skip list These tests pass with latest ANGLE version d9c0aa4aff. Bug: b/330906568 Bug: b/328156792 Bug: b/332784194 Change-Id: Ib42fe3cfb22f3f7a1bd84609f927cc47613a4920 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6188696 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 9867010e 2025-01-21T18:17:37 Remove fixed dEQP renderbuffer test from skipped test list Test passes with the latest ANGLE version d9c0aa4aff. Bug: b/328156792 Bug: b/333959262 Change-Id: I231feb43af69a1dab877fd3d3bd915b73d56d4b5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187619 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu fd94ce5b 2025-01-21T18:05:41 Update the deqp blend equation advanced test expectations on qualcomm Some of the dEQP-GLES31.functional.blend_equation_advanced* tests are fixed by the latest qualcomm drivers. There are 9 remaining tests still failing. Update the expectation file with these 9 tests. Bug: b/328156792 Bug: b/345581214 Change-Id: I995b0f8a14d18f8ed4d1cdd27c334bdb09387d97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187617 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuxin Hu e5a4924e 2025-01-21T17:42:50 Remove fixed dEQP copy texture tests from skipped test list Tests passed with the latest qualcomm drivers. Bug: b/347306270 Bug: b/328156792 Change-Id: I8d6c0cb04d13635a91b0d774c56d8f3f72bc0e4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187616 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxiang Qian 308cfc62 2025-01-13T14:54:18 Do not reset buffer age after query The spec doesn't mention that we need to reset the buffer age if no rendering after last call of eglQuerySurface to query EGL_BUFFER_AGE_KHR. Age was also reset after first time of query. Remove it to align with spec. New end2end test is also added. Bug: angleproject:391039188 Change-Id: I00c96e3a71ea2c9abcb86ebaf520243408dedd52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185135 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 1d25be59 2025-01-09T11:09:22 Vulkan: Pass Context instead of Renderer to BufferHelper APIs This is preparation CL for later CL. In later CL we need to access context argument in BufferHelper's barrier related functions. release() also preferred to have context argument so that the events can be recycled within share group. Because of this, a lot of functions has to propagate back to pass context as argument instead of renderer. Bug: angleproject:360274928 Change-Id: I13e930666eeeefbcff7b542d0e3126f3b07ce286 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164686 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 680ff1f4 2025-01-22T19:17:40 Suppress flaky end2end test on Linux NVIDIA Vulkan ClearTextureEXTTestES31Renderable.Clear2DArray ClearTextureEXTTestES31Renderable.ClearCubeMap ClearTextureEXTTestES31Renderable.ClearCubeMapArray Bug: angleproject:362486580 Change-Id: I4254a4c28cb0b201d9e94511d5ddc8cce975d1c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6190629 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Yuly Novikov 4be68add 2025-01-22T18:24:24 Skip OcclusionQueriesTest.WrongSkippedQuery Fails on Win Intel UHD 770 Vulkan Bug: angleproject:388144480 Change-Id: Iee4bbae63991bb7d678bdd0777b45647322f3843 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6191327 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Yuly Novikov <ynovikov@chromium.org>
WeiCong Yu 90e3f6bd 2025-01-17T23:10:55 executable path has non-ASCII characters, metal not available On ARM64 MacOS 15.0.x, Metal Shader with newLibraryWithSource didn't work if the executable path contains non-ASCII characters. Bug: chromium:389559087 Change-Id: I0482c01e2a11973f56c712b36062ed78f3cecf9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174286 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Igor Nazarov d8a95bf7 2024-12-19T17:35:05 Vulkan: Protect OneOff commands recording with pool mutex Bug: angleproject:384940864 Change-Id: I518c54ae4b0fc5da0e58d330f8c531bc8d65529e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108843 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi 3734b432 2025-01-21T14:24:42 Suppress some clear tests on Linux/Intel/GL * Suppressed the following tests on Linux/Intel/OpenGL due to observed flakiness on the bots: * ClearTextureEXTTestES31Unrenderable.Clear3D * (ismatch in output values) * ClearTextureEXTTestES31Renderable.Clear2DArray * (FBO status is shown as incomplete) Bug: angleproject:384967031 Change-Id: I46e23e95619c6836b03edf6a52514b138f1542dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182634 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Charlie Lao a5016e31 2025-01-17T17:50:27 Vulkan: Fix typos found by gerrit spellchecker Bug: angleproject:360274928 Change-Id: Idbffd7a4609f28d161bd0a11ace817856dcd750c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6182930 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 0afc3323 2025-01-21T12:46:28 Add fast path to ValidCap for most frequent cases glEnable/Disable are commonly called with the ones that are now on the fast path. GL_POLYGON_OFFSET_FILL seems slightly less common but still frequent enough to be inlined. This noticeably reduces the number of function calls in DO2 trace as well as branch predictor load (confirmed by cpu counter stats from a mobile device), and just this change appears to improve wall_time a bit. Bug: b/383305597 Change-Id: I8fa42de64d79f6638b312891f440d796dd95c57c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6184086 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov e06a8369 2025-01-21T14:56:09 Tests: fix IndexConversionPerfTest using unaligned offset Breaking Win perf bots since https://crrev.com/c/6151227 Bug: angleproject:385264236 Change-Id: I807b9823b5e1dfb12ec4ee7fe48d6addd568c224 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6187621 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Neil Zhang 0554e7f0 2025-01-09T10:05:12 Vulkan: Resume render pass queries when render pass reactivates Bug: angleproject:388144480 Change-Id: Ibcf3b247f347705feed4aa43d237406ccb142704 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185098 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Steven Noonan 801993bc 2025-01-18T21:48:41 handle Qualcomm's mixed vendor IDs This is a weird situation. Up until Qualcomm had a native Vulkan driver for Windows (with the Snapdragon X series chips), the only vendor ID observable on Windows was 0x4D4F4351. This was reported through DXGI, device manager, etc. But with their native Vulkan driver, they now report 0x5143 as well: VkPhysicalDeviceProperties: --------------------------- apiVersion = 1.3.295 (4206887) driverVersion = 0.807.0 (2150789120) vendorID = 0x5143 deviceID = 0x36334330 deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU deviceName = Qualcomm(R) Adreno(TM) X1-85 GPU pipelineCacheUUID = 0eba4509-4351-0000-0000-010c05430000 And yet, DXGI still reports 0x4D4F4351. Cool, huh? Let's teach IsQualcomm to understand both vendor IDs to ensure the device is correctly detected as a tile-based renderer in the Vulkan backend. Bug: angleproject:390866623 Change-Id: I9170c30262ace269498f066e922a279c7e981de6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6183621 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Xin Yuan c7cfbbc9 2025-01-20T22:31:42 Check if the GLES resources are bound to EGL image Per spec, The resource that will be used to create egl image must not itself be an EGLImage sibling, so validation for the resource in this case should be include. Bug: angleproject:388310036 Change-Id: I2b47e3de4f92beca7ff7a80383a7598c79fdedb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170833 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shashank Sharma 0c9ce8c7 2023-09-08T21:34:07 Trace-based testing app Modifying angle_trace_tests app to run traces automatically on invocation and dumps fps information. Also, compares the screenshot with the golden images if provided and dumps the histogram of image diff. Golden image naming format: <trace_name>_golden.png - Run traces - Capture screenshot - Record FPS value - Record image diff histogram Bug: b/270421213 Doc: doc/StandaloneBenchmark.md Change-Id: I42b8d229e1e358d48887f29f2424b9e771093ce9 Commit-Queue: Shashank Sharma <shawshanks@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6072349 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shashank Sharma <shawshanks@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev a0e36ad5 2025-01-20T00:00:00 Vulkan: Fix image bindings for non-layered textures Layer index must be ignored if the texture does not have multiple layers or faces. Fixed: angleproject:344950165 Change-Id: I4b402ee28d365f0459f980e01488828c80c93527 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6185849 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Shahbaz Youssefi 8bf7d458 2025-01-20T09:37:25 Manual roll vulkan-deps from 476cafde9e9d to e8b712767b9e (8 revisions) Manual roll requested by syoussefi@google.com https://chromium.googlesource.com/vulkan-deps.git/+log/476cafde9e9d..e8b712767b9e Also rolling transitive DEPS: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/321692686b64873ccf4972754e36185697993e21..b9d5ced92ac454caf526c3b80d5105a1f38878ce https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader/+log/35a851d182cdebef408493b9a82ba212d1a2629c..1586f33d6d79eb9ffa5963ce4f70423986b95d8a https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/2fe3a7791dc9c34a581dc45522ab9b4363b4f321..7b23ba7a5f86936a8d783baf64a77c38977d6890 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers/+log/a80bafccd11d2b4e44dee21c530da49b41083682..1ce4b30307301d20d58040e088eb57c5ea8bb6ad 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 angle-team@google.com,geofflang@google.com,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Change-Id: I297016b55854913ceda6cc4afb80f67eafe65e26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6183654 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Igor Nazarov 16d8325f 2025-01-16T13:30:07 Vulkan: Make WindowSurfaceVk::setAutoRefreshEnabled thread safe Bug: angleproject:379762019 Change-Id: I20feb72c4777a8dbd2058ced8a958d08b6c218ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175131 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com>
Roman Lavrov 23ab7dbe 2025-01-17T14:18:32 Add likely and inline hints to getActiveLinkedProgram I noticed that getActiveLinkedProgramPPO gets inlined in some of the functions in Context.cpp, when we intended this to be a fallback path. Explicitly mark PPO as noinline and the base call as inline to minimize dependency on compiler heuristics (there seem to be differences in assembly between implicit and explicit inline). Bug: b/383305597 Change-Id: I2889a61efd4f653e842ce7089d54c51508a37491 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6180084 Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Aurora Zhang 0dabfe5a 2025-01-16T16:00:51 Tests: Supplement EXT_clear_texture tests * Added negative tests in ClearTextureEXTTest.Validation. * According to spec, divided format lists into color renderable and unrenderable two sets. * Bind the renderable format texture as a color attachment to test EXT_clear_texture. * Sample the unrenderable format texture then call glDraw to test EXT_clear_texture. Bug: angleproject:384967031 Change-Id: I71d77ef57772fbb5b174929e9ac2892e7dc3215f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108999 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Mohan Maiya aa6a9fae 2025-01-16T17:18:59 Vulkan: Selectively enable input attachment usage bit Add VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT iff supportsShaderFramebufferFetchDepthStencil feature is enabled. Also, add noncoherent qualifier in a few FramebufferFetchTest Bug: angleproject:352364582 Change-Id: I09c54a8d738b5cb4cbcf2716cdbff0c0ec9e31cf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6181497 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 6793c5ee 2025-01-16T13:46:48 Vulkan: Simplify WindowSurfaceVk::mMinImageCount tracking `mMinImageCount` is updated in the `WindowSurfaceVk::createSwapChain()` method when "VK_EXT_surface_maintenance1" is enabled, which makes updates outside of this method irrelevant. This CL removes all these updates and makes update in `createSwapChain()` unconditional. The `mMinImageCount` is now only accessed in the `checkForOutOfDateSwapchain()` method outside of the `createSwapChain()` method (without this check `mMinImageCount` might be a local variable). Shared present mode and "forceContinuousRefreshOnSharedPresent" handling is moved just before swapchain creation to properly handle cases when "VK_EXT_surface_maintenance1" is disabled. Bug: b/289274676 Change-Id: I963eab2dfbbb3ebf563183c47167cfd4b60e2f38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175130 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shufen Ma fc33f0a0 2025-01-15T11:23:25 Add a ReadPixels test for offset alignment check An INVALID_OPERATION error is generated if a pixel pack buffer object is bound and data is not evenly divisible by the number of basic machine units needed to store in memory the corresponding GL data type from table 8.4 for the type parameter. Add a test for this. Bug: angleproject:352963094 Change-Id: I81eda446df5ff29da1326a1f75f5d5aa0825aafd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170763 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Roman Lavrov ab7457db 2025-01-14T11:55:06 Move ResourceMap mHashedResources access to functions Follow up to https://crrev.com/c/6169263 https://chromium-review.googlesource.com/c/angle/angle/+/6169263/comment/43a79fa6_2a24673c/ Moves mHashedResources access out to function calls as this is a fallback that is supposed to be hit very rarely. This makes the likely branch (flat map accessors/modifiers) smaller so they can be easily inlined without adding much bloat. I also moved flat map resize to a function call as it is fairly rare and makes calls and malloc. This further reduces aarch64 .so size by ~12KB (0.2%) and hopefully improves locality a bit (perf tests inconclusive) Also inline Sampler access in ResourceManager which now uses these small inline accessors. Bug: b/383305597 Change-Id: I013eeb27bf619cc9549a977ab92173e799a1466a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174944 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alex Dean 59ae5b97 2025-01-02T10:50:42 CL: Enable cl_khr_3d_image_writes OpenCL C has __opencl_c_3d_image_writes feature and CL Runtime in ANGLE has image formats supporting 3d image write. Tests-Passing: OCLCTS.consistency_3d_image_writes Bug: angleproject:387234392 Change-Id: Ibb3712845ddddd33f0d770129c9b203d19658e19 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137931 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alex Dean 810c19fa 2025-01-02T15:19:51 CL/VK: NonSemanticClspvReflectionArgumentPodUniform support Missing NonSemanticClspvReflectionArgumentPodUniform support, which gets used when the number of POD arguments exceed the limit of the maximum amount of push constants that can be used. Bug: angleproject:384549637 Change-Id: Ia0e2ea141cfb2c41c492ff4b125a1547c380c1cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6097413 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
jh.eun fbb0f994 2024-10-17T17:24:19 CL/Vulkan: Add check for std430-ubo-layout option for clspv To support 1byte vectors, clspv needs to add std430-ubo-layout option. Related ocl_cts: test_basic parameter_types Bug: angleproject:387306730 Change-Id: Ic00db6fcb3bc69eac455b36c6772dd83111ac06c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137320 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi efe31ab8 2024-11-29T14:49:29 Revert "Vulkan: Keep old VVL suppression until roll into Chromium" This reverts commit b31f367a9ab885c0cd3b176b8bbcab05b380cc8a. Reason for revert: No longer needed after vulkan-deps rolled into chromium. Original change's description: > Vulkan: Keep old VVL suppression until roll into Chromium > > Bug: angleproject:336652255 > Change-Id: Id12e86862cde613cbf3c87557532b2bf23da1838 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6056751 > Reviewed-by: Geoff Lang <geofflang@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Bug: angleproject:336652255 Change-Id: I5287fb70ecbf53124b240a4f9e71cbcba66093c2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6058732 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
WeiCong Yu 2f9047cd 2024-10-21T21:56:14 Add CHECK when MTLCommandBufferErrorOutOfMemory occurs Bug: angleproject:374574265 Change-Id: I3c1f6cdf86f9ad73b10f1299f4bd4e348dffb001 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5947983 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Matthew Denton 8ee72cc7 2025-01-13T13:44:31 WGSL: support matCx2 in uniforms matCx2 in WGSL does not match std140 layout and so it needs to be translated as array<ANGLE_wrapped_vec2, C> when in a uniform. On use it needs to be converted to a WGSL-native matCx2. This also includes the optimization of an array<matCx2> in a uniform--when indexing into it, only the indexed element will be converted to a native matCx2, instead of converting the entire array and then indexing. Bug: angleproject:376553328 Change-Id: I1d84471234b3d3cf4cf361ae89cb61675d5bf9a8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6157788 Reviewed-by: Liza Burakova <liza@chromium.org> Commit-Queue: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
jh.eun 73e226cb 2024-10-17T16:37:52 Vulkan: Add check for uniform buffer standard layout feature Add to check uniform buffer standard layout is supported. Bug: angleproject:387306731 Change-Id: I543c46a6b504a4df7e9937365c9b28e6328f0619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6137319 Commit-Queue: Austin Annestrand <a.annestrand@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov f45b9951 2025-01-16T10:05:06 Inline ValidateUniformCommonBase Same way as driver_overhead_2 based PGO does it. It makes sense as the function is small and only has a few callers. This happens to reduce .so size by ~10KB due to ValidateProgramUniform* (ES31) changes: clang no longer inlines ValidateProgramUniformBase into those and it becomes a function call - but a call in the same translation unit instead of a call into ValidateUniformCommonBase in another unit. Seems like we get the same number of calls but better locality. Perf imact difficult to estimate due to effects of section layout changes but I do see an improvement when comparing PGO builds, disabling this optimization for an affected function then re-enabling it with this CL. Bug: b/383305597 Change-Id: Ib76d33d01b165049335e61c007ee79bec53219c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175711 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Mohan Maiya 38b3f123 2025-01-16T06:55:15 Vulkan: Enable preferDriverUniformOverSpecConst for Samsung Bug: angleproject:386749841 Change-Id: I8e99efe01e1e9152371384d1bf5645b444438c62 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6179075 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Igor Nazarov 062f1fc1 2024-12-17T22:22:04 Vulkan: Use waitFenceUnlocked to finish one command Batch Using `CommandBatch::waitFence()` in finish one command Batch is no longer necessary, since `mQueueSubmitMutex` remains locked, preventing adding new commands when `kInFlightCommandsLimit` is exceeded. The `Locked` suffix is removed from `finishOneCommandBatchLocked()` since it is now accepts the `lock` (similarly to `waitFenceUnlocked()`) and may temporarily unlock it. Test: angle_end2end_tests --gtest_filter=EGLSyncTest.BlockingOnSubmitCPUThrottling/* Bug: b/362604439 Change-Id: I8f39d7b2e6f1b9ce8ed4aa8875375769211572e7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6098256 Commit-Queue: Igor Nazarov <i.nazarov@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Kimmo Kinnunen 0cfea380 2025-01-15T10:46:54 Rename sh::TSpan as general purpose angle::Span Span abstraction is useful for making buffer manipulation more consistent. The commit makes the Span available to all code until std::span can be used. Bug: angleproject:389951202 Change-Id: Id0c6b54bb6e75d3cc4e85af854d9e61b66906752 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6170997 Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Commit-Queue: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll b4cb17b8 2025-01-15T10:08:39 Roll VK-GL-CTS from 9509eb274dfe to 962460e9975c (9 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/9509eb274dfe..962460e9975c 2025-01-10 javed@igalia.com Add tests for input assembly primitive stat with tess 2025-01-10 piotr.byszewski@mobica.com Fix promoted extension tests not running correctly 2025-01-10 ziga@lunarg.com Fix supported sample count check in draw_copy_resolve tests 2025-01-10 marcin.zajac@mobica.com Fix validation error in api tests 2025-01-10 nikolaysmirnov@google.com Add multiple_render_targets_overdraw test 2025-01-10 gleese@broadcom.com gen_framework.py: Fix some alignment 2025-01-10 gleese@broadcom.com Update amber version to the latest upstream 2025-01-10 rgarcia@igalia.com Test varying tessellation state in Indirect Execution Sets 2025-01-10 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vk-gl-cts-angle-autoroll Please CC angle-team@google.com,geofflang@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:390138123 Change-Id: I6b653b347550d4a7d4f75e3ce1a0f7bf20e0d0cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6175280 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop 28fbe4a5 2025-01-15T10:12:05 Docs: Fix CIPD link For whatever reason, markdown wasn't resolving the link. Bug: None Change-Id: I27848b0ddbd579c7faf5832119d6521113dfea13 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6172575 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mavis Deng 3675ca04 2025-01-07T17:59:30 Vulkan: Bugfix for xfb GL_SEPARATE_ATTRIBS mode in PPO case The new executable state transformFeedbackBufferMode should hold the result of the link. An end2end test is added. Bug: angleproject:385662281 Change-Id: I52398ad9a9fe76344b94dac787cae7141924d1dc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6156277 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya de5286fa 2025-01-14T10:59:17 Add missing include to MemoryBuffer.cpp Details can be found here - https://chromium-review.googlesource.com/c/angle/angle/+/6135238/11#message-d271191140cfc29498701cbbb5ee8c6dc20349d0 Bug: angleproject:386749841 Change-Id: I428a61bafcc2d65d7538e0d1c28ebe39ad40b7fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169566 Reviewed-by: Brian Johnson <hibrian@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Xin Yuan 4c1354d9 2025-01-03T14:41:27 Make sure the AHB is not corrupt when bound to egl image The AHB bound to egl image could be corrupt or not a valid ANativeWindowBuffer, it should be validated when creating egl image. Bug: angleproject:387226848 Change-Id: Iefc5506746ceaad92d16b02d5c0838156eee2f9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6126739 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Neil Zhang 0501d32f 2024-12-23T18:02:54 Draw call with un-aligned index buffer should be checked Bug: angleproject:385264236 Change-Id: I1ff7e93bf4b9ea9020e82f3558e4157b74cb7078 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6151227 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Takuto Ikuta d9c0aa4a 2025-01-09T18:08:08 Reland "Roll third_party/glmark2/src/ ca8de51fe..2054465f6 (77 commits)" This is a reland of commit 68b594e859f036b01974f78f8ddca8c419bc8ce3 Includes fixes to glmark2Benchmark.cpp to parse updated output. Original change's description: > Roll third_party/glmark2/src/ ca8de51fe..2054465f6 (77 commits) > > https://chromium.googlesource.com/external/github.com/glmark2/glmark2/+log/ca8de51fedb7..2054465f6f7c > > $ git log ca8de51fe..2054465f6 --date=short --no-merges --format='%ad %ae %s' > 2024-04-25 alexandros.frantzis Use std::filesystem throughout the codebase > 2024-04-25 alexandros.frantzis android: Build native code with C++17 > 2024-04-25 alexandros.frantzis Doc: Recommend meson for building win32 flavors > 2024-04-25 alexandros.frantzis github: Build win32 flavors with msvc in CI > 2024-04-25 alexandros.frantzis github: Build win32 flavors with mingw in CI > 2024-04-25 alexandros.frantzis include/getopt: Always use non-const char array to avoid MSVC errors > 2024-04-25 alexandros.frantzis libmatrix: Add utility function to get idle time > 2024-04-25 alexandros.frantzis libmatrix: Add utility function to get process times > 2024-04-24 alexandros.frantzis libmatrix: Add utility function to get the number of processors > 2024-04-25 alexandros.frantzis libmatrix: Use C++ std::chrono instead of clock_gettime > 2024-04-25 alexandros.frantzis libmatrix: Use C++17 std::filesystem instead of dirent > 2024-04-25 alexandros.frantzis Build: Add support for win32 flavors in meson > 2024-04-24 alexandros.frantzis libmatrix: Provide a copy of the va_list to __android_log_vprint > 2024-04-13 kode54 NativeStateX11: Fix WM_DELETE_WINDOW handling > 2024-02-15 alexandros.frantzis NativeStateWayland: Explicitly destroy all Wayland resources at shutdown > 2024-02-15 alexandros.frantzis Explicitly release GL related resources at shutdown > 2023-06-03 prlw1 src/meson.build: add x11 dependency to glx > 2024-02-07 timchen021 Fix memory leaks using smart pointers > 2024-01-12 daniel.levin Add missing includes in scene-collection.h > 2023-11-01 alexandros.frantzis GLVisualConfig: By default don't care about the stencil config component > 2023-11-01 alexandros.frantzis Options,GLStateEGL,GLStateGLX: Add option to require a good visual config > 2023-07-26 abs GLStateEGL,GLStateGLX: Change failure to get a "good" visual config to warning > 2023-11-01 alexandros.frantzis libmatrix: Add Log::warning() function > 2023-05-20 prlw1 meson.build: fix build and avoid sigsegv > 2023-05-03 ofourdan NativeStateX11: Add winsys option for position > 2023-01-19 alexandros.frantzis Build,Doc: Update files for 2023.01 release > 2023-01-19 alexandros.frantzis NativeStateMir: Remove Mir/mirclient support > 2023-01-03 alexandros.frantzis ResultsFile: Support storing results in an XML file > 2023-01-03 alexandros.frantzis ResultsFile: Support storing results in a CSV file > 2023-01-03 alexandros.frantzis Options,ResultsFile: Add option to set the results file > 2023-01-03 alexandros.frantzis Introduce infrastructure to support saving results to a file > 2023-01-03 alexandros.frantzis CanvasGeneric: Store individual info elements in separate strings > 2023-01-03 alexandros.frantzis MainLoop: Store indivitual result values in separate strings > 2023-01-03 alexandros.frantzis Scene: Remove trailing ':' from scene info string > 2023-01-04 alexandros.frantzis SceneTerrain: Silence unused variable warning > 2022-12-21 pierre-yves.mordret NativeStateGBM: Lock and release the front buffer on flip > 2022-12-21 alexandros.frantzis MainLoop,Scene: Support reporting shader compilation time > 2022-12-20 alexandros.frantzis MainLoop,Scene: Add busy percentage in CPU time results > 2022-12-20 alexandros.frantzis MainLoop,Scene: Support reporting CPU time results > 2022-12-20 alexandros.frantzis Options: Introduce option to specify benchmark results to show > 2022-12-20 alexandros.frantzis Scene: Update elapsed times when a benchmark finishes > 2022-12-19 alexandros.frantzis Scene: Introduce struct to keep track of elapsed time > 2022-12-15 alexandros.frantzis Scene: Introduce infrastructure for more complex scene stats > 2022-12-15 alexandros.frantzis Scene: Move common preparation logic to Scene::prepare > 2022-12-13 alexandros.frantzis Scene: Introduce non-virtual methods to prepare and finish a scene for benchmark > 2022-12-08 alexandros.frantzis GLVisualConfig: Support specifying the config id in --visual-config > 2022-12-08 alexandros.frantzis libmatrix: Support prefix dependent input conversions from string > 2022-12-08 alexandros.frantzis GLStateEGL,GLStateGLX: Fail if no suitable config is found > 2022-12-08 alexandros.frantzis GLStateEGL,GLStateGLX: Don't limit the configs passed to our selection mechanism > 2022-12-08 alexandros.frantzis GLVisualConfig: Penalize configs with components smaller than requested > 2022-11-16 alexandros.frantzis github: Build x11-gl-egl flavor in CI > 2022-11-14 rilian-la-te build: Add x11-gl-egl flavor > 2022-11-10 alexandros.frantzis GLStateGLX: Support multisampled configs > 2022-11-10 l.stach GLStateEGL: Support multisampled configs > 2022-11-10 l.stach GLVisualConfig: Add multisampling support > 2022-09-02 120989324 Add missing newline at end of log messages > 2022-11-10 alexandros.frantzis NativeStateDRM,NativeStateGBM: Support configuring the DRM device > 2022-11-10 alexandros.frantzis Options: Support passing window system specific options > 2022-04-23 nunes.erico NativeStateGBM: Add GBM offscreen backend > 2022-07-07 wuqianhai SceneJellyfish: Fix memory leak > 2022-07-07 wuqianhai SceneRefract: Fix texture leak > 2022-07-07 wuqianhai SceneIdeas: Fix texture leak > 2022-06-14 Martin.Jansa waflib: fix compatibility with python-3.11 > 2022-05-12 jeffy.chen NativeStateDRM: Honor visual configuration > 2022-05-13 alexandros.frantzis GLStateEGL,GLStateGLX: Use SwapInterval 1 for FIFO swap mode > 2022-04-15 alexandros.frantzis NativeStateDrm: Implement swap interval 0 > 2022-02-14 alexandros.frantzis github: Run apt-get update to get latest packages > 2022-02-14 alexandros.frantzis CanvasGeneric,CanvasAndroid: Display surface config info > 2022-02-14 alexandros.frantzis Options: Support --version command line argument > 2022-02-14 alexandros.frantzis libmatrix: Add missing <utility> include > 2022-02-10 hillma libmatrix: avoid -Wimplicit-fallthrough > 2021-12-23 alexandros.frantzis Build,Doc: Update files for 2021.12 release > 2021-12-23 alexandros.frantzis NativeStateDrm: Fix crash when we can't become DRM master > 2021-09-30 jf android: Fix benchmark parameter edition > 2021-08-30 alexandros.frantzis Use highp precision modifier only on GLES > 2021-08-30 alexandros.frantzis GLStateEGL: Support EGL versions < 1.4 > 2021-04-11 maahiuzeon Fix model loading on big endian. > > Created with: > roll-dep third_party/glmark2/src > > Bug: chromium:40263312 > No-Presubmit: true > Change-Id: Ifee506badac67ff5af57605994daff01278c6d56 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6162277 > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> > Auto-Submit: Takuto Ikuta <tikuta@chromium.org> > Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Test: angle_perftests --gtest_filter="*GLMark2Benchmark*" Bug: chromium:40263312 Change-Id: I54d8982cb37e488f80b7511ad0111d1ff111f004 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6174747 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi bbc0d702 2024-12-27T07:44:01 Vulkan: Add entry points to lock the Vulkan queue ... which can be retrieved via EGL_ANGLE_device_vulkan. Otherwise the application is unable to use the VkQueue that is retrieved out of ANGLE from other threads (such as Chromium's DrDC feature). Bug: chromium:380295059 Change-Id: Ife80f54440777486f72fc61697a68fb0c2b2d0f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6116046 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Zhonghang Chi ac7a85f4 2025-01-10T17:24:48 Vulkan: Replace copy image view with same read view in setStorage 1.Introduce a share flag in ImageViewHelper. 2.Update the share flag when copy view is same as read image view. 3.Only return read view when copy view is same read one. Bug: angleproject:387392704 Change-Id: I6a3a9ca043ba16cdeb430cce53d40197618a0d44 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6147667 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 65513240 2025-01-03T17:26:55 Fix initializing output variables ... by compiling a list of TVariables instead of names that are later looked up. The latter results in wrong symbols being initialized when the output variables are shadowed. Bug: chromium:376738756 Bug: chromium:377553431 Change-Id: I76b9688c035476c547ac73cff380629161210406 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6143374 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Chia-I Wu ae12ef68 2025-01-13T16:17:17 Vulkan: default to VK_FILTER_LINEAR for YUV DmaBuf Follow YUV AHB to default to vk::kDefaultYCbCrChromaFilter. Bug: b/388836383 Change-Id: I8883e9c40aa69bd41bec0449d63ac23fe6dadca6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6173191 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Chia-I Wu <olv@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Shufen Ma e510bb61 2025-01-08T09:56:39 Check offset alignment for ReadPixels An INVALID_OPERATION error is generated if a pixel pack buffer object is bound and data is not evenly divisible by the number of basic machine units needed to store in memory the corresponding GL data type from table 8.4 for the type parameter. Bug: angleproject:352963094 Change-Id: I057ed0997313daffbb31d19c94e408b600fce03b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6155815 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi fe76d70b 2025-01-10T14:41:06 Vulkan: Enable 16-bit norm support for tex buffers According to the spec for EXT_texture_norm16, it enables texture buffers to support the following additional formats: * GL_R16_EXT * GL_RG16_EXT * GL_RGBA16_EXT All of the above are unsigned short normalized values. * Updated validation to support the aforementioned formats in texture buffers in case of support for the norm16 extension. * Updated AdjustViewFormatForSampler() to also support norm16 values. * Added the condition for advertising textureNorm16EXT that the 16-bit UNORM formats above should have the buffer feature bit for texture buffer support: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT * Added support check for renderSnormEXT after textureNorm16EXT, since the check for former currently uses the support for latter as a parameter. * Added unit tests to draw using a texture buffer with norm16 formats. * Added TextureBufferTestBase in order to test the API calls in the extensions and the core ES 3.2 version, which the following suites are derived from: * TextureBufferTestES31 (existing) * TextureBufferTestES32 (new) * Extended the tests to similar 8-bit formats. Bug: angleproject:381313704 Change-Id: I49157e8c2c9b5438eaf8d56c1932d12e56489318 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169006 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop f094a81e 2025-01-07T14:08:11 restricted_trace_perf: Add screenshot support This update allows users to capture screenshots when using restricted_trace_perf.py. * Two new optional arguments are added. If either is set, a screenshot will be captured. --screenshot-dir (host directory to write screenshots, default CWD) --screenshot-frame (specify desired frame, default is 1 or KeyFrame) * If screenshots are requested, we create a temp dir on the device, pull the screenshot, then delete the dir * The screenshot is renamed during pull to reflect the renderer that created it. Otherwise they are all named "native" since we convince the platform to use its default driver, allowing calls to go through the EGL loader. Test: restricted_trace_perf.py --screenshot-dir ~/Screenshots --screenshot-frame 2 Bug: b/377325803 Change-Id: I5be7a1e2f9f557668bff51349654c8c4e093b47a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6154857 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi f72428bb 2025-01-10T22:24:07 Vulkan: Fix MSAA swapchain resolve out of render pass .. vs the optimization that transitions the swapchain image to PRESENT_SRC as part of the render pass. When the swapchain image is the resolve attachment, its layout is decided when the render pass is closed (or through manual calls to finalizeImageLayout()). If the render area forbids the swapchain image from becoming the resolve attachment, it must be resolved after the render pass. Prior to this change, the swapchain image was still marked for transition to PRESENT_SRC by the render pass. This is inefficient, as the following out-of-render-pass resolve would have to transition the image back out of PRESENT_SRC. Nevertheless, this also had a bug exposed by an ASSERT in the dynamic rendering path: * Before the out-of-render-pass resolve, the image layouts are forcefully finalized. * The code in finalizeImageLayout() checks which image is being finalized; if the image is not any of the ones in the render pass, it was silently ignored. * The image marked for transition to PRESENT_SRC (mImageOptimizeForPresent) is not separately checked, as it is expected to be an attachment as well. The code that optimized the final render pass always marked the swapchain image for optimization, even if it was not going to become the resolve attachment. This change makes sure this optimization is done only if the image is definitely an attachment of the render pass. Bug: angleproject:389048224 Change-Id: I9f451d2698944111ac96bd97fefd6efa23859b7f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6168388 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Mohan Maiya b3af2e86 2024-12-31T08:51:37 Enhance MemoryBuffer API Add support for - 1. reserve - users can reserve sufficient capacity upfront to minimize subsequent reallocations due to resize 2. append - to append data from a source so user doesn't need to track offsets explicitly Bug: angleproject:386749841 Tests: MemoryBufferTest* Change-Id: Ibf2a3228d5a00ed34a7e0c5e3eb185e42677d676 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6135238 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b5b2612e 2025-01-13T12:36:39 Tune branching in getProgramResolveLink() Hinting the likely/unlikely branches in related calls. Notably, mShaderProgramManager->getProgram() has a flat resource array and a fallback to a absl::flat_hash_map. As observed in driver_overhead_2 trace based PGO builds, the fallback gets un-inlined by PGO (presumably due to being hit rarely) and becomes a function call. Regular builds without the tuning in this CL inline flat_hash_map implementation, increasing the code size / worsening locality for a fallback case. This change makes the Context::useProgram() aarch64 assembly in regular builds very close to the driver_overhead_2 based PGO, and the code size goes down from 576 to 256 bytes. The total reduction of the .so size is 36KB (0.6%), likely due to all the cases where the inlining is avoided by hinting. There appears to be a ~1% perf improvement in driver_overhead_2 trace wall_time in my tests on a couple of Android devices. Hard to tell if this is due to the improved code locality or some other aspect of the change in assembly. Bug: b/383305597 Change-Id: I85c02cc74a56e7074086965e8d31018bd9ee0040 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6169263 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Neil Zhang cfe87e34 2024-12-16T16:29:39 Add multisample support for glCopyImageSubDataEXT As GL_TEXTURE_2D_MULTISAMPLE/GL_TEXTURE_2D_MULTISAMPLE_ARRAY been introduced by GLES3.1, glCopyImageSubDataEXT should support those types. Bug: angleproject:381727390 Change-Id: Ib3571ea38dc8d8ceb1bc9ad0c8a6e04d28b0ec33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146194 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Yuxiang Qian 4c60a308 2024-12-30T15:35:07 Change default return value for eglDupNativeFenceFDANDROID According to EGL spec, eglDupNativeFenceFDANDROID should return EGL_NO_NATIVE_FENCE_FD_ANDROID when there is error. However, ANGLE just returns 0 as default value. Now overload the default return value to EGL_NO_NATIVE_FENCE_FD_ANDROID. Also, a end2end test is added. Bug: angleproject:385190296 Change-Id: I214efdeb3ad583989fab5e2244c82cb7295f8b67 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146195 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Aurora Zhang 28270609 2025-01-09T18:08:40 Vulkan: Fix clear texture for unrenderable internalformat Checking whether the texture is renderable or not depends on the output texture's format. If the output format is unrenderable, while format and type indicate the input format as renderable, the clear texture should still go into the unrenderable path. Bug: angleproject:385190304 Change-Id: I2963caad4996547a0aa27fcc37033ca95e2fa21e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6134267 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Mohan Maiya 0a207b65 2025-01-10T12:01:01 Vulkan: Assert size of GraphicsDriverUniformsExtended is within limits ANGLE updates driver uniforms using push constants, ensure size of ANGLE's driver uniform struct is within Vulkan spec's guaranteed limit of 128 bytes. Bug: angleproject:386749841 Change-Id: Iaa5ca8a46865a804b4c854ba27448bf4b6546646 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164689 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Alex Dean 5f6be593 2024-12-30T09:35:16 CL: Add check for 2d image creation from buffer CL_INVALID_OPERATION must be returned when creating a 2d image from the buffer if cl_khr_image2d_from_buffer is not supported. Tests-Passing: OCLCTS.test_api consistency_2d_image_from_buffer Bug: angleproject:384765581 Change-Id: I431188b9c1d1881cf755058a8b8ca5741d17652d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102106 Commit-Queue: Gowtham Tammana <g.tammana@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Matthew Denton c289b30f 2025-01-09T12:49:27 WGSL: Add test for failure case of uniform struct rewrites. Using a uniform struct outside of the uniform address space fails if we've rewritten any of the member types and want to assign to that member. E.g. this line of GLSL, assigning to a member of a struct used in the uniform address space: privUnis.x = float[3](1.0, 1.0, 1.0); Produces this WGSL warning: ERR: DisplayWgpu.cpp:295 (operator()): Error: 2 - message: Error while parsing WGSL: :50:63 error: expected ')' (ANGLE_Convert_ANGLE_wrapped_float_ElementsTo_float_Elements((_uprivUnis)._ux)) = (array<f32, 3>(1.0f, 1.0f, 1.0f)); This adds a test and suppresses it on WGSL. Future design options: https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.r89s1r69tl77 Bug: angleproject:376553328 Change-Id: I57304e9d2a889d00ac4fa02f265198ce3d78e7e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165290 Reviewed-by: Matt Denton <mpdenton@google.com> Commit-Queue: Matt Denton <mpdenton@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org>
Matthew Denton b1a0d60f 2025-01-08T15:10:41 WGSL: Fix accidentally overloaded functions Small-stride arrays in uniforms with the same element type, but different array sizes, would cause the WGSL generator to produce conversion functions with the same name but different array sizes. This CL puts the array size in the name of the function to avoid overloading, which is unsupported in WGSL. Bug: angleproject:376553328 Change-Id: I446e91ccb9da2872c88f1a4e05283aacc9d6f8b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6160334 Commit-Queue: Matt Denton <mpdenton@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Matthew Denton <mpdenton@chromium.org> Reviewed-by: Matt Denton <mpdenton@google.com> Reviewed-by: Liza Burakova <liza@chromium.org>
Yuxiang Qian 2de256cb 2024-12-30T17:26:38 Change some error type in eglCreateImageKHR Following the spec, for eglCreateImageKHR, if target is EGL_LINUX_DMA_BUF_EXT and attribute value is not expected, then EGL_BAD_ATTRIBUTE should be returned. However, ANGLE would return EGL_BAD_PARAMETER. Now change these error handlings to return EGL_BAD_ATTRIBUTE. Also, a end2end test is added. Bug: angleproject:387892107 Change-Id: I73ecfc3da273c0fb5ac362e451fd186209f1a52b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6146196 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop c10f5e3f 2025-01-08T10:04:39 Debug: Allow forcing GL_VERSION string Similar to forcing renderer and vendor, useful for debug. Bug: b/388459021 Change-Id: If00128369cf26069708e8db06c5e17b7ad0bdb58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6157784 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com>
Gowtham Tammana 3772d47e 2024-12-11T00:25:37 CL/Vulkan: Allocate descriptor sets under lock The descriptor pool must be externally synchronized as per the vulkan spec, as such acquire a lock when allocating descriptor sets from it. Bug: angleproject:383999367 Change-Id: I98448770681ad39dae0dc7e413e28ec7dfa89f87 Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6099129 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 06380dbc 2025-01-10T09:04:52 Add const missed in crrev.com/c/6153395 Mutability makes Chroimum's "android-binary-size" unhappy Bug: b/383305597 Change-Id: I523bc92056962cef9a6f1e76d732ad1953bd46c7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6166761 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Steven Noonan 3226a3df 2024-12-13T14:06:55 Reland: vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid Implement the ability to select a specific device and driver combination through a few new selection criteria: VkPhysicalDeviceIDProperties::deviceUUID VkPhysicalDeviceIDProperties::driverUUID VkPhysicalDeviceDriverProperties::driverID Earlier version had problems due to a test build issue. Per syoussefi@, going to rework the test into a separate CL so that we get the core change merged. Bug: angleproject:351866412 Change-Id: I0a3f4f1a2154a06bf6286a037c9ad4834ef4dda2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6165286 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Mohan Maiya db833869 2025-01-08T06:14:22 Vulkan: Return cached width and height for eglQuerySurface eglQuerySurface will return extents as of the most recent eglSwapBuffers call Bug: angleproject:153329980 Test: EGLPreRotationSurfaceTest.CheckSurfaceCapabilities* Change-Id: Ifc9e84ed92bdc645afd12814a3a5539cc8b55da3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6158264 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com>
Kimmo Kinnunen 19ef77a2 2025-01-09T15:37:34 Validate glEGLImageTargetRenderbufferStorageOES renderbuffer glEGLImageTargetRenderbufferStorageOES changes the renderbuffer. Avoid crashing if there is no renderbuffer bound. Bug: angleproject:388616184 Change-Id: I05eacb7a5907d2ca9cde8e91aa7814daa3008c71 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6163503 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana f64fef25 2024-06-07T12:18:18 CL/Vulkan: Protect clspv compiler calls The clspv compiler uses llvm backend to perform source code transliteration, and the llvm parser used is non-rentrant. So protect the clspv compiler call with a mutex. Bug: angleproject:361717757 Change-Id: Ib10d6d165307594bed607d5e794b0ef92c3c894b Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092035 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov 3b092269 2025-01-09T08:54:00 Revert "vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid" This reverts commit 96abb2c3d9e296ae12e50e0026bf5d3a7b925e7e. Reason for revert: breaks rolling into Chromium https://chromium-review.googlesource.com/c/chromium/src/+/6158098 Original change's description: > vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid > > Implement the ability to select a specific device and driver combination > through a few new selection criteria: > > VkPhysicalDeviceIDProperties::deviceUUID > VkPhysicalDeviceIDProperties::driverUUID > VkPhysicalDeviceDriverProperties::driverID > > Bug: angleproject:351866412 > Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Steven Noonan <steven@uplinklabs.net> > Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:351866412 Change-Id: Ic7cf9dcf6a950556cc44f5920498db429c866340 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6164164 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Roman Lavrov 31ccf78b 2025-01-07T15:46:15 Inline GetVertexFormatID using lookup tables Before this change the switch produced >1KB of assembly due to all the branching. This reduces the .so size by ~3KB and avoids the function call into a seemingly cold page. No obvious perf improvement in my tests from just this change. Changing underlying enum type to minimize table sizes. Bug: b/383305597 Change-Id: I724aa093ab5edf7af016b5b04764437a345517d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6153395 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov e6d9854b 2025-01-09T09:12:53 Capture/replay tests: fix logging on capture error Introduced by https://crrev.com/c/6042183. Also remove unneeded trailing \n in a few spots. Bug: angleproject:380296979 Change-Id: Ie6438409533855b22bc85a02ec0017279be4880a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6163683 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Steven Noonan 96abb2c3 2024-12-13T14:06:55 vulkan: add EGL_ANGLE_platform_angle_vulkan_device_uuid Implement the ability to select a specific device and driver combination through a few new selection criteria: VkPhysicalDeviceIDProperties::deviceUUID VkPhysicalDeviceIDProperties::driverUUID VkPhysicalDeviceDriverProperties::driverID Bug: angleproject:351866412 Change-Id: Ia6716aaed658d2563612d8b5d81287df97b57462 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5686557 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Matthew Denton 363f6264 2025-01-07T10:35:09 WGSL: unwrap single array element from uniform ...instead of unwrapping the entire array when only one element is being accessed. The is step #4 from the implementation plan in https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.dt9vmixnpdvo Bug: angleproject:376553328 Change-Id: I6c559f44b75cd1d3c4a478141c11f65a33d76bdf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6102117 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Matt Denton <mpdenton@google.com> Reviewed-by: Matt Denton <mpdenton@google.com> Reviewed-by: Liza Burakova <liza@chromium.org>
Shahbaz Youssefi 6f32ed6c 2025-01-03T23:54:22 Fix struct sampler rewrite vs comma Bug: chromium:377614665 Change-Id: I2c0e8230e31405c9e7fd165a9fca68b7e9f31a76 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6142516 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Sushma Venkatesh Reddy 7e9b1115 2025-01-06T15:24:56 Vulkan: Disable protected memory on Intel GPUs Due to Intel PXP termination, any active contexts held by userspace for PXP will be marked as banned. Re-establishing the session without affecting the use case is complex. Thereforce, it is preferable to disable protected memory by default unless explicitly needed. Test: Ensure powerd_dbus_suspend doesn't cause GPU process exit Bug: b/381285096 Change-Id: I057825a36d39b193f84cbdf90323fd95ed96fded Signed-off-by: Sushma Venkatesh Reddy <sushma.venkatesh.reddy@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149057 Reviewed-by: Juston Li <justonli@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Solti Ho 833e6893 2025-01-07T18:50:25 skip some dEQP basic_shader.* tests on Linux Bug: angleproject:388052193 Change-Id: Iabc271223b24b411fc467aa42d2ff731d318411d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149875 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Solti Ho <solti@google.com>
Mohan Maiya bc795943 2025-01-06T12:41:05 Proper clean up for EGLLockSurface3Test Make sure to destroy context and window in each test Bug: angleproject:42264593 Change-Id: Ia5768ad109340a0be2bd2912877b7236e201ce0a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6150289 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 59162e2e 2024-12-30T12:22:10 Vulkan: Update a few features and extensions for Samsung Enable disableProgramCaching Disable rgbxInternalFormatANGLE clipDistanceAPPLE cacheCompiledShader preferMonolithicPipelinesOverLibraries Bug: angleproject:386749841 Change-Id: Iea8033e2999c65b8715c6069d2096a709f78f438 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133540 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi d1496a22 2025-01-03T22:54:27 Produce same compile errors for op= as op Bug: chromium:376787367 Change-Id: Ic2c1415c184c603b86876e5eb70eee602639abbf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6142515 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Alexey Knyazev <lexa.knyazev@gmail.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 15b1fb37 2024-12-29T00:38:43 Fix mixing multisampled renderbuffers and textures When querying a renderbuffer's render-to-texture sample count, the number of samples was returned. This made it look like the renderbuffer attachment is MSRTT even if it was really multisampled. When mixed with a multisampled texture (where this mistake wasn't made), the framebuffer completeness code marked the framebuffer incomplete because it looked like one attachment is MSRTT and the other is not. Test credit zephyrxiao@tencent.com Bug: angleproject:382393146 Change-Id: I9fe516d6a92033512646414f88a9848aa1e1edc9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6138979 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 465299fb 2025-01-06T16:49:15 context_private_call.cpp -> context_private_call.inl.h Most functions are trivial wrappers resulting in unnecessary forwarding calls. Most are called exactly once from entry points autogen. This _reduces_ the .so size by ~14KB and I'm seeing 1-2% better frame time in my driver_overhead_2 tests on a mobile device. Bug: b/383305597 Change-Id: I1f2a048e067c76993bacfbbce655fc1c898fdba7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149814 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Tingwei Guo 83047378 2024-12-20T15:07:02 Add supplement GL_ARM_shader_framebuffer_fetch_depth_stencil tests * Add two tests about detaching the depth attachment and stencil attachment separately works correctly. * Add six tests to test whether multisample, GL_FETCH_PER_SAMPLE_ARM and fragment discard work properly in different situations. Bug: angleproject:385170273 Change-Id: I8a4299e2336a8bf800ffe286775a53f59b407c8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6108524 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Gowtham Tammana b01e9b58 2024-10-07T17:48:34 CL/Vulkan: Add timestamps for skipped transitions In certain scenarios, the event state transitions might be skipped - i.e. move from QUEUED -> COMPLETE. In those cases, set time stamps for intermediate states. Bug: angleproject:377942756 Change-Id: I41ae7d555b04e4ba6a8432718c0493f9f2e88fdd Signed-off-by: Gowtham Tammana <g.tammana@samsung.com> Updated-by: Austin Annestrand <a.annestrand@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6120465 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Austin Annestrand <a.annestrand@samsung.com>
Matthew Denton 53ec86ab 2024-12-17T14:40:31 WGSL: support small stride arrays in uniforms WGSL requires arrays in the uniform address space to have a stride a multiple of 16. This CL makes WGSL translator emit wrapper structs for array element types used in the uniform address space, when the array stride is not a multiple of 16. The exception is for structs that aren't an aligned size of 16n, and for any types matCx2, since they are (or will be) handled in different ways that ensure alignment to 16. This should leave only f32, i32, u32, and vec2. See https://www.w3.org/TR/WGSL/#example-67da5de6 for an example of using a wrapper struct. This requires converting arrays with a wrapper struct element type to arrays with an unwrapped element type when they are first used; this can be "optimized" later for the common case of accessing a single array element, which can then be unwrapped immediately. This CL generates WGSL conversion functions when necessary. After this, the only types that can't yet be used in a uniform are matCx2 and bools. This is #2 in https://docs.google.com/document/d/17Qku1QEbLDhvJS-JJ9lPQAbnuZtLxWhG-ha5eCUhtEY/edit?tab=t.0#bookmark=id.rt3slgehd4te Bug: angleproject:376553328 Change-Id: I1edfa7f481a6cbf5b595643aae8728e67bc4b770 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6092038 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Liza Burakova <liza@chromium.org> Reviewed-by: Matt Denton <mpdenton@google.com> Commit-Queue: Matt Denton <mpdenton@google.com>
Mark Lobodzinski 491335c4 2024-12-26T10:25:32 Tests: Add Bullet Echo ANGLE trace Test: angle_trace_tests --gtest_filter=*bullet_echo Bug: b/387973432 Change-Id: Ib5694f53dd2f5a2b0d8a417582e4ff8054565461 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6149436 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Solti 4d2f4d97 2025-01-06T19:49:29 skip some dEQP basic_shader.* tests on Linux Bug: angleproject:388052193 Change-Id: I2e78dbacc2367af87fa102306b2458a1ef13e313 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6150288 Commit-Queue: Solti Ho <solti@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Shahbaz Youssefi f80d15ad 2025-01-03T16:19:13 Vulkan: Fix crash with array of array of samplers vs comma Bug: chromium:385256122 Change-Id: I9b356401e7c007060e95bb95ca8269411178ce66 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6143373 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 1a8d7712 2025-01-06T12:44:00 Inline common cases of PackParam<BufferBinding> This appears to improve frame time by ~0.8% in some of my driver_overhead_2 tests on a mobile device. Default implementation is FromGLenum<BufferBinding> https://crsrc.org/c/third_party/angle/src/common/PackedGLEnums_autogen.cpp;drc=0bb109aa3311f35bf0b51bcda3d7e095048168c8;l=106 and has 15 cases. This CL avoids the call for 3 of those cases, most common ones according to frequency of glBindBuffer arg in our trace cpp files. This mapping adds compare/branch instructions for each case, hence inlining increases the caller a little. In this case the increase is about 60 bytes. With the total of 23 callers (GL_*Buffer* exports), this increase the .so size by ~1.3KB. Just inlining the function would yield higher bloat and wouldn't prioritize the common cases. Bug: b/383305597 Change-Id: Icc205fd46fb8ef195c8ffaf67f9cd5194d1d1a5d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6148838 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 2c025cb9 2025-01-06T08:36:23 Revert "Proper clean up for EGLLockSurface3Test" This reverts commit 9d9e3efce077dbfe261b13fdfb3b20fc1e4a5e4c. Reason for revert: Suspected cause of flakiness anglebug.com/387828389 Original change's description: > Proper clean up for EGLLockSurface3Test > > Perform unmakecurrent during test teardown > > Bug: angleproject:42264593 > Change-Id: I1148b5c6631e81090f7ae931495bba1b43c24502 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133539 > Reviewed-by: Yuxin Hu <yuxinhu@google.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: mohan maiya <m.maiya@samsung.com> Bug: angleproject:42264593 Bug: angleproject:387828389 Change-Id: Ia8b484e391931e9401bd644c919c34ef65718b37 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6147815 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Alexander Bobrovnik 87d4656a 2024-06-24T16:16:47 Fix EGL_NO_SURFACE on eglCreatePbufferFromClientBuffer Bug: angleproject:348452183 Change-Id: I2fe1d3a76aa896e2034ed01ec88bcae563e6071f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5646493 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 6e813222 2025-01-06T10:48:58 Inline other trivial forwarding validation calls Following Shabi's comment on https://crrev.com/c/6108030 Otherwise these end up as actual "trampoline" function calls Bug: b/383305597 Change-Id: Ie1e7f57d6b630736aa8de914ba4abe3c2d5ee09d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6148833 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuxin Hu d65751b4 2025-01-03T15:44:59 Skip monopoly_go trace on devices where the trace crashes Bug: angleproject:385226328 Change-Id: I8448e9bd355205dbf36599b6d82e5e05873b936e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6143534 Reviewed-by: Solti Ho <solti@google.com> Commit-Queue: Solti Ho <solti@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com> Auto-Submit: Yuxin Hu <yuxinhu@google.com>
Mohan Maiya 9d9e3efc 2024-12-30T12:10:57 Proper clean up for EGLLockSurface3Test Perform unmakecurrent during test teardown Bug: angleproject:42264593 Change-Id: I1148b5c6631e81090f7ae931495bba1b43c24502 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6133539 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Mohan Maiya 39882b2b 2024-12-28T12:00:19 Vulkan: Fix flakiness in MultipleProgramsShareDescriptors Precision differences causes the test to be flaky on some vendors. The test is not validating color accuracy, there is no need to use random numbers. Bug: angleproject:42265270 Change-Id: Ied8794d14b394e049e5735d4c42a7baf6e3aca0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6129616 Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Mohan Maiya 7c766c0e 2024-12-23T15:12:44 Vulkan: Bugfix in OverrideFeaturesDependent test On some vendors there is a second order effect of disabling some features, account for such vendors. Bug: angleproject:42266725 Change-Id: I53e93d595ee09210ef7781d667470e2b46c10e55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6118433 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 35ea113c 2024-12-27T06:03:23 Manual roll VK-GL-CTS from 1797eec1a51d to 7655439d7333 (15 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/1797eec1a51d..7655439d7333 2024-12-20 michal.jakubek@mobica.com Vulkan SC doesn't report waived test case count 2024-12-20 piotr.byszewski@mobica.com Test NoContraction keyword 2024-12-20 marcin.hajder@mobica.com Added tests for non-layered bindings of 2D shader images 2024-12-20 kamil.goras@mobica.com Enable ES31_compatbility tests. Those tests are implemented but were not added to any test package. Move SampleVariablesTests, ShaderImageLoadStoreTests, ShaderStorageBufferObjectTests to common 2024-12-20 piotr.byszewski@mobica.com Fix copy tests using NaN for sfloat formats 2024-12-20 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main 2024-12-18 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main 2024-12-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkansc-cts-1.0.2 into vk-gl-cts/main 2024-12-12 rgarcia@igalia.com Test depth/stencil copies on the transfer queue 2024-12-12 mateusz.bahyrycz@mobica.com Fix validation error in ray tracing tests 2024-12-12 antonio.ospite@collabora.com Build testlog-* and other tools also on Android 2024-12-12 marcin.hajder@mobica.com Added missing texture parameter for shadow samplers 2024-12-12 tomeu@tomeuvizoso.net Fix Android standalone executables to work with EGL tests 2024-12-12 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.4.1 into vk-gl-cts/main 2024-12-12 gleese@broadcom.com Make autogen for VK, VK SC consistent 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,syoussefi@google.com on the revert to ensure that a human is aware of the problem. To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: None Change-Id: I73077c44cfae8ba31d7334e2b149e368c6c1f579 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/6116045 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>