src/tests/restricted_traces/BUILD.gn


Log

Author Commit Date CI Message
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>
Jamie Madill 4df8ca04 2022-05-11T09:03:33 Remove angle_util from restricted traces. This target is not needed because the traces use a custom GL/EGL loader. This way we can be sure we don't call the wrong entry points. Bug: angleproject:4964 Change-Id: I5bfa29f087d47ab598ae0ae5ac2ddf9aa04806b2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3641924 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Roman Lavrov ebfb9b9f 2022-04-26T10:37:52 Configure logging in perf and gold tests to include time. Currently no timestamp is logged: [I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd} INFO:root:adb --version ... Before switching to android_helper relative timestamps in seconds were printed, set up by catapult. Timestamps proposed in this CL are more consistent with outer logging but keep prefix short. Example: [I2022-04-25T18:45:14.761163Z 548 0 cmd_stream.go:336] {cmd} I18:45:14.999999Z adb --version ... Bug: angleproject:6854 Change-Id: I8ef7c9ae44eb5dba564a41456ce9417e3fe0f06c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3606913 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 7c091cb3 2022-04-19T21:12:35 Use adb directly (instead of catapult) in gold tests. Android detected by angle_perftests apk presence relative to pwd. All of the restricted_traces/*/*.json files are copied but those are small. Only the necessary .angledata.gz files are copied. angle_system_info_test is also handled via adb. Bug: angleproject:6854 Change-Id: I7a89ff57fcdd8ce5dc63a5e3a8f5c0132f766894 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3595241 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov b5d34da0 2022-04-11T18:17:03 Add src/tests/py_utils/ for utils, angle_path_util for imports. Detect if angle or chromium checkout when adding deps paths, so that random paths from above angle_root don't get added to sys.path when imported from an angle checkout. Bug: angleproject:6854 Change-Id: I4cd3334a2313d921f8651de7056f4f3798b8e072 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3582978 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Brian Sheedy 5c9bd7ba 2022-01-07T12:23:08 Update Mac goldctl Updates DEPS and the Chromium roller script to have both an x64 and arm64 version of goldctl on Mac. Also updates the goldctl build group to include both binaries. Bug: chromium:1280002 Change-Id: I82c9c93eb865fb68ad242454415606c9ef2846fd Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3373623 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Jamie Madill 58aeec65 2021-12-29T14:00:00 Capture/Replay: GN cleanups. This adds a GN "angle_trace_library" template that will be used with capture replay tests and restricted trace tests to share code. It could also be theoretically used to fix the capture replay sample. Also changes the capture replay tests GN to make the test exe always build even without the defines. This is possible because of the switch to JSON from code autogen, and makes it easier to catch and fix compile errors in this test harness. Bug: angleproject:5133 Change-Id: Ia87b6bbb0ea6e1abb557f962ca16d074207325ef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3360783 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
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 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 b930b9d3 2021-09-08T09:08:28 Capture/Replay: Remove redundant "capture" from label old: trex_200_capture_context1_frame001.cpp new: trex_200_context1_frame001.cpp The 'capture' word wasn't really adding any useful information. Take it out so the filenames are a bit shorter. Bug: angleproject:5133 Change-Id: Ibd7d47df2aa1f24a641c5d5b2a6dd14d6ce240e1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3149370 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@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 047e9833 2021-08-30T10:00:51 Traces: Move skia gold Python scripts. Moving this folder up one level allows us to enforce that every subdirectory in the restricted_traces folder is a trace folder. This makes it easier to batch delete or move traces. Bug: angleproject:5133 Change-Id: I5af24ce6c233f50dea2e6ffcaef6d489b03914c8 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3130441 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@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 259ae49c 2021-08-20T10:51:31 Capture/Replay: Isolate trace export definitions. This small fix to the export header means we no longer include the "restricted_traces_autogen.h" in each and every trace file. That means when we change/add/remove a trace we no longer need to recompile each and every trace. Speeds up iteration time when working with the traces. Also fixes inconsistent path generation on Windows. Bug: angleproject:5133 Change-Id: I357d65477a683455d01379379e2e98431af2ed55 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3110749 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tim Van Patten 223cd0ac 2021-06-15T18:46:07 Capture/Replay: Refactor shared context handling This is the initial CL to enable capture/replay of multi-context applications. This CL refactors FrameCapture and FrameCaptureShared to move much of the functionality into FrameCaptureShared, since most everything is shared by Contexts in the share group. For example, the setup of the majority of the GL objects is done in the new SetupReplayContextShared() function in the new $LABEL_capture_context_shared_frame001.cpp file. The setup is performed by (for example): void SetupReplay() { $LABEL::InitReplay(); $LABEL::SetupReplayContextShared(); SetupReplayContext2(); } This performs the shared setup first, followed by the context-specific setup, which may reference shared objects careated by LABEL::SetupReplayContextShared(). No re-capturing is required with this change, since the external APIs (i.e., SetupReplay()) are still the same. Bug: angleproject:5878 Test: Manual MEC and replay of Magic Tiles 3, Candy Crush Soda Saga, Temple Run 2 Change-Id: Iab7bfe651437e9be1dee83514cd97acc20c61d1d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2965780 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 82cc2d21 2021-04-09T18:08:27 Really fix iOS build Complete the fix started in http://crrev.com/c/2812698 Bug: angleproject:5811 Change-Id: I9fa50b31dda116e01203d65d47dc6420391e999d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2818243 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Yuly Novikov 0eaaff28 2021-04-07T22:53:28 Fix iOS and Android component builds After the changes in http://crrev.com/c/2797833 Bug: angleproject:5811, angleproject:5820 Change-Id: I629978684ba4d002c296d4dcfe434b09782db4b1 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2812698 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Jamie Madill 78dde332 2021-03-29T17:31:52 Move restricted traces to CIPD. All traces are now stored as DEPS entries in CIPD. The auto-generation script generates the DEPS entries. Note that we don't include DEPS in the list of generated outputs to simplify other rollers. Also we update auto-generation to include full sources list to allow 'gn analyze' to work successfully. Usees a trace fixture for common code. This will enable a more compact trace without as much repeated code. We must land a set of re-trace traces to avoid breakage. Also includes a python script for uploading new traces to CIPD. The script first checks if traces are already present in the cloud, and if so it skips the upload. It will take a while to complete as the number of traces grows larger as it takes a few seconds per trace. The traces in this patch are also re-traced to use the common fixture code instead of including duplicated code in each trace. They now form a simple common interface and the autogenerated cpp is now simply a list of properties. I've also updated the capture/replay tests to use the simpler common entry point integration. There is less auto-generated glue code now. We now use a new serialized string query extension instead of calling directly into ANGLE's internals. Also includes a docs update. The capture/replay sample is broken and we'll need to update it in a follow-up CL. Also includes a few necessary fixes to the retracing script. Bug: angleproject:5811 Change-Id: I977bc6dc56843c8966377fc445ae97e91e17319a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2797833 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Tim Van Patten <timvp@google.com>
Cody Northrop 4386840c 2021-03-19T16:54:41 Tests: Add android log library to traces This is required in order to call __android_log_print, which can be sprinkled into the trace for debugging. Bug: b/183165790 Change-Id: I717f2ac7809172f22b7badee6f1096394a02bc14 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2776553 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
Jamie Madill 98035e11 2020-11-09T17:55:39 Capture/Replay: Split into separate shared libaries. This will produce several smaller shared libs rather than one very large one. Involves moving the trace loader to its own shared module as well. Because the traces didn't have export labels on most of the affected functions I had to use a "force include" argument on the compiler. We can remove this once we re-capture. This is a first step towards testing one trace at a time on an Android device. Includes a complete set of new regenerated traces. Bug: angleproject:5133 Change-Id: If984de34af21fce48b0832401dbe5aa4b002ce95 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2506199 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Jamie Madill e77e3528 2020-10-29T16:55:06 Gold Tests: Include SHA1 files in trace inputs. This will force "GN analyze" to pick up changes in the gold tests when all that GN sees is a new SHA1 file. In effect a SHA1 change means all the sources in a trace have changed. Bug: chromium:1143507 Change-Id: Idf44045ebd5d2bda9380b339e95d336b6804ce8a Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2508530 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
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 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 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>