From 2ee4da8677f9833dc7adde1750dca528ac0b8caa Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Mon, 9 Mar 2026 13:27:29 -0700 Subject: [PATCH] ci/llvmpipe: Use anholt's new GPU trace snapshot comparison tool. The new tool has much better image diffing presentation (thanks to Danilo's work on turnip's private trace CI), better performance, flake checking within a single run, parallelized downloads along with replays, and ability to cache downloaded files to improve runtime, and system monitoring (for debugging OOM-related slowdowns). ./bin/update_traces_checksum.sh still updates based on the output of a CI run, but you can also apply a patch file that the tool generates, if you do offline runs using your traces.toml. New traces being replayed, in less overall runtime (2 minutes instead of 3): - minetest/minetest-high-v3.trace (new version, not the old flaky one) - neverball/neverball-v2.trace - ror/ror-default.trace - supertuxkart/supertuxkart-mansion-egl-gles-v2.b.trace - valve/counterstrike-v2.trace - valve/portal-2-v2.trace - xonotic/xonotic-keybench-high-v2.trace Part-of: --- src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml | 18 +- .../drivers/llvmpipe/ci/traces-llvmpipe.toml | 241 ++++++++++++++++++ .../drivers/llvmpipe/ci/traces-llvmpipe.yml | 161 ------------ 3 files changed, 250 insertions(+), 170 deletions(-) create mode 100644 src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.toml delete mode 100644 src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml diff --git a/src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml b/src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml index 36730140016..f12a8c808a1 100644 --- a/src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml +++ b/src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml @@ -17,17 +17,17 @@ llvmpipe-piglit-rusticl: llvmpipe-traces: extends: - .test-gl - - .piglit-traces-test + - .traces-test - .llvmpipe-test variables: - EGL_PLATFORM: "surfaceless" - PIGLIT_TRACES_FILE: traces-llvmpipe.yml - PIGLIT_REPLAY_DEVICE_NAME: "gl-vmware-llvmpipe" - script: - - section_start variables "Variables passed through:" - - filter_env_vars - - section_end variables - - $HWCI_TEST_SCRIPT + REPLAY_CONFIG: traces-llvmpipe.toml + script: | + export LD_LIBRARY_PATH="$CI_PROJECT_DIR/install/lib" + export LIBGL_DRIVERS_PATH="$CI_PROJECT_DIR/install/lib/dri" + section_start weston "weston: prepare" + . "$CI_PROJECT_DIR/install/common/weston.sh" + section_end weston + $HWCI_TEST_SCRIPT llvmpipe: variables: diff --git a/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.toml b/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.toml new file mode 100644 index 00000000000..92bde0e31b5 --- /dev/null +++ b/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.toml @@ -0,0 +1,241 @@ +[traces_db] +download_url = "https://s3.freedesktop.org/mesa-tracie-public/" + +# 0ad: 60s timeout + +[[traces]] +path = "bgfx/01-cubes.rdc" +devices = { llvmpipe = { checksum = "e695d7c64e60a17c14c3126c09517d7f4bf81aa1463079f405c351c7f89b49f1" } } + +[[traces]] +path = "bgfx/02-metaballs.rdc" +devices = { llvmpipe = { checksum = "29ea163b02e1ff5ab953f8db7a2788217081d2d11ec56d68181d9eb7b9441645" } } + +[[traces]] +path = "bgfx/03-raymarch.rdc" +devices = { llvmpipe = { checksum = "9fcedebc4ec7cdc77376b1f006c9c86755c980325ff8251b1ba8b48dab8ba446" } } + +[[traces]] +path = "bgfx/04-mesh.rdc" +devices = { llvmpipe = { checksum = "473929254cd947b960c9d8fda26dbaaa34a3d23aec3caeb38389925b367b0c02" } } + +[[traces]] +path = "bgfx/05-instancing.rdc" +devices = { llvmpipe = { checksum = "3c288b5749d21059f05ad061f6430287ac12e3561869223aa83eb0b20def5683" } } + +[[traces]] +path = "bgfx/06-bump.rdc" +devices = { llvmpipe = { checksum = "121d05a972f61b65952bdcdb060af6ce45b4f69da7a66027762099a0741178e2" } } + +[[traces]] +path = "bgfx/07-callback.rdc" +devices = { llvmpipe = { checksum = "fefa0dc5f53ad8c73e4133641c97cd52246b147f54b6bb385922e301461f948d" } } + +[[traces]] +path = "bgfx/09-hdr.rdc" +devices = { llvmpipe = { checksum = "01a652a0aa4fdea09ef6930d53179f8e6d68136df344798108c850fbbaa59700" } } + +[[traces]] +path = "bgfx/10-font.rdc" +devices = { llvmpipe = { checksum = "014ebfd5b9dcc5212457d6207a30ede7c2664d60ddfc863c87b82883c5385bfc" } } + +[[traces]] +path = "bgfx/11-fontsdf.rdc" +devices = { llvmpipe = { checksum = "6b9cb345cf1b92ec6169c61ff13b9b0c2cfd824868a4b443e394bd05fbeddef4" } } + +[[traces]] +path = "bgfx/12-lod.rdc" +devices = { llvmpipe = { checksum = "857b0eb4e7486f05f76f351f7706afe06abec4775686d98b4b1cbe627e251098" } } + +[[traces]] +path = "bgfx/13-stencil.rdc" +devices = { llvmpipe = { checksum = "1b6ccbacc3bb585b1ee17c039ad4f4c97cec90d15220f4155e4df9ec0fc89bd7" } } + +[[traces]] +path = "bgfx/14-shadowvolumes.rdc" +devices = { llvmpipe = { checksum = "126f31705ac623d6f1a9e78c89d949ce5e11f29620e65d6b58ad3d8bea2da9a8" } } + +[[traces]] +path = "bgfx/15-shadowmaps-simple.rdc" +devices = { llvmpipe = { checksum = "d1a030b855416908231405e4843010e27fc6fd5bfa0083e1b8651e5ca0805e4c" } } + +[[traces]] +path = "bgfx/16-shadowmaps.rdc" +devices = { llvmpipe = { checksum = "e1ad72d1cd637f7eb10dd8062da5e4d2504b7aaff42d3dafb2278665199ef11a" } } + +[[traces]] +path = "bgfx/18-ibl.rdc" +devices = { llvmpipe = { checksum = "abc79df2699886ea79ca5b9c180cd8094cef0e3894f974105db2718b30e00f12" } } + +[[traces]] +path = "bgfx/19-oit.rdc" +devices = { llvmpipe = { checksum = "3043a995c3a0d09964bfce87fc7e088d381b4dfbbe3df7f51113904b10f5059e" } } + +[[traces]] +path = "bgfx/20-nanosvg.rdc" +devices = { llvmpipe = { checksum = "1ee05b8709fe458c09bf81816206ac65f371ff2c92ede63ee3589a045a3dcae8" } } + +[[traces]] +path = "bgfx/23-vectordisplay.rdc" +devices = { llvmpipe = { checksum = "42f32c987576e9b914842ecc1924276da65a4d83926c7a85b589c35bbb3c0b03" } } + +[[traces]] +path = "bgfx/26-occlusion.rdc" +devices = { llvmpipe = { checksum = "86d0f3aa228b87c2c445e634c2e99428211101556608c82eb4b98be64ad2f0ad" } } + +[[traces]] +path = "bgfx/28-wireframe.rdc" +devices = { llvmpipe = { checksum = "da9951fa03e3dbba6c9e3d585161fbf0f2c7af13d4d0fd9df40fc89a6b7f1734" } } + +[[traces]] +path = "bgfx/29-debugdraw.rdc" +devices = { llvmpipe = { checksum = "abb32149b7b48d4cb79fe8bd98d8eccf203d816d673b1c458d829f27124eaab2" } } + +[[traces]] +path = "bgfx/31-rsm.rdc" +devices = { llvmpipe = { checksum = "23682e466062756ad3e12018da66c4f8c90e2859efb8fb9e217102f16015457a" } } + +[[traces]] +path = "bgfx/32-particles.rdc" +devices = { llvmpipe = { checksum = "c4d7ebc853e71a1acc63ce772fdb26e50f6cc5f8299613b8e515f55526bac25e" } } + +[[traces]] +path = "bgfx/33-pom.rdc" +devices = { llvmpipe = { checksum = "1ab480869bb428adf2440f92f164aa830439fc9e846056f3abbdc09e8460b053" } } + +[[traces]] +path = "bgfx/34-mvs.rdc" +devices = { llvmpipe = { checksum = "94f1ed204c64bf0ab97439d93a413e66dd14db0686a97cf1c3db8b6d37df8361" } } + +[[traces]] +path = "bgfx/35-dynamic.rdc" +devices = { llvmpipe = { checksum = "fa161734c0e1908266f6761a603c1b333861520e73a1a6a027860f35277b12c1" } } + +[[traces]] +path = "bgfx/36-sky.rdc" +devices = { llvmpipe = { checksum = "672ac3d87243505450257487e2bfbf74adfce4208175d3919af699d275c5120a" } } + +[[traces]] +path = "bgfx/37-gpudrivenrendering.rdc" +devices = { llvmpipe = { checksum = "508f2052a6ff7f10e0e7997c822e1547cbe205e95177ecdcd0021b46989c44d6" } } + +[[traces]] +path = "bgfx/38-bloom.rdc" +devices = { llvmpipe = { checksum = "0672008b71d82832bb0df7f074cb970895c1748599d4a7a6c4ec3701f8aa598c" } } + +[[traces]] +path = "bgfx/39-assao.rdc" +devices = { llvmpipe = { checksum = "190eab6b9b68609fd831d38ec12c5807da7338e17779c3d0cbf784376cae25cd" } } + +[[traces]] +path = "bgfx/40-svt.rdc" +devices = { llvmpipe = { checksum = "44864bc7327d522269730b417c44703b1d23b09341c10322d2e59cdc88adc9b8" } } + +# blender/blender-demo-cube_diorama.trace: not loopable, and all the setup time for flake checking pushes us over 60s. +# blender/blender-demo-ellie_pose.trace: flaky rendering, even non-looped: sometimes a dialog is rendered on top and sometimes not. + +# freedoom is GL 4.6 + +[[traces]] +path = "glxgears/glxgears-2-v2.trace" +devices = { llvmpipe = { checksum = "bab025069d7e1f559dc5b5f6a304272323cb8a9312c05f523097dddde4d09a10" } } + +# godot-thrive looks uninteresting +# godot-tps-gles3-high.trace is too slow (70s) + +[[traces]] +path = "gputest/furmark-v2.trace" +devices = { llvmpipe = { checksum = "3b9bda909593ad4e31eaacd76c343ab105c5a793f6d6314b1213983e71f0cc19" } } + +[[traces]] +path = "gputest/triangle-v2.trace" +devices = { llvmpipe = { checksum = "83fd0393efbab758382d87e13d75fa55a31059fb4f835cc3a766cfc68bf3bc90" } } + +[[traces]] +path = "humus/Portals-v2.trace" +devices = { llvmpipe = { checksum = "0b179d1754f3311ee8c86677c40c5b7d46bd6901a92db65a87e0d443fe61b038" } } + +[[traces]] +path = "jvgs/jvgs-d27fb67-v2.trace" +devices = { llvmpipe = { checksum = "a941ea07bdcfb11328a39b2f0a940269460d2d06f6cf2466196f02b3a06c5ac0" } } + +# libgdx/shattered-pixel-dungeon-default.trace replays incorrectly + +[[traces]] +path = "minetest/minetest-high-v3.trace" +devices = { llvmpipe = { checksum = "6f5b3f7159563f8006adef16c6afa052801fe7d0b6503c0265d7a060d0bf2b18" } } + +# nheko/nheko-colors.trace: 380784 glXMakeContextCurrent() during the trace's teardown fails + +[[traces]] +path = "neverball/neverball-v2.trace" +nonloopable = true +devices = { llvmpipe = { checksum = "66d56cb8ce7f27c14c4ef671b600378b6f66f223853d24ec1c58d44ee4714850" } } + +[[traces]] +path = "pathfinder/demo-v2.trace" +devices = { llvmpipe = { checksum = "0bb93fcc49580fd320dab47533b16a31677f1dd40a4ce932ea0b8028041ad071" } } + +[[traces]] +path = "paraview/pv-manyspheres-v2.trace" +devices = { llvmpipe = { checksum = "55f338fdccf5552b1aa8b786a3114ab782b6c10419070fd186e32748cc4f48eb" } } + +[[traces]] +path = "paraview/pv-waveletcontour-v2.trace" +devices = { llvmpipe = { checksum = "284343277c251975acc8a190057058c4a32a1e376586f8cb4d085cf0dc39c4c5" } } + +[[traces]] +path = "paraview/pv-waveletvolume-v2.trace" +devices = { llvmpipe = { checksum = "cf96261229546c12becdaffc38d013bd1293f6be0602da7c14e6223223f7c6c0" } } + +[[traces]] +path = "pathfinder/canvas_moire-v2.trace" +devices = { llvmpipe = { checksum = "b5e568c686b1bf50052546807d794110d5131b8c2fa48a4fe482e1d57e046bb3" } } + +[[traces]] +path = "pathfinder/canvas_text_v2-v2.trace" +devices = { llvmpipe = { checksum = "f0b75a40185b778e533c4a0d31ee151b98adb5d7ea387bc5db3851258289de8e" } } + +# pioneer/pioneer.trace: apitrace generates GL errors trying to capture the snapshot from a multisample FBO. + +[[traces]] +path = "ror/ror-default.trace" +devices = { llvmpipe = { checksum = "87a11302455eaeba643795aec9f410d5bb7e01465d356aa86972b990a6cf5af0" } } + +[[traces]] +path = "supertuxkart/supertuxkart-antediluvian-abyss.rdc" +devices = { llvmpipe = { checksum = "7e6955f1a1d016c7c0628660e3204b25f147c54ca80d8a28a6eb1482025c5f7f" } } + +[[traces]] +path = "supertuxkart/supertuxkart-mansion-egl-gles-v2.trace" +devices = { llvmpipe = { checksum = "c1745df637c0e8a52842f17a7761d7c49a95b1952ba630df8daac7f3261cf9c8" } } + +[[traces]] +path = "supertuxkart/supertuxkart-menu.rdc" +devices = { llvmpipe = { checksum = "e1ae4dc9376d2fceb2a8d740529638697193f3ad855b660239ac8405baa58007" } } + +[[traces]] +path = "supertuxkart/supertuxkart-ravenbridge-mansion.rdc" +devices = { llvmpipe = { checksum = "e24faa84c7be25876719f3ff48e2c65642ce243ab93659f620e279d1981c8dcf" } } + +# thedarkmod/thedarkmod.trace: Basically black rendering, probably from a bad trim +# unvanquished/unvanquished-lowest.trace: Requires GL 4.6, and doesn't render correctly even with version override +# unvanquished/unvanquished-ultra.trace: Requires GL 4.6, and doesn't render correctly even with version override + +# valve/counterstrike-source-v2.trace: 20s + +[[traces]] +path = "valve/counterstrike-v2.trace" +devices = { llvmpipe = { checksum = "b3f44f2dbbbaebe12e4fc60eb12b51effaaa36aaf42df21ddcddc3ae97629f05" } } + +[[traces]] +path = "valve/portal-2-v2.trace" +devices = { llvmpipe = { checksum = "dd13112c3325f5c46976e0f74981b363a6fd6e92e03916c3d0d4007aa535c82b" } } + +[[traces]] +path = "warzone2100/warzone2100-default.trace" +devices = { llvmpipe = { checksum = "caa0390b7efefa36073a24c46b51e2dd841907dc82e56e2e6d0dc1b1a68e192c" } } + +[[traces]] +path = "xonotic/xonotic-keybench-high-v2.trace" +devices = { llvmpipe = { checksum = "573c72d2bb4281a76ab2e9946fc6b9fac684000899a3901091e9bb896290d48e" } } diff --git a/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml b/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml deleted file mode 100644 index b799bdfd030..00000000000 --- a/src/gallium/drivers/llvmpipe/ci/traces-llvmpipe.yml +++ /dev/null @@ -1,161 +0,0 @@ -%YAML 1.2 ---- -traces-db: - download-url: https://s3.freedesktop.org/mesa-tracie-public/ - -traces: - 0ad/0ad-v2.trace: - gl-vmware-llvmpipe: - checksum: 4932ed77418af299e1932af4e2097ce8 - bgfx/01-cubes.rdc: - gl-vmware-llvmpipe: - checksum: 5c658fbcbf9cad83f7f73e37e9f8e091 - bgfx/02-metaballs.rdc: - gl-vmware-llvmpipe: - checksum: 69a8211d7bbcaf953e66751bced99b46 - bgfx/03-raymarch.rdc: - gl-vmware-llvmpipe: - checksum: c01f3ba463f8b32176cb1d8ebfcbc653 - bgfx/04-mesh.rdc: - gl-vmware-llvmpipe: - checksum: 31a283a27a25a652c41dc27fa151ae0d - bgfx/05-instancing.rdc: - gl-vmware-llvmpipe: - checksum: 1a4288a9cad7833b109ab9f085e83f84 - bgfx/06-bump.rdc: - gl-vmware-llvmpipe: - checksum: fae4c775e77135c71446ab3162013b91 - bgfx/07-callback.rdc: - gl-vmware-llvmpipe: - checksum: 656bd98145216d2e6ecf2e030bd4e594 - bgfx/09-hdr.rdc: - gl-vmware-llvmpipe: - checksum: 3b7085812d68e686fc4209fd27794ec0 - bgfx/10-font.rdc: - gl-vmware-llvmpipe: - checksum: f4be268e99b979dbd8439934ba1bdd1f - bgfx/11-fontsdf.rdc: - gl-vmware-llvmpipe: - checksum: 5cd7d30781fa428930e66dbfccbed20b - bgfx/12-lod.rdc: - gl-vmware-llvmpipe: - checksum: 4bed0c30a5b49d3c4d1e5cf1b9387510 - bgfx/13-stencil.rdc: - gl-vmware-llvmpipe: - checksum: e6e5d476c4dd85af32ed030416310ca1 - bgfx/14-shadowvolumes.rdc: - gl-vmware-llvmpipe: - checksum: d7fe5f2f1ec46c1cf0c90a2140abf17b - bgfx/15-shadowmaps-simple.rdc: - gl-vmware-llvmpipe: - checksum: dd3706f2ed90077b83b0944265238196 - bgfx/16-shadowmaps.rdc: - gl-vmware-llvmpipe: - checksum: 29ae3a9a527ac0e1c9ca2b9ce73e4958 - bgfx/18-ibl.rdc: - gl-vmware-llvmpipe: - checksum: 7002dab37622f11682313980315a8cb2 - bgfx/19-oit.rdc: - gl-vmware-llvmpipe: - checksum: ff75ff58092975a8056663ea056701c2 - bgfx/20-nanosvg.rdc: - gl-vmware-llvmpipe: - checksum: 0b0e6439b2bb5c415c05a79bb6e09ae4 - bgfx/23-vectordisplay.rdc: - gl-vmware-llvmpipe: - checksum: e814d057979ba473dd5a61930a838dd3 - bgfx/26-occlusion.rdc: - gl-vmware-llvmpipe: - checksum: fd0f8e4380890f86a80dbbd69250fdab - bgfx/28-wireframe.rdc: - gl-vmware-llvmpipe: - checksum: 2555acf3d2c3684712a87260f298017a - bgfx/29-debugdraw.rdc: - gl-vmware-llvmpipe: - checksum: a9ec3f64f48975dd3cb84fc22546bcee - bgfx/31-rsm.rdc: - gl-vmware-llvmpipe: - checksum: e4e8c3a42b21b3cd14d8b08d7458a18d - bgfx/32-particles.rdc: - gl-vmware-llvmpipe: - checksum: a8daddc674c11218d58a31ef1c7ea1ef - bgfx/33-pom.rdc: - gl-vmware-llvmpipe: - checksum: 41582534ba462ddf801c31496cc98ada - bgfx/34-mvs.rdc: - gl-vmware-llvmpipe: - checksum: 5dac3ddb07ed9382aaec7e8d397cfe15 - bgfx/35-dynamic.rdc: - gl-vmware-llvmpipe: - checksum: 42bcf360b1293a99ceae2cdb2dc66e78 - bgfx/36-sky.rdc: - gl-vmware-llvmpipe: - checksum: a66c66efc9d2d7a735bbfe396a6a9f84 - bgfx/37-gpudrivenrendering.rdc: - gl-vmware-llvmpipe: - checksum: ffd07f31c98b288c83ecf1f68cbb9983 - bgfx/38-bloom.rdc: - gl-vmware-llvmpipe: - checksum: 5210ee03ec03e487a3e0cb3a404725e3 - bgfx/39-assao.rdc: - gl-vmware-llvmpipe: - checksum: ee937865ba5a5f188aca79f3c790ca2c - bgfx/40-svt.rdc: - gl-vmware-llvmpipe: - checksum: b6fbcee2a6400c8f8d619509f1b72370 - glxgears/glxgears-2-v2.trace: - gl-vmware-llvmpipe: - checksum: f8eba0fec6e3e0af9cb09844bc73bdc8 - gputest/furmark-v2.trace: - gl-vmware-llvmpipe: - checksum: 6114cac4fb7597b46db1687cba6f0f4b - gputest/triangle-v2.trace: - gl-vmware-llvmpipe: - checksum: b1a1224b949c3ea133e7d2a06b8d294f - humus/Portals-v2.trace: - gl-vmware-llvmpipe: - checksum: 0d80fe424c1b6eea645e9d38f8b8edd6 - jvgs/jvgs-d27fb67-v2.trace: - gl-vmware-llvmpipe: - checksum: e18495de70159dd2a4b49aba0bbb6521 - pathfinder/demo-v2.trace: - gl-vmware-llvmpipe: - checksum: 4b2392b7fe8d5fa32140a1e3669eb9ef - paraview/pv-manyspheres-v2.trace: - gl-vmware-llvmpipe: - checksum: df1fa4eca62eb274ec0c86bdb89b18cb - paraview/pv-waveletcontour-v2.trace: - gl-vmware-llvmpipe: - checksum: 43bf7fac2dec13c80a7db2812d8958d1 - paraview/pv-waveletvolume-v2.trace: - gl-vmware-llvmpipe: - checksum: 67161dca3527e5769bc02d84bb9a7bce - pathfinder/canvas_moire-v2.trace: - gl-vmware-llvmpipe: - checksum: dc1be5c4c8ebaa76781339cc0f375c64 - pathfinder/canvas_text_v2-v2.trace: - gl-vmware-llvmpipe: - checksum: e56fe54e556ca30ce20bc7b883628730 - ror/ror-default.trace: - gl-vmware-llvmpipe: - label: [skip, slow] - nheko/nheko-colors.trace: - gl-vmware-llvmpipe: - checksum: 4544d6bbbba3307f41ef20692b600781 - blender/blender-demo-cube_diorama.trace: - gl-vmware-llvmpipe: - label: [skip, broken] - text: GL_INVALID_OPERATION, incompletely rendered image - blender/blender-demo-ellie_pose.trace: - gl-vmware-llvmpipe: - label: [skip, broken] - text: missing background, error Too many compute shader storage blocks (9/8) - unvanquished/unvanquished-lowest.trace: - gl-vmware-llvmpipe: - label: [unsupported] - unvanquished/unvanquished-ultra.trace: - gl-vmware-llvmpipe: - label: [unsupported] - warzone2100/warzone2100-default.trace: - gl-vmware-llvmpipe: - checksum: 360753580e2ca8d4dc1d8d27c9f50750