src/tests


Log

Author Commit Date CI Message
Alexey Knyazev b51bbe24 2022-05-06T00:00:00 Add CopyTextureTest.ClearAfterCopySubTexture Bug: angleproject:2192 Change-Id: I75d13e089e6e47f1fd3ce62eba48e531c24abcff Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3634704 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Geoff Lang c8c4109c 2022-05-02T11:29:24 HLSL: Disambiguate functions that have int/uint parameters. If a bit-shift expression is passed as a function parameter in HLSL, the compiler cannot tell if it is intended as a uint or int when doing overload resolution. Explicitly disambiguate functions that have int and uint parameters when generating the HLSL. Bug: chromium:1319332 Change-Id: I11c9518e060e9940550bbb04dd7cb953d99c2bb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621316 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Yuxin Hu 225d8f83 2022-05-04T11:34:56 Tests: Add Mortal Kombat App Trace Test: angle_perftests --gtest_filter="*mortal_kombat*" Bug: angleproject:6997 Bug: b/218515707 Change-Id: Ie1d4ab498239308761aab55a92f1280cb52dd0a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3627126 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 1d073482 2022-05-04T23:25:23 Tests: Add Basemark GPU trace Test: angle_perftests --gtest_filter="*basemark_gpu*" Bug: angleproject:7274 Change-Id: I5adbc16ab7a6f5d3b51de3b31614fb1acb75a9f8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3628950 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Cody Northrop 5f2ad153 2022-05-06T09:42:00 Tests: Add Puzzles and Survival trace Test: angle_perftests --gtest_filter="*puzzles_and_survival*" Bug: angleproject:7285 Change-Id: If09e3bdc60f71e7b8610731251fc0c6e8e4642cb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630168 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop dbbfac65 2022-05-05T23:07:09 Tests: Add Monument Valley trace Test: angle_perftests --gtest_filter="*monument_valley*" Bug: angleproject:7284 Change-Id: I673624f259e281354260b90a45e4236af476631b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630485 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop b365a606 2022-05-05T22:28:26 Tests: Add Dead Cells trace Test: angle_perftests --gtest_filter="*dead_cells*" Bug: angleproject:7282 Change-Id: I96b3a5e3499e71c9ecf482cb43aebf0ae56d1052 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3631998 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Charlie Lao d075dfe2 2022-05-03T16:25:26 Vulkan: Reduce kMaxBufferToImageCopySize to 64M Bug: b/230538246 Change-Id: Id2ef9c35f74fb6f526744903402562f9354bfcdb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3625834 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 98488a19 2022-04-28T11:53:21 FramebufferTest: Add FramebufferChangeTest test. Add an end2end test that reproduces VVL error seen in Black Desert Mobile that states "Render pass closed due to framebuffer change". The test passes on OpenGL/ES. Add Vulkan test to expectations. Test: angle_end2end_tests --gtest_filter="FramebufferTest_ES3.FramebufferChangeTest/*" Bug: angleproject:7139 Bug: angleproject:7186 Bug: b/181797364 Change-Id: I661a55a5d9322c51cbed20de1ffcc477cb6a4dc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3560601 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 0afa5b9f 2022-05-03T12:27:56 Tests: Add Alto's Odyssey trace. Test: angle_perftests --gtest_filter="*altos_odyssey*" Bug: angleproject:7275 Change-Id: Ibd5c5517ccde8e18e2b5cc39535605be428512fc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3629543 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Peter Kasting 2ce60b52 2022-05-05T08:23:07 Fixes for C++20 support. * The compiler grew smart enough to warn about value changes due to casting to float inside floatToNormalized(). Make it smart enough to realize this isn't a problem by using constexpr if. * Types on both sides of a comparison operator should be the same. * Structs with user-declared constructors are no longer aggregates. Provide a constructor and call it. * std::result_of<F(x)> is gone, use std::invoke_result<F, x> instead. Bug: chromium:1284275 Change-Id: I6487bb18c65837a6d7d2661f65e097dc6a7605b6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3630478 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org>
Amirali Abdolrashidi 3f216ee7 2022-05-04T19:37:13 Vulkan: Set timeout for MultiContextDrawWithSwap* Bug: angleproject:7270 Change-Id: Ie36a6a8eb796cd49c32a21a9bace8f9b0efa5a90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3627484 Auto-Submit: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 77cd0b5a 2022-04-14T13:32:07 Re-land: "Vulkan: Cache ImageView serials on texture changes." Re-land fixes BindTexImage serial caching. This significantly reduces overhead when changing textures before draw calls in the Vulkan back-end. Bug: angleproject:6776 Change-Id: I2cc03cb8a70e8c181f7658ab45df780e412bfc57 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3623860 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Amirali Abdolrashidi edd331eb 2022-04-28T09:47:51 Traces: Add a device arg to restricted_trace_perf In case of multiple available devices, we can use either this argument or setting $ANDROID_SERIAL to select the device to run tests on. * Added the option to run restricted_trace_perf with more than one connected device. * The device serial can be entered either by using the --device arg or setting $ANDROID_SERIAL. If both are used at the same time, the former has more priority. * Neither is required if there is only one connected device. Bug: angleproject:6970 Change-Id: Id80398b82ea5b905f3dbfa4651d5f5246a3ccbe8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615082 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 9ab47074 2022-05-02T11:51:31 D3D11: fix BufferToTexture copy when UNPACK_ROW_LENGTH is set. The BufferToTexture fast path rasterizes a point per pixel when copying buffer to texture, and uses the vertexID to determine the buffer location. However, the math is wrong if UNPACK_ROW_LENGTH is set. The fix is to use UNPACK_ROW_LENGTH (if specified) rather than the width in the Draw() call. Bug: angleproject:5542 Change-Id: If0bbc0d7ae3ecbb2211cfb27263324d23c5ff0af Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621319 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Antonio Caggiano 9ad43bdd 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes: - link failure in systems with no libwayland installed. - XCB display availability check. Bug: angleproject:6902 Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuxin Hu 5c9f676d 2022-04-28T18:43:38 Basis Universal Texture Experiment Adding a test to read KTX image data. Adding the inlined image data adapted from KTX file with ETC1_RGB compressed format. Bug: angleproject:7250 Change-Id: I96d704f27875fc01bcd31ac8657627f4e3a71755 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616109 Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Chris Forbes <chrisforbes@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 84e42c3b 2022-05-02T15:42:23 Fix validation cache when deleting a Transform Feedback. Bug: chromium:1320024 Change-Id: I76ef85a3c65c663c138d8caebd4ef2c0da53cd4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621780 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuly Novikov b5f0fd1b 2022-05-03T09:03:59 Skip flaky tests on Win ASAN MemoryBarrierBufferTest.VertexAtrribArrayBitWriteThenVertexRead flaky timeout TimerQueriesTest.TimeElapsed flaky failure Bug: angleproject:7261, angleproject:7262 Change-Id: Ibd6e80bf71a7fe1702248f995d9d07851018a916 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621058 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov 4bbc55f4 2022-05-03T08:19:55 Revert "Re-land: "Vulkan: Support Wayland"" This reverts commit e0dd196a0e0aace17dfaa204163d798f504ea94e. Reason for revert: blocks ANGLE roll into Chromium Original change's description: > Re-land: "Vulkan: Support Wayland" > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. An EGL wayland > test is added for testing rendering and buffers swapping. > > Re-land fixes link failure in systems with no libwayland installed. > > Bug: angleproject:6902 > Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902, angleproject:7260 Change-Id: I7e92bf811b191eee6679d577006cddc0e1286fad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621057 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi 5113ae8e 2022-04-29T22:42:59 Vulkan: Explicitly enable per-sample shading if `sample` used The Vulkan spec is not explicit about the `Sample` decoration implicitly enabling per-sample shading. While this is being corrected in the spec, the ARM Vulkan driver does not have this implicit behavior. A workaround is added such that the usage of the `sample` qualifier is reported, and used to explicitly enable per-sample shading through the API. Bug: angleproject:6876 Change-Id: Idb8345aacdcfa45cb37fefcd30aa5405168d21e3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615738 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi 3e05b93a 2022-04-12T19:39:19 Vulkan: MSAA swapchain resolve based on renderArea * Updated the MSAA resolve subpass so it can only be performed if the render pass is covering the entire area (e.g., not scissored). * Added test to make sure that the subpass resolve does not occur when the render pass does not cover the entire area. Bug: angleproject:6762 Bug: angleproject:7196 Change-Id: Iac3ab4b655dfeb7bff1348cc5e289a77a4dc0b83 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584942 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop b953bc13 2022-04-01T09:14:28 Tests: Add GFXBench Tessellation trace Test: angle_perftests --gtest_filter="*tessellation*" Bug: angleproject:7154 Change-Id: I8b5284dc32aff2631b8d3c6b726c174738cf1a5a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3564075 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Brian Osman df163d71 2022-05-02T11:02:52 Test both MSL translators in APPLEClipDistanceTest This test failed with the SPIRV translator disabled (the ifdef being checked didn't match up with the requested compiler output). Bug: angleproject:7155 Change-Id: Ic89bf4035b0ada43ec249dbbca4626ae2eab2006 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621314 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano e0dd196a 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes link failure in systems with no libwayland installed. Bug: angleproject:6902 Change-Id: I4f091d4f479a537d0390caedce88a5d39f8b356f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3608088 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny ea9a2dbe 2022-05-01T17:30:55 Capture/Replay: handle glGetVertexAttrib parameter value Bug: angleproject:7153 Change-Id: I56cbe833268a6d1f6d184c90b7fbe1a345e5f012 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3614518 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Roman Lavrov 41adabc4 2022-04-29T15:04:27 Use app data dir instead of /sdcard for writing qpa file Appears to drastically reduce runtime variability. Example: Max shard runtime (28m 15s) + overhead (10s): 28m 24s (shard #8) Min shard runtime (3m 5s) + overhead (20s): 3m 24s (shard #6) --> Max shard runtime (4m 6s) + overhead (11s): 4m 17s (shard #0) Min shard runtime (3m 7s) + overhead (10s): 3m 17s (shard #6) --deqp-log-flush is enabled by default (only disabled for multi-process execution http://anglebug.com/5157) and together with --deqp-log-shader-sources which is also enabled by default results in a huge number of line-by-line flushes degradng filesystem performance. Example strace capture in a degraded state: [pid 21208] 10:55:51.194033 write(77, "</ShaderSource>\n <InfoLog>", 28) = 28 <0.181028> [pid 21208] 10:55:51.375879 write(77, "</InfoLog>\n</FragmentShader>\n</S"..., 78) = 78 <0.179196> [pid 21208] 10:55:51.555790 write(77, "\" Description=\"Vertex shader com"..., 41) = 41 <0.177602> ~180ms *per line written* !!! (28, 78, 41 characters...) Under normal conditions these are way down in the microsecond range: [pid 11412] 10:55:56.689894 write(72, "</ShaderSource>\n <InfoLog>", 28) = 28 <0.000020> [pid 11412] 10:55:56.689957 write(72, "</InfoLog>\n</FragmentShader>\n</S"..., 78) = 78 <0.000026> I think that the reason for this is some peculiarity of the /sdcard filesystem which uses fuse: % df -h /sdcard/chromium_tests_root/ /dev/fuse 50G 3.7G 46G 8% /mnt/user/0/emulated As opposed to block/dm-N of the (non-app accessible) temp directory: % df -h /data/local/tmp/ /dev/block/dm-9 50G 3.7G 46G 8% /data_mirror/cur_profiles And the app data directory appears to be using the same filesystem: % df -h /data/data/com.android.angle.test/ /dev/block/dm-9 50G 3.7G 46G 8% /data_mirror/cur_profiles As far as I can tell the degradation of performance does not happen on this filesystem despite the huge amount of small writes. Disabling deqp log flushes when running on bots probably makes sense too but I'd like to first confirm the impact of this CL separately. Bug: chromium:1217662 Bug: angleproject:7242 Change-Id: I507e4c330fd4e1f4ce05f9768506f905e142f835 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615081 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Antonio Caggiano 5b4f180c 2022-04-29T16:56:34 Fix formatting Unrelated changes created by running "git cl format" Bug: None Change-Id: I880c7d50aead70353f22502d953efa7aa60ff5d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3616882 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gert Wollny e55990e3 2021-10-20T19:32:59 Capture/Replay: Handle arrays with uniform block indices When we update the uniform block indices we have to take into accountg that there may be arrays and that the indices of array elements can be retrived by querying with an index. Consider a layout layout(std140) uniform Data { vec4 plainData; vec4 arrayData[3]; } buffers; Then the loop for updating the uniform block indices will see [ "plainData", "arrayData", "arrayData", "arrayData" ] and we have to take care to add the array indices if they are greaten than zero, otherwise we would always query the index of the first array element. Bug: angleproject:6180 Change-Id: I21f96ab49c1c33bc4024711b72df961377afea4e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3198881 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Gert Wollny 1aa4c120 2022-04-29T09:36:37 gl_tests: Fix formatting "git cl format" updated some formatting in code unrelated to the change set. Bug: None Change-Id: I4f63db03328356964c2e7c3a9785affa1078a82b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613919 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Shahbaz Youssefi 3eb2bcf7 2022-04-27T16:13:04 Vulkan: Fix syncval errors with DONT_CARE for unused attachments DONT_CARE is a write operation for synchronization purposes. ANGLE doesn't synchronize depth/stencil attachments that are not written to, as it uses the read-only layout. This change makes sure LOAD/STORE_OP_NONE are used instead of DONT_CARE for attachments that are not used, even if they don't have defined contents. This allows ANGLE to continue to not do additional synchronization. Bug: angleproject:5371 Bug: angleproject:5962 Bug: angleproject:6411 Bug: angleproject:6584 Change-Id: I539379aa34f6655f00e798e8c4a5c57f40f7a12d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3612182 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Cody Northrop 5e4c141c 2022-04-28T15:59:25 Tests: Add GFXBench Driver Overhead 2 trace Bug: angleproject:7249 Test: angle_perftests --gtest_filter="*driver_overhead_2*" Change-Id: I29af5cd4afa442b223968f68ec24cd72a7b5bf90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3615612 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki 7184fe38 2022-04-27T10:58:39 Tests: Add Jetpack Joyride trace. Test: angle_perftests --gtest_filter="*jetpack_joyride*" Bug: angleproject:7253 Change-Id: I4823e13ba4543ed19d91631de2cef21a320b813f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3613925 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 3b65b803 2022-04-27T11:04:22 Vulkan: Work around Qualcomm imprecision with dithering On qualcomm, sometimes the output is ceil()ed instead of round()ed. With ditering emulation affecting values, some dEQP tests fail due to the excessive change in value when dithering bumps the value slightly over to the next quantum. In this change, a workaround is added to round() the value before outputting it. Bug: angleproject:6953 Change-Id: Iae7df5ca20055b4db3185c6153f3c0bf4ba07f68 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611064 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jeff Vigil 6c248691 2022-04-21T10:10:03 Enable SINGLE_BUFFER with eglCreateWindowSurface Enable core EGL feature for Vulkan using: VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest Bug: angleproject:7224 Change-Id: I3e85f932471f7b3c97bbc5c2f5314f25eb9b2867 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3610975 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov c9794d6c 2022-04-27T14:20:47 Run a smoke test in each shard and crash on timeouts. The smoke test (words_with_friends_2) typically takes only a few seconds to run. Run it first to check that everything is working as intended. As we know it's a short test, we can set a small timeout (60s) and fail early in case something goes wrong. This will speed up tests failures when something is completely broken. I also changed the main shard run to crash when timeout is detected instead of just dumping debug info as if the tests didn't finish in 10 minutes they're also unlikely to finish in the 20 minutes after which swarming times out the shard. Bug: angleproject:7242 Change-Id: Ia99ca4b2e1676d09b9ff7d67ab116aba94f66512 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611446 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 80d50b99 2022-04-26T17:29:08 Add build arg to automatically attach renderdoc Macro ANGLE_TEST_ENABLE_RENDERDOC_CAPTURE was defined only for files under src/libANGLE, however, we need to use this Macro in filed under src/tests/. Move the Macro config from BUILD.gn to src/tests/BUILD.gn. Also add a new gn arg angle_enable_renderdoc to control enable/disable the Macro. Bug: angleproject:6072 Change-Id: I3879015e9bdfe2530012ea39729a31c47129ce4c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609024 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 7d31a47f 2022-04-23T00:19:15 Vulkan: Optimize away eglSwapBuffers for single buffer surfaces For single buffer surfaces, eglSwapBuffers serves two purposes: - Switch to/from single buffer mode - Implicitly issue a glFlush Simultaneously, for single buffer surfaces, glFlush serves three purposes: - Submit the commands - Call queue present (if necessary) - Throttle the CPU In this mode, ContextVk::flush() already redirects to the surface, calling WindowSurfaceVk::swapImpl() which calls back to ContextVk::flushImpl() (to submit the commands), calls queue present and throttles the CPU. If the application calls eglSwapBuffers(), the exact same thing happens (i.e. WindowSurfaceVk::swapImpl() is called to the same effect). Calling swapImpl() leads to an addition of the corresponding submit serial to the "swap history". The CPU throttling code always throttles the CPU to the serial of two swaps ago. Unnecessary calls to eglSwapBuffers() (when there is no command to be flushed) in single buffer mode would thus lead to the CPU throttled to the end of the last submission, effectively turning into a glFinish(). In this change, eglSwapBuffers() in single buffer mode, when not switching to/from this mode, is redirected to glFlush() as it's functionally equivalent. Simultaneously, ContextVk now tracks whether it has any pending commands for submission at all, and skips glFlush() altogether if there are none. Together, this results in the unnecessary eglSwapBuffers() to become no-op. Bug: b/229908040 Change-Id: I0e3b4a8b7eb4f6b0e0ed22260644825fc67dd330 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603841 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Charlie Lao 5c756bc1 2022-04-26T14:31:47 Perf Tests: Compute GPU time periodically If you specify `--fixed-test-time 30` while running app perftest and watch for GPU memory allocation, you see GPU memory keeps growing. This is due to we generate timestamp query for every frame, but don't calculate the GPU time at the end of run. We accumulate all these queries over the entire test run. Even though this is technically not a leak, it does grow monotonically while test is running. This CL calls computeGPUTime every 16 frames (steps) and changed the mTimestampQueries to a queue structure and clean up the completed query as GPU time is computed. Bug: angleproject:7243 Change-Id: I283ee24c4835fe0fb4d15f8d1975c85b64e16443 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3609011 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov 6930184e 2022-04-27T10:34:28 Log runTests so that it shows up in logcat dumps. 04-27 14:41:32.303 11507 11538 I NativeTest: runTests: --list-tests 04-27 14:41:32.321 11507 11538 I NativeTest: runTests finished ... 04-27 14:41:34.742 11585 11615 I NativeTest: runTests: --gtest_filter=TracePerfTest.Run/native_trex_200 --verbose --calibration-time 2 --calibration --warmup-loops 2 --isolated-script-test-output=/sdcard/Download/temp_file-cbce720a15e62e25 04-27 14:41:56.628 11585 11615 I NativeTest: runTests finished Bug: angleproject:7242 Change-Id: I5c03501982d6b268c0dd83d71ce82080fb3c551a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3611063 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jeff Vigil 95c1ff52 2022-02-24T08:31:52 EGL: Fix EGL_KHR_mutable_render_buffer Fixes for eglSurfaceAttrib error cases. Improve query for render buffer Add test case to EGLSurfaceTest Test: angle_end2end_test --gtest_filter=EGLSingleBufferTest Bug: angleproject:7134 Change-Id: I4fa568c9530312003dc17111be212bf5b66d97fb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3556088 Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Roman Lavrov 0c59b5d9 2022-04-26T19:20:49 Log debuggerd $PID output when instrumentation gets stuck. Bug: angleproject:7242 Change-Id: I2b12e94177bce65acf68e4420fd1fcabffdb993e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3607499 Auto-Submit: Roman Lavrov <romanl@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Yuxin Hu fe2c82ad 2022-04-26T12:39:44 check integer overflow in Texture copyImage The code that checks forceCopySubImage could run into integer overflow error for these values: sourceArea.x + sourceArea.width sourceArea.y + sourceArea.height With gn arg is_ubsan=true, these two equations lead to crash. Add the code to check integer overflow Bug: chromium:1314268 Bug: angleproject:5246 Change-Id: I6dee98457a44797ffb806ef8bd05f052c9aaa733 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597713 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Roman Lavrov cdcf1715 2022-04-26T14:48:10 Add missing result_skip and result_fail. Missing result_skip results in tests missing from json.output in perf CI builders. Not sure if the missing result_fail actually happens. Bug: angleproject:6854 Change-Id: I0d70a93be0d595c45e23558345481e749ba128bc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606921 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov d0c8363e 2022-04-26T11:51:47 Dump logcat if instrumentation doesn't finish in 10 minutes. Let's see if this helps us understand stuckness as described in https://anglebug.com/6854#c46 Normally each instrumentation call takes way less than 10 minutes as we run tests individually or in small batches. When stuck, runner times out after 20 minutes. Bug: angleproject:6854 Change-Id: I20074db0fb3e783555a530b9ecef3765f1911fd9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3605763 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Roman Lavrov ebfb9b9f 2022-04-26T10:37:52 Configure logging in perf and gold tests to include time. Currently no timestamp is logged: [I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd} INFO:root:adb --version ... Before switching to android_helper relative timestamps in seconds were printed, set up by catapult. Timestamps proposed in this CL are more consistent with outer logging but keep prefix short. Example: [I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd} I18:45:14.999999Z adb --version ... Bug: angleproject:6854 Change-Id: I8ef7c9ae44eb5dba564a41456ce9417e3fe0f06c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606913 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Shahbaz Youssefi fc828287 2022-04-24T00:12:11 Tests for Nvidia/Vulkan bugs with tessellation control Bug: angleproject:7236 Change-Id: I9fec5ef0fe03e1bb5e11067d6d3cf2e7c0b560fa Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3604077 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 4aae5815 2022-04-22T13:21:03 Vulkan: Overlay widgets for submission statistics Bug: angleproject:7084 Change-Id: I68e69bda43862f9f2711c25a28dbe4745c19a45c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602832 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Mohan Maiya 02b96848 2022-04-21T16:32:31 Vulkan: Add support for GL_QCOM_shading_rate Layer GL_QCOM_shading_rate over VK_KHR_fragment_shading_rate Test: ShadingRateQcomTest* Bug: angleproject:7172 Change-Id: I3f040dbfad3906facd4349937fed2ce9a464b824 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599874 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov c0ac374f 2022-04-25T14:06:58 Replace `adb exec-out cat` with pull to temp location. Flaked here: https://chromium-swarm.appspot.com/task?id=5a7a6cbff20e8510 File "/b/swarming/w/ir/src/tests/py_utils/android_helper.py", line 86, in _ReadDeviceFile assert len(out) == expected_size, 'exec-out mismatch' AssertionError: exec-out mismatch Bug: angleproject:6854 Change-Id: I846474cb64c436a67bbc559839d41967108be8c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606328 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya ea76cb0f 2022-04-21T15:52:39 Vulkan: Add entry points for GL_QCOM_shading_rate Bug: angleproject:7172 Change-Id: I837d2697d95c44f47a2fab7411cfd87a4ec65e90 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599873 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Roman Lavrov d1788614 2022-04-22T15:52:16 Use adb instead of catapult to run perf tests on Android. Add support for replacing flags: --isolated-script-test-output --isolated-script-test-perf-output --render-test-output-dir Always set --isolated-script-test-output to check for test failures using num_failures_by_type, interrupted, is_unexpected fields. Bug: angleproject:6854 Change-Id: Ia701f4d4d5d1adc9a24c057bb5c58fd5457cbd65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602834 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Cody Northrop e0183a42 2022-04-25T09:07:55 Revert "Mark contexts as shared when importing EGL images." This reverts commit e18240d136d15e5cdfa4fa4a6355ca21c8d807b6. Reason for revert: Applications not responding in AOSP: https://buganizer.corp.google.com/issues/229807074 Original change's description: > Mark contexts as shared when importing EGL images. > > Once a context references an EGL image, it can share resources with > contexts in other share groups. Marking the context as shared ensures > that locks are held by all contexts referencing EGL images for GL > functions. > > Bug: angleproject:6957 > Change-Id: Ic3901c458f388306c59f6bb01560a7c66d0574c0 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424659 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: mohan maiya <m.maiya@samsung.com> > Commit-Queue: Geoff Lang <geofflang@chromium.org> Test: CtsWindowManagerDeviceTestCases Bug: b/229807074 Change-Id: I5b7050bd68f67925f77242e483e2aa970ed0ca17 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602954 Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Lingfeng Yang <lfy@google.com>
Shahbaz Youssefi 400d9fe4 2022-04-23T01:08:19 Rename feature files to *_autogen.h To clarify further that they are not to be edited by hand. Bug: angleproject:6435 Change-Id: Iaf79706d2b688a43b3ebb65700cfbdd71a49a742 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603842 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
SeongHwan Park a8cac005 2022-04-25T16:27:33 Remove observer when element array buffer is detached Fix an issue where the observer is not removed when the element array buffer is detached from the vertex array. This fixes use-after-free vulnerability. Bug: angleproject:7237 Change-Id: I7cf30322740edffccdba89d40c0d02cd351dad78 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3603007 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 2db718ed 2022-04-21T23:13:02 Vulkan: Skip empty submissions A number of places in ANGLE perform an implicit flush; eglSwapBuffers(), glFenceSync() etc. Sometimes these flushes are unnecessary because there is nothing to submit. Additionally, an application may unnecessarily issue glFlush() with nothing recorded. In this change, empty command buffers are automatically not submitted, optimizing these unnecessary flushes away. Bug: angleproject:7084 Change-Id: Iecb865b6b9ef8045dfecda7b5221874f7031b42e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600837 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Ian Elliott ad93a708 2022-04-22T13:03:25 Further expand Vulkan end2end_test skip This test also fails in other contexts: https://chromium-review.googlesource.com/c/angle/angle/+/3600154 Bug: angleproject:7204 Change-Id: Ic7f051c8072f916083772afcc34147405cd1fe50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602945 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Roman Lavrov e6fc5e62 2022-04-22T12:45:33 Use _FindAdb (cached) directly instead of Adb wrapper. A little simpler, no need to pass around an additional `apk` arg. Also fix missed _GetAdbRoot() call. Bug: angleproject:6854 Change-Id: Id64e5f35fb21a6aef7d99e614dc0eae753c24317 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600912 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 4ac3ec13 2022-04-22T12:15:51 Switch py_utils import to pathlib. os.stat path before adding just to catch future copy-paste mistakes. Bug: angleproject:6854 Change-Id: If58c46f99aca93e6aeda90a987ceebbbb1b66955 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600911 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Charlie Lao 3b38b379 2022-04-20T10:44:24 Vulkan: Add feature avoid HOST_VISIBLE and DEVICE_LOCAL combination Discrete GPUs device local memory usually is not CPU accessible. This adds a feature flag to control that. Fixed bug in BufferVk that when mapRangeImpl is called from angle internal, unmapImpl was using front end mapping parameters that is incorrect. We have to cache the mapping parameters in the backend to hangle the mapRangeImpl/unmapImpl calls from internal. Fixed the test bug in ComputeShaderTest.BufferImageBufferMapWrite that we are calling glMapBufferRange with GL_MAP_READ_BIT but are actually writing to the map pointer. This should result in undefined behavior per spec. Fixed the test bug in GLSLTest.* that VerifyBuffer calls glMapBufferRange, but was giving incorrect length which result in data only been partially copied. This bug was hidden due to previously all buffers are CPU accessible and there is no copy needed. Fixed the test bug in ReadPixelsPBOTest.* and ReadPixelsPBONVTest.* that calls glMapBufferRangeEXT, but was giving incorrect length which result in data only been partially copied. This bug was hidden due to previously all buffers are CPU accessible and there is no copy needed. Added new skipped syncval messages. Because this CL triggers a copyToBuffer call for some of the buffers and that changes the syncval message signature for the same reasons (i.e, feedback loop or synval does not know the exact range of buffer been used for vertex buffers etc). Bug: angleproject:7047 Change-Id: I28c96ae0f23db8e5b51af8259e5b97e12e8b91f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3597711 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Charlie Lao <cclao@google.com>
Roman Lavrov d988db39 2022-04-22T11:14:44 Fall back to adb on PATH if platform-tools not present. Log adb --version. Example: INFO:root:adb --version: Android Debug Bridge version 1.0.41 Version 31.0.3-7562133 Installed as /{snip}/third_party/android_sdk/public/platform-tools/adb When not found -> "Installed as /usr/bin/adb" Bug: angleproject:6854 Change-Id: I3c19c4eda2211480f2c93b7d14f72f5641b3bfc2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3602821 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill 768c7d47 2022-04-21T16:55:05 Revert "Re-land: "Vulkan: Support Wayland"" This reverts commit f6cdd02fb4bceb4072430e3dbcb1e945809471e0. Reason for revert: Still warns about extra dependency on wayland. https://ci.chromium.org/ui/p/chromium/builders/try/linux-rel/990820/overview Original change's description: > Re-land: "Vulkan: Support Wayland" > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. An EGL wayland > test is added for testing rendering and buffers swapping. > > Re-land fixes link failure in systems with no libwayland installed. > > Bug: angleproject:6902 > Change-Id: I706af14620d6298275009f5caf93b0e60339219b > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765 > Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902 Change-Id: I11b1fe473fceb2fddb85bd562b769d18426ce07b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3600378 Auto-Submit: Jamie Madill <jmadill@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 47b9a97b 2022-04-21T13:43:53 Expand Vulkan end2end_test skip. This test also fails in ES2. Bug: angleproject:7204 Change-Id: I7ccf1f3d53c565b6005cd9aa8be0679d42ec6f7c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3599596 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Guoxing Wu 13784ebe 2022-04-21T10:38:23 Vulkan: use "undefined" for layerProvokingVertex Use "undefined" for layerProvokingVertex because different platforms has different behavior on this. APP would have to set gl_Layer identically. Bug: angleproject:7185 Change-Id: Ia5c31f617c2441c1a6ac8d682c9ce98f464045e0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3592274 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Alexey Knyazev 1d67951e 2022-04-20T15:58:35 Avoid IOError in capture_replay_tests.py On macOS, psutil iterator may return a zombie process that causes IOError when accessing its name. Bug: angleproject:6102 Change-Id: I44692982c8dd78b4c5153077b5d7dccc7f87883a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3596040 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Alexey Knyazev <lexa.knyazev@gmail.com>
Steven Noonan dd493b5c 2022-04-11T17:49:36 EGL: allow eglQueryString(EGL_NO_DISPLAY, EGL_VERSION) According to the EGL 1.5 specification, this should be okay: If dpy is EGL_NO_DISPLAY, then the EGL_VERSION string describes the supported client version. If dpy is a valid, initialized display, then the EGL_VERSION string describes the supported EGL version for dpy. Bug: angleproject:7194 Change-Id: I0d851742695293d553465175ce4b59ce7f5d5336 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3583143 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Steven Noonan <steven@valvesoftware.com> Auto-Submit: Steven Noonan <steven@valvesoftware.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
Shahbaz Youssefi 6cbedc98 2022-04-20T00:03:05 Add a test for backwards mip generation with draw A test similar to mipmap generation with draw (mip0->mip1->etc) where a small mip is upscaled to lower mips with draw (mip2->mip1->mip0). Bug: angleproject:6977 Bug: b/229764351 Change-Id: Iff29f0e02af085c817c41f713644238edfcb22e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3594803 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 5097d10c 2022-04-20T17:15:51 D3D: unsuppress some now-passing tests. Change-Id: I59efec02edddd876e962512c2690563b6efd18d2 Bug: angleproject:1951, angleproject:1442 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3598015 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Amirali Abdolrashidi cb1ee485 2022-04-08T12:58:12 Vulkan: Add perf test for MSAA swapchain resolve * Added a perf test for the swap time of the MSAA swapchain resolve * Average wall time results on Pixel 6: ~ 296992 ns using the subpass ~3163355 ns with the subpass disabled * Average wall time results on Pixel 6 Pro: ~ 225089 ns using the subpass ~2975449 ns with the subpass disabled Bug: angleproject:6762 Change-Id: I95f8c4350c5da136afd7f1b28b8c00d6707574ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3586181 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com>
Cody Northrop 19c6a856 2022-04-15T17:39:14 Tests: Add Free Fire Max trace Test: angle_perftests --gtest_filter="*free_fire_max*" Bug: angleproject:7212 Change-Id: I326f998a537435da1a8a02badc66d2aa8c5bdebf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3588961 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 7c091cb3 2022-04-19T21:12:35 Use adb directly (instead of catapult) in gold tests. Android detected by angle_perftests apk presence relative to pwd. All of the restricted_traces/*/*.json files are copied but those are small. Only the necessary .angledata.gz files are copied. angle_system_info_test is also handled via adb. Bug: angleproject:6854 Change-Id: I7a89ff57fcdd8ce5dc63a5e3a8f5c0132f766894 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3595241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill 4efc4ee6 2022-04-19T17:01:20 Fix validate state cache after XFB buffer deleted. Bug: chromium:1317650 Change-Id: Iec9f1167c3b2957091dd0f4ef3efcfcd7c4bf3c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3594250 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Antonio Caggiano f6cdd02f 2021-12-09T16:52:35 Re-land: "Vulkan: Support Wayland" Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. An EGL wayland test is added for testing rendering and buffers swapping. Re-land fixes link failure in systems with no libwayland installed. Bug: angleproject:6902 Change-Id: I706af14620d6298275009f5caf93b0e60339219b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578765 Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Peter Wen 6199e905 2022-04-19T13:27:59 Switch to using //build/android:build_java Chromium is switching to "build_java" and "native_libraries_java" will be removed shortly. Bug: chromium:1038372 Change-Id: Iaef79d166f6c320360ed4d836bba0be7aa05ea33 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3594640 Auto-Submit: Peter Wen <wnwen@chromium.org> Reviewed-by: Mohamed Heikal <mheikal@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b2a1f0d2 2022-04-14T07:58:32 Track total vs per-frame descriptor set counters. This will give more consistent measurements for descriptor set caches and descriptor set allocations. Bug: angleproject:6776 Change-Id: I584b8807ad19f8393ae54cc1d88b319c8f7f9f39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584636 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 37cdf93d 2022-04-15T12:49:09 Vulkan: Acquire a new buffer even when size is unchanged If a buffer is respecified using glBufferData with no changes to size but client data pointer is null, we need to acquire a new BufferHelper to avoid affecting the results of previously submitted draws. Test: BufferDataTestES3.BufferDataWithNullFollowedByMap*Vulkan Bug: angleproject:7211 Change-Id: Icc20fe3509f94098c7a15988a9ebc888b06fd3c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3588955 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: mohan maiya <m.maiya@samsung.com>
Shahbaz Youssefi fcec6904 2022-04-13T14:18:06 Generate feature variable names from display names The json file now only contains the feature display name. The variable name is automaticaly derived. For consistence with Chromium and other Chromium-based projects, the display name is now always snake_case, and that's what's specified in the json files. This also makes camelCase variable name generation trivial (as opposed to the other way around). Feature overrides now accept both snake_case and camelCase names to ensure compatibility with existing scripts. This is done by removing _ and comparing override names with feature names in lower case. Bug: angleproject:6435 Change-Id: I0b6ed2bbf5c312bc4f4be7b3c7d55dbaca2a9886 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584630 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Stephen White 6e130d2b 2022-04-19T11:35:46 D3D: fix SSBOs used in vertex shaders. Use the total number of pixel shader outputs as the base UAV register for vertex and pixel shaders. This is less fragile than making the vertex shader depend on the number of draw-time pixel shader outputs. Add a test that exercises SSBOs in vertex shaders, varying the number of draw-time pixel shader outputs (which should have no effect on register assignment). Bug: angleproject:7156 Change-Id: I5801d59299275ea6d2569456d53c230e7e8ee5a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3579501 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Stephen White <senorblanco@chromium.org>
Jamie Madill 9907f22d 2022-04-19T13:22:26 gold tests: Add command-line arg for gold instance. This will allow other users of the script to override the ANGLE Skia Gold instance with their own. Bug: angleproject:6854 Change-Id: Id6a0966d4db4fd0265d427d684f07dc1e4c610e2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3594619 Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Geoff Lang e18240d1 2022-01-28T13:46:41 Mark contexts as shared when importing EGL images. Once a context references an EGL image, it can share resources with contexts in other share groups. Marking the context as shared ensures that locks are held by all contexts referencing EGL images for GL functions. Bug: angleproject:6957 Change-Id: Ic3901c458f388306c59f6bb01560a7c66d0574c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3424659 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: mohan maiya <m.maiya@samsung.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Cody Northrop acdec48a 2022-04-15T11:48:14 Tests: Add Monster Strike trace Test: angle_perftests --gtest_filter="*monster_strike*" Bug: angleproject:7210 Change-Id: I3184059a73f9d21474931633eb381a3cd12831f0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3587542 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 4cd15cb3 2022-04-19T09:32:05 Skip a Vulkan test due to a threading flake. VulkanImageTest.PreInitializedOnGLImport/ES3_Vulkan_SwiftShader_AsyncCommandQueue Bug: angleproject:7204 Change-Id: I1aeb16d1e0bdaecefc0776236f55c46d307fdaad Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3593363 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 64fa1e80 2022-04-19T13:18:23 Revert "vulkan: Call glFinish in VulkanHelper destructor" This reverts commit aefb2a99ebb598c7b3530056ef3d030b5c4f0115. Reason for revert: Still flakes: https://ci.chromium.org/ui/p/angle/builders/try/linux-test/4382/overview Original change's description: > vulkan: Call glFinish in VulkanHelper destructor > > In async queue mode, GL commands are submitted asynchronously to the > VkQueue on a separate thread. VulkanHelper destructor uses the VkQueue > when it calls vkDeviceWaitIdle(), and that's a data race when the queue > is being used to run GL commands on the other thread. Calling glFinish() > before any Vulkan commands ensures that the queue isn't being used on > another thread. > > Bug: angleproject:7204 > Change-Id: I509bcf55edf430e39805a9d43c07a902942d33ca > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3587366 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> > Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org> Bug: angleproject:7204 Change-Id: I60e6fc519b21d53619309247fdea32f23375f975 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3594099 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Yuly Novikov 956fb16e 2022-04-14T20:54:26 Remove Win NVIDIA dEQP suppressions Switching from Quadro P400 to GTX 1660 Bug: angleproject:2222 Change-Id: I7f12878a0ccf31fe5ca319251ab3f4bc60d66b61 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3587372 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Sunny Sachanandani aefb2a99 2022-04-14T13:45:42 vulkan: Call glFinish in VulkanHelper destructor In async queue mode, GL commands are submitted asynchronously to the VkQueue on a separate thread. VulkanHelper destructor uses the VkQueue when it calls vkDeviceWaitIdle(), and that's a data race when the queue is being used to run GL commands on the other thread. Calling glFinish() before any Vulkan commands ensures that the queue isn't being used on another thread. Bug: angleproject:7204 Change-Id: I509bcf55edf430e39805a9d43c07a902942d33ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3587366 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Auto-Submit: Sunny Sachanandani <sunnyps@chromium.org>
Lubosz Sarnecki 039660a0 2022-04-14T13:32:33 Translator: Drop const from opaque parameter types `const` is ineffective on opaque types like sampler2D. That qualifier is now dropped as it was tripping SPIR-V gen up. New validation is added to make sure such parameters are not reintroduced. Test credit of Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Test: angle_end2end_tests --gtest_filter="GLSLTest.ConstSamplerParameter*/*_Vulkan" Bug: angleproject:7201 Bug: angleproject:7205 Change-Id: I310a47a8eb162ddafb2ab44682520f546f8a5512 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3587345 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 0360248c 2022-04-14T10:06:56 Suppress flaky end2end failures on Mac/NVIDIA/OpenGL These test recently started flaking: CopyTextureTest.CubeMapTarget/ES2_OpenGL CopyTextureTest.CubeMapTargetRGB/ES2_OpenGL CopyTextureTest.CubeMapTargetRGBA/ES2_OpenGL CopyTextureTest.CopyToMipmap/ES2_OpenGL BlitFramebufferTest.ScissoredMultisampleStencil/ES3_OpenGL BlitFramebufferTest.NonZeroBaseDestinationStencil/ES3_OpenGL BlendIntegerTest.MRTUnsigned/ES3_OpenGL BlendIntegerTest.MRTSigned/ES3_OpenGL DrawBuffersTest.BlendWithGaps/ES3_OpenGL Bug: angleproject:7206 Change-Id: I75563601f9f828d5c5fc2e8da6af66d21a2f6d30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3585891 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Lubosz Sarnecki 03b3bc3f 2022-04-08T13:36:50 Tests: Add Special Forces Group 2 trace. Ignore a SYNC-HAZARD-WRITE_AFTER_READ VVL error in RendererVk. Add GL_EXT_texture_buffer prerequisite. Test: angle_perftests --gtest_filter="*special_forces_group_2*" Bug: angleproject:5592 Change-Id: I63350a0bdbdffbc6951fd650753d900b5ff0bade Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3578764 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov b5d34da0 2022-04-11T18:17:03 Add src/tests/py_utils/ for utils, angle_path_util for imports. Detect if angle or chromium checkout when adding deps paths, so that random paths from above angle_root don't get added to sys.path when imported from an angle checkout. Bug: angleproject:6854 Change-Id: I4cd3334a2313d921f8651de7056f4f3798b8e072 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582978 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Gregg Tavares 52237c32 2022-04-13T18:32:29 Suppress CopyTextureTest.CopyToMipmap on Intel Mac OpenGL Bug: angleproject:7203 Change-Id: Ie30bea83f947ba56c0d75b32a910e305fa712b85 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3586170 Commit-Queue: Gregg Tavares <gman@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Shahbaz Youssefi c5271e8e 2022-04-04T23:28:35 Vulkan: Emulate GL_KHR_blend_equation_advanced Based on a change by Brandon Schade <b.schade@samsung.com> In the translator, when advanced blend is enabled, an input attachment is added. Based on the listed advanced blend equations, emulation code is added that performs those equations' functions. The blend equation itself is passed through a driver uniform. Note that the advanced blend extension only allows a single output to use advanced blend, and that should be at location 0. In the Vulkan backend, when advanced blend is used, the driver uniform to select the equation is updated and normal blending is disabled. Bug: angleproject:3586 Change-Id: Icc42e8be238d34fca149087eb9cfe616a7643a6b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3575738 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jonah Ryan-Davis 01c0bc21 2022-04-13T17:56:13 Revert "Vulkan: Support Wayland" This reverts commit 510351f2006e32ffc6da722f1fc9ea5666e9c0da. Reason for revert: Breaking ANGLE roll: https://bugs.chromium.org/p/angleproject/issues/detail?id=7202 Original change's description: > Vulkan: Support Wayland > > Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size > from native window and check egl config is just empty. > > Then add an EGL wayland test for testing rendering and buffers swapping. > > Bug: angleproject:6902 > Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898 > Reviewed-by: mohan maiya <m.maiya@samsung.com> > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6902 Change-Id: Idd0cb78c84baeb1b2ab6910173160206901799f6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584921 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jonah Ryan-Davis <jonahr@google.com>
Shahbaz Youssefi 8074061d 2022-04-09T01:03:53 Remove feature override platform methods Instead, the tests now use the enable() functions to override the feature at platform level. This fixes the forceFallbackFormat feature mistakenly not having been tested. Bug: angleproject:6435 Change-Id: I605e4133407282bd52232887b595af0d2c13575d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3577369 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi a0b5299b 2022-04-12T00:38:50 Vulkan: Fix resolve with subpass into smaller framebuffer The condition to optimize resolve with subpass did not take into account that the resolve area must match the render pass are, neither did it disallow flipping and rotation. Bug: angleproject:7196 Bug: chromium:1314383 Change-Id: I57e50da4d6e04dfebcce3c0a5061015e5ee8773b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3581055 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Yuxin Hu 6768aff7 2022-04-07T23:25:08 Fix Geometry Shader Conformance Test Failure on Pixel6 Add code in shader linker stage to check the number of AtomicCounterBuffers against these values: GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS Bug: angleproject:6918 Change-Id: If1c1d0dc2452f5aafc72d81f4f5523608810bba9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3576629 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Sunny Sachanandani d4cbd9bf 2022-04-11T16:55:39 vulkan: Mark external memory textures as preinitialized Textures initialized from external memory objects should be considered preinitialized so that they're not cleared on first access with robust resource init. This is essential for Vulkan-GL (WebGPU-WebGL) interop on Linux where Skia or Dawn could be first used to render into a VkImage backed by an external memory object, and a GL texture is created lazily on first GL access. This CL also includes an end-to-end test for such interop, and changes to support that test: 1) Add writePixels() to VulkanHelper to upload pixels to a VkImage 2) Detect external memory / semaphore extensions when VulkanHelper is initialized from ANGLE. 3) Allow importing external memory object that's larger than VkImage size requirements. Bug: angleproject:7188 Change-Id: I60c250b64df1766a179edd1cc67c3f0765e8aa0f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582954 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Yuly Novikov 291be0b7 2022-04-12T14:31:35 Suppress multisample_interpolation dEQP failures on Pixel 6 Vulkan 16 tests started failing after upgrading phones to Android 13 DP2 Bug: angleproject:6876 Change-Id: I9b965bf6a835cda7fad82c27110cdf38b88c6cb9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3584386 Auto-Submit: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Antonio Caggiano 510351f2 2021-12-09T16:52:35 Vulkan: Support Wayland Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. Then add an EGL wayland test for testing rendering and buffers swapping. Bug: angleproject:6902 Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi aed5951e 2022-03-29T16:29:58 Reland "Vulkan: Fix texture-after-framebuffer sync issues" This is a reland of commit 535cd538f3585b44855647339f04bae1c1acf63a Original change's description: > Vulkan: Fix texture-after-framebuffer sync issues > > In TextureVk::syncState, for various reasons, the underlying image may > need to be respecified. For example because base/max level changed, > usage/create flags have changed, the format needs modification to become > renderable, generate mipmap is adding levels, etc. > > Currently, ANGLE syncs FramebufferVk before TextureVk for the sake of > the deferred clear optimization. This means that if the texture needs > to recreate its underlying image, it needs to do so earlier than its own > syncState, and do so in FramebufferVk::syncState through the > TextureVk::getAttachmentRenderTarget function. > > Over time, TextureVk::getAttachmentRenderTarget was modified to do parts > of what TextureVk::syncState did for this matter as bugs were > discovered, and more continue to be discovered. The bug that prompted > this change is missing image recreation when usage/create flags change. > > In this change, the relevant code in TextureVk::syncState is refactored > in a helper that's called by TextureVk::getAttachmentRenderTarget. This > way, the two functions should always be in agreement, avoiding > TextureVk::syncState recreating the image after > FramebufferVk::syncState, leading to use-after-free bugs. > > Bug: angleproject:4418 > Bug: angleproject:6909 > Bug: chromium:1266094 > Bug: chromium:1296866 > Change-Id: I856a34ca5cf573578c771f5adbeb9208420a3f62 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3557817 > Reviewed-by: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Charlie Lao <cclao@google.com> > Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Bug: angleproject:4418 Bug: angleproject:6909 Bug: chromium:1266094 Bug: chromium:1296866 Change-Id: I0110eab88eb9d8f77e204b84a6e90308e2384fd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3572715 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 797e627e 2022-04-08T22:49:51 Autogenerate list of features as enum The WithX() and WithNoX() helpers are removed and replaced with enable() and disable() member functions that take the name of the feature (as a Feature::X enum constant). This has two benefits: - Adding tests that override a feature no longer requires additional helper functions to be written. - There's no mistaking the feature name. This change doesn't yet fix the main issue in anglebug.com/6435, but does fix the following helpers using an old feature name (so they were ineffective): - WithMetalForcedBufferGPUStorage - WithNoVulkanViewportFlip A follow up would remove the old way of overriding features in tests and replaces them with the new way. Bug: angleproject:6435 Change-Id: Ida02b26ec72bc40d7a8938c76a93815bb903ca05 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3580982 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>