ci/virtio: Add an Android Venus job on Intel Comet Lake

Introduce a Venus job running in Cuttlefish on Intel Comet Lake DUTs.

Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Co-authored-by: Antonio Ospite <antonio.ospite@collabora.com>
Co-authored-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35522>
diff --git a/.gitlab-ci/lava/lava-gitlab-ci.yml b/.gitlab-ci/lava/lava-gitlab-ci.yml
index 7127f4d..33d8f42 100644
--- a/.gitlab-ci/lava/lava-gitlab-ci.yml
+++ b/.gitlab-ci/lava/lava-gitlab-ci.yml
@@ -76,6 +76,24 @@
     KERNEL_IMAGE_TYPE: "zimage"
     BOOT_METHOD: u-boot
 
+.lava-x86_64-test-android:
+  extends:
+    - .use-debian/x86_64_test-android
+    - .lava-x86_64-test
+    - .android-variables
+  variables:
+    HWCI_ENABLE_X86_KVM: 1
+    HWCI_TEST_SCRIPT: install/cuttlefish-runner.sh
+    S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug
+  needs:
+    - !reference [.lava-test, needs]
+    - job: debian/x86_64_test-android
+      artifacts: false
+    - job: debian-x86_64 # The generic Linux build for the host will be downloaded later
+      artifacts: false
+    - job: debian-android # The Android build for the guest will be downloaded later and installed via adb
+      artifacts: false
+
 .lava-x86_64-test-gl:
   extends:
     - .use-debian/x86_64_test-gl
diff --git a/src/virtio/ci/android-angle-venus-anv-fails.txt b/src/virtio/ci/android-angle-venus-anv-fails.txt
new file mode 100644
index 0000000..171827d
--- /dev/null
+++ b/src/virtio/ci/android-angle-venus-anv-fails.txt
@@ -0,0 +1,2 @@
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_twice,Fail
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_twice,Fail
diff --git a/src/virtio/ci/deqp-android-angle-venus-anv.toml b/src/virtio/ci/deqp-android-angle-venus-anv.toml
new file mode 100644
index 0000000..5e83274
--- /dev/null
+++ b/src/virtio/ci/deqp-android-angle-venus-anv.toml
@@ -0,0 +1,18 @@
+# Android-specific vkcts test set
+[[deqp]]
+deqp = "/data/deqp/deqp-vk"
+caselists = ["/data/deqp/vk-main.txt"]
+include = ["dEQP-VK.api.external.memory.android_hardware_buffer.*"]
+renderer_check = "Virtio-GPU Venus.*Intel"
+
+# Basic EGL test set
+[[deqp]]
+deqp = "/data/deqp/deqp-egl-android"
+caselists = ["/data/deqp/egl-main.txt"]
+deqp_args = [
+    "--deqp-surface-width=256",
+    "--deqp-surface-height=256",
+    "--deqp-surface-type=pbuffer",
+    "--deqp-gl-config-name=rgba8888d24s8ms0",
+    "--deqp-visibility=hidden"
+]
diff --git a/src/virtio/ci/gitlab-ci-inc.yml b/src/virtio/ci/gitlab-ci-inc.yml
index 47517ed..465f525 100644
--- a/src/virtio/ci/gitlab-ci-inc.yml
+++ b/src/virtio/ci/gitlab-ci-inc.yml
@@ -26,6 +26,19 @@
     - !reference [.venus-manual-rules, rules]
     - !reference [.lavapipe-manual-rules, rules]
 
+.venus-anv-rules:
+  stage: layered-backends
+  rules:
+    - !reference [.venus-rules, rules]
+    - !reference [.anv-rules, rules]
+
+.venus-anv-manual-rules:
+  stage: layered-backends-nightly
+  extends: .no-auto-retry
+  rules:
+    - !reference [.venus-manual-rules, rules]
+    - !reference [.anv-manual-rules, rules]
+
 
 .venus-lavapipe-test:
   extends:
diff --git a/src/virtio/ci/gitlab-ci.yml b/src/virtio/ci/gitlab-ci.yml
index 88f750a..e5866d29 100644
--- a/src/virtio/ci/gitlab-ci.yml
+++ b/src/virtio/ci/gitlab-ci.yml
@@ -46,3 +46,17 @@
     GPU_VERSION: venus
     DEQP_SUITE: android-venus-angle
     # TODO: define DEQP_FRACTION?
+
+android-angle-venus-anv-cml:
+  extends:
+    - .lava-x86_64-test-android
+    - .anv-test
+    - .test-angle
+    - .lava-asus-C436FA-Flip-hatch:x86_64
+    - .venus-anv-rules
+  variables:
+    ANDROID_GPU_MODE: venus_guest_angle
+    DEQP_SUITE: android-angle-venus-anv
+    GPU_VERSION: android-angle-venus-anv
+    HWCI_KERNEL_MODULES: "i915,vhost_vsock"
+    VK_DRIVER: intel