Mesa (master): ci: Add a fractional deqp run of softpipe with asan enabled.
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jan 25 19:20:56 UTC 2021
Module: Mesa
Branch: master
Commit: f180bf3e032264e10936eb64dede9d15ce785511
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f180bf3e032264e10936eb64dede9d15ce785511
Author: Eric Anholt <eric at anholt.net>
Date: Thu Jan 14 09:56:52 2021 -0800
ci: Add a fractional deqp run of softpipe with asan enabled.
This should help us avoid landing memory leaks (and some buffer overflows)
throughout the GL stack. I put the asan lib in x86_test-base because
we'll want asan for lavapipe, too.
This requires keeping debug symbols for the asan drivers in the artifacts,
as otherwise you can't do much with the backtraces it produces.
Closes: #3726
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8530>
---
.gitlab-ci.yml | 18 ++++-
.gitlab-ci/container/x86_test-base.sh | 1 +
.gitlab-ci/deqp-runner.sh | 7 ++
.gitlab-ci/deqp-softpipe-asan-fails.txt | 135 ++++++++++++++++++++++++++++++++
.gitlab-ci/prepare-artifacts.sh | 4 +-
5 files changed, 161 insertions(+), 4 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f094b3b244c..43cb49a53d2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -346,7 +346,7 @@ android_build:
x86_test-base:
extends: x86_build-base
variables:
- MESA_IMAGE_TAG: &x86_test-base "2020-12-17-install-ci-fairy"
+ MESA_IMAGE_TAG: &x86_test-base "2020-01-14-asan"
.use-x86_test-base:
extends:
@@ -362,13 +362,13 @@ x86_test-base:
x86_test-gl:
extends: .use-x86_test-base
variables:
- MESA_IMAGE_TAG: &x86_test-gl "2020-01-13-piglit"
+ MESA_IMAGE_TAG: &x86_test-gl "2020-01-14-asan"
# Debian 10 based x86 test image for VK
x86_test-vk:
extends: .use-x86_test-base
variables:
- MESA_IMAGE_TAG: &x86_test-vk "2020-01-13-piglit"
+ MESA_IMAGE_TAG: &x86_test-vk "2020-01-14-asan"
# Debian 10 based ARM build image
arm_build:
@@ -607,6 +607,7 @@ meson-testing-asan:
EXTRA_OPTION: >
-D b_sanitize=address
UPLOAD_FOR_LAVA: ""
+ ARTIFACTS_DEBUG_SYMBOLS: 1
meson-clover-testing:
extends:
@@ -1235,6 +1236,17 @@ softpipe-gles31:
DEQP_VER: gles31
extends: softpipe-gles2
+softpipe-asan-gles31:
+ variables:
+ GPU_VERSION: softpipe-asan
+ DEQP_FRACTION: 10
+ DEQP_VER: gles31
+ TEST_LD_PRELOAD: libasan.so.5
+ extends: softpipe-gles2
+ needs:
+ - x86_test-gl
+ - meson-testing-asan
+
softpipe-piglit-quick:
extends:
- .piglit-test
diff --git a/.gitlab-ci/container/x86_test-base.sh b/.gitlab-ci/container/x86_test-base.sh
index fd4cb7eca4c..c60e0cd8664 100644
--- a/.gitlab-ci/container/x86_test-base.sh
+++ b/.gitlab-ci/container/x86_test-base.sh
@@ -32,6 +32,7 @@ apt-get dist-upgrade -y
apt-get install -y --no-remove \
git \
git-lfs \
+ libasan5 \
libexpat1 \
libllvm10 \
libllvm9 \
diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh
index b6515abc0b3..090ff4df3a1 100755
--- a/.gitlab-ci/deqp-runner.sh
+++ b/.gitlab-ci/deqp-runner.sh
@@ -189,13 +189,17 @@ check_renderer() {
# debug.
# export EGL_LOG_LEVEL=debug
VERSION=`echo $DEQP_VER | tr '[a-z]' '[A-Z]'`
+ export LD_PRELOAD=$TEST_LD_PRELOAD
$DEQP $DEQP_OPTIONS --deqp-case=$SUITE-$VERSION.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa
+ export LD_PRELOAD=
parse_renderer
}
check_vk_device_name() {
echo "Capturing device info for VK driver sanity checks"
+ export LD_PRELOAD=$TEST_LD_PRELOAD
$DEQP $DEQP_OPTIONS --deqp-case=dEQP-VK.info.device --deqp-log-filename=$RESULTS/deqp-info.qpa
+ export LD_PRELOAD=
DEVICENAME=`grep deviceName $RESULTS/deqp-info.qpa | sed 's|deviceName: ||g'`
echo "deviceName: $DEVICENAME"
if [ -n "$DEQP_EXPECTED_RENDERER" -a "x$DEVICENAME" != "x$DEQP_EXPECTED_RENDERER" ]; then
@@ -241,9 +245,12 @@ fi
RESULTS_CSV=$RESULTS/results.csv
FAILURES_CSV=$RESULTS/failures.csv
+export LD_PRELOAD=$TEST_LD_PRELOAD
+
run_cts $DEQP /tmp/case-list.txt $RESULTS_CSV
DEQP_EXITCODE=$?
+export LD_PRELOAD=
quiet report_load
# Remove all but the first 50 individual XML files uploaded as artifacts, to
diff --git a/.gitlab-ci/deqp-softpipe-asan-fails.txt b/.gitlab-ci/deqp-softpipe-asan-fails.txt
new file mode 100644
index 00000000000..854921c897c
--- /dev/null
+++ b/.gitlab-ci/deqp-softpipe-asan-fails.txt
@@ -0,0 +1,135 @@
+dEQP-GLES31.functional.compute.shared_var.basic_type.int_mediump,Missing
+dEQP-GLES31.functional.copy_image.compressed.viewclass_astc_12x10_rgba.srgb8_alpha8_astc_12x10_khr_rgba_astc_12x10_khr.texture3d_to_cubemap,Missing
+dEQP-GLES31.functional.copy_image.compressed.viewclass_astc_8x6_rgba.srgb8_alpha8_astc_8x6_khr_srgb8_alpha8_astc_8x6_khr.texture2d_array_to_cubemap,Missing
+dEQP-GLES31.functional.copy_image.compressed.viewclass_etc2_rgba.srgb8_punchthrough_alpha1_etc2_rgb8_punchthrough_alpha1_etc2.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_6x5_khr.texture2d_to_cubemap,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32i_rg11_eac.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32i_srgb8_alpha8_astc_12x10_khr.cubemap_to_cubemap,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32i_srgb8_alpha8_astc_12x12_khr.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32ui_rgba_astc_12x12_khr.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32ui_srgb8_alpha8_astc_12x10_khr.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_12x10_khr_rgba32i.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_4x4_khr_rgba32f.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_8x6_khr_rgba32ui.cubemap_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rg32f.texture2d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rg32i.cubemap_to_texture3d,Missing
+dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.rg32i_signed_r11_eac.texture2d_array_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_128_bits.rgba32ui_rgba32i.texture3d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_16_bits.r16ui_rg8_snorm.texture3d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_16_bits.rg8_snorm_rg8.texture2d_to_texture2d_array,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rg16ui_r32ui.texture2d_array_to_texture3d,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgb10_a2_rgb10_a2.texture2d_array_to_renderbuffer,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.rgb10_a2ui_rg16i.texture2d_array_to_renderbuffer,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.srgb8_alpha8_r11f_g11f_b10f.texture2d_array_to_cubemap,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_32_bits.srgb8_alpha8_rgb9_e5.renderbuffer_to_texture2d_array,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_48_bits.rgb16ui_rgb16ui.cubemap_to_texture2d_array,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_64_bits.rgba16f_rg32i.texture3d_to_texture2d,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_64_bits.rgba16ui_rgba16f.cubemap_to_texture3d,Missing
+dEQP-GLES31.functional.copy_image.non_compressed.viewclass_96_bits.rgb32ui_rgb32f.cubemap_to_texture3d,Missing
+dEQP-GLES31.functional.debug.negative_coverage.get_error.advanced_blend.blend_qualifier_mismatch,Missing
+dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_pixels_fbo_format_mismatch,Fail
+dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.vertex_attrib_format,Missing
+dEQP-GLES31.functional.debug.negative_coverage.log.shader_function.bitfield_insert_invalid_base_type,Missing
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.0,Fail
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.10,Fail
+dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.0,Fail
+dEQP-GLES31.functional.fbo.no_attachments.multisample.samples2,Fail
+dEQP-GLES31.functional.geometry_shading.emit.triangle_strip_emit_1_end_2,Crash
+dEQP-GLES31.functional.image_load_store.buffer.atomic.max_r32ui_result,Missing
+dEQP-GLES31.functional.image_load_store.cube.store.r32i_single_layer,Missing
+dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil_fbo,Fail
+dEQP-GLES31.functional.layout_binding.image.image3d.vertex_binding_multiple,Missing
+dEQP-GLES31.functional.layout_binding.negative.image.image3d.vertex_binding_neg_array,Missing
+dEQP-GLES31.functional.program_interface_query.buffer_variable.is_row_major.named_block_col_major.row_major.var,Missing
+dEQP-GLES31.functional.program_interface_query.program_input.referenced_by.referenced_by_vertex_tess_geo_fragment,Missing
+dEQP-GLES31.functional.program_interface_query.program_input.type.interface_blocks.in.named_block.struct.float,Missing
+dEQP-GLES31.functional.program_interface_query.program_input.type.separable_fragment.array.uvec3,Missing
+dEQP-GLES31.functional.program_interface_query.program_output.is_per_patch.interface_blocks.out.named_block.var_struct,Missing
+dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.array_size.separable_vertex.default_block_struct_member,Missing
+dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.vertex_geo_fragment.whole_array.vec3,Missing
+dEQP-GLES31.functional.program_interface_query.uniform.array_stride.named_block.aggregates.ivec3_struct,Missing
+dEQP-GLES31.functional.program_interface_query.uniform.location.default_block.opaque_type.iimage_3d,Missing
+dEQP-GLES31.functional.program_interface_query.uniform.matrix_row_major.unnamed_block_row_major.row_major.var,Missing
+dEQP-GLES31.functional.program_interface_query.uniform.referenced_by_shader.vertex_tess_geo_fragment_only_tess_ctrl.block_array.float_array,Missing
+dEQP-GLES31.functional.program_interface_query.uniform.resource_list.block_array.var_array,Missing
+dEQP-GLES31.functional.program_interface_query.uniform.type.default_block.types.int,Missing
+dEQP-GLES31.functional.program_uniform.basic_array_assign_partial.array_in_struct.float_vec4_fragment,Missing
+dEQP-GLES31.functional.program_uniform.by_pointer.render.basic.mat2x3_row_major_both,Missing
+dEQP-GLES31.functional.program_uniform.by_pointer.render.nested_structs_arrays.int_ivec4_both,Missing
+dEQP-GLES31.functional.program_uniform.by_value.render.array_in_struct.uint_uvec4_both,Missing
+dEQP-GLES31.functional.separate_shader.api.active_program_uniform,Missing
+dEQP-GLES31.functional.shaders.arrays_of_arrays.es31.parameter.out.float_3x3_fragment,Missing
+dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.assignment.explicit_to_implicit.vec3_1x3_fragment,Missing
+dEQP-GLES31.functional.shaders.arrays_of_arrays.es32.constructor.implicit.ivec3_3x2x1_fragment,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec3_mediump_tess_eval,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.float_lowp_tess_eval,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.common.round.float_lowp_geometry,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec3_mediump_geometry,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec3_highp_vertex,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm2x16_mediump_geometry,Missing
+dEQP-GLES31.functional.shaders.builtin_functions.precision.acos.lowp_compute.scalar,Missing
+dEQP-GLES31.functional.shaders.framebuffer_fetch.framebuffer_format.r8ui,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es31.array_subscripts.subscript_before_input.ivec3_to_vec3_vertex,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es31.array_subscripts.subscript_before_input.uint_to_vec4_vertex,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es31.comparisons.literal_before_input.greater_or_equal.int_to_float_vertex,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es31.invalid.structs.ivec2_to_uvec2_vertex,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es31.parenthesized_expressions.paren_expr_before_literal.input_outside_parens.int_to_float_vertex,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es32.arithmetic.input_before_literal.mul.uint_to_vec4_vertex,Missing
+dEQP-GLES31.functional.shaders.implicit_conversions.es32.invalid.variables.vec4_to_uvec2_vertex,Missing
+dEQP-GLES31.functional.shaders.linkage.es32.tessellation_geometry.varying.types.uint,Missing
+dEQP-GLES31.functional.shaders.linkage.es32.tessellation.varying.types.uvec2,Missing
+dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.uniform_geometry,Missing
+dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_expression.tessellation_control.isampler2d,Missing
+dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.compute.isampler2darray,Missing
+dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.dynamically_uniform_geometry,Crash
+dEQP-GLES31.functional.ssbo.layout.2_level_array.packed.row_major_mat4x2,Missing
+dEQP-GLES31.functional.ssbo.layout.basic_unsized_array.packed.uvec3,Missing
+dEQP-GLES31.functional.ssbo.layout.random.nested_structs.22,Missing
+dEQP-GLES31.functional.ssbo.layout.single_basic_array.shared.row_major_mat3x4,Missing
+dEQP-GLES31.functional.state_query.integer.debug_logged_messages_getboolean,Missing
+dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getinteger64,Fail
+dEQP-GLES31.functional.state_query.integer.max_patch_vertices_getinteger64,Missing
+dEQP-GLES31.functional.state_query.integer.max_vertex_shader_storage_blocks_getinteger64,Missing
+dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_integer,Fail
+dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_pure_uint,Fail
+dEQP-GLES31.functional.texture.border_clamp.formats.srgb8.nearest_size_pot,Missing
+dEQP-GLES31.functional.texture.border_clamp.per_axis_wrap_mode.texture_2d.float_color.gather.s_mirrored_repeat_t_clamp_to_border_pot,Missing
+dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_mirror_repeat,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_clamp_repeat,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_nearest,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_nearest,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_linear,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_linear,Fail
+dEQP-GLES31.functional.texture.filtering.cube_array.sizes.63x63x18_nearest_mipmap_nearest,Fail
+dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.mirrored_repeat_clamp_to_edge,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.base_level.level_2,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.base_level.level_2,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.base_level.level_1,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.clamp_to_edge_repeat,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.blue_alpha_zero_one,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.blue_alpha_zero_one,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.base_level.level_1,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.repeat_mirrored_repeat,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.base_level.level_1,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.filter_mode.min_nearest_mipmap_nearest_mag_nearest,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.mirrored_repeat_clamp_to_edge,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.green_blue_alpha_zero,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.green_blue_alpha_zero,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.clamp_to_edge_repeat,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.repeat_mirrored_repeat,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.clamp_to_edge_repeat,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.mirrored_repeat_clamp_to_edge,Fail
+dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.repeat_mirrored_repeat,Fail
+dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8.texture_swizzle.red_green_blue_alpha,Missing
+dEQP-GLES31.functional.texture.gather.offset.min_required_offset.2d.rgba8i.size_npot.clamp_to_edge_repeat,Missing
+dEQP-GLES31.functional.texture.multisample.samples_1.sample_position,Missing
+dEQP-GLES31.functional.texture.multisample.samples_8.sample_mask_and_sample_coverage_and_alpha_to_coverage,Missing
+dEQP-GLES31.functional.texture.specification.texstorage3d.format.rgb10_a2ui_cube_array,Missing
+dEQP-GLES31.functional.ubo.2_level_array.std140.column_major_mat3_vertex,Missing
+dEQP-GLES31.functional.ubo.3_level_array.packed.mat4_fragment,Missing
+dEQP-GLES31.functional.ubo.3_level_array.shared.row_major_mat4x2_vertex,Missing
+dEQP-GLES31.functional.uniform_location.min_max.ivec3_fragment_max,Missing
+dEQP-GLES31.functional.uniform_location.struct.case_9,Missing
diff --git a/.gitlab-ci/prepare-artifacts.sh b/.gitlab-ci/prepare-artifacts.sh
index d03bd286ee9..edbfa599f53 100755
--- a/.gitlab-ci/prepare-artifacts.sh
+++ b/.gitlab-ci/prepare-artifacts.sh
@@ -18,7 +18,9 @@ if [ -n "$CROSS" ]; then
else
STRIP="strip"
fi
-find install -name \*.so -exec $STRIP {} \;
+if [ -z "$ARTIFACTS_DEBUG_SYMBOLS"]; then
+ find install -name \*.so -exec $STRIP {} \;
+fi
# Test runs don't pull down the git tree, so put the dEQP helper
# script and associated bits there.
More information about the mesa-commit
mailing list