src/tests/perf_tests


Log

Author Commit Date CI Message
Shahbaz Youssefi a9516865 2022-06-01T22:48:04 Vulkan: Output cache look up feedback in pipeline graph Bug: angleproject:6565 Change-Id: I12bb9ab5756860de9ba26d6b4a9429a78b65df39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3686029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 53ec886e 2022-05-30T16:49:11 Vulkan: Externally synchronize the pipeline cache In preparation for a future change that requires this as it may perform pipeline cache merges during creation of pipelines. Bug: angleproject:5881 Change-Id: Ic7921b781aa773ae23b60a0bb6fa2111b1fc401e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679479 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi b0d75fb5 2022-05-31T16:55:23 Vulkan: Use 64-bit counters Some upcoming counters don't fit in 32 bits. Bug: angleproject:5881 Change-Id: I2de8a603cabdb5f7417c29d5f37a50899485d6d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3679488 Commit-Queue: Charlie Lao <cclao@google.com> Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Jamie Madill 54e08a5a 2022-05-25T14:35:02 Trace Tests: Remove Pixel 2 expectations. We no longer test on this device. Bug: angleproject:5517 Bug: angleproject:5553 Bug: angleproject:5553 Bug: angleproject:5591 Bug: angleproject:5716 Bug: angleproject:5772 Bug: angleproject:5877 Bug: angleproject:6023 Change-Id: Iaf6f49cdf2a10bc0704e9956aca81b5e36679c10 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3668147 Auto-Submit: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi e4a517c9 2022-05-17T23:58:23 Vulkan: Rearrange GraphicsPipelineDesc to reduce footprint Bits for VK_EXT_extended_dynamic_state2 are moved to the end of the desc. Some bits are also rearranged and some paddings removed for a total of 4 bytes of reduction in desc size. Bug: angleproject:7328 Change-Id: I48f20408a8a2cb7bce0d8e2d0d2ccd8a121f7894 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3652747 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com>
Shahbaz Youssefi 2faabfe5 2022-05-16T16:19:03 Vulkan: Optimize pipeline desc w.r.t dynamic state State corresponding to VK_EXT_extended_dynamic_state is moved to the back of the description and is excluded from the hash. Bug: angleproject:5906 Change-Id: I3b6efb2674e955eed6e12b6c7096a7fea63748a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3651581 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 3da24b5c 2022-05-16T11:58:59 Move trace loader code to a common location. With that Capture/Replay will be able to make use of the same code. CL authored by gert.wollny@collabora.com. Bug: angleproject:4964 Change-Id: Ie1ba663169a34929f5a169ab74c7042e9fd5deb0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645441 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Charlie Lao ff011779 2022-05-13T12:36:24 Vulkan: Let texture buffer handle BufferVk's storage change When buffer's storage changed due to glBufferData call, texture buffer code should also respond to this and update the texture descriptor set. This CL merges BufferVkStorageChanged message into InternalMemoryAllocationChanged and removed BufferVkStorageChanged all together. Bug: angleproject:7283 Change-Id: I230ee7268634e747d06eab1954f5a76ecf84c9d6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3646955 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Lubosz Sarnecki 0f2fc766 2022-05-04T12:51:15 TracePerfTest: Add ability to screenshot after reset. This patch makes --screenshot-frame take frame arguments that are greater than the frame range of the test. This makes it possible to capture screenshots after reset. E.g. the trace has 100 frames, the argument 1 and 101 should give the same result, but will differ if reset fails. Bug: angleproject:7307 Change-Id: Ie149e6046d0384d93341c677a7b391b5342917d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3644577 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 40583b0f 2022-05-12T09:09:37 Tests: Skip pubg_mobile_skydive on Nvidia Test: angle_perftests --gtest_filter="*pubg_mobile_skydive*" Bug: angleproject:7283 Change-Id: Iba6c7c9caa2f887b0c5016869416ec4897975e1b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3645587 Commit-Queue: Jamie Madill <jmadill@chromium.org> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f6610106 2022-05-10T12:05:52 Add a draw call perf test for changing a single uniform. Bug: angleproject:6776 Change-Id: I0621c813a654b3378b48d03219620627605b24a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3638984 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi e73121b1 2022-05-10T22:47:20 Vulkan: Fix VulkanPipelineCachePerfTest Bug: angleproject:5906 Change-Id: Ide86708df10679309cc2aca0df088e8595d2a8c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3641142 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Gert Wollny 089f2871 2022-05-10T13:05:18 PerfTests: Add support for eglCreateImage and eglDestroyImage Bug: angleproject:4964 Change-Id: I7a028b72cf7a44230f8d129753daef8c04f2fac5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3636061 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@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 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>
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>
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>
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>
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>
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>
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>
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 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>
Jamie Madill 23558369 2022-04-06T15:41:59 Update perf tests arguments. Bug: angleproject:6776 Change-Id: I3cf51cdf9ad05dc792126354c84e717574638408 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3566219 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 152616ee 2022-04-04T19:34:53 Tests: Add Aztec Ruins High trace Test: angle_perftests --gtest_filter="*aztec_ruins_high*" Bug: angleproject:7169 Change-Id: I3d30348f663a4b1c54df1179d471363ca4c244c1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3570244 Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 3258477a 2022-04-05T16:08:09 Skip car_chase on all Intel Windows platforms The trace did not get its gold image assigned correctly due to some Intel platforms not running the trace on submission. Bug: angleproject:7173 Change-Id: I7891204ccba86bff1ee1cb5e16aa870a2122beb1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3572973 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8b84cf15 2022-03-30T13:42:38 Tests: Add GFXBench Car Chase trace Test: angle_perftests --gtest_filter="*car_chase*" Bug: angleproject:7125 Bug: angleproject:7173 Change-Id: I07069d46351718743e545fc056f41de2b6fe3820 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3561484 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop a555be4a 2022-04-02T19:46:22 Tests: Add Scary Teacher 3D trace Test: angle_perftests --gtest_filter="*scary_teacher_3d*" Bug: angleproject:7163 Change-Id: I305146c403288f9409637c0847af6c38b0cefa89 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3567125 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Roman Lavrov 1a3411c7 2022-04-01T18:42:51 Set SKIPPED status on skipped tests, rely on it in Gold tests. Gold tests check for '[ SKIPPED ] {test_name}' notice in test output instead of assuming that missing screenshot means SKIP. Now missing screenshot raises an exception. Also log the reason why the test was skipped. Example: [ RUN ] TracePerfTest.Run/native_asphalt_8 ../../src/tests/perf_tests/ANGLEPerfTest.cpp:837: Skipped Test skipped due to missing extension: GL_KHR_texture_compression_astc_ldr [ SKIPPED ] TracePerfTest.Run/native_asphalt_8 (182 ms) Bug: angleproject:6854 Change-Id: I2d88e2063a68ae95399a7932700f74032737ec91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3565561 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 83d3a98c 2022-04-04T16:03:06 Remove commented out mSkipTest. mSkipTest = true was commented out in https://crrev.com/c/1456482 back in 2019 so presumably this is no longer needed. Bug: angleproject:3137 Change-Id: Ic2c4ca5e2bea939aee8cfb4e5386c7d526c39064 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3569586 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Jamie Madill b2c01ac4 2021-09-28T12:57:45 Report process memory in perf tests. Bug: angleproject:6440 Change-Id: Ifdd4389266e3ac55963a3069d437c631bf73f72a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3191194 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 3739a195 2022-03-09T13:56:36 perf tests: Record perf counter metrics. This adds a new command line argument that will allow the user to specify perf counters to record into the test output. Bug: angleproject:4918 Change-Id: Ia7432ff96eadf13ef681f67d2d503d00fd83e06e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516970 Reviewed-by: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1cfbe863 2022-03-09T13:35:44 perf tests: Report multiple time metrics. We can now report cpu/wall/gpu time instead of just a single timing metric. This is in preparation for reporting other types of metric including counters. Also includes some other minor script improvements. Bug: angleproject:4918 Change-Id: I52a3241893c56a1bfe982990ebac0fa168dbac51 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3516969 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 37bfc40d 2022-02-27T16:27:26 Tests: Add Blade&Soul Revolution trace Test: angle_perftests --gtest_filter="*blade_and_soul_revolution*" Bug: angleproject:7053 Change-Id: I0ef1442c5cf12c08f9b461559512ae858829e41c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3492850 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 802e0d4d 2022-02-15T16:40:07 Document perf test metrics Bug: angleproject:1944 Change-Id: I7f0d5c73c943ba28b3e0270e17681d7e69a7ee4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3466757 Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Auto-Submit: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten e2f8c5c6 2022-02-22T19:15:11 Vulkan: Add ClearBenchmark.Run/vulkan_scissoredClear Add the test ClearBenchmark.Run/vulkan_scissoredClear to benchmark scissored clears with the Vulkan backend. Bug: angleproject:5194 Test: ClearBenchmark.Run/vulkan_scissoredClear Change-Id: I7d6aeb8683b2ac2488e1c961d0cc194e6107b7f1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3408457 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Lubosz Sarnecki b69349bc 2022-02-15T14:59:03 Tests: Add Real Racing 3 trace. Add GL_EXT_shader_framebuffer_fetch prerequisite. Test: angle_perftests --gtest_filter="*real_racing3*" Bug: angleproject:7026 Change-Id: Ie76e7ca43bb3a95c343e56d3b830f1f6d6e733c4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3475351 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 54d428dd 2022-02-10T20:25:51 Tests: Add MARVEL Strike Force trace Test: angle_perftests --gtest_filter="*marvel_strike_force*" Bug: angleproject:7005 Change-Id: Ife9c6f303651bc746953e0ecfc529a2c9ec0b0d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3457744 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 02ce52d2 2022-02-08T20:41:01 Test: Add Lords Mobile trace Test: angle_perftests --gtest_filter="*lords_mobile*" Bug: angleproject:7000 Change-Id: I451433be5269c199ff404162df406b16ecee155b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3450029 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 236a3d0f 2022-02-06T16:09:24 Tests: Add Dead Trigger 2 trace Test: angle_perftests --gtest_filter="*dead_trigger_2*" Bug: angleproject:5823 Bug: angleproject:6986 Change-Id: I259cfb2f9c9d2d0f14af315c0e02fcd42d24cb8d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3442757 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Lubosz Sarnecki 9bf5716c 2022-01-26T16:39:11 Tests: Add War Planet Online trace. Add GL_KHR_texture_compression_astc_ldr prerequisite. Test: angle_perftests --gtest_filter="*war_planet_online*" Bug: angleproject:6774 Change-Id: I3d595453a0a570a1af4b1e6673cfc77e4ff9210b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3420296 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Lubosz Sarnecki 42c8b29d 2022-01-05T13:35:23 Tests: Add Dead By Daylight trace. Add GL_EXT_shader_framebuffer_fetch prerequisite. Ignore SYNC-HAZARD-READ_AFTER_WRITE validation error in RendererVk. Test: angle_perftests --gtest_filter="*dead_by_daylight*" Bug: angleproject:6870 Change-Id: I01f53ff8d26b704b75afe8c02ac12777b51fd5de Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3372793 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
Tim Van Patten 706e44b0 2021-12-23T19:36:44 Tests: Add PUBG Mobile launch trace Note: This isn't full representative of the shader compilation phase, since the glGetProgramBinary() calls are excluded from the trace due to missing functionality. The goal of this trace is to benchmark the compile/link/use program steps, so this trace is still useful from that perspective. Test: TracePerfTest.Run/*pubg_mobile_launch Bug: angleproject:6848 Bug: angleproject:6850 Change-Id: Ic0572b9fd1d0d26a53571c64446e577c7af7fa3a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3355556 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill cb96c236 2022-01-26T18:53:55 Revert "Vulkan: Enable framebuffer fetch on SwiftShader." This reverts commit 5107231939b5e04d3d5e4376176db42c3ae60193. Reason for revert: Fails new code paths in Chrome+Skia. Bug: angleproject:6947 Original change's description: > Vulkan: Enable framebuffer fetch on SwiftShader. > > This also fixes a bug with non-coherent fetch in the symbol table. > > Bug: angleproject:6947 > Bug: angleproject:6948 > Change-Id: I190b2e0cddf1bc1b53a79079d3e2f79ccbb40d15 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412998 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6947 Bug: angleproject:6948 Change-Id: I8bd6c55598552b733547e45c854f6d55768d2b65 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3417503 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51072319 2022-01-25T10:41:25 Vulkan: Enable framebuffer fetch on SwiftShader. This also fixes a bug with non-coherent fetch in the symbol table. Bug: angleproject:6947 Bug: angleproject:6948 Change-Id: I190b2e0cddf1bc1b53a79079d3e2f79ccbb40d15 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3412998 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten b0e15ee4 2021-12-28T20:37:33 Decide GL_KHR_parallel_shader_compile in backends GL_KHR_parallel_shader_compile was previously being enabled unconditionally in the front end. However, some backends (Vulkan) perform worse with parallel shader compilation. This CL moves the decision of enabling GL_KHR_parallel_shader_compile to the backends. To support single-threaded shader compilation without affecting the generic worker thread pool, Context::mSingleThreadPool is added to own the single-threaded WorkerThreadPool and can be returned by the new function Context::getShaderCompileThreadPool(). Otherwise, if the extension is enabled, the (renamed) Context::mMultiThreadPool is returned. Bug: angleproject:6748 Change-Id: Ic8d3a183f397608f3002a05480deb976dfe44792 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360337 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 4d893a93 2021-09-07T11:47:23 Re-land: "Trace Tests: Remove auto-generated code." No significant changes in the re-land. Bug: angleproject:5133 Change-Id: Ib5bb8fba3e9e2f1f648d5af251b7b2319c9f37dd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3352432 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 26fa0fe6 2021-12-15T10:44:40 Tests: Add Asphalt 9 trace Test: angle_perftests --gtest_filter="*asphalt_9*" Bug: angleproject:5883 Change-Id: I8d180e6bd865d04ccc5c5938d62d86d1293de901 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3308852 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 709d8727 2021-12-14T16:11:33 Revert "Trace Tests: Remove auto-generated code." This reverts commit 1c0bb44862fbc6107d73d056c2e07c59bcfa8d09. Reason for revert: Causing failures on Intel Linux with native driver. Original change's description: > Trace Tests: Remove auto-generated code. > > Bug: angleproject:5133 > Change-Id: I71a82071b1c667475f7fefcd6c8766a9de71141d > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144215 > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Tim Van Patten <timvp@google.com> > Commit-Queue: Jamie Madill <jmadill@chromium.org> Bug: angleproject:6816 Change-Id: Ic35145c8c3bb23ccf196b86def42f4a82f07aad5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3340332 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 1c0bb448 2021-09-07T11:47:23 Trace Tests: Remove auto-generated code. Bug: angleproject:5133 Change-Id: I71a82071b1c667475f7fefcd6c8766a9de71141d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3144215 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 7fc6c07c 2021-09-29T14:02:29 Capture/Replay: Update process for trace upgrading. Includes changes to the retracing script. Also includes documentation on how the process works. Bug: angleproject:5133 Change-Id: I1acfe338f3fe0282a0461c314274c761ed04bd2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3193418 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 66e1fb86 2021-12-09T11:52:24 Trace Tests: Ensure zillow runs on SwiftShader. This trace was being skipped based on incorrect GPU detection. Bug: angleproject:5133 Change-Id: I15e36e099aa2443153184f95b360a8afec278019 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3330575 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cheryl Wei 268653c9 2021-11-25T13:37:58 Vulkan: Update a test to triger large dirty bit handling Some traces bind one VBO to a large number of VAOs,and use glBufferData to change buffer size frequently,this will cause glBufferData spending a lot of time doing VAO dirty bit handling, which leads to high cpu load in these traces.This test could triger this issue. Bug: angleproject:6371 Change-Id: I99292825b8cb5bba58cc6b37e3baa7adcd02c780 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3301536 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8c634492 2021-11-17T11:06:23 Updates to perf test running script. - Fixes logging (needed reload) - Improves logging messages (less spam) - Reduces time in test calibration & sampling - Record failures on test errors more robustly - Redesign the result recording class Bug: angleproject:6090 Change-Id: I53fd86e9e009bd52ec98507334c69b05e711d83e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3288206 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lingfeng Yang e9f9fa17 2021-11-09T18:13:15 Add cpu time measurement to perf tests Bug: angleproject:6667 Change-Id: I16570a7b51d363dd1c0f35789b985520cb76d488 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3270601 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com>
Lingfeng Yang 27bc56c6 2021-11-15T18:18:53 Vulkan: MAP_UNSYNCHRONIZED_BIT: Skip ghosting/idling Respect the following spec language: No GL error is generated if pending operations which source or modify the buffer overlap the mapped region, but the result of such previous and any subsequent operations is undefined Test: cpu time improves in unsync case in perf-tests/MapBufferRange.cpp Bug: angleproject:6680 Change-Id: I6133952546735aced6e6ee8468ef2ac695316fb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3272018 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 316dcb56 2021-10-06T09:31:49 Add SwANGLE Skia Gold testing. Required updating our system info helper to be able to retrieve SwiftShader device information. Bug: angleproject:6496 Change-Id: Ib38ea4da65d199433e17b87df2630c3fd77cb619 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3208646 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Lingfeng Yang 0b46ef40 2021-11-04T09:30:23 Vulkan: Start on a MapBufferRange benchmark We have a lot of apps that use MapBufferRange to upload data. That can be low performance. Let's have a benchmark for this. Bug: angleproject:6634 Change-Id: I7e20ad65b89700733c02995a7c56d641e39a43b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3261378 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Lingfeng Yang <lfy@google.com>
Cody Northrop 45ffabd0 2021-11-04T09:45:03 Skip world_cricket_championship_2 Intel Linux Timing out. Bug: angleproject:6657 Change-Id: Ia4b6456adbffd41764ae2bccac6d1cf79f3b4fb6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262032 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 73da1648 2021-11-04T09:26:00 Tests: Skip zillow trace on desktop Vulkan Bug: angleproject:6658 Change-Id: I0d0152c83930b6a789bd9660ad2f16e9a8e9f80a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3262031 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Yuxin Hu 8aec7f35 2021-11-02T22:01:25 Add World Cricket Championship 2 Trace Test: angle_perftests --gtest_filter="*world_cricket_championship_2*" Bug: b/194508692 Change-Id: I0f36eba247b4726bc13b327634c429339ad1297c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3258343 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Jamie Madill 4a2446c6 2021-10-19T11:55:17 Vulkan: Implement robust shader outputs. In this CL we change ANGLE to pass the mask of missing shader outputs down to pipeline creation. We then use the color mask bits to block SwiftShader writing to unused outputs. This fixes the undefined behaviour present in Genshin Impact. Note that the other GLES implementations we tested don't seem to modify outputs even if they're unused. It was easier to mask out the color attachments in initialize rather than set up the pipeline desc to mask out the attachments. This was because we manipulate the color mask in a fairly complex way before we initialize the pipeline desc. Bug: angleproject:6566 Change-Id: Ie659fcd511cd286fa573fd25e3e6a0b9e123ebd6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3232435 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 1dc2b702 2021-10-13T16:02:37 Vulkan: Pass shader module map to init pipelines. Instead of pulling out the shader modules from the shader map when we start the call chain, pull them out right in the init call. This saves a bunch of boilerplate code. Refactoring change only. Bug: angleproject:6566 Change-Id: Ib8d79bd7284d7ddb83522270f3d4df9086ab7300 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3221134 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f3d5dac3 2021-08-23T17:25:15 Vulkan: SPIR-V Gen: Drop dependency to glslang The SPIR-V gen path is now made default. Compilation through glslang is still supported for debugging, and is enabled on the GLSL* end2end tests for smoke testing. On release builds, glslang is not supported. To test with glslang, add the following gn arg (only necessary if dcheck is disabled): angle_enable_spirv_gen_through_glslang = true Then enable the generateSPIRVThroughGlslang feature. This can be done by setting an environment variable: ANGLE_FEATURE_OVERRIDES_ENABLED=generateSPIRVThroughGlslang ./angle_deqp_gles2_tests Binary size saving: - 1.3MB on Linux (SPIR-V gen itself: 240KB) - 730KB on Android (SPIR-V gen itself: 140KB) Perf tests: - LinkProgramBenchmark.Run/vulkan_compile_single_thread * Through glslang: truncated mean: 1287033.36 * Direct SPIR-V Gen: truncated mean: 244495.91 (~80% reduction) - LinkProgramBenchmark.Run/vulkan_compile_multi_thread * Through glslang: truncated mean: 4565894.83 * Direct SPIR-V Gen: truncated mean: 1158164.10 (~75% reduction) Bug: angleproject:4889 Bug: angleproject:6210 Change-Id: I486342702977c8114e90073b97183aba115a8b2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115140 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill 44bef8ae 2021-10-08T15:01:37 Remove traces of Feature Level 9_3 support from tests. Bug: angleproject:1284 Bug: angleproject:3042 Change-Id: Ic2f77d315e98c3b15c5fc8b0359168bce00867d4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213294 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Yuly Novikov c0ab6a77 2021-10-09T00:38:40 Skip crashing pokemon_unite trace on Linux Intel Already skipped on Windows Bug: b/201900915 Bug: angleproject:6494 Change-Id: I4c586d88bb91ff13700157ee5ca585370e7c7887 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3213755 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop da804530 2021-10-08T12:52:04 Capture/Replay: Skip pokemon_unite on Intel+Windows Test is getting inconsistent results around foliage edges. Test: angle_perftests --gtest_filter="*pokemon_unite*" Bug: b/201900915 Bug: angleproject:6494 Bug: angleproject:6548 Change-Id: I06a72bcd2e471613caf1787ee8e5fd6e7f22817d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3214691 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 666fcf38 2021-10-08T12:19:15 Rename functions that overlap with Windows APIs. Bug: angleproject:6283 Change-Id: Ifcd9ea9e3bf729fd2066178eb9429050b2f10518 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3212894 Reviewed-by: Bruce Dawson <brucedawson@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop fe943910 2021-10-02T21:55:34 Tests: Add Pokemon UNITE trace Test: angle_perftests --gtest_filter="*pokemon_unite*" Bug: b/201900915 Bug: angleproject:6494 Change-Id: I37b52a8557f135ca4d7e42eb964f17104d004513 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3201031 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 62414cf8 2021-10-06T16:07:03 Fix GPU-time-tracking in WebGL perf tests GL_EXT_disjoint_timer_query is not enabled by default in WebGL mode. This change ensures that extension is enabled. Bug: angleproject:4794 Change-Id: I1835f7ed2afd7a155ff9b63fad74a066df59ea4f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210626 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
angle-autoroll 66c89b0f 2021-10-06T16:28:42 Fix and disable MSVC warnings Needed because some warnings are no longer disabled after http://crrev.com/c/3189512. Also includes https://github.com/KhronosGroup/OpenCL-Headers/pull/179, needed after clang upgrade to llvmorg-14-init-5410-gd0473681 Bug: chromium:1257173 Change-Id: I4f844aa972362c488cb6d37244439e2126f2c1c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3210629 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 1b669f5d 2021-10-05T15:55:58 Add test names and metric names for BitSetIteratorPerf. New names are like so: [ RUN ] BitSetIteratorPerfTest/BitSetArray_96.Run *RESULT BitSetIteratorPerfTest/BitSetArray_96.wall_time: run= 8609.2511842004 ns .. etc ... Bug: angleproject:2244 Change-Id: I461f52a0ee098875544203c618c6b24598281f73 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3206257 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
YuxinHu a44197b5 2021-09-30T17:21:21 Tests: Add Mini World Creata Trace Vulkan test failed on Pixel4XL due to a vulkan validation layer error VUID-vkDestroyBuffer-buffer-00922. As a temp work around, I add a condition in TracePerfTest.cpp to skip the vulkan test on Qualcomm GPU Test: angle_perftests --gtest_filter="*mini_world*" Bug: b/194508684 Bug: angleproject:6443 Change-Id: I382b9dfc9aafeed92b89223214d8a4aeb75425a7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3195194 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Yuxin Hu <yuxinhu@google.com>
Lubosz Sarnecki 9994110b 2021-09-09T15:29:13 Tests: Add Nier Reincarnation trace. Requires EGL_KHR_gl_colorspace and GL_KHR_texture_compression_astc_ldr. Test: angle_perftests --gtest_filter="*nier_reincarnation*" Bug: angleproject:6366 Change-Id: Ibb71520762cf9c0a17047324557e70215754bbbb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151818 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Lubosz Sarnecki e024635d 2021-09-10T13:56:28 ANGLEPerfTest: Skip tests when missing color space support. Make tests where a non-linear colorspace was requested on platforms that do not support EGL_KHR_gl_colorspace non-fatal. Add a initializeGLWithResult function to GLWindowBase, returning a new GLWindowResult enum and wrap it in EGLWindow and WGLWindow. Bug: angleproject:6366 Change-Id: Ib57327c4d988d82064272f229f8ad59287541623 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3151833 Commit-Queue: Lubosz Sarnecki <lubosz.sarnecki@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 3e234e24 2021-09-17T11:45:01 PerfTests: Updates to several tests. Bug: angleproject:6371 Change-Id: If71c79fd363f7463098b571550af6ceb0634c00d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3176440 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill c3e0eafa 2021-09-22T13:35:04 Revert "Perf Tests: Split samples into sub-tests on desktop." This reverts commit 90c981dafc06d6bc0696749dface1337e37784d2. Reason for revert: Causing timeouts on perf bots. Original change's description: > Perf Tests: Split samples into sub-tests on desktop. > > This adds an option to the perf test runner to split each sample of > each test into a sub-test. The sub-tests then are split among the > shards like ordinary tests, and distributed across machines. The > intent is that running on different machines will reduce inter-build > variance because of differences between test machines. > > This sampling change is only added to desktop (Linux/Win) because > Android device variance seems to be lower. > > Bug: angleproject:6090 > Change-Id: I4046a012727baa8a0f2595de2349cc34257691f9 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152752 > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> > Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Bug: angleproject:6090 Change-Id: I92bffb98999f35274ec31a3b7567d87453feff94 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3174274 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 90c981da 2021-09-10T11:04:19 Perf Tests: Split samples into sub-tests on desktop. This adds an option to the perf test runner to split each sample of each test into a sub-test. The sub-tests then are split among the shards like ordinary tests, and distributed across machines. The intent is that running on different machines will reduce inter-build variance because of differences between test machines. This sampling change is only added to desktop (Linux/Win) because Android device variance seems to be lower. Bug: angleproject:6090 Change-Id: I4046a012727baa8a0f2595de2349cc34257691f9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152752 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Tim Van Patten c78ebccd 2021-09-09T16:47:26 Perf: Add _many_tex_draw test Add a new perf test _many_tex_draw, which draws with 8 textures bound. The intent of this test is to stress calls like retain() with various implementations of vk::Resource. Additionally, this CL updates the textures to use format GL_RGBA, rather than GL_RGB, to avoid the emulation step that's required due to the lack of support for the 3 channel format. Bug: angleproject:5971 Test: DrawCallPerfBenchmark.Run/*_many_tex_draw Change-Id: Iffb39b76fab68cc2a76dfd2da38db7e77cb4dac0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152171 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Cheryl Wei e10a4031 2021-09-08T15:57:00 Vulkan: Add a test to triger large VAO dirty bit handling. Some traces bind one VBO to a large number of VAOs,this will cause glBufferData spending a lot of time doing VAO dirty bit handling,which leads to high cpu load in these traces.This test could triger this issue. Bug: angleproject:6371 Change-Id: Iedc6630b497cb0f62ea0129aefc19c717c3ef905 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3147173 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Sunny Sun <sunny.sun@arm.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 247ee1c3 2021-09-10T09:38:25 Perf Tests: Output results in "msBestFitFormat" again. The histogram bins for "ms" would cause excessive rounding for tests that run very quickly. For example, 0.0012354 ms would be rounded to 0.001 ms. This would produce very flat graphs that don't accurately represent the real results. Bug: angleproject:6090 Change-Id: I9293b2083d7e54dc2663648c361f4883278806ec Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152746 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 1a6fd9d0 2021-09-09T10:32:26 Capture/Replay: Remove debug logging The debug logging is flooding the terminal with the following: Frame 0: x 0 y 0 (screen x 64, screen y 133) Frame 1: x 1 y 0 (screen x 74, screen y 133) Frame 2: x 2 y 0 (screen x 84, screen y 133) Frame 3: x 3 y 0 (screen x 94, screen y 133) Frame 4: x 4 y 0 (screen x 104, screen y 133) Frame 5: x 5 y 0 (screen x 114, screen y 133) Frame 6: x 0 y 1 (screen x 64, screen y 166) Frame 7: x 1 y 1 (screen x 74, screen y 166) Frame 8: x 2 y 1 (screen x 84, screen y 166) Frame 9: x 3 y 1 (screen x 94, screen y 166) This drowns out all over log statements, so it's being removed. Bug: b/186881553 Change-Id: Ib2235a18b56b993f16e7532249c488403383bd65 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3152155 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill e1bc8de3 2021-09-08T07:59:37 Change links from 'master' to 'main' branch. Bug: chromium:1226949 Change-Id: Ie7b28b2fa094cf0c0a407968d681e580519cbb88 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3148210 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5726158f 2021-09-08T13:31:40 Trace Tests: Fix test data path. A prior refactor was missing the path separator between the trace folders. This CL also makes the error more visible by forcing the test step to fail if there's a missing path. Previously it would print an error message but silently continue. Bug: angleproject:5133 Change-Id: I71e7c751662a08d6ff199f0f802310d0ef52ed5e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149572 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten f1cbaac7 2021-09-08T10:21:40 Capture/Replay: Disable world_of_kings for Win+Intel The world_of_kings trace is flaky, particularly on Windows+Intel. In most instances (every?) it's off by 1: Left Pixel rgba(32, 105, 119, 255) #206977FF <<--- good Diff rgba(0, 0, 1, 0) Right Pixel rgba(32, 105, 118, 255) #206976FF <<--- bad Bug: angleproject:6372 Bug: b/198101940 Change-Id: I6be7138e050d63df3dd8a189882b64dadfe62740 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149433 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Tim Van Patten <timvp@google.com>
Jamie Madill 2f3e4db8 2021-09-02T10:31:13 Capture/Replay: Serialize trace metadata to a JSON file. This will allow us to remove more code auto-generation for the trace tests. The trace info now can be loaded directly from JSON instead of from the autogenerated information. Bug: angleproject:5133 Change-Id: I04e22b9279b19282df274bc8defcd363d0449111 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140218 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 9874be31 2021-09-02T10:25:21 Trace Tests: Load trace list from JSON file. Instead of using the auto-generated enum for the trace list, load directly from restricted_traces.json. This will lead to more CLs that entirely remove the auto-generated code from the trace tests. Bug: angleproject:5133 Change-Id: I6515624a2145319d097b43085741cf9c48f1792e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140217 Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill b6e99bb3 2021-09-02T13:47:34 Rename and expand shader variable init feature. This feature now forces both output and unitialized locals to be initialized by the shader translator. This feature is needed by the trace validator to ensure we get deterministic behaviour in traces that exhibit some undefined results. Bug: angleproject:5133 Change-Id: Id1242cd077a57e891eed217f7671976ce1631a58 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140216 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9c05f55a 2021-07-15T10:58:10 Capture/Replay: Add replay state validation. We can use this to validate traces that have slight differences when retracing. The valdation works by embedding the "expected" JSON into a string at the end of each captured frame. The replay also embeds a callback which fires right before the swap in the replay harness. The harness then gets the "actual" JSON and runs a comparison. On a mismatch it calls "diff" externally. Currently the diff call is hard-coded to work on Linux only. Note that when running validation it's important to replay on SwiftShader since that's what we use to retrace. Bug: angleproject:5133 Change-Id: Icbf0031d07be8bd916607c537dec235f9a512c43 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3066008 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 3a9df22f 2021-08-29T21:05:04 Tests: Add World of Kings trace Test: angle_perftests --gtest_filter="*world_of_kings*" Tbr: timvp@google.com, jmadill@chromium.org Bug: b/198101940 Bug: angleproject:6339 Change-Id: Id19ebe19d6a3dee3bc7c1c59801e7b9a4dc4fdb2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3127943 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Tim Van Patten 58bb11ca 2021-04-16T12:28:50 Capture/Replay: Multi-Context Support Add support for capturing and replaying multiple contexts. 1.) Create and initialize the Contexts in the share group during SetupReplay(). 2.) Track the Context the command stream is for, and if the Context ID changes, inject an eglMakeCurrent() call to switch to the new Context. 3.) Intercept eglCreateContext() and eglMakeCurrent() to route to either EGLWindow or WGLWindow, depending on the current platform. Specifically, this enables capturing and replaying Asphalt 9. Bug: angleproject:5878 Change-Id: I5bc9b7ece5388ce405ba3f9e9dc3967e78662000 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2830145 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill f7b2ab5c 2021-08-25T19:00:44 Perf tests: Add 3 new skips after updating perf run times. MultisampledRenderToTexturePerf on P4 and Intel Linux TextureUploadPerf on Intel Linux Bug: angleproject:5120 Bug: angleproject:6319 Bug: angleproject:6320 Change-Id: Ia201a4d62e95f82ec42f64abebc4222e31d41e9f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3119058 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Ian Elliott <ianelliott@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 1b2febb9 2021-08-23T12:39:16 Trace Tests: Refactor calibration logic. Instead of calling glFinish every step we now run a few warmup loops to try and figure out the right step interval. On each run we refine the step interval until we reach a number that completes in the specific time after a single glFinish call. This method will use the specified test time much more consistenty. Also a couple other improvements. Will use more test time on the bots because previously they were using a calibration/warmup time of 1 second per run loop, and this bumps it up to 3 per run loop. Long explanation below. What we did before: step() glFinish() step() glFinish() .. repeat for "gCalibrationTime" seconds then take the number of steps, the actual time ran, and compute an estimate for "mStepsToRun". When we run for real, we go: step() step() step() .. repeat for "mStepsToRun" steps. glFinish() this has an obvious performance difference, because after each step() (one frame in a trace) you had a complete stall. The new code first does the above to compute a tentative mStepsToRun, then uses the results of the second run to compute a much more accurate mStepsToRun by using the "actual" time it took to run the estimate. Bug: angleproject:6090 Change-Id: I0ff19873580e13f2af5a145a21f5b1c59fb15795 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114606 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill d240f104 2021-08-23T16:25:20 Perf Tests: Update histogram units. Use "ms_smallerIsBetter" instead of "msBestFitFormat". This matches the requirements of the online docs as well as ensuring the dashboard knows which way to track the regressions. https://chromium.googlesource.com/catapult/+/HEAD/docs/histogram-set-json-format.md Bug: angleproject:6090 Change-Id: I0b234725b55d4abb1dd1e8153e132fdbcbad1c60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3115225 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 0e06d2f3 2021-08-23T20:18:48 Tests: Add Scrabble Go trace Test: angle_perftests --gtest_filter="*scrabble_go*" Bug: b/197580447 Bug: angleproject:6308 Change-Id: I624c5f201dbadb6b51fe39cbb832da2454c3cb39 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114492 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 13e52124 2021-08-23T08:44:13 ANGLEPerfTest: Fix a couple comment typos. Bug: angleproject:6090 Change-Id: I2c1a2f4c6b25bb1d4e462bcb20bd788529e255e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3114605 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d2d1f41f 2021-08-16T08:05:55 Add EGL extension to create window with a swap interval set. On Vulkan this allows creating a window once without needing to recreate the swapChain after we specify the swap interval. Also adds a simple regression test and EGL enum assertion printing formatting. Bug: angleproject:5133 Change-Id: I72af124cb0e8f7cddfa810988a9862c0f36a0e46 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3097806 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill e3f2acb9 2021-08-18T08:03:26 Trace Tests: Skip sakura school sim on Win/Intel. This test seems to produce non-deterministic rendering/flakiness. Bug: angleproject:6294 Change-Id: I5cb72318c865f21814d114fd13a18dfd44e5db60 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3103506 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d25c9d7f 2021-07-07T12:15:12 Add perf tests runner script. This script will be responsible for running the perf tests multiple times to try and stabilize measurements. We'll use it on the bots instead of just running the perf tests directly. Because the script invokes the binary multiple times, this slows down execution. Most significantly on Android, where we now need to use 20 shards, up from 6. Also marks one test as flaky on OpenGL. Bug: angleproject:6090 Change-Id: I5280035cb0bdb290a68dc6961a384eaf4b40dd4b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3011422 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>