summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Akkila <omar.akkila@collabora.com>2021-10-25 09:29:07 +0200
committerTomeu Vizoso <tomeu.vizoso@collabora.com>2022-08-04 15:15:33 +0200
commit8e6bdb2ed31f27c28d258859ec48e8e67f51ff41 (patch)
tree7c8e4d4b8e3a2e5358a724baf23332d8477d319e
parent5ac14a97e27dbadff42bc409d818bc1b8803bf65 (diff)
downloadmesa-8e6bdb2ed31f27c28d258859ec48e8e67f51ff41.tar.gz
ci: Add vulkan dEQP tests for venus
Co-authored-by: Corentin Noël <corentin.noel@collabora.com> Signed-off-by: Omar Akkila <omar.akkila@collabora.com> Acked-by: David Heidelberg <david.heidelberg@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15692>
-rw-r--r--.gitlab-ci.yml1
-rwxr-xr-x.gitlab-ci/crosvm-runner.sh3
-rw-r--r--.gitlab-ci/test-source-dep.yml9
-rw-r--r--src/virtio/ci/deqp-venus.toml6
-rw-r--r--src/virtio/ci/gitlab-ci.yml24
-rw-r--r--src/virtio/ci/venus-fails.txt16
-rw-r--r--src/virtio/ci/venus-flakes.txt7
-rw-r--r--src/virtio/ci/venus-skips.txt2
8 files changed, 67 insertions, 1 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0ccb91954b8..b4e05c7eaa9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -78,6 +78,7 @@ include:
- local: 'src/intel/ci/gitlab-ci.yml'
- local: 'src/microsoft/ci/gitlab-ci.yml'
- local: 'src/panfrost/ci/gitlab-ci.yml'
+ - local: 'src/virtio/ci/gitlab-ci.yml'
stages:
- sanity
diff --git a/.gitlab-ci/crosvm-runner.sh b/.gitlab-ci/crosvm-runner.sh
index 15e6655e92f..0acd7d77127 100755
--- a/.gitlab-ci/crosvm-runner.sh
+++ b/.gitlab-ci/crosvm-runner.sh
@@ -93,8 +93,9 @@ set +e -x
NIR_DEBUG="novalidate" \
LIBGL_ALWAYS_SOFTWARE=${CROSVM_LIBGL_ALWAYS_SOFTWARE} \
GALLIUM_DRIVER=${CROSVM_GALLIUM_DRIVER} \
+VK_ICD_FILENAMES=$CI_PROJECT_DIR/install/share/vulkan/icd.d/${CROSVM_VK_DRIVER}_icd.x86_64.json \
crosvm run \
- --gpu "${CROSVM_GPU_ARGS}" -m 4096 -c 2 --disable-sandbox \
+ --gpu "${CROSVM_GPU_ARGS}" -m "${CROSVM_MEMORY:-4096}" -c 2 --disable-sandbox \
--shared-dir /:my_root:type=fs:writeback=true:timeout=60:cache=always \
--host_ip "192.168.30.1" --netmask "255.255.255.0" --mac "AA:BB:CC:00:00:12" \
-s $VM_SOCKET \
diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml
index 3f557f42e2a..58f282fe527 100644
--- a/.gitlab-ci/test-source-dep.yml
+++ b/.gitlab-ci/test-source-dep.yml
@@ -363,6 +363,15 @@
*virgl_file_list
when: manual
+.venus-rules:
+ stage: layered-backends
+ rules:
+ - !reference [.lavapipe-rules, rules]
+ - changes: &venus_file_list
+ - src/virtio/**/*
+ when: on_success
+ - when: never
+
.radeonsi-rules:
stage: amd
rules:
diff --git a/src/virtio/ci/deqp-venus.toml b/src/virtio/ci/deqp-venus.toml
new file mode 100644
index 00000000000..752d7ecac87
--- /dev/null
+++ b/src/virtio/ci/deqp-venus.toml
@@ -0,0 +1,6 @@
+[[deqp]]
+deqp = "/install/crosvm-runner.sh"
+caselists = [ "/deqp/mustpass/vk-master.txt" ]
+deqp_args = [ "/deqp/external/vulkancts/modules/vulkan/deqp-vk" ]
+timeout = 30.0 # Starting lots of Crosvm instances simultaneously can take some time
+renderer_check = "Virtio-GPU Venus.*llvmpipe"
diff --git a/src/virtio/ci/gitlab-ci.yml b/src/virtio/ci/gitlab-ci.yml
new file mode 100644
index 00000000000..a7117e853b1
--- /dev/null
+++ b/src/virtio/ci/gitlab-ci.yml
@@ -0,0 +1,24 @@
+.venus-lavapipe-test:
+ extends:
+ - .test-vk
+ - .venus-rules
+ variables:
+ VK_DRIVER: virtio
+ CROSVM_GALLIUM_DRIVER: "llvmpipe"
+ CROSVM_VK_DRIVER: "lvp"
+ CROSVM_GPU_ARGS: "vulkan=true,gles=false,backend=virglrenderer,egl=true,surfaceless=true"
+
+venus-lavapipe:
+ extends:
+ - .deqp-test-vk
+ - .venus-lavapipe-test
+ variables:
+ DEQP_FRACTION: 15
+ DEQP_SUITE: venus
+ GPU_VERSION: venus
+ LP_NUM_THREADS: 1 # There will be FDO_CI_CONCURRENT Crosvm processes, so each should use a single thread
+ FDO_CI_CONCURRENT: 32 # Seems to be the fastest value, more gets actually slower
+ CROSVM_MEMORY: 3072
+ FLAKES_CHANNEL: "#virgl-ci"
+ tags:
+ - mesa-swrast
diff --git a/src/virtio/ci/venus-fails.txt b/src/virtio/ci/venus-fails.txt
new file mode 100644
index 00000000000..543fcb602a4
--- /dev/null
+++ b/src/virtio/ci/venus-fails.txt
@@ -0,0 +1,16 @@
+# Failures likely due to lavapipe (i.e. the intersection of observed failures and lvp-fails.txt)
+dEQP-VK.glsl.crash_test.divbyzero_comp,Crash
+
+# Full Venus list
+dEQP-VK.multiview.queries.15_15_15_15,Fail
+dEQP-VK.multiview.queries.15,Fail
+dEQP-VK.multiview.queries.5_10_5_10,Fail
+dEQP-VK.multiview.renderpass2.queries.15_15_15_15,Fail
+dEQP-VK.multiview.renderpass2.queries.15,Fail
+dEQP-VK.multiview.renderpass2.queries.5_10_5_10,Fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.enable_raster,Fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.enable_raster,Fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.enable_raster,Fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.enable_raster,Fail
+dEQP-VK.pipeline.extended_dynamic_state.two_draws_dynamic.enable_raster,Fail
+dEQP-VK.pipeline.timestamp.calibrated.host_domain_test,Fail \ No newline at end of file
diff --git a/src/virtio/ci/venus-flakes.txt b/src/virtio/ci/venus-flakes.txt
new file mode 100644
index 00000000000..2c3d10ca85c
--- /dev/null
+++ b/src/virtio/ci/venus-flakes.txt
@@ -0,0 +1,7 @@
+dEQP-VK.synchronization.*16384
+dEQP-VK.synchronization.*262144
+dEQP-VK.spirv_assembly.instruction.graphics.64bit_compare.double.frag_opfordnotequal_nonan_vector
+dEQP-VK.robustness.buffer_access.fragment.vec4_copy.r32_uint.oob_storage_read.range_4_bytes
+dEQP-VK.robustness.buffer_access.fragment.vec4_copy.r32_uint.oob_storage_write.range_32_bytes
+dEQP-VK.robustness.buffer_access.fragment.texel_copy.r32g32b32a32_sfloat.oob_storage_write.range_3_texels
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4 \ No newline at end of file
diff --git a/src/virtio/ci/venus-skips.txt b/src/virtio/ci/venus-skips.txt
new file mode 100644
index 00000000000..e67e91bb1e3
--- /dev/null
+++ b/src/virtio/ci/venus-skips.txt
@@ -0,0 +1,2 @@
+# These take so long that cause caselist batches to timeout
+dEQP-VK.pipeline.monolithic.* \ No newline at end of file