Compare commits
154 Commits
20.1
...
mesa-20.0.
Author | SHA1 | Date | |
---|---|---|---|
|
53b2b224dc | ||
|
bc67340ea5 | ||
|
1defcf02b4 | ||
|
3d203789a9 | ||
|
5620cd4bca | ||
|
fe1ba4a041 | ||
|
d808374674 | ||
|
e7b8a304bd | ||
|
dd4df57ad9 | ||
|
131136ab99 | ||
|
54574288a1 | ||
|
eb4a39ba2f | ||
|
d0a1bc1c21 | ||
|
6f9a26ac25 | ||
|
8334c60cba | ||
|
a14b7adabd | ||
|
9fc39b9c67 | ||
|
710388f006 | ||
|
c2f6f63f7b | ||
|
69edb32eaa | ||
|
f1ec137ec9 | ||
|
981b2b6241 | ||
|
eb0f6e3ab8 | ||
|
bb589b48eb | ||
|
3aafc6ab8f | ||
|
0942c41582 | ||
|
8a9f1293b8 | ||
|
5f0ae1f0b4 | ||
|
0d189290f0 | ||
|
c38d7f390d | ||
|
9f45639452 | ||
|
47bfaa8795 | ||
|
956a9c7d2a | ||
|
20e6bcea31 | ||
|
16615264b2 | ||
|
555bf5f991 | ||
|
c2dac5a508 | ||
|
01929a5d90 | ||
|
b5b626396e | ||
|
9243bbc9f9 | ||
|
5d48c29658 | ||
|
d7f95b226b | ||
|
23043719f7 | ||
|
4fbaecd768 | ||
|
91de922c7f | ||
|
410dad2eb4 | ||
|
4d3f535ebb | ||
|
5a7ae6be76 | ||
|
5adcb0a62a | ||
|
01020aef25 | ||
|
d43407e622 | ||
|
760b8cfd1c | ||
|
5376a79962 | ||
|
d499e9b4e2 | ||
|
387ee33305 | ||
|
cdc4ea1496 | ||
|
0d9f4578d6 | ||
|
16c364aaf0 | ||
|
9abde3412d | ||
|
dfdfddc4bb | ||
|
604fa0dcad | ||
|
555cb9e7d2 | ||
|
a06fc57fda | ||
|
f27e5d9df5 | ||
|
52714f58ff | ||
|
01dab4b7fe | ||
|
3b65640ea5 | ||
|
e6d598b69f | ||
|
5188cd51e2 | ||
|
96052fdc24 | ||
|
fa5b4bb2df | ||
|
5df7a39c1b | ||
|
d92cf57345 | ||
|
5547fc53c0 | ||
|
99d3ad1c71 | ||
|
0dce180b43 | ||
|
1a35b3d286 | ||
|
ed90606831 | ||
|
ea43cc6702 | ||
|
edcc8ba73a | ||
|
6aacd69a02 | ||
|
1c0b76a382 | ||
|
a429930e0a | ||
|
5c0a93b6eb | ||
|
0e0abec7b6 | ||
|
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
|
||||
@@ -50,9 +183,13 @@ dEQP-GLES2.functional.shaders.random.trigonometric.fragment.65
|
||||
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,9 +9,16 @@ 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.default_vertex_attrib.float.vertex_attrib_1f
|
||||
dEQP-GLES2.functional.default_vertex_attrib.float.vertex_attrib_2f
|
||||
dEQP-GLES2.functional.default_vertex_attrib.float.vertex_attrib_3f
|
||||
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
|
||||
@@ -21,11 +28,18 @@ 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
|
||||
|
||||
# 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>
|
||||
|
63911
.pick_status.json
63911
.pick_status.json
File diff suppressed because it is too large
Load Diff
@@ -39,7 +39,7 @@ LOCAL_CFLAGS += \
|
||||
-Wno-initializer-overrides \
|
||||
-Wno-mismatched-tags \
|
||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
||||
-DPACKAGE_BUGREPORT=\"https://gitlab.freedesktop.org/mesa/mesa/-/issues\"
|
||||
-DPACKAGE_BUGREPORT=\"https://gitlab.freedesktop.org/mesa/mesa/issues\"
|
||||
|
||||
# XXX: The following __STDC_*_MACROS defines should not be needed.
|
||||
# It's likely due to a bug elsewhere, but let's temporarily add them
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user