From 849af68dbd53d8fb866f3b414a681e0d6ebaf5c7 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Tue, 3 Jan 2023 12:25:19 -0800 Subject: [PATCH] ci/piglit: Add some common piglit skips for Mesa CI's testing of glx. Since our X servers don't have a compositor, and we run tests in parallel, various swap and frontbuffer tests won't ever be stable. Rather than having every driver have to track those flakes, make a general X11 skips list as a known issue of our CI rather than pointing fingers at drivers. Acked-by: Alyssa Rosenzweig Acked-by: Karol Herbst Acked-by: Martin Roukala Acked-by: David Heidelberg Part-of: --- .gitlab-ci/all-skips.txt | 17 +++++++++++++++++ .gitlab-ci/deqp-runner.sh | 4 ++++ .gitlab-ci/piglit/piglit-runner.sh | 4 ++++ .gitlab-ci/x11-skips.txt | 19 +++++++++++++++++++ src/amd/ci/radeonsi-raven-skips.txt | 2 -- src/amd/ci/radeonsi-stoney-skips.txt | 8 +------- src/freedreno/ci/freedreno-a530-flakes.txt | 2 -- src/freedreno/ci/freedreno-a618-flakes.txt | 2 -- src/freedreno/ci/freedreno-a630-flakes.txt | 2 -- src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt | 11 ----------- src/gallium/drivers/softpipe/ci/softpipe-fails.txt | 1 - src/gallium/drivers/softpipe/ci/softpipe-flakes.txt | 1 - src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt | 7 ------- src/gallium/drivers/virgl/ci/virpipe-gl-flakes.txt | 1 - src/intel/ci/iris-kbl-flakes.txt | 5 ----- src/panfrost/ci/panfrost-g52-flakes.txt | 1 - 16 files changed, 45 insertions(+), 42 deletions(-) create mode 100644 .gitlab-ci/x11-skips.txt diff --git a/.gitlab-ci/all-skips.txt b/.gitlab-ci/all-skips.txt index 526debd..c283817 100644 --- a/.gitlab-ci/all-skips.txt +++ b/.gitlab-ci/all-skips.txt @@ -15,3 +15,20 @@ glx@glx_arb_sync_control@timing.* # This test is not built with waffle, while we do build tests with waffle spec@!opengl 1.1@windowoverlap + +# These tests all read from the front buffer after a swap. Given that we +# run piglit tests in parallel in Mesa CI, and don't have a compositor +# running, the frontbuffer reads may end up with undefined results from +# windows overlapping us. +# +# Piglit does mark these tests as not to be run in parallel, but deqp-runner +# doesn't respect that. We need to extend deqp-runner to allow some tests to be +# marked as single-threaded and run after the rayon loop if we want to support +# them. +# +# Note that "glx-" tests don't appear in x11-skips.txt because they can be +# run even if PIGLIT_PLATFORM=gbm (for example) +glx@glx-copy-sub-buffer.* +# Reads the front buffer but it doesn't have to. +# https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/755 +glx-swap-copy diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh index 8dcaaf5..33368c9 100755 --- a/.gitlab-ci/deqp-runner.sh +++ b/.gitlab-ci/deqp-runner.sh @@ -116,6 +116,10 @@ if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GPU_VERSION-skips.txt" fi +if [ "$PIGLIT_PLATFORM" != "gbm" ] ; then + DEQP_SKIPS="$DEQP_SKIPS $INSTALL/x11-skips.txt" +fi + report_load() { echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)" echo "# of CPU cores: $(cat /proc/cpuinfo | grep processor | wc -l)" diff --git a/.gitlab-ci/piglit/piglit-runner.sh b/.gitlab-ci/piglit/piglit-runner.sh index bb24376..db3d30e 100755 --- a/.gitlab-ci/piglit/piglit-runner.sh +++ b/.gitlab-ci/piglit/piglit-runner.sh @@ -76,6 +76,10 @@ if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GPU_VERSION-skips.txt" fi +if [ "$PIGLIT_PLATFORM" != "gbm" ] ; then + PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/x11-skips.txt" +fi + set +e piglit-runner \ diff --git a/.gitlab-ci/x11-skips.txt b/.gitlab-ci/x11-skips.txt new file mode 100644 index 0000000..957f8b7 --- /dev/null +++ b/.gitlab-ci/x11-skips.txt @@ -0,0 +1,19 @@ +# These tests all read from the front buffer after a swap. Given that we +# run piglit tests in parallel in Mesa CI, and don't have a compositor +# running, the frontbuffer reads may end up with undefined results from +# windows overlapping us. +# +# Piglit does mark these tests as not to be run in parallel, but deqp-runner +# doesn't respect that. We need to extend deqp-runner to allow some tests to be +# marked as single-threaded and run after the rayon loop if we want to support +# them. +# +# Other front-buffer access tests like fbo-sys-blit, fbo-sys-sub-blit, or +# fcc-front-buffer-distraction don't appear here, because the DRI3 fake-front +# handling should be holding the pixels drawn by the test even if we happen to fail +# GL's window system pixel occlusion test. +# +# Note that glx skips don't appear here, they're in all-skips.txt (in case someone +# sets PIGLIT_PLATFORM=gbm to mostly use gbm, but still has an X server running). +spec@!opengl 1.0@gl-1.0-swapbuffers-behavior +spec@!opengl 1.1@read-front diff --git a/src/amd/ci/radeonsi-raven-skips.txt b/src/amd/ci/radeonsi-raven-skips.txt index 3fa4751..66807be 100644 --- a/src/amd/ci/radeonsi-raven-skips.txt +++ b/src/amd/ci/radeonsi-raven-skips.txt @@ -32,7 +32,6 @@ spec@ext_external_objects@vk-pix-buf-update-errors spec@ext_external_objects_fd@semaphore-api-errors spec@ext_external_objects_fd@memory-object-api-errors spec@ext_external_objects@vk-vert-buf-reuse -glx@glx-swap-copy # From https://github.com/marekolsak/marek-build/blob/master/run-piglit.sh#L36 spec@!opengl 1.0@gl-1.0-blend-func spec@!opengl 1.2@tex3d-maxsize @@ -67,4 +66,3 @@ spec@ext_external_objects@vk-pix-buf-update-errors spec@ext_external_objects_fd@semaphore-api-errors spec@ext_external_objects_fd@memory-object-api-errors spec@ext_external_objects@vk-vert-buf-reuse -glx@glx-swap-copy diff --git a/src/amd/ci/radeonsi-stoney-skips.txt b/src/amd/ci/radeonsi-stoney-skips.txt index 98f939a..abf0dde 100644 --- a/src/amd/ci/radeonsi-stoney-skips.txt +++ b/src/amd/ci/radeonsi-stoney-skips.txt @@ -32,7 +32,7 @@ spec@ext_external_objects@vk-pix-buf-update-errors spec@ext_external_objects_fd@semaphore-api-errors spec@ext_external_objects_fd@memory-object-api-errors spec@ext_external_objects@vk-vert-buf-reuse -glx@glx-swap-copy + # From https://github.com/marekolsak/marek-build/blob/master/run-piglit.sh#L36 spec@!opengl 1.0@gl-1.0-blend-func spec@!opengl 1.2@tex3d-maxsize @@ -76,13 +76,7 @@ glx@glx-copy-sub-buffer samples=6 glx@glx-swap-event_event glx@glx-buffer-age glx@glx-buffer-age vblank_mode=0 -glx@glx-copy-sub-buffer -glx@glx-copy-sub-buffer samples=2 -glx@glx-copy-sub-buffer samples=4 -glx@glx-copy-sub-buffer samples=6 -glx@glx-copy-sub-buffer samples=8 glx@glx-multithread-buffer glx@glx-swap-event_async glx@glx-swap-event_event glx@glx-swap-event_interval -spec@!opengl 1.0@gl-1.0-swapbuffers-behavior diff --git a/src/freedreno/ci/freedreno-a530-flakes.txt b/src/freedreno/ci/freedreno-a530-flakes.txt index 8e325e9..7e92987 100644 --- a/src/freedreno/ci/freedreno-a530-flakes.txt +++ b/src/freedreno/ci/freedreno-a530-flakes.txt @@ -58,11 +58,9 @@ dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.* dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear -glx@glx-swap-copy glx@glx-swap-event_interval glx@glx_arb_sync_control@swapbuffersmsc-divisor-zero glx@glx_arb_sync_control@waitformsc -glx@glx-copy-sub-buffer.* glx@glx-multithread-texture glx@glx-swap-event_async shaders@glsl-uniform-interstage-limits@subdivide 5 diff --git a/src/freedreno/ci/freedreno-a618-flakes.txt b/src/freedreno/ci/freedreno-a618-flakes.txt index 1e3e4fc..0ec3c60 100644 --- a/src/freedreno/ci/freedreno-a618-flakes.txt +++ b/src/freedreno/ci/freedreno-a618-flakes.txt @@ -112,8 +112,6 @@ KHR-.*.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std140-matR glx@glx_arb_sync_control@swapbuffersmsc-divisor-zero glx@glx_arb_sync_control@waitformsc -glx@glx-copy-sub-buffer.* -glx@glx-swap-copy glx@glx-swap-event_interval glx@glx-visuals-depth glx@glx-visuals-stencil diff --git a/src/freedreno/ci/freedreno-a630-flakes.txt b/src/freedreno/ci/freedreno-a630-flakes.txt index 76dd7f2..6100f9d 100644 --- a/src/freedreno/ci/freedreno-a630-flakes.txt +++ b/src/freedreno/ci/freedreno-a630-flakes.txt @@ -110,8 +110,6 @@ KHR-GLES31.core.shader_storage_buffer_object.advanced-unsizedArrayLength-fs-std4 glx@glx_arb_sync_control@swapbuffersmsc-divisor-zero glx@glx_arb_sync_control@waitformsc -glx@glx-copy-sub-buffer.* -glx@glx-swap-copy glx@glx-swap-event_async glx@glx-swap-event_interval glx@glx-visuals-depth diff --git a/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt b/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt index 5921b1f..1529f2f 100644 --- a/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt +++ b/src/gallium/drivers/llvmpipe/ci/llvmpipe-fails.txt @@ -26,17 +26,12 @@ dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_x,Fail spec@glsl-1.20@compiler@invalid-vec4-array-to-vec3-array-conversion.vert,Fail spec@oes_shader_io_blocks@compiler@layout-location-aliasing.vert,Fail -glx@glx-copy-sub-buffer,Fail -glx@glx-copy-sub-buffer samples=2,Fail -glx@glx-copy-sub-buffer samples=4,Fail - # X Error of failed request: BadMatch (invalid parameter attributes) # Major opcode of failed request: 150 (GLX) # Minor opcode of failed request: 11 (X_GLXSwapBuffers) glx@glx-make-current,Crash glx@glx-multi-window-single-context,Fail -glx@glx-swap-copy,Fail glx@glx-swap-pixmap-bad,Fail # X Error of failed request: BadDrawable (invalid Pixmap or Window parameter) @@ -75,12 +70,6 @@ spec@!opengl 1.1@polygon-mode-offset@config 4: Expected white pixel on bottom ed spec@!opengl 1.1@polygon-mode-offset@config 4: Expected white pixel on left edge,Fail spec@!opengl 1.1@polygon-mode-offset@config 4: Expected white pixel on right edge,Fail spec@!opengl 1.1@polygon-mode-offset@config 4: Expected white pixel on top edge,Fail -spec@!opengl 1.1@read-front,Fail -spec@!opengl 1.1@read-front clear-front-first,Fail -spec@!opengl 1.1@read-front clear-front-first samples=2,Fail -spec@!opengl 1.1@read-front clear-front-first samples=4,Fail -spec@!opengl 1.1@read-front samples=2,Fail -spec@!opengl 1.1@read-front samples=4,Fail spec@!opengl 3.0@clearbuffer-depth-cs-probe,Fail spec@!opengl 3.2@layered-rendering@clear-color-mismatched-layer-count,Fail spec@arb_enhanced_layouts@execution@component-layout@vs-fs-array-dvec3,Fail diff --git a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt index b3ca9ac..5e0ba46 100644 --- a/src/gallium/drivers/softpipe/ci/softpipe-fails.txt +++ b/src/gallium/drivers/softpipe/ci/softpipe-fails.txt @@ -916,7 +916,6 @@ glx@glx-make-current,Crash glx@glx-multi-context-front,Fail glx@glx-multi-window-single-context,Fail -glx@glx-swap-copy,Fail glx@glx-swap-pixmap-bad,Fail # X Error of failed request: BadMatch (invalid parameter attributes) diff --git a/src/gallium/drivers/softpipe/ci/softpipe-flakes.txt b/src/gallium/drivers/softpipe/ci/softpipe-flakes.txt index 375dd5a..3f14139 100644 --- a/src/gallium/drivers/softpipe/ci/softpipe-flakes.txt +++ b/src/gallium/drivers/softpipe/ci/softpipe-flakes.txt @@ -8,6 +8,5 @@ glx@glx-swap-singlebuffer # Sometimes crashes, less so since moving to the google runners spec@arb_sync@sync_api -spec@!opengl 1.1@read-front clear-front-first spec@ext_framebuffer_blit@fbo-sys-blit spec@ext_framebuffer_blit@fbo-sys-sub-blit diff --git a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt index c4602d1..a121c77 100644 --- a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt +++ b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt @@ -79,7 +79,6 @@ glx@glx-make-current,Crash glx@glx-multi-window-single-context,Fail glx@glx-multithread-clearbuffer,Crash glx@glx-multithread-texture,Crash -glx@glx-swap-copy,Fail glx@glx-swap-pixmap-bad,Fail glx@glx-tfp,Crash glx@glx-visuals-depth,Crash @@ -142,12 +141,6 @@ spec@!opengl 1.1@polygon-mode-offset@config 0: Expected blue pixel in center,Fai spec@!opengl 1.1@polygon-mode-offset@config 1: Expected blue pixel in center,Fail spec@!opengl 1.1@polygon-mode-offset@config 2: Expected blue pixel in center,Fail spec@!opengl 1.1@polygon-mode-offset@config 6: Expected blue pixel in center,Fail -spec@!opengl 1.1@read-front,Fail -spec@!opengl 1.1@read-front clear-front-first,Fail -spec@!opengl 1.1@read-front clear-front-first samples=2,Fail -spec@!opengl 1.1@read-front clear-front-first samples=4,Fail -spec@!opengl 1.1@read-front samples=2,Fail -spec@!opengl 1.1@read-front samples=4,Fail spec@!opengl 1.1@texwrap 1d bordercolor,Fail spec@!opengl 1.1@texwrap 1d bordercolor@GL_RGBA8- border color only,Fail spec@!opengl 1.1@texwrap 1d proj bordercolor,Fail diff --git a/src/gallium/drivers/virgl/ci/virpipe-gl-flakes.txt b/src/gallium/drivers/virgl/ci/virpipe-gl-flakes.txt index dbd2edf..4191a80 100644 --- a/src/gallium/drivers/virgl/ci/virpipe-gl-flakes.txt +++ b/src/gallium/drivers/virgl/ci/virpipe-gl-flakes.txt @@ -52,4 +52,3 @@ spec@nv_primitive_restart@primitive-restart-draw-mode-quads shaders@glsl-uniform-interstage-limits@subdivide 5- statechanges spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-atomic@glScissor spec@arb_framebuffer_no_attachments@arb_framebuffer_no_attachments-atomic@glViewport -glx@glx-copy-sub-buffer.* diff --git a/src/intel/ci/iris-kbl-flakes.txt b/src/intel/ci/iris-kbl-flakes.txt index 0d5e29e..d4f72b0 100644 --- a/src/intel/ci/iris-kbl-flakes.txt +++ b/src/intel/ci/iris-kbl-flakes.txt @@ -3,9 +3,6 @@ spec@amd_performance_monitor@measure spec@amd_performance_monitor@measure@change counters while active spec@amd_performance_monitor@measure@counters in range -glx@glx-copy-sub-buffer samples=2 -glx@glx-copy-sub-buffer samples=16 - #X Error of failed request: BadValue (integer parameter out of range for operation) # Major opcode of failed request: 148 () # Minor opcode of failed request: 4 @@ -14,8 +11,6 @@ glx@glx-copy-sub-buffer samples=16 # Current serial number in output stream: 45 glx@glx-multi-context-ib-1 -glx@glx-swap-copy - # The following two case are xfails, but sometimes pass. spec@egl_chromium_sync_control@conformance # piglit: error: SBC did not change after second SwapBuffers: 0 diff --git a/src/panfrost/ci/panfrost-g52-flakes.txt b/src/panfrost/ci/panfrost-g52-flakes.txt index 68d2946..05dc7ef 100644 --- a/src/panfrost/ci/panfrost-g52-flakes.txt +++ b/src/panfrost/ci/panfrost-g52-flakes.txt @@ -1,6 +1,5 @@ glx@glx_arb_sync_control@waitformsc glx@glx_arb_sync_control@swapbuffersmsc-divisor-zero -glx@glx-copy-sub-buffer samples=2 glx@glx-multithread-texture glx@glx-multithread-shader-compile spec@arb_draw_buffers@fbo-mrt-new-bind -- 2.7.4