radeonsi/ci: stop using a global flakes list, only use a per-chip flakes list
We need to start treating flakes as fails and they are likely different between chips. I removed the gfx9 flakes file and renamed the original flakes file to gfx6-tahiti-flakes.csv, but it would be better to add a new flakes file for each generation we test. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32288>
This commit is contained in:
+4
-23
@@ -1,5 +1,3 @@
|
||||
# piglit
|
||||
|
||||
# This crashes on Ubuntu 20.04, but not later LTS versions
|
||||
glx@glx-make-current
|
||||
# samples=8 is flaky
|
||||
@@ -18,6 +16,10 @@ spec@egl_mesa_configless_context@basic
|
||||
spec@egl_chromium_sync_control@conformance
|
||||
spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_msc_and_sbc_test
|
||||
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread
|
||||
# This one will be Crash or Fail depending on the shader cache state
|
||||
spec@!opengl 1.0@rasterpos
|
||||
spec@!opengl 1.0@rasterpos@glsl_vs_gs_linked
|
||||
spec@!opengl 1.0@rasterpos@glsl_vs_tes_linked
|
||||
|
||||
# glcts
|
||||
KHR-GL46.sparse_texture2_tests.SparseTexture2Lookup
|
||||
@@ -30,24 +32,3 @@ KHR-GL46.pipeline_statistics_query_tests_ARB.functional_primitives_vertices_subm
|
||||
|
||||
# escts
|
||||
KHR-GLES31.core.shader_image_load_store.basic-allFormats-store-fs
|
||||
|
||||
# gfx11 fails these randomly, probably because of streamout
|
||||
KHR-GL46.geometry_shader.primitive_counter.lines_to_line_strip
|
||||
KHR-GL46.geometry_shader.primitive_counter.lines_to_line_strip_rp
|
||||
KHR-GL46.geometry_shader.primitive_counter.triangles_to_line_strip
|
||||
KHR-GL46.geometry_shader.primitive_counter.triangles_to_line_strip_rp
|
||||
KHR-GL46.geometry_shader.primitive_counter.points_to_line_strip
|
||||
KHR-GL46.geometry_shader.primitive_counter.points_to_line_strip_rp
|
||||
KHR-GLES31.core.geometry_shader.primitive_counter.points_to_line_strip
|
||||
KHR-GLES31.core.geometry_shader.primitive_counter.points_to_line_strip_rp
|
||||
KHR-GLES32.core.geometry_shader.primitive_counter.points_to_line_strip
|
||||
KHR-GLES32.core.geometry_shader.primitive_counter.points_to_line_strip_rp
|
||||
dEQP-GLES31.functional.tessellation.invariance.primitive_set.triangles_fractional_even_spacing_ccw_point_mode
|
||||
dEQP-GLES31.functional.tessellation.invariance.primitive_set.triangles_fractional_even_spacing_cw_point_mode
|
||||
dEQP-GLES31.functional.tessellation.invariance.primitive_set.triangles_fractional_odd_spacing_ccw_point_mode
|
||||
dEQP-GLES31.functional.tessellation.invariance.primitive_set.triangles_fractional_odd_spacing_cw_point_mode
|
||||
|
||||
# This one will be Crash or Fail depending on the shader cache state
|
||||
spec@!opengl 1.0@rasterpos
|
||||
spec@!opengl 1.0@rasterpos@glsl_vs_gs_linked
|
||||
spec@!opengl 1.0@rasterpos@glsl_vs_tes_linked
|
||||
|
@@ -1,20 +0,0 @@
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit samples=2
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit samples=4
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit samples=6
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit samples=8
|
||||
spec@!opengl 1.1@depthstencil-default_fb-blit
|
||||
spec@!opengl 1.1@depthstencil-default_fb-copypixels samples=2
|
||||
spec@!opengl 1.1@depthstencil-default_fb-copypixels samples=4
|
||||
spec@!opengl 1.1@depthstencil-default_fb-copypixels
|
||||
spec@arb_depth_buffer_float@fbo-depthstencil-gl_depth32f_stencil8-blit
|
||||
spec@arb_depth_buffer_float@fbo-depthstencil-gl_depth32f_stencil8-copypixels
|
||||
spec@arb_depth_buffer_float@fbo-stencil-gl_depth32f_stencil8-blit
|
||||
spec@arb_texture_stencil8@fbo-stencil-blit
|
||||
spec@ext_framebuffer_object@fbo-stencil-gl_stencil_index1-blit
|
||||
spec@ext_framebuffer_object@fbo-stencil-gl_stencil_index16-copypixels
|
||||
spec@ext_framebuffer_object@fbo-stencil-gl_stencil_index4-blit
|
||||
spec@ext_framebuffer_object@fbo-stencil-gl_stencil_index4-copypixels
|
||||
spec@ext_framebuffer_object@fbo-stencil-gl_stencil_index8-blit
|
||||
spec@ext_packed_depth_stencil@fbo-depthstencil-gl_depth24_stencil8-blit
|
||||
spec@ext_packed_depth_stencil@fbo-depthstencil-gl_depth24_stencil8-copypixels
|
||||
spec@ext_packed_depth_stencil@fbo-stencil-gl_depth24_stencil8-copypixels
|
||||
|
@@ -222,31 +222,37 @@ is_amd = args.llvmpipe + args.softpipe + args.virgl + args.zink == 0
|
||||
if args.llvmpipe:
|
||||
env["LIBGL_ALWAYS_SOFTWARE"] = '1'
|
||||
baseline = "../../llvmpipe/ci/llvmpipe-fails.txt"
|
||||
flakes_lists = ["../../llvmpipe/ci/llvmpipe-flakes.txt"]
|
||||
flakes_list = "../../llvmpipe/ci/llvmpipe-flakes.txt"
|
||||
skips_list = "../../llvmpipe/ci/llvmpipe-skips.txt"
|
||||
elif args.softpipe:
|
||||
env["LIBGL_ALWAYS_SOFTWARE"] = '1'
|
||||
env["GALLIUM_DRIVER"] = 'softpipe'
|
||||
baseline = "../../softpipe/ci/softpipe-fails.txt"
|
||||
flakes_lists = ["../../softpipe/ci/softpipe-flakes.txt"]
|
||||
flakes_list = "../../softpipe/ci/softpipe-flakes.txt"
|
||||
skips_list = "../../softpipe/ci/softpipe-skips.txt"
|
||||
elif args.virgl:
|
||||
env["PIGLIT_PLATFORM"] = "gbm"
|
||||
baseline = ''
|
||||
flakes_lists = []
|
||||
flakes_list = None
|
||||
skips_list = "skips.csv"
|
||||
elif args.zink:
|
||||
env["PIGLIT_PLATFORM"] = "gbm"
|
||||
env["MESA_LOADER_DRIVER_OVERRIDE"] = 'zink'
|
||||
baseline = "../../zink/ci/zink-radv-navi31-fails.txt"
|
||||
flakes_lists = ["../../zink/ci/zink-radv-navi31-flakes.txt"]
|
||||
flakes_list = "../../zink/ci/zink-radv-navi31-flakes.txt"
|
||||
skips_list = "../../zink/ci/zink-radv-navi31-skips.txt"
|
||||
else:
|
||||
elif is_amd:
|
||||
env["PIGLIT_PLATFORM"] = "gbm"
|
||||
flakes_list = None # it will be determined later
|
||||
skips_list = "skips.csv"
|
||||
else:
|
||||
assert False
|
||||
|
||||
if not is_amd and baseline:
|
||||
if not is_amd:
|
||||
baseline = os.path.normpath(os.path.join(os.path.dirname(__file__), baseline))
|
||||
if flakes_list is not None:
|
||||
flakes_list = os.path.normpath(os.path.join(os.path.dirname(__file__), flakes_list))
|
||||
|
||||
skips_list = os.path.normpath(os.path.join(os.path.dirname(__file__), skips_list))
|
||||
env_glinfo = dict(env)
|
||||
env_glinfo["AMD_DEBUG"] = "info"
|
||||
@@ -393,12 +399,12 @@ def parse_test_filters(include_tests, baseline):
|
||||
return cmd
|
||||
|
||||
|
||||
def select_baseline(basepath, gfx_level, gpu_name):
|
||||
def select_baseline(basepath, gfx_level, gpu_name, suffix):
|
||||
gfx_level_str = gfx_level_to_str(gfx_level)
|
||||
|
||||
# select the best baseline we can find
|
||||
# 1. exact match
|
||||
exact = os.path.join(basepath, "{}-{}-fail.csv".format(gfx_level_str, gpu_name))
|
||||
exact = os.path.join(basepath, "{}-{}-{}.csv".format(gfx_level_str, gpu_name, suffix))
|
||||
if os.path.exists(exact):
|
||||
return exact
|
||||
# 2. any baseline with the same gfx_level
|
||||
@@ -406,7 +412,7 @@ def select_baseline(basepath, gfx_level, gpu_name):
|
||||
gfx_level_str += '-'
|
||||
for subdir, dirs, files in os.walk(basepath):
|
||||
for file in files:
|
||||
if file.find(gfx_level_str) == 0 and file.endswith("-fail.csv"):
|
||||
if file.find(gfx_level_str) == 0 and file.endswith("-{}.csv".format(suffix)):
|
||||
return os.path.join(basepath, file)
|
||||
# No match. Try an earlier class
|
||||
gfx_level = gfx_level - 1
|
||||
@@ -416,31 +422,21 @@ def select_baseline(basepath, gfx_level, gpu_name):
|
||||
|
||||
|
||||
if is_amd:
|
||||
baseline = select_baseline(args.baseline, gfx_level, gpu_name)
|
||||
baseline = select_baseline(args.baseline, gfx_level, gpu_name, 'fail')
|
||||
flakes_list = select_baseline(args.baseline, gfx_level, gpu_name, 'flakes')
|
||||
|
||||
success = True
|
||||
filters_args = parse_test_filters(args.include_tests, baseline)
|
||||
flakes = [
|
||||
os.path.normpath(f)
|
||||
for f in (
|
||||
os.path.join(args.baseline, g)
|
||||
for g in
|
||||
([
|
||||
"radeonsi-flakes.csv",
|
||||
"{}-{}-flakes.csv".format(gfx_level_to_str(gfx_level), gpu_name),
|
||||
] if is_amd else flakes_lists)
|
||||
)
|
||||
if os.path.exists(f)
|
||||
]
|
||||
flakes_args = []
|
||||
for f in flakes:
|
||||
flakes_args += ["--flakes", f]
|
||||
|
||||
if os.path.exists(baseline):
|
||||
print_yellow("Baseline: {}".format(baseline))
|
||||
|
||||
if flakes_list is not None and os.path.exists(flakes_list):
|
||||
print_yellow("Flakes: {}".format(flakes_list))
|
||||
flakes_args = ["--flakes", flakes_list]
|
||||
|
||||
print_yellow("Skips: {}".format(skips_list))
|
||||
if flakes_args:
|
||||
print_yellow("Flakes: {}".format(flakes_args))
|
||||
|
||||
# piglit test
|
||||
if args.piglit:
|
||||
|
||||
Reference in New Issue
Block a user