traces: new yaml format
Why?
- it is much easier and cleaner to parse
- one simple command, as shown below, can update the checksum and labels
- we can semi-automate checksum updates
- we can skip marked traces depending on the scenario
New syntax (sample here: mesa!18163 (diffs) ):
traces:
behdad-glyphy/glyphy-v2.trace:
intel-tgl:
checksum: 5c7e2fc5961b43a18ea65523fe025b96
label: [slow, skip]
text: Horribly broken. It has to be fixed.
intel-wgl:
label: [crash]
normal/format.trace:
intel-whl:
checksum: c8c96a8cc167e0d07f889d7310316922
one-line/format.trace:
intel-whl: {checksum: c8c96a8cc167e0d07f889d7310316922}
Since we got rid of ugly arrays we can cleanly update yaml file and semi-automate checksum updates for developers. In the second phase, these changes will be offered by CI as a diff which can be applied on top of the developer's commit.
export TRACE=behdad-glyphy/glyphy-v2.trace; export PIGLIT_REPLAY_DEVICE_NAME=intel-tgl; export NEW_CHECKSUM=abcdef00
yq -Y '.traces."$TRACE"."$PIGLIT_REPLAY_DEVICE_NAME".checksum = "$NEW_CHECKSUM" | del(.traces."$TRACE"."$PIGLIT_REPLAY_DEVICE_NAME".label[] | select(. == "skip"))' traces-test.yml
Current set of labels:
-
skip
(impl.) -
hang
(hangs machine; for now same as skip) -
crash
(apitrace crashes; for now same as skip) -
fail
(various failures; for now same as skip) -
flakes
(nothing for now) -
no-perf
(no performance tracking, usually multiframe trace. Will be implemented in Mesa3D CI) -
broken
(renders, but output isn't satisfying, no handling yet) -
slow
(indicates that trace take too long) -
unsupported
(hardware is too old to run the trace)
TODO:
-
provide tool to automate conversion
Edited by David Heidelberg