From b88c46fa11ae4903ec8fdad0d39727bb80d7c74b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 8 Jun 2020 14:51:59 -0700 Subject: [PATCH] ci: Add a freedreno a630 tracie run. This job runs in about one minute on the current set of traces, and has successfully revealed some bugs in our current rendering. Takes about 7 minutes currently. Reviewed-by: Tomeu Vizoso Part-of: --- .gitlab-ci.yml | 14 ++ .gitlab-ci/bare-metal/rootfs-setup.sh | 5 + .gitlab-ci/prepare-artifacts.sh | 6 +- .gitlab-ci/traces-baremetal.yml | 264 ++++++++++++++++++++++++++ .gitlab-ci/tracie-runner-gl.sh | 4 +- 5 files changed, 291 insertions(+), 2 deletions(-) create mode 100644 .gitlab-ci/traces-baremetal.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a59cfcd4458..4a75381fbd2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -976,6 +976,20 @@ arm64_a630_bypass: FD_MESA_DEBUG: nogmem DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt +arm64_a630_traces: + extends: + - arm64_a630_gles2 + variables: + BARE_METAL_TEST_SCRIPT: "/install/tracie-runner-gl.sh" + DEVICE_NAME: "freedreno-a630" + TRACIE_NO_UNIT_TESTS: 1 + # This lets us run several more traces which don't use any features we're + # missing. + MESA_GLSL_VERSION_OVERRIDE: "460" + MESA_GL_VERSION_OVERRIDE: "4.6" + rules: + - when: always + # Along with checking gmem path, check that we don't get obvious nir # validation failures (though it's too expensive to have it on for the # full CTS) diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh index ff86054c4e6..27735e2d32c 100644 --- a/.gitlab-ci/bare-metal/rootfs-setup.sh +++ b/.gitlab-ci/bare-metal/rootfs-setup.sh @@ -31,10 +31,15 @@ for var in \ DEQP_RUN_SUFFIX \ DEQP_SKIPS \ DEQP_VER \ + DEVICE_NAME \ FD_MESA_DEBUG \ FLAKES_CHANNEL \ IR3_SHADER_DEBUG \ + MESA_GL_VERSION_OVERRIDE \ + MESA_GLSL_VERSION_OVERRIDE \ + MESA_GLES_VERSION_OVERRIDE \ NIR_VALIDATE \ + TRACIE_NO_UNIT_TESTS \ TU_DEBUG \ VK_DRIVER \ ; do diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh index caeb8727160..4c230921715 100755 --- a/.gitlab-ci/prepare-artifacts.sh +++ b/.gitlab-ci/prepare-artifacts.sh @@ -26,7 +26,11 @@ cp VERSION install/ cp -Rp .gitlab-ci/bare-metal install/ cp -Rp .gitlab-ci/deqp* install/ cp -Rp .gitlab-ci/piglit install/ -cp -Rp .gitlab-ci/traces.yml install/ +if [ -d /lava-files ]; then + cp -Rp .gitlab-ci/traces-baremetal.yml install/traces.yml +else + cp -Rp .gitlab-ci/traces.yml install/ +fi cp -Rp .gitlab-ci/tracie install/ cp -Rp .gitlab-ci/tracie-runner-gl.sh install/ cp -Rp .gitlab-ci/tracie-runner-vk.sh install/ diff --git a/.gitlab-ci/traces-baremetal.yml b/.gitlab-ci/traces-baremetal.yml new file mode 100644 index 00000000000..ebc4a078b5d --- /dev/null +++ b/.gitlab-ci/traces-baremetal.yml @@ -0,0 +1,264 @@ +# bare-metal has traces-db baked into the container until we can sort +# out LFS caching, so we use a separate yml without the git repo +# declaration at the top. + +traces: +# This trace takes an egregious amount of time in replay (5 minutes) +# on freedreno for some reason. +# - path: glxgears/glxgears.trace +# expectations: +# - device: freedreno-a630 +# checksum: 5599d6e8e43384c59196b9c9b0161268 + - path: gputest/furmark.trace + expectations: + - device: freedreno-a630 + checksum: de674022e53fc9e0a9eb217f8bf0fe03 +# Note: Requires GL3.3 + - path: gputest/gimark.trace + expectations: + - device: freedreno-a630 + checksum: 2cae8e2104356e2b3017cbd953cf7b4a + - path: gputest/pixmark-julia-fp32.trace + expectations: + - device: freedreno-a630 + checksum: 4a02628395948c34d95d035a9c9735cb +# Note: Requires GL4 (fp64). +# - path: gputest/pixmark-julia-fp64.trace +# expectations: +# - device: freedreno-a630 +# checksum: 0 + - path: gputest/pixmark-piano.trace + expectations: + # One of the material textures appears brighter on freedreno than + # i965 in a way that is probably wrong. + - device: freedreno-a630 + checksum: 1aad6e1ffe23cae71acdb70695a6184b + - path: gputest/pixmark-volplosion.trace + expectations: + # Looks fine, but totally different shape from the rendering on i965. + - device: freedreno-a630 + checksum: 86d678c70b8adf27095ace1a6bbfe2d2 + - path: gputest/plot3d.trace + expectations: + # Actually incorrect rendering, it's supposed to be a mesh but + # we're not doing polygon modes apparently. + - device: freedreno-a630 + checksum: 8ec42780bfd9df16c49d876aa2f4cb8a +# Note: Requires GL4 for tess. + - path: gputest/tessmark.trace + expectations: + - device: freedreno-a630 + checksum: 985e231b58b7dc4b6da34ff32f8ebb82 + - path: gputest/triangle.trace + expectations: + - device: freedreno-a630 + checksum: 1dc6abfb1cfbc5b16adc6f4abf76eec8 + - path: humus/AmbientAperture.trace + expectations: + - device: freedreno-a630 + checksum: 531c54b2d1af670f698fb47d3fe321d4 + - path: humus/CelShading.trace + expectations: + - device: freedreno-a630 + checksum: b0ac8fb4b2b2268cfb87944730125886 + - path: humus/DynamicBranching3.trace + expectations: + - device: freedreno-a630 + checksum: 1f168d54278d95100ad0f9e94c2eb111 + - path: humus/HDR.trace + expectations: + - device: freedreno-a630 + checksum: 40387a4e89ef71c472a94413b175ff59 + - path: humus/Portals.trace + expectations: + # Bad rendering -- some sort of gap in the upper right of the image. + - device: freedreno-a630 + checksum: 1c7411cebed6ba0015aaef102539fc5a + - path: humus/RaytracedShadows.trace + expectations: + - device: freedreno-a630 + checksum: 992ffe18dfac0030368494b4367150f1 + - path: humus/VolumetricFogging2.trace + expectations: + - device: freedreno-a630 + checksum: 00670c5b830a7b8098fdcd347f7e0d6c + - path: pathfinder/canvas_moire.trace + expectations: + - device: freedreno-a630 + checksum: 0e32ca8fc815a7250f38a07faeafb21b + - path: pathfinder/canvas_text.trace + expectations: + - device: freedreno-a630 + checksum: 74129b650bd3ca806ff2dd46813ba6e6 + - path: pathfinder/demo.trace + expectations: + - device: freedreno-a630 + checksum: f6661ed4de9e0a444c6338ebd0cd3768 + - path: glmark2/buffer-columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map.rdc + expectations: + - device: freedreno-a630 + checksum: 1d04a606014f00663e0d078903d190c8 + - path: glmark2/buffer-columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata.rdc + expectations: + - device: freedreno-a630 + checksum: 6c00e3f05fab4b0df449451803b2749a + - path: glmark2/buffer-columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map.rdc + expectations: + - device: freedreno-a630 + checksum: 5706da41ae1877086e7ac2dc9af66e81 + - path: glmark2/bump-bump-render=height.rdc + expectations: + - device: freedreno-a630 + checksum: ed8ef7fcd88f20c5814bbdd95f62824a + - path: glmark2/bump-bump-render=high-poly.rdc + expectations: + - device: freedreno-a630 + checksum: 39e9e510819758910efc7b58bd08b981 + - path: glmark2/bump-bump-render=normals.rdc + expectations: + - device: freedreno-a630 + checksum: 3b270da5fcb3c1ee49c889644a5cc439 + - path: glmark2/conditionals-fragment-steps=0:vertex-steps=0.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: 4d654718f516adb891e6adef04924896 + - path: glmark2/conditionals-fragment-steps=5:vertex-steps=0.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: 7937cc1cb07b980da11a7c892a97bcdc + - path: glmark2/conditionals-fragment-steps=0:vertex-steps=5.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: 2977a3bb963096a4ed421dff7001d498 + - path: glmark2/desktop-blur-radius=5:effect=blur:passes=1:separable=true:windows=4.rdc + expectations: + - device: freedreno-a630 + checksum: d750bb0972cf14a4c0bc35896d87da16 + - path: glmark2/desktop-effect=shadow:windows=4.rdc + expectations: + - device: freedreno-a630 + checksum: 5ff3fe9ab8ad3a53ce4b8bfe7a61900a + - path: glmark2/effect2d-kernel=0,1,0;1,-4,1;0,1,0.rdc + expectations: + - device: freedreno-a630 + checksum: b38d1d3ebe30ea3df97713515dab3df0 + - path: glmark2/effect2d-kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;.rdc + expectations: + - device: freedreno-a630 + checksum: 2346a6597f4d1f20b493e8d6a8f7e592 + - path: glmark2/function-fragment-complexity=low:fragment-steps=5.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: d479556facd21af43d526b3cc95bed8b + - path: glmark2/function-fragment-complexity=medium:fragment-steps=5.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: 17895715bdb496faa73bba89b06347f6 + - path: glmark2/glmark2-build-use-vbo-false.rdc + expectations: + - device: freedreno-a630 + checksum: ecb647d14dae3876eb2a4282633d84f5 + - path: glmark2/glmark2-build-use-vbo-true.rdc + expectations: + - device: freedreno-a630 + checksum: b2608bba0f80ef93809e42399fb77124 + - path: glmark2/ideas-speed=duration.rdc + expectations: + - device: freedreno-a630 + checksum: 4f51ce282835db86fd8dc42b81755ef8 + - path: glmark2/jellyfish.rdc + expectations: + - device: freedreno-a630 + checksum: b50568db464034da63a536a9fe89499b + - path: glmark2/loop-fragment-loop=false:fragment-steps=5:vertex-steps=5.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: 52397a2278680b28ccfac4d8ba7340dd + - path: glmark2/loop-fragment-steps=5:fragment-uniform=false:vertex-steps=5.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: 45ce9b6056ec0e0e4276e7738eaa7fa1 + - path: glmark2/loop-fragment-steps=5:fragment-uniform=true:vertex-steps=5.rdc + expectations: + # Incorrect rendering, a bunch of the area is uniform gray when it should + # continue the pattern + - device: freedreno-a630 + checksum: ec5ea3eab5b54524748a0c883cc929d6 + - path: glmark2/pulsar-light=false:quads=5:texture=false.rdc + expectations: + - device: freedreno-a630 + checksum: e482fd686d39decbec52ada682d93890 + - path: glmark2/refract.rdc + expectations: + - device: freedreno-a630 + checksum: a7b60492d31ca93f1506dfa59b462570 + - path: glmark2/shading-shading=blinn-phong-inf.rdc + expectations: + - device: freedreno-a630 + checksum: 5a4aa8bebb324d0319ae1ebd95c7ce57 + - path: glmark2/shading-shading=cel.rdc + expectations: + - device: freedreno-a630 + checksum: 444fc5f23e3ce564d9945c20ed5d5e67 + - path: glmark2/shading-shading=gouraud.rdc + expectations: + - device: freedreno-a630 + checksum: fcc26fca31375b216382e69bc5f113fb + - path: glmark2/shading-shading=phong.rdc + # Some speckling on the main specular highlight that may just be + # mediump artifacts + expectations: + - device: freedreno-a630 + checksum: ba29b12892f5cb9f9c506db9cc76f987 + - path: glmark2/shadow.rdc + expectations: + - device: freedreno-a630 + checksum: d8b5931669733240797f1acf5d98db25 + # Very yellow terrain compared to i965, may just be mediump artifacts. + - path: glmark2/terrain.rdc + expectations: + - device: freedreno-a630 + checksum: 2368b3132a8768bc3a98b3fda0a4830e + - path: glmark2/texture-texture-filter=linear.rdc + expectations: + - device: freedreno-a630 + checksum: b4beeda82884d2e6de549b16cd9b90e8 + - path: glmark2/texture-texture-filter=mipmap.rdc + expectations: + - device: freedreno-a630 + checksum: 27e1cdb7e8f3f5bb6a61ebf02927d201 + - path: glmark2/texture-texture-filter=nearest.rdc + expectations: + - device: freedreno-a630 + checksum: 0b0114e48cf37efc43d8b27b926eaadf +# Throws errors on freedreno +# - path: supertuxkart/supertuxkart-antediluvian-abyss.rdc +# expectations: +# - device: freedreno-a630 +# checksum: 0 +# - path: supertuxkart/supertuxkart-menu.rdc +# expectations: +# - device: freedreno-a630 +# checksum: 0 +# - path: supertuxkart/supertuxkart-ravenbridge-mansion.rdc +# expectations: +# - device: freedreno-a630 +# checksum: 0 +# - path: godot/Material Testers.x86_64_2020.04.08_13.38_frame799.rdc +# expectations: +# - device: freedreno-a630 +# checksum: 0 diff --git a/.gitlab-ci/tracie-runner-gl.sh b/.gitlab-ci/tracie-runner-gl.sh index bd58390b7c2..6eb5baadb26 100755 --- a/.gitlab-ci/tracie-runner-gl.sh +++ b/.gitlab-ci/tracie-runner-gl.sh @@ -32,7 +32,9 @@ RESULTS=`pwd`/results mkdir -p $RESULTS # Perform a self-test to ensure tracie is working properly. -python3 -m pytest -v --pyargs $INSTALL/tracie/tests/test.py +if [ -z "$TRACIE_NO_UNIT_TESTS" ]; then + python3 -m pytest -v --pyargs $INSTALL/tracie/tests/test.py +fi if [ "$GALLIUM_DRIVER" = "virpipe" ]; then # tracie is to use virpipe, and virgl_test_server llvmpipe -- 2.30.2