ci/anv: Add testing of the GLES CTS using ANGLE on TGL.
We're interested in a Vulkan-only stack in Chrome OS, where Android's GLES would be provided by ANGLE-over-Venus-over-ANV. Let's get some testing covering ANGLE-on-ANV first. This is structured as a single partial job pre-merge to catch most regressions, and a longer manual job to do full coverage for when you need to update the xfails list. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20163>
This commit is contained in:
@@ -110,6 +110,7 @@ for var in \
|
||||
SKQP_ASSETS_DIR \
|
||||
SKQP_BACKENDS \
|
||||
TU_DEBUG \
|
||||
USE_ANGLE \
|
||||
VIRGL_HOST_API \
|
||||
WAFFLE_PLATFORM \
|
||||
VK_CPU \
|
||||
|
@@ -21,6 +21,10 @@ export EGL_PLATFORM=surfaceless
|
||||
export VK_ICD_FILENAMES="$PWD"/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_CPU:-$(uname -m)}.json
|
||||
export OCL_ICD_VENDORS="$PWD"/install/etc/OpenCL/vendors/
|
||||
|
||||
if [ -n "$USE_ANGLE" ]; then
|
||||
export LD_LIBRARY_PATH=/angle:$LD_LIBRARY_PATH
|
||||
fi
|
||||
|
||||
RESULTS="$PWD/${DEQP_RESULTS_DIR:-results}"
|
||||
mkdir -p "$RESULTS"
|
||||
|
||||
|
@@ -924,6 +924,12 @@
|
||||
- !reference [.iris-rules, rules]
|
||||
- !reference [.anv-rules, rules]
|
||||
|
||||
.intel-manual-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- !reference [.iris-manual-rules, rules]
|
||||
- !reference [.anv-manual-rules, rules]
|
||||
|
||||
.virgl-rules:
|
||||
stage: layered-backends
|
||||
rules:
|
||||
|
29
src/intel/ci/angle-anv-tgl-fails.txt
Normal file
29
src/intel/ci/angle-anv-tgl-fails.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
# Fails on both radv and anv:
|
||||
# "Valid format used but glReadPixels failed for input = [GL_RED, GL_BYTE] output = [GL_RGBA, GL_UNSIGNED_BYTE]"
|
||||
# Conclusion is it's an ext spec+test bug
|
||||
# https://gitlab.khronos.org/opengl/API/-/issues/180
|
||||
KHR-GLES3.packed_pixels.pbo_rectangle.r8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.pbo_rectangle.rg8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.pbo_rectangle.rgba8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.rectangle.r8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.rectangle.rg8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.rectangle.rgba8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.varied_rectangle.r8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.varied_rectangle.rg8_snorm,Fail
|
||||
KHR-GLES3.packed_pixels.varied_rectangle.rgba8_snorm,Fail
|
||||
|
||||
# ANGLE marks non-shadow linear-filtered textures incomplete (see GLES 3.2 spec
|
||||
# 8.17 Texture Completeness), so you get a fallback texture sample, while Mesa
|
||||
# incorrectly marks it complete. The CTS incorrectly expects texture
|
||||
# completeness.
|
||||
# https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4292
|
||||
# https://bugs.chromium.org/p/angleproject/issues/detail?id=7877
|
||||
KHR-GLES31.core.texture_border_clamp.Texture2DDC16Linear,Fail
|
||||
KHR-GLES31.core.texture_border_clamp.Texture2DDC32FLinear,Fail
|
||||
|
||||
# Regression between ANGLE db67df60f8c8020017c36b2dd446bc3d86614ffe and
|
||||
# 82f1cee01a9ea24960e8f23b24d348fccbe0aae0
|
||||
# Fails the same, with no validation complaints on ADL. Doesn't fail on CFL.
|
||||
multisample-dEQP-GLES3.functional.depth_stencil_clear.depth_scissored,Fail
|
||||
multisample-dEQP-GLES3.functional.depth_stencil_clear.depth_scissored_masked,Fail
|
||||
multisample-dEQP-GLES3.functional.depth_stencil_clear.depth_stencil_scissored,Fail
|
17
src/intel/ci/angle-anv-tgl-flakes.txt
Normal file
17
src/intel/ci/angle-anv-tgl-flakes.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
# May be bogus, happened around a bunch of interpolate_at_sample hangs
|
||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines_wide
|
||||
|
||||
# The last quad that was supposed to be overwritten by red has a green triangle showing.
|
||||
dEQP-GLES3.functional.multisample.fbo_8_samples.constancy_alpha_to_coverage
|
||||
|
||||
dEQP-GLES3.functional.multisample.fbo_8_samples.constancy_both_inverted
|
||||
|
||||
# "Failure: Non-zero green color component detected - should have been completely overwritten by red quad"
|
||||
# the "rendered image" looks suspiciously black, though, which is the clear color?
|
||||
dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_sample_coverage
|
||||
dEQP-GLES3.functional.multisample.fbo_max_samples.constancy_sample_coverage_inverted
|
||||
|
||||
# non-gpu-hang, frequent flakes that can happen deep in a series of copy_image tests.
|
||||
# multiple fails per caselist, with those fails separated by passes!
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_.*_mixed.*
|
||||
dEQP-GLES31.functional.copy_image.*viewclass_.*
|
7
src/intel/ci/angle-anv-tgl-skips.txt
Normal file
7
src/intel/ci/angle-anv-tgl-skips.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
# Unlike zink which does support it, ANGLE relies on a waiver to not implement
|
||||
# capturing individual array elements (see waivers.xml and gles3-waivers.txt in the CTS)
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.*
|
||||
dEQP-GLES3.functional.transform_feedback.random.*
|
||||
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.*_array_element
|
||||
dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.type.*.array.*
|
||||
KHR-GLES31.core.program_interface_query.transform-feedback-types
|
68
src/intel/ci/deqp-anv-tgl-angle-full.toml
Normal file
68
src/intel/ci/deqp-anv-tgl-angle-full.toml
Normal file
@@ -0,0 +1,68 @@
|
||||
# Basic test set
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles2/deqp-gles2"
|
||||
caselists = ["/deqp/mustpass/gles2-master.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
version_check = "GL ES 3.1"
|
||||
renderer_check = "ANGLE.*TGL"
|
||||
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles3/deqp-gles3"
|
||||
caselists = ["/deqp/mustpass/gles3-master.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles31/deqp-gles31"
|
||||
caselists = ["/deqp/mustpass/gles31-master.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
|
||||
# Note that KHR-GL3* test sets include all tests from the previous
|
||||
# version, so we only need to run one test list (unlike dEQP-GLES,
|
||||
# where the test sets are separate).
|
||||
[[deqp]]
|
||||
deqp = "/deqp/external/openglcts/modules/glcts"
|
||||
caselists = [
|
||||
"/deqp/mustpass/gles2-khr-master.txt",
|
||||
"/deqp/mustpass/gles3-khr-master.txt",
|
||||
"/deqp/mustpass/gles31-khr-master.txt",
|
||||
]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
|
||||
# 565-no-depth-no-stencil: Not supported with angle on X11?
|
||||
|
||||
# multisample
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles3/deqp-gles3"
|
||||
caselists = ["/deqp/mustpass/gles3-multisample.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms4",
|
||||
]
|
||||
prefix = "multisample-"
|
||||
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles31/deqp-gles31"
|
||||
caselists = ["/deqp/mustpass/gles31-multisample.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms4",
|
||||
]
|
||||
prefix = "multisample-"
|
70
src/intel/ci/deqp-anv-tgl-angle.toml
Normal file
70
src/intel/ci/deqp-anv-tgl-angle.toml
Normal file
@@ -0,0 +1,70 @@
|
||||
# Basic test set
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles2/deqp-gles2"
|
||||
caselists = ["/deqp/mustpass/gles2-master.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
version_check = "GL ES 3.1"
|
||||
renderer_check = "ANGLE.*TGL"
|
||||
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles3/deqp-gles3"
|
||||
caselists = ["/deqp/mustpass/gles3-master.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
fraction = 3
|
||||
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles31/deqp-gles31"
|
||||
caselists = ["/deqp/mustpass/gles31-master.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
fraction = 3
|
||||
|
||||
# Note that KHR-GL3* test sets include all tests from the previous
|
||||
# version, so we only need to run one test list (unlike dEQP-GLES,
|
||||
# where the test sets are separate).
|
||||
[[deqp]]
|
||||
deqp = "/deqp/external/openglcts/modules/glcts"
|
||||
caselists = [
|
||||
"/deqp/mustpass/gles2-khr-master.txt",
|
||||
"/deqp/mustpass/gles3-khr-master.txt",
|
||||
"/deqp/mustpass/gles31-khr-master.txt",
|
||||
]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms0",
|
||||
]
|
||||
|
||||
# 565-no-depth-no-stencil: Not supported with angle on X11?
|
||||
|
||||
# multisample
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles3/deqp-gles3"
|
||||
caselists = ["/deqp/mustpass/gles3-multisample.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms4",
|
||||
]
|
||||
prefix = "multisample-"
|
||||
|
||||
[[deqp]]
|
||||
deqp = "/deqp/modules/gles31/deqp-gles31"
|
||||
caselists = ["/deqp/mustpass/gles31-multisample.txt"]
|
||||
deqp_args = [
|
||||
"--deqp-surface-width=256", "--deqp-surface-height=256",
|
||||
"--deqp-surface-type=pbuffer", "--deqp-visibility=hidden",
|
||||
"--deqp-gl-config-name=rgba8888d24s8ms4",
|
||||
]
|
||||
prefix = "multisample-"
|
@@ -66,6 +66,26 @@ hasvk-hsw:
|
||||
variables:
|
||||
DEQP_FRACTION: 10
|
||||
|
||||
anv-tgl-angle:
|
||||
extends:
|
||||
- .anv-tgl-test
|
||||
- .intel-rules # Note: Xorg uses iris, so depend on both GL and vulkan
|
||||
variables:
|
||||
DEQP_SUITE: anv-tgl-angle
|
||||
GPU_VERSION: angle-anv-tgl
|
||||
VK_DRIVER: intel
|
||||
USE_ANGLE: 1
|
||||
# ANGLE requires X11 running for some reason.
|
||||
HWCI_START_XORG: 1
|
||||
|
||||
anv-tgl-angle-full:
|
||||
extends:
|
||||
- anv-tgl-angle
|
||||
- .intel-manual-rules
|
||||
variables:
|
||||
DEQP_SUITE: anv-tgl-angle-full
|
||||
JOB_TIMEOUT: 60
|
||||
|
||||
## Iris only
|
||||
# 5 boards
|
||||
.iris-apl-test:
|
||||
|
Reference in New Issue
Block a user