diff options
author | Tomeu Vizoso <[email protected]> | 2020-04-01 09:17:25 +0200 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-04-20 13:53:09 +0000 |
commit | ad3ef6d0fc01fead5b72c6376387ecf5c48bfef4 (patch) | |
tree | 69c7ba455587b6dd4faf27cec595e1cb899a9294 /.gitlab-ci | |
parent | d6b7439619c55d317bfe05094a9f503d832c9eb7 (diff) |
gitlab-ci: Test virgl driver
Add virglrenderer to the container and use the vtest transport to test
the Gallium driver. On the "host", llvmpipe is used.
Signed-off-by: Tomeu Vizoso <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4433>
Diffstat (limited to '.gitlab-ci')
-rw-r--r-- | .gitlab-ci/build-virglrenderer.sh | 20 | ||||
-rw-r--r-- | .gitlab-ci/container/x86_test-gl.sh | 10 | ||||
-rwxr-xr-x | .gitlab-ci/deqp-runner.sh | 16 | ||||
-rw-r--r-- | .gitlab-ci/deqp-virgl-fails.txt | 120 | ||||
-rw-r--r-- | .gitlab-ci/test-source-dep.yml | 15 |
5 files changed, 179 insertions, 2 deletions
diff --git a/.gitlab-ci/build-virglrenderer.sh b/.gitlab-ci/build-virglrenderer.sh new file mode 100644 index 00000000000..935038e7e83 --- /dev/null +++ b/.gitlab-ci/build-virglrenderer.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -ex + +mkdir -p /epoxy +pushd /epoxy +wget -qO- https://github.com/anholt/libepoxy/releases/download/1.5.4/libepoxy-1.5.4.tar.xz | tar -xJ --strip-components=1 +meson build/ $EXTRA_MESON_ARGS +ninja -C build install +popd +rm -rf /epoxy + +VIRGLRENDERER_VERSION=33cfd72346878a71f27f2f11ac41f9e347a34369 +git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git --single-branch --no-checkout /virglrenderer +pushd /virglrenderer +git checkout "$VIRGLRENDERER_VERSION" +meson build/ $EXTRA_MESON_ARGS +ninja -C build install +popd +rm -rf /virglrenderer diff --git a/.gitlab-ci/container/x86_test-gl.sh b/.gitlab-ci/container/x86_test-gl.sh index ea76876c281..1114059053a 100644 --- a/.gitlab-ci/container/x86_test-gl.sh +++ b/.gitlab-ci/container/x86_test-gl.sh @@ -72,12 +72,18 @@ apt-get install -y --no-remove \ qt5-default \ qt5-qmake \ waffle-utils \ + wget \ xauth \ xvfb \ + xz-utils \ zlib1g . .gitlab-ci/container/container_pre_build.sh +############### Build virglrenderer + +. .gitlab-ci/build-virglrenderer.sh + ############### Build piglit . .gitlab-ci/build-piglit.sh @@ -124,6 +130,8 @@ apt-get purge -y \ patch \ pkg-config \ python3-distutils \ - python3.7-dev + python3.7-dev \ + wget \ + xz-utils apt-get autoremove -y --purge diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh index 1dda8e942d5..015e8b3d0bf 100755 --- a/.gitlab-ci/deqp-runner.sh +++ b/.gitlab-ci/deqp-runner.sh @@ -194,7 +194,8 @@ check_renderer() { # If you're having trouble loading your driver, uncommenting this may help # debug. # export EGL_LOG_LEVEL=debug - $DEQP $DEQP_OPTIONS --deqp-case=dEQP-GLES2.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa + VERSION=`echo $DEQP_VER | tr '[a-z]' '[A-Z]'` + $DEQP $DEQP_OPTIONS --deqp-case=dEQP-$VERSION.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa parse_renderer } @@ -205,6 +206,19 @@ quiet() { set -x } +if [ "$GALLIUM_DRIVER" = "virpipe" ]; then + # deqp is to use virpipe, and virgl_test_server llvmpipe + export GALLIUM_DRIVER="$GALLIUM_DRIVER" + + GALLIUM_DRIVER=llvmpipe \ + GALLIVM_PERF="nopt,no_filter_hacks" \ + VTEST_USE_EGL_SURFACELESS=1 \ + VTEST_USE_GLES=1 \ + virgl_test_server >$RESULTS/vtest-log.txt 2>&1 & + + sleep 1 +fi + if [ $DEQP_VER != vk ]; then quiet check_renderer fi diff --git a/.gitlab-ci/deqp-virgl-fails.txt b/.gitlab-ci/deqp-virgl-fails.txt new file mode 100644 index 00000000000..f5e2d6b0144 --- /dev/null +++ b/.gitlab-ci/deqp-virgl-fails.txt @@ -0,0 +1,120 @@ +dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center +dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner +dEQP-GLES2.functional.clipping.point.wide_point_clip +dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center +dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner +dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z +dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z +dEQP-GLES2.functional.draw.random.10 +dEQP-GLES2.functional.draw.random.42 +dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4 +dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16 +dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8 +dEQP-GLES2.functional.fbo.render.depth.rbo_rgba4_depth_component16 +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4 +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8 +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4 +dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8 +dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.no_rebind_rbo_rgba4_depth_component16 +dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16 +dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.no_rebind_rbo_rgba4_stencil_index8 +dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8 +dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4 +dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16 +dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16 +dEQP-GLES2.functional.polygon_offset.default_displacement_with_units +dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units +dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide +dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide +dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide +dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide +dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide +dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide +dEQP-GLES2.functional.rasterization.limits.points +dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner +dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center +dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z +dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z +dEQP-GLES3.functional.draw.random.124 +dEQP-GLES3.functional.draw.random.174 +dEQP-GLES3.functional.draw.random.31 +dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag +dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_dst_x +dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_src_dst_y +dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_min_reverse_src_dst_x +dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component16 +dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_color +dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth_stencil +dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth +dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16 +dEQP-GLES3.functional.fbo.msaa.2_samples.r16f +dEQP-GLES3.functional.fbo.msaa.2_samples.rgb565 +dEQP-GLES3.functional.fbo.msaa.2_samples.rgba4 +dEQP-GLES3.functional.fbo.msaa.2_samples.rgba8 +dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8 +dEQP-GLES3.functional.fbo.msaa.4_samples.depth24_stencil8 +dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component24 +dEQP-GLES3.functional.fbo.msaa.4_samples.r11f_g11f_b10f +dEQP-GLES3.functional.fbo.msaa.4_samples.r8 +dEQP-GLES3.functional.fbo.msaa.4_samples.rgb10_a2 +dEQP-GLES3.functional.fbo.msaa.4_samples.rgb8 +dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage_inverted +dEQP-GLES3.functional.multisample.fbo_max_samples.sample_coverage_invert +dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample +dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch +dEQP-GLES3.functional.polygon_offset.default_displacement_with_units +dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units +dEQP-GLES3.functional.polygon_offset.float32_displacement_with_units +dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines_wide +dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide +dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide +dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide +dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide +dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide +dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp +dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump +dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp +dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump +dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp +dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump +dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_highp +dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump +dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump +dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp +dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_mediump +dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump +dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump +dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump +dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump +dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump +dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_highp +dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_mediump +dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_highp +dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_mediump +dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_highp +dEQP-GLES3.functional.state_query.integers.max_samples_getinteger64 +dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads1 +dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components2_vec2_quads256 +dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components2_vec3_quads256 +dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components2_vec4_quads256 +dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components4_vec2_quads1 +dEQP-GLES3.functional.vertex_arrays.single_attribute.output_types.unsigned_int.components4_vec4_quads1 diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml index d0d3d478770..2bb824849f5 100644 --- a/.gitlab-ci/test-source-dep.yml +++ b/.gitlab-ci/test-source-dep.yml @@ -127,3 +127,18 @@ - src/vulkan/**/* when: on_success - when: never + +.virgl-rules: + stage: virgl + rules: + - changes: + *mesa_core_file_list + when: on_success + - changes: + *gallium_core_file_list + when: on_success + - changes: + - src/gallium/drivers/virgl/**/* + - src/gallium/winsys/virgl/**/* + when: on_success + - when: never |