Compare commits
69 Commits
mesa-20.1.
...
mesa-20.0.
Author | SHA1 | Date | |
---|---|---|---|
|
6bbbef9699 | ||
|
fa0dcef2ef | ||
|
4558bdb95a | ||
|
75ea9c808d | ||
|
e5f13bca20 | ||
|
f93c8d8598 | ||
|
c4e1dd07eb | ||
|
f86e27156d | ||
|
9724b0f32c | ||
|
a3bd400c14 | ||
|
32dc7fff47 | ||
|
027f9c887c | ||
|
f3f4751851 | ||
|
a25c7674aa | ||
|
1d17f42732 | ||
|
e393404ff1 | ||
|
1f8db81632 | ||
|
8f29aaa2cf | ||
|
1e0cc313ba | ||
|
d96f0faacf | ||
|
203710e94c | ||
|
d189ab9fcc | ||
|
bd934ff613 | ||
|
51f7d81dd2 | ||
|
06a9d51f27 | ||
|
419c992e65 | ||
|
440e52ca03 | ||
|
8dede1745c | ||
|
222b47c6c5 | ||
|
ccf70209d2 | ||
|
7538851a22 | ||
|
c937b84643 | ||
|
b8b9233d5a | ||
|
e163a39994 | ||
|
ce7f021269 | ||
|
26adf4b532 | ||
|
27e39daa4b | ||
|
69604c6fd4 | ||
|
450657e26c | ||
|
ecf9055e9c | ||
|
66bb55cc68 | ||
|
958f06b99f | ||
|
7bc056dd78 | ||
|
b5a345595a | ||
|
0cac8f332a | ||
|
e87c0c17b2 | ||
|
e6fbf8d9d3 | ||
|
208fb2edfa | ||
|
623126e741 | ||
|
4b43bee72f | ||
|
e33167af79 | ||
|
f60209b935 | ||
|
0aff56bd7a | ||
|
0bacf9963b | ||
|
fc7ff68df7 | ||
|
4be5ef5caa | ||
|
1a57247da8 | ||
|
deeba167fd | ||
|
c9cf6b5f60 | ||
|
46c7314770 | ||
|
f1c8089f97 | ||
|
5d9a1303ba | ||
|
8585ae7c03 | ||
|
6c705ea125 | ||
|
ea7ab69455 | ||
|
6c0b18c5d1 | ||
|
102aa6d549 | ||
|
b611a616c3 | ||
|
21f5d79c7b |
584
.gitlab-ci.yml
584
.gitlab-ci.yml
@@ -1,39 +1,28 @@
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: mesa/mesa
|
||||
UPSTREAM_REPO: mesa/mesa
|
||||
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: 4b2997287317808830e9cb4eb0f99b691787da88
|
||||
- project: 'wayland/ci-templates'
|
||||
# Must be the same as in .gitlab-ci/lava-gitlab-ci.yml
|
||||
ref: 0a9bdd33a98f05af6761ab118b5074952242aab0
|
||||
file: '/templates/debian.yml'
|
||||
- local: '.gitlab-ci/lava-gitlab-ci.yml'
|
||||
- local: '.gitlab-ci/test-source-dep.yml'
|
||||
|
||||
stages:
|
||||
- container
|
||||
- meson-x86_64
|
||||
- scons
|
||||
- meson-misc
|
||||
- llvmpipe
|
||||
- softpipe
|
||||
- freedreno
|
||||
- panfrost
|
||||
- radv
|
||||
- lima
|
||||
- virgl
|
||||
- build
|
||||
- test
|
||||
- success
|
||||
|
||||
|
||||
# When to automatically run the CI
|
||||
.ci-run-policy:
|
||||
rules:
|
||||
# If any files affecting the pipeline are changed, build/test jobs run
|
||||
# automatically once all dependency jobs have passed
|
||||
- changes: &all_paths
|
||||
# Run pipeline by default for merge requests changing files affecting it
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
changes: &paths
|
||||
- VERSION
|
||||
- bin/git_sha1_gen.py
|
||||
- bin/install_megadrivers.py
|
||||
- bin/meson_get_version.py
|
||||
- bin/symbols-check.py
|
||||
- bin/**/*
|
||||
# GitLab CI
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
@@ -49,7 +38,16 @@ stages:
|
||||
- include/**/*
|
||||
- src/**/*
|
||||
when: on_success
|
||||
# Otherwise, build/test jobs won't run
|
||||
# Run pipeline by default in the main project if files affecting it were
|
||||
# changed
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
changes:
|
||||
*paths
|
||||
when: on_success
|
||||
# Allow triggering jobs manually on branches of forked projects
|
||||
- if: '$CI_PROJECT_PATH != "mesa/mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
||||
when: manual
|
||||
# Otherwise, most jobs won't run
|
||||
- when: never
|
||||
retry:
|
||||
max: 2
|
||||
@@ -65,7 +63,7 @@ success:
|
||||
- merge_requests
|
||||
except:
|
||||
changes:
|
||||
*all_paths
|
||||
*paths
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
@@ -74,7 +72,6 @@ success:
|
||||
|
||||
.ci-deqp-artifacts:
|
||||
artifacts:
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
when: always
|
||||
untracked: false
|
||||
paths:
|
||||
@@ -84,7 +81,7 @@ success:
|
||||
|
||||
# Build the CI docker images.
|
||||
#
|
||||
# FDO_DISTRIBUTION_TAG is the tag of the docker image used by later stage jobs. If the
|
||||
# DEBIAN_TAG is the tag of the docker image used by later stage jobs. If the
|
||||
# image doesn't exist yet, the container stage job generates it.
|
||||
#
|
||||
# In order to generate a new image, one should generally change the tag.
|
||||
@@ -103,40 +100,20 @@ success:
|
||||
stage: container
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
rules:
|
||||
# Run pipeline by default if it was triggered by Marge Bot, is for a
|
||||
# merge request, and any files affecting it were changed
|
||||
- if: '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
changes:
|
||||
*all_paths
|
||||
when: on_success
|
||||
# Run pipeline by default in the main project if any files affecting it were
|
||||
# changed
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
changes:
|
||||
*all_paths
|
||||
when: on_success
|
||||
# Allow triggering jobs manually for MRs or branches of forked projects if
|
||||
# any files affecting the pipeline were changed
|
||||
- changes:
|
||||
*all_paths
|
||||
when: manual
|
||||
# Otherwise, container jobs won't run
|
||||
- when: never
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: buster-slim
|
||||
FDO_REPO_SUFFIX: "debian/$CI_JOB_NAME"
|
||||
FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
||||
DEBIAN_VERSION: buster-slim
|
||||
REPO_SUFFIX: $CI_JOB_NAME
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
||||
# no need to pull the whole repo to build the container image
|
||||
GIT_STRATEGY: none
|
||||
|
||||
# Debian 10 based x86 build image
|
||||
x86_build:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .debian@container-ifnot-exists
|
||||
- .container
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: &x86_build "2020-05-18-baremetal-2"
|
||||
DEBIAN_TAG: &x86_build "2020-01-14"
|
||||
|
||||
.use-x86_build:
|
||||
variables:
|
||||
@@ -149,20 +126,32 @@ x86_build:
|
||||
x86_test-gl:
|
||||
extends: x86_build
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: &x86_test-gl "2020-05-18"
|
||||
DEBIAN_TAG: &x86_test-gl "2020-01-14"
|
||||
|
||||
# Debian 10 based x86 test image for VK
|
||||
x86_test-vk:
|
||||
extends: x86_build
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: &x86_test-vk "2020-05-18"
|
||||
DEBIAN_TAG: &x86_test-vk "2020-01-14"
|
||||
# Can only be triggered manually on personal branches because RADV is the only
|
||||
# driver that does Vulkan testing at the moment.
|
||||
rules:
|
||||
# Never build the test image for VK by default in the main project.
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
when: never
|
||||
# Never build the test image for VK by default for merge requests.
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
when: never
|
||||
# Otherwise, allow building it manually for personal branches.
|
||||
- when: manual
|
||||
|
||||
|
||||
# Debian 9 based x86 build image (old LLVM)
|
||||
x86_build_old:
|
||||
extends: x86_build
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: &x86_build_old "2019-03-18-jflags"
|
||||
FDO_DISTRIBUTION_VERSION: stretch-slim
|
||||
DEBIAN_TAG: &x86_build_old "2019-09-18"
|
||||
DEBIAN_VERSION: stretch-slim
|
||||
|
||||
.use-x86_build_old:
|
||||
variables:
|
||||
@@ -174,10 +163,10 @@ x86_build_old:
|
||||
# Debian 10 based ARM build image
|
||||
arm_build:
|
||||
extends:
|
||||
- .fdo.container-build@debian@arm64v8
|
||||
- .debian@container-ifnot-exists@arm64v8
|
||||
- .container
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: &arm_build "2020-05-28-cheza-2"
|
||||
DEBIAN_TAG: &arm_build "2020-01-14"
|
||||
|
||||
.use-arm_build:
|
||||
variables:
|
||||
@@ -186,65 +175,28 @@ arm_build:
|
||||
needs:
|
||||
- arm_build
|
||||
|
||||
# x86 image with ARM rootfses for baremetal testing.
|
||||
# Debian 10 based ARM test image
|
||||
arm_test:
|
||||
extends: x86_build
|
||||
extends: arm_build
|
||||
variables:
|
||||
FDO_DISTRIBUTION_TAG: &arm_test "2020-05-28-cheza-2"
|
||||
DEBIAN_TAG: &arm_test "2019-12-18"
|
||||
|
||||
.use-arm_test:
|
||||
variables:
|
||||
TAG: *arm_test
|
||||
image: "$CI_REGISTRY_IMAGE/debian/arm_test:$TAG"
|
||||
needs:
|
||||
- meson-arm64
|
||||
- arm_test
|
||||
|
||||
# Native Windows docker builds
|
||||
#
|
||||
# Unlike the above Linux-based builds - including MinGW/SCons builds which
|
||||
# cross-compile for Windows - which use the freedesktop ci-templates, we
|
||||
# cannot use the same scheme here. As Windows lacks support for
|
||||
# Docker-in-Docker, and Podman does not run natively on Windows, we have
|
||||
# to open-code much of the same ourselves.
|
||||
#
|
||||
# This is achieved by first running in a native Windows shell instance
|
||||
# (host PowerShell) in the container stage to build and push the image,
|
||||
# then in the build stage by executing inside Docker.
|
||||
|
||||
.windows-docker-vs2019:
|
||||
variables:
|
||||
WINDOWS_TAG: "2020-03-24"
|
||||
WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/windows/x64_build:$WINDOWS_TAG"
|
||||
WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows/x64_build:$WINDOWS_TAG"
|
||||
|
||||
windows_build_vs2019:
|
||||
extends:
|
||||
- .container
|
||||
- .windows-docker-vs2019
|
||||
stage: container
|
||||
variables:
|
||||
GIT_STRATEGY: fetch # we do actually need the full repository though
|
||||
tags:
|
||||
- windows
|
||||
- shell
|
||||
- "1809"
|
||||
- mesa
|
||||
script:
|
||||
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $WINDOWS_IMAGE $WINDOWS_UPSTREAM_IMAGE
|
||||
|
||||
.use-windows_build_vs2019:
|
||||
extends: .windows-docker-vs2019
|
||||
image: "$WINDOWS_IMAGE"
|
||||
needs:
|
||||
- windows_build_vs2019
|
||||
|
||||
# BUILD
|
||||
|
||||
# Shared between windows and Linux
|
||||
.build-common:
|
||||
extends: .ci-run-policy
|
||||
stage: build
|
||||
artifacts:
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
when: always
|
||||
paths:
|
||||
- _build/meson-logs/*.txt
|
||||
@@ -270,10 +222,7 @@ windows_build_vs2019:
|
||||
.build-windows:
|
||||
extends: .build-common
|
||||
tags:
|
||||
- windows
|
||||
- docker
|
||||
- "1809"
|
||||
- mesa
|
||||
- mesa-windows
|
||||
cache:
|
||||
key: ${CI_JOB_NAME}
|
||||
paths:
|
||||
@@ -283,7 +232,6 @@ windows_build_vs2019:
|
||||
extends:
|
||||
- .build-linux
|
||||
- .use-x86_build
|
||||
stage: meson-x86_64
|
||||
variables:
|
||||
LLVM_VERSION: 9
|
||||
script:
|
||||
@@ -293,7 +241,6 @@ windows_build_vs2019:
|
||||
extends:
|
||||
- .build-linux
|
||||
- .use-x86_build
|
||||
stage: scons
|
||||
variables:
|
||||
SCONSFLAGS: "-j4"
|
||||
script:
|
||||
@@ -312,16 +259,14 @@ meson-testing:
|
||||
-D platforms=x11,drm,surfaceless
|
||||
GALLIUM_ST: >
|
||||
-D dri3=true
|
||||
GALLIUM_DRIVERS: "swrast,virgl"
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
VULKAN_DRIVERS: amd
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
-D werror=true
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
|
||||
meson-gallium:
|
||||
meson-main:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
@@ -330,6 +275,7 @@ meson-gallium:
|
||||
-D gbm=true
|
||||
-D egl=true
|
||||
-D platforms=x11,wayland,drm,surfaceless
|
||||
DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
|
||||
GALLIUM_ST: >
|
||||
-D dri3=true
|
||||
-D gallium-extra-hud=true
|
||||
@@ -348,24 +294,9 @@ meson-gallium:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/run-shader-db.sh
|
||||
|
||||
meson-classic:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glx=dri
|
||||
-D gbm=true
|
||||
-D egl=true
|
||||
-D platforms=x11,wayland,drm,surfaceless
|
||||
DRI_DRIVERS: "auto"
|
||||
EXTRA_OPTION: >
|
||||
-D osmesa=classic
|
||||
-D tools=all
|
||||
|
||||
.meson-cross:
|
||||
extends:
|
||||
- .meson-build
|
||||
stage: meson-misc
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_LOADERS: >
|
||||
@@ -382,7 +313,6 @@ meson-classic:
|
||||
-D gallium-va=false
|
||||
-D gallium-xa=false
|
||||
-D gallium-nine=false
|
||||
LLVM_VERSION: "8"
|
||||
|
||||
.meson-arm:
|
||||
extends:
|
||||
@@ -392,6 +322,8 @@ meson-classic:
|
||||
VULKAN_DRIVERS: freedreno
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
-D I-love-half-baked-turnips=true
|
||||
tags:
|
||||
- aarch64
|
||||
|
||||
@@ -402,8 +334,6 @@ meson-armhf:
|
||||
variables:
|
||||
CROSS: armhf
|
||||
LLVM_VERSION: "7"
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=false
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
@@ -413,22 +343,12 @@ meson-arm64:
|
||||
- .meson-arm
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
VULKAN_DRIVERS: "freedreno"
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=false
|
||||
LLVM_VERSION: "8"
|
||||
VULKAN_DRIVERS: "freedreno,amd"
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
|
||||
meson-arm64-build-test:
|
||||
extends:
|
||||
- .meson-arm
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
VULKAN_DRIVERS: "amd"
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
|
||||
meson-clang:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
@@ -441,20 +361,27 @@ meson-clang:
|
||||
CC: "ccache clang-9"
|
||||
CXX: "ccache clang++-9"
|
||||
|
||||
meson-windows-vs2019:
|
||||
.meson-windows:
|
||||
extends:
|
||||
- .build-windows
|
||||
- .use-windows_build_vs2019
|
||||
stage: meson-misc
|
||||
before_script:
|
||||
- $ENV:ARCH = "x86"
|
||||
- $ENV:VERSION = "2019\Community"
|
||||
script:
|
||||
- . .\.gitlab-ci\windows\mesa_build.ps1
|
||||
- cmd /C .gitlab-ci\meson-build.bat
|
||||
|
||||
scons-swr:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: "swr=1"
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
LLVM_VERSION: "6.0"
|
||||
|
||||
scons-win64:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: platform=windows machine=x86_64 debug=1
|
||||
SCONS_TARGET: platform=windows machine=x86_64
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
allow_failure: true
|
||||
|
||||
meson-clover:
|
||||
extends: .meson-build
|
||||
@@ -524,51 +451,25 @@ meson-vulkan:
|
||||
VULKAN_DRIVERS: intel,amd,freedreno
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-overlay-layer=true
|
||||
-D werror=true
|
||||
|
||||
# While the main point of this build is testing the i386 cross build,
|
||||
# we also use this one to test some other options that are exclusive
|
||||
# with meson-main's choices (classic swrast and osmesa)
|
||||
meson-i386:
|
||||
extends: .meson-cross
|
||||
variables:
|
||||
CROSS: i386
|
||||
VULKAN_DRIVERS: intel,amd
|
||||
GALLIUM_DRIVERS: "iris,r300,radeonsi,swrast,virgl"
|
||||
VULKAN_DRIVERS: intel
|
||||
DRI_DRIVERS: "swrast"
|
||||
GALLIUM_DRIVERS: "iris"
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-overlay-layer=true
|
||||
-D llvm=false
|
||||
-D osmesa=classic
|
||||
-D werror=true
|
||||
script:
|
||||
- dpkg -i /var/cache/apt/archives/$CROSS/*.deb
|
||||
- .gitlab-ci/meson-build.sh
|
||||
|
||||
meson-s390x:
|
||||
extends:
|
||||
- .meson-cross
|
||||
tags:
|
||||
- kvm
|
||||
variables:
|
||||
CROSS: s390x
|
||||
EXTRA_OPTION: >
|
||||
-D werror=true
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
script:
|
||||
# For unknown reasons "too many" installed i386 libraries cause qemu to
|
||||
# crash while executing llvm-config for s390x.
|
||||
- apt-get purge -y wine32
|
||||
- apt-get autoremove -y --purge
|
||||
- dpkg -i /var/cache/apt/archives/$CROSS/*.deb
|
||||
- .gitlab-ci/meson-build.sh
|
||||
|
||||
meson-ppc64el:
|
||||
extends:
|
||||
- meson-s390x
|
||||
variables:
|
||||
CROSS: ppc64el
|
||||
EXTRA_OPTION: ""
|
||||
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl"
|
||||
VULKAN_DRIVERS: "amd"
|
||||
|
||||
meson-mingw32-x86_64:
|
||||
extends: .meson-build
|
||||
stage: meson-misc
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_DRIVERS: ""
|
||||
@@ -578,9 +479,26 @@ meson-mingw32-x86_64:
|
||||
-Dosmesa=gallium
|
||||
--cross-file=.gitlab-ci/x86_64-w64-mingw32
|
||||
|
||||
scons:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: "llvm=1"
|
||||
SCONS_CHECK_COMMAND: "scons llvm=1 force_scons=1 check"
|
||||
script:
|
||||
- SCONS_TARGET="" SCONS_CHECK_COMMAND="scons check force_scons=1" .gitlab-ci/scons-build.sh
|
||||
- LLVM_VERSION=9 .gitlab-ci/scons-build.sh
|
||||
|
||||
scons-old-llvm:
|
||||
extends:
|
||||
- scons
|
||||
- .use-x86_build_old
|
||||
script:
|
||||
- LLVM_VERSION=3.9 .gitlab-ci/scons-build.sh
|
||||
|
||||
.test:
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
stage: test
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
before_script:
|
||||
@@ -590,7 +508,7 @@ meson-mingw32-x86_64:
|
||||
- LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
|
||||
artifacts:
|
||||
when: always
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||
paths:
|
||||
- results/
|
||||
dependencies:
|
||||
@@ -603,7 +521,6 @@ meson-mingw32-x86_64:
|
||||
TAG: *x86_test-gl
|
||||
image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:$TAG"
|
||||
needs:
|
||||
- x86_build
|
||||
- meson-testing
|
||||
- x86_test-gl
|
||||
|
||||
@@ -614,24 +531,21 @@ meson-mingw32-x86_64:
|
||||
TAG: *x86_test-vk
|
||||
image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:$TAG"
|
||||
needs:
|
||||
- x86_build
|
||||
- meson-testing
|
||||
- x86_test-vk
|
||||
|
||||
.piglit-test:
|
||||
extends:
|
||||
- .test-gl
|
||||
- .llvmpipe-rules
|
||||
extends: .test-gl
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||
paths:
|
||||
- summary/
|
||||
variables:
|
||||
LIBGL_ALWAYS_SOFTWARE: 1
|
||||
PIGLIT_NO_WINDOW: 1
|
||||
script:
|
||||
- install/piglit/run.sh
|
||||
- artifacts/piglit/run.sh
|
||||
|
||||
piglit-quick_gl:
|
||||
extends: .piglit-test
|
||||
@@ -668,7 +582,7 @@ piglit-quick_shader:
|
||||
variables:
|
||||
DEQP_SKIPS: deqp-default-skips.txt
|
||||
script:
|
||||
- ./install/deqp-runner.sh
|
||||
- ./artifacts/deqp-runner.sh
|
||||
|
||||
.deqp-test-gl:
|
||||
extends:
|
||||
@@ -682,12 +596,7 @@ piglit-quick_shader:
|
||||
variables:
|
||||
DEQP_VER: vk
|
||||
|
||||
.fossilize-test:
|
||||
extends: .test-vk
|
||||
script:
|
||||
- ./install/fossilize-runner.sh
|
||||
|
||||
llvmpipe-gles2:
|
||||
test-llvmpipe-gles2:
|
||||
variables:
|
||||
DEQP_VER: gles2
|
||||
DEQP_PARALLEL: 4
|
||||
@@ -697,98 +606,42 @@ llvmpipe-gles2:
|
||||
LP_NUM_THREADS: 0
|
||||
DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
DEQP_EXPECTED_RENDERER: llvmpipe
|
||||
extends:
|
||||
- .deqp-test-gl
|
||||
- .llvmpipe-rules
|
||||
extends: .deqp-test-gl
|
||||
|
||||
softpipe-gles2:
|
||||
extends:
|
||||
- llvmpipe-gles2
|
||||
- .softpipe-rules
|
||||
test-softpipe-gles2:
|
||||
extends: test-llvmpipe-gles2
|
||||
variables:
|
||||
DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
|
||||
DEQP_SKIPS: deqp-softpipe-skips.txt
|
||||
GALLIUM_DRIVER: "softpipe"
|
||||
DEQP_EXPECTED_RENDERER: softpipe
|
||||
|
||||
softpipe-gles3:
|
||||
test-softpipe-gles3:
|
||||
parallel: 2
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
extends: softpipe-gles2
|
||||
extends: test-softpipe-gles2
|
||||
|
||||
softpipe-gles31:
|
||||
test-softpipe-gles31:
|
||||
parallel: 4
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
extends: softpipe-gles2
|
||||
|
||||
virgl-gles2:
|
||||
variables:
|
||||
DEQP_VER: gles2
|
||||
DEQP_PARALLEL: 4
|
||||
NIR_VALIDATE: 0
|
||||
DEQP_NO_SAVE_RESULTS: 1
|
||||
# Don't use threads inside llvmpipe, we've already got all 4 cores
|
||||
# busy with DEQP_PARALLEL.
|
||||
LP_NUM_THREADS: 0
|
||||
DEQP_EXPECTED_FAILS: deqp-virgl-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
GALLIUM_DRIVER: "virpipe"
|
||||
DEQP_EXPECTED_RENDERER: virgl
|
||||
extends:
|
||||
- .deqp-test-gl
|
||||
- .virgl-rules
|
||||
|
||||
virgl-gles3:
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 3
|
||||
DEQP_RUNNER_OPTIONS: "--timeout 120"
|
||||
extends: virgl-gles2
|
||||
|
||||
virgl-gles31:
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 10
|
||||
DEQP_OPTIONS: "--deqp-log-images=disable"
|
||||
DEQP_RUNNER_OPTIONS: "--timeout 120"
|
||||
MESA_GLES_VERSION_OVERRIDE: "3.1"
|
||||
MESA_GLSL_VERSION_OVERRIDE: "310"
|
||||
MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
|
||||
extends: virgl-gles2
|
||||
|
||||
# Rules for tests that should not be present in MRs or the main
|
||||
# project's pipeline (don't block marge or report red on
|
||||
# mesa/mesamaster) but should be present on pipelines in personal
|
||||
# branches (so you can opt in to running the flaky test when you want
|
||||
# to).
|
||||
.test-manual:
|
||||
rules:
|
||||
- if: '$CI_PROJECT_PATH != "mesa/mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
||||
changes:
|
||||
*all_paths
|
||||
when: manual
|
||||
- when: never
|
||||
extends: test-softpipe-gles2
|
||||
|
||||
arm64_a630_gles2:
|
||||
extends:
|
||||
- arm64_a306_gles2
|
||||
- .deqp-test-gl
|
||||
- .use-arm_test
|
||||
variables:
|
||||
BM_KERNEL: /lava-files/cheza-kernel
|
||||
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
|
||||
DEQP_VER: gles2
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
|
||||
DEQP_SKIPS: deqp-freedreno-a630-skips.txt
|
||||
NIR_VALIDATE: 0
|
||||
DEQP_EXPECTED_RENDERER: FD630
|
||||
DEQP_NO_SAVE_RESULTS: ""
|
||||
DEQP_PARALLEL: 4
|
||||
FLAKES_CHANNEL: "#freedreno-ci"
|
||||
tags:
|
||||
- google-freedreno-cheza
|
||||
script:
|
||||
- .gitlab-ci/bare-metal/cros-servo.sh
|
||||
- mesa-cheza
|
||||
dependencies:
|
||||
- meson-arm64
|
||||
|
||||
arm64_a630_gles31:
|
||||
extends: arm64_a630_gles2
|
||||
@@ -800,209 +653,38 @@ arm64_a630_gles3:
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
|
||||
# We almost always manage to lower UBOs back to constant uploads in
|
||||
# the test suite, so get a little testing for it here.
|
||||
arm64_a630_noubo:
|
||||
extends: arm64_a630_gles31
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
IR3_SHADER_DEBUG: nouboopt
|
||||
DEQP_CASELIST_FILTER: "functional.*ubo"
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a630-noubo-fails.txt
|
||||
|
||||
# The driver does some guessing as to whether to render using gmem
|
||||
# or bypass, and some GLES3.1 features interact with either one.
|
||||
# Do a little testing with gmem and bypass forced.
|
||||
arm64_a630_bypass:
|
||||
extends: arm64_a630_gles31
|
||||
variables:
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 5
|
||||
FD_MESA_DEBUG: nogmem
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a630-bypass-fails.txt
|
||||
|
||||
# Along with checking gmem path, check that we don't get obvious nir
|
||||
# validation failures (though it's too expensive to have it on for the
|
||||
# full CTS)
|
||||
arm64_a630_gmem:
|
||||
extends: arm64_a630_gles31
|
||||
variables:
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 5
|
||||
FD_MESA_DEBUG: nobypass
|
||||
NIR_VALIDATE: 1
|
||||
|
||||
.baremetal-test:
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
stage: test
|
||||
artifacts:
|
||||
when: always
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
paths:
|
||||
- results/
|
||||
- serial*.txt
|
||||
|
||||
arm64_a306_gles2:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
- .use-arm_test
|
||||
- .freedreno-rules
|
||||
extends: arm64_a630_gles2
|
||||
variables:
|
||||
BM_KERNEL: /lava-files/Image.gz
|
||||
BM_DTB: /lava-files/apq8016-sbc.dtb
|
||||
BM_ROOTFS: /lava-files/rootfs-arm64
|
||||
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
|
||||
FLAKES_CHANNEL: "#freedreno-ci"
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
|
||||
DEQP_SKIPS: deqp-freedreno-a307-skips.txt
|
||||
DEQP_VER: gles2
|
||||
DEQP_PARALLEL: 4
|
||||
DEQP_EXPECTED_RENDERER: FD307
|
||||
# Since we can't get artifacts back yet, skip making them.
|
||||
DEQP_NO_SAVE_RESULTS: 1
|
||||
script:
|
||||
- .gitlab-ci/bare-metal/fastboot.sh
|
||||
needs:
|
||||
- arm_test
|
||||
- arm_build
|
||||
- meson-arm64
|
||||
DEQP_SKIPS: deqp-default-skips.txt
|
||||
tags:
|
||||
- google-freedreno-db410c
|
||||
|
||||
# Disabled due to flaky results
|
||||
arm64_a306_gles3:
|
||||
extends:
|
||||
- arm64_a306_gles2
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
DEQP_PARALLEL: 1
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 50
|
||||
|
||||
arm64_a530_gles2:
|
||||
extends:
|
||||
- arm64_a306_gles2
|
||||
variables:
|
||||
BM_KERNEL: /lava-files/db820c-kernel
|
||||
BM_DTB: /lava-files/db820c.dtb
|
||||
# Disable SMP because only CPU 0 is at a freq higher than 19mhz on
|
||||
# current upstream kernel.
|
||||
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 nosmp"
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a530-fails.txt
|
||||
DEQP_SKIPS: deqp-freedreno-a530-skips.txt
|
||||
DEQP_EXPECTED_RENDERER: FD530
|
||||
tags:
|
||||
- google-freedreno-db820c
|
||||
|
||||
arm64_a530_gles3:
|
||||
extends:
|
||||
- arm64_a530_gles2
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
DEQP_PARALLEL: 1
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 100
|
||||
|
||||
arm64_a530_gles31:
|
||||
extends:
|
||||
- arm64_a530_gles3
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
- db410c
|
||||
|
||||
# RADV CI
|
||||
.test-radv:
|
||||
extends: .radv-rules
|
||||
stage: radv
|
||||
variables:
|
||||
VK_DRIVER: radeon
|
||||
RADV_DEBUG: checkir
|
||||
# Can only be triggered manually on personal branches because RADV is the only
|
||||
# driver that does Vulkan testing at the moment.
|
||||
rules:
|
||||
# Never test RADV by default in the main project.
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
when: never
|
||||
# Never test RADV by default for merge requests.
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
when: never
|
||||
# Otherwise, allow testing RADV if the test image for VK has been manually
|
||||
# started.
|
||||
- when: on_success
|
||||
|
||||
.test-radv-fossilize:
|
||||
extends:
|
||||
- .fossilize-test
|
||||
- .test-radv
|
||||
script:
|
||||
- ./install/fossilize-runner.sh
|
||||
- ACO_DEBUG=validateir,validatera RADV_PERFTEST=aco ./install/fossilize-runner.sh
|
||||
|
||||
# Can only be triggered manually on personal branches because RADV is the only
|
||||
# driver that does Vulkan testing at the moment.
|
||||
radv_polaris10_vkcts:
|
||||
extends:
|
||||
- .deqp-test-vk
|
||||
- .test-radv
|
||||
- .test-manual
|
||||
variables:
|
||||
DEQP_PARALLEL: 4
|
||||
DEQP_SKIPS: deqp-radv-polaris10-skips.txt
|
||||
tags:
|
||||
- polaris10
|
||||
|
||||
radv-fossils:
|
||||
extends:
|
||||
- .fossilize-test
|
||||
- .test-radv
|
||||
script:
|
||||
# Polaris10
|
||||
- export RADV_FORCE_FAMILY="polaris10"
|
||||
- ./install/fossilize-runner.sh
|
||||
- ACO_DEBUG=validateir,validatera RADV_PERFTEST=aco ./install/fossilize-runner.sh
|
||||
# Vega10
|
||||
- export RADV_FORCE_FAMILY="gfx900"
|
||||
- ./install/fossilize-runner.sh
|
||||
- ACO_DEBUG=validateir,validatera RADV_PERFTEST=aco ./install/fossilize-runner.sh
|
||||
# Navi10
|
||||
- export RADV_FORCE_FAMILY="gfx1010"
|
||||
- ./install/fossilize-runner.sh
|
||||
- ACO_DEBUG=validateir,validatera RADV_PERFTEST=aco ./install/fossilize-runner.sh
|
||||
|
||||
# Traces CI
|
||||
.traces-test:
|
||||
cache:
|
||||
key: ${CI_JOB_NAME}
|
||||
paths:
|
||||
- traces-db/
|
||||
|
||||
.traces-test-gl:
|
||||
extends:
|
||||
- .test-gl
|
||||
- .traces-test
|
||||
script:
|
||||
- ./install/tracie-runner-gl.sh
|
||||
|
||||
.traces-test-vk:
|
||||
extends:
|
||||
- .test-vk
|
||||
- .traces-test
|
||||
script:
|
||||
- ./install/tracie-runner-vk.sh
|
||||
|
||||
llvmpipe-traces:
|
||||
extends:
|
||||
- .traces-test-gl
|
||||
- .llvmpipe-rules
|
||||
variables:
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
GALLIUM_DRIVER: "llvmpipe"
|
||||
DEVICE_NAME: "gl-vmware-llvmpipe"
|
||||
|
||||
radv-polaris10-traces:
|
||||
extends:
|
||||
- .traces-test-vk
|
||||
- .test-radv
|
||||
- .test-manual
|
||||
variables:
|
||||
DEVICE_NAME: "vk-amd-polaris10"
|
||||
tags:
|
||||
- polaris10
|
||||
|
||||
virgl-traces:
|
||||
extends:
|
||||
- .traces-test-gl
|
||||
- .virgl-rules
|
||||
variables:
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
GALLIUM_DRIVER: "virpipe"
|
||||
DEVICE_NAME: "gl-virgl"
|
||||
MESA_GLES_VERSION_OVERRIDE: "3.1"
|
||||
MESA_GLSL_VERSION_OVERRIDE: "310"
|
||||
|
@@ -1,104 +1,14 @@
|
||||
# Mesa testing
|
||||
## Mesa testing using gitlab-runner
|
||||
|
||||
The goal of the "test" stage of the .gitlab-ci.yml is to do pre-merge
|
||||
testing of Mesa drivers on various platforms, so that we can ensure no
|
||||
regressions are merged, as long as developers are merging code using
|
||||
marge-bot.
|
||||
the "Merge when pipeline completes" button.
|
||||
|
||||
There are currently 4 automated testing systems deployed for Mesa.
|
||||
LAVA and gitlab-runner on the DUTs are used in pre-merge testing and
|
||||
are described in this document. Managing bare metal using
|
||||
gitlab-runner is described under [bare-metal/README.md]. Intel also
|
||||
has a jenkins-based CI system with restricted access that isn't
|
||||
connected to gitlab.
|
||||
|
||||
## Mesa testing using LAVA
|
||||
|
||||
[LAVA](https://lavasoftware.org/) is a system for functional testing
|
||||
of boards including deploying custom bootloaders and kernels. This is
|
||||
particularly relevant to testing Mesa because we often need to change
|
||||
kernels for UAPI changes (and this lets us do full testing of a new
|
||||
kernel during development), and our workloads can easily take down
|
||||
boards when mistakes are made (kernel oopses, OOMs that take out
|
||||
critical system services).
|
||||
|
||||
### Mesa-LAVA software architecture
|
||||
|
||||
The gitlab-runner will run on some host that has access to the LAVA
|
||||
lab, with tags like "lava-mesa-boardname" to control only taking in
|
||||
jobs for the hardware that the LAVA lab contains. The gitlab-runner
|
||||
spawns a docker container with lava-cli in it, and connects to the
|
||||
LAVA lab using a predefined token to submit jobs under a specific
|
||||
device type.
|
||||
|
||||
The LAVA instance manages scheduling those jobs to the boards present.
|
||||
For a job, it will deploy the kernel, device tree, and the ramdisk
|
||||
containing the CTS.
|
||||
|
||||
### Deploying a new Mesa-LAVA lab
|
||||
|
||||
You'll want to start with setting up your LAVA instance and getting
|
||||
some boards booting using test jobs. Start with the stock QEMU
|
||||
examples to make sure your instance works at all. Then, you'll need
|
||||
to define your actual boards.
|
||||
|
||||
The device type in lava-gitlab-ci.yml is the device type you create in
|
||||
your LAVA instance, which doesn't have to match the board's name in
|
||||
`/etc/lava-dispatcher/device-types`. You create your boards under
|
||||
that device type and the Mesa jobs will be scheduled to any of them.
|
||||
Instantiate your boards by creating them in the UI or at the command
|
||||
line attached to that device type, then populate their dictionary
|
||||
(using an "extends" line probably referencing the board's template in
|
||||
`/etc/lava-dispatcher/device-types`). Now, go find a relevant
|
||||
healthcheck job for your board as a test job definition, or cobble
|
||||
something together from a board that boots using the same boot_method
|
||||
and some public images, and figure out how to get your boards booting.
|
||||
|
||||
Once you can boot your board using a custom job definition, it's time
|
||||
to connect Mesa CI to it. Install gitlab-runner and register as a
|
||||
shared runner (you'll need a gitlab admin for help with this). The
|
||||
runner *must* have a tag (like "mesa-lava-db410c") to restrict the
|
||||
jobs it takes or it will grab random jobs from tasks across fd.o, and
|
||||
your runner isn't ready for that.
|
||||
|
||||
The runner will be running an ARM docker image (we haven't done any
|
||||
x86 LAVA yet, so that isn't documented). If your host for the
|
||||
gitlab-runner is x86, then you'll need to install qemu-user-static and
|
||||
the binfmt support.
|
||||
|
||||
The docker image will need access to the lava instance. If it's on a
|
||||
public network it should be fine. If you're running the LAVA instance
|
||||
on localhost, you'll need to set `network_mode="host"` in
|
||||
`/etc/gitlab-runner/config.toml` so it can access localhost. Create a
|
||||
gitlab-runner user in your LAVA instance, log in under that user on
|
||||
the web interface, and create an API token. Copy that into a
|
||||
`lavacli.yaml`:
|
||||
|
||||
```
|
||||
default:
|
||||
token: <token contents>
|
||||
uri: <url to the instance>
|
||||
username: gitlab-runner
|
||||
```
|
||||
|
||||
Add a volume mount of that `lavacli.yaml` to
|
||||
`/etc/gitlab-runner/config.toml` so that the docker container can
|
||||
access it. You probably have a `volumes = ["/cache"]` already, so now it would be
|
||||
|
||||
```
|
||||
volumes = ["/home/anholt/lava-config/lavacli.yaml:/root/.config/lavacli.yaml", "/cache"]
|
||||
```
|
||||
|
||||
Note that this token is visible to anybody that can submit MRs to
|
||||
Mesa! It is not an actual secret. We could just bake it into the
|
||||
gitlab CI yml, but this way the current method of connecting to the
|
||||
LAVA instance is separated from the Mesa branches (particularly
|
||||
relevant as we have many stable branches all using CI).
|
||||
|
||||
Now it's time to define your test runner in
|
||||
`.gitlab-ci/lava-gitlab-ci.yml`.
|
||||
|
||||
## Mesa testing using gitlab-runner on DUTs
|
||||
This document only covers the CI from .gitlab-ci.yml and this
|
||||
directory. For other CI systems, see Intel's [Mesa
|
||||
CI](https://gitlab.freedesktop.org/Mesa_CI) or panfrost's LAVA-based
|
||||
CI (`src/gallium/drivers/panfrost/ci/`)
|
||||
|
||||
### Software architecture
|
||||
|
||||
|
@@ -44,4 +44,3 @@ CONFIG_DEBUG_LOCKDEP=n
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=n
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
|
||||
|
||||
CONFIG_FW_LOADER_COMPRESS=y
|
||||
|
@@ -12,9 +12,6 @@ CONFIG_DRM_ROCKCHIP=y
|
||||
CONFIG_DRM_PANFROST=y
|
||||
CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_DRM_MSM=y
|
||||
CONFIG_DRM_I2C_ADV7511=y
|
||||
CONFIG_DRM_I2C_ADV7533=y
|
||||
CONFIG_PWM_CROS_EC=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
|
||||
@@ -29,30 +26,6 @@ CONFIG_TYPEC_FUSB302=y
|
||||
CONFIG_TYPEC=y
|
||||
CONFIG_TYPEC_TCPM=y
|
||||
|
||||
# Cheza platform bits
|
||||
CONFIG_QCOM_RPMHPD=y
|
||||
CONFIG_SDM_GPUCC_845=y
|
||||
CONFIG_SDM_VIDEOCC_845=y
|
||||
CONFIG_SDM_DISPCC_845=y
|
||||
CONFIG_SDM_LPASSCC_845=y
|
||||
CONFIG_SDM_CAMCC_845=y
|
||||
CONFIG_RESET_QCOM_PDC=y
|
||||
CONFIG_DRM_TI_SN65DSI86=y
|
||||
CONFIG_I2C_QCOM_GENI=y
|
||||
CONFIG_SPI_QCOM_GENI=y
|
||||
CONFIG_PHY_QCOM_QUSB2=y
|
||||
CONFIG_PHY_QCOM_QMP=y
|
||||
CONFIG_QCOM_LLCC=y
|
||||
CONFIG_QCOM_SPMI_TEMP_ALARM=y
|
||||
CONFIG_POWER_RESET_QCOM_PON=y
|
||||
CONFIG_RTC_DRV_PM8XXX=y
|
||||
CONFIG_INTERCONNECT=y
|
||||
CONFIG_INTERCONNECT_QCOM_SDM845=y
|
||||
CONFIG_QCOM_WDT=y
|
||||
|
||||
# db410c ethernet
|
||||
CONFIG_USB_RTL8152=y
|
||||
|
||||
CONFIG_ARCH_ALPINE=n
|
||||
CONFIG_ARCH_BCM2835=n
|
||||
CONFIG_ARCH_BCM_IPROC=n
|
||||
@@ -65,6 +38,7 @@ CONFIG_ARCH_LG1K=n
|
||||
CONFIG_ARCH_HISI=n
|
||||
CONFIG_ARCH_MEDIATEK=n
|
||||
CONFIG_ARCH_MVEBU=n
|
||||
CONFIG_ARCH_QCOM=n
|
||||
CONFIG_ARCH_SEATTLE=n
|
||||
CONFIG_ARCH_SYNQUACER=n
|
||||
CONFIG_ARCH_RENESAS=n
|
||||
@@ -88,12 +62,7 @@ CONFIG_ARCH_XGENE=n
|
||||
CONFIG_ARCH_ZX=n
|
||||
CONFIG_ARCH_ZYNQMP=n
|
||||
|
||||
# Strip out some stuff we don't need for graphics testing, to reduce
|
||||
# the build.
|
||||
CONFIG_CAN=n
|
||||
CONFIG_WIRELESS=n
|
||||
CONFIG_RFKILL=n
|
||||
CONFIG_WLAN=n
|
||||
CONFIG_ACPI=n
|
||||
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
CONFIG_REGULATOR=y
|
||||
@@ -112,7 +81,3 @@ CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
||||
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
|
||||
CONFIG_FW_LOADER_COMPRESS=y
|
||||
CONFIG_FW_LOADER_USER_HELPER=n
|
||||
CONFIG_SUNRPC_DEBUG=y
|
||||
|
@@ -1,2 +0,0 @@
|
||||
[*.sh]
|
||||
indent_size = 2
|
@@ -1,124 +0,0 @@
|
||||
# bare-metal Mesa testing
|
||||
|
||||
Testing Mesa with gitlab-runner running on the devices being tested
|
||||
(DUTs) proved to be too unstable, so this set of scripts is for
|
||||
running Mesa testing on bare-metal boards connected to a separate
|
||||
system using gitlab-runner. Currently only "fastboot" and "ChromeOS
|
||||
Servo" devices are supported.
|
||||
|
||||
In comparison with LAVA, this doesn't involve maintaining a separate
|
||||
webservice with its own job scheduler and replicating jobs between the
|
||||
two. It also places more of the board support in git, instead of
|
||||
webservice configuration. On the other hand, the serial interactions
|
||||
and bootloader support are more primitive.
|
||||
|
||||
## Requirements (fastboot)
|
||||
|
||||
This testing requires power control of the DUTs by the gitlab-runner
|
||||
machine, since this is what we use to reset the system and get back to
|
||||
a pristine state at the start of testing.
|
||||
|
||||
We require access to the console output from the gitlab-runner system,
|
||||
since that is how we get the final results back from the tests. You
|
||||
should probably have the console on a serial connection, so that you
|
||||
can see bootloader progress.
|
||||
|
||||
The boards need to be able to have a kernel/initramfs supplied by the
|
||||
gitlab-runner system, since the initramfs is what contains the Mesa
|
||||
testing payload.
|
||||
|
||||
The boards should have networking, so that (in a future iteration of
|
||||
this code) we can extract the dEQP .xml results to artifacts on
|
||||
gitlab.
|
||||
|
||||
## Requirements (servo)
|
||||
|
||||
For servo-connected boards, we can use the EC connection for power
|
||||
control to reboot the board. However, loading a kernel is not as easy
|
||||
as fastboot, so we assume your bootloader can do TFTP, and that your
|
||||
gitlab-runner mounts the runner's tftp directory specific to the board
|
||||
at /tftp in the container.
|
||||
|
||||
Since we're going the TFTP route, we also use NFS root. This avoids
|
||||
packing the rootfs and sending it to the board as a ramdisk, which
|
||||
means we can support larger rootfses (for piglit or tracie testing),
|
||||
at the cost of needing more storage on the runner.
|
||||
|
||||
Telling the board about where its TFTP and NFS should come from is
|
||||
done using dnsmasq on the runner host. For example, this snippet in
|
||||
the dnsmasq.conf.d in the google farm, with the gitlab-runner host we
|
||||
call "servo".
|
||||
|
||||
```
|
||||
dhcp-host=1c:69:7a:0d:a3:d3,10.42.0.10,set:servo
|
||||
|
||||
# Fixed dhcp addresses for my sanity, and setting a tag for
|
||||
# specializing other DHCP options
|
||||
dhcp-host=a0:ce:c8:c8:d9:5d,10.42.0.11,set:cheza1
|
||||
dhcp-host=a0:ce:c8:c8:d8:81,10.42.0.12,set:cheza2
|
||||
|
||||
# Specify the next server, watch out for the double ',,'. The
|
||||
# filename didn't seem to get picked up by the bootloader, so we use
|
||||
# tftp-unique-root and mount directories like
|
||||
# /srv/tftp/10.42.0.11/jwerner/cheza as /tftp in the job containers.
|
||||
tftp-unique-root
|
||||
dhcp-boot=tag:cheza1,cheza1/vmlinuz,,10.42.0.10
|
||||
dhcp-boot=tag:cheza2,cheza2/vmlinuz,,10.42.0.10
|
||||
|
||||
dhcp-option=tag:cheza1,option:root-path,/srv/nfs/cheza1
|
||||
dhcp-option=tag:cheza2,option:root-path,/srv/nfs/cheza2
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
Each board will be registered in fd.o gitlab. You'll want something
|
||||
like this to register a fastboot board:
|
||||
|
||||
```
|
||||
sudo gitlab-runner register \
|
||||
--url https://gitlab.freedesktop.org \
|
||||
--registration-token $1 \
|
||||
--name MY_BOARD_NAME \
|
||||
--tag-list MY_BOARD_TAG \
|
||||
--executor docker \
|
||||
--docker-image "alpine:latest" \
|
||||
--docker-volumes "/dev:/dev" \
|
||||
--docker-network-mode "host" \
|
||||
--docker-privileged \
|
||||
--non-interactive
|
||||
```
|
||||
|
||||
For a servo board, you'll need to also volume mount the board's NFS
|
||||
root dir at /nfs and TFTP kernel directory at /tftp.
|
||||
|
||||
The registration token has to come from a fd.o gitlab admin going to
|
||||
https://gitlab.freedesktop.org/admin/runners
|
||||
|
||||
The name scheme for Google's lab is google-freedreno-boardname-n, and
|
||||
our tag is something like google-freedreno-db410c. The tag is what
|
||||
identifies a board type so that board-specific jobs can be dispatched
|
||||
into that pool.
|
||||
|
||||
We need privileged mode and the /dev bind mount in order to get at the
|
||||
serial console and fastboot USB devices (--device arguments don't
|
||||
apply to devices that show up after container start, which is the case
|
||||
with fastboot, and the servo serial devices are acctually links to
|
||||
/dev/pts). We use host network mode so that we can (in the future)
|
||||
spin up a server to collect XML results for fastboot.
|
||||
|
||||
Once you've added your boards, you're going to need to add a little
|
||||
more customization in `/etc/gitlab-runner/config.toml`. First, add
|
||||
`concurrent = <number of boards>` at the top ("we should have up to
|
||||
this many jobs running managed by this gitlab-runner"). Then for each
|
||||
board's runner, set `limit = 1` ("only 1 job served by this board at a
|
||||
time"). Finally, add the board-specific environment variables
|
||||
required by your bare-metal script, something like:
|
||||
|
||||
```
|
||||
[[runners]]
|
||||
name = "google-freedreno-db410c-1"
|
||||
environment = ["BM_SERIAL=/dev/ttyDB410c8", "BM_POWERUP=google-power-up.sh 8", "BM_FASTBOOT_SERIAL=15e9e390"]
|
||||
```
|
||||
|
||||
Once you've updated your runners' configs, restart with `sudo service
|
||||
gitlab-runner restart`
|
@@ -1,97 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Boot script for Chrome OS devices attached to a servo debug connector, using
|
||||
# NFS and TFTP to boot.
|
||||
|
||||
# We're run from the root of the repo, make a helper var for our paths
|
||||
BM=$CI_PROJECT_DIR/.gitlab-ci/bare-metal
|
||||
|
||||
# Runner config checks
|
||||
if [ -z "$BM_SERIAL" ]; then
|
||||
echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
||||
echo "This is the CPU serial device."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_SERIAL_EC" ]; then
|
||||
echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
||||
echo "This is the EC serial device for controlling board power"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d /nfs ]; then
|
||||
echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d /tftp ]; then
|
||||
echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# job config checks
|
||||
if [ -z "$BM_KERNEL" ]; then
|
||||
echo "Must set BM_KERNEL to your board's kernel FIT image"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_ROOTFS" ]; then
|
||||
echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_CMDLINE" ]; then
|
||||
echo "Must set BM_CMDLINE to your board's kernel command line arguments"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -ex
|
||||
|
||||
# Create the rootfs in the NFS directory. rm to make sure it's in a pristine
|
||||
# state, since it's volume-mounted on the host.
|
||||
rm -rf /nfs/*
|
||||
mkdir -p /nfs/results
|
||||
. $BM/rootfs-setup.sh /nfs
|
||||
|
||||
# Set up the TFTP kernel/cmdline. When we support more than one board with
|
||||
# this method, we'll need to do some check on the runner name or something.
|
||||
rm -rf /tftp/*
|
||||
cp $BM_KERNEL /tftp/vmlinuz
|
||||
echo "$BM_CMDLINE" > /tftp/cmdline
|
||||
|
||||
# Start watching serials, and power up the device.
|
||||
$BM/serial-buffer.py $BM_SERIAL_EC | tee serial-ec-output.txt | sed -u 's|^|SERIAL-EC> |g' &
|
||||
$BM/serial-buffer.py $BM_SERIAL | tee serial-output.txt | sed -u 's|^|SERIAL-CPU> |g' &
|
||||
while [ ! -e serial-output.txt ]; do
|
||||
sleep 1
|
||||
done
|
||||
# Flush any partial commands in the EC's prompt, then ask for a reboot.
|
||||
$BM/write-serial.py $BM_SERIAL_EC ""
|
||||
$BM/write-serial.py $BM_SERIAL_EC reboot
|
||||
|
||||
# This is emitted right when the bootloader pauses to check for input. Emit a
|
||||
# ^N character to request network boot, because we don't have a
|
||||
# direct-to-netboot firmware on cheza.
|
||||
$BM/expect-output.sh serial-output.txt "load_archive: loading locale_en.bin"
|
||||
$BM/write-serial.py $BM_SERIAL `printf '\016'`
|
||||
|
||||
# Wait for the device to complete the deqp run
|
||||
$BM/expect-output.sh serial-output.txt "DEQP RESULT"
|
||||
|
||||
# power down the CPU on the device
|
||||
$BM/write-serial.py $BM_SERIAL_EC 'power off'
|
||||
|
||||
set -ex
|
||||
|
||||
# Bring artifacts back from the NFS dir to the build dir where gitlab-runner
|
||||
# will look for them. Note that results/ may already exist, so be careful
|
||||
# with cp.
|
||||
mkdir -p results
|
||||
cp -Rp /nfs/results/. results/
|
||||
|
||||
set +e
|
||||
if grep -q "DEQP RESULT: pass" serial-output.txt; then
|
||||
exit 0
|
||||
else
|
||||
exit 1
|
||||
fi
|
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "Waiting for $1 to say '$2'"
|
||||
|
||||
while ! grep -q "$2" $1; do
|
||||
sleep 2
|
||||
done
|
@@ -1,88 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
BM=$CI_PROJECT_DIR/.gitlab-ci/bare-metal
|
||||
|
||||
if [ -z "$BM_SERIAL" ]; then
|
||||
echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
||||
echo "This is the serial device to talk to for waiting for fastboot to be ready and logging from the kernel."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_POWERUP" ]; then
|
||||
echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment"
|
||||
echo "This is a shell script that should reset the device and begin its boot sequence"
|
||||
echo "such that it pauses at fastboot."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_POWERDOWN" ]; then
|
||||
echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment"
|
||||
echo "This is a shell script that should power off the device."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_FASTBOOT_SERIAL" ]; then
|
||||
echo "Must set BM_FASTBOOT_SERIAL in your gitlab-runner config.toml [[runners]] environment"
|
||||
echo "This must be the a stable-across-resets fastboot serial number."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_KERNEL" ]; then
|
||||
echo "Must set BM_KERNEL to your board's kernel vmlinuz or Image.gz in the job's variables:"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_DTB" ]; then
|
||||
echo "Must set BM_DTB to your board's DTB file in the job's variables:"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$BM_ROOTFS" ]; then
|
||||
echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables:"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -ex
|
||||
|
||||
# Create the rootfs in a temp dir
|
||||
mkdir rootfs
|
||||
. .gitlab-ci/bare-metal/rootfs-setup.sh rootfs
|
||||
|
||||
# Finally, pack it up into a cpio rootfs.
|
||||
pushd rootfs
|
||||
find -H | cpio -H newc -o | xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz
|
||||
popd
|
||||
|
||||
cat $BM_KERNEL $BM_DTB > Image.gz-dtb
|
||||
|
||||
abootimg \
|
||||
--create artifacts/fastboot.img \
|
||||
-k Image.gz-dtb \
|
||||
-r rootfs.cpio.gz \
|
||||
-c cmdline="$BM_CMDLINE"
|
||||
rm Image.gz-dtb
|
||||
|
||||
# Start watching serial, and power up the device.
|
||||
$BM/serial-buffer.py $BM_SERIAL | tee artifacts/serial-output.txt &
|
||||
while [ ! -e artifacts/serial-output.txt ]; do
|
||||
sleep 1
|
||||
done
|
||||
PATH=$BM:$PATH $BM_POWERUP
|
||||
|
||||
# Once fastboot is ready, boot our image.
|
||||
$BM/expect-output.sh artifacts/serial-output.txt "fastboot: processing commands"
|
||||
fastboot boot -s $BM_FASTBOOT_SERIAL artifacts/fastboot.img
|
||||
|
||||
# Wait for the device to complete the deqp run
|
||||
$BM/expect-output.sh artifacts/serial-output.txt "DEQP RESULT"
|
||||
|
||||
# power down the device
|
||||
PATH=$BM:$PATH $BM_POWERDOWN
|
||||
|
||||
set +e
|
||||
if grep -q "DEQP RESULT: pass" artifacts/serial-output.txt; then
|
||||
exit 0
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
relay=$1
|
||||
|
||||
if [ -z "$relay" ]; then
|
||||
echo "Must supply a relay arg"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$CI_PROJECT_DIR/.gitlab-ci/bare-metal/google-power-relay.py off $relay
|
@@ -1,19 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import serial
|
||||
|
||||
mode = sys.argv[1]
|
||||
relay = sys.argv[2]
|
||||
|
||||
# our relays are "off" means "board is powered".
|
||||
mode_swap = {
|
||||
"on" : "off",
|
||||
"off" : "on",
|
||||
}
|
||||
mode = mode_swap[mode]
|
||||
|
||||
ser = serial.Serial('/dev/ttyACM0', 115200, timeout=2)
|
||||
command = "relay {} {}\n\r".format(mode, relay)
|
||||
ser.write(command.encode())
|
||||
ser.close()
|
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
relay=$1
|
||||
|
||||
if [ -z "$relay" ]; then
|
||||
echo "Must supply a relay arg"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$CI_PROJECT_DIR/.gitlab-ci/bare-metal/google-power-relay.py off $relay
|
||||
sleep 5
|
||||
$CI_PROJECT_DIR/.gitlab-ci/bare-metal/google-power-relay.py on $relay
|
@@ -1,28 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
mount -t proc none /proc
|
||||
mount -t sysfs none /sys
|
||||
mount -t devtmpfs none /dev || echo possibly already mounted
|
||||
mkdir -p /dev/pts
|
||||
mount -t devpts devpts /dev/pts
|
||||
|
||||
. /set-job-env-vars.sh
|
||||
|
||||
echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
||||
|
||||
export DEQP_SKIPS=deqp-skips.txt
|
||||
if [ -e /install/deqp-expected-fails.txt ]; then
|
||||
export DEQP_EXPECTED_FAILS=deqp-expected-fails.txt
|
||||
fi
|
||||
|
||||
if sh /deqp/deqp-runner.sh; then
|
||||
echo "DEQP RESULT: pass"
|
||||
else
|
||||
echo "DEQP RESULT: fail"
|
||||
fi
|
||||
|
||||
# Wait until the job would have timed out anyway, so we don't spew a "init
|
||||
# exited" panic.
|
||||
sleep 6000
|
@@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
rootfs_dst=$1
|
||||
|
||||
# Copy the rootfs to a temporary for our setup, as I believe changes to the
|
||||
# container can end up impacting future runs.
|
||||
cp -Rp $BM_ROOTFS/. $rootfs_dst
|
||||
|
||||
# Set up the init script that brings up the system.
|
||||
cp $BM/init.sh $rootfs_dst/init
|
||||
|
||||
set +x
|
||||
# Pass through relevant env vars from the gitlab job to the baremetal init script
|
||||
touch $rootfs_dst/set-job-env-vars.sh
|
||||
chmod +x $rootfs_dst/set-job-env-vars.sh
|
||||
for var in \
|
||||
CI_COMMIT_BRANCH \
|
||||
CI_COMMIT_TITLE \
|
||||
CI_JOB_ID \
|
||||
CI_JOB_URL \
|
||||
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME \
|
||||
CI_MERGE_REQUEST_TITLE \
|
||||
CI_NODE_INDEX \
|
||||
CI_NODE_TOTAL \
|
||||
CI_PIPELINE_ID \
|
||||
CI_RUNNER_DESCRIPTION \
|
||||
DEQP_CASELIST_FILTER \
|
||||
DEQP_EXPECTED_RENDERER \
|
||||
DEQP_NO_SAVE_RESULTS \
|
||||
DEQP_PARALLEL \
|
||||
DEQP_RUN_SUFFIX \
|
||||
DEQP_VER \
|
||||
FD_MESA_DEBUG \
|
||||
FLAKES_CHANNEL \
|
||||
IR3_SHADER_DEBUG \
|
||||
NIR_VALIDATE \
|
||||
; do
|
||||
val=`echo ${!var} | sed 's|"||g'`
|
||||
echo "export $var=\"${val}\"" >> $rootfs_dst/set-job-env-vars.sh
|
||||
done
|
||||
echo "Variables passed through:"
|
||||
cat $rootfs_dst/set-job-env-vars.sh
|
||||
set -x
|
||||
|
||||
# Add the Mesa drivers we built, and make a consistent symlink to them.
|
||||
mkdir -p $rootfs_dst/$CI_PROJECT_DIR
|
||||
tar -C $rootfs_dst/$CI_PROJECT_DIR/ -xf $CI_PROJECT_DIR/artifacts/install.tar
|
||||
ln -sf $CI_PROJECT_DIR/install $rootfs_dst/install
|
||||
|
||||
# Copy the deqp runner script and metadata.
|
||||
cp .gitlab-ci/deqp-runner.sh $rootfs_dst/deqp/
|
||||
cp .gitlab-ci/$DEQP_SKIPS $rootfs_dst/$CI_PROJECT_DIR/install/deqp-skips.txt
|
||||
if [ -n "$DEQP_EXPECTED_FAILS" ]; then
|
||||
cp .gitlab-ci/$DEQP_EXPECTED_FAILS $rootfs_dst/$CI_PROJECT_DIR/install/deqp-expected-fails.txt
|
||||
fi
|
@@ -1,46 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright © 2020 Google LLC
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
# Tiny script to read bytes from serial, and write the output to stdout, with a
|
||||
# buffer in between so we don't lose serial output from its buffer.
|
||||
#
|
||||
# We don't use 'cu' because it requires stdin to be hooked up and I never
|
||||
# managed to make that work without getting blocked somewhere. We don't use
|
||||
# 'conserver' because it's non-free.
|
||||
|
||||
import sys
|
||||
import serial
|
||||
import select
|
||||
import os
|
||||
import posix
|
||||
|
||||
dev=sys.argv[1]
|
||||
|
||||
ser = serial.Serial(dev, 115200, timeout=10)
|
||||
|
||||
while True:
|
||||
bytes = ser.read()
|
||||
sys.stdout.buffer.write(bytes)
|
||||
sys.stdout.flush()
|
||||
|
||||
ser.close()
|
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import serial
|
||||
|
||||
dev = sys.argv[1]
|
||||
command = sys.argv[2] + '\n'
|
||||
|
||||
ser = serial.Serial(dev, 115200, timeout=5)
|
||||
ser.write(command.encode())
|
||||
ser.close()
|
@@ -1,30 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Need an unreleased version of Waffle for surfaceless support in apitrace
|
||||
# Replace this build with the Debian package once that's possible
|
||||
|
||||
WAFFLE_VERSION="e3c995d9a2693b687501715b6550619922346089"
|
||||
git clone https://gitlab.freedesktop.org/mesa/waffle.git --single-branch --no-checkout /waffle
|
||||
pushd /waffle
|
||||
git checkout "$WAFFLE_VERSION"
|
||||
cmake -B_build -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release .
|
||||
make -C _build -j4 install
|
||||
popd
|
||||
rm -rf /waffle
|
||||
|
||||
APITRACE_VERSION="9.0"
|
||||
|
||||
git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace
|
||||
pushd /apitrace
|
||||
git checkout "$APITRACE_VERSION"
|
||||
cmake -G Ninja -B_build -H. -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on -DWaffle_DIR=/usr/local/lib/cmake/Waffle/
|
||||
ninja -C _build
|
||||
mkdir build
|
||||
cp _build/apitrace build
|
||||
cp _build/glretrace build
|
||||
cp _build/eglretrace build
|
||||
strip build/*
|
||||
find . -not -path './build' -not -path './build/*' -delete
|
||||
popd
|
@@ -2,9 +2,9 @@
|
||||
|
||||
set -ex
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git --depth 1 -b mesa-ci-2019-12-17 /parallel-deqp-runner
|
||||
pushd /parallel-deqp-runner
|
||||
git clone https://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git --depth 1 -b mesa-ci-2019-12-17
|
||||
cd parallel-deqp-runner
|
||||
meson build/ $EXTRA_MESON_ARGS
|
||||
ninja -C build install
|
||||
popd
|
||||
rm -rf /parallel-deqp-runner
|
||||
ninja -C build -j4 install
|
||||
cd ..
|
||||
rm -rf parallel-deqp-runner
|
||||
|
@@ -1,13 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
# XXX: Use --depth 1 once we can drop the cherry-picks.
|
||||
git clone \
|
||||
--depth 1 \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b opengl-es-cts-3.2.6.1 \
|
||||
-b opengl-es-cts-3.2.5.1 \
|
||||
/VK-GL-CTS
|
||||
pushd /VK-GL-CTS
|
||||
# Fix surfaceless build
|
||||
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
|
||||
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
|
||||
|
||||
# surfaceless links against libkms and such despite not using it.
|
||||
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
|
||||
@@ -37,7 +38,7 @@ ninja
|
||||
mkdir /deqp/mustpass
|
||||
for gles in gles2 gles3 gles31; do
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/$gles-master.txt \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
|
||||
/deqp/mustpass/$gles-master.txt
|
||||
done
|
||||
|
||||
|
@@ -1,13 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
git clone \
|
||||
--depth 1 \
|
||||
git clone --depth 1 \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b vulkan-cts-1.2.1.0 \
|
||||
-b vulkan-cts-1.1.6.0 \
|
||||
/VK-GL-CTS
|
||||
pushd /VK-GL-CTS
|
||||
cd /VK-GL-CTS
|
||||
|
||||
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
||||
# libpng (sigh). The archives get their checksums checked anyway, and git
|
||||
@@ -15,15 +10,12 @@ pushd /VK-GL-CTS
|
||||
python3 external/fetch_sources.py --insecure
|
||||
|
||||
mkdir -p /deqp
|
||||
|
||||
popd
|
||||
|
||||
pushd /deqp
|
||||
cd /deqp
|
||||
cmake -G Ninja \
|
||||
-DDEQP_TARGET=x11_glx \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
/VK-GL-CTS
|
||||
ninja
|
||||
ninja -j4
|
||||
|
||||
# Copy out the mustpass list we want.
|
||||
mkdir /deqp/mustpass
|
||||
@@ -39,4 +31,3 @@ find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs r
|
||||
strip external/vulkancts/modules/vulkan/deqp-vk
|
||||
du -sh *
|
||||
rm -rf /VK-GL-CTS
|
||||
popd
|
||||
|
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
git clone https://github.com/ValveSoftware/Fossilize.git
|
||||
cd Fossilize
|
||||
git checkout 6b5b570008c9ab5269e341f04c811fe49a1bb72c
|
||||
git submodule update --init
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_BUILD_TYPE=Release -G Ninja
|
||||
ninja -C . install
|
||||
cd ../..
|
||||
rm -rf Fossilize
|
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
# https://github.com/LunarG/gfxreconstruct/issues/328
|
||||
GFXRECONSTRUCT_VERSION=b66cd392a84b226cb60ad9d4130ddeb58a1559cb
|
||||
|
||||
git clone https://github.com/LunarG/gfxreconstruct.git --single-branch --no-checkout /gfxreconstruct
|
||||
pushd /gfxreconstruct
|
||||
git checkout "$GFXRECONSTRUCT_VERSION"
|
||||
git submodule update --init
|
||||
git submodule update
|
||||
cmake -G Ninja -B_build -H. -DCMAKE_BUILD_TYPE=Release
|
||||
ninja -C _build gfxrecon-replay
|
||||
mkdir -p build/bin
|
||||
install _build/tools/replay/gfxrecon-replay build/bin
|
||||
strip build/bin/*
|
||||
find . -not -path './build' -not -path './build/*' -delete
|
||||
popd
|
@@ -7,7 +7,7 @@ pushd /piglit
|
||||
git checkout 8771c3860505db2bcf4877216221d774bf90af6b
|
||||
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
|
||||
ninja
|
||||
ninja -j4
|
||||
find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf
|
||||
rm -rf target_api
|
||||
popd
|
||||
|
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
RENDERDOC_VERSION=da02e88201dc3b64316fc33ce6ff69cc729689aa
|
||||
|
||||
git clone https://github.com/baldurk/renderdoc.git --single-branch --no-checkout /renderdoc
|
||||
pushd /renderdoc
|
||||
git checkout "$RENDERDOC_VERSION"
|
||||
cmake -G Ninja -B_build -H. -DENABLE_QRENDERDOC=false -DCMAKE_BUILD_TYPE=Release
|
||||
ninja -C _build
|
||||
mkdir -p build/lib
|
||||
cp _build/lib/renderdoc.so build/lib
|
||||
cp _build/lib/librenderdoc.so build/lib
|
||||
strip build/lib/*
|
||||
find . -not -path './build' -not -path './build/*' -delete
|
||||
popd
|
@@ -1,20 +0,0 @@
|
||||
#!/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=70b18e56d5c3ed69c561c36e098e8aea71ebffc2
|
||||
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
|
@@ -1,29 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
VULKANTOOLS_VERSION=1862c6a47b64cd09156205d7f7e6b3bfcea76390
|
||||
|
||||
git clone https://github.com/LunarG/VulkanTools.git --single-branch --no-checkout /VulkanTools
|
||||
pushd /VulkanTools
|
||||
git checkout "$VULKANTOOLS_VERSION"
|
||||
./update_external_sources.sh
|
||||
mkdir _build
|
||||
./scripts/update_deps.py --dir=_build --config=release --generator=Ninja
|
||||
cmake -G Ninja -B_build -H. \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/VulkanTools/build \
|
||||
-DBUILD_TESTS=OFF \
|
||||
-DBUILD_VLF=OFF \
|
||||
-DBUILD_VKTRACE=OFF \
|
||||
-DBUILD_VIA=OFF \
|
||||
-DBUILD_VKTRACE_REPLAY=OFF \
|
||||
-C_build/helper.cmake
|
||||
ninja -C _build VkLayer_screenshot VkLayer_screenshot-staging-json
|
||||
mkdir -p build/etc/vulkan/explicit_layer.d
|
||||
mkdir build/lib
|
||||
install _build/layersvt/staging-json/VkLayer_screenshot.json build/etc/vulkan/explicit_layer.d
|
||||
install _build/layersvt/libVkLayer_screenshot.so build/lib
|
||||
strip build/lib/*
|
||||
find . -not -path './build' -not -path './build/*' -delete
|
||||
popd
|
@@ -10,8 +10,6 @@ echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources
|
||||
dpkg --add-architecture armhf
|
||||
apt-get update
|
||||
apt-get -y install \
|
||||
abootimg \
|
||||
android-sdk-ext4-utils \
|
||||
bc \
|
||||
bison \
|
||||
ccache \
|
||||
@@ -19,7 +17,6 @@ apt-get -y install \
|
||||
cpio \
|
||||
crossbuild-essential-armhf \
|
||||
debootstrap \
|
||||
fastboot \
|
||||
flex \
|
||||
g++ \
|
||||
gettext \
|
||||
@@ -44,27 +41,27 @@ apt-get -y install \
|
||||
meson \
|
||||
pkg-config \
|
||||
python \
|
||||
python3-distutils \
|
||||
python3-mako \
|
||||
python3-serial \
|
||||
unzip \
|
||||
wget \
|
||||
xz-utils \
|
||||
zlib1g-dev
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export LIBDRM_VERSION=libdrm-2.4.100
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -C build install; cd ..
|
||||
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
############### Generate cross build file for Meson
|
||||
|
||||
. .gitlab-ci/create-cross-file.sh armhf
|
||||
cross_file="/cross_file-armhf.txt"
|
||||
/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
|
||||
# Explicitly set ccache path for cross compilers
|
||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||
# Don't need wrapper for armhf executables
|
||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||
|
||||
############### Generate kernel, ramdisk, test suites, etc for LAVA jobs
|
||||
|
||||
@@ -72,7 +69,6 @@ DEBIAN_ARCH=arm64 . .gitlab-ci/container/lava_arm.sh
|
||||
DEBIAN_ARCH=armhf . .gitlab-ci/container/lava_arm.sh
|
||||
|
||||
apt-get purge -y \
|
||||
python3-distutils \
|
||||
wget
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
apt-get autoremove -y --purge
|
||||
|
@@ -3,95 +3,62 @@
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
# etnaviv will eventually need armhf too.
|
||||
CROSS_ARCHITECTURES="arm64"
|
||||
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
dpkg --add-architecture $arch
|
||||
done
|
||||
|
||||
############### Install packages for building
|
||||
apt-get install -y ca-certificates
|
||||
apt-get -y install ca-certificates
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
apt-get update
|
||||
apt-get -y install \
|
||||
bzip2 \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
libc6-dev \
|
||||
libdrm-nouveau2 \
|
||||
libexpat1 \
|
||||
libgbm-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libllvm8 \
|
||||
libpng16-16 \
|
||||
libpng-dev \
|
||||
libvulkan-dev \
|
||||
libvulkan1 \
|
||||
meson \
|
||||
netcat \
|
||||
pkg-config \
|
||||
procps \
|
||||
python \
|
||||
waffle-utils \
|
||||
wget \
|
||||
zlib1g
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
abootimg \
|
||||
android-sdk-ext4-utils \
|
||||
bc \
|
||||
bison \
|
||||
bzip2 \
|
||||
ccache \
|
||||
cmake \
|
||||
cpio \
|
||||
g++ \
|
||||
debootstrap \
|
||||
fastboot \
|
||||
flex \
|
||||
git \
|
||||
meson \
|
||||
netcat \
|
||||
python3-distutils \
|
||||
python3-minimal \
|
||||
python3-serial \
|
||||
python3.7 \
|
||||
pkg-config \
|
||||
procps \
|
||||
u-boot-tools \
|
||||
unzip
|
||||
############### Build dEQP runner
|
||||
|
||||
# Cross-build test deps
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
apt-get install -y --no-remove \
|
||||
crossbuild-essential-${arch} \
|
||||
libdrm-dev:${arch} \
|
||||
libegl1-mesa-dev:${arch} \
|
||||
libelf-dev:${arch} \
|
||||
libexpat1-dev:${arch} \
|
||||
libffi-dev:${arch} \
|
||||
libgbm-dev:${arch} \
|
||||
libgles2-mesa-dev:${arch} \
|
||||
libpng-dev:${arch} \
|
||||
libstdc++6:${arch} \
|
||||
libtinfo-dev:${arch} \
|
||||
libegl1-mesa-dev:${arch} \
|
||||
libvulkan-dev:${arch}
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
|
||||
mkdir /var/cache/apt/archives/${arch}
|
||||
done
|
||||
############### Build dEQP GL
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
. .gitlab-ci/build-deqp-gl.sh
|
||||
|
||||
############### Create rootfs
|
||||
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
. .gitlab-ci/create-cross-file.sh $arch
|
||||
|
||||
DEBIAN_ARCH=$arch . .gitlab-ci/container/lava_arm.sh
|
||||
done
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
ccache --show-stats
|
||||
|
||||
apt-get purge -y \
|
||||
bc \
|
||||
bison \
|
||||
bzip2 \
|
||||
ccache \
|
||||
cmake \
|
||||
g++ \
|
||||
flex \
|
||||
gcc \
|
||||
git \
|
||||
libc6-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng-dev \
|
||||
libvulkan-dev \
|
||||
meson \
|
||||
pkg-config \
|
||||
python3-distutils \
|
||||
procps \
|
||||
u-boot-tools
|
||||
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
apt-get purge -y ".*:${arch}"
|
||||
done
|
||||
python \
|
||||
wget
|
||||
|
||||
apt-get autoremove -y --purge
|
||||
|
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
apt-get autoremove -y --purge
|
||||
|
||||
ccache --show-stats
|
@@ -1,29 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Common setup among container builds before we get to building code.
|
||||
|
||||
export CCACHE_COMPILERCHECK=content
|
||||
export CCACHE_COMPRESS=true
|
||||
export CCACHE_DIR=/cache/mesa/ccache
|
||||
export PATH=/usr/lib/ccache:$PATH
|
||||
|
||||
# CMake ignores $PATH, so we have to force CC/GCC to the ccache versions.
|
||||
# Watch out, you can't have spaces in here because the renderdoc build fails.
|
||||
export CC="/usr/lib/ccache/gcc"
|
||||
export CXX="/usr/lib/ccache/g++"
|
||||
|
||||
ccache --show-stats
|
||||
|
||||
if uname -m | grep -q arm || uname -m | grep -q aarch64; then
|
||||
export JFLAGS=-j8
|
||||
else
|
||||
export JFLAGS=-j4
|
||||
fi
|
||||
|
||||
# Make a wrapper script for ninja to always include the -j flags
|
||||
echo /usr/bin/ninja $JFLAGS '"$@"' > /usr/local/bin/ninja
|
||||
chmod +x /usr/local/bin/ninja
|
||||
|
||||
# Set MAKEFLAGS so that all make invocations in container builds include the
|
||||
# flags (doesn't apply to non-container builds, but we don't run make there)
|
||||
export MAKEFLAGS=$JFLAGS
|
@@ -7,7 +7,7 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
GCC_ARCH="aarch64-linux-gnu"
|
||||
KERNEL_ARCH="arm64"
|
||||
DEFCONFIG="arch/arm64/configs/defconfig"
|
||||
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
|
||||
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
|
||||
KERNEL_IMAGE_NAME="Image"
|
||||
else
|
||||
GCC_ARCH="arm-linux-gnueabihf"
|
||||
@@ -17,103 +17,47 @@ else
|
||||
KERNEL_IMAGE_NAME="zImage"
|
||||
fi
|
||||
|
||||
# Determine if we're in a cross build.
|
||||
if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then
|
||||
EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt"
|
||||
EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake"
|
||||
|
||||
export ARCH=${KERNEL_ARCH}
|
||||
export CROSS_COMPILE="${GCC_ARCH}-"
|
||||
fi
|
||||
|
||||
############### Build dEQP runner
|
||||
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt"
|
||||
fi
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
|
||||
mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
||||
|
||||
|
||||
############### Build dEQP
|
||||
EXTRA_CMAKE_ARGS="-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++"
|
||||
STRIP_CMD="${GCC_ARCH}-strip"
|
||||
. .gitlab-ci/build-deqp-gl.sh
|
||||
mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
|
||||
|
||||
############### Cross-build kernel
|
||||
KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-panfrost-fixes/linux-v5.5-panfrost-fixes.tar.gz"
|
||||
KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-rc5-panfrost-fixes/linux-v5.5-rc5-panfrost-fixes.tar.gz"
|
||||
|
||||
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
export ARCH=${KERNEL_ARCH}
|
||||
export CROSS_COMPILE="${GCC_ARCH}-"
|
||||
fi
|
||||
|
||||
mkdir -p kernel
|
||||
wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
|
||||
pushd kernel
|
||||
./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
|
||||
make ${KERNEL_IMAGE_NAME} dtbs
|
||||
for image in ${KERNEL_IMAGE_NAME}; do
|
||||
cp arch/${KERNEL_ARCH}/boot/${image} /lava-files/.
|
||||
done
|
||||
make -j12 ${KERNEL_IMAGE_NAME} dtbs
|
||||
cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /lava-files/.
|
||||
cp ${DEVICE_TREES} /lava-files/.
|
||||
|
||||
|
||||
if [[ ${DEBIAN_ARCH} = "arm64" ]] && which mkimage > /dev/null; then
|
||||
make Image.lzma
|
||||
mkimage \
|
||||
-f auto \
|
||||
-A arm \
|
||||
-O linux \
|
||||
-d arch/arm64/boot/Image.lzma \
|
||||
-C lzma\
|
||||
-b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \
|
||||
/lava-files/cheza-kernel
|
||||
fi
|
||||
|
||||
popd
|
||||
rm -rf kernel
|
||||
|
||||
|
||||
############### Create rootfs
|
||||
set +e
|
||||
debootstrap \
|
||||
--variant=minbase \
|
||||
--arch=${DEBIAN_ARCH} \
|
||||
--components main,contrib,non-free \
|
||||
testing \
|
||||
/lava-files/rootfs-${DEBIAN_ARCH}/ \
|
||||
http://deb.debian.org/debian
|
||||
|
||||
debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /lava-files/rootfs-${DEBIAN_ARCH}/ http://deb.debian.org/debian
|
||||
cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
|
||||
set -e
|
||||
|
||||
cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
|
||||
rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
|
||||
|
||||
if [ ${DEBIAN_ARCH} = arm64 ]; then
|
||||
# Pull down a specific build of qcomlt/release/qcomlt-5.4 8c79b3d12355
|
||||
# ("Merge tag 'v5.4.23' into release/qcomlt-5.4"), where I used the
|
||||
# .config from
|
||||
# http://snapshots.linaro.org/96boards/dragonboard820c/linaro/debian/457/config-5.4.0-qcomlt-arm64
|
||||
# with the following merged in:
|
||||
#
|
||||
# CONFIG_DRM=y
|
||||
# CONFIG_DRM_MSM=y
|
||||
# CONFIG_ATL1C=y
|
||||
#
|
||||
# Reason: 5.5 has a big stack of oopses and warns on db820c. 4.14-5.4
|
||||
# linaro kernel binaries (see above .config link) have these as modules
|
||||
# and distributed the modules only in the debian system, not the initrd,
|
||||
# so they're very hard to extract (involving simg2img and loopback
|
||||
# mounting). 4.11 is missing d72fea538fe6 ("drm/msm: Fix the check for
|
||||
# the command size") so it can't actually run fredreno. qcomlt-4.14 is
|
||||
# unstable at boot (~10% instaboot rate). The 5.4 qcomlt kernel with msm
|
||||
# built in seems like the easiest way to go.
|
||||
wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/Image.gz -O Image.gz \
|
||||
-O /lava-files/db820c-kernel
|
||||
wget https://people.freedesktop.org/~anholt/qcomlt-5.4-msm-build/apq8096-db820c.dtb \
|
||||
-O /lava-files/db820c.dtb
|
||||
|
||||
# Make a gzipped copy of the Image for db410c.
|
||||
gzip -k /lava-files/Image
|
||||
|
||||
# Add missing a630 firmware, added to debian packge in apr 2020
|
||||
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_gmu.bin \
|
||||
-O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_gmu.bin
|
||||
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/a630_sqe.fw \
|
||||
-O /lava-files/rootfs-arm64/lib/firmware/qcom/a630_sqe.fw
|
||||
fi
|
||||
|
@@ -5,7 +5,7 @@ set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
CROSS_ARCHITECTURES="i386 ppc64el s390x"
|
||||
CROSS_ARCHITECTURES="i386"
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
dpkg --add-architecture $arch
|
||||
done
|
||||
@@ -22,15 +22,14 @@ echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/s
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
echo 'deb https://deb.debian.org/debian testing main' >/etc/apt/sources.list.d/testing.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Don't use newer packages from testing by default
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 100
|
||||
Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
@@ -40,7 +39,6 @@ apt-get install -y --no-remove \
|
||||
automake \
|
||||
autotools-dev \
|
||||
bison \
|
||||
ccache \
|
||||
clang-9 \
|
||||
cmake \
|
||||
flex \
|
||||
@@ -50,9 +48,9 @@ apt-get install -y --no-remove \
|
||||
git \
|
||||
libclang-6.0-dev \
|
||||
libclang-7-dev \
|
||||
libclang-8-dev \
|
||||
libclang-9-dev \
|
||||
libclc-dev \
|
||||
libdrm-dev:s390x \
|
||||
libelf-dev \
|
||||
libepoxy-dev \
|
||||
libexpat1-dev \
|
||||
@@ -60,18 +58,15 @@ apt-get install -y --no-remove \
|
||||
libgtk-3-dev \
|
||||
libomxil-bellagio-dev \
|
||||
libpciaccess-dev \
|
||||
libpciaccess-dev:i386 \
|
||||
libtool \
|
||||
libunwind-dev \
|
||||
libva-dev \
|
||||
libvdpau-dev \
|
||||
libvulkan-dev \
|
||||
libvulkan-dev:ppc64el \
|
||||
libx11-dev \
|
||||
libx11-xcb-dev \
|
||||
libxdamage-dev \
|
||||
libxext-dev \
|
||||
libxml2-utils \
|
||||
libxrandr-dev \
|
||||
libxrender-dev \
|
||||
libxshmfence-dev \
|
||||
@@ -79,14 +74,12 @@ apt-get install -y --no-remove \
|
||||
libxxf86vm-dev \
|
||||
llvm-6.0-dev \
|
||||
llvm-7-dev \
|
||||
llvm-8-dev \
|
||||
llvm-9-dev \
|
||||
meson \
|
||||
pkg-config \
|
||||
python-mako \
|
||||
python3-mako \
|
||||
python3-pil \
|
||||
python3-requests \
|
||||
qemu-user \
|
||||
scons \
|
||||
x11proto-dri2-dev \
|
||||
x11proto-gl-dev \
|
||||
@@ -94,52 +87,22 @@ apt-get install -y --no-remove \
|
||||
xz-utils \
|
||||
zlib1g-dev
|
||||
|
||||
apt-get install -y --no-remove -t buster-backports \
|
||||
libclang-8-dev
|
||||
|
||||
# Cross-build Mesa deps
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
apt-get install -y --no-remove \
|
||||
crossbuild-essential-${arch} \
|
||||
libdrm-dev:${arch} \
|
||||
libelf-dev:${arch} \
|
||||
libexpat1-dev:${arch} \
|
||||
libffi-dev:${arch} \
|
||||
libstdc++6:${arch} \
|
||||
libtinfo-dev:${arch}
|
||||
|
||||
apt-get install -y --no-remove -t buster-backports \
|
||||
libllvm8:${arch}
|
||||
|
||||
mkdir /var/cache/apt/archives/${arch}
|
||||
# Download llvm-* packages, but don't install them yet, since they can
|
||||
# only be installed for one architecture at a time
|
||||
apt-get install -o Dir::Cache::archives=/var/cache/apt/archives/$arch --download-only \
|
||||
-y --no-remove -t buster-backports \
|
||||
llvm-8-dev:${arch}
|
||||
libexpat1-dev:${arch}
|
||||
done
|
||||
|
||||
apt-get install -y --no-remove -t buster-backports \
|
||||
llvm-8-dev \
|
||||
|
||||
|
||||
# Install packages we need from Debian testing last, to avoid pulling in more
|
||||
|
||||
# Need to allow removing libgcc1 for these
|
||||
apt-get install -y -t testing \
|
||||
libstdc++6:i386 \
|
||||
libstdc++6:ppc64el \
|
||||
libstdc++6:s390x
|
||||
|
||||
apt-get install -y --no-remove -t testing \
|
||||
g++-mingw-w64-x86-64-win32 \
|
||||
libz-mingw-w64-dev \
|
||||
wine \
|
||||
wine32 \
|
||||
wine64
|
||||
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
# for 64bit windows cross-builds
|
||||
apt-get install -y --no-remove \
|
||||
libz-mingw-w64-dev \
|
||||
mingw-w64 \
|
||||
wine \
|
||||
wine32 \
|
||||
wine64
|
||||
|
||||
# Debian's pkg-config wrapers for mingw are broken, and there's no sign that
|
||||
# they're going to be fixed, so we'll just have to fix it ourselves
|
||||
@@ -151,13 +114,6 @@ PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
|
||||
EOF
|
||||
chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
|
||||
|
||||
|
||||
# Generate cross build files for Meson
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
. .gitlab-ci/create-cross-file.sh $arch
|
||||
done
|
||||
|
||||
|
||||
# for the vulkan overlay layer
|
||||
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
|
||||
unzip glslang-master-linux-Release.zip bin/glslangValidator
|
||||
@@ -194,11 +150,7 @@ rm -rf $LIBXCB_VERSION
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||
cd $LIBDRM_VERSION
|
||||
meson build -D vc4=true -D freedreno=true -D etnaviv=true -D libdir=lib/x86_64-linux-gnu; ninja -C build install
|
||||
rm -rf build; meson --cross-file=/cross_file-ppc64el.txt build -D libdir=lib/powerpc64le-linux-gnu; ninja -C build install
|
||||
rm -rf build; meson --cross-file=/cross_file-i386.txt build -D libdir=lib/i386-linux-gnu; ninja -C build install
|
||||
cd ..
|
||||
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
||||
@@ -229,6 +181,27 @@ cd shader-db
|
||||
make
|
||||
popd
|
||||
|
||||
# Use ccache to speed up builds
|
||||
apt-get install -y --no-remove ccache
|
||||
|
||||
# We need xmllint to validate the XML files in Mesa
|
||||
apt-get install -y --no-remove libxml2-utils
|
||||
|
||||
|
||||
# Generate cross build files for Meson
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
cross_file="/cross_file-$arch.txt"
|
||||
/usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
|
||||
# Explicitly set ccache path for cross compilers
|
||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||
if [ "$arch" = "i386" ]; then
|
||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
||||
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
||||
# Don't need wrapper for i386 executables
|
||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
@@ -244,4 +217,4 @@ apt-get purge -y \
|
||||
unzip \
|
||||
wget
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
apt-get autoremove -y --purge
|
||||
|
@@ -24,37 +24,36 @@ EOF
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
bison \
|
||||
llvm-3.9-dev \
|
||||
libclang-3.9-dev \
|
||||
llvm-4.0-dev \
|
||||
libclang-4.0-dev \
|
||||
llvm-5.0-dev \
|
||||
libclang-5.0-dev \
|
||||
g++ \
|
||||
bzip2 \
|
||||
ccache \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
gettext \
|
||||
git \
|
||||
libclang-3.9-dev \
|
||||
libclang-4.0-dev \
|
||||
libclang-5.0-dev \
|
||||
libclc-dev \
|
||||
libdrm-dev \
|
||||
libelf-dev \
|
||||
libepoxy-dev \
|
||||
libexpat1-dev \
|
||||
libpng-dev \
|
||||
libunwind-dev \
|
||||
llvm-3.9-dev \
|
||||
llvm-4.0-dev \
|
||||
llvm-5.0-dev \
|
||||
meson \
|
||||
zlib1g-dev \
|
||||
pkg-config \
|
||||
gcc \
|
||||
git \
|
||||
libepoxy-dev \
|
||||
libclc-dev \
|
||||
xz-utils \
|
||||
libdrm-dev \
|
||||
libexpat1-dev \
|
||||
libelf-dev \
|
||||
libunwind-dev \
|
||||
libpng-dev \
|
||||
python-mako \
|
||||
python3-mako \
|
||||
bison \
|
||||
flex \
|
||||
gettext \
|
||||
scons \
|
||||
xz-utils \
|
||||
zlib1g-dev
|
||||
meson
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Uninstall unused packages
|
||||
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
apt-get autoremove -y --purge
|
||||
|
@@ -6,89 +6,59 @@ set -o xtrace
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
gnupg
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
|
||||
# Upstream LLVM package repository
|
||||
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian testing main' >/etc/apt/sources.list.d/testing.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Don't use newer packages from testing by default
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 100
|
||||
Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
autoconf \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gcc \
|
||||
libexpat1 \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libllvm9 \
|
||||
libpcre3-dev \
|
||||
libpcre32-3 \
|
||||
libpng-dev \
|
||||
libpng16-16 \
|
||||
libpython3.7 \
|
||||
libvulkan-dev \
|
||||
libpng-dev \
|
||||
libvulkan1 \
|
||||
libvulkan-dev \
|
||||
libwaffle-dev \
|
||||
libwayland-server0 \
|
||||
libxcb-keysyms1 \
|
||||
libxcb-keysyms1-dev \
|
||||
libxcb-xfixes0 \
|
||||
libxkbcommon-dev \
|
||||
libxkbcommon0 \
|
||||
libxrender-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrender1 \
|
||||
make \
|
||||
libxrender-dev \
|
||||
libllvm9 \
|
||||
meson \
|
||||
patch \
|
||||
pkg-config \
|
||||
python \
|
||||
python3-distutils \
|
||||
python3-mako \
|
||||
python3-numpy \
|
||||
python3-pil \
|
||||
python3-pytest \
|
||||
python3-requests \
|
||||
python3-six \
|
||||
python3-yaml \
|
||||
python3.7 \
|
||||
python3.7-dev \
|
||||
qt5-default \
|
||||
qt5-qmake \
|
||||
python \
|
||||
waffle-utils \
|
||||
wget \
|
||||
xauth \
|
||||
xvfb \
|
||||
xz-utils \
|
||||
zlib1g
|
||||
|
||||
# Install packages we need from Debian testing last, to avoid pulling in more
|
||||
apt-get install -y -t testing \
|
||||
libc6-dev
|
||||
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Build virglrenderer
|
||||
|
||||
. .gitlab-ci/build-virglrenderer.sh
|
||||
|
||||
############### Build piglit
|
||||
|
||||
@@ -102,42 +72,25 @@ apt-get install -y -t testing \
|
||||
|
||||
. .gitlab-ci/build-deqp-gl.sh
|
||||
|
||||
############### Build apitrace
|
||||
|
||||
. .gitlab-ci/build-apitrace.sh
|
||||
|
||||
############### Build renderdoc
|
||||
|
||||
. .gitlab-ci/build-renderdoc.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
ccache --show-stats
|
||||
|
||||
apt-get purge -y \
|
||||
autoconf \
|
||||
automake \
|
||||
ccache \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
libc6-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpcre3-dev \
|
||||
libpng-dev \
|
||||
libwaffle-dev \
|
||||
libxcb-keysyms1-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrender-dev \
|
||||
make \
|
||||
meson \
|
||||
patch \
|
||||
pkg-config \
|
||||
python3-distutils \
|
||||
python3.7-dev \
|
||||
wget \
|
||||
xz-utils
|
||||
python
|
||||
|
||||
apt-get autoremove -y --purge
|
||||
|
@@ -6,190 +6,82 @@ set -o xtrace
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
gnupg
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
|
||||
# Upstream LLVM package repository
|
||||
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian testing main' >/etc/apt/sources.list.d/testing.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Don't use newer packages from testing by default
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=testing
|
||||
Pin-Priority: 100
|
||||
Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
ccache \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
git-lfs \
|
||||
gcc \
|
||||
libexpat1 \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libllvm9 \
|
||||
liblz4-1 \
|
||||
liblz4-dev \
|
||||
libpng-dev \
|
||||
libpng16-16 \
|
||||
libvulkan-dev \
|
||||
libpng-dev \
|
||||
libvulkan1 \
|
||||
libwayland-client0 \
|
||||
libvulkan-dev \
|
||||
libwayland-server0 \
|
||||
libxcb-ewmh-dev \
|
||||
libxcb-ewmh2 \
|
||||
libxcb-keysyms1 \
|
||||
libxcb-keysyms1-dev \
|
||||
libxcb-randr0 \
|
||||
libxcb-xfixes0 \
|
||||
libxkbcommon-dev \
|
||||
libxkbcommon0 \
|
||||
libxrandr-dev \
|
||||
libxrandr2 \
|
||||
libxrender-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrender1 \
|
||||
libxrender-dev \
|
||||
libllvm9 \
|
||||
meson \
|
||||
p7zip \
|
||||
patch \
|
||||
pkg-config \
|
||||
python \
|
||||
python3-distutils \
|
||||
python3-pil \
|
||||
python3-pytest \
|
||||
python3-requests \
|
||||
python3-yaml \
|
||||
vulkan-tools \
|
||||
wget \
|
||||
python \
|
||||
xauth \
|
||||
xvfb
|
||||
|
||||
# We need multiarch for Wine
|
||||
dpkg --add-architecture i386
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
wine \
|
||||
wine32 \
|
||||
wine64
|
||||
|
||||
# Install packages we need from Debian testing last, to avoid pulling in more
|
||||
apt-get install -y -t testing \
|
||||
libc6-dev
|
||||
|
||||
|
||||
############### Set up Wine env variables
|
||||
|
||||
export WINEDEBUG="-all"
|
||||
export WINEPREFIX="/dxvk-wine64"
|
||||
|
||||
############### Install DXVK
|
||||
|
||||
DXVK_VERSION="1.6"
|
||||
|
||||
# We don't want crash dialogs
|
||||
cat >crashdialog.reg <<EOF
|
||||
Windows Registry Editor Version 5.00
|
||||
|
||||
[HKEY_CURRENT_USER\Software\Wine\WineDbg]
|
||||
"ShowCrashDialog"=dword:00000000
|
||||
|
||||
EOF
|
||||
|
||||
# Set the wine prefix and disable the crash dialog
|
||||
wine regedit crashdialog.reg
|
||||
rm crashdialog.reg
|
||||
|
||||
# DXVK's setup often fails with:
|
||||
# "${WINEPREFIX}: Not a valid wine prefix."
|
||||
# and that is just spit because of checking the existance of the
|
||||
# system.reg file, which fails.
|
||||
# Just giving it a bit more of time for it to be created solves the
|
||||
# problem ...
|
||||
test -f "${WINEPREFIX}/system.reg" || sleep 2
|
||||
|
||||
wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
|
||||
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
|
||||
dxvk-"${DXVK_VERSION}"/setup_dxvk.sh install
|
||||
rm -rf dxvk-"${DXVK_VERSION}"
|
||||
rm dxvk-"${DXVK_VERSION}".tar.gz
|
||||
|
||||
############### Install Windows' apitrace binaries
|
||||
|
||||
APITRACE_VERSION="9.0"
|
||||
APITRACE_VERSION_DATE="20191126"
|
||||
|
||||
wget "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z"
|
||||
7zr x "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z" \
|
||||
"apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \
|
||||
"apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe"
|
||||
mv "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64
|
||||
rm "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z"
|
||||
|
||||
# Add the apitrace path to the registry
|
||||
wine \
|
||||
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \
|
||||
/v Path \
|
||||
/t REG_EXPAND_SZ \
|
||||
/d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \
|
||||
/f
|
||||
|
||||
############### Building ...
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
|
||||
############### Build Fossilize
|
||||
|
||||
. .gitlab-ci/build-fossilize.sh
|
||||
|
||||
############### Build dEQP VK
|
||||
|
||||
. .gitlab-ci/build-deqp-vk.sh
|
||||
|
||||
############### Build gfxreconstruct
|
||||
|
||||
. .gitlab-ci/build-gfxreconstruct.sh
|
||||
|
||||
############### Build VulkanTools
|
||||
|
||||
. .gitlab-ci/build-vulkantools.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
ccache --show-stats
|
||||
|
||||
apt-get purge -y \
|
||||
ccache \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
liblz4-dev \
|
||||
libpng-dev \
|
||||
libvulkan-dev \
|
||||
libxcb-ewmh-dev \
|
||||
libxcb-keysyms1-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrandr-dev \
|
||||
libxrender-dev \
|
||||
meson \
|
||||
p7zip \
|
||||
patch \
|
||||
pkg-config \
|
||||
wget
|
||||
python
|
||||
|
||||
apt-get autoremove -y --purge
|
||||
|
@@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
arch=$1
|
||||
cross_file="/cross_file-$arch.txt"
|
||||
/usr/share/meson/debcrossgen --arch $arch -o "$cross_file"
|
||||
# Explicitly set ccache path for cross compilers
|
||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||
if [ "$arch" = "i386" ]; then
|
||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
||||
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
||||
fi
|
||||
# Rely on qemu-user being configured in binfmt_misc on the host
|
||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||
|
||||
# Set up cmake cross compile toolchain file for dEQP builds
|
||||
toolchain_file="/toolchain-$arch.cmake"
|
||||
if [[ "$arch" = "arm64" ]]; then
|
||||
GCC_ARCH="aarch64-linux-gnu"
|
||||
DE_CPU="DE_CPU_ARM_64"
|
||||
CMAKE_ARCH=arm
|
||||
elif [[ "$arch" = "armhf" ]]; then
|
||||
GCC_ARCH="arm-linux-gnueabihf"
|
||||
DE_CPU="DE_CPU_ARM"
|
||||
CMAKE_ARCH=arm
|
||||
fi
|
||||
|
||||
if [[ -n "$GCC_ARCH" ]]; then
|
||||
echo "set(CMAKE_SYSTEM_NAME Linux)" > "$toolchain_file"
|
||||
echo "set(CMAKE_SYSTEM_PROCESSOR arm)" >> "$toolchain_file"
|
||||
echo "set(CMAKE_C_COMPILER /usr/lib/ccache/$GCC_ARCH-gcc)" >> "$toolchain_file"
|
||||
echo "set(CMAKE_CXX_COMPILER /usr/lib/ccache/$GCC_ARCH-g++)" >> "$toolchain_file"
|
||||
echo "set(ENV{PKG_CONFIG} \"/usr/bin/$GCC_ARCH-pkg-config\")" >> "$toolchain_file"
|
||||
echo "set(DE_CPU $DE_CPU)" >> "$toolchain_file"
|
||||
fi
|
@@ -2,8 +2,14 @@
|
||||
|
||||
set -ex
|
||||
|
||||
LLVM=libllvm8
|
||||
|
||||
# LLVMPipe on armhf is broken with LLVM 8
|
||||
if [ `dpkg --print-architecture` = "armhf" ]; then
|
||||
LLVM=libllvm7
|
||||
fi
|
||||
|
||||
apt-get -y install --no-install-recommends \
|
||||
ca-certificates \
|
||||
initramfs-tools \
|
||||
libpng16-16 \
|
||||
strace \
|
||||
@@ -11,34 +17,15 @@ apt-get -y install --no-install-recommends \
|
||||
libexpat1 \
|
||||
libdrm2 \
|
||||
libdrm-nouveau2 \
|
||||
firmware-qcom-media \
|
||||
netcat-openbsd \
|
||||
wget \
|
||||
xz-utils
|
||||
$LLVM
|
||||
passwd root -d
|
||||
chsh -s /bin/sh
|
||||
|
||||
cat > /init <<EOF
|
||||
#!/bin/sh
|
||||
export PS1=lava-shell:
|
||||
exec sh
|
||||
EOF
|
||||
chmod +x /init
|
||||
|
||||
mkdir -p /lib/firmware/rtl_nic
|
||||
wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_nic/rtl8153a-3.fw -O /lib/firmware/rtl_nic/rtl8153a-3.fw
|
||||
ln -s /bin/sh /init
|
||||
|
||||
#######################################################################
|
||||
# Strip the image to a small minimal system without removing the debian
|
||||
# toolchain.
|
||||
|
||||
# xz compress firmware so it doesn't waste RAM at runtime. Except db820c's
|
||||
# GPU firmware, due to using a precompiled kernel without compression support.
|
||||
find /lib/firmware -type f -print0 | \
|
||||
grep -vz a530 | \
|
||||
xargs -0r -P4 -n4 xz -T1 -C crc32
|
||||
ln -s /lib/firmware/qcom/a530* /lib/firmware/
|
||||
|
||||
# Copy timezone file and remove tzdata package
|
||||
rm -rf /etc/localtime
|
||||
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
||||
@@ -96,8 +83,8 @@ rm -rf usr/share/misc/usb.ids
|
||||
# IMPORTANT: The Debian system is not longer functional at this point,
|
||||
# for example, apt and dpkg will stop working
|
||||
|
||||
UNNEEDED_PACKAGES="apt libapt-pkg6.0 "\
|
||||
"ncurses-bin ncurses-base libncursesw6 libncurses6 "\
|
||||
UNNEEDED_PACKAGES="apt libapt-pkg5.0 "\
|
||||
"ncurses-bin ncurses-base libncursesw5 libncurses5 "\
|
||||
"perl-base "\
|
||||
"debconf libdebconfclient0 "\
|
||||
"e2fsprogs e2fslibs libfdisk1 "\
|
||||
@@ -106,10 +93,10 @@ UNNEEDED_PACKAGES="apt libapt-pkg6.0 "\
|
||||
"init-system-helpers "\
|
||||
"bash "\
|
||||
"cpio "\
|
||||
"xz-utils "\
|
||||
"passwd "\
|
||||
"libsemanage1 libsemanage-common "\
|
||||
"libsepol1 "\
|
||||
"gzip "\
|
||||
"gpgv "\
|
||||
"hostname "\
|
||||
"adduser "\
|
||||
@@ -167,10 +154,10 @@ rm -rf usr/lib/xtables
|
||||
rm -rf usr/lib/locale/*
|
||||
|
||||
# partition helpers
|
||||
rm -rf usr/sbin/*fdisk
|
||||
rm usr/sbin/*fdisk
|
||||
|
||||
# local compiler
|
||||
rm -rf usr/bin/localedef
|
||||
rm usr/bin/localedef
|
||||
|
||||
# Systemd dns resolver
|
||||
find usr etc -name '*systemd-resolve*' -prune -exec rm -r {} \;
|
||||
@@ -191,16 +178,18 @@ find usr etc -name '*fuse*' -prune -exec rm -r {} \;
|
||||
rm -rf usr/lib/lsb
|
||||
|
||||
# Only needed when adding libraries
|
||||
rm -rf usr/sbin/ldconfig*
|
||||
rm usr/sbin/ldconfig*
|
||||
|
||||
# Games, unused
|
||||
rmdir usr/games
|
||||
|
||||
# Remove pam module to authenticate against a DB
|
||||
# plus libdb-5.3.so that is only used by this pam module
|
||||
rm -rf usr/lib/*/security/pam_userdb.so
|
||||
rm -rf usr/lib/*/libdb-5.3.so
|
||||
rm usr/lib/*/security/pam_userdb.so
|
||||
rm usr/lib/*/libdb-5.3.so
|
||||
|
||||
# remove NSS support for nis, nisplus and hesiod
|
||||
rm -rf usr/lib/*/libnss_hesiod*
|
||||
rm -rf usr/lib/*/libnss_nis*
|
||||
rm usr/lib/*/libnss_hesiod*
|
||||
rm usr/lib/*/libnss_nis*
|
||||
|
||||
rm bin/tar
|
||||
|
@@ -1,4 +0,0 @@
|
||||
lp_test_arit
|
||||
roundeven
|
||||
u_format_test
|
||||
u_half_test
|
@@ -1,4 +0,0 @@
|
||||
lp_test_arit
|
||||
lp_test_format
|
||||
lp_test_printf
|
||||
u_format_test
|
File diff suppressed because it is too large
Load Diff
@@ -1,23 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# Flaky results
|
||||
dEQP-GLES3.functional.occlusion_query.stencil_write
|
||||
dEQP-GLES3.functional.rasterization.fbo.rbo_.*
|
||||
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.triangles
|
||||
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.points
|
||||
dEQP-GLES3.functional.rasterization.flatshading.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.flatshading.triangles
|
||||
dEQP-GLES3.functional.shaders.linkage.varying.interpolation.centroid
|
||||
dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.*
|
||||
dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.*
|
||||
dEQP-GLES3.functional.texture.units.4_units.only_3d.*
|
||||
dEQP-GLES3.functional.vertex_arrays.single_attribute.*
|
File diff suppressed because it is too large
Load Diff
@@ -1,17 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# unstable results (probably related to the iommu faults).
|
||||
dEQP-GLES3.functional.texture.filtering.3d.*
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.*
|
||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil
|
||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil
|
||||
dEQP-GLES31.functional.ubo.2_level_struct_array.single_buffer.packed_instance_array_fragment
|
@@ -1,96 +0,0 @@
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.colorburn
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.colordodge
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.darken
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.difference
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.exclusion
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.hardlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_color
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_hue
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_luminosity
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.hsl_saturation
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.lighten
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.multiply
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.overlay
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.screen
|
||||
dEQP-GLES31.functional.blend_equation_advanced.barrier.softlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.colorburn
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.colordodge
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.darken
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.difference
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.exclusion
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.hardlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_color
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_hue
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_luminosity
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.hsl_saturation
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.lighten
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.multiply
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.overlay
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.screen
|
||||
dEQP-GLES31.functional.blend_equation_advanced.basic.softlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.colorburn
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.colordodge
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.darken
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.difference
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.exclusion
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.hardlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_color
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_hue
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_luminosity
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.hsl_saturation
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.lighten
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.multiply
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.overlay
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.screen
|
||||
dEQP-GLES31.functional.blend_equation_advanced.msaa.softlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.colorburn
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.colordodge
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.darken
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.difference
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.exclusion
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.hardlight
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_color
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_hue
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_luminosity
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.hsl_saturation
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.lighten
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.multiply
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.overlay
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.screen
|
||||
dEQP-GLES31.functional.blend_equation_advanced.srgb.softlight
|
||||
dEQP-GLES31.functional.compute.basic.shared_var_single_group
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_advanced_blend_eq_buffer_advanced_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_blend_eq_buffer_advanced_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_common.common_separate_blend_eq_buffer_advanced_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_advanced_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_separate_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_separate_blend_eq_buffer_blend_eq
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.11
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.15
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.17
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.18
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.2
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.3
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.6
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.7
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.19
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.3
|
||||
dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_depth_fbo
|
||||
dEQP-GLES31.functional.ssbo.layout.3_level_array.std140.column_major_mat4x2
|
||||
dEQP-GLES31.functional.ssbo.layout.3_level_unsized_array.std430.mat3
|
||||
dEQP-GLES31.functional.ssbo.layout.random.arrays_of_arrays.6
|
||||
dEQP-GLES31.functional.ssbo.layout.unsized_struct_array.per_block_buffer.shared_instance_array
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_clear
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth32f_stencil8_draw
|
||||
dEQP-GLES31.functional.tessellation.invariance.inner_triangle_set.quads_fractional_even_spacing
|
||||
dEQP-GLES31.functional.tessellation.invariance.tess_coord_component_range.triangles_fractional_odd_spacing_cw
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.use_texture_depth_2d_array
|
||||
dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d
|
||||
dEQP-GLES31.functional.texture.multisample.samples_2.use_texture_depth_2d_array
|
||||
dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d
|
||||
dEQP-GLES31.functional.texture.multisample.samples_3.use_texture_depth_2d_array
|
||||
dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d
|
||||
dEQP-GLES31.functional.texture.multisample.samples_4.use_texture_depth_2d_array
|
@@ -1,2 +1,3 @@
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES2.functional.clip_control.depth_mode_zero_to_one
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
|
||||
|
@@ -1,80 +0,0 @@
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.0
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.11
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.12
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.15
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.16
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.18
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.19
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.21
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.23
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.24
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.27
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.28
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.29
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.3
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.31
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.35
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.37
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.39
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.40
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.43
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.44
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.45
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.48
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.5
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.6
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.7
|
||||
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.8
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.0
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.12
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.14
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.16
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.17
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.18
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.2
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.20
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.21
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.23
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.24
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.25
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.27
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.29
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.3
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.31
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.35
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.37
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.4
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.40
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.43
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.45
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.46
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.47
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.48
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.5
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.6
|
||||
dEQP-GLES31.functional.ubo.random.all_shared_buffer.9
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.0
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.1
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.10
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.11
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.12
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.13
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.15
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.16
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.18
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.19
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.20
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.21
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.22
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.23
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.24
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.3
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.4
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.5
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.6
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.7
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.8
|
||||
dEQP-GLES31.functional.ubo.random.basic_type_arrays.9
|
@@ -18,46 +18,4 @@ dEQP-GLES31.functional.primitive_bounding_box.*
|
||||
|
||||
# Intermittent timeout
|
||||
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23
|
||||
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.48
|
||||
|
||||
# Flakes reported more than once during Jan-Feb 2020
|
||||
dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array
|
||||
dEQP-GLES3.functional.fragment_out.random.0
|
||||
dEQP-GLES3.functional.fragment_out.random.1
|
||||
dEQP-GLES3.functional.fragment_out.random.12
|
||||
dEQP-GLES3.functional.fragment_out.random.13
|
||||
dEQP-GLES3.functional.fragment_out.random.17
|
||||
dEQP-GLES3.functional.fragment_out.random.24
|
||||
dEQP-GLES3.functional.fragment_out.random.27
|
||||
dEQP-GLES3.functional.fragment_out.random.28
|
||||
dEQP-GLES3.functional.fragment_out.random.32
|
||||
dEQP-GLES3.functional.fragment_out.random.34
|
||||
dEQP-GLES3.functional.fragment_out.random.35
|
||||
dEQP-GLES3.functional.fragment_out.random.36
|
||||
dEQP-GLES3.functional.fragment_out.random.40
|
||||
dEQP-GLES3.functional.fragment_out.random.44
|
||||
dEQP-GLES3.functional.fragment_out.random.47
|
||||
dEQP-GLES3.functional.fragment_out.random.5
|
||||
dEQP-GLES3.functional.fragment_out.random.50
|
||||
dEQP-GLES3.functional.fragment_out.random.51
|
||||
dEQP-GLES3.functional.fragment_out.random.55
|
||||
dEQP-GLES3.functional.fragment_out.random.58
|
||||
dEQP-GLES3.functional.fragment_out.random.59
|
||||
dEQP-GLES3.functional.fragment_out.random.61
|
||||
dEQP-GLES3.functional.fragment_out.random.63
|
||||
dEQP-GLES3.functional.fragment_out.random.66
|
||||
dEQP-GLES3.functional.fragment_out.random.67
|
||||
dEQP-GLES3.functional.fragment_out.random.69
|
||||
dEQP-GLES3.functional.fragment_out.random.70
|
||||
dEQP-GLES3.functional.fragment_out.random.71
|
||||
dEQP-GLES3.functional.fragment_out.random.80
|
||||
dEQP-GLES3.functional.fragment_out.random.82
|
||||
dEQP-GLES3.functional.fragment_out.random.86
|
||||
dEQP-GLES3.functional.fragment_out.random.88
|
||||
dEQP-GLES3.functional.fragment_out.random.91
|
||||
dEQP-GLES3.functional.fragment_out.random.93
|
||||
dEQP-GLES3.functional.fragment_out.random.95
|
||||
dEQP-GLES3.functional.fragment_out.random.96
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.interleaved.triangles.highp_mat2x3
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.interleaved.triangles.lowp_mat2x4
|
||||
dEQP-GLES3.functional.transform_feedback.array_element.separate.triangles.lowp_mat2x4
|
||||
|
@@ -4,6 +4,32 @@ dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_neg_y_pos_z_a
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_pos_y_pos_z_and_pos_x_neg_y_neg_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_neg_y_pos_z_and_neg_x_pos_y_neg_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
@@ -35,9 +61,116 @@ dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil
|
||||
dEQP-GLES2.functional.shaders.algorithm.hsl_to_rgb_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.array_arguments.global_in_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.array_arguments.local_in_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.datatypes.int_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.overloading.builtin_sin_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.overloading.builtin_step_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.overloading.user_func_arg_int_types_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.out_highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.out_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.out_lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_loop_write_static_loop_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_loop_write_static_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_write_dynamic_loop_read_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_constant_iterations.conditional_body_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.vector_counter_fragment
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_uniform_iterations.conditional_body_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_uniform_iterations.nested_tricky_dataflow_2_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.for_dynamic_iterations.vector_counter_fragment
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.compound_statement_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.sequence_statement_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.nested_sequence_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.vector_counter_fragment
|
||||
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.nested_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.37
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.11
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.12
|
||||
@@ -46,13 +179,19 @@ dEQP-GLES2.functional.shaders.random.exponential.fragment.37
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.5
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.74
|
||||
dEQP-GLES2.functional.shaders.random.texture.fragment.28
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.1
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.65
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.69
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texturecube_bias
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
|
||||
|
@@ -9,23 +9,31 @@ dEQP-GLES[0-9]*.stress
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish
|
||||
|
||||
# Crashes
|
||||
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1
|
||||
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1
|
||||
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1
|
||||
|
||||
# Flaky
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES2.functional.default_vertex_attrib.*
|
||||
dEQP-GLES2.functional.fbo.completeness.size.distinct
|
||||
dEQP-GLES2.functional.negative_api.shader.uniform_matrixfv_invalid_transpose
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed
|
||||
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.94
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.55
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.1
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.69
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
|
||||
# Driver bugs causing GPU errors
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.nested_sequence_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.conditional_body_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.conditional_continue_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.double_continue_vertex
|
||||
|
||||
# Hangs / OOM
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_read
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_read
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_loop_read
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_loop_read
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_dynamic_loop_write_dynamic_read_vertex
|
||||
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_read_vertex
|
||||
|
@@ -28,6 +28,7 @@ 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-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec3_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||
@@ -79,3 +80,45 @@ dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat
|
||||
|
@@ -8,4 +8,3 @@ dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -11,10 +11,3 @@ dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# XXX: Why does this flake?
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
|
||||
# XXX: Causes irrecoverable GPU hangs when run in parallel with dEQP-GLES3.functional.transform_feedback.*
|
||||
dEQP-GLES3.functional.rasterizer_discard.*
|
||||
|
||||
# XXX: Not completely implemented yet, behave flakily
|
||||
dEQP-GLES3.functional.shaders.derivate.*
|
||||
|
||||
|
@@ -1,3 +0,0 @@
|
||||
# Exclude WSI related tests.
|
||||
dEQP-VK.image.swapchain_mutable.*
|
||||
dEQP-VK.wsi.*
|
@@ -1,32 +0,0 @@
|
||||
# CTS bug (should be fixed in next version)
|
||||
dEQP-VK.api.buffer_marker.graphics.default_mem.bottom_of_pipe.memory_dep.draw
|
||||
dEQP-VK.api.buffer_marker.graphics.external_host_mem.bottom_of_pipe.memory_dep.draw
|
||||
|
||||
# SPIR-V->NIR issues.
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.scalar
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec2
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec3
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec4
|
||||
|
||||
# CTS bug (list of extensions not up-to-date).
|
||||
dEQP-VK.info.device_extensions
|
||||
|
||||
# Interesting failures...
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint.stencil_max
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint.stencil_min
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint.stencil_zero
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint_separate_layouts.stencil_max
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint_separate_layouts.stencil_min
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_2.d32_sfloat_s8_uint_separate_layouts.stencil_zero
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint.stencil_max
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint.stencil_min
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint.stencil_zero
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint_separate_layouts.stencil_max
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint_separate_layouts.stencil_min
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_4.d32_sfloat_s8_uint_separate_layouts.stencil_zero
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint.stencil_max
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint.stencil_min
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint.stencil_zero
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint_separate_layouts.stencil_max
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint_separate_layouts.stencil_min
|
||||
dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_8.d32_sfloat_s8_uint_separate_layouts.stencil_zero
|
@@ -1,12 +0,0 @@
|
||||
# SPIR-V->NIR issues.
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.scalar
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec2
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec3
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec4
|
||||
|
||||
# CTS bug (list of extensions not up-to-date).
|
||||
dEQP-VK.info.device_extensions
|
||||
|
||||
# ACO specific issues.
|
||||
dEQP-VK.transform_feedback.simple.multistreams_1
|
||||
dEQP-VK.transform_feedback.simple.multistreams_3
|
@@ -1,8 +0,0 @@
|
||||
# SPIR-V->NIR issues.
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.scalar
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec2
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec3
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec4
|
||||
|
||||
# CTS bug (list of extensions not up-to-date).
|
||||
dEQP-VK.info.device_extensions
|
@@ -1,12 +0,0 @@
|
||||
# CTS bug (should be fixed in next version)
|
||||
dEQP-VK.api.buffer_marker.graphics.default_mem.bottom_of_pipe.memory_dep.draw
|
||||
dEQP-VK.api.buffer_marker.graphics.external_host_mem.bottom_of_pipe.memory_dep.draw
|
||||
|
||||
# SPIR-V->NIR issues.
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.scalar
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec2
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec3
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec4
|
||||
|
||||
# CTS bug (list of extensions not up-to-date).
|
||||
dEQP-VK.info.device_extensions
|
@@ -1,12 +0,0 @@
|
||||
# SPIR-V->NIR issues.
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.scalar
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec2
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec3
|
||||
dEQP-VK.glsl.builtin.precision.asin.highp.vec4
|
||||
|
||||
# CTS bug (list of extensions not up-to-date).
|
||||
dEQP-VK.info.device_extensions
|
||||
|
||||
# ACO specific issues.
|
||||
dEQP-VK.transform_feedback.simple.multistreams_1
|
||||
dEQP-VK.transform_feedback.simple.multistreams_3
|
@@ -2,11 +2,18 @@
|
||||
|
||||
set -ex
|
||||
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=256 --deqp-surface-height=256"
|
||||
DEQP_OPTIONS="--deqp-surface-width=256 --deqp-surface-height=256"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=rgba8888d24s8ms0"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
|
||||
|
||||
# It would be nice to be able to enable the watchdog, so that hangs in a test
|
||||
# don't need to wait the full hour for the run to time out. However, some
|
||||
# shaders end up taking long enough to compile
|
||||
# (dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20 for example)
|
||||
# that they'll sporadically trigger the watchdog.
|
||||
#DEQP_OPTIONS="$DEQP_OPTIONS --deqp-watchdog=enable"
|
||||
|
||||
if [ -z "$DEQP_VER" ]; then
|
||||
echo 'DEQP_VER must be set to something like "gles2", "gles31" or "vk" for the test run'
|
||||
exit 1
|
||||
@@ -24,12 +31,12 @@ if [ -z "$DEQP_SKIPS" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INSTALL=`pwd`/install
|
||||
ARTIFACTS=`pwd`/artifacts
|
||||
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH=`pwd`/install/lib/
|
||||
export EGL_PLATFORM=surfaceless
|
||||
export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.`uname -m`.json
|
||||
export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.x86_64.json
|
||||
|
||||
# the runner was failing to look for libkms in /usr/local/lib for some reason
|
||||
# I never figured out.
|
||||
@@ -53,25 +60,17 @@ if [ -n "$CI_NODE_INDEX" ]; then
|
||||
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_CASELIST_FILTER" ]; then
|
||||
sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ ! -s /tmp/case-list.txt ]; then
|
||||
echo "Caselist generation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_EXPECTED_FAILS" ]; then
|
||||
XFAIL="--xfail-list $INSTALL/$DEQP_EXPECTED_FAILS"
|
||||
XFAIL="--xfail-list $ARTIFACTS/$DEQP_EXPECTED_FAILS"
|
||||
fi
|
||||
|
||||
set +e
|
||||
|
||||
if [ -n "$DEQP_PARALLEL" ]; then
|
||||
JOB="--job $DEQP_PARALLEL"
|
||||
fi
|
||||
|
||||
run_cts() {
|
||||
deqp=$1
|
||||
caselist=$2
|
||||
@@ -80,10 +79,9 @@ run_cts() {
|
||||
--deqp $deqp \
|
||||
--output $output \
|
||||
--caselist $caselist \
|
||||
--exclude-list $INSTALL/$DEQP_SKIPS \
|
||||
--compact-display false \
|
||||
--exclude-list $ARTIFACTS/$DEQP_SKIPS \
|
||||
$XFAIL \
|
||||
$JOB \
|
||||
--job ${DEQP_PARALLEL:-1} \
|
||||
--allow-flakes true \
|
||||
$DEQP_RUNNER_OPTIONS \
|
||||
-- \
|
||||
@@ -95,16 +93,7 @@ report_flakes() {
|
||||
return 0
|
||||
fi
|
||||
flakes=$1
|
||||
# The nick needs to be something unique so that multiple runners
|
||||
# connecting at the same time don't race for one nick and get blocked.
|
||||
# freenode has a 16-char limit on nicks (9 is the IETF standard, but
|
||||
# various servers extend that). So, trim off the common prefixes of the
|
||||
# runner name, and append the job ID so that software runners with more
|
||||
# than one concurrent job (think swrast) don't collide. For freedreno,
|
||||
# that gives us a nick as long as db410c-N-JJJJJJJJ, and it'll be a while
|
||||
# before we make it to 9-digit jobs (we're at 7 so far).
|
||||
runner=`echo $CI_RUNNER_DESCRIPTION | sed 's|mesa-||' | sed 's|google-freedreno-||g'`
|
||||
bot="$runner-$CI_JOB_ID"
|
||||
bot="$CI_RUNNER_DESCRIPTION-$CI_PIPELINE_ID"
|
||||
channel="$FLAKES_CHANNEL"
|
||||
(
|
||||
echo NICK $bot
|
||||
@@ -113,10 +102,8 @@ report_flakes() {
|
||||
echo "JOIN $channel"
|
||||
sleep 1
|
||||
desc="Flakes detected in job: $CI_JOB_URL on $CI_RUNNER_DESCRIPTION"
|
||||
if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ]; then
|
||||
if [ -n "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ]; then
|
||||
desc="$desc on branch $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME ($CI_MERGE_REQUEST_TITLE)"
|
||||
elif [ -n "$CI_COMMIT_BRANCH" ]; then
|
||||
desc="$desc on branch $CI_COMMIT_BRANCH ($CI_COMMIT_TITLE)"
|
||||
fi
|
||||
echo "PRIVMSG $channel :$desc"
|
||||
for flake in `cat $flakes`; do
|
||||
@@ -133,13 +120,7 @@ extract_xml_result() {
|
||||
shift 1
|
||||
qpas=$*
|
||||
start="#beginTestCaseResult $testcase"
|
||||
|
||||
# Pick the first QPA mentioning our testcase
|
||||
qpa=`grep -l "$start" $qpas | head -n 1`
|
||||
|
||||
# If we found one, go extract just that testcase's contents from the QPA
|
||||
# to a new QPA, then do testlog-to-xml on that.
|
||||
if [ -n "$qpa" ]; then
|
||||
for qpa in $qpas; do
|
||||
while IFS= read -r line; do
|
||||
if [ "$line" = "$start" ]; then
|
||||
dst="$testcase.qpa"
|
||||
@@ -149,7 +130,7 @@ extract_xml_result() {
|
||||
if [ "$line" = "#endTestCaseResult" ]; then
|
||||
echo $line >> $dst
|
||||
echo "#endSession" >> $dst
|
||||
/deqp/executor/testlog-to-xml $dst "$RESULTS/$testcase$DEQP_RUN_SUFFIX.xml"
|
||||
/deqp/executor/testlog-to-xml $dst "$RESULTS/$testcase.xml"
|
||||
# copy the stylesheets here so they only end up in artifacts
|
||||
# if we have one or more result xml in artifacts
|
||||
cp /deqp/testlog.css "$RESULTS/"
|
||||
@@ -161,7 +142,7 @@ extract_xml_result() {
|
||||
return 1
|
||||
fi
|
||||
done < $qpa
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
extract_xml_results() {
|
||||
@@ -197,39 +178,6 @@ generate_junit() {
|
||||
echo "</testsuites>"
|
||||
}
|
||||
|
||||
parse_renderer() {
|
||||
RENDERER=`grep -A1 TestCaseResult.\*info.renderer $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'`
|
||||
VERSION=`grep -A1 TestCaseResult.\*info.version $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'`
|
||||
echo "Renderer: $RENDERER"
|
||||
echo "Version: $VERSION "
|
||||
|
||||
if ! echo $RENDERER | grep -q $DEQP_EXPECTED_RENDERER; then
|
||||
echo "Expected GL_RENDERER $DEQP_EXPECTED_RENDERER"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_renderer() {
|
||||
echo "Capturing renderer info for GLES driver sanity checks"
|
||||
# If you're having trouble loading your driver, uncommenting this may help
|
||||
# debug.
|
||||
# export EGL_LOG_LEVEL=debug
|
||||
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
|
||||
}
|
||||
|
||||
check_vk_device_name() {
|
||||
echo "Capturing device info for VK driver sanity checks"
|
||||
$DEQP $DEQP_OPTIONS --deqp-case=dEQP-VK.info.device --deqp-log-filename=$RESULTS/deqp-info.qpa
|
||||
DEVICENAME=`grep deviceName $RESULTS/deqp-info.qpa | sed 's|deviceName: ||g'`
|
||||
echo "deviceName: $DEVICENAME"
|
||||
if [ -n "$DEQP_EXPECTED_RENDERER" -a $DEVICENAME != "$DEQP_EXPECTED_RENDERER" ]; then
|
||||
echo "Expected deviceName $DEQP_EXPECTED_RENDERER"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# wrapper to supress +x to avoid spamming the log
|
||||
quiet() {
|
||||
set +x
|
||||
@@ -237,74 +185,52 @@ 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_vk_device_name
|
||||
else
|
||||
quiet check_renderer
|
||||
fi
|
||||
|
||||
RESULTSFILE=$RESULTS/cts-runner-results$DEQP_RUN_SUFFIX.txt
|
||||
UNEXPECTED_RESULTSFILE=$RESULTS/cts-runner-unexpected-results$DEQP_RUN_SUFFIX.txt
|
||||
FLAKESFILE=$RESULTS/cts-runner-flakes$DEQP_RUN_SUFFIX.txt
|
||||
|
||||
run_cts $DEQP /tmp/case-list.txt $RESULTSFILE
|
||||
run_cts $DEQP /tmp/case-list.txt $RESULTS/cts-runner-results.txt
|
||||
DEQP_EXITCODE=$?
|
||||
|
||||
# junit is disabled, because it overloads gitlab.freedesktop.org to parse it.
|
||||
#quiet generate_junit $RESULTSFILE > $RESULTS/results.xml
|
||||
quiet generate_junit $RESULTS/cts-runner-results.txt > $RESULTS/results.xml
|
||||
|
||||
if [ $DEQP_EXITCODE -ne 0 ]; then
|
||||
# preserve caselist files in case of failures:
|
||||
cp /tmp/deqp_runner.*.txt $RESULTS/
|
||||
egrep -v ",Pass|,Skip|,ExpectedFail" $RESULTSFILE > $UNEXPECTED_RESULTSFILE
|
||||
echo "Some unexpected results found (see cts-runner-results.txt in artifacts for full results):"
|
||||
cat $RESULTS/cts-runner-results.txt | \
|
||||
grep -v ",Pass" | \
|
||||
grep -v ",Skip" | \
|
||||
grep -v ",ExpectedFail" > \
|
||||
$RESULTS/cts-runner-unexpected-results.txt
|
||||
head -n 50 $RESULTS/cts-runner-unexpected-results.txt
|
||||
|
||||
if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then
|
||||
echo "Some unexpected results found (see cts-runner-results.txt in artifacts for full results):"
|
||||
head -n 50 $UNEXPECTED_RESULTSFILE
|
||||
|
||||
# Save the logs for up to the first 50 unexpected results:
|
||||
head -n 50 $UNEXPECTED_RESULTSFILE | quiet extract_xml_results /tmp/*.qpa
|
||||
else
|
||||
echo "Unexpected results found:"
|
||||
cat $UNEXPECTED_RESULTSFILE
|
||||
head -n 50 $RESULTS/cts-runner-unexpected-results.txt | quiet extract_xml_results /tmp/*.qpa
|
||||
fi
|
||||
|
||||
count=`cat $UNEXPECTED_RESULTSFILE | wc -l`
|
||||
count=`cat $RESULTS/cts-runner-unexpected-results.txt | wc -l`
|
||||
|
||||
# Re-run fails to detect flakes. But use a small threshold, if
|
||||
# something was fundamentally broken, we don't want to re-run
|
||||
# the entire caselist
|
||||
else
|
||||
grep ",Flake" $RESULTSFILE > $FLAKESFILE
|
||||
cat $RESULTS/cts-runner-results.txt | \
|
||||
grep ",Flake" > \
|
||||
$RESULTS/cts-runner-flakes.txt
|
||||
|
||||
count=`cat $FLAKESFILE | wc -l`
|
||||
count=`cat $RESULTS/cts-runner-flakes.txt | wc -l`
|
||||
if [ $count -gt 0 ]; then
|
||||
echo "Some flakes found (see cts-runner-flakes.txt in artifacts for full results):"
|
||||
head -n 50 $FLAKESFILE
|
||||
head -n 50 $RESULTS/cts-runner-flakes.txt
|
||||
|
||||
if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then
|
||||
# Save the logs for up to the first 50 flakes:
|
||||
head -n 50 $FLAKESFILE | quiet extract_xml_results /tmp/*.qpa
|
||||
head -n 50 $RESULTS/cts-runner-flakes.txt | quiet extract_xml_results /tmp/*.qpa
|
||||
fi
|
||||
|
||||
# Report the flakes to IRC channel for monitoring (if configured):
|
||||
quiet report_flakes $FLAKESFILE
|
||||
quiet report_flakes $RESULTS/cts-runner-flakes.txt
|
||||
else
|
||||
# no flakes, so clean-up:
|
||||
rm $FLAKESFILE
|
||||
rm $RESULTS/cts-runner-flakes.txt
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@@ -449,6 +449,7 @@ dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.blit_framebuffer
|
||||
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES31.functional.debug.negative_coverage.log.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES31.functional.draw_base_vertex.draw_elements_instanced_base_vertex.line_loop.instanced_attributes
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_color_mask_buffer_color_mask
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.0
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.1
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.10
|
||||
|
@@ -10,10 +10,7 @@ dEQP-GLES[0-9]*.stress.*
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# Random failures
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_color_mask_buffer_color_mask
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.*geometry
|
||||
|
||||
dEQP-GLES31.functional.fbo.no_attachments.maximums.all
|
||||
dEQP-GLES31.functional.fbo.no_attachments.maximums.size
|
||||
dEQP-GLES31.functional.geometry_shading.input.basic_primitive.points
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.*geometry
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_expression.geometry.usampler3d
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.dynamically_uniform.geometry.sampler2darray
|
||||
|
@@ -1,292 +0,0 @@
|
||||
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-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
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_10x10_khr.texture3d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_10x5_khr.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_10x6_khr.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_12x10_khr.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_12x12_khr.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_5x4_khr.texture3d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_5x5_khr.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_6x5_khr.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_6x6_khr.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_8x6_khr.texture3d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_rgba_astc_8x8_khr.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_10x5_khr.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_10x6_khr.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_10x8_khr.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_12x10_khr.texture3d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_12x12_khr.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_4x4_khr.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_5x5_khr.texture3d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_6x5_khr.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_6x6_khr.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_8x5_khr.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba32f_srgb8_alpha8_astc_8x8_khr.texture3d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_10x10_khr_rgba32f.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_10x10_khr_rgba32f.texture2d_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_10x6_khr_rgba32f.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_10x8_khr_rgba32f.texture2d_array_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_10x8_khr_rgba32f.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_12x10_khr_rgba32f.cubemap_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_4x4_khr_rgba32f.texture2d_array_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_4x4_khr_rgba32f.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_5x4_khr_rgba32f.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_5x4_khr_rgba32f.texture2d_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_5x5_khr_rgba32f.cubemap_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_6x6_khr_rgba32f.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_8x5_khr_rgba32f.texture2d_array_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_8x5_khr_rgba32f.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_8x6_khr_rgba32f.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_8x6_khr_rgba32f.texture2d_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba_astc_8x8_khr_rgba32f.cubemap_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_10x10_khr_rgba32f.texture2d_array_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_10x10_khr_rgba32f.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_10x5_khr_rgba32f.cubemap_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_10x8_khr_rgba32f.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_12x10_khr_rgba32f.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_12x10_khr_rgba32f.texture2d_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_12x12_khr_rgba32f.cubemap_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_4x4_khr_rgba32f.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_5x4_khr_rgba32f.texture2d_array_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_5x4_khr_rgba32f.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_5x5_khr_rgba32f.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_5x5_khr_rgba32f.texture2d_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_6x5_khr_rgba32f.cubemap_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_8x5_khr_rgba32f.texture2d_array_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_8x6_khr_rgba32f.texture2d_array_to_texture3d
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_8x6_khr_rgba32f.texture2d_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_8x8_khr_rgba32f.cubemap_to_texture2d_array
|
||||
dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_astc_8x8_khr_rgba32f.texture2d_to_texture3d
|
||||
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES31.functional.fbo.no_attachments.interaction.127x127ms0_default_129x129ms0
|
||||
dEQP-GLES31.functional.fbo.no_attachments.npot_size.15x511
|
||||
dEQP-GLES31.functional.fbo.no_attachments.npot_size.65x65
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.0
|
||||
dEQP-GLES31.functional.shaders.builtin_constants.tessellation_shader.max_tess_control_total_output_components
|
||||
dEQP-GLES31.functional.shaders.builtin_constants.tessellation_shader.max_tess_evaluation_uniform_components
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.abs.int_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.abs.ivec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.abs.vec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec2_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.ceil.vec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec2_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstoint.vec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.float_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec3_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floatbitstouint.vec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floor.float_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec3_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.floor.vec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.fract.float_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec3_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.fract.vec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.frexp.vec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.intbitstofloat.int_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.float_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec2_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.isinf.vec4_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.float_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.isnan.vec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.float_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.ldexp.vec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.modf.vec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.round.float_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.round.vec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.float_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec2_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.roundeven.vec4_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.sign.float_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec2_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.sign.ivec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec2_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.sign.vec4_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.trunc.vec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.common.uintbitstofloat.uvec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.int_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.ivec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uint_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec2_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitcount.uvec4_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.ivec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uint_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldextract.uvec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.int_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec2_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.ivec4_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec2_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldinsert.uvec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.int_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec3_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.ivec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.bitfieldreverse.uvec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec2_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.ivec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uint_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec3_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findlsb.uvec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.ivec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uint_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.findmsb.uvec3_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.ivec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uint_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec3_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.uaddcarry.uvec4_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.uvec3_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec2_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.integer.usubborrow.uvec4_lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packsnorm4x8_mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.pack_unpack.packunorm4x8_highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.texture_size.samples_1_texture_2d_array
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.uniform.findLSBMinusOne.mediump_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBMinusOne.highp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.uniform.findMSBZero.lowp_tess_eval
|
||||
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.uniform.types.int
|
||||
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.uniform.types.vec4
|
||||
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.rules.internal_superfluous_declaration
|
||||
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.types.ivec2
|
||||
dEQP-GLES31.functional.shaders.linkage.es31.tessellation.varying.types.mat2
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.atomic_counter.const_literal_tessellation_evaluation
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_expression.tessellation_control.isampler2d
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_expression.tessellation_evaluation.isamplercube
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.tessellation_control.samplercube
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.tessellation_control.usampler2d
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.tessellation_evaluation.sampler2darray
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.sampler.const_literal.tessellation_evaluation.usamplercube
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.const_expression_tessellation_evaluation
|
||||
dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getinteger64
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_pure_uint
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_integer
|
||||
dEQP-GLES31.functional.synchronization.inter_invocation.image_atomic_read_write
|
||||
dEQP-GLES31.functional.synchronization.inter_invocation.ssbo_atomic_read_write
|
||||
dEQP-GLES31.functional.tessellation.common_edge.quads_fractional_odd_spacing
|
||||
dEQP-GLES31.functional.tessellation.misc_draw.fill_overlap_quads_equal_spacing
|
||||
dEQP-GLES31.functional.tessellation.shader_input_output.barrier
|
||||
dEQP-GLES31.functional.tessellation.shader_input_output.patch_vertices_in_tes
|
||||
dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex.vertex_io_array_size_query.quads_explicit_tcs_out_size
|
||||
dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex.vertex_io_array_size_shader_builtin.triangles
|
||||
dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex_block.vertex_io_array_size_shader_builtin.isolines
|
||||
dEQP-GLES31.functional.texture.border_clamp.range_clamp.nearest_float_depth
|
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
if [ -z "$VK_DRIVER" ]; then
|
||||
echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INSTALL=`pwd`/install
|
||||
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH=`pwd`/install/lib/
|
||||
export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.x86_64.json
|
||||
|
||||
"$INSTALL/fossils/fossils.sh" "$INSTALL/fossils.yml"
|
@@ -1,6 +0,0 @@
|
||||
fossils-db:
|
||||
repo: "https://gitlab.freedesktop.org/hakzsam/fossils-db"
|
||||
commit: "59b11cd19e375c5871c512f73b1f8ecc33a5c417"
|
||||
|
||||
fossils:
|
||||
- path: sascha-willems/database.foz
|
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
FOSSILS_SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
|
||||
FOSSILS_YAML="$(readlink -f "$1")"
|
||||
|
||||
clone_fossils_db()
|
||||
{
|
||||
local repo="$1"
|
||||
local commit="$2"
|
||||
rm -rf fossils-db
|
||||
git clone --no-checkout "$repo" fossils-db
|
||||
(cd fossils-db; git reset "$commit" || git reset "origin/$commit")
|
||||
}
|
||||
|
||||
query_fossils_yaml()
|
||||
{
|
||||
python3 "$FOSSILS_SCRIPT_DIR/query_fossils_yaml.py" \
|
||||
--file "$FOSSILS_YAML" "$@"
|
||||
}
|
||||
|
||||
create_clean_git()
|
||||
{
|
||||
rm -rf .clean_git
|
||||
cp -R .git .clean_git
|
||||
}
|
||||
|
||||
restore_clean_git()
|
||||
{
|
||||
rm -rf .git
|
||||
cp -R .clean_git .git
|
||||
}
|
||||
|
||||
fetch_fossil()
|
||||
{
|
||||
local fossil="${1//,/?}"
|
||||
echo -n "[fetch_fossil] Fetching $1... "
|
||||
local output=$(git lfs pull -I "$fossil" 2>&1)
|
||||
local ret=0
|
||||
if [[ $? -ne 0 || ! -f "$1" ]]; then
|
||||
echo "ERROR"
|
||||
echo "$output"
|
||||
ret=1
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
restore_clean_git
|
||||
return $ret
|
||||
}
|
||||
|
||||
if [[ -n "$(query_fossils_yaml fossils_db_repo)" ]]; then
|
||||
clone_fossils_db "$(query_fossils_yaml fossils_db_repo)" \
|
||||
"$(query_fossils_yaml fossils_db_commit)"
|
||||
cd fossils-db
|
||||
else
|
||||
echo "Warning: No fossils-db entry in $FOSSILS_YAML, assuming fossils-db is current directory"
|
||||
fi
|
||||
|
||||
# During git operations various git objects get created which
|
||||
# may take up significant space. Store a clean .git instance,
|
||||
# which we restore after various git operations to keep our
|
||||
# storage consumption low.
|
||||
create_clean_git
|
||||
|
||||
for fossil in $(query_fossils_yaml fossils)
|
||||
do
|
||||
fetch_fossil "$fossil" || exit $?
|
||||
fossilize-replay $fossil || exit $?
|
||||
rm $fossil
|
||||
done
|
||||
|
||||
exit $ret
|
@@ -1,69 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2019 Collabora Ltd
|
||||
# Copyright (c) 2020 Valve Corporation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import argparse
|
||||
import yaml
|
||||
|
||||
def cmd_fossils_db_repo(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
print(y['fossils-db']['repo'])
|
||||
|
||||
def cmd_fossils_db_commit(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
print(y['fossils-db']['commit'])
|
||||
|
||||
def cmd_fossils(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
|
||||
fossils = list(y['fossils'])
|
||||
if len(fossils) == 0:
|
||||
return
|
||||
|
||||
print('\n'.join((t['path'] for t in fossils)))
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--file', required=True,
|
||||
help='the name of the yaml file')
|
||||
|
||||
subparsers = parser.add_subparsers(help='sub-command help')
|
||||
|
||||
parser_fossils_db_repo = subparsers.add_parser('fossils_db_repo')
|
||||
parser_fossils_db_repo.set_defaults(func=cmd_fossils_db_repo)
|
||||
|
||||
parser_fossils_db_commit = subparsers.add_parser('fossils_db_commit')
|
||||
parser_fossils_db_commit.set_defaults(func=cmd_fossils_db_commit)
|
||||
|
||||
parser_fossils = subparsers.add_parser('fossils')
|
||||
parser_fossils.set_defaults(func=cmd_fossils)
|
||||
|
||||
args = parser.parse_args()
|
||||
args.func(args)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@@ -24,8 +24,6 @@ args = parser.parse_args()
|
||||
env = Environment(loader = FileSystemLoader(os.path.dirname(args.template)), trim_blocks=True, lstrip_blocks=True)
|
||||
template = env.get_template(os.path.basename(args.template))
|
||||
|
||||
env_vars = "%s CI_NODE_INDEX=%s CI_NODE_TOTAL=%s" % (args.env_vars, args.ci_node_index, args.ci_node_total)
|
||||
|
||||
values = {}
|
||||
values['pipeline_info'] = args.pipeline_info
|
||||
values['base_artifacts_url'] = args.base_artifacts_url
|
||||
@@ -35,9 +33,11 @@ values['kernel_image_type'] = args.kernel_image_type
|
||||
values['gpu_version'] = args.gpu_version
|
||||
values['boot_method'] = args.boot_method
|
||||
values['tags'] = args.lava_tags
|
||||
values['env_vars'] = env_vars
|
||||
values['env_vars'] = args.env_vars
|
||||
values['deqp_version'] = args.deqp_version
|
||||
values['arch'] = args.arch
|
||||
values['ci_node_index'] = args.ci_node_index
|
||||
values['ci_node_total'] = args.ci_node_total
|
||||
|
||||
f = open('lava-deqp.yml', "w")
|
||||
f.write(template.render(values))
|
||||
|
@@ -1,4 +1,4 @@
|
||||
job_name: mesa-deqp-{{ deqp_version }}-{{ gpu_version }} {{ pipeline_info }}
|
||||
job_name: mesa-deqp-{{ gpu_version }} {{ pipeline_info }}
|
||||
device_type: {{ device_type }}
|
||||
timeouts:
|
||||
job:
|
||||
@@ -11,9 +11,8 @@ timeouts:
|
||||
priority: 75
|
||||
visibility: public
|
||||
{% if tags %}
|
||||
{% set lavatags = tags.split(',') %}
|
||||
tags:
|
||||
{% for tag in lavatags %}
|
||||
{% for tag in tags %}
|
||||
- {{ tag }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
@@ -21,13 +20,6 @@ actions:
|
||||
- deploy:
|
||||
timeout:
|
||||
minutes: 10
|
||||
{% if boot_method == "fastboot" %}
|
||||
{# fastboot has just one boot image with the dtb and rootfs packed in #}
|
||||
to: fastboot
|
||||
images:
|
||||
boot:
|
||||
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
|
||||
{% else %}
|
||||
to: tftp
|
||||
kernel:
|
||||
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
|
||||
@@ -39,25 +31,14 @@ actions:
|
||||
compression: gz
|
||||
dtb:
|
||||
url: {{ base_artifacts_url }}/{{ device_type }}.dtb
|
||||
{% endif %}
|
||||
os: oe
|
||||
- boot:
|
||||
timeout:
|
||||
minutes: 5
|
||||
method: {{ boot_method }}
|
||||
{% if boot_method == "fastboot" %}
|
||||
{#
|
||||
For fastboot, LAVA doesn't know how to unpack the rootfs/apply overlay/repack,
|
||||
so we transfer the overlay over the network after boot.
|
||||
#}
|
||||
transfer_overlay:
|
||||
download_command: wget -S --progress=dot:giga
|
||||
unpack_command: tar -C / -xzf
|
||||
{% else %}
|
||||
commands: ramdisk
|
||||
{% endif %}
|
||||
prompts:
|
||||
- 'lava-shell:'
|
||||
- '#'
|
||||
- test:
|
||||
timeout:
|
||||
minutes: 60
|
||||
@@ -75,7 +56,7 @@ actions:
|
||||
steps:
|
||||
- mount -t proc none /proc
|
||||
- mount -t sysfs none /sys
|
||||
- mount -t devtmpfs none /dev || echo possibly already mounted
|
||||
- mount -t devtmpfs none /dev
|
||||
- mkdir -p /dev/pts
|
||||
- mount -t devpts devpts /dev/pts
|
||||
|
||||
@@ -83,17 +64,24 @@ actions:
|
||||
- export {{ env_vars }}
|
||||
{% endif %}
|
||||
|
||||
# deqp-runner.sh assumes some stuff is in pwd
|
||||
- cd /
|
||||
|
||||
- export DEQP_NO_SAVE_RESULTS=1
|
||||
- 'export DEQP_RUNNER_OPTIONS="--shuffle false"'
|
||||
- 'export DEQP_RUNNER_OPTIONS="--compact-display false --shuffle false"'
|
||||
- export DEQP_EXPECTED_FAILS=deqp-{{ gpu_version }}-fails.txt
|
||||
- export DEQP_SKIPS=deqp-{{ gpu_version }}-skips.txt
|
||||
- export DEQP_VER={{ deqp_version }}
|
||||
- export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri
|
||||
- export CI_NODE_INDEX={{ ci_node_index }}
|
||||
- export CI_NODE_TOTAL={{ ci_node_total }}
|
||||
|
||||
- "if sh /install/deqp-runner.sh; then
|
||||
# Put stuff where the runner script expects it
|
||||
- mkdir artifacts
|
||||
- mkdir results
|
||||
- mkdir -p install/lib
|
||||
- cp /deqp/$DEQP_EXPECTED_FAILS artifacts/.
|
||||
- cp /deqp/$DEQP_SKIPS artifacts/.
|
||||
- mv /mesa/lib/* install/lib/.
|
||||
|
||||
- "if sh /deqp/deqp-runner.sh; then
|
||||
echo 'deqp: pass';
|
||||
else
|
||||
echo 'deqp: fail';
|
||||
|
@@ -1,27 +1,21 @@
|
||||
.lava-test:
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
stage: test
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
ENV_VARS: "DEQP_PARALLEL=6"
|
||||
DEQP_VERSION: gles2
|
||||
ENV_VARS: "MESA_GLES_VERSION_OVERRIDE=3.0 DEQP_PARALLEL=6"
|
||||
script:
|
||||
- mkdir -p /srv/${FILES_HOST_NAME}/$CI_JOB_ID/
|
||||
- cp /lava-files/${KERNEL_IMAGE_NAME} /srv/${FILES_HOST_NAME}/$CI_JOB_ID/.
|
||||
- cp /lava-files/${DEVICE_TYPE}.dtb /srv/${FILES_HOST_NAME}/$CI_JOB_ID/.
|
||||
- tar -C /lava-files/rootfs-${ARCH} -xf artifacts/install.tar
|
||||
- pushd /lava-files/rootfs-${ARCH}
|
||||
- find -H | cpio -H newc -o | gzip -c - > /srv/${FILES_HOST_NAME}/$CI_JOB_ID/lava-rootfs-${ARCH}.cpio.gz
|
||||
- popd
|
||||
- BUILD_JOB_ID=`cat artifacts/build_job_id.txt`
|
||||
- >
|
||||
artifacts/generate_lava.py \
|
||||
--template artifacts/lava-deqp.yml.jinja2 \
|
||||
--pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
|
||||
--base-artifacts-url ${FILES_HOST_URL}/$CI_JOB_ID \
|
||||
--base-artifacts-url $CI_PROJECT_URL/-/jobs/$BUILD_JOB_ID/artifacts/raw/artifacts \
|
||||
--device-type ${DEVICE_TYPE} \
|
||||
--env-vars "${ENV_VARS}" \
|
||||
--arch ${ARCH} \
|
||||
--deqp-version ${DEQP_VERSION} \
|
||||
--deqp-version gles2 \
|
||||
--kernel-image-name ${KERNEL_IMAGE_NAME} \
|
||||
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
|
||||
--gpu-version ${GPU_VERSION} \
|
||||
@@ -29,19 +23,16 @@
|
||||
--lava-tags "${LAVA_TAGS}" \
|
||||
--ci-node-index "${CI_NODE_INDEX}" \
|
||||
--ci-node-total "${CI_NODE_TOTAL}"
|
||||
- lava_job_id=`lavacli jobs submit lava-deqp.yml` || lavacli jobs submit lava-deqp.yml
|
||||
- lava_job_id=`lavacli jobs submit lava-deqp.yml`
|
||||
- echo $lava_job_id
|
||||
- rm -rf artifacts/*
|
||||
- cp lava-deqp.yml artifacts/.
|
||||
- lavacli jobs logs $lava_job_id | tee artifacts/lava-deqp-$lava_job_id.log
|
||||
- lavacli jobs logs $lava_job_id | grep -a -v "{'case':" | tee artifacts/lava-deqp-$lava_job_id.log
|
||||
- lavacli jobs show $lava_job_id
|
||||
- result=`lavacli results $lava_job_id 0_deqp deqp | head -1`
|
||||
- echo $result
|
||||
- '[[ "$result" == "pass" ]]'
|
||||
after_script:
|
||||
- rm -rf /srv/${FILES_HOST_NAME}/$CI_JOB_ID/
|
||||
artifacts:
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
when: always
|
||||
paths:
|
||||
- artifacts/
|
||||
@@ -58,7 +49,6 @@
|
||||
dependencies:
|
||||
- meson-armhf
|
||||
needs:
|
||||
- arm_build
|
||||
- meson-armhf
|
||||
|
||||
.lava-test:arm64:
|
||||
@@ -73,101 +63,60 @@
|
||||
dependencies:
|
||||
- meson-arm64
|
||||
needs:
|
||||
- arm_build
|
||||
- meson-arm64
|
||||
|
||||
panfrost-t720-gles2:arm64:
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
- .panfrost-rules
|
||||
panfrost-t720-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: sun50i-h6-pine-h64
|
||||
GPU_VERSION: panfrost-t720
|
||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T720"
|
||||
FILES_HOST_NAME: "mesa-ci-lava-files.freedesktop.org"
|
||||
FILES_HOST_URL: "https://mesa-ci-lava-files.freedesktop.org"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-collabora
|
||||
- lava-sun50i-h6-pine-h64
|
||||
|
||||
panfrost-t760-gles2:armhf:
|
||||
extends:
|
||||
- .lava-test:armhf
|
||||
- .panfrost-rules
|
||||
panfrost-t760-test:armhf:
|
||||
extends: .lava-test:armhf
|
||||
variables:
|
||||
DEVICE_TYPE: rk3288-veyron-jaq
|
||||
GPU_VERSION: panfrost-t760
|
||||
BOOT_METHOD: depthcharge
|
||||
KERNEL_IMAGE_TYPE: ""
|
||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T760"
|
||||
FILES_HOST_NAME: "mesa-ci-lava-files.freedesktop.org"
|
||||
FILES_HOST_URL: "https://mesa-ci-lava-files.freedesktop.org"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-collabora
|
||||
- lava-rk3288-veyron-jaq
|
||||
|
||||
panfrost-t860-gles2:arm64:
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
- .panfrost-rules
|
||||
panfrost-t860-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: rk3399-gru-kevin
|
||||
GPU_VERSION: panfrost-t860
|
||||
BOOT_METHOD: depthcharge
|
||||
KERNEL_IMAGE_TYPE: ""
|
||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
|
||||
FILES_HOST_NAME: "mesa-ci-lava-files.freedesktop.org"
|
||||
FILES_HOST_URL: "https://mesa-ci-lava-files.freedesktop.org"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-collabora
|
||||
- lava-rk3399-gru-kevin
|
||||
|
||||
panfrost-t860-gles3:arm64:
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
- .panfrost-rules
|
||||
variables:
|
||||
DEVICE_TYPE: rk3399-gru-kevin
|
||||
GPU_VERSION: panfrost-t860
|
||||
BOOT_METHOD: depthcharge
|
||||
KERNEL_IMAGE_TYPE: ""
|
||||
DEQP_VERSION: gles3
|
||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T860"
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 5
|
||||
FILES_HOST_NAME: "mesa-ci-lava-files.freedesktop.org"
|
||||
FILES_HOST_URL: "https://mesa-ci-lava-files.freedesktop.org"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-collabora
|
||||
|
||||
panfrost-t820-gles2:arm64:
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
- .panfrost-rules
|
||||
.panfrost-t820-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: meson-gxm-khadas-vim2
|
||||
GPU_VERSION: panfrost-t820
|
||||
LAVA_TAGS: panfrost
|
||||
ENV_VARS: "PAN_MESA_DEBUG=gles3 DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=T820"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-baylibre
|
||||
- lava-meson-gxm-khadas-vim2
|
||||
|
||||
lima-mali400-test:armhf:
|
||||
.lima-mali400-test:armhf:
|
||||
parallel: 2
|
||||
extends:
|
||||
- .lava-test:armhf
|
||||
- .lima-rules
|
||||
extends: .lava-test:armhf
|
||||
variables:
|
||||
DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
|
||||
GPU_VERSION: lima
|
||||
ENV_VARS: "DEQP_PARALLEL=3 DEQP_EXPECTED_RENDERER=Mali400"
|
||||
ENV_VARS: "DEQP_PARALLEL=3"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-baylibre
|
||||
- lava-sun8i-h3-libretech-all-h3-cc
|
||||
|
||||
lima-mali450-test:arm64:
|
||||
extends:
|
||||
- .lava-test:arm64
|
||||
- .lima-rules
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: meson-gxl-s905x-libretech-cc
|
||||
GPU_VERSION: lima
|
||||
ENV_VARS: "DEQP_PARALLEL=6 DEQP_EXPECTED_RENDERER=Mali450"
|
||||
ENV_VARS: "DEQP_PARALLEL=6"
|
||||
tags:
|
||||
- mesa-ci-aarch64-lava-baylibre
|
||||
- lava-meson-gxl-s905x-libretech-cc
|
||||
|
@@ -54,10 +54,11 @@ meson _build --native-file=native.file \
|
||||
${GALLIUM_ST} \
|
||||
-D gallium-drivers=${GALLIUM_DRIVERS:-[]} \
|
||||
-D vulkan-drivers=${VULKAN_DRIVERS:-[]} \
|
||||
-D I-love-half-baked-turnips=true \
|
||||
${EXTRA_OPTION}
|
||||
cd _build
|
||||
meson configure
|
||||
ninja
|
||||
ninja -j4
|
||||
LC_ALL=C.UTF-8 ninja test
|
||||
ninja install
|
||||
cd ..
|
||||
|
@@ -148,6 +148,8 @@ spec/amd_conservative_depth/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/amd_conservative_depth/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/amd_conservative_depth/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/amd_conservative_depth/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/amd_conservative_depth/preprocessor/enabled-core.tesc: skip
|
||||
spec/amd_conservative_depth/preprocessor/enabled-core.tese: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -164,6 +166,8 @@ spec/amd_shader_stencil_export/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/enabled-core.tesc: skip
|
||||
spec/amd_shader_stencil_export/preprocessor/enabled-core.tese: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -180,6 +184,8 @@ spec/amd_shader_trinary_minmax/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/enabled-core.tesc: skip
|
||||
spec/amd_shader_trinary_minmax/preprocessor/enabled-core.tese: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -194,6 +200,8 @@ spec/amd_vertex_shader_layer/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/enabled-compat.frag: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/enabled-compat.vert: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/enabled-core.tesc: skip
|
||||
spec/amd_vertex_shader_layer/preprocessor/enabled-core.tese: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -208,6 +216,8 @@ spec/amd_vertex_shader_viewport_index/preprocessor/disabled-undefined-core.tese:
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/enabled-compat.frag: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/enabled-compat.vert: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/enabled-core.tesc: skip
|
||||
spec/amd_vertex_shader_viewport_index/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_arrays_of_arrays/compiler/glsl-4.00-basic-types.vert: skip
|
||||
spec/arb_arrays_of_arrays/compiler/glsl-4.20-basic-types.frag: skip
|
||||
spec/arb_arrays_of_arrays/compiler/subroutine.vert: skip
|
||||
@@ -227,6 +237,8 @@ spec/arb_arrays_of_arrays/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_arrays_of_arrays/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_arrays_of_arrays/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_arrays_of_arrays/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_arrays_of_arrays/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_arrays_of_arrays/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_bindless_texture/compiler/images/arith-bound-image.frag: skip
|
||||
spec/arb_bindless_texture/compiler/images/arith-expr.vert: skip
|
||||
spec/arb_bindless_texture/compiler/images/arrays-of-struct.frag: skip
|
||||
@@ -313,6 +325,8 @@ spec/arb_compute_shader/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_compute_shader/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_compute_shader/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_compute_shader/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_compute_shader/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_compute_shader/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_compute_variable_group_size/compiler/do_nothing.comp: skip
|
||||
spec/arb_compute_variable_group_size/compiler/gl_localgroupsizearb_illegal_use.comp: skip
|
||||
spec/arb_compute_variable_group_size/compiler/gl_localgroupsizearb_layout.comp: skip
|
||||
@@ -334,6 +348,8 @@ spec/arb_conservative_depth/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_conservative_depth/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_conservative_depth/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_conservative_depth/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_conservative_depth/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_conservative_depth/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_derivative_control/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_derivative_control/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_derivative_control/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -346,6 +362,8 @@ spec/arb_derivative_control/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_derivative_control/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_derivative_control/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_derivative_control/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_derivative_control/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_derivative_control/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_draw_buffers/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_draw_buffers/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_draw_buffers/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -362,6 +380,8 @@ spec/arb_draw_buffers/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_draw_buffers/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_draw_buffers/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_draw_buffers/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_draw_buffers/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_draw_buffers/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_draw_instanced/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_draw_instanced/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_draw_instanced/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -378,16 +398,22 @@ spec/arb_draw_instanced/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_draw_instanced/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_draw_instanced/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_draw_instanced/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_draw_instanced/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_draw_instanced/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_enhanced_layouts/compiler/compile-time-constants/invocation.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/compile-time-constants/negative-qualifiers/negative-layout-qualifier-invocation.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/compile-time-constants/negative-qualifiers/negative-layout-qualifier-stream.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/compile-time-constants/negative-qualifiers/negative-layout-qualifier-vertices.tesc: skip
|
||||
spec/arb_enhanced_layouts/compiler/compile-time-constants/stream.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/compile-time-constants/vertices.tesc: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-invocation-identifiers-in-single-layout-mismatch.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-invocation-identifiers-in-single-layout.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-stream-identifiers-in-single-layout-global-no-enhanced-layouts.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-stream-identifiers-in-single-layout-global.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-stream-identifiers-in-single-layout-no-enhanced-layouts.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-stream-identifiers-in-single-layout.geom: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-vertices-identifiers-in-single-layout-mismatch.tesc: skip
|
||||
spec/arb_enhanced_layouts/compiler/duplicate-layout-qualifier-identifiers/multiple-vertices-identifiers-in-single-layout.tesc: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -400,6 +426,8 @@ spec/arb_enhanced_layouts/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_enhanced_layouts/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_es3_1_compatibility/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_es3_1_compatibility/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_es3_1_compatibility/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -434,6 +462,8 @@ spec/arb_explicit_attrib_location/preprocessor/disabled-undefined-core.geom: ski
|
||||
spec/arb_explicit_attrib_location/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_explicit_attrib_location/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_explicit_attrib_location/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_explicit_attrib_location/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_explicit_attrib_location/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -450,6 +480,8 @@ spec/arb_explicit_uniform_location/preprocessor/disabled-undefined-core.geom: sk
|
||||
spec/arb_explicit_uniform_location/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_explicit_uniform_location/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -466,6 +498,8 @@ spec/arb_fragment_coord_conventions/preprocessor/disabled-undefined-core.geom: s
|
||||
spec/arb_fragment_coord_conventions/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_fragment_coord_conventions/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -478,6 +512,8 @@ spec/arb_fragment_layer_viewport/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_fragment_layer_viewport/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_fragment_shader_interlock/compiler/begininvocationinterlock-after-discard.frag: skip
|
||||
spec/arb_fragment_shader_interlock/compiler/begininvocationinterlock-after-return.frag: skip
|
||||
spec/arb_fragment_shader_interlock/compiler/begininvocationinterlock-endinvocationinterlock.frag: skip
|
||||
@@ -522,6 +558,10 @@ spec/arb_geometry_shader4/compiler/sanity.geom: skip
|
||||
spec/arb_geometry_shader4/compiler/uniforms.geom: skip
|
||||
spec/arb_geometry_shader4/compiler/verticesin-const-expression.geom: skip
|
||||
spec/arb_geometry_shader4/compiler/verticesin-const.geom: skip
|
||||
spec/arb_geometry_shader4/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_geometry_shader4/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_geometry_shader4/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_geometry_shader4/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_geometry_shader4/preprocessor/enabled-compat.frag: skip
|
||||
spec/arb_geometry_shader4/preprocessor/enabled-compat.vert: skip
|
||||
spec/arb_geometry_shader4/preprocessor/enabled-core.comp: skip
|
||||
@@ -620,6 +660,10 @@ spec/arb_gpu_shader5/compiler/stream-qualifier/incorrect-in-layout-qualifier-str
|
||||
spec/arb_gpu_shader5/compiler/stream-qualifier/incorrect-multiple-block-layout-qualifier-stream.geom: skip
|
||||
spec/arb_gpu_shader5/compiler/stream-qualifier/incorrect-multiple-named-block-layout-qualifier-stream.geom: skip
|
||||
spec/arb_gpu_shader5/compiler/stream-qualifier/incorrect-negative-layout-qualifier-stream.geom: skip
|
||||
spec/arb_gpu_shader5/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_gpu_shader5/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_gpu_shader5/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_gpu_shader5/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_gpu_shader5/preprocessor/enabled-core.comp: skip
|
||||
spec/arb_gpu_shader5/preprocessor/enabled-core.frag: skip
|
||||
spec/arb_gpu_shader5/preprocessor/enabled-core.geom: skip
|
||||
@@ -638,6 +682,8 @@ spec/arb_gpu_shader_fp64/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_gpu_shader_fp64/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_gpu_shader_fp64/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_gpu_shader_fp64/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_gpu_shader_fp64/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_gpu_shader_fp64/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_gpu_shader_int64/compiler/built-in-functions/abs-i64vec2.frag: skip
|
||||
spec/arb_gpu_shader_int64/compiler/built-in-functions/abs-i64vec2.geom: skip
|
||||
spec/arb_gpu_shader_int64/compiler/built-in-functions/abs-i64vec2.vert: skip
|
||||
@@ -1140,6 +1186,10 @@ spec/arb_sample_shading/compiler/gl_numsamples.frag: skip
|
||||
spec/arb_sample_shading/compiler/gl_sampleid.frag: skip
|
||||
spec/arb_sample_shading/compiler/gl_samplemask.frag: skip
|
||||
spec/arb_sample_shading/compiler/gl_sampleposition.frag: skip
|
||||
spec/arb_sample_shading/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_sample_shading/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_sample_shading/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_sample_shading/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_sample_shading/preprocessor/enabled-compat.frag: skip
|
||||
spec/arb_sample_shading/preprocessor/enabled-compat.vert: skip
|
||||
spec/arb_sample_shading/preprocessor/enabled-core.comp: skip
|
||||
@@ -1164,6 +1214,8 @@ spec/arb_separate_shader_objects/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_separate_shader_objects/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_separate_shader_objects/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_separate_shader_objects/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_separate_shader_objects/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_separate_shader_objects/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -1176,6 +1228,8 @@ spec/arb_shader_atomic_counter_ops/preprocessor/disabled-undefined-core.geom: sk
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_atomic_counter_ops/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1192,6 +1246,8 @@ spec/arb_shader_atomic_counters/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_atomic_counters/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1208,6 +1264,12 @@ spec/arb_shader_bit_encoding/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_bit_encoding/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_clock/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_shader_clock/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_shader_clock/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_clock/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_clock/preprocessor/enabled-compat.frag: skip
|
||||
spec/arb_shader_clock/preprocessor/enabled-compat.vert: skip
|
||||
spec/arb_shader_clock/preprocessor/enabled-core.comp: skip
|
||||
@@ -1228,6 +1290,8 @@ spec/arb_shader_draw_parameters/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_draw_parameters/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_draw_parameters/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_draw_parameters/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_draw_parameters/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_draw_parameters/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_group_vote/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shader_group_vote/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shader_group_vote/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1244,6 +1308,8 @@ spec/arb_shader_group_vote/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_group_vote/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_group_vote/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_group_vote/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_group_vote/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_group_vote/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1260,6 +1326,8 @@ spec/arb_shader_image_load_store/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_image_load_store/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_image_size/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shader_image_size/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shader_image_size/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1276,6 +1344,12 @@ spec/arb_shader_image_size/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_image_size/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_image_size/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_image_size/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_image_size/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_image_size/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_precision/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_shader_precision/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_shader_precision/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_precision/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_precision/preprocessor/enabled-compat.frag: skip
|
||||
spec/arb_shader_precision/preprocessor/enabled-compat.vert: skip
|
||||
spec/arb_shader_precision/preprocessor/enabled-core.comp: skip
|
||||
@@ -1300,6 +1374,8 @@ spec/arb_shader_stencil_export/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_stencil_export/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_stencil_export/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_stencil_export/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_stencil_export/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_stencil_export/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_storage_buffer_object/compiler/unused-array-element.comp: skip
|
||||
spec/arb_shader_storage_buffer_object/compiler/unused-array-element.frag: skip
|
||||
spec/arb_shader_storage_buffer_object/preprocessor/disabled-defined-compat.frag: skip
|
||||
@@ -1318,6 +1394,8 @@ spec/arb_shader_storage_buffer_object/preprocessor/disabled-undefined-core.geom:
|
||||
spec/arb_shader_storage_buffer_object/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_storage_buffer_object/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_storage_buffer_object/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_storage_buffer_object/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_storage_buffer_object/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_subroutine/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_shader_subroutine/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_shader_subroutine/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -1330,9 +1408,15 @@ spec/arb_shader_subroutine/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_subroutine/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_subroutine/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_subroutine/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_subroutine/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_subroutine/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shader_texture_image_samples/compiler/fs-image-samples.frag: skip
|
||||
spec/arb_shader_texture_image_samples/compiler/fs-texture-samples.frag: skip
|
||||
spec/arb_shader_texture_image_samples/compiler/vs-texture-samples.vert: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/enabled-compat.frag: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/enabled-compat.vert: skip
|
||||
spec/arb_shader_texture_image_samples/preprocessor/enabled-core.comp: skip
|
||||
@@ -1357,6 +1441,8 @@ spec/arb_shader_texture_lod/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_shader_texture_lod/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shader_texture_lod/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shader_texture_lod/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shader_texture_lod/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shader_texture_lod/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-1.geom: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-2.geom: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-3.geom: skip
|
||||
@@ -1366,6 +1452,8 @@ spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-stream-qua
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-stream-qualifier-in-single-declaration-no-420-pack.geom: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-stream-qualifier-in-single-global-declaration-420-pack.geom: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-stream-qualifier-in-single-global-declaration-no-420-pack.geom: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-vertices-in-single-declaration-mismatch.tesc: skip
|
||||
spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-vertices-in-single-declaration.tesc: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1382,6 +1470,8 @@ spec/arb_shading_language_420pack/preprocessor/disabled-undefined-core.geom: ski
|
||||
spec/arb_shading_language_420pack/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shading_language_420pack/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_shading_language_packing/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_shading_language_packing/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_shading_language_packing/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1398,18 +1488,67 @@ spec/arb_shading_language_packing/preprocessor/disabled-undefined-core.geom: ski
|
||||
spec/arb_shading_language_packing/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_shading_language_packing/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_shading_language_packing/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-defined-core.geom: skip
|
||||
spec/arb_shading_language_packing/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_shading_language_packing/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-for.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-func.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-if.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-redeclared.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-return.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-switch-always.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier-switch.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/barrier.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-block-out-indexing-const.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-in-length.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-in-length.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-out-indexing-const.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-out-indexing-strict.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-out-indexing-uniform.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-out-length-1.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-out-length-2.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-patch-in-length.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-patch-out-length-no-conflict.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/custom-patch-out-length.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_in-length.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_in-length.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_out-indexing-const.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_out-indexing-strict.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_out-indexing-uniform.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_out-indexing-writemask.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_out-length-before-declared.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/gl_out-length.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/input-block-must-be-array-unnamed.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/input-block-must-be-array-unnamed.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/input-block-must-be-array.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/input-block-must-be-array.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/input-must-be-array.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/input-must-be-array.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/layout-multiple-qualifier-declarations-vertices-mismatch.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/layout-multiple-qualifier-declarations-vertices.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/no-input-layout.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/no-output-layout.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/output-block-must-be-array-unnamed.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/output-block-must-be-array.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/output-must-be-array.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/output-size-mismatch.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/redeclaring-gl_out-junk-member.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/redeclaring-gl_out-must-be-array.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/redeclaring-gl_out-no-instance-name.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/redeclaring-gl_out-ok.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/sanity.tesc: skip
|
||||
spec/arb_tessellation_shader/compiler/sanity.tese: skip
|
||||
spec/arb_tessellation_shader/compiler/uniform-block-non-array.tesc: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-defined-core.vert: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-undefined-core.comp: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-undefined-core.frag: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_tessellation_shader/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_tessellation_shader/preprocessor/enabled-core.comp: skip
|
||||
spec/arb_tessellation_shader/preprocessor/enabled-core.frag: skip
|
||||
spec/arb_tessellation_shader/preprocessor/enabled-core.geom: skip
|
||||
spec/arb_tessellation_shader/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_tessellation_shader/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_tessellation_shader/preprocessor/enabled-core.vert: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1426,6 +1565,8 @@ spec/arb_texture_cube_map_array/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_texture_cube_map_array/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_texture_gather/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_texture_gather/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_texture_gather/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1442,6 +1583,8 @@ spec/arb_texture_gather/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_texture_gather/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_texture_gather/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_texture_gather/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_texture_gather/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_texture_gather/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_texture_multisample/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_texture_multisample/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_texture_multisample/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1458,6 +1601,8 @@ spec/arb_texture_multisample/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_texture_multisample/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_texture_multisample/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_texture_multisample/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_texture_multisample/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_texture_multisample/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_texture_query_levels/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_texture_query_levels/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_texture_query_levels/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1474,6 +1619,8 @@ spec/arb_texture_query_levels/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_texture_query_levels/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_texture_query_levels/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_texture_query_levels/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_texture_query_levels/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_texture_query_levels/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_texture_query_lod/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_texture_query_lod/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_texture_query_lod/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1490,6 +1637,8 @@ spec/arb_texture_query_lod/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_texture_query_lod/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_texture_query_lod/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_texture_query_lod/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_texture_query_lod/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_texture_query_lod/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_texture_rectangle/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_texture_rectangle/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_texture_rectangle/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1506,6 +1655,8 @@ spec/arb_texture_rectangle/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_texture_rectangle/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_texture_rectangle/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_texture_rectangle/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_texture_rectangle/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_texture_rectangle/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1522,6 +1673,8 @@ spec/arb_uniform_buffer_object/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_uniform_buffer_object/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/disabled-defined-core.comp: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/disabled-defined-core.frag: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/disabled-defined-core.geom: skip
|
||||
@@ -1534,6 +1687,8 @@ spec/arb_vertex_attrib_64bit/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_vertex_attrib_64bit/preprocessor/enabled-core.tese: skip
|
||||
spec/arb_viewport_array/preprocessor/disabled-defined-compat.frag: skip
|
||||
spec/arb_viewport_array/preprocessor/disabled-defined-compat.vert: skip
|
||||
spec/arb_viewport_array/preprocessor/disabled-defined-core.comp: skip
|
||||
@@ -1550,6 +1705,8 @@ spec/arb_viewport_array/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/arb_viewport_array/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/arb_viewport_array/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/arb_viewport_array/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/arb_viewport_array/preprocessor/enabled-core.tesc: skip
|
||||
spec/arb_viewport_array/preprocessor/enabled-core.tese: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/disabled-defined-es.comp: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/disabled-defined-es.frag: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/disabled-defined-es.geom: skip
|
||||
@@ -1563,6 +1720,8 @@ spec/ext_clip_cull_distance/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/enabled-es.geom: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/enabled-es.tesc: skip
|
||||
spec/ext_clip_cull_distance/preprocessor/enabled-es.tese: skip
|
||||
spec/ext_demote_to_helper_invocation/compiler/demote_identifier_with_ext.frag: skip
|
||||
spec/ext_demote_to_helper_invocation/compiler/demote_keyword.frag: skip
|
||||
spec/ext_demote_to_helper_invocation/compiler/is_helper_invocation_builtin.frag: skip
|
||||
@@ -1579,8 +1738,14 @@ spec/ext_draw_buffers/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_draw_buffers/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_draw_buffers/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/ext_draw_buffers/preprocessor/enabled-es.geom: skip
|
||||
spec/ext_draw_buffers/preprocessor/enabled-es.tesc: skip
|
||||
spec/ext_draw_buffers/preprocessor/enabled-es.tese: skip
|
||||
spec/ext_geometry_point_size/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/ext_geometry_point_size/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/ext_geometry_point_size/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/ext_geometry_point_size/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/ext_geometry_point_size/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_geometry_point_size/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_geometry_point_size/preprocessor/enabled-es.comp: skip
|
||||
spec/ext_geometry_point_size/preprocessor/enabled-es.frag: skip
|
||||
spec/ext_geometry_point_size/preprocessor/enabled-es.geom: skip
|
||||
@@ -1588,7 +1753,11 @@ spec/ext_geometry_point_size/preprocessor/enabled-es.tesc: skip
|
||||
spec/ext_geometry_point_size/preprocessor/enabled-es.tese: skip
|
||||
spec/ext_geometry_point_size/preprocessor/enabled-es.vert: skip
|
||||
spec/ext_geometry_shader/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/ext_geometry_shader/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/ext_geometry_shader/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/ext_geometry_shader/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/ext_geometry_shader/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_geometry_shader/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_geometry_shader/preprocessor/enabled-es.comp: skip
|
||||
spec/ext_geometry_shader/preprocessor/enabled-es.frag: skip
|
||||
spec/ext_geometry_shader/preprocessor/enabled-es.geom: skip
|
||||
@@ -2628,7 +2797,11 @@ spec/ext_gpu_shader4/compiler/xor-uvec4-unsigned_int.vert: skip
|
||||
spec/ext_gpu_shader4/compiler/xor-uvec4-uvec4.frag: skip
|
||||
spec/ext_gpu_shader4/compiler/xor-uvec4-uvec4.vert: skip
|
||||
spec/ext_gpu_shader5/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/ext_gpu_shader5/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/ext_gpu_shader5/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/ext_gpu_shader5/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/ext_gpu_shader5/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_gpu_shader5/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_gpu_shader5/preprocessor/enabled-es.comp: skip
|
||||
spec/ext_gpu_shader5/preprocessor/enabled-es.frag: skip
|
||||
spec/ext_gpu_shader5/preprocessor/enabled-es.geom: skip
|
||||
@@ -2648,6 +2821,8 @@ spec/ext_separate_shader_objects/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_separate_shader_objects/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_separate_shader_objects/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/ext_separate_shader_objects/preprocessor/enabled-es.geom: skip
|
||||
spec/ext_separate_shader_objects/preprocessor/enabled-es.tesc: skip
|
||||
spec/ext_separate_shader_objects/preprocessor/enabled-es.tese: skip
|
||||
spec/ext_shader_framebuffer_fetch/compiler/gles2/negative-gl_lastfragdata-write.frag: skip
|
||||
spec/ext_shader_framebuffer_fetch/compiler/gles2/negative-inout-fragment-output.frag: skip
|
||||
spec/ext_shader_framebuffer_fetch/compiler/gles2/negative-output-layout.frag: skip
|
||||
@@ -2675,6 +2850,8 @@ spec/ext_shader_io_blocks/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_shader_io_blocks/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_shader_io_blocks/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/ext_shader_io_blocks/preprocessor/enabled-es.geom: skip
|
||||
spec/ext_shader_io_blocks/preprocessor/enabled-es.tesc: skip
|
||||
spec/ext_shader_io_blocks/preprocessor/enabled-es.tese: skip
|
||||
spec/ext_shader_samples_identical/glsl-1.10/compiler/all-functions.frag: skip
|
||||
spec/ext_shader_samples_identical/glsl-1.10/compiler/all-functions.vert: skip
|
||||
spec/ext_shader_samples_identical/glsl-1.50/compiler/all-functions.frag: skip
|
||||
@@ -2682,8 +2859,16 @@ spec/ext_shader_samples_identical/glsl-1.50/compiler/all-functions.geom: skip
|
||||
spec/ext_shader_samples_identical/glsl-1.50/compiler/all-functions.vert: skip
|
||||
spec/ext_shader_samples_identical/glsl-es-3.10/compiler/all-functions.frag: skip
|
||||
spec/ext_shader_samples_identical/glsl-es-3.10/compiler/all-functions.vert: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-defined-core.tesc: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-defined-core.tese: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/enabled-compat.frag: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/enabled-compat.vert: skip
|
||||
spec/ext_shader_samples_identical/preprocessor/enabled-core.comp: skip
|
||||
@@ -2714,6 +2899,8 @@ spec/ext_texture_array/preprocessor/disabled-undefined-core.geom: skip
|
||||
spec/ext_texture_array/preprocessor/disabled-undefined-core.tesc: skip
|
||||
spec/ext_texture_array/preprocessor/disabled-undefined-core.tese: skip
|
||||
spec/ext_texture_array/preprocessor/disabled-undefined-core.vert: skip
|
||||
spec/ext_texture_array/preprocessor/enabled-core.tesc: skip
|
||||
spec/ext_texture_array/preprocessor/enabled-core.tese: skip
|
||||
spec/ext_texture_buffer/preprocessor/disabled-defined-es.comp: skip
|
||||
spec/ext_texture_buffer/preprocessor/disabled-defined-es.frag: skip
|
||||
spec/ext_texture_buffer/preprocessor/disabled-defined-es.geom: skip
|
||||
@@ -2727,6 +2914,8 @@ spec/ext_texture_buffer/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/ext_texture_buffer/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/ext_texture_buffer/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/ext_texture_buffer/preprocessor/enabled-es.geom: skip
|
||||
spec/ext_texture_buffer/preprocessor/enabled-es.tesc: skip
|
||||
spec/ext_texture_buffer/preprocessor/enabled-es.tese: skip
|
||||
spec/ext_texture_shadow_lod/compiler/negative_compile.frag: skip
|
||||
spec/ext_texture_shadow_lod/compiler/sampler2darray.frag: skip
|
||||
spec/ext_texture_shadow_lod/compiler/samplercube.frag: skip
|
||||
@@ -4717,6 +4906,8 @@ spec/nv_image_formats/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/nv_image_formats/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/nv_image_formats/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/nv_image_formats/preprocessor/enabled-es.geom: skip
|
||||
spec/nv_image_formats/preprocessor/enabled-es.tesc: skip
|
||||
spec/nv_image_formats/preprocessor/enabled-es.tese: skip
|
||||
spec/nv_shader_atomic_float/compiler/imageatomicadd-float-image1d.frag: skip
|
||||
spec/nv_shader_atomic_float/compiler/imageatomicadd-float-image1darray.frag: skip
|
||||
spec/nv_shader_atomic_float/compiler/imageatomicadd-float-image2d-fail.frag: skip
|
||||
@@ -4746,7 +4937,11 @@ spec/nv_shader_atomic_float/compiler/shared-atomicexchange-float-fail.comp: skip
|
||||
spec/nv_shader_atomic_float/compiler/ssbo-atomicadd-float-fail.frag: skip
|
||||
spec/nv_shader_atomic_float/compiler/ssbo-atomicexchange-float-fail.frag: skip
|
||||
spec/oes_blend_func_extended/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/oes_blend_func_extended/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/oes_blend_func_extended/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/oes_blend_func_extended/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/oes_blend_func_extended/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_blend_func_extended/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_blend_func_extended/preprocessor/enabled-es.comp: skip
|
||||
spec/oes_blend_func_extended/preprocessor/enabled-es.frag: skip
|
||||
spec/oes_blend_func_extended/preprocessor/enabled-es.geom: skip
|
||||
@@ -4766,8 +4961,14 @@ spec/oes_egl_image_external/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_egl_image_external/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_egl_image_external/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/oes_egl_image_external/preprocessor/enabled-es.geom: skip
|
||||
spec/oes_egl_image_external/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_egl_image_external/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_geometry_point_size/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/oes_geometry_point_size/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/oes_geometry_point_size/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/oes_geometry_point_size/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/oes_geometry_point_size/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_geometry_point_size/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_geometry_point_size/preprocessor/enabled-es.comp: skip
|
||||
spec/oes_geometry_point_size/preprocessor/enabled-es.frag: skip
|
||||
spec/oes_geometry_point_size/preprocessor/enabled-es.geom: skip
|
||||
@@ -4775,7 +4976,11 @@ spec/oes_geometry_point_size/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_geometry_point_size/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_geometry_point_size/preprocessor/enabled-es.vert: skip
|
||||
spec/oes_geometry_shader/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/oes_geometry_shader/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/oes_geometry_shader/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/oes_geometry_shader/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/oes_geometry_shader/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_geometry_shader/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_geometry_shader/preprocessor/enabled-es.comp: skip
|
||||
spec/oes_geometry_shader/preprocessor/enabled-es.frag: skip
|
||||
spec/oes_geometry_shader/preprocessor/enabled-es.geom: skip
|
||||
@@ -4783,7 +4988,11 @@ spec/oes_geometry_shader/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_geometry_shader/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_geometry_shader/preprocessor/enabled-es.vert: skip
|
||||
spec/oes_gpu_shader5/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/oes_gpu_shader5/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/oes_gpu_shader5/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/oes_gpu_shader5/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/oes_gpu_shader5/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_gpu_shader5/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_gpu_shader5/preprocessor/enabled-es.comp: skip
|
||||
spec/oes_gpu_shader5/preprocessor/enabled-es.frag: skip
|
||||
spec/oes_gpu_shader5/preprocessor/enabled-es.geom: skip
|
||||
@@ -4791,7 +5000,11 @@ spec/oes_gpu_shader5/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_gpu_shader5/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_gpu_shader5/preprocessor/enabled-es.vert: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/enabled-es.comp: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/enabled-es.frag: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/enabled-es.geom: skip
|
||||
@@ -4799,7 +5012,11 @@ spec/oes_multisample_interpolation/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_multisample_interpolation/preprocessor/enabled-es.vert: skip
|
||||
spec/oes_sample_variables/preprocessor/disabled-defined-es.geom: skip
|
||||
spec/oes_sample_variables/preprocessor/disabled-defined-es.tesc: skip
|
||||
spec/oes_sample_variables/preprocessor/disabled-defined-es.tese: skip
|
||||
spec/oes_sample_variables/preprocessor/disabled-undefined-es.geom: skip
|
||||
spec/oes_sample_variables/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_sample_variables/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_sample_variables/preprocessor/enabled-es.comp: skip
|
||||
spec/oes_sample_variables/preprocessor/enabled-es.frag: skip
|
||||
spec/oes_sample_variables/preprocessor/enabled-es.geom: skip
|
||||
@@ -4819,6 +5036,8 @@ spec/oes_shader_image_atomic/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_shader_image_atomic/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_shader_image_atomic/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/oes_shader_image_atomic/preprocessor/enabled-es.geom: skip
|
||||
spec/oes_shader_image_atomic/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_shader_image_atomic/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_shader_io_blocks/compiler/layout-location-aliasing.vert: fail
|
||||
spec/oes_shader_io_blocks/preprocessor/disabled-defined-es.comp: skip
|
||||
spec/oes_shader_io_blocks/preprocessor/disabled-defined-es.frag: skip
|
||||
@@ -4833,6 +5052,8 @@ spec/oes_shader_io_blocks/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_shader_io_blocks/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_shader_io_blocks/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/oes_shader_io_blocks/preprocessor/enabled-es.geom: skip
|
||||
spec/oes_shader_io_blocks/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_shader_io_blocks/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_standard_derivatives/preprocessor/disabled-defined-es.comp: skip
|
||||
spec/oes_standard_derivatives/preprocessor/disabled-defined-es.frag: skip
|
||||
spec/oes_standard_derivatives/preprocessor/disabled-defined-es.geom: skip
|
||||
@@ -4846,6 +5067,8 @@ spec/oes_standard_derivatives/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_standard_derivatives/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_standard_derivatives/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/oes_standard_derivatives/preprocessor/enabled-es.geom: skip
|
||||
spec/oes_standard_derivatives/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_standard_derivatives/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_texture_buffer/preprocessor/disabled-defined-es.comp: skip
|
||||
spec/oes_texture_buffer/preprocessor/disabled-defined-es.frag: skip
|
||||
spec/oes_texture_buffer/preprocessor/disabled-defined-es.geom: skip
|
||||
@@ -4859,6 +5082,8 @@ spec/oes_texture_buffer/preprocessor/disabled-undefined-es.tesc: skip
|
||||
spec/oes_texture_buffer/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_texture_buffer/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/oes_texture_buffer/preprocessor/enabled-es.geom: skip
|
||||
spec/oes_texture_buffer/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_texture_buffer/preprocessor/enabled-es.tese: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-defined-es.comp: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-defined-es.frag: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-defined-es.geom: skip
|
||||
@@ -4872,13 +5097,15 @@ spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-undefined-es
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-undefined-es.tese: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/disabled-undefined-es.vert: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/enabled-es.geom: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/enabled-es.tesc: skip
|
||||
spec/oes_texture_storage_multisample_2d_array/preprocessor/enabled-es.tese: skip
|
||||
summary:
|
||||
name: results
|
||||
---- --------
|
||||
pass: 9909
|
||||
pass: 9682
|
||||
fail: 2
|
||||
crash: 0
|
||||
skip: 4872
|
||||
skip: 5099
|
||||
timeout: 0
|
||||
warn: 0
|
||||
incomplete: 0
|
||||
|
@@ -459,6 +459,8 @@ spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 d=z32f_s8_s=z24_s8
|
||||
spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 d=z32f_s=z24_s8: skip
|
||||
spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 s=z24_s8_d=z32f: skip
|
||||
spec/arb_depth_buffer_float/depthstencil-render-miplevels 585 s=z24_s8_d=z32f_s8: skip
|
||||
spec/arb_direct_state_access/create-programpipelines/default tcs == 0: skip
|
||||
spec/arb_direct_state_access/create-programpipelines/default tes == 0: skip
|
||||
spec/arb_direct_state_access/getcompressedtextureimage: skip
|
||||
spec/arb_direct_state_access/gettextureimage-formats: skip
|
||||
spec/arb_direct_state_access/gettextureimage-formats init-by-rendering: skip
|
||||
@@ -504,6 +506,79 @@ spec/arb_post_depth_coverage/arb_post_depth_coverage-basic: skip
|
||||
spec/arb_post_depth_coverage/arb_post_depth_coverage-multisampling: skip
|
||||
spec/arb_post_depth_coverage/arb_post_depth_coverage-sample-shading: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceindex/'vs_input2[1][0]' on gl_program_input: fail
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/tcs_patch on gl_program_output: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-getprogramresourceiv/tess_control on gl_tess_control_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-location/test_subroutine_stages_tcs_tes: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(tcs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(tcs,tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_input(vs,tcs,tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs,tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tcs,tes,gs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_program_output(tes): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_control_subroutine: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_control_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_evaluation_subroutine: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_tess_evaluation_subroutine_uniform: skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_uniform(tes,tcs): skip
|
||||
spec/arb_program_interface_query/arb_program_interface_query-resource-query/gl_uniform_block(tcs,tes): skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_tess_control_shader_patches: skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_tess_evaluation_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_time_elapsed: skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_timestamp: skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_transform_feedback_primitives_written: skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_vertex_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/index-buffer-gl_vertices_submitted: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-dispatch-gl_tess_control_shader_patches: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-dispatch-gl_tess_evaluation_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-dispatch-gl_transform_feedback_primitives_written: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-dispatch-gl_vertex_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-dispatch-gl_vertices_submitted: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_tess_control_shader_patches: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_tess_evaluation_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_time_elapsed: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_timestamp: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_transform_feedback_primitives_written: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_vertex_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-count-gl_vertices_submitted: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_tess_control_shader_patches: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_tess_evaluation_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_time_elapsed: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_timestamp: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_transform_feedback_primitives_written: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_vertex_shader_invocations: skip
|
||||
spec/arb_query_buffer_object/coherency/indirect-draw-gl_vertices_submitted: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async_cpu_read_after-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async_cpu_read_after-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async_cpu_read_after-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async_cpu_read_before-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async_cpu_read_before-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-async_cpu_read_before-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-sync-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-sync-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-sync-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-sync_cpu_read_after_cache_test-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-sync_cpu_read_after_cache_test-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_control_shader_patches-sync_cpu_read_after_cache_test-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async_cpu_read_after-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async_cpu_read_after-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async_cpu_read_after-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async_cpu_read_before-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async_cpu_read_before-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-async_cpu_read_before-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-sync-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-sync-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-sync-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-sync_cpu_read_after_cache_test-gl_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-sync_cpu_read_after_cache_test-gl_unsigned_int: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_tess_evaluation_shader_invocations-sync_cpu_read_after_cache_test-gl_unsigned_int64_arb: skip
|
||||
spec/arb_query_buffer_object/qbo/query-gl_time_elapsed-async_cpu_read_before-gl_int: fail
|
||||
spec/arb_query_buffer_object/qbo/query-gl_time_elapsed-async_cpu_read_before-gl_unsigned_int: fail
|
||||
spec/arb_query_buffer_object/qbo/query-gl_time_elapsed-async_cpu_read_before-gl_unsigned_int64_arb: fail
|
||||
@@ -574,15 +649,23 @@ spec/arb_sample_shading/samplemask 6: skip
|
||||
spec/arb_sample_shading/samplemask 6 all: skip
|
||||
spec/arb_sample_shading/samplemask 8: skip
|
||||
spec/arb_sample_shading/samplemask 8 all: skip
|
||||
spec/arb_separate_shader_objects/mix-and-match-tcs-tes: skip
|
||||
spec/arb_separate_shader_objects/programuniform coverage/double matrices: skip
|
||||
spec/arb_separate_shader_objects/programuniform coverage/double scalar and vectors: skip
|
||||
spec/arb_separate_shader_objects/rendezvous by location (5 stages): skip
|
||||
spec/arb_separate_shader_objects/validateprogrampipeline/only tes from tes/tcs program: skip
|
||||
spec/arb_separate_shader_objects/validateprogrampipeline/tcs splitting a vs/gs pipeline: skip
|
||||
spec/arb_separate_shader_objects/validateprogrampipeline/tes splitting a vs/gs program: skip
|
||||
spec/arb_separate_shader_objects/validateprogrampipeline/tes/tcs without vs: skip
|
||||
spec/arb_shader_atomic_counters/max-counters/combined test above maximum number of atomic counter buffers: skip
|
||||
spec/arb_shader_atomic_counters/semantics/tessellation control shader atomic built-in semantics: skip
|
||||
spec/arb_shader_atomic_counters/semantics/tessellation evaluation shader atomic built-in semantics: skip
|
||||
spec/arb_shader_atomic_counters/unused-result/tessellation control shader atomic built-in semantics: skip
|
||||
spec/arb_shader_atomic_counters/unused-result/tessellation evaluation shader atomic built-in semantics: skip
|
||||
spec/arb_shader_image_load_store/early-z/occlusion query test/early-z pass: fail
|
||||
spec/arb_shader_image_load_store/indexing/compute shader/dynamically uniform indexing test: fail
|
||||
spec/arb_shader_image_load_store/indexing/fragment shader/dynamically uniform indexing test: fail
|
||||
spec/arb_shader_image_load_store/indexing/geometry shader/dynamically uniform indexing test: fail
|
||||
spec/arb_shader_image_load_store/indexing/tessellation control shader/dynamically uniform indexing test: fail
|
||||
spec/arb_shader_image_load_store/indexing/tessellation evaluation shader/dynamically uniform indexing test: fail
|
||||
spec/arb_shader_image_load_store/indexing/vertex shader/dynamically uniform indexing test: fail
|
||||
spec/arb_shader_image_load_store/invalid/imageload/address bounds test/image2d/r11f_g11f_b10f: fail
|
||||
spec/arb_shader_image_load_store/invalid/imageload/address bounds test/image2d/r16: fail
|
||||
@@ -613,8 +696,6 @@ spec/arb_shader_image_load_store/max-images/combined max image uniforms test: fa
|
||||
spec/arb_shader_image_load_store/max-images/compute shader max image uniforms test: fail
|
||||
spec/arb_shader_image_load_store/max-images/fragment shader max image uniforms test: fail
|
||||
spec/arb_shader_image_load_store/max-images/geometry shader max image uniforms test: fail
|
||||
spec/arb_shader_image_load_store/max-images/tessellation control shader max image uniforms test: fail
|
||||
spec/arb_shader_image_load_store/max-images/tessellation evaluation shader max image uniforms test: fail
|
||||
spec/arb_shader_image_load_store/max-images/vertex shader max image uniforms test: fail
|
||||
spec/arb_shader_image_load_store/max-size/imagecube max size test/8192x8192x6x1: skip
|
||||
spec/arb_shader_image_load_store/max-size/imagecubearray max size test/8192x8192x6x1: skip
|
||||
@@ -736,8 +817,17 @@ spec/arb_sparse_buffer/commit: skip
|
||||
spec/arb_sparse_buffer/minmax: skip
|
||||
spec/arb_stencil_texturing/glblitframebuffer corrupts state/gl_texture_2d_multisample: fail
|
||||
spec/arb_stencil_texturing/glblitframebuffer corrupts state/gl_texture_2d_multisample_array: fail
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-get-tcs-params: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-get-tes-params: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-immediate-mode-draw-patches: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-tes-gs-max-output -small -scan 1 50: fail
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-invalid-get-program-params: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-invalid-patch-vertices-range: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-invalid-primitive: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-large-uniforms: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-layout-mismatch: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-minmax: skip
|
||||
spec/arb_tessellation_shader/arb_tessellation_shader-tes-gs-max-output -small -scan 1 50: skip
|
||||
spec/arb_tessellation_shader/built-in-constants: skip
|
||||
spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 1: skip
|
||||
spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 2: skip
|
||||
spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 3: skip
|
||||
@@ -885,6 +975,8 @@ spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 8: sk
|
||||
spec/arb_texture_buffer_object/indexed: skip
|
||||
spec/arb_texture_buffer_object/negative-unsupported: skip
|
||||
spec/arb_texture_compression_bptc/bptc-float-modes: fail
|
||||
spec/arb_texture_compression_bptc/texwrap formats bordercolor: crash
|
||||
spec/arb_texture_compression_bptc/texwrap formats bordercolor-swizzled: crash
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=16: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=2: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=32: skip
|
||||
@@ -892,6 +984,10 @@ spec/arb_texture_cube_map/copyteximage cube samples=4: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=6: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=8: skip
|
||||
spec/arb_texture_cube_map/cubemap npot: fail
|
||||
spec/arb_texture_cube_map_array/texturesize/tes-texturesize-isamplercubearray: skip
|
||||
spec/arb_texture_cube_map_array/texturesize/tes-texturesize-samplercubearray: skip
|
||||
spec/arb_texture_cube_map_array/texturesize/tes-texturesize-samplercubearrayshadow: skip
|
||||
spec/arb_texture_cube_map_array/texturesize/tes-texturesize-usamplercubearray: skip
|
||||
spec/arb_texture_float/multisample-formats 16 gl_arb_texture_float: skip
|
||||
spec/arb_texture_float/multisample-formats 2 gl_arb_texture_float: skip
|
||||
spec/arb_texture_float/multisample-formats 32 gl_arb_texture_float: skip
|
||||
@@ -1096,6 +1192,12 @@ spec/arb_texture_multisample/texelfetch/8-vs-sampler2dms: skip
|
||||
spec/arb_texture_multisample/texelfetch/8-vs-sampler2dmsarray: skip
|
||||
spec/arb_texture_multisample/texelfetch/8-vs-usampler2dms: skip
|
||||
spec/arb_texture_multisample/texelfetch/8-vs-usampler2dmsarray: skip
|
||||
spec/arb_texture_multisample/texturesize/tes-texturesize-isampler2dms: skip
|
||||
spec/arb_texture_multisample/texturesize/tes-texturesize-isampler2dmsarray: skip
|
||||
spec/arb_texture_multisample/texturesize/tes-texturesize-sampler2dms: skip
|
||||
spec/arb_texture_multisample/texturesize/tes-texturesize-sampler2dmsarray: skip
|
||||
spec/arb_texture_multisample/texturesize/tes-texturesize-usampler2dms: skip
|
||||
spec/arb_texture_multisample/texturesize/tes-texturesize-usampler2dmsarray: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=16: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=2: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=32: skip
|
||||
@@ -1121,6 +1223,8 @@ spec/arb_texture_rg/multisample-formats 8 gl_arb_texture_rg: skip
|
||||
spec/arb_texture_rg/multisample-formats 8 gl_arb_texture_rg-float: skip
|
||||
spec/arb_texture_rg/multisample-formats 8 gl_arb_texture_rg-int: skip
|
||||
spec/arb_texture_stencil8/fbo-clear-formats/gl_stencil_index8 (fbo incomplete): skip
|
||||
spec/arb_texture_stencil8/texwrap formats bordercolor-swizzled/gl_stencil_index8, swizzled, border color only: fail
|
||||
spec/arb_texture_stencil8/texwrap formats bordercolor/gl_stencil_index8, border color only: fail
|
||||
spec/arb_texture_view/rendering-formats/clear gl_r8 as gl_r8_snorm: fail
|
||||
spec/arb_texture_view/rendering-formats/clear gl_r8 as gl_r8i: fail
|
||||
spec/arb_texture_view/rendering-formats/clear gl_rg8 as gl_r16_snorm: fail
|
||||
@@ -1926,6 +2030,35 @@ spec/glsl-1.30/execution/tex-miplevel-selection texture(bias) cubearray: fail
|
||||
spec/glsl-1.30/execution/tex-miplevel-selection texture(bias) cubeshadow: fail
|
||||
spec/glsl-1.30/execution/tex-miplevel-selection textureoffset 2darrayshadow: skip
|
||||
spec/glsl-1.50/built-in constants compatibility: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isampler1d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isampler1darray: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isampler2d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isampler2darray: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isampler2drect: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isampler3d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isamplerbuffer: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-isamplercube: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler1d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler1darray: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler1darrayshadow: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler1dshadow: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler2d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler2darray: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler2darrayshadow: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler2drect: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler2drectshadow: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler2dshadow: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-sampler3d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-samplerbuffer: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-samplercube: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-samplercubeshadow: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usampler1d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usampler1darray: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usampler2d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usampler2darray: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usampler3d: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usamplerbuffer: skip
|
||||
spec/glsl-1.50/execution/texturesize/tes-texturesize-usamplercube: skip
|
||||
spec/glsl-1.50/gs-max-output: fail
|
||||
spec/glsl-es-3.00/execution/varying-struct-centroid_gles3: fail
|
||||
spec/intel_blackhole_render/intel_blackhole-dispatch: skip
|
||||
@@ -1991,15 +2124,6 @@ spec/nv_vertex_program2_option/vp-clipdistance-01: skip
|
||||
spec/nv_vertex_program2_option/vp-clipdistance-02: skip
|
||||
spec/nv_vertex_program2_option/vp-clipdistance-03: skip
|
||||
spec/nv_vertex_program2_option/vp-clipdistance-04: skip
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryatomiccounterbuffers: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryatomiccounters: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryimageuniforms: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryinputcomponents: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryoutputcomponents: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryoutputvertices: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometrytextureimageunits: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometrytotaloutputcomponents: fail
|
||||
spec/oes_geometry_shader/built-in constants/gl_maxgeometryuniformcomponents: fail
|
||||
spec/oes_matrix_get/all queries: skip
|
||||
spec/oes_texture_compression_astc/miptree-3d-gl hdr: skip
|
||||
spec/oes_texture_compression_astc/miptree-3d-gl ldr: skip
|
||||
@@ -2081,10 +2205,10 @@ wgl/wgl-sanity: skip
|
||||
summary:
|
||||
name: results
|
||||
---- --------
|
||||
pass: 19539
|
||||
fail: 246
|
||||
crash: 0
|
||||
skip: 1814
|
||||
pass: 19320
|
||||
fail: 234
|
||||
crash: 2
|
||||
skip: 1948
|
||||
timeout: 0
|
||||
warn: 2
|
||||
incomplete: 0
|
||||
@@ -2093,4 +2217,4 @@ summary:
|
||||
changes: 0
|
||||
fixes: 0
|
||||
regressions: 0
|
||||
total: 21619
|
||||
total: 21524
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
VERSION=`cat install/VERSION`
|
||||
VERSION=`cat artifacts/VERSION`
|
||||
|
||||
cd /piglit
|
||||
|
||||
@@ -15,7 +15,7 @@ xvfb-run --server-args="-noreset" sh -c \
|
||||
|
||||
PIGLIT_RESULTS=${PIGLIT_RESULTS:-$PIGLIT_PROFILES}
|
||||
mkdir -p .gitlab-ci/piglit
|
||||
cp $OLDPWD/install/piglit/$PIGLIT_RESULTS.txt .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline
|
||||
cp $OLDPWD/artifacts/piglit/$PIGLIT_RESULTS.txt .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline
|
||||
./piglit summary console $OLDPWD/results | head -n -1 | grep -v ": pass" >.gitlab-ci/piglit/$PIGLIT_RESULTS.txt
|
||||
|
||||
if diff -q .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,}; then
|
||||
|
@@ -22,28 +22,38 @@ find install -name \*.so -exec $STRIP {} \;
|
||||
|
||||
# Test runs don't pull down the git tree, so put the dEQP helper
|
||||
# script and associated bits there.
|
||||
cp VERSION install/
|
||||
cp -Rp .gitlab-ci/deqp* install/
|
||||
cp -Rp .gitlab-ci/piglit install/
|
||||
cp -Rp .gitlab-ci/traces.yml install/
|
||||
cp -Rp .gitlab-ci/tracie install/
|
||||
cp -Rp .gitlab-ci/tracie-runner-gl.sh install/
|
||||
cp -Rp .gitlab-ci/tracie-runner-vk.sh install/
|
||||
cp -Rp .gitlab-ci/fossils.yml install/
|
||||
cp -Rp .gitlab-ci/fossils install/
|
||||
cp -Rp .gitlab-ci/fossilize-runner.sh install/
|
||||
cp -Rp .gitlab-ci/deqp-runner.sh install/
|
||||
cp -Rp .gitlab-ci/deqp-*-fails.txt install/
|
||||
cp -Rp .gitlab-ci/deqp-*-skips.txt install/
|
||||
mkdir -p artifacts/
|
||||
cp VERSION artifacts/
|
||||
cp -Rp .gitlab-ci/deqp* artifacts/
|
||||
cp -Rp .gitlab-ci/piglit artifacts/
|
||||
|
||||
# Tar up the install dir so that symlinks and hardlinks aren't each
|
||||
# packed separately in the zip file.
|
||||
mkdir -p artifacts/
|
||||
tar -cf artifacts/install.tar install
|
||||
|
||||
# If the container has LAVA stuff, prepare the artifacts for LAVA jobs
|
||||
if [ -d /lava-files ]; then
|
||||
# Pass needed files to the test stage
|
||||
cp $CI_PROJECT_DIR/.gitlab-ci/generate_lava.py artifacts/.
|
||||
cp $CI_PROJECT_DIR/.gitlab-ci/lava-deqp.yml.jinja2 artifacts/.
|
||||
# Copy kernel and device trees for LAVA
|
||||
cp /lava-files/*Image artifacts/.
|
||||
cp /lava-files/*.dtb artifacts/.
|
||||
|
||||
# Pack ramdisk for LAVA
|
||||
mkdir -p /lava-files/rootfs-${CROSS:-arm64}/mesa
|
||||
cp -a install/* /lava-files/rootfs-${CROSS:-arm64}/mesa/.
|
||||
|
||||
cp .gitlab-ci/deqp-runner.sh /lava-files/rootfs-${CROSS:-arm64}/deqp/.
|
||||
cp .gitlab-ci/deqp-*-fails.txt /lava-files/rootfs-${CROSS:-arm64}/deqp/.
|
||||
cp .gitlab-ci/deqp-*-skips.txt /lava-files/rootfs-${CROSS:-arm64}/deqp/.
|
||||
find /lava-files/rootfs-${CROSS:-arm64}/ -type f -printf "%s\t%i\t%p\n" | sort -n | tail -100
|
||||
|
||||
pushd /lava-files/rootfs-${CROSS:-arm64}/
|
||||
find -H | cpio -H newc -o | gzip -c - > $CI_PROJECT_DIR/artifacts/lava-rootfs-${CROSS:-arm64}.cpio.gz
|
||||
popd
|
||||
|
||||
# Store job ID so the test stage can build URLs to the artifacts
|
||||
echo $CI_JOB_ID > artifacts/build_job_id.txt
|
||||
|
||||
# Pass needed files to the test stage
|
||||
cp $CI_PROJECT_DIR/.gitlab-ci/generate_lava.py artifacts/.
|
||||
cp $CI_PROJECT_DIR/.gitlab-ci/lava-deqp.yml.jinja2 artifacts/.
|
||||
fi
|
||||
|
@@ -1,147 +0,0 @@
|
||||
# This file list source dependencies to avoid creating/running jobs
|
||||
# those outcome cannot be changed by the modifications from a branch.
|
||||
|
||||
# Mesa core source file dependencies
|
||||
# ----------------------------------
|
||||
.mesa-rules:
|
||||
rules:
|
||||
- changes: &mesa_core_file_list
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
- include/**/*
|
||||
- meson.build
|
||||
- SConstruct
|
||||
- src/*
|
||||
- src/compiler/**/*
|
||||
- src/drm-shim/**/*
|
||||
- src/egl/**/*
|
||||
- src/gbm/**/*
|
||||
- src/glx/**/*
|
||||
- src/gtest/**/*
|
||||
- src/hgl/**/*
|
||||
- src/include/**/*
|
||||
- src/loader/**/*
|
||||
- src/mapi/**/*
|
||||
- src/mesa/**/*
|
||||
- src/util/**/*
|
||||
|
||||
# Gallium core source file dependencies
|
||||
# -------------------------------------
|
||||
.gallium-rules:
|
||||
rules:
|
||||
- changes: &gallium_core_file_list
|
||||
- src/gallium/*
|
||||
- src/gallium/auxiliary/**/*
|
||||
- src/gallium/drivers/*
|
||||
- src/gallium/include/**/*
|
||||
- src/gallium/state_trackers/**/*
|
||||
- src/gallium/targets/**/*
|
||||
- src/gallium/tests/**/*
|
||||
- src/gallium/winsys/*
|
||||
|
||||
.softpipe-rules:
|
||||
stage: softpipe
|
||||
rules:
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/gallium/drivers/softpipe/**/*
|
||||
- src/gallium/winsys/sw/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.llvmpipe-rules:
|
||||
stage: llvmpipe
|
||||
rules:
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes: &llvmpipe_file_list
|
||||
- src/gallium/drivers/llvmpipe/**/*
|
||||
- src/gallium/winsys/sw/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.freedreno-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/freedreno/**/*
|
||||
- src/gallium/drivers/freedreno/**/*
|
||||
- src/gallium/winsys/freedreno/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.panfrost-rules:
|
||||
stage: panfrost
|
||||
rules:
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/gallium/drivers/panfrost/**/*
|
||||
- src/gallium/winsys/panfrost/**/*
|
||||
- src/panfrost/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.lima-rules:
|
||||
stage: lima
|
||||
rules:
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/gallium/drivers/lima/**/*
|
||||
- src/gallium/winsys/lima/**/*
|
||||
- src/lima/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.radv-rules:
|
||||
rules:
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/amd/**/*
|
||||
- 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:
|
||||
*llvmpipe_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/gallium/drivers/virgl/**/*
|
||||
- src/gallium/winsys/virgl/**/*
|
||||
when: on_success
|
||||
- when: never
|
@@ -1,35 +0,0 @@
|
||||
traces-db:
|
||||
gitlab-project-url: "https://gitlab.freedesktop.org/gfx-ci/tracie/traces-db"
|
||||
commit: "d3b1efe0cd69ef6ae40a29a14ed733ee0ba0cb4c"
|
||||
|
||||
traces:
|
||||
- path: glmark2/desktop-blur-radius=5:effect=blur:passes=1:separable=true:windows=4.rdc
|
||||
expectations:
|
||||
- device: gl-vmware-llvmpipe
|
||||
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
|
||||
- device: gl-virgl
|
||||
checksum: 8867f3a41f180626d0d4b7661ff5c0f4
|
||||
- path: glmark2/jellyfish.rdc
|
||||
expectations:
|
||||
- device: gl-vmware-llvmpipe
|
||||
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
|
||||
- device: gl-virgl
|
||||
checksum: e0fe979fee129c0ed42a3059d1a4e1c9
|
||||
- path: glxgears/glxgears.trace
|
||||
expectations:
|
||||
- device: gl-vmware-llvmpipe
|
||||
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
|
||||
- device: gl-virgl
|
||||
checksum: 02aca9b4b4ad6fd60331df6e4f87f2cd
|
||||
- path: KhronosGroup-Vulkan-Tools/vkcube.gfxr
|
||||
expectations:
|
||||
- device: vk-amd-polaris10
|
||||
checksum: 29dc9e5e55c3de331407248737c23aa7
|
||||
- path: LunarG-VulkanSamples/Hologram:-w:640:-h:480.gfxr
|
||||
expectations:
|
||||
- device: vk-amd-polaris10
|
||||
checksum: 351710942ea93d511cef39ae2d7c68da
|
||||
- path: Wicked-Engine/Tests:Cloth_Physics_Test.trace-dxgi
|
||||
expectations:
|
||||
- device: vk-amd-polaris10
|
||||
checksum: 6b6d27df609b8d086cc3335e6d103581
|
@@ -1,49 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
INSTALL="$(pwd)/install"
|
||||
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$(pwd)/install/lib/"
|
||||
|
||||
# Set environment for renderdoc libraries.
|
||||
export PYTHONPATH="$PYTHONPATH:/renderdoc/build/lib"
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/renderdoc/build/lib"
|
||||
|
||||
# Set environment for the waffle library.
|
||||
export LD_LIBRARY_PATH="/waffle/build/lib:$LD_LIBRARY_PATH"
|
||||
|
||||
# Set environment for apitrace executable.
|
||||
export PATH="/apitrace/build:$PATH"
|
||||
|
||||
# Use the surfaceless EGL platform.
|
||||
export EGL_PLATFORM="surfaceless"
|
||||
export DISPLAY=
|
||||
export WAFFLE_PLATFORM="surfaceless_egl"
|
||||
|
||||
RESULTS=`pwd`/results
|
||||
mkdir -p $RESULTS
|
||||
|
||||
# Perform a self-test to ensure tracie is working properly.
|
||||
python3 -m pytest -v --pyargs $INSTALL/tracie/tests/test.py
|
||||
|
||||
if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
|
||||
# tracie 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
|
||||
|
||||
# Sanity check to ensure that our environment is sufficient to make our tests
|
||||
# run against the Mesa built by CI, rather than any installed distro version.
|
||||
MESA_VERSION=$(cat "$INSTALL/VERSION" | sed 's/\./\\./g')
|
||||
wflinfo --platform surfaceless_egl --api gles2 | grep "Mesa $MESA_VERSION\(\s\|$\)"
|
||||
|
||||
python3 "$INSTALL/tracie/tracie.py" --file "$INSTALL/traces.yml" --device-name "$DEVICE_NAME"
|
@@ -1,37 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
INSTALL="$(pwd)/install"
|
||||
|
||||
# Set the Vulkan driver to use.
|
||||
export VK_ICD_FILENAMES="$(pwd)/install/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
|
||||
# Set environment for VulkanTools' VK_LAYER_LUNARG_screenshot layer.
|
||||
export VK_LAYER_PATH="$VK_LAYER_PATH:/VulkanTools/build/etc/vulkan/explicit_layer.d"
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/VulkanTools/build/lib"
|
||||
|
||||
# Set environment for Wine
|
||||
export WINEDEBUG="-all"
|
||||
export WINEPREFIX="/dxvk-wine64"
|
||||
export WINEESYNC=1
|
||||
|
||||
# Set environment for DXVK
|
||||
export DXVK_LOG_LEVEL="none"
|
||||
export DXVK_STATE_CACHE=0
|
||||
|
||||
# Perform a self-test to ensure tracie is working properly.
|
||||
python3 -m pytest -v --pyargs $INSTALL/tracie/tests/test.py
|
||||
|
||||
# Sanity check to ensure that our environment is sufficient to make our tests
|
||||
# run against the Mesa built by CI, rather than any installed distro version.
|
||||
MESA_VERSION=$(cat "$INSTALL/VERSION" | sed 's/\./\\./g')
|
||||
vulkaninfo | grep "Mesa $MESA_VERSION\(\s\|$\)"
|
||||
|
||||
# Run gfxreconstruct traces against the host's running X server (xvfb
|
||||
# doesn't have DRI3 support).
|
||||
# Set the DISPLAY env variable in each gitlab-runner's configuration
|
||||
# file:
|
||||
# https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section
|
||||
PATH="/gfxreconstruct/build/bin:$PATH" \
|
||||
python3 "$INSTALL/tracie/tracie.py" --file "$INSTALL/traces.yml" --device-name "$DEVICE_NAME"
|
@@ -1,156 +0,0 @@
|
||||
Tracie - Mesa Traces Continuous Integration System
|
||||
==================================================
|
||||
|
||||
Home of the Mesa trace testing effort.
|
||||
|
||||
### Traces definition file
|
||||
|
||||
The trace definition file contains information about the GitLab
|
||||
project and git commit to get the traces from, and a list of the
|
||||
traces to run along with their expected image checksums on each
|
||||
device. An example:
|
||||
|
||||
```yaml
|
||||
traces-db:
|
||||
gitlab-project-url: https://gitlab.freedesktop.org/gfx-ci/tracie/traces-db
|
||||
commit: master
|
||||
|
||||
traces:
|
||||
- path: glmark2/jellyfish.rdc
|
||||
expectations:
|
||||
- device: gl-intel-0x3185
|
||||
checksum: 58359ea4caf6ad44c6b65526881bbd17
|
||||
- device: gl-vmware-llvmpipe
|
||||
checksum: d82267c25a0decdad7b563c56bb81106
|
||||
- path: supertuxkart/supertuxkart-antediluvian-abyss.rdc
|
||||
expectations:
|
||||
- device: gl-intel-0x3185
|
||||
checksum: ff827f7eb069afd87cc305a422cba939
|
||||
```
|
||||
|
||||
The `traces-db` entry can be absent, in which case it is assumed that
|
||||
the traces can be found in the `CWD/traces-db` directory.
|
||||
|
||||
Traces that don't have an expectation for the current device are skipped
|
||||
during trace replay.
|
||||
|
||||
Adding a new trace to the list involves commiting the trace to the git repo and
|
||||
adding an entry to the `traces` list. The reference checksums can be calculated
|
||||
with the [image_checksum.py](.gitlab-ci/tracie/image_checksum.py) script.
|
||||
Alternatively, an arbitrary checksum can be used, and during replay (see below)
|
||||
the scripts will report the mismatch and expected checksum.
|
||||
|
||||
### Trace-db GitLab projects
|
||||
|
||||
The trace-db GitLab projects are assumed to have git repositories
|
||||
using LFS for their trace files. This is so that trace files can be
|
||||
potentially checked out and replayed individually, thus reducing
|
||||
storage requirements during CI runs.
|
||||
|
||||
### Enabling trace testing on a new device
|
||||
|
||||
To enable trace testing on a new device:
|
||||
|
||||
1. Create a new job in .gitlab-ci.yml. The job will need to be tagged
|
||||
to run on runners with the appropriate hardware.
|
||||
|
||||
1. If you mean to test GL traces, use the `.traces-test-gl`
|
||||
template jobs as a base, and make sure you set a unique value for the
|
||||
`DEVICE_NAME` variable:
|
||||
|
||||
```yaml
|
||||
my-hardware-gl-traces:
|
||||
extends: .traces-test-gl
|
||||
variables:
|
||||
DEVICE_NAME: "gl-myhardware"
|
||||
```
|
||||
|
||||
2. If you mean to test Vulkan traces, use the `.traces-test-vk`
|
||||
template jobs as a base, set the `VK_DRIVER` variable, and make
|
||||
sure you set a unique value for the `DEVICE_NAME` variable:
|
||||
|
||||
```yaml
|
||||
my-hardware-vk-traces:
|
||||
extends: .traces-test-vk
|
||||
variables:
|
||||
VK_DRIVER: "radeon"
|
||||
DEVICE_NAME: "vk-myhardware"
|
||||
```
|
||||
|
||||
2. Update the .gitlab-ci/traces.yml file with expectations for the new device.
|
||||
Ensure that the device name used in the expectations matches the one
|
||||
set in the job. For more information, and tips about how to calculate
|
||||
the checksums, see the section describing the trace definition files.
|
||||
|
||||
### Trace files
|
||||
|
||||
Tracie supports renderdoc (.rdc), apitrace (.trace) and gfxreconstruct
|
||||
(.gfxr) files. Trace files need to have the correct extension so that
|
||||
tracie can detect them properly.
|
||||
|
||||
The trace files that are contained in public traces-db repositories must be
|
||||
legally redistributable. This is typically true for FOSS games and
|
||||
applications. Traces for proprietary games and application are typically not
|
||||
redistributable, unless specific redistribution rights have been granted by the
|
||||
publisher.
|
||||
|
||||
### Replaying traces
|
||||
|
||||
Mesa traces CI uses a set of scripts to replay traces and check the output
|
||||
against reference checksums.
|
||||
|
||||
The high level script [tracie.py](.gitlab-ci/tracie/tracie.py) accepts
|
||||
a traces definition file and the name of the device to be tested:
|
||||
|
||||
tracie.py --file .gitlab-ci/traces.yml --device-name gl-vmware-llvmpipe
|
||||
|
||||
tracie.py copies the produced artifacts to the `$CI_PROJECT_DIR/result`
|
||||
directory. By default, created images from traces are only stored in case of a
|
||||
checksum mismatch. The `TRACIE_STORE_IMAGES` CI/environment variable can be set
|
||||
to `1` to force storing images, e.g., to get a complete set of reference
|
||||
images.
|
||||
|
||||
At a lower level the
|
||||
[dump_trace_images.py](.gitlab-ci/tracie/dump_trace_images.py) script is
|
||||
called, which replays a trace, dumping a set of images in the process. By
|
||||
default only the image corresponding to the last frame of the trace is dumped,
|
||||
but this can be changed with the `--calls` parameter. The dumped images are
|
||||
stored in a subdirectory `test/<device-name>` next to the trace file itself,
|
||||
with names of the form `tracefilename-callnum.png`. The full log of any
|
||||
commands used while dumping the images is also saved in a file in the
|
||||
'test/<device-name>' subdirectory, named after the trace name with '.log'
|
||||
appended.
|
||||
|
||||
Examples:
|
||||
|
||||
python3 dump_traces_images.py --device-name=gl-vmware-llvmpipe mytrace.trace
|
||||
python3 dump_traces_images.py --device-name=gl-vmware-llvmpipe --calls=2075,3300 mytrace.trace
|
||||
|
||||
### Running the replay scripts locally
|
||||
|
||||
It's often useful, especially during development, to be able to run the scripts
|
||||
locally.
|
||||
|
||||
Depending on the target 3D API, the scripts require a recent version
|
||||
of apitrace being in the path, and also the renderdoc python module
|
||||
being available, for GL traces.
|
||||
|
||||
To ensure python3 can find the renderdoc python module you need to set
|
||||
`PYTHONPATH` to point to the location of `renderdoc.so` (binary python modules)
|
||||
and `LD_LIBRARY_PATH` to point to the location of `librenderdoc.so`. In the
|
||||
renderdoc build tree, both of these are in `renderdoc/<builddir>/lib`. Note
|
||||
that renderdoc doesn't install the `renderdoc.so` python module.
|
||||
|
||||
In the case of Vulkan traces, the scripts need a recent version of
|
||||
gfxrecon-replay being in the path, and also the
|
||||
`VK_LAYER_LUNARG_screenshot` Vulkan layer from LunarG's VulkanTools.
|
||||
|
||||
To ensure that this layer can be found when running the trace you need
|
||||
to set `VK_LAYER_PATH` to point to the location of
|
||||
`VkLayer_screenshot.json` and `LD_LIBRARY_PATH` to point to the
|
||||
location of `libVkLayer_screenshot.so`.
|
||||
|
||||
In the case of DXGI traces, the scripts require Wine, a recent version
|
||||
of DXVK installed in the default `WINEPREFIX`, and a recent binary
|
||||
version of apitrace for Windows which should be reachable through
|
||||
Windows' `PATH` environment variable.
|
@@ -1,180 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2019 Collabora Ltd
|
||||
# Copyright © 2019-2020 Valve Corporation.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
from traceutil import trace_type_from_filename, TraceType
|
||||
|
||||
def log(severity, msg, end='\n'):
|
||||
print("[dump_trace_images] %s: %s" % (severity, msg), flush=True, end=end)
|
||||
|
||||
def log_result(msg):
|
||||
print(msg, flush=True)
|
||||
|
||||
def run_logged_command(cmd, env, log_path):
|
||||
ret = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=env)
|
||||
logoutput = ("[dump_trace_images] Running: %s\n" % " ".join(cmd)).encode() + \
|
||||
ret.stdout
|
||||
log_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
with log_path.open(mode='wb') as log:
|
||||
log.write(logoutput)
|
||||
if ret.returncode:
|
||||
raise RuntimeError(
|
||||
logoutput.decode(errors='replace') +
|
||||
"[dump_traces_images] Process failed with error code: %d" % ret.returncode)
|
||||
|
||||
def get_last_apitrace_frame_call(cmd_wrapper, trace_path):
|
||||
cmd = cmd_wrapper + ["apitrace", "dump", "--calls=frame", str(trace_path)]
|
||||
ret = subprocess.run(cmd, stdout=subprocess.PIPE)
|
||||
for l in reversed(ret.stdout.decode(errors='replace').splitlines()):
|
||||
s = l.split(None, 1)
|
||||
if len(s) >= 1 and s[0].isnumeric():
|
||||
return int(s[0])
|
||||
return -1
|
||||
|
||||
def get_last_gfxreconstruct_frame_call(trace_path):
|
||||
# FIXME: It would be great to have another way to get the amount of
|
||||
# traces which wouldn't imply replaying the whole trace:
|
||||
# https://github.com/LunarG/gfxreconstruct/issues/329
|
||||
cmd = ["gfxrecon-replay", str(trace_path)]
|
||||
ret = subprocess.run(cmd, stdout=subprocess.PIPE)
|
||||
for l in reversed(ret.stdout.decode(errors='replace').splitlines()):
|
||||
s = l.split(", ", 2)
|
||||
if len(s) >= 3:
|
||||
c = s[2].split(None, 1)
|
||||
if len(c) >= 1 and c[0].isnumeric():
|
||||
return int(c[0])
|
||||
return -1
|
||||
|
||||
def dump_with_apitrace(retrace_cmd, trace_path, calls, device_name):
|
||||
outputdir = str(trace_path.parent / "test" / device_name)
|
||||
os.makedirs(outputdir, exist_ok=True)
|
||||
outputprefix = str(Path(outputdir) / trace_path.name) + "-"
|
||||
if len(calls) == 0:
|
||||
calls = [str(get_last_apitrace_frame_call(retrace_cmd[:-1], trace_path))]
|
||||
cmd = retrace_cmd + ["--headless",
|
||||
"--snapshot=" + ','.join(calls),
|
||||
"--snapshot-prefix=" + outputprefix, str(trace_path)]
|
||||
log_path = Path(outputdir) / (trace_path.name + ".log")
|
||||
run_logged_command(cmd, None, log_path)
|
||||
|
||||
def dump_with_renderdoc(trace_path, calls, device_name):
|
||||
outputdir = str(trace_path.parent / "test" / device_name)
|
||||
script_path = Path(os.path.dirname(os.path.abspath(__file__)))
|
||||
cmd = [str(script_path / "renderdoc_dump_images.py"), str(trace_path), outputdir]
|
||||
cmd.extend(calls)
|
||||
log_path = Path(outputdir) / (trace_path.name + ".log")
|
||||
run_logged_command(cmd, None, log_path)
|
||||
|
||||
def dump_with_gfxreconstruct(trace_path, calls, device_name):
|
||||
from PIL import Image
|
||||
outputdir_path = trace_path.parent / "test" / device_name
|
||||
outputdir_path.mkdir(parents=True, exist_ok=True)
|
||||
outputprefix = str(outputdir_path / trace_path.name) + "-"
|
||||
if len(calls) == 0:
|
||||
# FIXME: The VK_LAYER_LUNARG_screenshot numbers the calls from
|
||||
# 0 to (total-num-calls - 1) while gfxreconstruct does it from
|
||||
# 1 to total-num-calls:
|
||||
# https://github.com/LunarG/gfxreconstruct/issues/284
|
||||
calls = [str(get_last_gfxreconstruct_frame_call(trace_path) - 1)]
|
||||
cmd = ["gfxrecon-replay", str(trace_path)]
|
||||
log_path = outputdir_path / (trace_path.name + ".log")
|
||||
env = os.environ.copy()
|
||||
env["VK_INSTANCE_LAYERS"] = "VK_LAYER_LUNARG_screenshot"
|
||||
env["VK_SCREENSHOT_FRAMES"] = ",".join(calls)
|
||||
env["VK_SCREENSHOT_DIR"] = str(outputdir_path)
|
||||
run_logged_command(cmd, env, log_path)
|
||||
for c in calls:
|
||||
ppm = str(outputdir_path / c) + ".ppm"
|
||||
outputfile = outputprefix + c + ".png"
|
||||
with log_path.open(mode='w') as log:
|
||||
log.write("Writing: %s to %s" % (ppm, outputfile))
|
||||
Image.open(ppm).save(outputfile)
|
||||
os.remove(ppm)
|
||||
|
||||
def dump_with_testtrace(trace_path, calls, device_name):
|
||||
from PIL import Image
|
||||
outputdir_path = trace_path.parent / "test" / device_name
|
||||
outputdir_path.mkdir(parents=True, exist_ok=True)
|
||||
with trace_path.open() as f:
|
||||
rgba = f.read()
|
||||
color = [int(rgba[0:2], 16), int(rgba[2:4], 16),
|
||||
int(rgba[4:6], 16), int(rgba[6:8], 16)]
|
||||
if len(calls) == 0: calls = ["0"]
|
||||
for c in calls:
|
||||
outputfile = str(outputdir_path / trace_path.name) + "-" + c + ".png"
|
||||
log_path = outputdir_path / (trace_path.name + ".log")
|
||||
with log_path.open(mode='w') as log:
|
||||
log.write("Writing RGBA: %s to %s" % (rgba, outputfile))
|
||||
Image.frombytes('RGBA', (32, 32), bytes(color * 32 * 32)).save(outputfile)
|
||||
|
||||
def dump_from_trace(trace_path, calls, device_name):
|
||||
log("Info", "Dumping trace %s" % trace_path, end='... ')
|
||||
trace_type = trace_type_from_filename(trace_path.name)
|
||||
try:
|
||||
if trace_type == TraceType.APITRACE:
|
||||
dump_with_apitrace(["eglretrace"], trace_path, calls, device_name)
|
||||
elif trace_type == TraceType.APITRACE_DXGI:
|
||||
dump_with_apitrace(["wine", "d3dretrace"], trace_path, calls, device_name)
|
||||
elif trace_type == TraceType.RENDERDOC:
|
||||
dump_with_renderdoc(trace_path, calls, device_name)
|
||||
elif trace_type == TraceType.GFXRECONSTRUCT:
|
||||
dump_with_gfxreconstruct(trace_path, calls, device_name)
|
||||
elif trace_type == TraceType.TESTTRACE:
|
||||
dump_with_testtrace(trace_path, calls, device_name)
|
||||
else:
|
||||
raise RuntimeError("Unknown tracefile extension")
|
||||
log_result("OK")
|
||||
return True
|
||||
except Exception as e:
|
||||
log_result("ERROR")
|
||||
log("Debug", "=== Failure log start ===")
|
||||
print(e)
|
||||
log("Debug", "=== Failure log end ===")
|
||||
return False
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('tracepath', help="trace to dump")
|
||||
parser.add_argument('--device-name', required=True,
|
||||
help="the name of the graphics device used to produce images")
|
||||
parser.add_argument('--calls', required=False,
|
||||
help="the call numbers from the trace to dump (default: last frame)")
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.calls is not None:
|
||||
args.calls = args.calls.split(",")
|
||||
else:
|
||||
args.calls = []
|
||||
|
||||
success = dump_from_trace(Path(args.tracepath), args.calls, args.device_name)
|
||||
|
||||
sys.exit(0 if success else 1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@@ -1,39 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright (c) 2019 Collabora Ltd
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import argparse
|
||||
import hashlib
|
||||
from PIL import Image
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('imagefile', help='image file to calculate checksum for')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
md5 = hashlib.md5(Image.open(args.imagefile).tobytes())
|
||||
print(md5.hexdigest())
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@@ -1,108 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright (c) 2019 Collabora Ltd
|
||||
# Copyright © 2020 Valve Corporation.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import argparse
|
||||
import yaml
|
||||
from traceutil import all_trace_type_names, trace_type_from_name
|
||||
from traceutil import trace_type_from_filename
|
||||
|
||||
def trace_devices(trace):
|
||||
return [e['device'] for e in trace['expectations']]
|
||||
|
||||
def cmd_traces_db_gitlab_project_url(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
print(y['traces-db']['gitlab-project-url'])
|
||||
|
||||
def cmd_traces_db_commit(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
print(y['traces-db']['commit'])
|
||||
|
||||
def cmd_traces(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
|
||||
traces = y['traces']
|
||||
traces = filter(lambda t: trace_type_from_filename(t['path']) in args.trace_types,
|
||||
traces)
|
||||
if args.device_name:
|
||||
traces = filter(lambda t: args.device_name in trace_devices(t), traces)
|
||||
|
||||
traces = list(traces)
|
||||
|
||||
if len(traces) == 0:
|
||||
return
|
||||
|
||||
print('\n'.join((t['path'] for t in traces)))
|
||||
|
||||
def cmd_checksum(args):
|
||||
with open(args.file, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
|
||||
traces = y['traces']
|
||||
trace = next(t for t in traces if t['path'] == args.trace_path)
|
||||
expectation = next(e for e in trace['expectations'] if e['device'] == args.device_name)
|
||||
|
||||
print(expectation['checksum'])
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--file', required=True,
|
||||
help='the name of the yaml file')
|
||||
|
||||
subparsers = parser.add_subparsers(help='sub-command help')
|
||||
|
||||
parser_traces_db_gitlab_project_url = subparsers.add_parser('traces_db_gitlab_project_url')
|
||||
parser_traces_db_gitlab_project_url.set_defaults(func=cmd_traces_db_gitlab_project_url)
|
||||
|
||||
parser_traces_db_commit = subparsers.add_parser('traces_db_commit')
|
||||
parser_traces_db_commit.set_defaults(func=cmd_traces_db_commit)
|
||||
|
||||
parser_traces = subparsers.add_parser('traces')
|
||||
parser_traces.add_argument('--device-name', required=False,
|
||||
help="the name of the graphics device used to "
|
||||
"produce images")
|
||||
parser_traces.add_argument('--trace-types', required=False,
|
||||
default=",".join(all_trace_type_names()),
|
||||
help="the types of traces to look for in recursive "
|
||||
"dir walks " "(by default all types)")
|
||||
parser_traces.set_defaults(func=cmd_traces)
|
||||
|
||||
parser_checksum = subparsers.add_parser('checksum')
|
||||
parser_checksum.add_argument('--device-name', required=True,
|
||||
help="the name of the graphics device used to "
|
||||
"produce images")
|
||||
parser_checksum.add_argument('trace_path')
|
||||
parser_checksum.set_defaults(func=cmd_checksum)
|
||||
|
||||
args = parser.parse_args()
|
||||
if hasattr(args, 'trace_types'):
|
||||
args.trace_types = [trace_type_from_name(t) for t in args.trace_types.split(",")]
|
||||
|
||||
args.func(args)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@@ -1,126 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# Copyright (c) 2019 Collabora Ltd
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import atexit
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
def cleanup(dirpath):
|
||||
shutil.rmtree(dirpath)
|
||||
|
||||
dirpath = tempfile.mkdtemp()
|
||||
atexit.register(cleanup, dirpath)
|
||||
RENDERDOC_DEBUG_FILE = dirpath + "/renderdoc.log"
|
||||
|
||||
# Needs to be in the environment before importing the module
|
||||
os.environ['RENDERDOC_DEBUG_LOG_FILE'] = RENDERDOC_DEBUG_FILE
|
||||
import renderdoc as rd
|
||||
|
||||
def findDrawWithEventId(controller, eventId):
|
||||
for d in controller.GetDrawcalls():
|
||||
if d.eventId == eventId:
|
||||
return d
|
||||
|
||||
return None
|
||||
|
||||
def dumpImage(controller, eventId, outputDir, tracefile):
|
||||
draw = findDrawWithEventId(controller, eventId)
|
||||
if draw is None:
|
||||
raise RuntimeError("Couldn't find draw call with eventId " + str(eventId))
|
||||
|
||||
controller.SetFrameEvent(draw.eventId, True)
|
||||
|
||||
texsave = rd.TextureSave()
|
||||
|
||||
# Select the first color output
|
||||
texsave.resourceId = draw.outputs[0]
|
||||
|
||||
if texsave.resourceId == rd.ResourceId.Null():
|
||||
return
|
||||
|
||||
filepath = Path(outputDir)
|
||||
filepath.mkdir(parents = True, exist_ok = True)
|
||||
filepath = filepath / (tracefile + "-" + str(int(draw.eventId)) + ".png")
|
||||
|
||||
print("Saving image at eventId %d: %s to %s" % (draw.eventId, draw.name, filepath))
|
||||
|
||||
# Most formats can only display a single image per file, so we select the
|
||||
# first mip and first slice
|
||||
texsave.mip = 0
|
||||
texsave.slice.sliceIndex = 0
|
||||
|
||||
# For formats with an alpha channel, preserve it
|
||||
texsave.alpha = rd.AlphaMapping.Preserve
|
||||
texsave.destType = rd.FileType.PNG
|
||||
controller.SaveTexture(texsave, str(filepath))
|
||||
|
||||
def loadCapture(filename):
|
||||
cap = rd.OpenCaptureFile()
|
||||
|
||||
status = cap.OpenFile(filename, '', None)
|
||||
|
||||
if status != rd.ReplayStatus.Succeeded:
|
||||
raise RuntimeError("Couldn't open file: " + str(status))
|
||||
if not cap.LocalReplaySupport():
|
||||
raise RuntimeError("Capture cannot be replayed")
|
||||
|
||||
status, controller = cap.OpenCapture(rd.ReplayOptions(), None)
|
||||
|
||||
if status != rd.ReplayStatus.Succeeded:
|
||||
if os.path.exists(RENDERDOC_DEBUG_FILE):
|
||||
print(open(RENDERDOC_DEBUG_FILE, "r").read())
|
||||
raise RuntimeError("Couldn't initialise replay: " + str(status))
|
||||
|
||||
if os.path.exists(RENDERDOC_DEBUG_FILE):
|
||||
open(RENDERDOC_DEBUG_FILE, "w").write("")
|
||||
|
||||
return (cap, controller)
|
||||
|
||||
def renderdoc_dump_images(filename, eventIds, outputDir):
|
||||
rd.InitialiseReplay(rd.GlobalEnvironment(), [])
|
||||
cap, controller = loadCapture(filename);
|
||||
|
||||
tracefile = Path(filename).name
|
||||
|
||||
if len(eventIds) == 0:
|
||||
eventIds.append(controller.GetDrawcalls()[-1].eventId)
|
||||
|
||||
for eventId in eventIds:
|
||||
dumpImage(controller, eventId, outputDir, tracefile)
|
||||
|
||||
controller.Shutdown()
|
||||
cap.Shutdown()
|
||||
|
||||
rd.ShutdownReplay()
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 3:
|
||||
raise RuntimeError("Usage: renderdoc_dump_images.py <trace> <outputdir> [<draw-id>...]")
|
||||
|
||||
eventIds = [int(e) for e in sys.argv[3:]]
|
||||
|
||||
renderdoc_dump_images(sys.argv[1], eventIds, sys.argv[2])
|
@@ -1 +0,0 @@
|
||||
ff00ffff
|
@@ -1 +0,0 @@
|
||||
80800080
|
@@ -1,214 +0,0 @@
|
||||
import logging
|
||||
import pytest
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from os import environ, chdir
|
||||
from os.path import dirname, exists, realpath
|
||||
|
||||
import tracie
|
||||
|
||||
|
||||
RESULTS_YAML = "results/results.yml"
|
||||
TRACE_LOG_TEST1 = "results/trace1/test/gl-test-device/magenta.testtrace.log"
|
||||
TRACE_LOG_TEST2 = "results/trace2/test/vk-test-device/olive.testtrace.log"
|
||||
TRACE_PNG_TEST1 = "results/trace1/test/gl-test-device/magenta.testtrace-0.png"
|
||||
TRACE_PNG_TEST2 = "results/trace2/test/vk-test-device/olive.testtrace-0.png"
|
||||
TRACIE_DIR = dirname(realpath(__file__)) + "/.."
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger()
|
||||
|
||||
|
||||
def write_to(content, filename):
|
||||
with open(filename, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
|
||||
def read_from(filename):
|
||||
with open(filename) as f:
|
||||
content = f.read()
|
||||
return content
|
||||
|
||||
|
||||
def run_tracie():
|
||||
'''
|
||||
Run tests for the .testtrace types, using the "gl-test-device" and
|
||||
"vk-test-device" device names.
|
||||
'''
|
||||
result = tracie.main(["--device-name", "gl-test-device",
|
||||
"--file", "./tests/traces.yml"])
|
||||
if not result:
|
||||
return False
|
||||
result = tracie.main(["--device-name", "vk-test-device",
|
||||
"--file", "./tests/traces.yml"])
|
||||
return result
|
||||
|
||||
|
||||
def prepare_for_run(tmp_path):
|
||||
'''
|
||||
Copy all the tracie scripts to the test dir for the unit tests.
|
||||
This avoids polluting the normal working dir with test result artifacts.
|
||||
'''
|
||||
test_dir = str(tmp_path) + "/run"
|
||||
shutil.copytree(TRACIE_DIR, test_dir)
|
||||
# Change the working dir to the test_dir
|
||||
chdir(test_dir)
|
||||
# Set the traces-db
|
||||
shutil.move("./tests/test-data", "./traces-db")
|
||||
# Disable trace storing
|
||||
environ["TRACIE_STORE_IMAGES"] = "0"
|
||||
|
||||
|
||||
def cleanup(tmp_path):
|
||||
'''
|
||||
Performs the clean up of the test dir.
|
||||
'''
|
||||
if exists(tmp_path):
|
||||
shutil.rmtree(tmp_path)
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def run_test(tmp_path):
|
||||
'''
|
||||
Wraps the execution of each test as follows:
|
||||
|
||||
prepare_for_run()
|
||||
test()
|
||||
cleanup()
|
||||
'''
|
||||
logger.debug("Working dir: %s", tmp_path)
|
||||
prepare_for_run(tmp_path)
|
||||
yield
|
||||
cleanup(tmp_path)
|
||||
|
||||
|
||||
def check_results_yaml_content(filename, expectations):
|
||||
'''
|
||||
Checks the content of the filename with the list of expectations
|
||||
passed as parameter.
|
||||
|
||||
Arguments:
|
||||
filename (str): The path of the file to check
|
||||
expectations (list): A list with the content to find in the file
|
||||
|
||||
Returns:
|
||||
bool: The return value. True if the content of the filename satisfies
|
||||
the expectations, False otherwise.
|
||||
'''
|
||||
content = read_from(filename)
|
||||
for e in expectations:
|
||||
ocurrencies = re.findall(e, content)
|
||||
if not len(ocurrencies):
|
||||
logger.error("Expectation not found in %s: %s", filename, e)
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def test_tracie_succeeds_if_all_images_match():
|
||||
assert run_tracie()
|
||||
expectations = [
|
||||
"actual: 5efda83854befe0155ff8517a58d5b51",
|
||||
"expected: 5efda83854befe0155ff8517a58d5b51",
|
||||
]
|
||||
assert check_results_yaml_content(RESULTS_YAML, expectations)
|
||||
|
||||
|
||||
def test_tracie_fails_on_image_mismatch():
|
||||
filename = "./tests/traces.yml"
|
||||
content = read_from(filename)
|
||||
content = content.replace("5efda83854befe0155ff8517a58d5b51",
|
||||
"8e0a801367e1714463475a824dab363b")
|
||||
write_to(content, filename)
|
||||
assert not run_tracie()
|
||||
expectations = [
|
||||
"actual: 5efda83854befe0155ff8517a58d5b51",
|
||||
"expected: 8e0a801367e1714463475a824dab363b",
|
||||
"trace2/test/vk-test-device/olive.testtrace-0.png"
|
||||
]
|
||||
assert check_results_yaml_content(RESULTS_YAML, expectations)
|
||||
|
||||
|
||||
def test_tracie_traces_with_and_without_checksum():
|
||||
filename = "./tests/traces.yml"
|
||||
content = read_from(filename)
|
||||
content += ''' - path: trace1/red.testtrace
|
||||
expectations:
|
||||
- device: bla
|
||||
checksum: 000000000000000'''
|
||||
write_to(content, filename)
|
||||
|
||||
# red.testtrace should be skipped, since it doesn't
|
||||
# have any checksums for our device
|
||||
filename = "./traces-db/trace1/red.testtrace"
|
||||
content = "ff0000ff"
|
||||
write_to(content, filename)
|
||||
assert run_tracie()
|
||||
|
||||
|
||||
def test_tracie_only_traces_without_checksum():
|
||||
filename = "./tests/traces.yml"
|
||||
content = '''traces:
|
||||
- path: trace1/red.testtrace
|
||||
expectations:
|
||||
- device: bla
|
||||
checksum: 000000000000000'''
|
||||
write_to(content, filename)
|
||||
|
||||
# red.testtrace should be skipped, since it doesn't
|
||||
# have any checksums for our device
|
||||
filename = "./traces-db/trace1/red.testtrace"
|
||||
content = "ff0000ff"
|
||||
write_to(content, filename)
|
||||
assert run_tracie()
|
||||
|
||||
|
||||
def test_tracie_with_no_traces():
|
||||
filename = "./tests/traces.yml"
|
||||
content = 'traces:'
|
||||
write_to(content, filename)
|
||||
assert run_tracie()
|
||||
expectations = [
|
||||
"{}",
|
||||
]
|
||||
assert check_results_yaml_content(RESULTS_YAML, expectations)
|
||||
|
||||
|
||||
def test_tracie_fails_on_dump_image_error():
|
||||
# "invalid" should fail to parse as rgba and
|
||||
# cause an error
|
||||
filename = "./traces-db/trace1/magenta.testtrace"
|
||||
write_to("invalid\n", filename)
|
||||
run_tracie()
|
||||
expectations = [
|
||||
"actual: error",
|
||||
"expected: 8e0a801367e1714463475a824dab363b",
|
||||
"trace1/magenta.testtrace",
|
||||
]
|
||||
assert check_results_yaml_content(RESULTS_YAML, expectations)
|
||||
|
||||
|
||||
def test_tracie_stores_only_logs_on_checksum_match():
|
||||
assert run_tracie()
|
||||
assert exists(TRACE_LOG_TEST1)
|
||||
assert exists(TRACE_LOG_TEST2)
|
||||
assert not exists(TRACE_PNG_TEST1)
|
||||
assert not exists(TRACE_PNG_TEST2)
|
||||
|
||||
|
||||
def test_tracie_stores_images_on_checksum_mismatch():
|
||||
filename = "./tests/traces.yml"
|
||||
content = read_from(filename)
|
||||
content = content.replace("5efda83854befe0155ff8517a58d5b51",
|
||||
"8e0a801367e1714463475a824dab363b")
|
||||
write_to(content, filename)
|
||||
assert not run_tracie()
|
||||
assert not exists(TRACE_PNG_TEST1)
|
||||
assert exists(TRACE_PNG_TEST2)
|
||||
|
||||
|
||||
def test_tracie_stores_images_on_request():
|
||||
environ["TRACIE_STORE_IMAGES"] = "1"
|
||||
assert run_tracie()
|
||||
assert exists(TRACE_PNG_TEST1)
|
||||
assert exists(TRACE_PNG_TEST2)
|
@@ -1,9 +0,0 @@
|
||||
traces:
|
||||
- path: trace1/magenta.testtrace
|
||||
expectations:
|
||||
- device: gl-test-device
|
||||
checksum: 8e0a801367e1714463475a824dab363b
|
||||
- path: trace2/olive.testtrace
|
||||
expectations:
|
||||
- device: vk-test-device
|
||||
checksum: 5efda83854befe0155ff8517a58d5b51
|
@@ -1,63 +0,0 @@
|
||||
# Copyright (c) 2019 Collabora Ltd
|
||||
# Copyright © 2019-2020 Valve Corporation.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included
|
||||
# in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
# OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from enum import Enum, auto
|
||||
|
||||
class TraceType(Enum):
|
||||
UNKNOWN = auto()
|
||||
APITRACE = auto()
|
||||
APITRACE_DXGI = auto()
|
||||
RENDERDOC = auto()
|
||||
GFXRECONSTRUCT = auto()
|
||||
TESTTRACE = auto()
|
||||
|
||||
_trace_type_info_map = {
|
||||
TraceType.APITRACE : ("apitrace", ".trace"),
|
||||
TraceType.APITRACE_DXGI : ("apitrace-dxgi", ".trace-dxgi"),
|
||||
TraceType.RENDERDOC : ("renderdoc", ".rdc"),
|
||||
TraceType.GFXRECONSTRUCT : ("gfxreconstruct", ".gfxr"),
|
||||
TraceType.TESTTRACE : ("testtrace", ".testtrace")
|
||||
}
|
||||
|
||||
def all_trace_type_names():
|
||||
s = []
|
||||
for t,(name, ext) in _trace_type_info_map.items():
|
||||
if t != TraceType.UNKNOWN:
|
||||
s.append(name)
|
||||
return s
|
||||
|
||||
def trace_type_from_name(tt_name):
|
||||
for t,(name, ext) in _trace_type_info_map.items():
|
||||
if tt_name == name:
|
||||
return t
|
||||
|
||||
return TraceType.UNKNOWN
|
||||
|
||||
def trace_type_from_filename(trace_file):
|
||||
for t,(name, ext) in _trace_type_info_map.items():
|
||||
if trace_file.endswith(ext):
|
||||
return t
|
||||
|
||||
return TraceType.UNKNOWN
|
@@ -1,182 +0,0 @@
|
||||
import argparse
|
||||
import enum
|
||||
import glob
|
||||
import hashlib
|
||||
import os
|
||||
import requests
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
import yaml
|
||||
import shutil
|
||||
|
||||
from pathlib import Path
|
||||
from PIL import Image
|
||||
from urllib import parse
|
||||
|
||||
import dump_trace_images
|
||||
|
||||
TRACES_DB_PATH = "./traces-db/"
|
||||
RESULTS_PATH = "./results/"
|
||||
|
||||
def replay(trace_path, device_name):
|
||||
success = dump_trace_images.dump_from_trace(trace_path, [], device_name)
|
||||
|
||||
if not success:
|
||||
print("[check_image] Trace %s couldn't be replayed. See above logs for more information." % (str(trace_path)))
|
||||
return None, None, None
|
||||
else:
|
||||
base_path = trace_path.parent
|
||||
file_name = trace_path.name
|
||||
files = glob.glob(str(base_path / "test" / device_name / (file_name + "-*" + ".png")))
|
||||
assert(files)
|
||||
image_file = files[0]
|
||||
files = glob.glob(str(base_path / "test" / device_name / (file_name + ".log")))
|
||||
assert(files)
|
||||
log_file = files[0]
|
||||
return hashlib.md5(Image.open(image_file).tobytes()).hexdigest(), image_file, log_file
|
||||
|
||||
def gitlab_download_metadata(project_url, repo_commit, trace_path):
|
||||
url = parse.urlparse(project_url)
|
||||
|
||||
url_path = url.path
|
||||
if url_path.startswith("/"):
|
||||
url_path = url_path[1:]
|
||||
|
||||
gitlab_api_url = url.scheme + "://" + url.netloc + "/api/v4/projects/" + parse.quote_plus(url_path)
|
||||
|
||||
r = requests.get(gitlab_api_url + "/repository/files/%s/raw?ref=%s" % (parse.quote_plus(trace_path), repo_commit))
|
||||
metadata_raw = r.text.strip().split('\n')
|
||||
metadata = dict(line.split(' ', 1) for line in metadata_raw[1:])
|
||||
oid = metadata["oid"][7:] if metadata["oid"].startswith('sha256:') else metadata["oid"]
|
||||
size = int(metadata['size'])
|
||||
|
||||
return oid, size
|
||||
|
||||
def gitlfs_download_trace(repo_url, repo_commit, trace_path, oid, size):
|
||||
headers = {
|
||||
"Accept": "application/vnd.git-lfs+json",
|
||||
"Content-Type": "application/vnd.git-lfs+json"
|
||||
}
|
||||
json = {
|
||||
"operation": "download",
|
||||
"transfers": [ "basic" ],
|
||||
"ref": { "name": "refs/heads/%s" % repo_commit },
|
||||
"objects": [
|
||||
{
|
||||
"oid": oid,
|
||||
"size": size
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
r = requests.post(repo_url + "/info/lfs/objects/batch", headers=headers, json=json)
|
||||
url = r.json()["objects"][0]["actions"]["download"]["href"]
|
||||
open(TRACES_DB_PATH + trace_path, "wb").write(requests.get(url).content)
|
||||
|
||||
def checksum(filename, hash_factory=hashlib.sha256, chunk_num_blocks=128):
|
||||
h = hash_factory()
|
||||
with open(filename,'rb') as f:
|
||||
for chunk in iter(lambda: f.read(chunk_num_blocks*h.block_size), b''):
|
||||
h.update(chunk)
|
||||
return h.hexdigest()
|
||||
|
||||
def gitlab_ensure_trace(project_url, repo_commit, trace):
|
||||
trace_path = TRACES_DB_PATH + trace['path']
|
||||
if project_url is None:
|
||||
assert(repo_commit is None)
|
||||
assert(os.path.exists(trace_path))
|
||||
return
|
||||
|
||||
os.makedirs(os.path.dirname(trace_path), exist_ok=True)
|
||||
|
||||
if os.path.exists(trace_path):
|
||||
local_oid = checksum(trace_path)
|
||||
|
||||
remote_oid, size = gitlab_download_metadata(project_url, repo_commit, trace['path'])
|
||||
|
||||
if not os.path.exists(trace_path) or local_oid != remote_oid:
|
||||
print("[check_image] Downloading trace %s" % (trace['path']), end=" ", flush=True)
|
||||
download_time = time.time()
|
||||
gitlfs_download_trace(project_url + ".git", repo_commit, trace['path'], remote_oid, size)
|
||||
print("took %ds." % (time.time() - download_time), flush=True)
|
||||
|
||||
def gitlab_check_trace(project_url, repo_commit, device_name, trace, expectation):
|
||||
gitlab_ensure_trace(project_url, repo_commit, trace)
|
||||
|
||||
result = {}
|
||||
result[trace['path']] = {}
|
||||
result[trace['path']]['expected'] = expectation['checksum']
|
||||
|
||||
trace_path = Path(TRACES_DB_PATH + trace['path'])
|
||||
checksum, image_file, log_file = replay(trace_path, device_name)
|
||||
if checksum is None:
|
||||
result[trace['path']]['actual'] = 'error'
|
||||
return False, result
|
||||
elif checksum == expectation['checksum']:
|
||||
print("[check_image] Images match for %s" % (trace['path']))
|
||||
ok = True
|
||||
else:
|
||||
print("[check_image] Images differ for %s (expected: %s, actual: %s)" %
|
||||
(trace['path'], expectation['checksum'], checksum))
|
||||
print("[check_image] For more information see "
|
||||
"https://gitlab.freedesktop.org/mesa/mesa/blob/master/.gitlab-ci/tracie/README.md")
|
||||
ok = False
|
||||
|
||||
trace_dir = os.path.split(trace['path'])[0]
|
||||
dir_in_results = os.path.join(trace_dir, "test", device_name)
|
||||
results_path = os.path.join(RESULTS_PATH, dir_in_results)
|
||||
os.makedirs(results_path, exist_ok=True)
|
||||
shutil.move(log_file, os.path.join(results_path, os.path.split(log_file)[1]))
|
||||
if not ok or os.environ.get('TRACIE_STORE_IMAGES', '0') == '1':
|
||||
image_name = os.path.split(image_file)[1]
|
||||
shutil.move(image_file, os.path.join(results_path, image_name))
|
||||
result[trace['path']]['image'] = os.path.join(dir_in_results, image_name)
|
||||
|
||||
result[trace['path']]['actual'] = checksum
|
||||
|
||||
return ok, result
|
||||
|
||||
def run(filename, device_name):
|
||||
|
||||
with open(filename, 'r') as f:
|
||||
y = yaml.safe_load(f)
|
||||
|
||||
if "traces-db" in y:
|
||||
project_url = y["traces-db"]["gitlab-project-url"]
|
||||
commit_id = y["traces-db"]["commit"]
|
||||
else:
|
||||
project_url = None
|
||||
commit_id = None
|
||||
|
||||
traces = y['traces'] or []
|
||||
all_ok = True
|
||||
results = {}
|
||||
for trace in traces:
|
||||
for expectation in trace['expectations']:
|
||||
if expectation['device'] == device_name:
|
||||
ok, result = gitlab_check_trace(project_url, commit_id,
|
||||
device_name, trace,
|
||||
expectation)
|
||||
all_ok = all_ok and ok
|
||||
results.update(result)
|
||||
|
||||
os.makedirs(RESULTS_PATH, exist_ok=True)
|
||||
with open(os.path.join(RESULTS_PATH, 'results.yml'), 'w') as f:
|
||||
yaml.safe_dump(results, f, default_flow_style=False)
|
||||
|
||||
return all_ok
|
||||
|
||||
def main(args):
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--file', required=True,
|
||||
help='the name of the traces.yml file listing traces and their checksums for each device')
|
||||
parser.add_argument('--device-name', required=True,
|
||||
help="the name of the graphics device used to replay traces")
|
||||
|
||||
args = parser.parse_args(args)
|
||||
return run(args.file, args.device_name)
|
||||
|
||||
if __name__ == "__main__":
|
||||
all_ok = main(sys.argv[1:])
|
||||
sys.exit(0 if all_ok else 1)
|
@@ -1,10 +0,0 @@
|
||||
# escape=`
|
||||
|
||||
FROM mcr.microsoft.com/windows:1809
|
||||
|
||||
# Make sure any failure in PowerShell scripts is fatal
|
||||
SHELL ["powershell", "-ExecutionPolicy", "RemoteSigned", "-Command", "$ErrorActionPreference = 'Stop';"]
|
||||
ENV ErrorActionPreference='Stop'
|
||||
|
||||
COPY mesa_deps.ps1 C:\
|
||||
RUN C:\mesa_deps.ps1
|
@@ -1,32 +0,0 @@
|
||||
# Native Windows GitLab CI builds
|
||||
|
||||
Unlike Linux, Windows cannot reuse the freedesktop ci-templates as they exist
|
||||
as we do not have Podman, Skopeo, or even Docker-in-Docker builds available
|
||||
under Windows.
|
||||
|
||||
We still reuse the same model: build a base container with the core operating
|
||||
system and infrequently-changed build dependencies, then execute Mesa builds
|
||||
only inside that base container. This is open-coded in PowerShell scripts.
|
||||
|
||||
## Base container build
|
||||
|
||||
The base container build job executes the `mesa_container.ps1` script which
|
||||
reproduces the ci-templates behaviour. It looks for the registry image in
|
||||
the user's namespace, and exits if found. If not found, it tries to copy
|
||||
the same image tag from the upstream Mesa repository. If that is not found,
|
||||
the image is rebuilt inside the user's namespace.
|
||||
|
||||
The rebuild executes `docker build` which calls `mesa_deps.ps1` inside the
|
||||
container to fetch and install all build dependencies. This includes Visual
|
||||
Studio Community Edition (downloaded from Microsoft, under the license which
|
||||
allows use by open-source projects), other build tools from Chocolatey, and
|
||||
finally Meson and Python dependencies from PyPI.
|
||||
|
||||
This job is executed inside a Windows shell environment directly inside the
|
||||
host, without Docker.
|
||||
|
||||
## Mesa build
|
||||
|
||||
The Mesa build runs inside the base container, executing `mesa_build.ps1`.
|
||||
This simply compiles Mesa using Meson and Ninja, executing the build and
|
||||
unit tests. Currently, no build artifacts are captured.
|
@@ -1,19 +0,0 @@
|
||||
# force the CA cert cache to be rebuilt, in case Meson tries to access anything
|
||||
Write-Host "Refreshing Windows TLS CA cache"
|
||||
(New-Object System.Net.WebClient).DownloadString("https://github.com") >$null
|
||||
|
||||
Get-Date
|
||||
Write-Host "Compiling Mesa"
|
||||
$builddir = New-Item -ItemType Directory -Name "build"
|
||||
Push-Location $builddir.FullName
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson -Dgallium-drivers=swrast -Dbuild-tests=true .. && ninja test"
|
||||
$buildstatus = $?
|
||||
Pop-Location
|
||||
Remove-Item -Recurse -Path $builddir
|
||||
|
||||
Get-Date
|
||||
|
||||
if (!$buildstatus) {
|
||||
Write-Host "Mesa build or test failed"
|
||||
Exit 1
|
||||
}
|
@@ -1,56 +0,0 @@
|
||||
# Implements the equivalent of ci-templates container-ifnot-exists, using
|
||||
# Docker directly as we don't have buildah/podman/skopeo available under
|
||||
# Windows, nor can we execute Docker-in-Docker
|
||||
$registry_uri = $args[0]
|
||||
$registry_username = $args[1]
|
||||
$registry_password = $args[2]
|
||||
$registry_user_image = $args[3]
|
||||
$registry_central_image = $args[4]
|
||||
|
||||
Set-Location -Path ".\.gitlab-ci\windows"
|
||||
|
||||
docker login -u "$registry_username" -p "$registry_password" "$registry_uri"
|
||||
if (!$?) {
|
||||
Write-Host "docker login failed to $registry_uri"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# if the image already exists, don't rebuild it
|
||||
docker pull "$registry_user_image"
|
||||
if ($?) {
|
||||
Write-Host "User image $registry_user_image already exists; not rebuilding"
|
||||
docker logout "$registry_uri"
|
||||
Exit 0
|
||||
}
|
||||
|
||||
# if the image already exists upstream, copy it
|
||||
docker pull "$registry_central_image"
|
||||
if ($?) {
|
||||
Write-Host "Copying central image $registry_central_image to user image $registry_user_image"
|
||||
docker tag "$registry_central_image" "$registry_user_image"
|
||||
docker push "$registry_user_image"
|
||||
$pushstatus = $?
|
||||
docker logout "$registry_uri"
|
||||
if (!$pushstatus) {
|
||||
Write-Host "Pushing image to $registry_user_image failed"
|
||||
Exit 1
|
||||
}
|
||||
Exit 0
|
||||
}
|
||||
|
||||
Write-Host "No image found at $registry_user_image or $registry_central_image; rebuilding"
|
||||
docker build --no-cache -t "$registry_user_image" .
|
||||
if (!$?) {
|
||||
Write-Host "Container build failed"
|
||||
docker logout "$registry_uri"
|
||||
Exit 1
|
||||
}
|
||||
Get-Date
|
||||
|
||||
docker push "$registry_user_image"
|
||||
$pushstatus = $?
|
||||
docker logout "$registry_uri"
|
||||
if (!$pushstatus) {
|
||||
Write-Host "Pushing image to $registry_user_image failed"
|
||||
Exit 1
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
Get-Date
|
||||
Write-Host "Installing Chocolatey"
|
||||
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||
Import-Module "$env:ProgramData\chocolatey\helpers\chocolateyProfile.psm1"
|
||||
Update-SessionEnvironment
|
||||
Write-Host "Installing Chocolatey packages"
|
||||
|
||||
# Chocolatey tries to download winflexbison from SourceForge, which is not super reliable, and has no retry
|
||||
# loop of its own - so we give it a helping hand here
|
||||
For ($i = 0; $i -lt 5; $i++) {
|
||||
choco install -y python3 --params="/InstallDir:C:\python3"
|
||||
$python_install = $?
|
||||
choco install --allow-empty-checksums -y cmake git git-lfs ninja pkgconfiglite winflexbison
|
||||
$other_install = $?
|
||||
$choco_installed = $other_install -and $python_install
|
||||
if ($choco_installed) {
|
||||
Break
|
||||
}
|
||||
}
|
||||
|
||||
if (!$choco_installed) {
|
||||
Write-Host "Couldn't install dependencies from Chocolatey"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# Add Chocolatey's native install path
|
||||
Update-SessionEnvironment
|
||||
# Python adds itself to the system environment path, which doesn't get refreshed until we start a new shell
|
||||
$env:PATH = "C:\python3;C:\python3\scripts;$env:PATH"
|
||||
|
||||
Start-Process -NoNewWindow -Wait git -ArgumentList 'config --global core.autocrlf false'
|
||||
|
||||
Get-Date
|
||||
Write-Host "Installing Meson and Mako"
|
||||
pip3 install meson mako
|
||||
if (!$?) {
|
||||
Write-Host "Failed to install dependencies from pip"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# we want more secure TLS 1.2 for most things, but it breaks SourceForge
|
||||
# downloads so must be done after Chocolatey use
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
|
||||
|
||||
# VS16.x is 2019
|
||||
$msvc_2019_url = 'https://aka.ms/vs/16/release/vs_buildtools.exe'
|
||||
|
||||
Get-Date
|
||||
Write-Host "Downloading Visual Studio 2019 build tools"
|
||||
Invoke-WebRequest -Uri $msvc_2019_url -OutFile C:\vs_buildtools.exe
|
||||
|
||||
Get-Date
|
||||
Write-Host "Installing Visual Studio 2019"
|
||||
Start-Process -NoNewWindow -Wait C:\vs_buildtools.exe -ArgumentList '--wait --quiet --norestart --nocache --installPath C:\BuildTools --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.VC.ATL --add Microsoft.VisualStudio.Component.VC.ATLMFC --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.Graphics.Tools --add Microsoft.VisualStudio.Component.Windows10SDK.18362 --includeRecommended'
|
||||
Remove-Item C:\vs_buildtools.exe -Force
|
||||
|
||||
Get-Date
|
||||
Write-Host "Complete"
|
@@ -1,54 +0,0 @@
|
||||
### Before submitting your bug report:
|
||||
- Check if a new version of Mesa is available which might have fixed the problem.
|
||||
- If you can, check if the latest development version (git master) works better.
|
||||
- Check if your bug has already been reported here.
|
||||
- For any logs, backtraces, etc - use [code blocks](https://docs.gitlab.com/ee/user/markdown.html#code-spans-and-blocks)
|
||||
- As examples of good bug reports you may review one of these - #2598, #2615, #2608
|
||||
|
||||
|
||||
Otherwise, please fill the requested information below.
|
||||
And please remove anything that doesn't apply to keep things readable :)
|
||||
|
||||
|
||||
### System information
|
||||
|
||||
Please post `inxi -GSC -xx` output OR fill information below manually
|
||||
|
||||
|
||||
- OS: (`cat /etc/os-release | grep "NAME"`)
|
||||
- GPU: (`lspci | grep VGA` or `lshw -C display`)
|
||||
- Kernel version: (run `uname -a`)
|
||||
- Mesa version: (`glxinfo -B | grep "OpenGL version string"`)
|
||||
- Xserver version (if applicable): (`sudo X -version`)
|
||||
- Desktop manager and compositor:
|
||||
|
||||
#### If applicable
|
||||
- DXVK version:
|
||||
- Wine/Proton version:
|
||||
|
||||
|
||||
### Describe the issue
|
||||
|
||||
Please describe what you are doing, what you expect and what you're
|
||||
seeing instead.
|
||||
|
||||
"It doesn't work" usually is not a helpful description of an issue.
|
||||
The more detail about how things are going wrong, the better.
|
||||
|
||||
|
||||
### Regression
|
||||
|
||||
Did it used to work? It can greatly help to know when the issue started.
|
||||
|
||||
|
||||
### Log files as attachment
|
||||
- Output of `dmesg`
|
||||
- Backtrace
|
||||
- Gpu hang details
|
||||
|
||||
|
||||
### Screenshots/video files (if applicable)
|
||||
|
||||
|
||||
|
||||
### Any extra information would be greatly appreciated
|
166
.mailmap
166
.mailmap
@@ -6,12 +6,9 @@ Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org>
|
||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com>
|
||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
|
||||
|
||||
Alan Swanson <reiver@improbability.net> <swanson@ukfsn.org>
|
||||
|
||||
Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org>
|
||||
Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-40-204.bne.redhat.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@gmail.com>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)>
|
||||
Dave Airlie <airlied@redhat.com> <airlied@linux.ie>
|
||||
@@ -41,8 +38,6 @@ Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
|
||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
|
||||
|
||||
Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> <alyssa@rosenzweig.io>
|
||||
|
||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
|
||||
|
||||
Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com>
|
||||
@@ -55,14 +50,8 @@ Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com>
|
||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com>
|
||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru>
|
||||
|
||||
Andrii Simiklit <andrii.simiklit@globallogic.com> <asimiklit.work@gmail.com>
|
||||
|
||||
Anuj Phogat <anuj.phogat@gmail.com> <anuj.phogat@intel.com>
|
||||
|
||||
Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
|
||||
|
||||
Axel Davy <axel.davy@ens.fr> <davyaxel0@gmail.com>
|
||||
|
||||
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> <basni@chromium.org>
|
||||
|
||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
|
||||
@@ -79,8 +68,6 @@ Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
|
||||
|
||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
|
||||
|
||||
Boris Brezillon <boris.brezillon@collabora.com> <boris.brezillon@free-electrons.com>
|
||||
|
||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
|
||||
|
||||
Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com>
|
||||
@@ -99,36 +86,23 @@ Brian Paul <brianp@vmware.com> root <root@i915.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net>
|
||||
Brian Paul <brianp@vmware.com> root <root@i965.localnet.net>
|
||||
|
||||
Bruce Cherniak <bruce.cherniak@intel.com>
|
||||
|
||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
|
||||
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> <s3734770@mail.zih.tu-dresden.de>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> <carli@carli-laptop.(none)>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> <Carl-Philip.Haensch@mailbox.tu-dresden.de>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)>
|
||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de>
|
||||
|
||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
|
||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
|
||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
|
||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
|
||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
|
||||
Chad Versace <chadversary@chromium.org> <chadversary@google.com>
|
||||
|
||||
Chandu Babu Namburu <chandu@amd.com>
|
||||
Chandu Babu Namburu <chandu@amd.com> <mailto:chandu@amd.com>
|
||||
|
||||
Chenglei Ren <chenglei.ren@intel.com>
|
||||
|
||||
Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com>
|
||||
Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com>
|
||||
|
||||
Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org>
|
||||
|
||||
Christian Gmeiner <christian.gmeiner@gmail.com> <christian.GMEINER@bachmann.info>
|
||||
|
||||
Christian Inci <chris.bugsfd@broke-the-inter.net> <chris.pcguy.inci@gmail.com>
|
||||
|
||||
Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com>
|
||||
Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com>
|
||||
Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de>
|
||||
@@ -138,37 +112,23 @@ Christoph Brill <egore911@egore911.de> <egore@gmx.de>
|
||||
|
||||
Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at>
|
||||
|
||||
Christoph Haag <haagch@frickel.club> <christoph.haag@collabora.com>
|
||||
Christoph Haag <haagch@frickel.club> <haagch+mesa@frickel.club>
|
||||
Christoph Haag <haagch@frickel.club> <haagch+mesadev@frickel.club>
|
||||
|
||||
Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com>
|
||||
|
||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
|
||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
|
||||
|
||||
Colin McDonald <cjmmail10-bz@yahoo.co.uk> <cjmcdonald@qinetiq.com>
|
||||
|
||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
|
||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
|
||||
|
||||
Constantine Kharlamov <Hi-Angel@yandex.ru>
|
||||
|
||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
|
||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
|
||||
|
||||
Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com>
|
||||
|
||||
Craig Stout <cstout@google.com>
|
||||
|
||||
Daniel Schürmann <daniel.schuermann@campus.tu-berlin.de> <daniel@schuermann.dev>
|
||||
|
||||
Daniel Skinner <sio@users.sourceforge.net> sio <sio>
|
||||
|
||||
Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org>
|
||||
|
||||
Danylo Piliaiev <danylo.piliaiev@globallogic.com> <danylo.piliaiev@gmail.com>
|
||||
|
||||
David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
|
||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
|
||||
David Miller <davem@davemloft.net> davem69 <davem69>
|
||||
@@ -183,10 +143,6 @@ Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de>
|
||||
Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com>
|
||||
|
||||
Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
|
||||
Dylan Baker <dylanx.c.baker@intel.com> <dylan@pnwbakers.com>
|
||||
|
||||
Dylan Noblesmith <nobled@dreamwidth.org>
|
||||
Dylan Noblesmith <nobled@dreamwidth.org> nobled <nobled2@nobled2-karmic.(none)>
|
||||
|
||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
|
||||
|
||||
@@ -201,15 +157,11 @@ Emil Velikov <emil.l.velikov@gmail.com> <emil.veliikov@collabora.com>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@gmail.com>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emmil.velikov@collabora.com>
|
||||
|
||||
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> <emmanuel.peyrot@collabora.com>
|
||||
|
||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
|
||||
|
||||
Eric Engestrom <eric@engestrom.ch> <eric.engestrom@imgtec.com>
|
||||
Eric Engestrom <eric@engestrom.ch> <eric.engestrom@intel.com>
|
||||
|
||||
Erik Faye-Lund <kusmabite@gmail.com> <erik.faye-lund@collabora.com>
|
||||
|
||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
|
||||
|
||||
Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm>
|
||||
@@ -217,8 +169,6 @@ Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>>
|
||||
|
||||
Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com>
|
||||
|
||||
Francesco Ansanelli <francians@gmail.com>
|
||||
|
||||
Frank Binns <frank.binns@imgtec.com> <francisbinns@gmail.com>
|
||||
|
||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
|
||||
@@ -227,22 +177,12 @@ George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
|
||||
|
||||
Gert Wollny <gert.wollny@collabora.com> <gw.fossdev@gmail.com>
|
||||
|
||||
Gurchetan Singh <gurchetansingh@chromium.org>
|
||||
|
||||
Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com>
|
||||
|
||||
Haihao Xiang <haihao.xiang@intel.com>
|
||||
|
||||
Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson>
|
||||
|
||||
Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl>
|
||||
|
||||
Harish Krupo <harish.krupo.kps@intel.com> <harishkrupo@gmail.com>
|
||||
|
||||
Heinrich Fink <heinrich.fink@daqri.com>
|
||||
|
||||
Henri Verbeet <hverbeet@gmail.com>
|
||||
|
||||
Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com>
|
||||
|
||||
Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
|
||||
@@ -250,10 +190,6 @@ Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
|
||||
Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org>
|
||||
Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
|
||||
|
||||
Igor Gnatenko <i.gnatenko.brain@gmail.com> <ignatenko@redhat.com>
|
||||
|
||||
Illia Iorin <illia.iorin@globallogic.com> <illia.iorin@gmail.com>
|
||||
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se>
|
||||
@@ -266,19 +202,15 @@ Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org>
|
||||
|
||||
James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com>
|
||||
|
||||
James Zhu <James.Zhu@amd.com>
|
||||
|
||||
Jan Beich <jbeich@freebsd.org> <jbeich@FreeBSD.org>
|
||||
|
||||
Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
|
||||
|
||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
|
||||
|
||||
Jeremy Huddleston <jeremyhu@apple.com>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||
|
||||
Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu>
|
||||
|
||||
@@ -324,7 +256,6 @@ Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com>
|
||||
Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr>
|
||||
|
||||
Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com>
|
||||
Julien Isorce <j.isorce@samsung.com> <jisorce@oblong.com>
|
||||
|
||||
Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com>
|
||||
|
||||
@@ -334,10 +265,6 @@ Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
|
||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
|
||||
|
||||
Karol Herbst <kherbst@redhat.com> <git@karolherbst.de>
|
||||
Karol Herbst <kherbst@redhat.com> <karolherbst@gmail.com>
|
||||
Karol Herbst <kherbst@redhat.com> <nouveau@karolherbst.de>
|
||||
|
||||
Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2>
|
||||
|
||||
Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com>
|
||||
@@ -346,8 +273,6 @@ Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com>
|
||||
Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com>
|
||||
Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
|
||||
|
||||
Kevin Rogovin <kevin.rogovin@intel.com> <kevin.rogovin@gmail.com>
|
||||
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
|
||||
@@ -356,18 +281,11 @@ Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@chromium.org>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@google.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@gmail.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sweater.jf.intel.com>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@bitplanet.net>
|
||||
Kristian Høgsberg <krh@bitplanet.net> <krh@owl.jf.intel.com>
|
||||
|
||||
Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io>
|
||||
|
||||
Li Peng <peng.li@intel.com> <peng.li@linux.intel.com>
|
||||
|
||||
Lionel Landwerlin <lionel.g.landwerlin@intel.com> <llandwerlin@gmail.com>
|
||||
|
||||
Liviu Prodea <liviuprodea@yahoo.com>
|
||||
|
||||
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
|
||||
|
||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl>
|
||||
@@ -376,8 +294,7 @@ Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.co
|
||||
|
||||
Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)>
|
||||
|
||||
Marc-André Lureau <marcandre.lureau@gmail.com> <marcandre.lureau@gmail.com>
|
||||
Marc-André Lureau <marcandre.lureau@gmail.com> <marcandre.lureau@redhat.com>
|
||||
Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com>
|
||||
|
||||
Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de>
|
||||
Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
|
||||
@@ -403,8 +320,6 @@ Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de>
|
||||
Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de>
|
||||
|
||||
Matthias Groß <grmat@sub.red>
|
||||
|
||||
Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk>
|
||||
|
||||
Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com>
|
||||
@@ -433,24 +348,17 @@ Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com>
|
||||
|
||||
Mike Stroyan <mike@lunarg.com> <mike@LunarG.com>
|
||||
|
||||
Neha Bhende <bhenden@vmware.com> <nbhende@vmware.com>
|
||||
|
||||
Neil Roberts <nroberts@igalia.com> <neil@linux.intel.com>
|
||||
|
||||
Nian Wu <nian.wu@intel.com>
|
||||
Nian Wu <nian.wu@intel.com> <nian@graphics.(none)>
|
||||
Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com>
|
||||
|
||||
Nicholas Bishop <nbishop@neverware.com> <nicholasbishop@gmail.com>
|
||||
|
||||
Nick Bowler <nbowler@draconx.ca>
|
||||
|
||||
Nick Sarnie <commendsarnex@gmail.com>
|
||||
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <prefect_@gmx.net>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <prefect@upb.de>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net>
|
||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de>
|
||||
|
||||
Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net>
|
||||
Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com>
|
||||
@@ -478,25 +386,14 @@ Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi>
|
||||
|
||||
Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au>
|
||||
|
||||
Philipp Zabel <p.zabel@pengutronix.de> <philipp.zabel@gmail.com>
|
||||
|
||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> <pelloux@gmail.com>
|
||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> <pierre-eric.pelloux-prayer@amd.com>
|
||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com>
|
||||
|
||||
Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de>
|
||||
|
||||
Plamena Manolova <plamena.manolova@intel.com> <plamena.n.manolova@gmail.com>
|
||||
|
||||
Qiang Yu <yuq825@gmail.com> <Qiang.Yu@amd.com>
|
||||
|
||||
Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net>
|
||||
|
||||
Randy Xu <randy.xu@intel.com>
|
||||
|
||||
RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com>
|
||||
|
||||
Renato Caldas <seventhguardian@gmail.com>
|
||||
|
||||
Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com>
|
||||
# The next ones are not 100% sure
|
||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)>
|
||||
@@ -507,7 +404,6 @@ Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com>
|
||||
|
||||
Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org>
|
||||
Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com>
|
||||
Rob Clark <robclark@freedesktop.org> <robdclark@chromium.org>
|
||||
|
||||
Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com>
|
||||
|
||||
@@ -516,8 +412,6 @@ Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com>
|
||||
|
||||
Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
|
||||
|
||||
Rodrigo Vivi <rodrigo.vivi@intel.com> <rodrigo.vivi@gmail.com>
|
||||
|
||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
|
||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
|
||||
|
||||
@@ -531,30 +425,18 @@ Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
|
||||
|
||||
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>
|
||||
|
||||
Samuel Li <samuel.li@amd.com> <Samuel.Li@amd.com>
|
||||
|
||||
Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org>
|
||||
|
||||
Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net>
|
||||
Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net>
|
||||
|
||||
Sergii Romantsov <sergii.romantsov@globallogic.com> <sergii.romantsov@gmail.com>
|
||||
|
||||
Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com>
|
||||
|
||||
Sonny Jiang <sonny.jiang@amd.com>
|
||||
|
||||
Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de>
|
||||
|
||||
Steinar H. Gunderson <sgunderson@bigfoot.com> <sesse@google.com>
|
||||
Steinar H. Gunderson <sgunderson@bigfoot.com> <steinar+mesa@gunderson.no>
|
||||
|
||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr>
|
||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com>
|
||||
|
||||
Suresh Guttula <suresh.guttula@amd.com>
|
||||
Suresh Guttula <suresh.guttula@amd.com> <Suresh.Guttula@amd.com>
|
||||
|
||||
Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco>
|
||||
|
||||
Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com>
|
||||
@@ -562,7 +444,6 @@ Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com>
|
||||
|
||||
Thierry Reding <treding@nvidia.com> <thierry@gilfi.de>
|
||||
Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de>
|
||||
Thierry Reding <treding@nvidia.com> <thierry.reding@gmail.com>
|
||||
|
||||
Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com>
|
||||
|
||||
@@ -578,38 +459,21 @@ Thomas Tanner <tanner@gmx.net> tanner <tanner>
|
||||
|
||||
Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org>
|
||||
|
||||
Tim Wiederhake <twied@gmx.net>
|
||||
|
||||
Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au>
|
||||
Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au>
|
||||
|
||||
Timo Aaltonen <tjaalton@debian.org> <tjaalton@cc.hut.fi>
|
||||
|
||||
Timothy Arceri <tarceri@itsqueeze.com> <tarceri@localhost.localdomain>
|
||||
Timothy Arceri <tarceri@itsqueeze.com> <timothy.arceri@collabora.com>
|
||||
|
||||
Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu>
|
||||
|
||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com>
|
||||
Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com>
|
||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@redhat.com>
|
||||
|
||||
Tomasz Figa <tfiga@chromium.org> <tomasz.figa@gmail.com>
|
||||
|
||||
Tomeu Vizoso <tomeu.vizoso@collabora.com> <tomeu@tomeuvizoso.net>
|
||||
|
||||
Topi Pohjolainen <topi.pohjolainen@intel.com> <topi.pohjolainen@gmail.com>
|
||||
|
||||
Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com>
|
||||
|
||||
Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com>
|
||||
Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
|
||||
|
||||
Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
|
||||
Vadym Shovkoplias <vadym.shovkoplias@globallogic.com> <vadim.shovkoplias@gmail.com>
|
||||
|
||||
Varad Gautam <varad.gautam@collabora.com> <varadgautam@gmail.com>
|
||||
|
||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
|
||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi>
|
||||
|
||||
@@ -617,20 +481,8 @@ Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com>
|
||||
|
||||
Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com>
|
||||
|
||||
Vivek Kasireddy <vivek.kasireddy@intel.com>
|
||||
|
||||
Yaakov Selkowitz <yselkowi@redhat.com> <yselkowitz@users.sourceforge.net>
|
||||
|
||||
Wladimir J. van der Laan <laanwj@gmail.com>
|
||||
|
||||
Xavier Bouchoux <xavierb@gmail.com>
|
||||
|
||||
Zhaowei Yuan <zhaowei.yuan@samsung.com>
|
||||
|
||||
Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com>
|
||||
|
||||
Zhongmin Wu <zhongmin.wu@intel.com>
|
||||
|
||||
Zack Rusin <zackr@vmware.com> <zack@kde.org>
|
||||
Zack Rusin <zackr@vmware.com> <zack@pixel.(none)>
|
||||
Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com>
|
||||
|
61870
.pick_status.json
61870
.pick_status.json
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user