Module: Mesa
Branch: main
Commit: 8e6bdb2ed31f27c28d258859ec48e8e67f51ff41
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e6bdb2ed31f27c28d258859ec48e8e67f51ff41

Author: Omar Akkila <[email protected]>
Date:   Mon Oct 25 09:29:07 2021 +0200

ci: Add vulkan dEQP tests for venus

Co-authored-by: Corentin Noël <[email protected]>
Signed-off-by: Omar Akkila <[email protected]>
Acked-by: David Heidelberg <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15692>

---

 .gitlab-ci.yml                 |  1 +
 .gitlab-ci/crosvm-runner.sh    |  3 ++-
 .gitlab-ci/test-source-dep.yml |  9 +++++++++
 src/virtio/ci/deqp-venus.toml  |  6 ++++++
 src/virtio/ci/gitlab-ci.yml    | 24 ++++++++++++++++++++++++
 src/virtio/ci/venus-fails.txt  | 16 ++++++++++++++++
 src/virtio/ci/venus-flakes.txt |  7 +++++++
 src/virtio/ci/venus-skips.txt  |  2 ++
 8 files changed, 67 insertions(+), 1 deletion(-)

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

Reply via email to