broadcom/ci: add ubsan jobs for broadcom drivers

Use Undefined Behaviour Sanitizer to detect issues in v3d/v3dv, as well
as in vc4.

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30880>
This commit is contained in:
Juan A. Suarez Romero 2024-08-20 17:59:19 +02:00 committed by Marge Bot
parent 37ee035e42
commit 45ada1c7fb
8 changed files with 126 additions and 0 deletions

View file

@ -1227,6 +1227,12 @@ asan-KHR-GLES2.core.internalformat.texture2d.depth_component_unsigned_int_depth_
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
# Already known failures
ubsan-KHR-GLES2.core.internalformat.texture2d.depth_component_unsigned_int_depth_component16,Fail
ubsan-dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail
ubsan-dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square,Fail
ubsan-dEQP-GLES2.functional.texture.wrap.clamp_clamp_nearest_npot_etc1,Fail
asan-dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail
arm32-dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_mirror_non_square,Fail
arm32-dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_clamp_non_square,Fail

View file

@ -599,3 +599,4 @@ dEQP-VK.draw.renderpass.non_line_with_params.vtx_lines_geom_points_mode_point_li
dEQP-VK.draw.renderpass.non_line_with_params.vtx_lines_geom_triangles_mode_fill_line_raster_smooth,Fail
dEQP-VK.draw.renderpass.non_line_with_params.vtx_lines_geom_triangles_mode_point_line_raster_smooth,Fail
ubsan-KHR-GL31.transform_feedback3.multiple_streams,Fail

View file

@ -316,3 +316,9 @@ asan-KHR-GL31.ext_texture_shadow_lod.texture.sampler2darrayshadow_bias_fragment
asan-KHR-GLES31.core.geometry_shader.adjacency.adjacency_indiced_triangle_strip
asan-KHR-GLES31.core.geometry_shader.api.fs_gs_draw_call
asan-KHR-GLES31.core.geometry_shader.linking.more_ACs_in_GS_than_supported
# Slow tests (> 1 minute to run)
ubsan-dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3x4_store_cols
ubsan-dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4_store_cols
ubsan-dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4_comp_access_store_cols
ubsan-dEQP-VK.ssbo.layout.random.16bit.all_shared_buffer.33

View file

@ -0,0 +1,27 @@
[[deqp]]
deqp = "/deqp-gles/modules/gles2/deqp-gles2"
caselists = ["/deqp-gles/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 = "ubsan-"
[[deqp]]
deqp = "/deqp-gles/external/openglcts/modules/glcts"
caselists = ["/deqp-gles/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 = "ubsan-"

View file

@ -0,0 +1,39 @@
[[deqp]]
deqp = "/deqp-gles/modules/gles31/deqp-gles31"
caselists = ["/deqp-gles/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 = "ubsan-"
[[deqp]]
deqp = "/deqp-gles/external/openglcts/modules/glcts"
caselists = [
"/deqp-gles/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 = "ubsan-"
[[deqp]]
deqp = "/deqp-gl/external/openglcts/modules/glcts"
caselists = ["/deqp-gl/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 = "ubsan-"

View file

@ -0,0 +1,6 @@
[[deqp]]
deqp = "/deqp-vk/external/vulkancts/modules/vulkan/deqp-vk"
caselists = ["/deqp-vk/mustpass/vk-main.txt"]
tests_per_group = 5000
renderer_check = "V3D 4.2.14"
prefix = "ubsan-"

View file

@ -178,6 +178,11 @@
- .broadcom-test:arm64
- .baremetal-arm64-asan-test
.broadcom-ubsan-test:arm64:
extends:
- .broadcom-test:arm64
- .baremetal-arm64-ubsan-test
.broadcom-test:arm32:
extends:
- .broadcom-test

View file

@ -43,6 +43,18 @@ vc4-rpi3-gl-asan:arm64:
DEQP_SUITE: broadcom-rpi3-asan
DEQP_FRACTION: 10
vc4-rpi3-gl-ubsan:arm64:
extends:
- .igalia-bcm2837-rpi-3-b
- .broadcom-ubsan-test:arm64
- .vc4-manual-rules
variables:
# UBSan is quite slow, so restrict to 1 job
FDO_CI_CONCURRENT: 1
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
DEQP_SUITE: broadcom-rpi3-ubsan
DEQP_FRACTION: 10
v3d-rpi4-gl:arm64:
extends:
- .igalia-bcm2711-rpi-4
@ -111,6 +123,18 @@ v3d-rpi4-gl-asan:arm64:
DEQP_SUITE: broadcom-rpi4-asan
DEQP_FRACTION: 30
v3d-rpi4-gl-ubsan:arm64:
extends:
- .igalia-bcm2711-rpi-4
- .broadcom-ubsan-test:arm64
- .v3d-manual-rules
variables:
# UBSan is quite slow, so restrict to 1 job
FDO_CI_CONCURRENT: 1
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
DEQP_SUITE: broadcom-rpi4-ubsan
DEQP_FRACTION: 30
v3dv-rpi4-vk:arm64:
extends:
- .igalia-bcm2711-rpi-4
@ -150,6 +174,18 @@ v3dv-rpi4-vk-asan:arm64:
DEQP_SUITE: broadcom-rpi4-vk-asan
DEQP_FRACTION: 200
v3dv-rpi4-vk-ubsan:arm64:
extends:
- .igalia-bcm2711-rpi-4
- .broadcom-ubsan-test:arm64
- .v3dv-manual-rules
variables:
# UBSan is quite slow, so restrict to 1 job
FDO_CI_CONCURRENT: 1
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
DEQP_SUITE: broadcom-rpi4-vk-ubsan
DEQP_FRACTION: 200
v3d-rpi5-gl:arm64:
extends:
- .igalia-bcm2712-rpi-5