src/tests/perf_tests


Log

Author Commit Date CI Message
Tim Van Patten 6e909d94 2020-12-30T19:40:21 Tests: Add Saint Seiya Awakening: Knights of the Zodiac trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*saint_seiya_awakening* Bug: angleproject:4048 Change-Id: Idf187b9c9298d184f1e0dd13f8a9aa0de7c2beb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2612523 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 7cdda2dc 2021-01-07T16:46:54 Vulkan: Add a perf test for pre-rotation code injection A test is added that dispatches a large number of vertex shaders, generating primitives that are all culled. The vertex shaders are simple so that code injected for pre-rotation would make up the majority of the shader code. Bug: angleproject:5478 Change-Id: I75092cb25e6427449251985f56e54f89813dec32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2615821 Reviewed-by: Charlie Lao <cclao@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Tim Van Patten 767af74e 2021-01-06T17:30:21 Tests: Add World War Doh trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*world_war_doh* Bug: angleproject:4048 Change-Id: I047ed1ccd06cd3707065fe8afed3ad7af5cd7dcc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2606645 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 00643e7d 2020-07-22T20:58:49 Use Android API to get storage path. This pipes through to a system call via JNI. This will allow Chromium changes to land that were prevented because ANGLE hard-coded some parts of this path. This in turn will allow us to more easily override these paths for changes needed for Android R support. Bug: chromium:1094062 Change-Id: I20d75b8ee40d418ba5c057f618640ef896248299 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315483 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com>
Mohan Maiya 46eaba7f 2020-12-12T10:31:26 Vulkan: Add support for internal cache hit and miss counts Add a CacheStats class that provides cache hit and miss bookkeeping. All internal caches make use of this class to keep track of its stats. This provides a means to profile cache hit ratios a.k.a Vulkan object reuse for any application. Bug: angleproject:5447 Test: Manual verification with angle_end2end_tests Change-Id: I44eeb0c2b9b291ec1cdd156fb2be4a5fe80d2848 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2580111 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 35df41da 2020-11-23T21:34:13 Skip more tests on Linux AMD RX 5500 XT Remove EGLFeatureControlTest suppression, which crashed due to calling IsVulkan() without an initialized context. angle_perftests: MultisampledRenderToTextureBenchmark.Run/vulkan_multipass_ds angle_white_box_tests: VulkanPerformanceCounterTest.RenderToTextureDepthStencilRenderbufferShouldNotLoad Bug: chromium:1004356, angleproject:5380, chromium:1097750 Change-Id: I38819374242b71fb57c54a9d0fb47b1547dda895 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2556445 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cody Northrop 565f1b16 2020-11-18T14:49:52 Tests: Add LEGO Legacy trace Requires GL_EXT_shadow_samplers which is not exposed by Qualcomm's native driver on Pixel 4 XL. Test: angle_perftests --gtest_filter="*lego_legacy*" Bug: b/161716126 Bug: angleproject:5373 Bug: angleproject:5374 Change-Id: Ifff9c5e878b7fe9a3ade684ae5f8e57167f01a25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2477441 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill ae5a2047 2020-11-20T16:31:32 Trace Tests: Screenshot within the render loop. Previously we were using a separate mechanism to capture screen shots. This would cause very long traces to replay the entire trace before normal execution. The Maps trace used hundreds of frames and this was timing out the test step. Instead we can capture a screenshot after the first time we run a trace. This will normally not interfere with performance work because we don't usually capture screenshots and do performance work at the same time. Bug: b/172977194 Change-Id: I12cfe2d051d41f1e000a98ac8aef16eb153879c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2552925 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 202304e7 2020-11-17T17:33:47 Trace Tests: Add renderer string logging. This outputs the GL_RENDERER string in each test when using the --verbose-logging command-line flag. Bug: b/173518650 Change-Id: Id966294d50aaba0c8a1f3e010f76d5560e6f1288 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2545403 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8b76d37f 2020-11-17T17:33:47 Trace Tests: Run one step per frame. Instead of trying to make one step take one sequence of frames, one run step per frame always. This will scale better for traces that are very long and cannot complete in the short times we use on the bots. Adds an explicit step round-up feature so that we can always run chunks of full trace sequences when we are not running with a fixed maximum number of steps. Bug: b/172977194 Change-Id: I0f069a66a86d8c4a698ebffb66782d13843539a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2545884 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fb34c93d 2020-11-09T19:30:17 Perf Tests: Add mutex around trace events. This prevents a race where two threads try to write events simultaneously. Bug: b/172704839 Change-Id: Idd2f3b1c2a393488ea2270b91d579dc8630e59d5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2533496 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Charlie Lao b22f8e8e 2020-10-29T15:50:39 Vulkan: Add specialization constants for surface rotation This plumbing through the specialization constant for surface rotation from ContextVk to pipeline program creation. It has not been used yet, so expecting no real functional change. This CL also converts lineRasterEmulation to use the same specialization constant path as surface rotation. Bug: b/171750979 Change-Id: Ic08c4f8bb576424d1752015e874d0977a58d78bb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508837 Commit-Queue: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 489f2c83 2020-11-06T17:24:28 Perf Tests: Trace multiple threads. This uses a little helper list to map thread IDs into simple serials that we output as 'tid' in our trace JSON file. We can use this to analyze the behaviour of the command processor thread. Bug: b/172704839 Change-Id: Ic1b5f3ec8427cb310833d1f589503daec4812681 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2524542 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 06eaaac5 2020-11-06T16:33:13 Fix trace writing in angle_perftests. We can use this to produce AGI-like reports in standalone desktop. Bug: b/172704839 Change-Id: Ifc510232e3da81210e22429b6cea9800e2723e06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2524540 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4323ed0c 2020-11-06T12:45:12 Perf Tests: Fix test time with max steps performed. This lets the default test time be 10 minutes when using a maximum steps value. This will prevent the current 10 second limit from kicking in and aborting. Also changes the --test-time override to be more clearly a calibration time, and adds a new --test-time that lets the user override the actual trial test time. Bug: b/172480147 Change-Id: I630aa8d3c9e118bb5f0100b38f37e717e12f3538 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2523371 Reviewed-by: Paul Thomson <paulthomson@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill af16c638 2020-11-06T09:50:51 Perf Tests: Add --max-steps-performed argument. This will limit the total number of steps run in the test. When using this argument we skip warmp & calibration. Renames the prior --steps argument to --steps-per-trial. Bug: b/172480147 Change-Id: Iae7cce26d66ca0bbdb21c1f511a6bfa246bd204e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2519404 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 3e5b6f81 2020-10-31T12:33:28 Enable writing histogram-set-json-format. This uses the protobuf histogram functionality to build up a histogram set. The test suites then output the histograms to JSON. This is only implemented for angle_perftests. Bug: angleproject:5161 Change-Id: Ia5a7868e8d8dcf4f13d83115ae622828c63ef0d9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2482295 Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 257b9ad9 2020-10-29T12:40:33 Add a perf test for scissored draw calls Bug: angleproject:4988 Change-Id: I59facc66aaa2af216d3a6c6ef1e4efa934a45cb8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506779 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 77defeb0 2020-10-27T18:31:53 Add the ability to re-trace existing traces. This new script runs the ANGLE trace tests with capture enabled to generate updated replay cpp files. This allows us to update our traces files to a new file format in one step. Trace metadata (currently only the default FBO format) is preserved between re-traces. Currently only desktop-based retracing is supported. This means a couple traces that require specific extensions don't run on all platforms. Bug: angleproject:5134 Change-Id: I7c923d89e33c18285ab36a7cee91f2fb735758eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2488130 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 626a4185 2020-10-27T18:31:52 Trace Tests: Allow runs against SwiftShader. SwiftShader can allow for a platform-indendent replay. This is useful for re-tracing. By default disable the SwiftShader test configs unless we pass in --enable-all-trace-tests. Also disable the mock ICD trace tests by default. Bug: angleproject:5134 Change-Id: Ibf1f3ebd6c17f15123705b7d4d9ddd6308f873f3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2502311 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 85782968 2020-10-27T08:16:58 Fix extension requirement for "World of Tanks". GL_EXT_disjoint_timer_query was missing the "GL_". Bug: b/171446929 Change-Id: I6e11f18bfa3da18efc65691a94a6290fbcf16777 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2502309 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Mohan Maiya 5cbf54da 2020-10-18T10:42:07 Vulkan: Fix exposure requirements for EXT_texture_format_sRGB_override Previously we were not checking for the correct format support to expose this extension. This change fixes that, and disables the extension if we do not support the formats we need for our implementation to function. This also adds an end2end test to check each possible format that can be used with this extension. Update GLES major version to 3 for TextureSampling perf benchmark Bug: angleproject:4561 Change-Id: Ic81bb28f02f9f36e1bc83a8eea376169de9e7735 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2359482 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Cody Northrop 29ca7186 2020-10-25T11:16:29 Tests: Add Dragon Ball Legends trace TBR: jmadill@chromium.org,courtneygo@google.com Test: angle_perftests --gtest_filter="*dragon_ball_legends*" Bug: b/171652453 Change-Id: I668232f3a1e7ca9663f481fb4246b44fb9333b4a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2497104 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 258f17d6 2020-10-23T10:39:25 Tests: Add World of Tanks Blitz trace Test: angle_perftests --gtest_filter="*world_of_tanks_blitz*" Bug: b/171446929 Change-Id: I028bfde50baa583f1ff7bf30ad77fe40026c7ca7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2495486 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 8feb5c82 2020-10-20T15:49:13 Tests: Add Marvel Contest of Champions trace Test: angle_perftests --gtest_filter="*marvel_contest_of_champions*" Bug: b/171334313 Change-Id: Ia1195a5647ad2805e3cabd23c15719eb1ebc3534 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2487764 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop d591ddff 2020-10-08T10:36:21 Tests: Add Free Fire trace Test: angle_perftests --gtest_filter="*free_fire*" Bug: b/168049517 Change-Id: Ide772454fe5c602d92bf9c476d33da420b9dfa14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2461350 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop 9d160b0b 2020-10-16T08:31:18 Tests: Add Brawl Stars trace Test: angle_perftests --gtest_filter="*brawl_stars*" Bug: b/171043467 Change-Id: Ide04fbbfd69145554c6dbb544d6ee4daa51df9cc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481154 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop 8061002b 2020-10-16T11:24:04 Perf tests: Bump replay ES version to 3.1 Required to run traces of newer apps. Test: LEGO MEC Bug: b/161716126 Bug: angleproject:4048 Change-Id: Ie135fc1ce461460e1bc0978ceca4ba8c9cff68e8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2481153 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 5eebf3a7 2020-10-18T11:44:27 Perf Tests: Call finish every step in calibration. Calibration is only supposed to take one second of warmup time. Instead we were queuing up a large amount of GPU work and then janking on the finish call at the end of calibration. Fix this by calling glFinish repeatedly during calibration. Bug: chromium:1136900 Change-Id: Idb2fefe17fcb9acbe688cff5a36f051732fc5b59 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2483462 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 51ff0d05 2020-10-16T11:54:04 Trace Tests: Add vsync-limited mode with a GPU timer. Local testing on Linux shows that ANGLE and native have the same wall-time, and ANGLE has a 10 ms vs native 6 ms GPU time. Bug: angleproject:5183 Change-Id: I26da678b984af916bfb40e1db6416f5df4f85c08 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2480782 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill ecbac31c 2020-10-16T10:36:06 Perf Tests: Add offscreen mode. This lets the trace perf tests run configurable number of frames within a single swap. The offscreen config is similar to how gfxbench works. It renders to a user FBO (by overriding calls to BindFramebuffer) and then composits multiple frames into the real backbuffer. This allows us to get a perf measurement with less overhead from composition and display. Adds emulation for some APIs that operate on Framebuffers like BindFramebuffer, Invalidate, DrawBuffers and ReadBuffer. Bug: angleproject:4845 Change-Id: I1044c1d52c82f1c215a68a6c46d74c52ed0f3d2a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300207 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 089eac22 2020-10-11T12:40:07 Perf tests: remove redundant null naming. Bug: None Change-Id: I9e3e0d8b160a438c9001d9dbd4bb067355b9e562 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2475457 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi 8af9ef3b 2020-10-06T10:59:07 Add emulated format clear perf test Bug: angleproject:4836 Change-Id: If900d288630ba5fbf82b8b1ce2ccab681cfc50c3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2451481 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill a22a19a4 2020-10-04T13:16:46 Add a --no-finish option to the perf tests. We can use this to re-capture replays. Bug: angleproject:5134 Change-Id: I765e0bbb66cfdd822ffa981f2b5533157d024cac Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449161 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Jamie Madill 974c2371 2020-10-04T12:22:38 Perf Tests: Run at least 1 step. We could end up in some very slow scenes (e.g. when debugging). This could produce a step count of zero which doesn't make sense. Noticed while capturing the T-Rex replay. Bug: angleproject:5134 Change-Id: Ibf2439961dfb3c01649dcab37acead7b6e2ab345 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2449160 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Trevor David Black e815afbf 2020-09-07T22:09:22 First pass at increasing inclusivity Link to the inclusivity rules https://source.android.com/setup/contribute/respectful-code Bug: b/162834212 Bug: chromium:1097198 Change-Id: Ied5a9e3879d72bff3f77ea6fcda9b82f30c32c2f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2396737 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Trevor Black <vantablack@google.com>
Jonah Ryan-Davis eb1df14b 2020-10-01T16:25:33 Suppress MultisampledRenderToTextureBenchmark on Pixel2/GLES This test started failing, but we don't care about performance on GLES so we can suppress it for now. Bug: angleproject:5120 Change-Id: If5eb865956ee5fb6f798d110d42e3493294bc18e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2443590 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 11d94d86 2020-09-23T15:16:19 Integrate Skia Gold with restricted trace tests. The implementation is based heavily on the Chromium Skia Gold Python classes in //build/skia_gold_common . Results will be visible here: https://angle-gold.skia.org/ Currently results are not visible until this CL lands. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I7a5d64fe35583ad7ea6360804a0f6b72cd9f6d8b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2430179 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Brian Sheedy <bsheedy@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f8e5b97e 2020-09-28T23:31:41 Additional perf test cleanup & functionality. Adds several new command line arguments and documents all args in the README. Changes the trace tests to output milliseconds. Bug: b/169600938 Change-Id: Ie8c7840a6a8958951992c806979dde6dc7d8a709 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438194 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 6e36029d 2020-09-28T21:57:08 Disable Mock ICD perf tests on Android. Bug: angleproject:5084 Change-Id: Iafff2adbd8bfc2844c43ca31329f3f8be1250631 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2438193 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 5ec560fb 2020-09-17T17:18:25 Add restricted trace golden image script test. The script reads the list of tests from the restricted traces JSON and runs angle_perftests once for each test. Running the tests in a batch seems unstable on some platfroms so running each test separately works around that limitation. It does not yet interact with Skia Gold. The Gold integration will come later once this basic skeleton is running on the bots. Also updates the perf tests to exit more quickly with --one-frame-only. This will speed up the screenshots. Example run with trigger.py: https://chromium-swarm.appspot.com/task?id=4ecb985330a33910 Bug: angleproject:4090 Bug: b/168049670 Test: tested with trigger.py Change-Id: I52820dfba2acfbc5d638673c37297877e8476adb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2417641 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 8f7970cb 2020-09-21T18:25:21 Trace/Replay: Reset replay after taking a screenshot. This was causing a replay state tracking error that could fail some traces. For example, Mobile Legends. Bug: angleproject:4090 Bug: b/168049670 Change-Id: Ia4c2db795bb861fba77c9c35217ab22c2004c492 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2422686 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill bda2205d 2020-09-17T14:37:25 Traces: Move up from tests/perf_tests/ to tests/. The trace tests aren't strictly for performance. Since we'll be using them for correctenss testing as well it makes sense to move them out of the perf_tests/ folder. Also renames RestrictedTraceTests.md to README.md so it'll load automatically in gitiles. Bug: angleproject:4090 Bug: b/168049670 Change-Id: I8be9f1d831489a9abf534d049a93441687850142 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2416913 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Mohan Maiya c99c22bb 2020-09-15T16:53:26 EGL: Add support for EGL_ANDROID_create_native_client_buffer This EGL extension will add support for creating EGLClientBuffer backed by an Android window buffer (struct ANativeWindowBuffer) which can be later used to create an EGLImage. Bug: angleproject:5018 Tests: angle_end2end_tests --gtest_filter=ImageTest.SourceNativeClientBufferTarget* Change-Id: If78ed7b80ad09629b8c5f5b5a0eb07a548e82e6e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2404320 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Mohan Maiya <m.maiya@samsung.com>
Jamie Madill a2d670c5 2020-08-15T21:13:33 Run trace tests against Vulkan Mock ICD. Required an upstream fix: https://github.com/KhronosGroup/Vulkan-Tools/pull/437 Also a workaround filed as an issue: https://github.com/KhronosGroup/Vulkan-Tools/issues/445 Bug: angleproject:4950 Change-Id: I21333464d2a8e52d5d85d35654f0e6372f9650db Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358517 Reviewed-by: Tobin Ehlis <tobine@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill ba7f8913 2020-09-12T23:23:01 Samples: Enable Debug callback. This moves the debug callback code into a common location. For ease of access it's in shader_utils since that file has access to the GL API. Bug: angleproject:5040 Change-Id: Iab9de47c2d520a5618ea6825852f8afa63565c8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2408715 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill bca88739 2020-08-16T11:32:40 Add a perf test that cycles through many VBOs. Stresses the RenderPass buffer tracking in the Vulkan back-end. Bug: angleproject:4950 Change-Id: I33d38d8703d0e333d0092195d34228d90f1af52a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2358522 Reviewed-by: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi f184cb61 2020-09-06T22:29:29 Add perf test for multisampled render to texture Bug: angleproject:4881 Change-Id: I4733e2868a3e056ec61463fec88d17aaa564234f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2394955 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 4f7edbe1 2020-06-03T14:51:50 State: Add dirty object for active textures. Checking sampler completeness after every sampler related state change is inefficient. Defer sampler completeness check to draw time. Based on a CL by hckim.kim@samsung.com. Bug: angleproject:4765 Tests: angle_perftests.exe --gtest_filter=TexturesBenchmark.* Change-Id: I7e971371e40b3044ca3d5ca39bfe7fc600620c3e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2268577 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
Cody Northrop c4a82aaa 2020-08-17T11:16:22 Tests: Add COD:Mobile trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*cod_mobile* Bug: b/164426913 Bug: angleproject:4048 Change-Id: I306714632b635c728fa212ed793f076c6b889227 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2360047 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com>
Jamie Madill e89eb912 2020-08-12T11:21:07 Reduce spam in native perf tests. The QC driver was repeating HIGH priority messages about map flags. Bug: angleproject:4943 Change-Id: I927c38249f840544a7c1f5e595fa34e706e401bd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2352472 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill cc958e0e 2020-08-12T14:27:42 Remove D3D9 configs from perf tests. We are not maintaining D3D9 for performance and reducing the number of perf tests will speed up the bots. Bug: angleproject:4943 Change-Id: Ib4ddad2cbfefcf6fccf3307df3bac7565ef246f4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2352478 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop d667ad2f 2020-08-11T16:09:36 Tests: Add Mobile Legends trace Test: angle_perftests --gtest_filter=TracePerfTest.Run/*mobile* Bug: b/163619545 Bug: angleproject:4048 Change-Id: I8ed176afe10b758a22b539d526bf02a9fe35ab92 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2350582 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 48d951e2 2020-07-30T15:32:03 Perf Tests: Handle logError callback. This will force errors when ANGLE runs into Vulkan Validation Layer failures and other internal bugs. Currently we could sometimes fail silently. Especially on Android where the error would only show up in logcat. Bug: angleproject:4909 Change-Id: Ie2888805c577d9fbad417d45a33e3269966b7b25 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2330091 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Cody Northrop 063d754b 2020-08-07T12:02:13 Tests: Update NBA2K20 trace Significantly reduce setup for this trace. First frame drops from ~430K lines to ~150K lines of code. Compile/link times should be bearable. TBR: ianelliott@google.com,jmadill@chromium.org Test: angle_perftests --gtest_filter="TracePerfTest.Run/*nba*" Bug: b/160014453 Change-Id: Ia33941012e02ec5488d039501f592dc48e9acfe4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2343454 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop fc8866cf 2020-08-07T10:31:35 Tests: Update Angry Birds 2 trace Primarily fix the width/height of the drawing surface, but also pull in changes from July 2020 update. TBR: courtneygo@google.com,jmadill@chromium.org Test: angle_perftests --gtest_filter="*Trace*" Bug: b/157672184 Change-Id: Ia6e16f6d695954f50b3d2a4e8aaaa88514b461d1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2343453 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi e4e2a847 2020-08-03T14:09:49 Entry points for ANGLE_external_objects_flags Bug: angleproject:4912 Bug: fuchsia:52759 Change-Id: If339f096a74cc87d16a6494562711d718a7738ea Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2335019 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill 1780609d 2020-08-03T17:01:21 Trace Tests: Disable timestamp queries. This framebuffer changing timing code adds overhead so it should stay disabled unless turned on explicitly. This was causing a performance regression in the native benchmark for some trace tests like egypt. Bug: angleproject:4845 Change-Id: I51c77d544cae063ba185aa4f20d028d9ffa7a2ab Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2335021 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jonah Ryan-Davis 4f7f4387 2020-07-24T11:44:02 Add entry points for OES/EXT_texture_buffer This extension is core in 3.2 Bug: angleproject:3573 Change-Id: If08736759da2fdc680cfa396d354dbfa97d1a60f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2317040 Commit-Queue: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 2d0265fa 2020-08-02T12:01:46 Trace Tests: Scale results based on frames in capture. This now reports averaged time per frame instead of per "step". Scores in general will be divided by 11. Results still reported in nanoseconds. Bug: angleproject:4920 Change-Id: I6f9dca75885cce358c3c7d1e871441969d8aa3d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2334095 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill bd7cef28 2020-07-31T11:18:27 Trace Tests: Fix Win/x86 crash. A missing KHRONOS_APIENTRY annotation was causing a crash due to stack corruption in Win/x86 only. Bug: angleproject:4845 Bug: chromium:1111764 Change-Id: I60b30ce8bc409c71d223eaedd74dc0c1ae034f7a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2331739 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill f3a38d97 2020-07-23T19:00:34 Add a custom trace tests loader. This custom loader will disambiguate the trace tests gl layer from the util GL/EGL loader. Bug: angleproject:4845 Change-Id: I5e8340eb50f736d931302f71f15f556fd9e52081 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2315627 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Manh Nguyen <nguyenmh@google.com>
Cody Northrop aed3d65b 2020-07-29T22:23:00 Tests: Add NBA2K20 trace Test: angle_perftests --gtest_filter="TracePerfTest.Run/*nba*" Bug: b/160014453 Bug: angleproject:4048 Change-Id: I4899af05d48ad2900e6d5e44adc5f5e0bdba157e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2326911 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 5f6f47f6 2020-07-29T14:26:37 Tests: Update gfxbench traces Use new capture calls to support offscreen mode. Test: run_angle_perftests --gtest_filter="*Trace*" Bug: angleproject:4845 Change-Id: I6d9ea79bd8339b7d5398e34b0407425e80ce1d32 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2327699 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill bba8daea 2020-07-27T20:07:53 Perf Tests: Use timestamp queries for GPU time. Testing shows that using timestamp queries and deferring the query get calls until after the frame produces little overhead. Also this fixes a missing GPU time reset between iterations. Bug: angleproject:4879 Change-Id: I2a566548add1536aab689cd969594a15f0628da3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321573 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 52d25633 2020-07-27T17:37:46 Disable GPU time tracking in trace tests. Adds considerable overhead to wall time on Adreno. Not tested on other platforms. Bug: angleproject:4879 Change-Id: Ib219f14162fb5768e484f717ed2a870478bd1c86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2321404 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop ca8f856a 2020-07-22T13:56:40 Tests: Update gfxbench traces Migrate from traces recorded on desktop to traces recorded on a Pixel 4 XL. This impacts the resolution and framebuffer config used for the tests. They now more accurately reflect the numbers seen from running the benchmark directly. Test: angle_perftests --gtest_filter=TracePerfTest.Run/* Bug: angleproject:4048 Change-Id: Ib013dfb35c32c6f97bcae76a74cc16d9a5d1a369 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2314896 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill a4535c18 2020-07-22T14:52:26 Fix trace tests auto-generation. This moves the trace header inclusion to the cpp file so that the test itself doesn't need to look at the individual trace headers. This fixes an include directory dependency. Also removes the FBO change callback from the generated traces. Bug: angleproject:4845 Change-Id: I019f0d347a62a81b92bf32110572911111212689 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2314217 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 9faf0cdc 2020-07-20T10:30:55 Capture/Replay: Use custom GL header. This will let us override the util loader for all new traces. It will also be easier to maintain going forward if we have to change the header again. The end goal is to run the trace tests with a custom GL layer that can intercept certain API calls. Bug: angleproject:4845 Change-Id: I028a1afdadf638998805d7b9a2cc6717cf5f0148 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2308029 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 6ca2c116 2020-07-17T13:07:24 Make trace tests a shared library. This will facilitate intercepting the GL calls and implementing emulation paths for offscreen redering. Or other EGL/GL features. It does not yet override the GLES loader and uses the shared 'angle_util' loader as it did before. Bug: angleproject:4845 Change-Id: I68806c307f59e1852999299e88dc358781817f12 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2305042 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 4fa75b5c 2020-07-17T12:58:50 Move restricted trace functions to cpp file. This is a refactoring change only. It will facilitate moving these functions to a shared library. A shared library will allow us to more easily override GL functions with an interception layer. The intercept layer will allow us to do emulation for features like offscreen tests. Bug: angleproject:4845 Change-Id: I0e00c0c22a26f1bb8faec30a825c71953033f8a9 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2305039 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 4e577a2a 2020-07-15T15:50:06 Perf Tests: Make "offscreen" a common test param. This will let us use it in the trace perf tests. Bug: angleproject:4845 Change-Id: I6188a0765c6f482bb38842faa4c58209c70b0153 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300206 Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 4e7a6a69 2020-07-15T19:35:43 Perf Tests: Fix trace test calibration. The trace tests were including the startup time in their calibration calculations. Then was forcing them to always render one step. This fixes the calibration to attempt to get a more consistent measurement. The trace tests now render many more steps than they did before. It should increase the stability and decrease variance in our measurements as they will be runnnig many more frames than before. Also adds a verbose logging flag to help debugging. Noticed this bug when working on the trace test offscreen mode. Bug: angleproject:4845 Change-Id: Iff0c987008a935e7051fca34ef12f4433eb46092 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2300205 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 6fe87f4a 2020-07-10T09:13:39 Tests: Change screen orientation for traces on Android This CL adds a reverse JNI call to our Android Native Activity that sets the orientation of the screen based on width and height. To achieve this we: * Attach to the java thread once at the beginning to grab JNI env. * Detach from the thread once when platform sends APP_CMD_DESTROY * Set the orientation during test init Bug: angleproject:4327 Change-Id: Ifbe31a6a84dd60a0dfe7d7032962c99b290d8b81 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2289054 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jordan Bayles 1265dbe6 2020-06-24T15:12:17 Update JsonCpp usage This patch updates usages of the JsonCpp library, including the following changes: 1. Removed unused version variable from the DEPS file. 2. Removed deprecated writer and reader usages, in favor of the new builder pattern inside JsonCpp. 3. Modernized usage of the Json::Value types, including some rewrites to avoid unnecessary heap allocations, and using the new foreach iterators. Bug: chromium:983223 Change-Id: If26abc8be677d905183a23498fbb81256854525c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2265093 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
Manh Nguyen bdf91e5f 2020-06-29T13:47:13 Refactor frame_capture_utils.h to frame_capture_test_utils.h frame_capture_utils.h is only used in tests so changing the name to be frame_capture_test_utils.h is more appropriate. Also frame_capture_utils.h will now be a file in libANGLE_with_capture library where serialization code is stored. Bug: angleproject:4806 Change-Id: I7482693a75b2d0edda7e84ae9b777fd3f46f1855 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2273917 Commit-Queue: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Shahbaz Youssefi ea15439b 2020-06-23T00:17:52 Add mipmap generation perf test for emulated formats Add a variation to mipmap generation perf test to measure performance when given a format that requires emulation in the Vulkan backend, in this case GL_RGB. Bug: angleproject:4551 Change-Id: I4c533d13e35279fec9e007691fb64353735040d7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2259199 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop c028fc73 2020-06-19T09:06:03 Tests: Update traces to include draw surface width/height The traces now contain the original resolution they ran with, so we can set that based on testID. This fixes correctness problems on Android, where only a fraction of the screen could be seen during replay. Bug: b/159238311 Test: angle_perftests --gtest_filter="*Trace*" Change-Id: I47b92ee31681998260bad059cde0856a25ae0fc6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2250863 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Manh Nguyen <nguyenmh@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Courtney Goeltzenleuchter e474cc9e 2020-06-18T16:03:30 Download restricted trace data To ensure that things are built we need to update the modification time on the files we download. This adds a script to download the requested files and then touch everything that was downloaded in the traces folders. Bug: chromium:1096577 Change-Id: Idce6abb6100e7c662429a9db71b1a44a78dd88a6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252544 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop c81f0b7b 2020-06-18T15:32:48 Tests: Update trace timestamps Move all timestamps forward to get CQ working again. TBR=courtneygo@google.com,jmadill@chromium.org Test: angle_perftests --gtest_filter="*Trace*" Bug: angleproject:4762 Change-Id: I1aff31a705d9a014d4ec3463d3d7b4bf6f3208a2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252542 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Shahbaz Youssefi 24945828 2020-06-18T10:00:33 Disable ES3 perf tests on Nvidia/windows7/Vulkan Notry: true Bug: chromium:1096510 Change-Id: I488d572f448d48402138e38b42fbf46c940a8b97 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2252118 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi d44da6e9 2020-06-17T23:55:02 Fix restricted_traces/.gitignore Use a pattern to exclude all compressed and uncompressed test files instead of relying on them being manually entered. Bug: None Change-Id: I76a3117ebeb22f25c46059e84457afffa5ef6757 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2251319 Reviewed-by: Manh Nguyen <nguyenmh@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Shahbaz Youssefi 51487e1e 2020-06-15T23:35:39 Add mipmap generation perftest Bug: angleproject:4551 Change-Id: Iae205674029888447d070e0df30b65828b6fa6eb Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2246732 Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
shrekshao e6124500 2020-06-02T12:02:55 Fix baseVertex and baseInstance with streaming attributes baseInstance: Fixed by adding the intial offset to each copy for streaming attributes baseVertex: make sure mShaderConstants.onFirstVertexChange takes in correct firstVertex value for dynamic attribs (where firstVertex passed to StateManager11::updateState already include baseVertex) Bug: chromium:1078330, angleproject:3402 Change-Id: I289c4e3733fdf6f78af8c3adee84112c05a5abce Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2227022 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Shrek Shao <shrekshao@google.com>
Geoff Lang 4e6f6545 2020-04-16T16:31:24 GLX: Support X11 pixmaps Add support for creating EGL pixmaps from X11 pixmaps using GLX. Pixmaps are needed for various external APIs such as VAAPI. Add support for EGL_NOK_texture_from_pixmap to allow binding pixmaps to textures. BUG=angleproject:4560 Change-Id: I4a6d3ad7e87151ff5317bbdaaf093ac1b46daf5f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2153805 Commit-Queue: Geoff Lang <geofflang@chromium.org> Reviewed-by: Jonah Ryan-Davis <jonahr@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Jamie Madill aad69df9 2020-06-11T13:27:52 Run TracePerfTests in WGL configs. Uses the "native" naming pattern. Bug: angleproject:4728 Change-Id: I28cafcdb8c5c1fb48bba51adeca641e88bfe3446 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2241619 Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 53c3ea8f 2020-06-05T17:21:44 Perf: Add a trace of Angry Birds 2 Test: angle_perftests --gtest_filter="*Trace*" Bug: b/157672184 Change-Id: If4885398aff73ce774987fbeefb63d140f7fab1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233367 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 4360c6b9 2020-06-04T16:58:16 Perf: Ensure last frame is replayed for traces This is now required for upcoming buffer mapping resets. Test: Angry Birds 2 MEC Bug: b/157672184 Change-Id: I6358acf42ca9b92bfff621f12f207be7c3655e52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2231801 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 0df92012 2020-06-03T17:08:43 Rename Platform.h to PlatformMethods.h. "platform.h" is too common a name and causes headers to be included incorrectly. Disambiguate the header using a more specific name. Solves a problem that came up with the GLES 1 tests and the standalone test harness. Bug: angleproject:3162 Change-Id: I88229a2c9407e0db57f5beee44daa11a4075f700 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2229065 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Jamie Madill 957a2359 2020-06-02T11:09:18 Skip VulkanBarriersPerfBenchmark on NV/Win. This test is failing because our out-of-date Windows 7 NV bots can't create a GLES 3.0 context. Skip this test until the machines are updated. Also updates our wrapper classes to check for an empty handle before calling delete. Prevents a crash trying to call null functions. Bug: chromium:1090139 Change-Id: I0bb58f8bd167691cd241fb0df30cdf4b2f6adf5b Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2225447 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya b3693762 2020-05-22T14:44:48 Vulkan: Enhance VulkanBarriersPerfBenchmark 1. Request a GLES3.0 context 2. Create 2 uniform buffers to be used in the new test case 3. Increase the size of the viewport 4. Add a new test case where we issue draw and buffer copy commands. The expectation is that the draw to FBO and the copy between the 2 buffers happen in parallel. Bug: angleproject:4633 Test: angle_perftest --gtest_filter=VulkanBarriersPerfBenchmark.Run/vulkan_buffer_copy Change-Id: I3c5d287c05451f77053962371a96e2de6a8ea00d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2215139 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Cody Northrop 48102b2b 2020-05-29T10:28:18 Perf: Add Candy Crush trace TBR: jmadill@chromium.org,nguyenmh@google.com,tobine@google.com Test: angle_perftest --gtest_filter="*candy*" Bug: b/150458396 Change-Id: I79c86b8d111ef55528da2ec5f0ac3a39428a1667 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2223658 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Cody Northrop b59db10a 2020-05-28T16:24:11 Perf: Add Subway Surfer trace TBR: jmadill@chromium.org,nguyenmh@google.com,tobine@google.com Test: angle_perftests --gtest_filter="*Trace*" Bug: b/150458446 Change-Id: Ie47dfa7208db0fb1f2449b758df9d2b73bbfe974 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2220766 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 6de7ee52 2020-05-25T17:00:01 Clean up overlay RenderPass count reporting. This fixes the trace perf test to accurately report how many RPs in each frame. Instead of counting the RPs on a flush we now count only on a swap call. This won't work for offscreen surfaces which is fine - the overlay doesn't really have the same use for offscreen rendering. Also ignores the first frame in graph data so we can ignore the first setup frame in the trace tests. Also skips the redundant extra "flush" call that would generate an empty space in the RP graph. Gives a cleaner measurement for optimizing the XFB RP count. Bug: angleproject:4622 Change-Id: I5762c500cdb216700247095984ae62b4f8741602 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2215309 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cody Northrop 8add7dbf 2020-05-20T15:00:09 Tests: Add trace of Egypt to TracePerfTest Test: angle_perftest --gtest_filter="*Trace*egypt*" Bug: b/157158456 Change-Id: I9c076f247cb8a2743beae8377830c15269794f9d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2209689 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Cody Northrop 6c4af0c3 2020-05-20T14:54:39 Tests: Add a common framebuffer config for perf tests As we add traces tests, some were recorded expecting depth as an attachment to framebuffer 0. This causes errors when they unconditionally query info about depth attachments. Since perf tests have never requested a config before (they are all DONT_CARE for each componenent), go ahead and set one shared by all. Test: angle_perftests Bug: b/157158456 Change-Id: I83ef1a58f246bfbc98c3bc7e024aca01560107f7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2210966 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Mohan Maiya cf8422c2 2020-05-19T10:14:02 Vulkan: Acquire a new BufferHelper from the pool based on a threshold We acquire a new BufferHelper from the pool when the app updates the data of the entire buffer. In scenarios where the app updates say, 60% of the buffer it would still be benificial to acquire a new buffer and copy over the remaining 40% of data from the old buffer to the new one. This reduces the transfer workload from 60% to 40% of buffer size. Currently the threshold is set to 50% of buffer size. Bug: angleproject:4380 Change-Id: I12576c585230e771d4c1a4352fab93dd3db2ecef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2204655 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Brandon Schade 8f6d1af9 2020-03-19T14:35:48 Vulkan: Implement EXT_texture_format_sRGB_override Implemented support for EXT_texture_format_sRGB_override This is done by creating new imageviews for textures with sRGB overridden that reinterpret the format to its sRGB counterpart. As preparation for this, textures that use this feature are reallocated with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT. This will have a performance cost for textures that use this feature, but should have no performance cost for regular textures, since they will not have this bit set. Bug: angleproject:4561 Test: angle_end2end_tests --gtest_filter=SRGBTextureTest.*Vulkan* Change-Id: Iba25f1f2b0a7227959c1cb4ba6e3ca8311c20d06 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2152145 Commit-Queue: Mohan Maiya <m.maiya@samsung.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop ce925b4c 2020-05-12T11:52:42 Perf: Add Temple Run trace Test: angle_perftests --gtest_filter="*Trace*" Bug: b/152512564 Bug: angleproject:4048 Change-Id: Ifca698a9c294e77bf90900781c1495ef6b559d63 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197285 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Cody Northrop 3a909841 2020-05-12T14:19:06 Perf: Add Reset call to trace tests The traces are already updated to contain the Reset calls, now actually call them from TracePerfTests. Test: angle_perftests --gtest_filter="*Trace*" Bug: b/152512564 Bug: angleproject:4599 Change-Id: I18b6726bc98b96f132c3245c51420cbfed1b84d8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197284 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>