src/tests


Log

Author Commit Date CI Message
Charlie Lao d0eb968d 2023-12-08T16:11:46 Vulkan: Fix the AHB leak for AHB backed buffer object For client buffer backed OpenGL buffer object, we call InitAndroidExternalMemory which calls AHB acquire. But when buffer object is released/destroyed, we never call ReleaseAndroidExternalMemory, which end up leaking AHB. Bug: b/314791770 Change-Id: I693c74213e73008497a6dfeca93ea62e84c71352 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5106599 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Charlie Lao <cclao@google.com>
Alexey Knyazev 0b0b4b22 2023-12-07T00:00:00 Avoid UB in VertexAttributeTestES3.DrawWithUnalignedData The test uses a signed normalized vertex attribute, which requires a floating point vertex input. Bug: angleproject:7001 Fixed: angleproject:7068 Change-Id: I97afc97b03a58130e0d6ee63ec7ee3e44f1e0230 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5105194 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b8ca8de4 2023-12-05T13:36:53 Vulkan: Don't crash when glCopyTexImage2D redefines itself The Vulkan backend marks a level being redefined as such before doing the copy. If a single-level texture was being redefined, it releases it so it can be immediately reallocated. If the source of the copy is the same texture, this causes a crash. This can be properly supported by using a temp image to do the copy, but that is not implemented in this change. Bug: chromium:1501798 Change-Id: I9dde99aa0b88bc7d5f582ff15772f70b36f424e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5089150 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi dc4b1acd 2023-11-30T15:42:32 Translator: Limit private variable size to 64KB This is indirectly fixing an issue where passing large arrays in SPIR-V such that an internal cast is needed (such as array inside interface block copied to local varaible) causes an overflow of the instruction length limit (in the absence of OpCopyLogical). By limiting the size of private variables to 32KB, this limitation is indirectly enforced. It was observed that all the test shaders added in this CL fail on the Nvidia OpenGL drivers, so such a limit seems to be reasonble. Bug: chromium:1505009 Change-Id: Ia36134b2bf8501a5b875814db3566be28b183e0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077408 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d788c2c0 2023-12-04T22:43:39 Remove team members no longer part of the project Bug: None Change-Id: I66bf34ece50995fdecfab55a2198e9946e9be4cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5087208 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Daniel Cheng bc7af34c 2023-12-06T00:15:33 Use googletest flag macros to access googletest flags. The implementation details of flags can change; fixing this proactively makes it easier to roll googletest. Bug: chromium:1409870 Change-Id: I5efa2487d9e38e122ca20f201748faf8e8050347 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5092928 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Daniel Cheng <dcheng@chromium.org>
Cody Northrop f58ba088 2023-11-05T16:40:37 Tests: Add Warcraft Rumble trace Test: angle_trace_tests --gtest_filter="*warcraft_rumble*" Bug: b/309345647 Change-Id: I6e78fb0465edcfa97943ff8374c568dcd9b8eba7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5007173 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Alexey Knyazev d7077e9f 2023-12-05T00:00:00 Update macOS end2end expectations Bug: angleproject:2273 Bug: angleproject:2408 Bug: angleproject:3837 Bug: angleproject:5325 Bug: angleproject:5360 Bug: angleproject:5594 Bug: angleproject:6358 Bug: angleproject:6418 Bug: angleproject:6454 Bug: angleproject:6457 Bug: angleproject:6540 Bug: angleproject:6702 Bug: angleproject:6751 Bug: angleproject:7068 Bug: angleproject:7309 Bug: angleproject:7445 Change-Id: I7f4c012ed2de6af83188ed69170b19f8d2bb19de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5087774 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 18d51f01 2023-12-03T18:26:12 Tests: Add Black Clover M trace Test: angle_trace_tests --gtest_filter="*black_clover_m*" Bug: b/314683298 Change-Id: Icee6102aa5161f2054134831e00eb99b8048c448 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5082209 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi fb6b960c 2023-11-27T14:24:28 Remove GL_CHROMIUM_texture_filtering_hint This was using an unregistered Vulkan extension to set the precision of SwiftShader's internal filtering for the sake of Chrome. That's baked in at build instead. Bug: angleproject:8349 Bug: chromium:726075 Change-Id: I12849d2d29d99626f22a92ee9d74366f78658476 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5063344 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Charlie Lao 90767546 2023-12-01T12:27:15 Vulkan: Add test for __samplerExternal2DY2YEXT then swizzle Added a correctness test SourceYUVTextureTargetExternalRGBSampleYUVSampleWithSwizzle for applying swizzle after sampler. Also removed some bug workaround for VVL and drivers since they are fixed now. Bug: b/309480316 Change-Id: If82b2251745a96335b535c67b6e0c0847268b25b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5080497 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 554d761a 2023-12-01T15:14:22 Tests: Add AFK Arena trace Test: angle_trace_tests --gtest_filter="*afk_arena*" Bug: b/314365671 Change-Id: Id0213199b0e75919701be8ec9e216a224a6725d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078682 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi caa5e4ea 2023-11-30T14:12:42 Translator: Fail compilation if too many struct fields If there are too many struct fields, SPIR-V cannot be produced (as it has a hard limit of 16383 fields). The Nvidia GL driver has also been observed to fail when there are too many fields. Bug: chromium:1505009 Change-Id: If9b01716c1cab35a6e537da64421e29fe0eda91e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5074629 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Mark Lobodzinski 25f448f4 2023-12-01T12:33:27 Tests: Add Walking Dead Survivors trace Test: angle_trace_tests --gtest_filter=TraceTest.walking_dead_survivors Bug: b/314311102 Change-Id: Icf104613b59a8de0f89fc5fa3dd6db4ad9a3dc2b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5080498 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 6df603ed 2023-11-30T13:53:00 Translator: Optimize field-name-collision check As each field of the struct was encountered, its name was linearly checked against previously added fields. That's O(n^2). The name collision check is now moved to when the struct is completely defined, and is done with an unordered_map. Bug: chromium:1505009 Change-Id: If28d738254a541450912eba4ed168424dad9d8be Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077407 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Sergey Kataev 75e13e68 2023-11-29T22:19:46 Metal should not inline non-const global initialisers Bug: angleproject:8403 Change-Id: Iaa6126d7043931a16104ea84c5f7e737017dabc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5076256 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Sergey Kataev <sergeyka@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Shahbaz Youssefi ab992c3e 2023-12-01T11:51:13 Clarify which link failed in link program perf test Bug: angleproject:8417 Change-Id: I5445518fdf6dcc2533ea055588221d6e45c45d9a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5077412 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov eef89870 2023-12-01T09:47:40 Trace tests: skip mini_world on win intel native Flaking Bug: angleproject:8440 Change-Id: Iff415531d4820937ef5e42c8fcba05c305494c38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5078288 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 3680a5dc 2023-11-17T13:51:07 Vulkan: Let program warmup continue passed link The warmup task does not actually affect the link results, so there is no reason to wait for it when the application queries the link status. This change allows the warm up task to continue in parallel until the program is used at draw time. This allows the warm up to be more efficient when the link itself is not parallelized. For applications that create programs in the middle of every frame, it's still likely best to disable warm up (as the following immediate draw will already effectively do the warm up). Note that currently the warm up code in the Vulkan backend is not completely thread-safe, and so the program still blocks on that task before the first draw can happen (or the program is modified in any way). Bug: angleproject:8417 Change-Id: I0877fef39a0585c3279e32699ce817d4643d7cd6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5037538 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Sergey Kataev 058a2fd6 2023-11-28T17:38:28 Clear active queries before Begin Bug: angleproject:8415 Change-Id: I97dfd904d65933a66f25cd168c50fe150ef9c765 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5068525 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Sergey Kataev <sergeyka@chromium.org>
Alexey Knyazev 05e9ec11 2023-11-23T00:00:00 Metal: Saturate floating-point depth textures on upload Metal does not clamp uploaded floating-point depth texture values to the normalized range. Used a compute shader to enforce the expected OpenGL ES semantics. Fixed the following tests on Intel and Apple GPUs: dEQP-GLES3.functional.texture.specification .teximage2d_depth.depth_component32f .teximage2d_depth.depth32f_stencil8 .teximage2d_depth_pbo.depth_component32f .teximage2d_depth_pbo.depth32f_stencil8 .teximage3d_depth.depth_component32f_2d_array .teximage3d_depth.depth32f_stencil8_2d_array .teximage3d_depth_pbo.depth_component32f_2d_array .teximage3d_depth_pbo.depth32f_stencil8_2d_array .texsubimage2d_depth.depth_component32f .texsubimage2d_depth.depth32f_stencil8 .texsubimage3d_depth.depth_component32f_2d_array .texsubimage3d_depth.depth32f_stencil8_2d_array Fixed: angleproject:8422 Fixed: angleproject:8426 Change-Id: I843024f098fef2fbca15e7b6124052681d05b6ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5062710 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev d696b40f 2023-11-23T00:00:00 Metal: Use precise tanh for highp result types When fast math is enabled, default tanh does not pass dEQP precision tests. Explicitly request precise tanh when the result type has high precision. Bug: angleproject:8287 Change-Id: I07c8c2638b5f0a51feacbeadb78382152a95b03c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5057298 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Roman Lavrov 989b1143 2023-11-28T14:06:06 Trace perf: logcat output captured line-buffered I've seen warmup detection getting stuck intermittently not seeing the log line despite the line being there. Hopefully this fixes. Bug: b/291604008 Change-Id: I10da772c485f7b1badd34efc00c20fc6d55139cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5067855 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop ee4b7a27 2023-11-03T09:06:50 Add --memory to restricted_trace_perf.py Detailed analysis of our power results showed that even checking memory can impact power. This CL makes memory measurement optional (like power) to enhance power measurements. Test: restricted_trace_perf.py --memory --power Bug: b/292249127 Change-Id: I69b34d378ca923de42af59fc1b532a1d766b4391 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5066797 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Mark Lobodzinski 068a0ee8 2023-11-28T08:43:45 Tests: Add Retro Bowl trace Test: angle_trace_tests --gtest_filter=TraceTest.retro_bowl Bug: b/313610392 Change-Id: Iec30c95fd46a75c6995d968dfac5652a89209bc3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5066795 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Amirali Abdolrashidi 716c5d00 2023-11-13T10:23:10 Vulkan: Add RGB8-to-RGBA8 ubyte loading function Currently, to update RGB8 on desktop, ANGLE uses memcpy for each pixel, which is suboptimal. This CL adds a loading function to improve the copy time for RGB textures where RGBA is needed on the hardware. * Added a specialization to LoadToNative3To4() for unsigned bytes using 0xFF as the fourth component. * It is optimized for unsigned bytes when converting an RGB format to its corresponding RGBA format, e.g., RGB8 to RGBA8. * It uses uint32_t operations to speed up the process. * Added unit tests for the specialized LoadToNative3To4. * LoadToNative_unittest.cpp * Added perf test for RGB8 image allocation and loading. * RGBImageAllocationBenchmark in RGBImageAllocation.cpp. * RGBImageAllocationBenchmark shows some improvement in cpu_time and wall_time on a Linux and a Windows device. (Results below using aligned source pointer and texture size of 2048): * On Windows: +~85% cpu_time, +~71% wall_time * On Linux: +~26% cpu_time, +~27% wall_time Bug: b/308177124 Change-Id: I421d83f75fdc513b0111dffb0a5d5e74682dd6fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995489 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Steven Noonan 99b077b7 2023-11-26T08:24:18 Vulkan: fix data clobbering with AllocateNonZeroMemory The offset of the suballocation was not being used when initializing memory, so it was possible to overwrite the start of an existing buffer with garbage. Bug: angleproject:8427 Change-Id: I8205068a173dc4342894c6c49ee5fa9c4a8a255a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5060776 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Steven Noonan <steven@uplinklabs.net>
Alexey Knyazev 3e617615 2023-11-23T00:00:00 Metal: Update depth texture dEQP expectations Bug: angleproject:5243 Bug: angleproject:8425 Bug: angleproject:8426 Change-Id: I62fe901e50cd76b483ba415ad01707129c4ff857 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5054336 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev b7a31b7f 2023-11-27T00:00:00 dEQP: Treat signed integer overflow as two's complement Bug: b/307584642 Fixed: angleproject:8429 Change-Id: Ib3cdd1835d4c669a79a4553b24da676eb41e21b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5062708 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 1169f6b4 2023-11-18T21:03:54 Add bad app behavior to parallel link perf test A large majority of apps hinder parallelism by immediately querying the link status after glLinkProgram. The parallel link perf test is now exercising this behavior as well. Additionally, since the Vulkan backend's default is to disable parallel link, the perf test is also enhanced to include this case. A follow up change will improve the performance of both these scenarios with the Vulkan backend. Bug: angleproject:8417 Change-Id: I39b9d5703a17d051d20d35fd4cede2b415e770a4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5042344 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 8ae36a93 2023-11-14T10:11:51 Vulkan: Bugfix in isFastUnpackPossible Disallow fast unpack when there is a mismatch between the actual texture format and intended buffer (PBO or client buffer) format. Bug: angleproject:3777 Test: Texture2DTestES3.UnpackCompatibleFormatButDifferentType* Change-Id: I9ea9d9cdd5e1391acebb3d75d69437e27cfa90df Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5029504 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Yuxin Hu 3944ffce 2023-11-13T18:32:13 Add missing validation code The validation code for below GLES 3.2 entry points is added: GL_TexParameterIiv GL_TexParameterIuiv GL_GetTexParameterIiv GL_GetTexParameterIuiv GL_SamplerParameterIiv GL_SamplerParameterIuiv GL_GetSamplerParameterIiv GL_GetSamplerParameterIuiv Also add extension check in validation functions of entry points that are exposed through these two extensions: GL_OES_texture_border_clamp GL_EXT_texture_border_clamp The validation functions of GL_OES_texture_border_clamp extension are moved to validationESEXT.cpp for readability. Bug: b/286572199 Bug: b/224537784 Change-Id: I77ed22e8dc961a30a5d86b0597c25555d15c517b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5028139 Auto-Submit: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
mark a. foltz a75659eb 2023-11-13T16:03:26 [Cast Convergence] Remove unused GN include. This file is being removed from Chromium. It is not needed in this file and can be removed, which will avoid breakage when that happens. Bug: angleproject:8413 Change-Id: Iccc4b45393bcbc268add434b16172e90d2b9d13b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5027723 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
angle-autoroll 49f8f8a0 2023-11-13T10:01:37 Manual roll vulkan-deps from 448a71c0790c to 855191177ccd (17 revisions) https://chromium.googlesource.com/vulkan-deps.git/+log/448a71c0790c..855191177ccd Manual edits: * Includes compile fixes for vulkan_command_buffer_utils Changed dependencies: * glslang: https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang.git/+log/a8d39f97cd..1dcb072cda * spirv-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+log/fbf047cc8b..6b1e609ef1 * vulkan-headers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers.git/+log/8ccd414a46..af4fb97d7b * vulkan-loader: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader.git/+log/6342790c86..0b31098e53 * vulkan-tools: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools.git/+log/322e7b3f08..90e25ec83a * vulkan-utility-libraries: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries.git/+log/5b3147a535..177e2312fa * vulkan-validation-layers: https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers.git/+log/0eec8db60d..312716a437 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,cnorthrop@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:8412 Tbr: cnorthrop@google.com Change-Id: Iddbfda975afd44f100c02a399f9f80b3ba9c7d73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5023272 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Takuto Ikuta 7b9b95f8 2023-11-13T11:42:26 drop goma support from capture_replay_tests.py https://ci.chromium.org/ui/p/angle/builders/try/win-trace/7316/overview failed, but it seems unrelated to this CL. Bug: angleproject:8309 Change-Id: Id4fd9cad341973c87570adbea63809b5aa84c4a0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5019418 Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Takuto Ikuta <tikuta@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 64eb87af 2021-05-12T00:02:22 Add test for VectorizeVectorScalarArithmetic bug Bug: chromium:1201084 Change-Id: Icfb659ae5195f8dd80fecd0904cb90b77697fa70 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2889601 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 35f4ff2f 2023-11-13T09:50:08 Test suppressions Bug: angleproject:8409 Bug: angleproject:8410 Change-Id: I9fb41292382563f7b9cc802167bf48432a46f55d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5023829 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 108bd958 2023-11-10T17:30:43 Tests: Add Slay the Spire trace Test: angle_trace_tests --gtest_filter="*slay_the_spire*" Bug: b/310281616 Change-Id: I6c94b0e3c72be1ad3cb2897981febd3f67722a20 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5021241 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi aec4ffac 2023-11-06T14:13:06 Add a perf test for parallel compile and link Bug: angleproject:8297 Change-Id: I40ec3af49bd0f5effbafc82b557840c615fd4c64 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008040 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3a6b385f 2023-11-09T15:48:48 Vulkan: Fix depth/stencil texture copy Bug: angleproject:7289 Change-Id: Icde8a26e855e95a6c0a1e506d2435e981adc6f28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5018798 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Shahbaz Youssefi d896fab8 2023-11-09T15:03:05 Vulkan: Fix texture self-copy A new layout is introduced to support self-copy. Bug: angleproject:7289 Change-Id: Ib914c433d55b9a79cfeb7a91f8a2b8680824d473 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5018797 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 4c500944 2023-11-08T16:16:23 Translator: Mark most builtins as not having side effect This helps the translator eliminate stray uses of these builtins. Bug: angleproject:6061 Change-Id: Ic0e72bddad5730fb1f906a4c8e53191ab3318d29 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5012988 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 2155534b 2023-11-06T11:49:20 Don't set dirty bits for attribs that are out of range. PrivateState::setAllDirtyBits sets all bits in mDirtyCurrentValues. When the context has fewer max attibutes than MAX_VERTEX_ATTRIBS, this can cause out-of-bounds access to PrivateState::mVertexAttribCurrentValues if the dirty bits are iterated over without range validation. Bug: chromium:1496378 Change-Id: I65481c432263a6e353a9361bba741b97dc5e20b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008034 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Takuto Ikuta 1bb2c5ec 2023-11-07T15:44:41 support reclient in capture_replay_tests This also uses autoninja to start and stop reclient automatically. This will be used with https://crrev.com/c/4797373. Bug: angleproject:8309 Change-Id: I2e17c87c8ff0e253f16201297ef979337bf30292 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4796170 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Roman Lavrov 9a7e8b7b 2023-11-07T17:02:02 Perf tests: log hwmon temps on linux Syslog on a failed bot indicates possible overheating. Log all hwmon temps which include CPU temps but also some other system temps (disk probably not included). We might need to self-throttle if crashes are correlated with higher temps. Bug: b/296921272 Change-Id: I25f8dd899dd25880fc1567ecc18e102759fb868f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5008089 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Le Hoang Quyen 383df961 2023-11-06T22:00:52 Metal: only convert vertex if offset is not multiple of 4. Previously we always convert vertex attribute if its binding offset is not multiple of the attribute's size. This requirement seems to be unnecessary. This CL removes that requirement so the only requirement left for offset is that it must be multiple of 4. Bug: chromium:1496807 Change-Id: I35c421951c7817b77bd0c006ed4b72cd04b5a8d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5006359 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Charlie Lao 32f209b8 2023-11-03T09:57:00 Vulkan: Fix __samplerExternal2DY2YEXTtnd combined with swizzle Pixel camera app is hitting assertion due to swizzle applied to swizzle. This CL adds ReswizzleYUVOpsTraverser::visitSwizzle() method and detects there is a swizzle on YUV sampler and apply YUV swizzle first and then original swizzle and then fold two swizzle into one. This CL added a test to reproduce the bug. This CL also makes ShCompileOptions in ShaderExtensionTest class a class member instead of local variable so that subclass can modify for testing or debugging purpose. Bug: b/309480316 Change-Id: I72353fbad8dcacd77ca17a9f44e84485f4656a34 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5001614 Reviewed-by: Chris Forbes <chrisforbes@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Dan Glastonbury 34e5620b 2023-11-01T17:52:34 Metal: Reuse UBO conversion buffer only if size matches BufferMtl::getUniformConversionBuffer will recycle an existing buffer if the request has the same buffer index and offset that is a multiple of existing block size. This disregards the GL std size of the request leading to incorrect allocation of blocks in the conversion buffer. The fix is to create a new conversion buffer when stdSize != buffer.uniformBufferBlockSize. Bug: angleproject:8393 Change-Id: Ife87309e66f65baa7f636b734a5586d0ae3b9768 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995450 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Quyen Le <lehoangquyen@chromium.org>
Shahbaz Youssefi ae3af8ee 2023-11-03T16:20:12 Manual roll VK-GL-CTS from 7d738783bf28 to b127977ddad4 (29 revisions) https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7d738783bf28..b127977ddad4 2023-11-03 gleese@broadcom.com Simplifications for float_controls tests 2023-11-03 javed@igalia.com Add tests for verifying VK_FORMAT_UNDEFINED as input format. 2023-11-03 rgarcia@igalia.com Remove ESO tests which do not actually use ESO 2023-11-03 rgarcia@igalia.com Add missing mandatory features #ifdef 2023-11-03 tzlatinski@nvidia.com Fix the verification of multi-layered decode images 2023-11-03 gleese@broadcom.com Remove unused code from integer function tests 2023-11-03 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7 into vk-gl-cts/main 2023-10-30 lorenzo@khronosgroup.org Update external dependencies to the latest version 2023-10-27 lorenzo@khronosgroup.org Merge remote-tracking branch 'vk-gl-cts/dev/VK_EXT_nested_command_buffer' 2023-10-27 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main 2023-10-27 rgarcia@igalia.com Fix warning when building deqp-vksc 2023-10-26 gleese@broadcom.com Fix offsets in float controls tests 2023-10-26 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7 into vk-gl-cts/main 2023-10-20 Tyler.Schneider@amd.com Ray Query multiple queries tests cases: dEQP-VK.ray_query.multiple_ray_queries.* 2023-10-20 rgarcia@igalia.com Test multiple geometry query stats simultaneously 2023-10-20 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7 into vk-gl-cts/main 2023-10-20 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.7 into vk-gl-cts/main 2023-10-19 mateusz.bahyrycz@mobica.com Tests for depth stencil buffer resolve 2023-10-19 gleese@broadcom.com Add coverage of compute workgroup sizing 2023-10-19 gleese@broadcom.com Simplifying changes to spirv_assembly test structure 2023-10-19 rgarcia@igalia.com Remove redundant ESO and feedback loop layout tests 2023-10-19 mateusz.bahyrycz@mobica.com Tests for sparse resources on transfer queue 2023-10-19 amber@igalia.com Add tests for inherithed framebuffers with VK_EXT_depth_bias_control. 2023-10-19 cturner@igalia.com Remove the custom device code in the copies and blitting tests 2023-10-19 piotr.byszewski@mobica.com Improve compile times of some generated glsl tests 2023-10-19 gleese@broadcom.com Simplify BorderSwizzle TestNode 2023-10-18 ziga@lunarg.com Fix duplicated files in cmakelists.txt 2023-10-18 cturner@igalia.com Fix an unused variable warning in release mode 2023-10-16 lorenzo@khronosgroup.org Merge "Merge branch 'dev/VK_ANDROID_external_format_resolve'" into 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,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: angleproject:8402 Change-Id: I99ac9c068080abf59f31e0f391da85cc0eb130b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002011 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang f441e3ee 2023-11-01T15:22:55 Metal: Fix missing mix(float,float,bool) overload ANGLE has an ANGLE_mix_bool overload when the last parameter is a bool but it is not needed when the other parameters are scalar. Bug: chromium:1493243 Change-Id: I6ea904ed63055b49cf3eaded475eafa607ca5976 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995278 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Geoff Lang 59f7467a 2023-11-01T14:53:42 Metal: Add missing ScalarMatrix ops Translations for the following built-ins were missing: scalar - matrix scalar + matrix scalar / matrix Bug: angleproject:7525 Change-Id: I5da85781829c195906cc689ffee55cb681f0337c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4995668 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Hailin Zhang 67222ef4 2023-10-20T22:56:09 Reland "Vulkan: merge client buffer data." This is a reland of commit 563569acfcaf56ea87916d2ab5d50f09c8e0094e Original change's description: > Vulkan: merge client buffer data. > > some old fashion game still use lots of interleaved > client buffer. instead of copy each attrib alone. > this cl try to merge all the attrib ranges. reduce > allocated memory and do whole range memcpy. > > Bug: b/306763053 > Change-Id: I493d7f0e1ef593fb7059c36ae0ed2149c4595e42 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4960642 > Commit-Queue: Hailin Zhang <hailinzhang@google.com> > Reviewed-by: Charlie Lao <cclao@google.com> Bug: b/306763053 Change-Id: If079ab055b7b7a2d14235bee3311fd628f657f35 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4997325 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Mike Schuchardt 221117ab 2023-11-02T08:48:51 Tests: Add The Sims Mobile trace Test: angle_trace_tests --gtest_filter=TraceTest.the_sims_mobile Bug: b/308927628 Change-Id: I5de44b7eedb904c318168fbc7e308af218dc5ab1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5002145 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Mike Schuchardt 4cc9e0af 2023-10-31T11:19:51 Capture Tests: Fix unintentional gen-on-bind usage A handful of tests are binding handles without glGen'ing them first. This causes mismatched handles in capture_replay_test.py now that replay inserts additional gen calls for resources that aren't explicitly gen'd. For handles that are intentionally gen-on-bind, clean up the GL state so it doesn't miscompare. Test: capture_replay_tests.py --gtest_filter=*/ES3_Vulkan_SwiftShader Bug: b/303100333 Change-Id: I5ce8060ff62264b3d648722b3c4542a136d95db5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994414 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Mike Schuchardt <mikes@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuly Novikov 918028a2 2023-10-31T17:53:07 Update bot detection in capture_replay_tests Since GOMA is going away, check username instead. Bug: angleproject:6085, angleproject:8309 Change-Id: Ie4fa4ec7fad8b52450c1ef8be9e5099f30c8fc7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994667 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 9a5d75de 2023-10-30T11:59:19 Vulkan: Fix incompatible redefinition of cube faces The TextureVk::mRedefinedLevels bitmask tracked which levels are incompatibly redefined, greatly reducing the complexity of dealing with GL's mutable textures. It did not however take into account the fact that GL allows each cubemap face to be separately redefined (unlike 2D arrays, where all layers are defined together). This change turns the bitmask into an array of bitmasks. Previously, a single bit represented whether the level is incompatibly redefined. Now, elements of the array track the same information for each cube face. For non-cube-map textures, only element 0 is used. Bug: chromium:1494664 Change-Id: I69568d3da2391796bf5f01505861fee42c6c8924 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4986289 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Chris Forbes c0c20673 2023-10-31T09:03:16 Remove expections for some AHB tests which are now fixed Bug: b/223456677 Change-Id: Ibdc5b529e249c39c241a8e8e2b78ac10ff3d5ad2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4988292 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Alexey Knyazev b6607672 2023-10-30T00:00:00 Test sampling from a texture with renderable levels below base Bug: angleproject:8378 Change-Id: Id847849e1920c0d1706a4b3441c907ea2451cb6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4994791 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Geoff Lang 36f41997 2023-10-30T15:14:09 D3D11: CopySubTexture: Handle sRGB source with D3D11 Use typeless formats for sRGB textures that can be reinterpreted as linear. Add a parameter to SRV creation to request samplers that do not do sRGB for copying sRGB textures. Bug: angleproject:7907 Change-Id: I3d94dfa5b25a1c2c531cd9bef4247097aa4bfb61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4986290 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Alexey Knyazev 118a9b14 2023-10-30T00:00:00 Test sampling from a texture with extra renderable levels Bug: angleproject:8378 Change-Id: I4790d59ce193a2aa4ba9e468debf0933a6e3fe47 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4987639 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao c0f94afb 2023-10-30T11:07:02 Vulkan: Limit ImageTestES3.RGBXAHBImportMultipleLayers to 1 layer ImageTestES3.RGBXAHBImportMultipleLayers is testing 3 layer AHB with CPU write. It assumes alignment between each layer is 4096 which appears not always true in ARM driver. I am also not seeing any API that would tell us the underlying layer alignment. So for now restrict this test to single layer. Bug: b/223456677 Change-Id: I447990d08d31c2a20e8765686834f43b81560840 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4990044 Reviewed-by: Chris Forbes <chrisforbes@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Charlie Lao 5fa65ec8 2023-10-27T16:12:46 ImageTest: check support before test cubemap ImageTestES31.SourceAHBCubeArrayTargetCubeArray crahes because AHB creation failed. We should check kAHBUsageGPUCubeMap support and bail out if not supported. Bug: b/223456677 Change-Id: I0d66830ac892e673bc39cca8caf5e25822957775 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985412 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Chris Forbes <chrisforbes@google.com>
Cody Northrop e519da9a 2023-10-29T14:33:06 Tests: Add Streets of Rage 4 trace Test: angle_trace_tests --gtest_filter="*streets_of_rage_4*" Bug: b/308334509 Change-Id: I3cc2d41c83bfcc6a32e6d1aec5e306cefb15afdc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4988132 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Mike Schuchardt <mikes@lunarg.com>
Charlie Lao bcd331f1 2023-10-27T15:21:35 ImageTest: Allow writeAHBData to fail ImageTest::SourceNativeClientBufferTargetRenderbuffer test is using EGL to create a AHB. eglCreateNativeClientBufferANDROID does not allow us to specify CPU access. So driver may allocate AHB in a way that prohibits CPU access. That will cause AHB lock to fail and writeAHBData crash. This is within AHB specification. This CL allows this to fail so that we wont crash. Bug: b/223456677 Change-Id: I549b940d1283165cec1dc48ea5b43ba917081252 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985627 Reviewed-by: Chris Forbes <chrisforbes@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Mike Schuchardt 53c5b145 2023-10-10T09:42:08 Capture/Replay: Restore texture bindings on reset Store active texture unit and all bound textures at capture start. Track dirty state for each unit+target pair during capture. Restore bound textures for each dirty binding unit when resetting context state. Also restore active texture unit if necessary. Test: Capture The Sims Mobile Bug: angleproject:4599 Change-Id: Iae3e03e6c5b0a35d5bb95bf07397d7894355502b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4927869 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mike Schuchardt <mikes@lunarg.com>
Alexey Knyazev 3b555e8d 2023-10-26T00:00:00 GL: Add emulateClipOrigin workaround Older Adreno drivers apply GL_CLIP_ORIGIN_EXT to the framebuffer instead of the clip space, thus causing various side-effects. Used a uniform to emulate the correct behavior. Drive-by: * Fixed a typo in ClipControlTest.OriginFrontFacing Fixed: angleproject:8392 Change-Id: I2f7145977ab0e11dc88e8dbfec2cd32c4c31f830 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4987326 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Tommy Nyquist 95fe7e47 2023-10-27T14:07:52 [Android] Update NDK version check for hardware buffer. The function used for checking if hardware buffer is supported requires NDK 29, but is currently checking if 26+ is in use. This was not an issue before, but when updating the minimum SDK (and NDK) version in Chromium, this led to an inconsistency. For now, increasing the version requirement to 29+, and therefore also removing the unnecessary branch for lock planes support. Bug: chromium:1497004 Change-Id: I3d6e60e51db0831ee81d817aec90760d7680cc31 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4985624 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Roman Lavrov a7882c41 2023-10-27T09:32:07 Skip InstancingTestES3.LargeDivisor on Linux ASAN Tests a large divisor and hits an emulation path on SwiftShader, causing flaky timeouts on asan bots. Bug: angleproject:7900 Change-Id: Ia82941e67867816c8330472f4f2ea8d897fa9636 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4982910 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mateusz Przybylski fdf4c6a6 2023-10-24T12:09:51 Add test for attrib rebinding from ARRAY_BUFFER to client. Failure was found in Dragonmania game, where on switching from ARRAY_BUFFER to client attrib pointer without updating the stride, ANGLE assumed no change in the pipeline. Bug: b/306472834 Change-Id: I30f7a478ed62f4356317156b50558166cb7c4c01 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4977168 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Geoff Lang 729e19ac 2023-10-24T15:31:17 Remove essl3 extension requirement for ES3 texture parameters The extensions are not clear about support for the swizzle parameters with external textures. Other parameters are mentioned with specific validation (which is handled in ValidateTexParameterBase). Simply let the other validation handle these parameters and allow the swizzle to be forwarded. Bug: chromium:1493448 Change-Id: Ic34d4c124c5493fef796322b5237541e557fd7ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4973157 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov 13776ac3 2023-10-24T11:10:25 Compile with optimize_max instead of default_optimization Android builds default to aggressive optimization for size (-Oz) which results in subpar performance in some spots. AFAICT the effect of this change on cflags is: -Oz -enable-ml-inliner=release to -O2 Note that -enable-ml-inliner=release has a more significant impact on the binary size than -Oz/-O2: With it: -Oz 5.7M, -O2 6.15M Without it: -Oz: 6.3M, -O2 7.1M So this change goes 5.7M -> 7.1M (+1.4M). That's in standalone ANGLE builds. Unsure if Chrome builds might be different. Skipping a few dEQP tests where this switch seems to uncover UB. Bug: b/306391262 Bug: b/307584642 Change-Id: I44d0f3bcf25de0c36a4228895cad19ea38502cbf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4968419 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Dan Glastonbury 562d4be3 2023-10-20T14:33:05 Clear pending program linking in Context::onDestroy When destroying Context, ANGLE resets any internal state before releasing allocated objects, such as Programs and Shaders. When destroying a program, any pending program linking is resolved via Program::resolveLink. This results in trying to access the Context state that’s just been reset. To work around this, we ensure there are no pending links before resetting the Context state. Bug: angleproject:8380 Change-Id: I599c7e5a82b0e6bf14df1263006e10d8a9cb0b38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4957715 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org>
Yuxin Hu c22f46b5 2023-10-23T11:52:20 Update rgb-565-no-depth-no-stencil test suite names Replace the "-" with "_" in the test suite names to be consistent with other test suite name formats. Bug: b/297901032 Change-Id: Idbfc1bc7aa7cef4382e3cdd3e223db28f414f15e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4968792 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Le Hoang Quyen 65f6c2ea 2023-10-22T18:07:55 Metal: always implicitly resolve MSAA render buffers on tiled GPUs. On tile based GPUs, implicitly resolving MSAA render buffers to single-sampled is preferred. Because it would save bandwidth by avoiding storing the MSAA textures to memory. Furthermore resolving as StoreAction is almost a free operation on these GPUs. Traditional desktop GPUs almost always store MSAA textures to memory anyway, so this feature would have no benefit besides adding additional resolve step as well as memory overhead of the hidden single-sampled textures. Bug: chromium:1486094 Change-Id: I5eb3b1314560024dd5c0834b0c0b43a6b4d3d51b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4962114 Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 4b59e4c6 2023-10-17T17:47:20 Add a test to check glReadPixels format and type In GLES 3.2 spec https://registry.khronos.org/OpenGL/specs/es/3.2/es_spec_3.2.pdf, section 16.1.2, it says the following glReadPixels type and format should work: The second is an implementation-chosen format from those defined in table 8.2... The values of format and type for this format may be determined by calling GetIntegerv with the symbolic constants IMPLEMENTATION_COLOR_READ_FORMAT and IMPLEMENTATION_COLOR_READ_TYPE, respectively. The implementation-chosen format may vary depending on the format of the selected read buffer of the currently bound read framebuffer. Add a test to check that when reading from the default framebuffer, using the format and type retrieved from IMPLEMENTATION_COLOR_READ_FORMAT and IMPLEMENTATION_COLOR_READ_TYPE works. Bug: b/306256081 Change-Id: I1e94087aac8c803bcc5db3515ed56291349daf28 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4950844 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi ba65feb4 2023-10-18T17:33:38 Vulkan: Limit mutable texture flush to one update In case there are many updates for a mutable texture, flushing it preemptively can reduce performance, especially if it is done repeatedly. * Added getLevelUpdateCount() to ImageHelper. * Previous mutable textures will now be flushed only if they have exactly one update per mip level/cubemap face (if defined). * This means that mutable textures with no data will also not be flushed. * Added unit tests for single-level texture flushing and situations with no updates or more than one update. Bug: b/285613719 Change-Id: I1592ecf502051a55ebfbb7fcd22577c9ce87bf43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4953847 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 49fd8eda 2023-10-20T14:23:38 android_helper: improve _RemovePrefix logging Random stuff gets in there sometimes, such as: "cmd: Failure calling service package: Broken pipe (32)" RemovePrefix just raises that it doesn't start with "package:" so the issue doesn't show up in logs. Bug: b/296921272 Change-Id: Ifae4e3c0c7717514401bf1109febf8e70fff6527 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4959473 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Yuxin Hu cfc40d2b 2023-07-19T17:47:13 Vulkan: Adjust clear color precision for GL_RGB5_A1 FBO When clear color has more precision than the framebuffer format can hold, dithering is automatically applied on some hardware. This issue causes below dEQP tests to fail when the FBO color attachment format is RGB5_A1: KHR-GLES31.core.draw_buffers_indexed.color_masks KHR-GLES32.core.draw_buffers_indexed.color_masks Adjust the clear color precision for RGB5_A1 format to workaround the issue. We can remove this workaround once the vulkan driver fixes the auto-dithering problem. Bug: b/292282210 Change-Id: Ic3ffebd2d20c8782612619a60d1ec2cc6d613c22 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4937472 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev 36439d9c 2023-10-12T00:00:00 Metal: Fix PBO uploads of PVRTC1 textures Do not override row pitch values for PVRTC1 textures during internal backend operations. Instead, set bytesPerRow to 0 before calling replaceRegion just to pass Metal Validation. Enforce CPU path for PBO uploads until GPU block linearization is implemented. Bug: angleproject:8376 Change-Id: I80b9ec69364d55cd9f51005f4d1a180e05e71c2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4949350 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Gyuyoung Kim 3b28bca0 2023-10-11T09:49:54 Allow using RGBA IOSurfaces with GL_RGBA format for EAGL backend As https://crrev.com/c/4877334 switched RGBA IOSurfaces to GL_RGBA to work with ANGLE/Metal, some tests(e.g. web tests) on iOS failed to create an IOSurface because ANGLE'S EGL backend still still binds IOSurfaces as GL_BGRA_EXT even though we expect the IOSurface to really be RGBA. To fix it, this CL allows using RGBA IOSurfaces with GL_RGBA format by adding a GL_RGBA entry to kIOSurfaceFormats. See also the comment[1] for better explanation. [1] https://crrev.com/c/4918590/comments/1e44e971_50c3d780 Bug: chromium:1489586 Change-Id: Ifa215318401edb892fd5527c35c7d30871e82a83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4930309 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop 1ea49a22 2023-10-13T11:28:41 Move uniform dirty bits to ProgramExecutable Rather than try to funnel them through Program and ProgramPipeline to the executable in the backend, just move them to ProgramExecutable in the front end. This fixes Dota Underlords at the same time due to not needing to set the Program dirty to propagate bits. Test: Dota Underlords Test: ProgramPipelineTest31.ProgramPipelineBindBufferRange Bug: b/299532942 Change-Id: Ic73c45608e22f89ca400ebf684f8cd287ed2f43a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4922969 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Stephen White 3892ac14 2023-10-12T13:35:33 Do not flush normal float constants to zero. It's ok to flush denormalized constants to zero. It's not ok to flush perfectly valid normal float constants >= FLT_MIN to zero. Two problems: 1) Values when parsed as doubles with a value less than FLT_MIN are being flushed to zero. This is incorrect when the comparison is done in double, since some values below FLT_MIN in double are equal to FLT_MIN when cast to float. The fix is to perform the comparison in float. 2) Values with a decimal exponent less than FLT_MIN_10_EXP are being flushed to zero. FLT_MIN_10_EXP is -37 but FLT_MIN is 1.1754943E-38. 10^-37 may be the "minimum negative integer such that 10 raised to that power is a normalized float", but being constrained to powers of ten it's above FLT_MIN (which is 2^-126). Since this comparison is done before #1 above, it's only present (AFAIK) to ensure that the exponent will not make the pow() function overflow. Comparing against -38 (FLT_MIN_10_EXP - 1) instead will do the trick. Bug: angleproject:8373, dawn:2077 Change-Id: I1ddf410c2caa9f0d1ba3529ace693dcd326a2cb3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4936714 Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Alexey Knyazev c54c2f81 2023-10-12T00:00:00 Sync border color on format updates When a texture is redefined, its border color should be resynced because of format-specific adjustments. Used memcmp for comparing ColorGeneric structs. Bug: angleproject:7969 Change-Id: If0e3e0bc7761c26dab6d00ab24462c789f5b90bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4935866 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Alexey Knyazev 1988108e 2023-10-12T00:00:00 Tighten draw buffers validation for dual-source blending Use the front-end DRAW_BUFFER* state instead of the internal mask, which is unset for missing attachments. Bug: angleproject:1085 Bug: angleproject:7177 Change-Id: I5311d1f26043f15035e51957920bf9cd553c3007 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4935858 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev b870956e 2023-10-05T00:00:00 GL: Limit depth/stencil texture mode updates The DEPTH_STENCIL_TEXTURE_MODE state must affect only DEPTH_STENCIL textures (OpenGL ES 3.2, Section 8.16). Some drivers do not follow this rule and exhibit various side effects when this mode is set to STENCIL_INDEX for textures of other formats. Bug: angleproject:2373 Change-Id: I20a8168d858cf070762ff0b3b7111cdf30e8166d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4936374 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Yuxin Hu 43acadab 2023-10-06T15:05:36 Add missing configurations for khr tests KHR-GLES* tests are ran with configurations defined in glcKhronosMustpassEs.hpp: https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/openglcts/modules/runner/glcKhronosMustpassEs.hpp, when launching the conformance test from Khronos Conformance Package. This change adds the missing configurations in test_suites.pyl, for vulkan backends and swiftshader backends. Bug: b/297901032 Change-Id: I87e77ca8756b883ef08551919f67904ecf21aa97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4918582 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov a0967770 2023-10-06T18:01:45 Add egl/wrapper headers to deqp opengl sources gn gen --check catches these and "include not allowed" Bug: b/303881910 Change-Id: I26728dc2618436daec232152c56d59a7233ca91e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4916365 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev 0afc3ec9 2023-10-05T00:00:00 Metal: Fix robust initialization of PVRTC1 textures Replace Region Validation: rowBytes must be 0 for: * MTLPixelFormatPVRTC_RGB_2BPP * MTLPixelFormatPVRTC_RGB_2BPP_sRGB * MTLPixelFormatPVRTC_RGB_4BPP * MTLPixelFormatPVRTC_RGB_4BPP_sRGB * MTLPixelFormatPVRTC_RGBA_2BPP * MTLPixelFormatPVRTC_RGBA_2BPP_sRGB * MTLPixelFormatPVRTC_RGBA_4BPP * MTLPixelFormatPVRTC_RGBA_4BPP_sRGB Fixed: angleproject:8370 Change-Id: I153bea5bb487f79b0966be0b8670a2ee4e3aeb39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4915704 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Roman Lavrov 7e8907db 2023-10-06T15:41:05 Add egl/wrapper to deqp opengl includes Needed to roll VK-GL-CTS upstream change: https://issuetracker.google.com/303881910 Bug: b/303881910 Change-Id: Idffa299cc6c1d277702167bf50e1d944febb9e7e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4915605 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Alexey Knyazev 0015d1e2 2023-10-05T00:00:00 Allow ETC1_RGB8 for 2D array textures When GL_EXT_compressed_ETC1_RGB8_sub_texture is enabled, ETC1_RGB8 format must be accepted for 2D array textures. Bug: angleproject:5731 Change-Id: Ic5e647ffd4e7d2a171e25ea8cf3f41514cf37072 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4915918 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 65e8ae30 2023-10-06T09:42:45 Vulkan: ANGLE_device_vulkan is incompatible w/ asyncCommandQueue The application may use EGL_ANGLE_device_vulkan to retrieve ANGLE's Vulkan queue for direct usage. There is no mechanism for the application to synchronize with the internal thread that uses the same queue when the asyncCommandQueue feature is enabled. This was causing flakiness where VVL reported this error. This change makes sure an ASSERT catches this incompatible usage. Bug: angleproject:7204 Bug: b/299693666 Change-Id: Idf349f99d80b7bbddeb9a0b2d72e3dd7c707fa5c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4915594 Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov d6bf8e0d 2023-10-02T18:10:36 Improve capture_replay_tests (win-trace) logging * Get rid of the CRASH expectation as it is always confusing. Replace items in expectations with SKIP_FOR_CAPTURE. This will no longer run the corresponding tests (which was making logs even more confusing) * Use CaptureFailed and ReplayFailed instead of Crashed status (the actual meaning is a non-zero return code from the test harness) * Introduce batch names by indexing them as they are created: batch_000, batch_001, ... This enables easy searching in logs. * When logging a batch (result) include its name and why it is logged * Failed batches are printed with full output instead of "abbreviated" output. One issue with b/303065176 was that an important part of the output (errors) was truncated by this "abbreviation" * Remove "regression log" and "Summary" as these are often just confusing: regression log just duplicates information printed earlier and summary may not be clear w.r.t test expectations. The part that prints what was unexpected is still there. It also now includes batch names so it's much more obvious what comes from where. Example: Unexpected 'CaptureFailed' (8): != Pass: batch_000 FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBellowBaseLevelLOD/ES3_Vulkan_SwiftShader != Pass: batch_000 FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBellowBaseLevelLOD/ES3_Vulkan_SwiftShader_AsyncCommandQueue != Pass: batch_000 FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithBellowBaseLevelLOD/ES3_Vulkan_SwiftShader_EnableParallelCompileAndLink != Pass: batch_000 FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithSubImageWithBeyondMaxLevel/ES3_Vulkan_SwiftShader != Pass: batch_000 FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithSubImageWithBeyondMaxLevel/ES3_Vulkan_SwiftShader_AsyncCommandQueue != Pass: batch_000 FramebufferTest_ES3.RenderAndInvalidateImmutableTextureWithSubImageWithBeyondMaxLevel/ES3_Vulkan_SwiftShader_EnableParallelCompileAndLink != Pass: batch_000 FramebufferTest_ES3.RenderImmutableTextureWithSubImageWithBeyondMaxLevel/ES3_Vulkan_SwiftShader != Pass: batch_000 FramebufferTest_ES3.RenderImmutableTextureWithSubImageWithBeyondMaxLevel/ES3_Vulkan_SwiftShader_AsyncCommandQueue Unexpected 'FailedToTrace' (1): != Pass: batch_001 FramebufferTest_ES3.RenderSampleDepthTextureWithExcludedLevel/ES3_Vulkan_SwiftShader Bug: angleproject:7519 Bug: b/303065176 Change-Id: Ie0c4734c7c4ac965aa6fd38b0c1783e0b92af7a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4908349 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 8c341cfd 2023-10-04T12:49:59 Vulkan: Fix blits involving 3D images The layer vs depth value involved with 3D images when calling vkCmdBlitImage is fixed in this change. However, that brought to light that the combination of VUID-vkCmdBlitImage-srcImage-00240 and VUID-vkCmdBlitImage-dstImage-00252 make it impossible to blit between 3D and 2D array images, which is likely a spec oversight. This change makes 3D<->2DArray blits fall back to draw-based blit. This in turn exposed the fact that 3D images as src were not handled in BlitResolve.frag. A new Blit3DSrc.frag shader is added which shares code with BlitResolve.frag to implement this. This is a separate shader to avoid creating unnecessary and invalid combinations of shaders. VK_EXT_image_2d_view_of_3d could have been used to avoid this new shader, but that is not ubiquitous. Bug: angleproject:7291 Bug: dawn:1962 Change-Id: I6a96162f95829304b4731d43208d9d054f538105 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4911800 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 856a6ec0 2023-10-03T17:17:35 Enable rgb-565-no-depth-no-stencil tests on Android Bots Enable gles3 and gles31 rgb-565-no-depth-no-stencil tests on Android Bots. Khronos conformance package ran the gles3 and gles31 tests with rgb-565-no-depth-no-stencil configurations on Android devices: https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/openglcts/modules/runner/glcAospMustpassEs.hpp#L41 Enable the rgb-565-no-depth-no-stencil configuration tests on Android bots to cover them. Non-Android platforms do not support rgb-565-no-depth-no-stencil configuration. We should not enable it on non-Android platforms. This CL also disables this configuration from building on non-android platforms in src/tests/BUILD.gn. Bug: b/297901032 Change-Id: I23d83213818884ea679dd76bf4b001c3b636dffc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4908171 Reviewed-by: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi ffb32380 2023-10-02T16:01:37 Vulkan: Fix device creation on multi-queue devices When multiple eligible queue families are exposed by the device, ANGLE defers devices creation until a surface is made current, at which point it selects a queue family that supports presentation to that surface. This path was largely untested and was broken: - Some post-device-creation initialization was not deferred until the device was actually created - Some cap calculation depended on the chosen queue family index - Query of device capabilities was done too late, such that ANGLE could not correctly determine the level of support for ES versions. Bug: angleproject:8300 Change-Id: I2a35396d1fd08ed26d217dff07d10e9a9c1ac55f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4907895 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Roman Lavrov 1eccf863 2023-10-03T16:18:07 Handle non-debuggable com.android.angle.test on device Noticed in capture_tests on CI, and angle_perftests also runs into this. When a non-debuggable test apk is installed on the device the hash check fails as run-as does not work for non-debuggable apps. It's just an optimization to avoid re-installing the apk though, so just warn about the error and re-install the apk. Bug: b/303276423 Change-Id: Iecc68de285454043fc7f090163af373a22e11e41 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4910152 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 7f5143c2 2023-10-02T15:38:15 Vulkan: Notify VAO when VBO's mBufferWithUserSize changed. When buffer robust access is enabled, and bufferData is called with different size and we end up reusing the underline storage, we will have to recreate VkBuffer with user's size, and driver is relying on VkBuffer's size to implement robust access. The bug here is that we notify VAO when storage changes. But when storage is reused and we have dedicated VkBufer with user size and that VkBuffer changed, we were not notifying the VAO. This CL adds that notification so that VAO gets notified and dirty bits processed and its cache of VkBuffer gets updated Bug: chromium:1488055 Bug: b/303138134 Change-Id: Ie693c92c2edde9a22a41a25f5bde493397550d95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4906568 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 8b9500ae 2023-09-28T16:15:21 Enable multisample deqp tests on bots Enable gles3 and gles31 deqp multisample tests on bots. Khronos conformance package ran the tests in gles3 and gles31 mustpass list with multisample config rgba8888d24s8ms4: https://github.com/KhronosGroup/VK-GL-CTS/blob/main/external/openglcts/modules/runner/glcAospMustpassEs.hpp#L24 Enable the multisample config tests on bots cover the tests. This CL only enables the multisample tests on Vulkan backends (including swiftshader) on Android, Linux, Windows, as we are prioritizing vulkan backend development. Bug: b/297901032 Change-Id: Iaa830bd466e3564bb1e83c98cc360bd5a85abf86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4903430 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi e9719f5c 2023-10-02T12:15:35 Capture/Replay: Disable VK_EXT_host_image_copy during capture Bug: b/303065176 Change-Id: I87f9dd11cd87115f097bb35d44f024db19274d51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4903077 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 4ace4da1 2023-09-28T00:00:00 Metal: Add 2D array and 3D texture type mappings Do not try to copy texture levels with mismatching layer counts to avoid triggering Metal validation. Fixed: angleproject:8364 Change-Id: I4bc72be753a62dd78dc131562c62e14eb540ab2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4901993 Reviewed-by: Quyen Le <lehoangquyen@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>