util/capture/trace_fixture.cpp


Log

Author Commit Date CI Message
Roman Lavrov 4e073356 2023-04-13T15:16:53 Trace Interpreter: gzip cpp and run gold tests. New test step: angle_restricted_trace_gold_interpreted_tests similar to existing angle_restricted_trace_gold_tests but runs a subset of newest traces that have the right format. Currently there are 8 of them and the filter is hard-coded in test_suites.pyl. rise_of_empires can also be run interpreted but happened to flake during testing so it's not included for now. Trace cpp files are concatenated and gzipped as a build step producing gen/tracegz_{trace}.gz and these gz files are then distributed as part of the build --trace-interpreter flag changes from boolean to string to support: --trace-interpreter=gz: * this uses the gz file above * gold tests added in this CL use this option --trace-interpreter=c: * using uncompressed c/cpp file * existing angle_trace_interpreter_tests runs a retrace saving .c files and uses this option Bug: b/276742336 Change-Id: I69544f25bda873af191978195d02ffbdd34363c0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4424690 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Roman Lavrov <romanl@google.com>
Roman Lavrov 2c7f31af 2023-04-13T11:47:34 Trace Interpreter: Move to a shared library. Based on https://crrev.com/c/4178024 but does only one thing: makes trace interpreter a shared library (as if it was a compiled trace) I am not sure what impact this actually has on the TracePerfTest callbacks (mentioned in the CL above) as I see onEglMakeCurrent callback getting called without this CL as well. Anyways, this makes things a bit more consistent. * Gets rid of TraceReplayInterface * TraceInterpreter is now an implementation detail * Need to additionally pass list of trace files to TraceLibrary (new SetTraceInfo replay export) * GetResourceIDMapValue is just moved as is to the right lib Bug: b/276742336 Change-Id: I67ea9fbcb4f7db999ab71c8443ea91c5631df942 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4423869 Commit-Queue: Roman Lavrov <romanl@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Gert Wollny 4448ce5c 2023-02-09T17:48:40 Capture/Replay: Add fixture SetCurrentContextID This is needed for better context handling Bug: angleproject:7911 Change-Id: Ieccb0f9660a8d607fe2bcee87b7a9b4ff2e25a50 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4236543 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Trevor Black <vantablack@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: Ian Elliott <ianelliott@google.com>
Gert Wollny a52c0a6c 2023-02-06T16:01:27 Capture/Replay: Add and handle new resource type for EGLSync So far calls involving EGLSync were not tracking the actual sync objects, and this may lead to race conditions in multi-threaded and multi-context scenarios. This CL adds the type EGLSyncID and some specialized code handling of egl::Sync to distinguish EGLSync from the already existing GLSync objects in order to track them separately. Bug: angleproject:7911 Change-Id: I91b188a41069bc0620f51c55ee516d23b55bdd38 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4200095 Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill e960355a 2023-01-05T14:56:48 Trace Interpreter: Support DOTA underlords. Supports zero pointer parameters, which are used to indicate unwritten parameters. Bug: angleproject:7887 Change-Id: Ibee1d558567020eeeeb2ed6ac98f38cf985d87a5 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4140259 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill f7b5d5d1 2022-12-15T10:52:07 Capture/Replay: Remove inline variable declarations. This makes parsing easier for the "simplified C" interpreter. We introduce a resource ID buffer as a way to manage a list of resource IDs to replace the inline resource lists. Turns on the Among Us trace in the interpreter tests. Bug: angleproject:7775 Change-Id: I1bb9c0e9b087965a18691bc99b2e9947610b9eaf Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4128719 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill fdada9ee 2022-12-13T14:52:53 Re-land: "Make SyncIDs a packed type." This re-land fixes the sync map size tracking. This prepares syncs to use a simple resource map like other types, which will make life easier in the trace interpreter. Bug: angleproject:7775 Change-Id: If2114c51d5b68503890eacbf549182823667fedc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178012 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill 8971a592 2023-01-18T14:35:09 Revert "Make SyncIDs a packed type." This reverts commit 9de913077a5fcc3d2f2e327b56bbe30efe2fde96. Reason for revert: Fails win-trace, somewhat flakily. Original change's description: > Make SyncIDs a packed type. > > This prepares syncs to use a simple resource map like other > types, which will make life easier in the trace interpreter. > > Bug: angleproject:7775 > Change-Id: Ic2867f6133256f5ce2320eb2b322c1059266b201 > Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4103720 > Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> > Commit-Queue: Jamie Madill <jmadill@chromium.org> > Reviewed-by: Cody Northrop <cnorthrop@google.com> Bug: angleproject:7775 Change-Id: I29534b14c973fa34a4cb7457d534cd6156f33cd2 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4178010 Auto-Submit: Jamie Madill <jmadill@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Jamie Madill 9de91307 2022-12-13T14:52:53 Make SyncIDs a packed type. This prepares syncs to use a simple resource map like other types, which will make life easier in the trace interpreter. Bug: angleproject:7775 Change-Id: Ic2867f6133256f5ce2320eb2b322c1059266b201 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4103720 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 9c1598af 2023-01-06T14:42:59 Trace Replay: Fix UBO access in the trace fixture. This bug was from the rework to use encapsulated functions. Bug: angleproject:7731 Bug: b/262815739 Change-Id: I3965c04439c8f4c2e67708bd2536b8beb3270880 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4144178 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Roman Lavrov <romanl@google.com>
Gert Wollny 27561f04 2022-10-30T09:38:00 Capture/Replay: Emit always gContextMap2 when capturing traces Bug: angleproject:7800 Change-Id: I12fc39d709527865a9b248a00c95d281c4e4d743 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3993317 Reviewed-by: Cody Northrop <cnorthrop@google.com> Commit-Queue: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>
Roman Lavrov 6bef0630 2022-10-24T10:46:09 Exit on nullptr returned from decompress callback. Decompression failures appear to happen (very) occasionally, resulting in a weird stack trace later down the road. Bug: None Change-Id: I12780f462c7d1a141d0841e1e07acb2d282077e4 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3970768 Auto-Submit: Roman Lavrov <romanl@google.com> Commit-Queue: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Reviewed-by: Cody Northrop <cnorthrop@google.com>
Jamie Madill 70ca7bd8 2022-10-19T12:21:08 Capture/Replay: Make fixture work with C and C++. This prepares the trace fixture for simplified C source replays. Bug: angleproject:7731 Change-Id: I1ac55ec95838ece2deb81cca2a5bec2a20d90bd7 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3966532 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
Jamie Madill d25911de 2022-10-10T20:59:53 Capture/Replay: Move trace fixture into util/ This will allow us to cleanly import the fixture headers outside of libANGLE. We'll need to call into the trace fixture in the trace interpreter, which will be in util/. Bug: angleproject:7752 Change-Id: I3438989db8482924272c69e78d7ac5702e510648 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3963363 Reviewed-by: Cody Northrop <cnorthrop@google.com> Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>