1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
Tracie - Mesa Traces Continuous Integration SystemHome of the Mesa trace testing effort. Traces definition fileThe trace definition file contains information about the git repo/commit to get the traces from, and a list of the traces to run along with their expected image checksums on each device. An example:
The traces-db entry can be absent, in which case it is assumed that the current directory is the traces-db directory. Traces that don't have an expectation for the current device are skipped during trace replay. Adding a new trace to the list involves commiting the trace to the
git repo and adding an entry to the Trace-db reposThe trace-db repos are assumed to be git repositories using LFS for their trace files. This is so that trace files can be potentially checked out and replayed individually, thus reducing storage requirements during CI runs. Enabling trace testing on a new deviceTo enable trace testing on a new device:
Trace filesTracie supports renderdoc (.rdc), apitrace (.trace) and gfxreconstruct (.gfxr) files. Trace files need to have the correct extension so that tracie can detect them properly. The trace files that are contained in public traces-db repositories must be legally redistributable. This is typically true for FOSS games and applications. Traces for proprietary games and application are typically not redistributable, unless specific redistribution rights have been granted by the publisher. Replaying tracesMesa traces CI uses a set of scripts to replay traces and check the output against reference checksums. The high level script tracie.sh accepts a traces definition file and the type of traces (apitrace/renderdoc/gfxreconstruct) to run:
tracie.sh copies produced artifacts to the
The At a lower level the dump_trace_images.py
script is called, which replays a trace, dumping a set of images in the
process. By default only the image corresponding to the last frame of
the trace is dumped, but this can be changed with the
Examples:
Running the replay scripts locallyIt's often useful, especially during development, to be able to run the scripts locally. Depending on the target 3D API, the scripts require a recent version of apitrace being in the path, and also the renderdoc python module being available, for GL traces. To ensure python3 can find the renderdoc python module you need to
set In the case of Vulkan traces, the scripts need a recent version of
gfxrecon-replay being in the path, and also the
To ensure that this layer can be found when running the trace you
need to set |