From 03e457bb1aaf6a0962f7bf5903366ba65428025a Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Mon, 12 Jul 2021 16:07:07 +0100 Subject: [PATCH] ci/lavapipe: Add a fractional run with ASan This catches use-after-frees and buffer overflows, but not leaks (which we disable the checking for since the library gets dlclose()d and we end up with useless backtraces). Reviewed-by: Adam Jackson Acked-By: Mike Blumenkrantz Part-of: --- .../lavapipe/ci/deqp-lvp-asan-fails.txt | 4 ++ .../lavapipe/ci/deqp-lvp-asan-skips.txt | 5 +++ .../frontends/lavapipe/ci/gitlab-ci.yml | 40 +++++++++++++------ 3 files changed, 36 insertions(+), 13 deletions(-) create mode 100644 src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-fails.txt create mode 100644 src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-skips.txt diff --git a/src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-fails.txt b/src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-fails.txt new file mode 100644 index 00000000000..f97426b49b7 --- /dev/null +++ b/src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-fails.txt @@ -0,0 +1,4 @@ +dEQP-VK.glsl.builtin.precision.pow.highp.vec2,Fail +dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler2d_fixed_fragment,Fail +dEQP-VK.draw.multi_draw.mosaic.indexed_packed.max_draws.standard_stride.10_instances.offset_6,Crash +dEQP-VK.draw.multi_draw.overlapping.indexed_packed.one_draw.standard_stride.no_instances.offset_6,Crash diff --git a/src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-skips.txt b/src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-skips.txt new file mode 100644 index 00000000000..86fec295de4 --- /dev/null +++ b/src/gallium/frontends/lavapipe/ci/deqp-lvp-asan-skips.txt @@ -0,0 +1,5 @@ +# Lots of timeouts +dEQP-VK.texture.filtering.*.combinations.* +dEQP-VK.binding_model.buffer_device_address.set3.depth3.* +dEQP-VK.ssbo.layout.*instance_array +dEQP-VK.tessellation.invariance.* diff --git a/src/gallium/frontends/lavapipe/ci/gitlab-ci.yml b/src/gallium/frontends/lavapipe/ci/gitlab-ci.yml index 77920b2cbe2..4dad2d6c4b3 100644 --- a/src/gallium/frontends/lavapipe/ci/gitlab-ci.yml +++ b/src/gallium/frontends/lavapipe/ci/gitlab-ci.yml @@ -1,25 +1,39 @@ +.lavapipe-test: + stage: software-renderer + extends: + - .test-vk + - .lavapipe-rules + - .deqp-test-vk + variables: + GPU_VERSION: lvp + VK_DRIVER: lvp + DEQP_EXPECTED_RENDERER: llvmpipe + lavapipe-vk: stage: software-renderer extends: - - .test-vk - - .lavapipe-rules - - .deqp-test-vk + - .lavapipe-test variables: - GPU_VERSION: lvp - VK_DRIVER: lvp DEQP_FRACTION: 10 - DEQP_EXPECTED_RENDERER: llvmpipe lavapipe-nir-stress: - stage: software-renderer extends: - - .test-vk - - .lavapipe-rules - - .deqp-test-vk + - .lavapipe-test variables: - GPU_VERSION: lvp - VK_DRIVER: lvp DEQP_FRACTION: 100 - DEQP_EXPECTED_RENDERER: llvmpipe NIR_TEST_CLONE: "true" NIR_TEST_SERIALIZE: "true" + +lavapipe-vk-asan: + extends: + - .lavapipe-test + variables: + GPU_VERSION: lvp-asan + DEQP_FRACTION: 50 + TEST_LD_PRELOAD: libasan.so.6 + # Disable the leak checks, since the library gets dlclose()d and thus get + # totally useless leak reports. We can still catch buffer overflows. + ASAN_OPTIONS: "detect_leaks=0" + needs: + - debian/x86_test-vk + - debian-testing-asan