From 3c61489a3e8b86d4bf6f2d70114d4c3635be9028 Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Tue, 23 Jul 2024 13:37:59 +0200 Subject: [PATCH] v3d/vc4/ci: add address sanitizer jobs This runs part of GL and Vulkan tests in vc4/v3d/v3dv with the address sanitizer enabled to detect memory issues and leaks. Reviewed-by: Eric Engestrom Signed-off-by: Juan A. Suarez Romero Part-of: --- src/broadcom/ci/broadcom-rpi3-fails.txt | 5 +++ src/broadcom/ci/broadcom-rpi4-fails.txt | 3 ++ src/broadcom/ci/broadcom-rpi4-skips.txt | 5 +++ src/broadcom/ci/deqp-broadcom-rpi3-asan.toml | 27 +++++++++++++ src/broadcom/ci/deqp-broadcom-rpi4-asan.toml | 39 +++++++++++++++++++ .../ci/deqp-broadcom-rpi4-vk-asan.toml | 6 +++ src/broadcom/ci/gitlab-ci-inc.yml | 5 +++ src/broadcom/ci/gitlab-ci.yml | 31 +++++++++++++++ 8 files changed, 121 insertions(+) create mode 100644 src/broadcom/ci/deqp-broadcom-rpi3-asan.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi4-asan.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi4-vk-asan.toml diff --git a/src/broadcom/ci/broadcom-rpi3-fails.txt b/src/broadcom/ci/broadcom-rpi3-fails.txt index 0270ed5b107..3c99b5de22d 100644 --- a/src/broadcom/ci/broadcom-rpi3-fails.txt +++ b/src/broadcom/ci/broadcom-rpi3-fails.txt @@ -1214,3 +1214,8 @@ arm32-dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat_non_sq arm32-dEQP-GLES2.functional.texture.wrap.clamp_clamp_nearest_npot_etc1,Fail arm32-dEQP-GLES2.functional.uniform_api.random.3,Fail arm32-dEQP-GLES2.functional.uniform_api.random.79,Fail + +# These are known failures +asan-KHR-GLES2.core.internalformat.texture2d.depth_component_unsigned_int_depth_component16,Fail +asan-dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square,Fail +asan-dEQP-GLES2.functional.texture.wrap.clamp_clamp_nearest_npot_etc1,Fail diff --git a/src/broadcom/ci/broadcom-rpi4-fails.txt b/src/broadcom/ci/broadcom-rpi4-fails.txt index 7a0ab9f3822..f662c7ceeb5 100644 --- a/src/broadcom/ci/broadcom-rpi4-fails.txt +++ b/src/broadcom/ci/broadcom-rpi4-fails.txt @@ -621,3 +621,6 @@ program@run kernel with max work item sizes,Fail # Failures from arm32 arm32-KHR-GL31.texture_size_promotion.functional,Fail + +# https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/931 +asan-spec@arb_texture_buffer_object@formats (vs- ext_gpu_shader4),Fail diff --git a/src/broadcom/ci/broadcom-rpi4-skips.txt b/src/broadcom/ci/broadcom-rpi4-skips.txt index 1a3b570f68b..a4652c07dd6 100644 --- a/src/broadcom/ci/broadcom-rpi4-skips.txt +++ b/src/broadcom/ci/broadcom-rpi4-skips.txt @@ -307,3 +307,8 @@ dEQP-VK.robustness.robustness2.* dEQP-VK.shader_object.rendering.* dEQP-VK.sparse_resources.* dEQP-VK.transform_feedback.* + +# These are leaks in Vulkan CTS +asan-KHR-GLES31.core.geometry_shader.input.gl_position_value +asan-KHR-GLES31.core.geometry_shader.primitive_counter.lines_to_points_rp +asan-KHR-GL31.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex diff --git a/src/broadcom/ci/deqp-broadcom-rpi3-asan.toml b/src/broadcom/ci/deqp-broadcom-rpi3-asan.toml new file mode 100644 index 00000000000..afb80848e46 --- /dev/null +++ b/src/broadcom/ci/deqp-broadcom-rpi3-asan.toml @@ -0,0 +1,27 @@ +[[deqp]] +deqp = "/deqp/modules/gles2/deqp-gles2" +caselists = ["/deqp/mustpass/gles2-main.txt"] +tests_per_group = 250 +deqp_args = [ + "--deqp-gl-config-name=rgba8888d24s8ms0", + "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", + "--deqp-surface-width=256", + "--deqp-visibility=hidden", +] +version_check = "GL ES 2.0.*git" +renderer_check = "VC4 V3D 2.1" +prefix = "asan-" + +[[deqp]] +deqp = "/deqp/external/openglcts/modules/glcts" +caselists = ["/deqp/mustpass/gles2-khr-main.txt"] +tests_per_group = 250 +deqp_args = [ + "--deqp-gl-config-name=rgba8888d24s8ms0", + "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", + "--deqp-surface-width=256", + "--deqp-visibility=hidden", +] +prefix = "asan-" diff --git a/src/broadcom/ci/deqp-broadcom-rpi4-asan.toml b/src/broadcom/ci/deqp-broadcom-rpi4-asan.toml new file mode 100644 index 00000000000..9695347c289 --- /dev/null +++ b/src/broadcom/ci/deqp-broadcom-rpi4-asan.toml @@ -0,0 +1,39 @@ +[[deqp]] +deqp = "/deqp/modules/gles31/deqp-gles31" +caselists = ["/deqp/mustpass/gles31-main.txt"] +deqp_args = [ + "--deqp-gl-config-name=rgba8888d24s8ms0", + "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", + "--deqp-surface-width=256", + "--deqp-visibility=hidden", +] +version_check = "GL ES 3.1.*git" +renderer_check = "V3D 4.2.14" +prefix = "asan-" + +[[deqp]] +deqp = "/deqp/external/openglcts/modules/glcts" +caselists = [ + "/deqp/mustpass/gles31-khr-main.txt", +] +deqp_args = [ + "--deqp-gl-config-name=rgba8888d24s8ms0", + "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", + "--deqp-surface-width=256", + "--deqp-visibility=hidden", +] +prefix = "asan-" + +[[deqp]] +deqp = "/deqp/external/openglcts/modules/glcts" +caselists = ["/deqp/mustpass/gl31-main.txt"] +deqp_args = [ + "--deqp-gl-config-name=rgba8888d24s8ms0", + "--deqp-surface-height=256", + "--deqp-surface-type=pbuffer", + "--deqp-surface-width=256", + "--deqp-visibility=hidden", +] +prefix = "asan-" diff --git a/src/broadcom/ci/deqp-broadcom-rpi4-vk-asan.toml b/src/broadcom/ci/deqp-broadcom-rpi4-vk-asan.toml new file mode 100644 index 00000000000..31102f0abf0 --- /dev/null +++ b/src/broadcom/ci/deqp-broadcom-rpi4-vk-asan.toml @@ -0,0 +1,6 @@ +[[deqp]] +deqp = "/deqp/external/vulkancts/modules/vulkan/deqp-vk" +caselists = ["/deqp/mustpass/vk-main.txt"] +tests_per_group = 5000 +renderer_check = "V3D 4.2.14" +prefix = "asan-" diff --git a/src/broadcom/ci/gitlab-ci-inc.yml b/src/broadcom/ci/gitlab-ci-inc.yml index 12b211b2690..3ffd86a2dbb 100644 --- a/src/broadcom/ci/gitlab-ci-inc.yml +++ b/src/broadcom/ci/gitlab-ci-inc.yml @@ -163,6 +163,11 @@ variables: BM_BOOTFS: /boot/raspberrypi_arm64 +.broadcom-asan-test:arm64: + extends: + - .broadcom-test:arm64 + - .baremetal-arm64-asan-test + .broadcom-test:arm32: extends: - .broadcom-test diff --git a/src/broadcom/ci/gitlab-ci.yml b/src/broadcom/ci/gitlab-ci.yml index 9305bc0d0fa..fe4920dff0b 100644 --- a/src/broadcom/ci/gitlab-ci.yml +++ b/src/broadcom/ci/gitlab-ci.yml @@ -32,6 +32,16 @@ vc4-rpi3-gl:arm32: variables: DEQP_SUITE: broadcom-rpi3-arm32 +vc4-rpi3-gl-asan:arm64: + extends: + - .igalia-bcm2837-rpi-3-b + - .broadcom-asan-test:arm64 + - .vc4-manual-rules + variables: + FDO_CI_CONCURRENT: 1 + HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" + DEQP_SUITE: broadcom-rpi3-asan + DEQP_FRACTION: 10 v3d-rpi4-gl:arm64: extends: @@ -90,6 +100,17 @@ v3d-rpi4-gl:arm32: variables: DEQP_SUITE: broadcom-rpi4-arm32 +v3d-rpi4-gl-asan:arm64: + extends: + - .igalia-bcm2711-rpi-4 + - .broadcom-asan-test:arm64 + - .v3d-manual-rules + variables: + FDO_CI_CONCURRENT: 1 + HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" + DEQP_SUITE: broadcom-rpi4-asan + DEQP_FRACTION: 30 + v3dv-rpi4-vk:arm64: extends: - .igalia-bcm2711-rpi-4 @@ -117,6 +138,16 @@ v3dv-rpi4-vk-full:arm64: TEST_PHASE_TIMEOUT: 110 DEQP_FRACTION: 1 +v3dv-rpi4-vk-asan:arm64: + extends: + - .igalia-bcm2711-rpi-4 + - .broadcom-asan-test:arm64 + - .v3dv-manual-rules + variables: + FDO_CI_CONCURRENT: 1 + HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" + DEQP_SUITE: broadcom-rpi4-vk-asan + DEQP_FRACTION: 200 v3d-rpi5-gl:arm64: extends: