src/tests


Log

Author Commit Date CI Message
Alexey Knyazev 0e7c79e3 2023-06-29T00:00:00 Vulkan: Fix resolve with multiple targets of different formats Ensure that the appropriate code path is taken when resolving into multiple target buffers of different formats. Bug: chromium:1123524 Change-Id: Ic25a52ba069a2209c907226613fde1109823c094 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4650561 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Steven Noonan 113f847b 2023-06-26T12:07:52 centralize basic OS/platform detection functions We had multiple different places that defined these, and with varying naming schemes. Centralize them to be defined in platform_helpers.h. Also renaming the IsApple(uint32_t) functions to IsAppleGPU(uint32_t) to avoid ambiguous meaning: "IsApple" should mean "is Apple-vended OS" while "IsAppleGPU" should mean "is Apple GPU vendor ID". Bug: angleproject:8229 Change-Id: If4e3fc5ac1b5b8ad416663950a1b2ee912ccad99 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647291 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Steven Noonan <steven@uplinklabs.net> Auto-Submit: Steven Noonan <steven@uplinklabs.net> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi b1b12d4a 2023-06-22T15:27:48 Vulkan: Move device OOM tests to new test suite * Moved the device OOM tests from VulkanImageTest to a new test suite, VulkanMemoryTest. * It is instantiated for ES3. * Moved the slow tests in the expectation file to the end. Bug: b/280304441 Change-Id: Icc958b5eb071567f8e6671661302760c7f5e3621 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4639041 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Mark Lobodzinski 5f6d7848 2023-06-15T12:31:26 Android: Add/update MaliG710 expectations and tests Fixed End2End tests causing valiadation errors where VK_EXT_primitives_generated_query was being enabled without enabling VK_EXT_transform_feedback. Consolidated the DEQP-GLES3 expectations for the functional.transform_feedback* tests, updated some changed test names. These test expectations were collected from the 43.0 driver version. Bug: b/285628492 Bug: angleproject:8212 Change-Id: I224a2eec33ee56b7303d17aebd998de65354106c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4626241 Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Constantine Shablia 0e3d200d 2023-06-21T07:01:42 Tests: Add paletted formats glGetTexImageANGLE tests Test: angle_end2end_tests --gtest_filter=GetImageTestES1.PalettedTexImage* Bug: angleproject:7710 Change-Id: I1c7edcbeae86d88076deffb2b8484ecd85a4b773 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4629690 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Constantine Shablya <constantine.shablya@collabora.com>
Mohan Maiya 122b292d 2023-06-26T14:32:32 Fix bug in ProgramPipelineObjectBenchmark Bug: angleproject:5102 Test: ProgramPipelineObjectBenchmark* Change-Id: I8d596ce7d6d9866b3333e675b40d9aad470525e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647096 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Amirali Abdolrashidi 232506e1 2023-05-15T19:19:39 Vulkan: Free the garbage memory before realloc The previous CL added the feature of freeing garbage memory in the event of device OOM. However, it was for image allocations only. * Extended finishing commands and freeing the garbage to buffers. * Added unit test to allocate buffer after freeing memory space on the device. Bug: b/280304441 Change-Id: I540b27a41b34d1ceb1cd3119213341c9f290ea38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4540209 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Charlie Lao <cclao@google.com>
Amirali Abdolrashidi 5f9548c3 2023-05-19T11:51:04 Vulkan: Free the garbage memory before realloc Currently image allocations fall back to system memory in case of a device OOM. However, in some cases, it is also possible to gain some memory by freeing garbage memory from the device. This allows us to keep the allocation on the device memory. * Updated the image allocation fallback, so we will try cleaning the garbage memory through the renderer before retrying the allocation. * finishOneCommandBatchAndCleanup() in RendererVk, which will call a similar function in its CommandQueue. It will be called until there are no more in-flight submissions. * The existing finishOneCommandBatchAndCleanup() in CommandQueue has been renamed to finishOneCommandBatchAndCleanupImpl(). * Updated the flags used for VMA image allocations. If any device memory is freed after garbage cleanup to make enough space for the new allocation, it will take precedence over the system memory. * Added unit tests in which a new image allocation could happen on the device after freeing the garbage memory. * They use a 2D texture and a 2D texture array for garbage. Bug: b/280304441 Change-Id: Ia5e605e180833b44af8c77550ab1b0b8ba21724e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4547941 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi cba77bce 2023-06-26T14:30:58 Disable device OOM tests for Linux/NVIDIA * Disabled the device OOM test in VulkanImageTest for Linux/NVIDIA systems, due to potentially affecting other tests with flakiness. Bug: angleproject:8236 Change-Id: I4dc0e4f22149507350093708031e05ded5e5c18e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4647294 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 61eda436 2023-06-15T14:47:35 Fix TexImage3D validation for 2D arrays below ES3 Currently if we try to define a 2D texture array in ES2, a crash occurs during its validation. Since texture3DOES only adds support to 3D textures, we should make sure the validation only passes if ES3 and above are used. * Added check for 2D texture array usage in validating glTexImage3D(). Bug: angleproject:8213 Change-Id: Ib477d8b6eec89c35d605a1b575bfb5519d19452e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4618955 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 4a4b13cc 2023-06-26T14:55:01 Fix SixteenBppTextureDitheringTestES3 formats Copy-paste mistake from https://crrev.com/c/4628974 Bug: b/284462263 Change-Id: Id9f78386a0c1495c4c2e32d0c5b18a8e2f5cc74a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4645735 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 2283d2d0 2023-06-15T18:40:28 Update the mustpass list that dEQP-EGL tests uses Android CTS and Khronos CTS use different set of dEQP tests. android/cts contains mustpass lists for Android CTS. We have test coverage in the Android CTS in Android testing infra, and we would like ANGLE standlone deqp test runner to cover the Khronos CTS. Update the dEQP-EGL test runner to use the mustpass list that Khronos CTS uses. Since the test lists changed, some tests in expectation files are no longer needed, as they are not within Khronos CTS mustpass list. Keeping them in the expectation file will cause test runner exception as the test runner does check if the test listed in the expectation file is in the mustpass list. Bug: b/286921997 Bug: angleproject:6277 Bug: angleproject:7506 Bug: angleproject:6528 Change-Id: I7851b854322985f564cbb56d804f04f663d947aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4619627 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Chris Forbes <chrisforbes@google.com>
Mohan Maiya a31e8c30 2023-06-24T15:53:57 Refactor Image colorspace tests for better readability 1. Always upload color values encoded in sRGB colorspace for sampling tests and linear colorspace for rendering tests. Depending on attribute list, the test will either expect color decoded in linear space or sRGB color value as is 2. Add helper functions that determine expected output color for a given attribute list and EGLImage usage Refactor TEST and helper functions to account for the above updates Test: ImageTest*_Colorspace* Bug: angleproject:3756 Change-Id: I54ae22b2d379e6fdfa04429849de5efe9684caf4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4643452 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi 764f31be 2023-06-22T23:52:43 Add more BitSetArray tests Bug: angleproject:8224 Change-Id: I8835da245df52e1be2e3e4ea17e32ce8c438e51e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4636870 Reviewed-by: Roman Lavrov <romanl@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Amirali Abdolrashidi 7169dc5f 2023-06-23T12:02:19 Fix vsync and offscreen for restricted_trace_perf * Updated the command used to run the trace so it would use the mode input, which includes --vsync and --offscreen. Bug: angleproject:8234 Change-Id: Ia761e369993183dcdfb66383f3006cf660044add Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4641272 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Gregg Tavares bc2d5ed0 2023-06-22T14:24:46 Fix wrong size computation in test Bug: angleproject:8227 Change-Id: Idde149465de57db4091847dfdb213a63bc4e3e2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4638742 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov e431b3e4 2023-06-20T16:42:16 Add pixels checks to bandingTest on Android +toggle GL_DITHER Bug: b/284462263 Change-Id: I69122d1d53d03a2e75d498e77a669099a568ab3c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628974 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 6e99d6bc 2023-06-22T09:14:11 Only build angle_capture_tests_trace when building traces Some PGO build failed in Chromium. Standalone ANGLE testing is currently sufficient. Bug: chromium:1456291 Change-Id: I5a685020afdfe152348d282a28379c3b628d5964 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4636681 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi bbcf54bc 2023-06-16T16:02:08 Vulkan: Refactor uniform/block binding duplication code Previously, resource binding assignment was done as such: ``` for each shader stage assign bindings to textures assign bindings to blocks assign bindings to images etc ``` To deduplicate bindings when the same resource was used in multiple stages, a map was used, keyed by the resource's name, to detect when an already visited resource is encountered in a future stage. This was both inefficient and unnecessarily complicated. With this change, resource binding assignment is done as such: ``` for each texture assign one binding to all shader stages for each block assign one binding to all shader stages for each image assign one binding to all shader stages etc ``` The aforementioned map is removed. Because the resource bindings are now changed, the rest of the code (which sets up the pipeline layout, updates descriptor sets, sets dynamic buffer offsets, etc) are all updated to follow the above pattern. As a result, nested loops are avoided and duplicate entries in the variable map are never visited. Bug: angleproject:7220 Change-Id: Iaff7b5f8b2bada8ac5078d21e5c790bf0d27aca7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4622011 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Steven Noonan 508eb865 2023-06-19T11:54:06 Vulkan: avoid crash on AMD drivers with MSRTT emulation If you have a multisampled color+depth framebuffer and discard depth before the end of the render pass, ANGLE skips assigning pDepthStencilResolveAttachment. Doing so is fine on most vendors, but on AMD drivers, the application will crash in the user mode driver when calling vkCreateRenderPass2KHR. Simply not adding the depth/stencil resolve structure to the PNext chain avoids the crash and allows the application to function normally. Bug: angleproject:8217 Change-Id: I0dc14c03d2b999e280a4d363e0296fd10812540c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627280 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Steven Noonan 262784f4 2023-06-19T17:56:04 D3D11: unbreak instanced indirect multidraw with ushort indices The baseInstance parameter was not being passed in the unsigned short index case. Bug: angleproject:8216 Change-Id: If660c6d4125bfd2aff8f4fd3a9171194635d21c6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4627281 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 5aa818fd 2023-06-20T15:08:03 Assert !is_official_build in Android builds. Bug: angleproject:7381 Change-Id: I658cb0389fc5a12726ea873c3a2d5afb006b6953 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4628674 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
angle-autoroll 174742fd 2023-06-18T13:07:00 Roll VK-GL-CTS from 7fcb3c6e0082 to f29bd2feeaff (19 revisions) Suppress dEQP-EGL failures. https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/7fcb3c6e0082..f29bd2feeaff 2023-06-18 lorenzo@khronosgroup.org Merge vk-gl-cts/github-main into vk-gl-cts/main 2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main 2023-06-16 piotr.byszewski@mobica.com Split pipeline.txt in vksc-default 2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6 into vk-gl-cts/main 2023-06-16 alexander.galazin@imgtec.com Fix check_build_sanity.py error 2023-06-16 lorenzo@khronosgroup.org Add missing line in AndroidGen.mk for vktFragmentShadingRateMiscTests.cpp 2023-06-16 rgarcia@igalia.com Test FSR in a pipeline without fragment shader 2023-06-16 ziga@lunarg.com Add xfb test drawing outside of xfb begin 2023-06-16 piotr.byszewski@mobica.com Test RT interaction with flags added by GPL 2023-06-16 rgarcia@igalia.com Test gl_SampleMaskIn with sample shading 2023-06-16 rgarcia@igalia.com Test enabling and disabling VRS statically 2023-06-16 rgarcia@igalia.com Test allocation and binding offsets with index buffers 2023-06-16 pdaniell@nvidia.com Remove the "Error:" prefix with NotSupported results 2023-06-16 jenatali@microsoft.com Fix skipping when synchronization2 is unsupported on Windows 2023-06-16 gleese@broadcom.com Remove 64-bit test code for builtins which don't support it 2023-06-16 jenatali@microsoft.com Don't include windows.h in the vk namespace 2023-06-16 rgarcia@igalia.com Disallow direct linking of GLES libraries by default 2023-06-16 lorenzo@khronosgroup.org Merge vk-gl-cts/vulkan-cts-1.3.6 into vk-gl-cts/main 2023-06-15 younggwan.kim@arm.com Merge dev/EXT_shader_tile_image 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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8214 Change-Id: I84598fb784adf1e30abbeaac3c53dcd97108d58a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4624553 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi e394cb46 2023-06-10T23:12:35 Vulkan: Refactor framebuffer fetch shader emulation This change fixes simultaneous usage of EXT_shader_framebuffer_fetch and ARM_shader_framebuffer_fetch, which previously declared two identical input attachment variables. The code is additionally greatly simplified. Bug: angleproject:8196 Bug: angleproject:8197 Bug: angleproject:8198 Change-Id: Iaaa2a5539a95727e67001a4da1d45092c9db4f2c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615187 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski de28b89a 2023-06-15T12:31:26 Android: Add Pixel 7 entries to End2End expectations Bug: b/285628492 Bug: angleproject:8212 Change-Id: I205ff24f53c03c0a0634b35b6a7e76b79f21d622 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4617583 Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Roman Lavrov 58055032 2023-06-16T10:33:26 Remove _shardN suffix from tests when it's not necessary. My understanding is that we only need this for --split-shard-samples. Otherwise we still get _shardN suffix from the shard but the test only ran on a single shard so there is no point in that. _shardN added in https://crrev.com/c/3937044 --split-shard-samples disabled in https://crrev.com/c/4605335 Example of _shardN: https://ci.chromium.org/ui/p/angle/builders/ci/linux-nvidia-gtx1660-perf/1704/overview Bug: angleproject:7671 Change-Id: Iaec4eb81e6ebad424cfc2ebfcbc7eda312cd1bba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615538 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com>
Roman Lavrov 46ff02f8 2023-05-18T13:52:29 Capture/Replay: Initial setup for angle_capture_tests Implements the first part (FrameCapture) of the proposal go/frame-capture-and-interpreter-testing Adds a basic test (CapturedTest) with a few frames. This test gets captured by capture_tests.py into a temporary directory and the resulting files are diff'ed with the files under expected/ A diff fails the test. When capture changes, the workflow would be to run the command indicated by the error message in the test which will overwrite the files with new ones so that they can be added to the CL. Example test failure on capture change: https://chromium-swarm.appspot.com/task?id=62b5f4034527c610 when testing https://crrev.com/c/4598046/3 Tests in CI: https://screenshot.googleplex.com/77o8vZVuj8AbFRj Also adds a "angle_capture_tests_trace" lib with the trace just to test that this capture also builds, the lib is not currently loaded by anything. Bug: b/286067106 Change-Id: I7d5f6eed088d84f9e3eb8a72b24b1d92515fff38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545408 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Yuxin Hu ecc287a8 2023-06-10T22:20:02 Clean up skipped deqp khr gles32 tests on Pixel 6 Remove deqp khr gles32 test suppression on Pixel 6 that are no longer failing. Remove suppression of below tests KHR-GLES32.core.texture_buffer.texture_buffer_texture_buffer_range KHR-GLES32.core.compressed_format.api.texstorage_accepts_compressed_format KHR-GLES32.core.compressed_format.api.invalid_inconsistent_data_size KHR-GLES32.core.compressed_format.api.invalid_inconsistent_data_size_array KHR-GLES32.core.compressed_format.api.invalid_offset_or_size Remove suppression of below tests on Android Vulkan KHR-GLES32.core.constant_expressions.*geometry KHR-GLES32.core.shader_macros.fragment_precision_high_geometry KHR-GLES32.core.texture_cube_map_array.stencil_attachments_*mutable_layered KHR-GLES32.core.texture_cube_map_array.*tessellation* KHR-GLES32.core.texture_cube_map_array.sampling Restrict suppression of below tests on Pixel4 Vulkan KHR-GLES32.core.geometry_shader.* KHR-GLES32.core.texture_cube_map_array.*geometry* KHR-GLES32.core.separable_programs_tf.geometry_active KHR-GLES32.core.texture_cube_map_array.color_depth_attachments KHR-GLES32.core.texture_cube_map_array.fbo_incompleteness KHR-GLES32.core.tessellation_shader.* KHR-GLES32.core.texture_cube_map_array.*tesselation* KHR-GLES32.core.constant_expressions.*tess_control KHR-GLES32.core.constant_expressions.*tess_eval KHR-GLES32.core.separable_programs_tf.tessellation_active KHR-GLES32.core.shader_macros.fragment_precision_high_tess_* KHR-GLES32.core.texture_border_clamp.* KHR-GLES32.core.gpu_shader5.*clamp*_border KHR-GLES32.core.gpu_shader5.*clamp*_edge Restrict suppression of below tests on Pixel6 Vulkan and Windows Nvidia Vulkan: KHR-GLES32.core.texture_border_clamp.Texture2DDC16Linear KHR-GLES32.core.texture_border_clamp.Texture2DDC32FLinear Add test suppression on Pixel 6 Vulkan KHR-GLES32.core.tessellation_shader.vertex.vertex_ordering KHR-GLES32.core.tessellation_shader.tessellation_shader_tessellation.gl_InvocationID_PatchVerticesIn_PrimitiveID KHR-GLES32.core.tessellation_shader.tessellation_shader_quads_tessellation.degenerate_case KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule2 KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule5 KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule6 KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule4 KHR-GLES32.core.tessellation_shader.tessellation_shader_point_mode.points_verification KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_tessLevel KHR-GLES32.core.tessellation_shader.vertex.vertex_spacing KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule7 KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_in KHR-GLES32.core.tessellation_shader.tessellation_shader_triangles_tessellation.inner_tessellation_level_rounding KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.data_pass_through KHR-GLES32.core.tessellation_shader.tessellation_shader_tessellation.TCS_TES KHR-GLES32.core.tessellation_shader.tessellation_shader_quads_tessellation.inner_tessellation_level_rounding KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule3 KHR-GLES32.core.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_MaxPatchVertices_Position_PointSize KHR-GLES32.core.tessellation_shader.tessellation_shader_triangles_tessellation.identical_triangles KHR-GLES32.core.tessellation_shader.tessellation_invariance.invariance_rule1 Bug: b/224537784 Bug: angleproject:5579 Bug: angleproject:5557 Bug: angleproject:5978 Bug: angleproject:3577 Bug: angleproject:3573 Bug: angleproject:6441 Change-Id: Ia734217c340fd927a93ea385120d0cf952cd428d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606544 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 9f158eb5 2023-06-10T22:14:16 Clean up skipped deqp khr gles31 tests on Pixel 6 Remove deqp khr gles31 test suppression on Pixel 6 that are no longer failing. Remove the suppression of below tests: KHR-GLES31.core.texture_buffer.texture_buffer_texture_buffer_range Restrict the suppression of below tests on swiftshader, windows nvidia vulkan, and pixel6 vulkan KHR-GLES31.core.texture_border_clamp.Texture2DDC16Linear KHR-GLES31.core.texture_border_clamp.Texture2DDC32FLinear Remove the suppression of below tests KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength* Restrict the suppression of below tests on swiftshader KHR-GLES31.core.arrays_of_arrays.ConstructorsAndUnsizedDeclConstructors1 KHR-GLES31.core.arrays_of_arrays.ConstructorsAndUnsizedDeclConstructorSizing1 Bug: angleproject:3573 Bug: angleproject:5978 Bug: angleproject:4107 Bug: angleproject:4300 Bug: angleproject:4108 Bug: angleproject:4188 Bug: angleproject:4190 Bug: angleproject:4240 Bug: angleproject:6295 Bug: b/224537784 Change-Id: I2c4d67ad3c50381ece4ed6241657b79402c91d3d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606543 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 8df249d7 2023-06-10T22:09:12 Clean up skipped deqp khr gles3 tests on Pixel 6 Remove deqp khr gles3 test suppression on Pixel 6 that are no longer failing. Restrict the suppression of below tests on Pixel4 Vulkan KHR-GLES3.packed_depth_stencil.clear_buffer.depth32f_stencil8 Restrict the suppression of below tests on NVIDIA Vulkan and Android Vulkan KHR-GLES3.packed_pixels.varied_rectangle.* Restrict the suppression of below tests on NVIDIA Vulkan and Android Vulkan KHR-GLES3.packed_pixels.pbo_rectangle.r8_snorm KHR-GLES3.packed_pixels.pbo_rectangle.rg8_snorm KHR-GLES3.packed_pixels.pbo_rectangle.rgba8_snorm KHR-GLES3.packed_pixels.rectangle.r8_snorm KHR-GLES3.packed_pixels.rectangle.rg8_snorm KHR-GLES3.packed_pixels.rectangle.rgba8_snorm Bug: angleproject:3683 Bug: angleproject:6678 Bug: angleproject:8048 Bug: b/224537784 Change-Id: Id24591e3bc21fa263fa64d3bd812d82209b8c5fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606542 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 57cccfd4 2023-06-10T22:05:56 Clean up skipped deqp gles31 tests on Pixel 6 Remove the deqp gles31 test suppression on Pixel 6 that are no longer failing. Below tests no longer fails on win-test bot, remove them from the expectation file: dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48 dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.36 Restrict the suppression of below tests on NVIDIA Vulkan dEQP-GLES31.functional.image_load_store.3d.*single_layer Restrict the suppression of below tests on Pixel4 Vulkan dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb10_a2* dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgba8_snorm_rgb9_e5* Remove the suppression of below tests on Android Vulkan dEQP-GLES31.functional.stencil_texturing.misc.base_level Remove the suppression of below tests on Pixel6 dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules.internal_different_precision Bug: b/224537784 Bug: angleproject:3445 Bug: angleproject:6021 Bug: angleproject:4080 Bug: angleproject:5277 Bug: angleproject:7488 Change-Id: I9baff33ade443d2ad28d1bc7a1333e0c672942c5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606541 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 5ff9d931 2023-06-10T22:00:41 Clean up skipped deqp gles3 tests on Pixel 6 Remove deqp gles3 test suppression on Pixel 6 that are no longer failing. Undefined behaviors in below test should have been addressed by the upstream change in VK-GL-CTS: https://github.com/KhronosGroup/VK-GL-CTS/commit/5d286e0daeac8afaafc46b16d28991fab971240b Remove the suppression of them: dEQP-GLES3.functional.shaders.operator.unary_operator.minus.lowp_uvec4_vertex dEQP-GLES3.functional.shaders.operator.unary_operator.minus.mediump_uvec4_vertex Restrict the suppression of below tests on NVIDIA and MAC dEQP-GLES3.functional.fbo.completeness.renderable.*.r8_snorm dEQP-GLES3.functional.fbo.completeness.renderable.*.rg8_snorm dEQP-GLES3.functional.fbo.completeness.renderable.*.rgba8_snorm Bug: b/224537784 Bug: angleproject:1101 Bug: angleproject:6214 Bug: angleproject:8048 Change-Id: Ic227be3e08b85f9f812171faafbbb1d421e9c30a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606540 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu d73ce6e3 2023-06-10T21:57:43 Clean up skipped deqp gles2 tests on Pixel 6 Update comments to explain why the test dEQP-GLES2.functional.flush_finish.* need to be skipped. Bug: b/224537784 Bug: angleproject:1034 Change-Id: I09dbf3134006a76129e6e4e483ac43616c550418 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606539 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu 97e3851d 2023-06-10T21:52:28 Clean up skipped deqp egl tests on Pixel 6 Remove the deqp test suppression on Pixel 6 that are no longer failing. Restrict suppression of below tests on Android Vulkan and Pixel 4 GLES dEQP-EGL.functional.native_color_mapping.native_window.* dEQP-EGL.functional.native_coord_mapping.native_window.* Restrict suppression of below tests on Pixel 4 Vulkan dEQP-EGL.functional.image.api.create_image_gles2_android_native_rgb8 dEQP-EGL.functional.image.create.gles2_android_native_rgb8_read_pixels dEQP-EGL.functional.image.create.gles2_android_native_rgb8_texture dEQP-EGL.functional.image.create.gles3_android_native_array_rgb565_texture_array dEQP-EGL.functional.image.create.gles3_android_native_array_rgb8_texture_array dEQP-EGL.functional.image.create.gles3_android_native_array_rgba8_texture_array dEQP-EGL.functional.image.modify.android_native_rgb8_renderbuffer_clear_color dEQP-EGL.functional.image.modify.android_native_rgb8_tex_subimage_rgb8 dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_read_pixels dEQP-EGL.functional.image.render_multiple_contexts.gles2_android_native_rgb8_texture dEQP-EGL.functional.image.create.gles3_android_native_array_*_render_sample_texture_array Restrict suppression of below tests on Swiftshader and Nvidia Vulkan dEQP-EGL.functional.create_context_ext.gl_30.* dEQP-EGL.functional.create_context_ext.robust_gl_30.* Bug: b/224537784 Bug: angleproject:6533 Bug: angleproject:6277 Bug: angleproject:7506 Bug: angleproject:7533 Change-Id: I769bb1ef15c187ae0de62cc901f907cb095dc73a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4602771 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 82151df0 2023-06-13T15:55:04 Android: Pixel 7 and Oppo Flip N2 device support Add device detection for test expectation files. Bug: b/285628492 Bug: angleproject:8205 Change-Id: Ia4ed8f7adc4f65ebb36c3248edadb3900b4caf58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4615663 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Mike Schuchardt af1768a4 2023-06-13T15:11:17 Android: Add Galaxy A34, A54 and Oppo Find X6 Adds device detection for use in expectation files Bug: b/285047631 Bug: b/285047394 Bug: b/285630872 Change-Id: I30361d7bc1a0a08441c8b5afe64d4b5f22ae4ddb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4611333 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Yuxin Hu 3a3a3c65 2023-05-31T23:06:57 Remove override test31Context.cpp Remove the override test31Context so that 1) we can run deqp test suites on Pixel devices with the same configuration as Android CTS test runner. 2) those deqp tests that require a GLES 3.2 context will not be skipped and can execute on devices that supports GLES 3.2. Since the deqp test runner overrides the feature exposeNonConformantExtensionsAndVersions with "true" value, a context is created regardless of whether the device supports GLES 3.2. However, not all of the devices are GLES 3.2 conformant, we will suppress those tests that are failing on non-conformant devices. Bug: b/224537784 Bug: angleproject:3687 Bug: angleproject:3688 Bug: angleproject:6678 Change-Id: I2a549537bdbb2c0356fcccaa96291229c699ed0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559445 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Ian Elliott 14339812 2023-06-13T10:00:39 Merge Galaxy A23 and S23 e2d expectations where can Many of the Samsung Galaxy A23 and S23 (all Qualcomm GPU) expectations were common, and so they are merged into a common GALAXYQUALCOMM ID. Bug: b/285045753 Bug: angleproject:8185 Change-Id: I5eb44f5de969763df290a938935a3a76ea3aab98 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610479 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 3a42d024 2023-06-13T13:37:35 Only import xvfb on Linux. Allows to run certain scripts with python3 (instead of vpython3) on Windows. Same as testing/scripts/common.py: https://crsrc.org/c/testing/scripts/common.py;drc=dfebdf76453bb843c0910d8a3e74468f6ab4a474;l=25 Bug: b/286067106 Change-Id: I57f5478082c2147bb5e9cf98baae762b8b844cec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4610084 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Ian Elliott 7e075469 2023-06-12T18:34:05 A23: Improve end2end SKIP lines and add FAIL lines Bug: b/285045753 Bug: angleproject:8185 Change-Id: I863878e06495c0431c07113d9de702b0bb7dd8ad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4606370 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi f1e19872 2023-06-12T14:38:23 Vulkan: Fix read pixels with RGBX Typically, the format used for data uploads and downloads as well as the storage format are consistent. That is unfortunately not the case for GL_RGBX8_ANGLE where data uploads are through 3-byte RGB pixels while downloads are through 4-byte RGBX pixels. This change swaps out RGBX for RGBA on the read pixels path. Test credit of Jason Macnak <natsu@google.com> Bug: b/246008627 Test: atest CtsSkQPTestCases Change-Id: I531ebd8318bf4fe5ac09c623068b790a7e301428 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608488 Reviewed-by: Jason Macnak <natsu@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Roman Lavrov cf095dfb 2023-06-12T14:27:57 Tests: disable TraceTest.respawnables on native Win & Linux Bug: angleproject:8191 Change-Id: Ie61adc4b15c7db20aa890fad36c079e301f9ffc4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4608487 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 21f16cb1 2023-06-09T17:30:38 Disable clang-format on ANGLE features autogen outputs Updates the script to produce reasonably formatted code without clang-format. Autogen files moved to autogen/ sub-directories because clang-format does not support per-file settings ;( This allows to run this codegen very quickly (~50ms on my machine) Bug: angleproject:8193 Change-Id: Ie84282090d574ebb4debe3edcfd82f983f27a5ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4604578 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 43ef50f3 2023-06-08T15:35:17 Android: Assert that CFI is disabled There appears to be a bug in the interaction of CFI and relative vtables. On armv9 it results in a crash with SIGILL when loading traces. Since we can't overwrite the flags used to control this just assert that it is correct in GN args. To avoid the assert, add the following to your GN args: arm_control_flow_integrity = "none" Test: Build and run traces on armv9 devices Bug: b/278955379 Bug: chromium:1441148 Change-Id: I71bf93dca9bd15d6c66ad2a7223d9bbd0c54392e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4602027 Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Mark Lobodzinski 72df4283 2023-06-09T10:54:31 Tests: Add Lotsa Slots trace Test: angle_trace_tests --gtest_filter=TraceTest.lotsa_slots Bug: b/286514838 Change-Id: I8756a21596f2a09abff8262b3a9489b638d3522d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4603714 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Roman Lavrov 55f3d3c7 2023-06-09T11:48:00 Tests: disable TraceTest.respawnables on native Bug: angleproject:8191 Change-Id: Ib6dec981830c0a6748e1e1f88dd6727b27592c52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4605334 Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov b508f8ab 2023-06-08T10:51:09 Inline remaining _angle_trace_common* vars Used only once after these rules were reorganized. Bug: b/276474703 Change-Id: Ie01f20781ee1ca6f04fd19a9f37769d66561bde8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4600614 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 52152933 2023-06-06T15:36:36 Add trace_interface: functions and callbacks for traces Defines the interface between the test suite (or an other TraceLibrary class user) and trace libraries. TraceFunctions defines entry points for calls suite->trace, such as SetupReplay() or SetBinaryDataDir(). TraceCallbacks defines entry points for calls trace->suite, for example for loading .angledata.gz files. These are set up via the exported SetupEntryPoints() call. Functions like SetupReplay etc no longer need to be exported from the trace library. TraceInfo (parsed representation of the trace json) is moved to trace_interface as is. This is convenient for further changes to the fixture that will allow to easily move some of the captured parameters to json. This also moves Decompress functionality (and memory ownership) to test suite entirely, which avoids Decompress/Delete callbacks - the trace just calls LoadBinaryData via TraceCallbacks and TraceLibrary releases the memory either on FinishReplay or in its destructor. This should also take care of the memory leak described in https://crrev.com/c/3858185 Bug: b/286072760 Change-Id: Ibc6f6f64156ad805b1917c8fc41a3b0d2c0d6375 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594445 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya cfb5d2de 2023-04-06T16:06:35 Remove thread from mActiveThreads during eglTerminate When eglTerminate is called remove the thread from the active thread set if there is no context current. This allows for proper cleanup of invalid EGL objects during certain EGL terminate related end2end tests. Also perform appropriate cleanup in EGLBlobCacheTest test. Bug: angleproject:6723 Bug: angleproject:6798 Test: EGLMultiContextTest.ReuseUnterminatedDisplay* Change-Id: I5a637938d463d6556f594d8bb0cf457efca92355 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4408364 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com> Reviewed-by: Roman Lavrov <romanl@google.com>
Ian Elliott 9f734b5e 2023-06-07T10:23:39 Galaxy A23: add end2end expectations for crashing tests Bug: b/285045753 Bug: angleproject:8185 Change-Id: I5b58f8220589a9bc8b366932b6aaa06d1fe84024 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4597750 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Ian Elliott ad09353e 2023-06-07T10:19:35 Android: Galaxy A23 support This CL adds detection of the device, for use in expectations files Bug: b/285045753 Bug: angleproject:8185 Change-Id: Ia68402c4a85fde058b03143eb97607da4679fc7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4597749 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 1ad4ae4d 2023-06-05T18:45:19 Clean up EGLPreRotation Test EGLPreRotationBlitFramebufferTest are passing on Pixel 6. Skip the failed tests on Pixel4 devices only. Bug: b/172867704 Bug: angleproject:5044 Change-Id: I23744cec20bf7e74272532a00420d1488398cda8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4590228 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Kimmo Kinnunen 16841d62 2023-01-31T11:51:41 Reland "Remove SPIRV_METAL references from .gn and tests" The backend was removed but the references were not. Update ShaderBinaryTest to properly skip tests if shader binaries are unsupported in the current ANGLE backend. Forcibly re-enable building of the Vulkan backend on macOS to keep ANGLE's SwiftShader backend working. Fixed: angleproject:6081 Change-Id: I5e6e47d5fe05b0dd6ec150b6db9fe5d75e580173 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594582 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Roman Lavrov 53b5d25f 2023-06-06T12:09:08 Resolve circular dependency android_helper <-> angle_test_util Ran into it causing issues in https://crrev.com/c/4545408 Bug: b/286067106 Change-Id: I9314d1e48b064a46362a65db2c3a92760111f02f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4594440 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Alexey Knyazev 2780cb0b 2023-06-05T00:00:00 Disallow 'depth_unchanged' qualifier for WebGL contexts This qualifier has no equivalents in HLSL or MSL. Bug: angleproject:8046 Change-Id: I1e79c8d725306efb859152b8083d72019c982149 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595017 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Yuly Novikov c37d74a5 2023-06-06T17:07:15 Revert "Remove SPIRV_METAL references from .gn and tests" This reverts commit f7badd3faa8b1b04538ac7b6db833e1398b13498. Reason for revert: disables SwiftShader fallback on Mac Original change's description: > Remove SPIRV_METAL references from .gn and tests > > The backend was removed but the references were not. > > Update ShaderBinaryTest to properly skip tests if shader binaries are > unsupported in the current ANGLE backend. > > Fixed: angleproject:6081 > Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046 > Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Change-Id: Id41035017830d8b36b29bc4497919c6b01fc3f35 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4595018 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Kimmo Kinnunen f7badd3f 2023-01-31T11:51:41 Remove SPIRV_METAL references from .gn and tests The backend was removed but the references were not. Update ShaderBinaryTest to properly skip tests if shader binaries are unsupported in the current ANGLE backend. Fixed: angleproject:6081 Change-Id: I54bb4080763fbc0dcc2515e71ccd5df5c536db5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4591046 Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White e60f64dd 2023-05-31T17:02:22 D3D11: fix for atomic assigned to an SSBO. When assigning the previous value of an atomic op to an SSBO, we do not want to use the "direct assignment" path, since we can't pass the SSBO expression as an argument to Interlocked*(). Instead, we change the RewriteAtomicFunctionExpressions transform not to defer assignments until HLSL output if the LHS is an SSBO expression, and to do its usual creation of a temporary for the previous value of the atomic op. In OutputHLSL, we skip the direct assignment path if the LHS is an SSBO expression. Bug: angleproject:8182 Change-Id: I0707f4f69757119fe5c8f8e7a12bd26025ec74e6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4573827 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Geoff Lang 6e40ce00 2023-06-05T11:47:29 Do not call postResolveLink in Program::deserialize. postResolveLink assumes the program is currently linked, which is not the case in Program::deserialize. It makes calls to set uniforms which is not always expected by the backend. Call postResolveLink after the backend has linked when loading program binaries. Bug: angleproject:6073, angleproject:8183 Change-Id: Idacb81040ea79a7df51917aaa27c77b25df7d5cd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4588410 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao e21ecd1b 2023-05-26T14:06:46 Vulkan: Add dirty bit processing for uniform buffer change When app calls glBufferData for the uniform buffer, we may end up reallocate the storage. This will set DIRTY_BIT_UNIFORM_BUFFER_BINDINGS on the context, but the exact uniform block index gets lost along the way. This CL sets mDirtyBits on the program for the corresponding block index and then changed vulkan backend to utilize the program's mDirtyBits and only update the buffer if it is dirty, instead of always update all uniform buffers even if only one of the buffer is dirty. In order to make this work, this CL also adds the reverse tracking from buffer binding to uniform blocks. Previously we already have the tracking of which buffer binding index is used for which buffer block index. This CL adds mUniformBlockBindingMasks which is an array of BitSets. Each array element tracks all the uniform block index that is using this buffer binding index (you can have the same buffer bound to multiple uniform block index). Then when a buffer binding index is dirty, that BitSet gets added into program's uniform block dirty bits. This CL and previous CL improves GfxBench gl_driver2_off score 1.8% (from average 6797 to average 6919) on pixel 7 pro. Bug: b/282194402 Change-Id: Ic5002643a5297907276fc9b20ca7d21af9bdc4fe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4553136 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Jose Dapena Paz ad1255c2 2023-01-30T18:35:38 libstdc++: do not use std::logf or std::powf In libstdc++ there is no implementation of std::logf or std::powf, so they must be replaced with calls to std::log and std::pow, and use static_cast for using the right overload. Bug: chromium:957519 Change-Id: I3c94502c006db200148060c1d30e0dd28b8a30d0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4352890 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b0e9bbd7 2023-05-31T14:23:40 Vulkan: Split features for dynamic state When a driver bug with dynamic state is encountered, it is hard to debug which dynamic state exactly is causing an issue, due to the current granularity of disabling all entire state from an extension. With this change, every dynamic state gets its own ANGLE feature, and can be toggled as necessary. Disabling the supportsExtendedDynamicState* features implicitly disables all dependent features. Bug: b/285124778 Bug: b/275210062 Bug: fuchsia:107106 Bug: angleproject:5906 Change-Id: Ic291279872df2d0eb58618ff364ab118bdcc4a9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4577553 Reviewed-by: Cody Northrop <cnorthrop@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Igor Nazarov da41e7d9 2023-05-29T19:17:48 Vulkan: Account for queueSubmitOneOff() in SurfaceVk::mUse There is a possibility to destroy EGLSurface without waiting for `queueSubmitOneOff()` submission. One possible way to reproduce the problem is to query `EGL_BUFFER_AGE_EXT` without any rendering in the EGL_SINGLE_BUFFER mode. This is a regression from: Reland "Vulkan: SurfaceVk should only wait for GPU work that uses it" https://chromium-review.googlesource.com/c/angle/angle/+/4406891 Test: angle_end2end_tests --gtest_filter=EGLSingleBufferTest.WaitOneOffSubmission* Bug: b/267806287 Change-Id: I9478fcc4fd64b38747cbd80dea51137da9ef5f21 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567549 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Mark Lobodzinski 29ad234a 2023-05-30T12:03:30 Tests: Add Off The Road trace Test: angle_trace_tests --gtest_filter=TraceTest.off_the_road Bug: b/285110104 Change-Id: I63e86ea9a18f9f60680ac758e284cc1b5e90c0ff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4576882 Commit-Queue: Mark Łobodziński <mark@lunarg.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Roman Lavrov ad1f58aa 2023-05-30T09:41:41 Tests: skip RGBTextureBufferTestES31 on Linux intel vulkan vk_icdNegotiateLoaderICDInterfaceVersion crashes (possibly Mesa bug?) Bug: angleproject:8179 Change-Id: I05812f436ab4f4ac2755c20bddc1cc33a28b5d8e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4574146 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov ff110417 2023-04-21T15:16:03 Vulkan: Emulate RGB32 uniform texel buffers when unsupported Applies to: GL_RGB32F, GL_RGB32I, GL_RGB32UI When VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT is specified for these formats by the Vulkan driver, behavior is the same as before. When it is not speficied: previously ANGLE wouldn't enable GL_EXT_texture_buffer unless exposeNonConformantExtensionsAndVersions was enabled; now ANGLE always enables it and does the RGB->RGBA conversion (GPU) under the hood and tracks buffer content updates using the paths added for tracking this for Vertex Arrays. Bug: b/278585075 Bug: angleproject:8128 Change-Id: I4605719bf3f51c5a10c1a35ecae767833dcd45d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4456498 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 02e7f967 2023-05-25T14:54:49 Translator: Remove the "variables" option Variable collection is invariably enabled by the front-end as well as other major users of ANGLE such as Firefox. All translator backends except GLSL force-enable variable collection either way. This change removes this compile option and enables variable collection unconditionally. The flag itself remains in ShCompileOptions until references to it are removed from Chromium. Bug: chromium:1447314 Change-Id: I4d3b30c1bfbd345c5ad269abc62c0a6a59de2f56 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568524 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Geoff Lang 3f97a29e 2023-05-26T15:03:02 D3D11: Also unbind DSVs when unbinding conflicting resources Depth stencil views can also cause conflicts when trying to bind them resource as a shader resource and depth stencil at the same time, even for compute shaders. Bug: dawn:1291, angleproject:8171 Change-Id: I759556f7a8a888f1d4d6a042c26d16eedd83d2b0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567573 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi 055c72ac 2023-05-25T09:22:26 Suppress AllocateVMAImageWhenDeviceOOM for AsyncCQ Bug: angleproject:8174 Change-Id: I28e7e8bdc26055f2ad03f2842676330430b579b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568283 Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Mark Lobodzinski c5282661 2023-05-24T15:33:19 Tests: Add Infinity Ops Trace Test: angle_trace_tests --gtest_filter=TraceTest.infinity_ops Bug: b/284273677 Change-Id: I19daa0a0e96a619ff3ec18074012cda213854947 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4566950 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 9b1ff7b1 2023-05-25T14:13:13 Translator: Fix SPIR-V translation without "variables" flag This flag is now assumed to always be true for the SPIR-V (and MSL) translators. They use the collected variables during translation. Bug: chromium:1447314 Change-Id: I69d31ce8144aec0bd2a7263bad6e5a366e922740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567830 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov d9192d9a 2023-05-25T14:43:41 android_helper sets return code to 1 when test json is missing e.g. FATAL failures / other crashes Bug: b/278585075 Change-Id: I01850e547d782c302658653780b93699e9e91ffa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567831 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Kenneth Russell aea88562 2023-05-19T16:52:43 Reland "Metal: Optimized BufferSubData per device" This reverts commit ee64836f702332adaca58d9f452063a04b2da955 , relanding the patch stack described there. Between patchsets 1 and 5: - The shadow buffer allocation has been replaced with a multimap of precisely-sized buffers, rather than rounding up buffer sizes. - Garbage collection of shadow buffers is triggered in three situations: - A certain number of context switches have occurred; this number was hand-tuned to avoid GC every frame. - A certain number of command buffer submissions has occurred; this number was hand-tuned to GC no more often than every few seconds on representative workloads. - The total size of the allocated shadow buffers is more than 1 MB, and either more than twice the size at the last garbage collection, or 64 MB more than at the last garbage collection. In this case, aggressive GC is performed in order to reclaim shadow buffers more quickly. Performance before and after these changes appears identical on microbenchmarks. On one Figma test case, comparing GPU memory allocated inside the BufferManager, peak consumption is decreased by over 75%, and steady-state consumption decreases by over 88%. Patchset 6 adds a needed workaround for a bug in the AMDMTLBronzeDriver affecting uploads of client-side data, and therefore some dEQP tests. It also streamlines the aggressive GC. Bug: angleproject:7544 Change-Id: I81b061f0b33c27fa403527fa12d626f4e9c88ebe Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497413 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Alexey Knyazev 409bf134 2023-05-23T00:00:00 Metal: Adjust iOS and macCatalyst caps * Fix swapped iOS and macCatalyst versions for EXT_blend_func_extended and EXT_depth_clamp * Always use 13.1 as the lowest macCatalyst version Bug: angleproject:8121 Bug: angleproject:8047 Bug: angleproject:8015 Change-Id: I1f117de259d211cb8ce2463df59f8fee0e709ef5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4568323 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Roman Lavrov c80c74a5 2023-05-25T12:58:23 Skip honkai_star_rail on Intel/windows Consistenly making Intel perf bots red by getting stuck Bug: angleproject:8175 Change-Id: I96b31d201b5b161c89ba6654cea48becbbc35169 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4567829 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi 93eee5d2 2023-05-18T16:33:25 Vulkan: Add the Sample decoration when sample shading The Vulkan spec was clarified that per-sample interpolation is not necessarily done when sample shading is enabled in the API. In this change, a SPIR-V transformation is added to add the Sample decoration to whatever varying is missing it when sample shading is enabled in the API. Bug: b/283017896 Change-Id: I121c740add6fc015c9140e6a04d37ea5300c8e57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544591 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Mike Schuchardt c18972fd 2023-04-05T10:22:38 Tests: Add Gangstar Vegas trace Test: angle_trace_tests --gtest_filter=TraceTest.gangstar_vegas Bug: b/280785771 Change-Id: Ia1d5de22d45979b44b0711fc510d2dfb7600b910 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4507340 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mark Lobodzinski ad386845 2023-05-24T11:14:12 Tests: Add Empires and Puzzles trace Test: angle_trace_tests --gtest_filter=TraceTest.empires_and_puzzles Bug: b/283500712 Change-Id: I3b4ed61ebe8948319ca74e79cb74053b554b0009 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4551449 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 24504dd1 2023-05-23T20:27:49 Tests: Add Kentucky Route Zero trace Test: angle_trace_tests --gtest_filter="*kentucky_route_zero*" Bug: b/284061674 Change-Id: Iab42008bfa3604e306628e90abc04b7ceb6fd4bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559458 Reviewed-by: Mark Łobodziński <mark@lunarg.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop fb32aef5 2023-05-21T20:49:06 Tests: Add Galaxy S23 deqp expectations Expectations for the following tests: angle_deqp_gles2_tests angle_deqp_gles3_tests angle_deqp_gles31_tests angle_deqp_khr_gles2_tests angle_deqp_khr_gles3_tests angle_deqp_khr_gles31_tests angle_deqp_khr_gles32_tests Bug: b/281128706 Bug: angleproject:8157 Change-Id: If69361db7b4c6b739a84d158320ea86eda2d14f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4559448 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Ian Elliott <ianelliott@google.com>
Hailin Zhang c74dae15 2023-05-12T12:45:44 Vulkan: patch vertex attrib and shader input mismatch. opengl es spec didn't specified vertex attirb input data type mismatch with vertex input data type. For this change, it will change the attrib format to match the vertex input format. while keep the same data size. (expect normalized data) Bug: b/280241844 Change-Id: Ib28a18fe495b779d5bb0e8e43887bd36b0037dba Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4528299 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>
Roman Lavrov 6d936bef 2023-05-18T11:51:05 Restore sync_restricted_traces_to_cipd upload progress bar https://crrev.com/c/4538368 suppressed stdout for all cipd invocations to reduce noise. This restores stdout piping to the calling process for uploads only, as cipd shows a useful progress bar during uploads. Bug: angleproject:8137 Change-Id: Ida7e43bc55af4dda1be768c65784fe3bc0656955 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545407 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Brandon Schade 80e60bbc 2023-05-09T12:46:18 Validate non-precision qualifiers in GLSL shaders Add validation to reject non-precision qualifiers on struct members in GLSL shaders, as per the GLSL ES 3.2 specification, section 4.1.8: Structures Tests: KHR-GLES3*.shaders.negative.non_precision_qualifiers_in_struct_members Bug: angleproject:8045 Change-Id: I863ae631b09ff773a826d542f387072491489699 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4534656 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Brandon Schade <b.schade@samsung.com>
Mark Lobodzinski 9e47cbd3 2023-05-18T14:40:37 Capture/Replay: Rework trace EGLDisplay handling Refactor the trace-replay EGLDisplay handling to allow initializing the global EGLDisplay handle in the InitializeReplay4() body. This included adding support for eglGetCurrentDisplay() to the EGL-on- WGL shim. Test: angle_trace_tests --gtest_filter=infinity_ops Bug: b/282725258 Change-Id: I2319fd9a35f8fb9c0a7f10547ca39f49ce402b8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4546267 Reviewed-by: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Mark Łobodziński <mark@lunarg.com>
Alexey Knyazev 7abc5248 2023-05-19T00:00:00 Vulkan: Enable VK_EXT_depth_clamp_zero_one Replaced the 'depth_clamping' workaround with the dedicated extension or explicit fragment depth clamping. Fixed: angleproject:3970 Bug: angleproject:8077 Change-Id: Ia7666fcb3e0e949922c13a3fd11b818cbc5a8e26 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545084 Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 3f633521 2023-05-18T21:27:00 Vulkan: Fix handling inactive unnamed I/O blocks in SPIR-V When an unnamed I/O block already exists, later inactive unnamed I/O blocks were not being added to the list of inactive varyings, causing the SPIR-V transformer to trip up Bug: b/283017896 Change-Id: Ida5b38e1a03da2b336d5904caa44f53dbdfb8aa3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544590 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Charlie Lao <cclao@google.com>
Cody Northrop c04ad8e0 2023-05-17T10:59:36 Tests: Add Honkai: Star Rail trace Test: angle_trace_tests --gtest_filter="*honkai_star_rail*" Bug: b/283129009 Change-Id: I4c41345b83b7ea2429bccb8a814994bcb13a7486 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4545308 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov f382b244 2023-05-19T14:28:26 Add ci/linux-trace disabling logic to ANGLE script Currently disabled by this line in chromium/tools/build repo: https://crsrc.org/b/recipes/recipe_modules/angle/api.py;drc=e768c9b9c2a9b34346f9c009341761a034df7a00;l=91 I will remove that logic after this CL lands. This way we can decide whether to run this test inside ANGLE repo. Bug: angleproject:6085 Change-Id: I8efafb11149cda1fd47a5e9a95612e521823493a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4549681 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Chris Dalton 7d4c6d1d 2023-05-09T12:19:54 Allow glDelete* while PLS is active Banning glDelete* is extremely dangerous. It will almost definitely cause memory leaks in client code, and it makes JS garbage collection needlessly complex. Instead, specify that PLS is implicity deactivated if the client deletes anything that is attached to the current draw framebuffer during a PLS rendering pass. Bug: chromium:1421437 Change-Id: I3a18ee6b5d5567431e6fa3eccea58cb049845502 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521436 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Chris Dalton 45f91a8c 2023-05-08T13:11:44 Deinitialize PLS planes when their texture is deleted The spec originally called for PLS planes to be converted to memoryless when their texture was deleted, but this is not compatible with WebGL, which does not support memoryless planes. Change the behavior to deinitialize them instead. This change requires the addition of a new observer message, angle::SubjectMessage::TextureIDDeleted, which PLS uses to deinitialize a plane when the app deletes its texture. Bug: chromium:1421437 Change-Id: I58fd91003747160f0a1abc1a8a7a87668890ba1f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4518565 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Chris Dalton <chris@rive.app>
Yuxin Hu c1fc512b 2023-05-16T17:14:23 Manual roll VK-GL-CTS from e3b9db9ad121 to 876d164bd88a (32 revisions) Manual roll requested by yuxinhu@google.com * Skipped the following tests: dEQP-EGL.functional.fence_sync.valid.egl_fence_persistent_buffer KHR-GLES31.core.texture_buffer.texture_buffer_errors https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS.git/+log/e3b9db9ad121..876d164bd88a 2023-05-16 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-cts-4.6.3 into vk-gl-cts/main 2023-05-16 piotr.byszewski@mobica.com Merge vk-gl-cts/opengl-es-cts-3.2.9 into vk-gl-cts/main 2023-05-15 piotr.byszewski@mobica.com Fix vkExtensionFunctions.inl 2023-05-15 javed@igalia.com Add coverage for specific synchronization2 access flags 2023-05-15 cturner@igalia.com Add VPS handling for h265 tests 2023-05-15 ziga@lunarg.com Fix api version check in entry_points test 2023-05-15 matt.coster@imgtec.com VK_FORMAT_FEATURE_TRANSFER_{SRC,DST}_BIT are implied on Vulkan 1.0 without VK_KHR_maintenance1 2023-05-15 ziga@lunarg.com Set missing dynamic states in null_color_blend_att_ptr tests 2023-05-15 scerveau@igalia.com vulkan-video: update ESExtractor to v0.3.3 2023-05-15 cturner@igalia.com Add extra checks for FENV_ACCESS support on 32-bit ARM 2023-05-15 rgarcia@igalia.com Test large values when converting from float to 64-bit ints 2023-05-15 ziga@lunarg.com Enable graphicsPipelineLibrary feature when libraries are used 2023-05-15 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.6 into vk-gl-cts/main 2023-05-15 alexander.galazin@imgtec.com Notice of withdrawal of Vulkan CTS 1.3.2.x 2023-05-08 rgarcia@igalia.com Test multi-value sample mask with dynamic rasterization samples 2023-05-08 rgarcia@igalia.com Test GPL with null VkPipelineRenderingCreateInfo contents 2023-05-08 rgarcia@igalia.com Test EDS3 null pipeline state pointers 2023-05-05 ziga@lunarg.com Add tests for pipeline robustness with cache 2023-05-05 debarshid@google.com Implement Sync Tests between CPU and GPU 2023-05-05 chrisglover@google.com Add tests for EXT_gl_colorspace_bt2020 2023-05-05 cturner@igalia.com Fix VUID-VkVideoSessionCreateInfoKHR-maxActiveReferencePictures-04849 2023-05-05 cturner@igalia.com Fix VUID-vkCmdDecodeVideoKHR-pDecodeInfo-07163 validation error 2023-05-05 cturner@igalia.com Fix memory corruption during validation for decode.h264_interleaving 2023-05-05 marcin.zajac@mobica.com fetch_sources.py for cygwin and mingw 2023-05-05 gleese@broadcom.com Fix VK/VK-SC generated file inclusion 2023-05-05 gleese@broadcom.com Remove unused VKUTIL_LIBS 2023-05-05 rgarcia@igalia.com Test read-only depth/stencil attachment with VRS 2023-05-05 piotr.byszewski@mobica.com Merge vk-gl-cts/vulkan-cts-1.3.5 into vk-gl-cts/main 2023-05-04 rgarcia@igalia.com Test some EDS3 line rasterization parameters with mesh shaders 2023-05-04 rgarcia@igalia.com Test dynamic blend equation with dual source blending 2023-05-03 piotr.byszewski@mobica.com Update vulkan-docs to current version 2023-05-03 cturner@igalia.com Update removeTags in fetch_sources.py for glslang 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,yuxinhu@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://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Bug: angleproject:8166 Bug: angleproject:8167 Bug: angleproject:8169 Change-Id: I0fb573b382e63bf4820a083759e57647f6159763 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4544088 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Chris Dalton 7aadc962 2023-05-05T19:28:17 Ban transform feedback and blend extensions with PLS Transform feedback can lead to render pass breaks in the Vulkan backend. EXT_blend_func_extended may restrict the number of draw buffers depending on API state, which can invalidate a PLS implementation. KHR_blend_equation_advanced does not allow multiple draw buffers, which is required by some PLS implementations. Bug: angleproject:7279 Change-Id: Id89f0e485ee65f55d802b121018f13b0028d8029 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4510716 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Jason Macnak 5ab2fa96 2023-05-12T08:38:19 Vulkan: Move texture QFOTs to syncState() ... (and getAttachmentRenderTarget() which is syncState()-like for deferred clear) so that QFOTs are not actually scheduled until first use. SurfaceFlinger optimistically creates EGL images and textures for AHBs in case it does need them in the future. However, the images and textures may go unused. Prior to this change, ANGLE would create pending QFOT barriers while importing AHBs into EGL images and GL textures. However, SurfaceFlinger may not be doing any "real work" (other than repeatedly creating and destroying EGL images and GL textures) which would result in the command buffers containing the QFOTs being flushed. This can result in a large build up of unreleased memory (as the VkDeviceMemory would still be kept alive by the reference from the unflushed QFOT command buffer) and lead to the low memory killer nuking processes. Bug: b/282075554 Test: cts -m CtsOpenGLTestCases -t android.opengl.cts.GLSurfaceViewTest Test: adb shell dumpsys SurfaceFlinger Test: angle_end2end_tests --gtest_filter=ImageTestES3.AHBImportReleaseStress/ES3_Vulkan Change-Id: I7776abb2c6f834e96aa3926c26e77c53352ee561 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527437 Commit-Queue: Jason Macnak <natsu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 10ac4803 2023-05-16T11:49:01 sync_restricted_traces_to_cipd checks for extra files Do not allow files outside of the expected ones (TraceFiles in json) * Ran this check on existing traces: we have a few extra cpp files in goddess_of_victory_nikke, lilys_garden Ask for confirmation before uploading (--upload to bypass) Other cleanup (threading instead of multiprocessing, much less noisy logging etc) Upload is no longer done in parallel. This might mean slower upload of large batches (batch upgrade in experimental?) but would make failures easier to understand. Bug: angleproject:8137 Change-Id: I71530b886541e8b1afe9d436bf300006afb06bd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4538368 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com>
Amirali Abdolrashidi 6f959e07 2023-04-28T16:00:11 Vulkan: Add non-device memory option for VMA image * Updated the required flags for allocateAndBindMemory() to no longer include VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, though still preferred. This allows VMA to allocate from another memory type if the device is out of memory. * Added a debug message to indicate when allocated memory for VMA image does not have all the preferred property flags. * Also added a warning in the case of memory allocation fallback. * Added a perf counter to keep track of image allocation fallbacks from the device memory. * deviceMemoryImageAllocationFallbacks * Added a test to make sure that VMA images can still be allocated from other memory types even if device memory is unavailable. * VulkanImageTest.AllocateVMAImageWhenDeviceOOM Bug: b/280304441 Change-Id: Ic452c18ded25345cdb7e271442372b99aede045e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4493483 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Jason Macnak c94ee61c 2023-05-11T16:40:09 Tests: Update AHB test to skip if format/usage combo not supported Bug: b/282075554 Test: angle_end2end_tests --gtest_filter=ImageTestES3.*/ES3_Vulkan on Cuttlefish Change-Id: Icd8a9ad71d5b59d5754f4c32f3c4dffb32bf845c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4527436 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov b526112d 2023-05-12T11:31:06 Tests: include system EGL configs for ES3.1 and ES3.2 tests These are enabled with angle_test_enable_system_egl=true Example: [ OK ] ProgramPipelineTest32.CreateProgramWithTransformFeedbackVarying/ES3_2_EGL (280 ms) Bug: b/278585075 Change-Id: Ic991b3bc6fa36a6856b28fcfc7a433ac183a2c4d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4526358 Commit-Queue: Roman Lavrov <romanl@google.com> Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Roman Lavrov 25def1a0 2023-05-11T17:52:09 Android test runner expects 'gtest' and marks test list gtest is passed as the first argument when running as out/Android/angle_trace_tests, previously skipped via argv[2:] --list-tests usually includes "Tests list:" / "End tests list." markers around the list - which is how GetTestsFromOutput finds them, but we didn't include them in stdout. There is some other noise in stdout on Android so instead of printing full stdout just add the markers back Bug: b/276474703 Change-Id: I20ba59eb25e543b005974674b0f3688cd767b1aa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4519232 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Brian Sheedy 914d798d 2023-05-10T14:30:15 Dedup Gold properties code Updates ANGLESkiaGoldProperties to use the newer method of providing the repo's root directory instead of completely overriding how the HEAD SHA1 is obtained. There should be no functional change as a result of this. Bug: chromium:1443021 Change-Id: I7464dabf2c31008b119c8f6a8454c6a7f8f9a68f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4521886 Auto-Submit: Brian Sheedy <bsheedy@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Hailin Zhang 8b9440b6 2023-05-01T15:31:01 Vulkan: add option to control pipeline cache data compression. Bug: b/258207403 Change-Id: I487b1cadbacfa2f7ee889a8f58278307a126a391 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4497248 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Hailin Zhang <hailinzhang@google.com>