Compare commits
195 Commits
mesa-22.0.
...
mesa-21.3.
Author | SHA1 | Date | |
---|---|---|---|
|
9a33ae9467 | ||
|
9ca91d9bbe | ||
|
b7ac49468b | ||
|
02dc554b21 | ||
|
a6c713f8c5 | ||
|
ca307d8cbf | ||
|
6e1de95860 | ||
|
503321ea7d | ||
|
dc7bccdb54 | ||
|
565a14d7ed | ||
|
5275563df4 | ||
|
f2de11b926 | ||
|
90486b44ae | ||
|
ca3f3318e4 | ||
|
9586feff54 | ||
|
ffb3ab4d7a | ||
|
5380104201 | ||
|
db338002c7 | ||
|
fdc6d4dc95 | ||
|
a728b8a732 | ||
|
764e965f37 | ||
|
c0d6fbba8e | ||
|
eb2f43553a | ||
|
a4ba277451 | ||
|
44b5b83593 | ||
|
3327295498 | ||
|
0f40fdd4d9 | ||
|
6108b3c7f2 | ||
|
e5b1bee339 | ||
|
766c57480b | ||
|
7970a4a9a8 | ||
|
b726997029 | ||
|
b5ebe0ec36 | ||
|
6bbf2110db | ||
|
e426a9e586 | ||
|
caf9593d4b | ||
|
7fd2714ddb | ||
|
49a49fd20c | ||
|
bdc8f04620 | ||
|
1ae6279081 | ||
|
4fd4c41c9e | ||
|
03ee3a9dd0 | ||
|
198f6463ee | ||
|
f4fe896423 | ||
|
8b4c231932 | ||
|
546a870459 | ||
|
84140c8792 | ||
|
20f076e6b7 | ||
|
2f542d2fba | ||
|
e7164ad154 | ||
|
2075a86ba2 | ||
|
7a23cf05a4 | ||
|
5b0ab532d4 | ||
|
8b46e23ef2 | ||
|
4286b1ebed | ||
|
3fc4ccde2d | ||
|
82fbb4bae8 | ||
|
8ed29c36eb | ||
|
3ca9c9c2d9 | ||
|
4ed9a049a1 | ||
|
7952aef95e | ||
|
a8c7745109 | ||
|
c8b1a34daf | ||
|
f7206f1cde | ||
|
0a246ea9f1 | ||
|
3744fd7ba8 | ||
|
cacf726669 | ||
|
61c78021b3 | ||
|
f5e4a3ee15 | ||
|
3edcd42bea | ||
|
c9fd70a573 | ||
|
2fd37402de | ||
|
5ac869f56c | ||
|
01009ce54a | ||
|
6789fa1600 | ||
|
c88f0087e6 | ||
|
b99dc621ec | ||
|
ced465b4e0 | ||
|
65f82f8b2d | ||
|
bab79aec38 | ||
|
f03f1b58a4 | ||
|
93aa5eb0a1 | ||
|
9687c4dfa2 | ||
|
d251318ea5 | ||
|
15751fbdf7 | ||
|
d3efbf9c64 | ||
|
1146a8ef50 | ||
|
371a73a602 | ||
|
2daf26c7e1 | ||
|
d5228dcd84 | ||
|
d901368b1b | ||
|
4a471ea160 | ||
|
bca13e8fc8 | ||
|
3e826c339c | ||
|
2b4ae31cec | ||
|
23ad2decbb | ||
|
a78bb23c0e | ||
|
7495998ce2 | ||
|
ce3598d34b | ||
|
ff163eeb64 | ||
|
9b5b2e2d80 | ||
|
2209023f6e | ||
|
2b89108e48 | ||
|
f4698f6105 | ||
|
6b6f321e28 | ||
|
3f46f53781 | ||
|
1640e3e2e9 | ||
|
ed5c8bb1d2 | ||
|
b255dbcdd9 | ||
|
00fcc6c6ae | ||
|
8c90f6ca3d | ||
|
a3ba864e7f | ||
|
88da00b28b | ||
|
d57b43827a | ||
|
d8b39ba136 | ||
|
42d1e477a8 | ||
|
bb9bdc4b73 | ||
|
f199962c4d | ||
|
bf2e533688 | ||
|
627659b6af | ||
|
b4506d1cc2 | ||
|
852c6bb9d2 | ||
|
59b59c586b | ||
|
8cb060c374 | ||
|
25b007d7a9 | ||
|
a82babccd1 | ||
|
e4dc69796e | ||
|
737c9a7dcf | ||
|
7264cc5cd4 | ||
|
4d88c19510 | ||
|
b6f0a4c11d | ||
|
a63104a7d8 | ||
|
734011012f | ||
|
2ac3a3b5e9 | ||
|
40eb47924e | ||
|
e97caaf452 | ||
|
1b87d41d73 | ||
|
14f88aaca3 | ||
|
fd3f846f4f | ||
|
ddcf4a13f2 | ||
|
f97f9253b6 | ||
|
2569f415f2 | ||
|
03b36e3efb | ||
|
61244fad74 | ||
|
664cc248b3 | ||
|
fa24bfb914 | ||
|
d9cdad377d | ||
|
ebf218158c | ||
|
d558fe4c75 | ||
|
25a09a9879 | ||
|
af0c678a3c | ||
|
b68088b110 | ||
|
b829dc1a3a | ||
|
bb763eee16 | ||
|
7976828ae3 | ||
|
f8b5444a09 | ||
|
f1b779361c | ||
|
d797e98b6f | ||
|
9aaf29b938 | ||
|
97a30b2d21 | ||
|
1771a7da08 | ||
|
5532c4267f | ||
|
80305d7c2e | ||
|
356cac1c29 | ||
|
b28da95fa4 | ||
|
28261505d6 | ||
|
b67308a449 | ||
|
2d6c11843d | ||
|
ca1c300ecd | ||
|
ed1db8e8ca | ||
|
4504abe511 | ||
|
d19e28c139 | ||
|
983cccf757 | ||
|
7456331987 | ||
|
bac2dd958a | ||
|
121f0528a7 | ||
|
3c0c2465f3 | ||
|
118131c071 | ||
|
b7942e3134 | ||
|
7cddbaab2d | ||
|
2dcee84ce3 | ||
|
9b68854c2e | ||
|
071ce0bbc7 | ||
|
8876a87565 | ||
|
9c7e483a1c | ||
|
0969e1247c | ||
|
3f61f84fe3 | ||
|
5c3159e088 | ||
|
45a9fd6acb | ||
|
81fe3260e0 | ||
|
70cd17bbf1 | ||
|
2b77d8afa7 | ||
|
f774768d17 | ||
|
1cf264d89d | ||
|
2dc6aa567f |
6
.gitattributes
vendored
6
.gitattributes
vendored
@@ -1,6 +0,0 @@
|
||||
*.csv eol=crlf
|
||||
* text=auto
|
||||
*.jpg binary
|
||||
*.png binary
|
||||
*.gif binary
|
||||
*.ico binary
|
266
.gitlab-ci.yml
266
.gitlab-ci.yml
@@ -3,9 +3,7 @@ variables:
|
||||
MESA_TEMPLATES_COMMIT: &ci-templates-commit 290b79e0e78eab67a83766f4e9691be554fc4afd
|
||||
CI_PRE_CLONE_SCRIPT: |-
|
||||
set -o xtrace
|
||||
wget -q -O download-git-cache.sh ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh
|
||||
bash download-git-cache.sh
|
||||
rm download-git-cache.sh
|
||||
/usr/bin/wget -q -O- ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | bash -
|
||||
set +o xtrace
|
||||
MINIO_HOST: minio-packet.freedesktop.org
|
||||
# per-pipeline artifact storage on MinIO
|
||||
@@ -18,25 +16,9 @@ variables:
|
||||
# running on a particular CI farm (ie. for outages, etc):
|
||||
FD_FARM: "online"
|
||||
|
||||
default:
|
||||
before_script:
|
||||
- echo -e "\e[0Ksection_start:$(date +%s):unset_env_vars_section[collapsed=true]\r\e[0KUnsetting vulnerable environment variables"
|
||||
- export CI_JOB_JWT_FILE="${CI_JOB_JWT_FILE:-$(mktemp)}"
|
||||
- echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}"
|
||||
- unset CI_JOB_JWT
|
||||
- echo -e "\e[0Ksection_end:$(date +%s):unset_env_vars_section\r\e[0K"
|
||||
|
||||
after_script:
|
||||
- >
|
||||
set +x
|
||||
|
||||
test -e "${CI_JOB_JWT_FILE}" &&
|
||||
export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
|
||||
rm "${CI_JOB_JWT_FILE}"
|
||||
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: 34f4ade99434043f88e164933f570301fd18b125
|
||||
ref: 79c325922670137e8f0a4dc5f6f097e0eb57c1af
|
||||
file:
|
||||
- '/templates/ci-fairy.yml'
|
||||
- project: 'freedesktop/ci-templates'
|
||||
@@ -44,15 +26,12 @@ include:
|
||||
file:
|
||||
- '/templates/debian.yml'
|
||||
- '/templates/fedora.yml'
|
||||
- local: '.gitlab-ci/image-tags.yml'
|
||||
- local: '.gitlab-ci/lava/lava-gitlab-ci.yml'
|
||||
- local: '.gitlab-ci/test-source-dep.yml'
|
||||
- local: 'src/amd/ci/gitlab-ci.yml'
|
||||
- local: 'src/broadcom/ci/gitlab-ci.yml'
|
||||
- local: 'src/etnaviv/ci/gitlab-ci.yml'
|
||||
- local: 'src/freedreno/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/crocus/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/d3d12/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/i915/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/iris/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/lima/ci/gitlab-ci.yml'
|
||||
@@ -62,8 +41,6 @@ include:
|
||||
- local: 'src/gallium/drivers/virgl/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/zink/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/frontends/lavapipe/ci/gitlab-ci.yml'
|
||||
- local: 'src/intel/ci/gitlab-ci.yml'
|
||||
- local: 'src/microsoft/ci/gitlab-ci.yml'
|
||||
- local: 'src/panfrost/ci/gitlab-ci.yml'
|
||||
|
||||
stages:
|
||||
@@ -313,14 +290,14 @@ debian/x86_build-base:
|
||||
- .fdo.container-build@debian
|
||||
- .container
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_build-base ${DEBIAN_BASE_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_build-base "2021-07-26-python"
|
||||
|
||||
.use-debian/x86_build-base:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .use-base-image
|
||||
variables:
|
||||
MESA_BASE_IMAGE: ${DEBIAN_X86_BUILD_BASE_IMAGE}
|
||||
MESA_BASE_IMAGE: "debian/x86_build-base"
|
||||
MESA_BASE_TAG: *debian-x86_build-base
|
||||
MESA_ARTIFACTS_BASE_TAG: *debian-x86_build-base
|
||||
needs:
|
||||
@@ -331,14 +308,14 @@ debian/x86_build:
|
||||
extends:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_build ${DEBIAN_BUILD_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_build "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/x86_build:
|
||||
extends:
|
||||
- .set-image-base-tag
|
||||
variables:
|
||||
MESA_BASE_TAG: *debian-x86_build-base
|
||||
MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_IMAGE_PATH}
|
||||
MESA_IMAGE_PATH: "debian/x86_build"
|
||||
MESA_IMAGE_TAG: *debian-x86_build
|
||||
needs:
|
||||
- debian/x86_build
|
||||
@@ -348,7 +325,7 @@ debian/i386_build:
|
||||
extends:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-i386_build ${DEBIAN_BUILD_TAG}
|
||||
MESA_IMAGE_TAG: &debian-i386_build "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/i386_build:
|
||||
extends:
|
||||
@@ -365,7 +342,7 @@ debian/ppc64el_build:
|
||||
extends:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG}
|
||||
MESA_IMAGE_TAG: &debian-ppc64el_build "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/ppc64el_build:
|
||||
extends:
|
||||
@@ -382,7 +359,7 @@ debian/s390x_build:
|
||||
extends:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG}
|
||||
MESA_IMAGE_TAG: &debian-s390x_build "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/s390x_build:
|
||||
extends:
|
||||
@@ -399,7 +376,7 @@ debian/android_build:
|
||||
extends:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG}
|
||||
MESA_IMAGE_TAG: &debian-android_build "2021-10-26-static-libstdcxx"
|
||||
|
||||
.use-debian/android_build:
|
||||
extends:
|
||||
@@ -415,14 +392,14 @@ debian/android_build:
|
||||
debian/x86_test-base:
|
||||
extends: debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_test-base ${DEBIAN_BASE_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_test-base "2021-10-15-va"
|
||||
|
||||
.use-debian/x86_test-base:
|
||||
extends:
|
||||
- .fdo.container-build@debian
|
||||
- .use-base-image
|
||||
variables:
|
||||
MESA_BASE_IMAGE: ${DEBIAN_X86_TEST_BASE_IMAGE}
|
||||
MESA_BASE_IMAGE: "debian/x86_test-base"
|
||||
MESA_BASE_TAG: *debian-x86_test-base
|
||||
needs:
|
||||
- debian/x86_test-base
|
||||
@@ -432,14 +409,14 @@ debian/x86_test-gl:
|
||||
extends: .use-debian/x86_test-base
|
||||
variables:
|
||||
FDO_DISTRIBUTION_EXEC: 'env KERNEL_URL=${KERNEL_URL} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
||||
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.16-for-mesa-ci-bd8b344492bfd/linux-v5.16-for-mesa-ci-bd8b344492bfd.tar.bz2"
|
||||
MESA_IMAGE_TAG: &debian-x86_test-gl ${DEBIAN_X86_TEST_GL_TAG}
|
||||
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.15-for-mesa-ci-540a4af22d71/linux-v5.15-for-mesa-ci-540a4af22d71.tar.bz2"
|
||||
MESA_IMAGE_TAG: &debian-x86_test-gl "2021-11-02-lazor"
|
||||
|
||||
# Debian 11 based x86 test image for VK
|
||||
debian/x86_test-vk:
|
||||
extends: .use-debian/x86_test-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_test-vk ${DEBIAN_X86_TEST_VK_TAG}
|
||||
MESA_IMAGE_TAG: &debian-x86_test-vk "2021-2021-10-15-va"
|
||||
|
||||
# Debian 11 based ARM build image
|
||||
debian/arm_build:
|
||||
@@ -449,7 +426,7 @@ debian/arm_build:
|
||||
tags:
|
||||
- aarch64
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm_build ${DEBIAN_BASE_TAG}
|
||||
MESA_IMAGE_TAG: &debian-arm_build "2021-07-26-python"
|
||||
|
||||
.use-debian/arm_build:
|
||||
extends:
|
||||
@@ -469,7 +446,7 @@ fedora/x86_build:
|
||||
- .container
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: 34
|
||||
MESA_IMAGE_TAG: &fedora-x86_build ${FEDORA_X86_BUILD_TAG}
|
||||
MESA_IMAGE_TAG: &fedora-x86_build "2021-07-08-bump-libdrm"
|
||||
|
||||
.use-fedora/x86_build:
|
||||
extends:
|
||||
@@ -488,7 +465,7 @@ fedora/x86_build:
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
KERNEL_URL: *kernel-rootfs-url
|
||||
MESA_ROOTFS_TAG: &kernel-rootfs ${KERNEL_ROOTFS_TAG}
|
||||
MESA_ROOTFS_TAG: &kernel-rootfs "2021-11-02-lazor"
|
||||
DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
script:
|
||||
- .gitlab-ci/container/lava_build.sh
|
||||
@@ -542,7 +519,7 @@ debian/arm_test:
|
||||
FDO_DISTRIBUTION_EXEC: 'env ARTIFACTS_PREFIX=https://${MINIO_HOST}/mesa-lava ARTIFACTS_SUFFIX=${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT} CI_PROJECT_PATH=${CI_PROJECT_PATH} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
||||
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
MESA_ARM_BUILD_TAG: *debian-arm_build
|
||||
MESA_IMAGE_TAG: &debian-arm_test ${DEBIAN_BASE_TAG}
|
||||
MESA_IMAGE_TAG: &debian-arm_test "2021-09-17-deqp"
|
||||
MESA_ROOTFS_TAG: *kernel-rootfs
|
||||
|
||||
.use-debian/arm_test:
|
||||
@@ -568,78 +545,36 @@ debian/arm_test:
|
||||
# then in the build stage by executing inside Docker.
|
||||
|
||||
.windows-docker-vs2019:
|
||||
extends:
|
||||
- .set-image
|
||||
variables:
|
||||
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}"
|
||||
MESA_IMAGE_PATH: "windows/x64_build"
|
||||
MESA_IMAGE_TAG: "2021-06-24-zink-msvc"
|
||||
MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}"
|
||||
|
||||
.windows_container_build:
|
||||
inherit:
|
||||
default: false
|
||||
windows_build_vs2019:
|
||||
extends:
|
||||
- .container
|
||||
- .windows-docker-vs2019
|
||||
stage: container
|
||||
variables:
|
||||
GIT_STRATEGY: fetch # we do actually need the full repository though
|
||||
MESA_BASE_IMAGE: None
|
||||
timeout: 2h 30m # LLVM + piglit takes ages
|
||||
tags:
|
||||
- windows
|
||||
- shell
|
||||
- "1809"
|
||||
- mesa
|
||||
script:
|
||||
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE ${DOCKERFILE} ${MESA_BASE_IMAGE}
|
||||
|
||||
windows_build_vs2019:
|
||||
inherit:
|
||||
default: false
|
||||
extends:
|
||||
- .windows_container_build
|
||||
variables:
|
||||
MESA_IMAGE_PATH: &windows_build_image_path ${WINDOWS_X64_BUILD_PATH}
|
||||
MESA_IMAGE_TAG: &windows_build_image_tag ${WINDOWS_X64_BUILD_TAG}
|
||||
DOCKERFILE: Dockerfile_build
|
||||
timeout: 2h 30m # LLVM takes ages
|
||||
|
||||
windows_test_vs2019:
|
||||
inherit:
|
||||
default: false
|
||||
extends:
|
||||
- .windows_container_build
|
||||
# Don't want the .container rules
|
||||
- .ci-run-policy
|
||||
variables:
|
||||
MESA_IMAGE_PATH: &windows_test_image_path ${WINDOWS_X64_TEST_PATH}
|
||||
MESA_IMAGE_TAG: &windows_test_image_tag ${WINDOWS_X64_BUILD_TAG}--${WINDOWS_X64_TEST_TAG}
|
||||
DOCKERFILE: Dockerfile_test
|
||||
# Right now this only needs the VS install to get DXIL.dll. Maybe see about decoupling this at some point
|
||||
MESA_BASE_IMAGE_PATH: *windows_build_image_path
|
||||
MESA_BASE_IMAGE_TAG: *windows_build_image_tag
|
||||
MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${MESA_BASE_IMAGE_TAG}"
|
||||
script:
|
||||
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE Dockerfile_test ${MESA_BASE_IMAGE}
|
||||
needs:
|
||||
- windows_build_vs2019
|
||||
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE
|
||||
|
||||
.use-windows_build_vs2019:
|
||||
inherit:
|
||||
default: false
|
||||
extends: .windows-docker-vs2019
|
||||
image: "$MESA_IMAGE"
|
||||
variables:
|
||||
MESA_IMAGE_PATH: *windows_build_image_path
|
||||
MESA_IMAGE_TAG: *windows_build_image_tag
|
||||
needs:
|
||||
- windows_build_vs2019
|
||||
|
||||
.use-windows_test_vs2019:
|
||||
inherit:
|
||||
default: false
|
||||
extends: .windows-docker-vs2019
|
||||
image: "$MESA_IMAGE"
|
||||
variables:
|
||||
MESA_IMAGE_PATH: *windows_test_image_path
|
||||
MESA_IMAGE_TAG: *windows_test_image_tag
|
||||
|
||||
|
||||
# Git archive
|
||||
|
||||
@@ -659,8 +594,8 @@ make git archive:
|
||||
# compress the current folder
|
||||
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
|
||||
|
||||
# login with the JWT token file
|
||||
- ci-fairy minio login --token-file "${CI_JOB_JWT_FILE}"
|
||||
# login with the JWT token
|
||||
- ci-fairy minio login $CI_JOB_JWT
|
||||
- ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://$MINIO_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
|
||||
|
||||
|
||||
@@ -708,13 +643,11 @@ sanity:
|
||||
CCACHE_DIR: /cache/mesa/ccache
|
||||
# Use ccache transparently, and print stats before/after
|
||||
before_script:
|
||||
- !reference [default, before_script]
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- export CCACHE_BASEDIR="$PWD"
|
||||
- ccache --show-stats
|
||||
after_script:
|
||||
- ccache --show-stats
|
||||
- !reference [default, after_script]
|
||||
|
||||
.build-windows:
|
||||
extends: .build-common
|
||||
@@ -752,8 +685,8 @@ debian-testing:
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-va=enabled
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915"
|
||||
VULKAN_DRIVERS: "swrast,amd,intel"
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,iris,i915"
|
||||
VULKAN_DRIVERS: "swrast,amd"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
-D valgrind=false
|
||||
@@ -771,28 +704,9 @@ debian-testing-asan:
|
||||
EXTRA_OPTION: >
|
||||
-D b_sanitize=address
|
||||
-D valgrind=false
|
||||
-D tools=dlclose-skip
|
||||
MINIO_ARTIFACT_NAME: ""
|
||||
ARTIFACTS_DEBUG_SYMBOLS: 1
|
||||
|
||||
debian-testing-msan:
|
||||
extends:
|
||||
- debian-clang
|
||||
variables:
|
||||
# l_undef is incompatible with msan
|
||||
EXTRA_OPTION:
|
||||
-D b_sanitize=memory
|
||||
-D b_lundef=false
|
||||
MINIO_ARTIFACT_NAME: ""
|
||||
ARTIFACTS_DEBUG_SYMBOLS: 1
|
||||
# Don't run all the tests yet:
|
||||
# GLSL has some issues in sexpression reading.
|
||||
# gtest has issues in its test initialization.
|
||||
MESON_TEST_ARGS: "--suite glcpp --suite gallium --suite format"
|
||||
# Freedreno dropped because freedreno tools fail at msan.
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
||||
VULKAN_DRIVERS: intel,amd,broadcom,virtio-experimental
|
||||
|
||||
debian-clover-testing:
|
||||
extends:
|
||||
- .meson-build
|
||||
@@ -833,7 +747,7 @@ debian-gallium:
|
||||
-D gallium-xa=enabled
|
||||
-D gallium-nine=true
|
||||
-D gallium-opencl=disabled
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
||||
VULKAN_DRIVERS: swrast
|
||||
EXTRA_OPTION: >
|
||||
-D osmesa=true
|
||||
@@ -885,6 +799,7 @@ fedora-release:
|
||||
-Wno-error=uninitialized
|
||||
CPP_ARGS: >
|
||||
-Wno-error=array-bounds
|
||||
DRI_DRIVERS: "nouveau,i915,i965,r100,r200"
|
||||
DRI_LOADERS: >
|
||||
-D glx=dri
|
||||
-D gbm=enabled
|
||||
@@ -925,15 +840,20 @@ debian-android:
|
||||
variables:
|
||||
UNWIND: "disabled"
|
||||
C_ARGS: >
|
||||
-Wno-error=absolute-value
|
||||
-Wno-error=asm-operand-widths
|
||||
-Wno-error=constant-conversion
|
||||
-Wno-error=enum-conversion
|
||||
-Wno-error=extern-initializer
|
||||
-Wno-error=initializer-overrides
|
||||
-Wno-error=missing-braces
|
||||
-Wno-error=sometimes-uninitialized
|
||||
-Wno-error=tautological-constant-out-of-range-compare
|
||||
-Wno-error=unused-function
|
||||
-Wno-error=unused-label
|
||||
CPP_ARGS: >
|
||||
-Wno-error=deprecated-declarations
|
||||
-Wno-error=non-virtual-dtor
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D gbm=disabled
|
||||
@@ -959,10 +879,9 @@ debian-android:
|
||||
- PKG_CONFIG_PATH=/usr/local/lib/aarch64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/pkgconfig/ CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio-experimental .gitlab-ci/meson/build.sh
|
||||
# x86_64 build:
|
||||
# Can't do Intel because gen_decoder.c currently requires libexpat, which
|
||||
# is not a dependency that AOSP wants to accept. Can't do Radeon Gallium
|
||||
# drivers because they requires LLVM, which we don't have an Android build
|
||||
# of.
|
||||
- PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=amd,intel .gitlab-ci/meson/build.sh
|
||||
# is not a dependency that AOSP wants to accept. Can't do Radeon because
|
||||
# it requires LLVM, which we don't have an Android build of.
|
||||
- PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=intel .gitlab-ci/meson/build.sh
|
||||
|
||||
.meson-cross:
|
||||
extends:
|
||||
@@ -1036,7 +955,6 @@ debian-arm64-asan:
|
||||
-D llvm=disabled
|
||||
-D b_sanitize=address
|
||||
-D valgrind=false
|
||||
-D tools=dlclose-skip
|
||||
ARTIFACTS_DEBUG_SYMBOLS: 1
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
||||
MESON_TEST_ARGS: "--no-suite mesa:compiler"
|
||||
@@ -1057,25 +975,46 @@ debian-clang:
|
||||
variables:
|
||||
UNWIND: "enabled"
|
||||
C_ARGS: >
|
||||
-Wno-error=absolute-value
|
||||
-Wno-error=constant-conversion
|
||||
-Wno-error=constant-logical-operand
|
||||
-Wno-error=enum-conversion
|
||||
-Wno-error=gnu-variable-sized-type-not-at-end
|
||||
-Wno-error=implicit-const-int-float-conversion
|
||||
-Wno-error=initializer-overrides
|
||||
-Wno-error=sometimes-uninitialized
|
||||
-Wno-error=unused-function
|
||||
CPP_ARGS: >
|
||||
-Wno-error=c99-designator
|
||||
-Wno-error=deprecated-declarations
|
||||
-Wno-error=implicit-const-int-float-conversion
|
||||
-Wno-error=misleading-indentation
|
||||
-Wno-error=mismatched-tags
|
||||
-Wno-error=missing-braces
|
||||
-Wno-error=overloaded-virtual
|
||||
-Wno-error=self-assign
|
||||
-Wno-error=sometimes-uninitialized
|
||||
-Wno-error=tautological-constant-compare
|
||||
-Wno-error=tautological-constant-out-of-range-compare
|
||||
-Wno-error=tautological-overlap-compare
|
||||
-Wno-error=typedef-redefinition
|
||||
-Wno-error=unused-function
|
||||
-Wno-error=unused-private-field
|
||||
-Wno-error=xor-used-as-pow
|
||||
CPP_ARGS: >
|
||||
-Wno-error=c99-designator
|
||||
-Wno-error=constant-logical-operand
|
||||
-Wno-error=deprecated-declarations
|
||||
-Wno-error=implicit-const-int-float-conversion
|
||||
-Wno-error=mismatched-tags
|
||||
-Wno-error=missing-braces
|
||||
-Wno-error=overloaded-virtual
|
||||
-Wno-error=self-assign
|
||||
-Wno-error=sometimes-uninitialized
|
||||
-Wno-error=tautological-constant-out-of-range-compare
|
||||
-Wno-error=unused-const-variable
|
||||
-Wno-error=unused-private-field
|
||||
-Wno-error=unused-value
|
||||
-Wno-error=unused-variable
|
||||
DRI_LOADERS: >
|
||||
-D glvnd=true
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi"
|
||||
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental,swrast,panfrost
|
||||
DRI_DRIVERS: "auto"
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
||||
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
|
||||
@@ -1092,6 +1031,29 @@ windows-vs2019:
|
||||
- _build/meson-logs/*.txt
|
||||
- _install/
|
||||
|
||||
test-d3d12-windows:
|
||||
extends:
|
||||
- .build-windows
|
||||
- .use-windows_build_vs2019
|
||||
- .windows-test-rules
|
||||
stage: layered-backends
|
||||
dependencies:
|
||||
- windows-vs2019
|
||||
needs:
|
||||
- windows-vs2019
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
GALLIUM_DRIVER: d3d12
|
||||
PIGLIT_PROFILE: quick_gl
|
||||
PIGLIT_TESTS: -x nv_copy_depth_to_color -x repeat-wait -x arb_timer_query@timestamp-get
|
||||
script:
|
||||
- . _install/piglit_run.ps1
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
paths:
|
||||
- summary/
|
||||
|
||||
debian-clover:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
@@ -1152,6 +1114,7 @@ debian-i386:
|
||||
CROSS: i386
|
||||
VULKAN_DRIVERS: intel,amd,swrast,virtio-experimental
|
||||
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus"
|
||||
DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-layers=device-select,overlay
|
||||
|
||||
@@ -1188,6 +1151,7 @@ debian-mingw32-x86_64:
|
||||
-Wno-error=format
|
||||
-Wno-error=format-extra-args
|
||||
CPP_ARGS: $C_ARGS
|
||||
DRI_DRIVERS: ""
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
EXTRA_OPTION: >
|
||||
-Dllvm=disabled
|
||||
@@ -1203,7 +1167,6 @@ debian-mingw32-x86_64:
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
before_script:
|
||||
- !reference [default, before_script]
|
||||
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
||||
- rm -rf install
|
||||
- tar -xf artifacts/install.tar
|
||||
@@ -1220,7 +1183,7 @@ debian-mingw32-x86_64:
|
||||
- .set-image-base-tag
|
||||
variables:
|
||||
MESA_BASE_TAG: *debian-x86_test-base
|
||||
MESA_IMAGE_PATH: ${DEBIAN_X86_TEST_IMAGE_PATH}
|
||||
MESA_IMAGE_PATH: "debian/x86_test-gl"
|
||||
MESA_IMAGE_TAG: *debian-x86_test-gl
|
||||
needs:
|
||||
- debian/x86_test-gl
|
||||
@@ -1262,16 +1225,15 @@ debian-mingw32-x86_64:
|
||||
|
||||
.piglit-test:
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
paths:
|
||||
- results
|
||||
reports:
|
||||
junit: results/junit.xml
|
||||
- results/summary/
|
||||
- results/*.txt
|
||||
variables:
|
||||
PIGLIT_NO_WINDOW: 1
|
||||
HWCI_TEST_SCRIPT: "/install/piglit/piglit-runner.sh"
|
||||
script:
|
||||
- install/piglit/piglit-runner.sh
|
||||
- install/piglit/run.sh
|
||||
|
||||
.piglit-traces-test:
|
||||
extends:
|
||||
@@ -1285,15 +1247,11 @@ debian-mingw32-x86_64:
|
||||
name: "mesa_${CI_JOB_NAME}"
|
||||
reports:
|
||||
junit: results/junit.xml
|
||||
paths:
|
||||
- results/summary/
|
||||
- results/*.txt
|
||||
variables:
|
||||
CI_JOB_JWT_FILE: /minio_jwt # JWT file on piglit jobs should be available on / partition
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_host=minio-packet.freedesktop.org --minio_bucket=mesa-tracie-public --role-session-name=${CI_PROJECT_PATH}:${CI_JOB_ID} --jwt-file=${CI_JOB_JWT_FILE}
|
||||
CI_JOB_JWT_FILE: /minio_jwt # JWT file on piglit jobs should be available on / partition
|
||||
script:
|
||||
- install/piglit/piglit-traces.sh
|
||||
PIGLIT_PROFILES: replay
|
||||
PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
|
||||
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_host=minio-packet.freedesktop.org --minio_bucket=mesa-tracie-public --role-session-name=${CI_PROJECT_PATH}:${CI_JOB_ID} --jwt=${CI_JOB_JWT}
|
||||
PIGLIT_JUNIT_RESULTS: 1
|
||||
|
||||
.deqp-test:
|
||||
script:
|
||||
@@ -1358,7 +1316,6 @@ debian-mingw32-x86_64:
|
||||
interruptible: true
|
||||
stage: test
|
||||
before_script:
|
||||
- !reference [default, before_script]
|
||||
# Use this instead of gitlab's artifacts download because it hits packet.net
|
||||
# instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to
|
||||
# improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for
|
||||
@@ -1379,19 +1336,11 @@ debian-mingw32-x86_64:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
variables:
|
||||
BM_ROOTFS: /rootfs-armhf
|
||||
MINIO_ARTIFACT_NAME: mesa-armhf
|
||||
|
||||
.baremetal-test-arm64:
|
||||
extends:
|
||||
- .baremetal-test
|
||||
variables:
|
||||
BM_ROOTFS: /rootfs-arm64
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64
|
||||
|
||||
.baremetal-arm64-asan-test:
|
||||
variables:
|
||||
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.6:/install/lib/libdlclose-skip.so"
|
||||
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.6"
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
||||
needs:
|
||||
- debian/arm_test
|
||||
@@ -1402,8 +1351,3 @@ debian-mingw32-x86_64:
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
FDO_CI_CONCURRENT: 0 # Default to number of CPUs
|
||||
|
||||
.baremetal-skqp-test:
|
||||
variables:
|
||||
HWCI_START_XORG: 1
|
||||
HWCI_TEST_SCRIPT: "/install/skqp-runner.sh"
|
||||
|
@@ -15,6 +15,3 @@ wgl@.*
|
||||
# These are sensitive to CPU timing, and would need to be run in isolation
|
||||
# on the system rather than in parallel with other tests.
|
||||
glx@glx_arb_sync_control@timing.*
|
||||
|
||||
# This test is not built with waffle, while we do build tests with waffle
|
||||
spec@!opengl 1.1@windowoverlap
|
||||
|
@@ -50,18 +50,12 @@ class CrosServoRun:
|
||||
target=self.iter_feed_queue, daemon=True, args=(self.cpu_ser.lines(),))
|
||||
self.iter_feed_cpu.start()
|
||||
|
||||
def close(self):
|
||||
self.ec_ser.close()
|
||||
self.cpu_ser.close()
|
||||
self.iter_feed_ec.join()
|
||||
self.iter_feed_cpu.join()
|
||||
|
||||
# Feed lines from our serial queues into the merged queue, marking when our
|
||||
# input is done.
|
||||
def iter_feed_queue(self, it):
|
||||
for i in it:
|
||||
self.serial_queue.put(i)
|
||||
self.serial_queue.put(self.sentinel)
|
||||
self.serial_queue.put(sentinel)
|
||||
|
||||
# Return the next line from the queue, counting how many threads have
|
||||
# terminated and joining when done
|
||||
@@ -185,8 +179,6 @@ def main():
|
||||
# power down the CPU on the device
|
||||
servo.ec_write("power off\n")
|
||||
|
||||
servo.close()
|
||||
|
||||
sys.exit(retval)
|
||||
|
||||
|
||||
|
@@ -36,9 +36,6 @@ class FastbootRun:
|
||||
self.ser = SerialBuffer(args.dev, "results/serial-output.txt", "R SERIAL> ", timeout=600)
|
||||
self.fastboot="fastboot boot -s {ser} artifacts/fastboot.img".format(ser=args.fbserial)
|
||||
|
||||
def close(self):
|
||||
self.ser.close()
|
||||
|
||||
def print_error(self, message):
|
||||
RED = '\033[0;31m'
|
||||
NO_COLOR = '\033[0m'
|
||||
@@ -70,13 +67,7 @@ class FastbootRun:
|
||||
if self.logged_system(self.fastboot) != 0:
|
||||
return 1
|
||||
|
||||
print_more_lines = -1
|
||||
for line in self.ser.lines():
|
||||
if print_more_lines == 0:
|
||||
return 2
|
||||
if print_more_lines > 0:
|
||||
print_more_lines -= 1
|
||||
|
||||
if re.search("---. end Kernel panic", line):
|
||||
return 1
|
||||
|
||||
@@ -98,18 +89,6 @@ class FastbootRun:
|
||||
"Detected network device failure, restarting run...")
|
||||
return 2
|
||||
|
||||
# A3xx recovery doesn't quite work. Sometimes the GPU will get
|
||||
# wedged and recovery will fail (because power can't be reset?)
|
||||
# This assumes that the jobs are sufficiently well-tested that GPU
|
||||
# hangs aren't always triggered, so just try again. But print some
|
||||
# more lines first so that we get better information on the cause
|
||||
# of the hang. Once a hang happens, it's pretty chatty.
|
||||
if "[drm:adreno_recover] *ERROR* gpu hw init failed: -22" in line:
|
||||
self.print_error(
|
||||
"Detected GPU hang, restarting run...")
|
||||
if print_more_lines == -1:
|
||||
print_more_lines = 30
|
||||
|
||||
result = re.search("hwci: mesa: (\S*)", line)
|
||||
if result:
|
||||
if result.group(1) == "pass":
|
||||
@@ -132,7 +111,6 @@ def main():
|
||||
|
||||
while True:
|
||||
retval = fastboot.run()
|
||||
fastboot.close()
|
||||
if retval != 2:
|
||||
break
|
||||
|
||||
|
@@ -8,20 +8,15 @@ mkdir -p $rootfs_dst/results
|
||||
cp $BM/bm-init.sh $rootfs_dst/init
|
||||
cp $CI_COMMON/init*.sh $rootfs_dst/
|
||||
|
||||
# Make JWT token available as file in the bare-metal storage to enable access
|
||||
# to MinIO
|
||||
cp "${CI_JOB_JWT_FILE}" "${rootfs_dst}${CI_JOB_JWT_FILE}"
|
||||
|
||||
cp $CI_COMMON/capture-devcoredump.sh $rootfs_dst/
|
||||
|
||||
set +x
|
||||
|
||||
# Pass through relevant env vars from the gitlab job to the baremetal init script
|
||||
"$CI_COMMON"/generate-env.sh > $rootfs_dst/set-job-env-vars.sh
|
||||
chmod +x $rootfs_dst/set-job-env-vars.sh
|
||||
echo "Variables passed through:"
|
||||
cat $rootfs_dst/set-job-env-vars.sh
|
||||
|
||||
echo "export CI_JOB_JWT=${CI_JOB_JWT@Q}" >> $rootfs_dst/set-job-env-vars.sh
|
||||
set -x
|
||||
|
||||
# Add the Mesa drivers we built, and make a consistent symlink to them.
|
||||
|
@@ -28,6 +28,7 @@ import serial
|
||||
import threading
|
||||
import time
|
||||
|
||||
|
||||
class SerialBuffer:
|
||||
def __init__(self, dev, filename, prefix, timeout = None):
|
||||
self.filename = filename
|
||||
@@ -35,17 +36,15 @@ class SerialBuffer:
|
||||
|
||||
if dev:
|
||||
self.f = open(filename, "wb+")
|
||||
self.serial = serial.Serial(dev, 115200, timeout=timeout)
|
||||
self.serial = serial.Serial(dev, 115200, timeout=timeout if timeout else 10)
|
||||
else:
|
||||
self.f = open(filename, "rb")
|
||||
self.serial = None
|
||||
|
||||
self.byte_queue = queue.Queue()
|
||||
self.line_queue = queue.Queue()
|
||||
self.prefix = prefix
|
||||
self.timeout = timeout
|
||||
self.sentinel = object()
|
||||
self.closing = False
|
||||
|
||||
if self.dev:
|
||||
self.read_thread = threading.Thread(
|
||||
@@ -59,31 +58,24 @@ class SerialBuffer:
|
||||
target=self.serial_lines_thread_loop, daemon=True)
|
||||
self.lines_thread.start()
|
||||
|
||||
def close(self):
|
||||
self.closing = True
|
||||
if self.serial:
|
||||
self.serial.cancel_read()
|
||||
self.read_thread.join()
|
||||
self.lines_thread.join()
|
||||
if self.serial:
|
||||
self.serial.close()
|
||||
|
||||
# Thread that just reads the bytes from the serial device to try to keep from
|
||||
# buffer overflowing it. If nothing is received in 1 minute, it finalizes.
|
||||
def serial_read_thread_loop(self):
|
||||
greet = "Serial thread reading from %s\n" % self.dev
|
||||
self.byte_queue.put(greet.encode())
|
||||
|
||||
while not self.closing:
|
||||
while True:
|
||||
try:
|
||||
b = self.serial.read()
|
||||
if len(b) == 0:
|
||||
if len(b) > 0:
|
||||
self.byte_queue.put(b)
|
||||
elif self.timeout:
|
||||
self.byte_queue.put(self.sentinel)
|
||||
break
|
||||
self.byte_queue.put(b)
|
||||
except Exception as err:
|
||||
print(self.prefix + str(err))
|
||||
self.byte_queue.put(self.sentinel)
|
||||
break
|
||||
self.byte_queue.put(self.sentinel)
|
||||
|
||||
# Thread that just reads the bytes from the file of serial output that some
|
||||
# other process is appending to.
|
||||
@@ -91,13 +83,12 @@ class SerialBuffer:
|
||||
greet = "Serial thread reading from %s\n" % self.filename
|
||||
self.byte_queue.put(greet.encode())
|
||||
|
||||
while not self.closing:
|
||||
while True:
|
||||
line = self.f.readline()
|
||||
if line:
|
||||
self.byte_queue.put(line)
|
||||
else:
|
||||
time.sleep(0.1)
|
||||
self.byte_queue.put(self.sentinel)
|
||||
|
||||
# Thread that processes the stream of bytes to 1) log to stdout, 2) log to
|
||||
# file, 3) add to the queue of lines to be read by program logic
|
||||
|
@@ -5,11 +5,8 @@ for var in \
|
||||
BASE_SYSTEM_FORK_HOST_PREFIX \
|
||||
BASE_SYSTEM_MAINLINE_HOST_PREFIX \
|
||||
CI_COMMIT_BRANCH \
|
||||
CI_COMMIT_REF_NAME \
|
||||
CI_COMMIT_TITLE \
|
||||
CI_JOB_ID \
|
||||
CI_JOB_JWT_FILE \
|
||||
CI_JOB_NAME \
|
||||
CI_JOB_URL \
|
||||
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME \
|
||||
CI_MERGE_REQUEST_TITLE \
|
||||
@@ -17,17 +14,12 @@ for var in \
|
||||
CI_NODE_TOTAL \
|
||||
CI_PAGES_DOMAIN \
|
||||
CI_PIPELINE_ID \
|
||||
CI_PIPELINE_URL \
|
||||
CI_PROJECT_DIR \
|
||||
CI_PROJECT_NAME \
|
||||
CI_PROJECT_PATH \
|
||||
CI_PROJECT_ROOT_NAMESPACE \
|
||||
CI_RUNNER_DESCRIPTION \
|
||||
CI_SERVER_URL \
|
||||
CROSVM_GALLIUM_DRIVER \
|
||||
CROSVM_GPU_ARGS \
|
||||
CROSVM_TEST_SCRIPT \
|
||||
DEQP_BIN_DIR \
|
||||
DEQP_CASELIST_FILTER \
|
||||
DEQP_CASELIST_INV_FILTER \
|
||||
DEQP_CONFIG \
|
||||
@@ -37,7 +29,6 @@ for var in \
|
||||
DEQP_RESULTS_DIR \
|
||||
DEQP_RUNNER_OPTIONS \
|
||||
DEQP_SUITE \
|
||||
DEQP_TEMP_DIR \
|
||||
DEQP_VARIANT \
|
||||
DEQP_VER \
|
||||
DEQP_WIDTH \
|
||||
@@ -49,8 +40,6 @@ for var in \
|
||||
FDO_UPSTREAM_REPO \
|
||||
FD_MESA_DEBUG \
|
||||
FLAKES_CHANNEL \
|
||||
GALLIUM_DRIVER \
|
||||
GALLIVM_PERF \
|
||||
GPU_VERSION \
|
||||
GTEST \
|
||||
GTEST_FAILS \
|
||||
@@ -66,44 +55,34 @@ for var in \
|
||||
JOB_ARTIFACTS_BASE \
|
||||
JOB_RESULTS_PATH \
|
||||
JOB_ROOTFS_OVERLAY_PATH \
|
||||
LD_LIBRARY_PATH \
|
||||
LP_NUM_THREADS \
|
||||
MESA_BASE_TAG \
|
||||
MESA_BUILD_PATH \
|
||||
MESA_DEBUG \
|
||||
MESA_GLES_VERSION_OVERRIDE \
|
||||
MESA_GLSL_VERSION_OVERRIDE \
|
||||
MESA_GL_VERSION_OVERRIDE \
|
||||
MESA_IMAGE \
|
||||
MESA_IMAGE_PATH \
|
||||
MESA_IMAGE_TAG \
|
||||
MESA_TEMPLATES_COMMIT \
|
||||
MESA_GLSL_VERSION_OVERRIDE \
|
||||
MESA_GLES_VERSION_OVERRIDE \
|
||||
MESA_VK_IGNORE_CONFORMANCE_WARNING \
|
||||
MINIO_HOST \
|
||||
NIR_DEBUG \
|
||||
NIR_VALIDATE \
|
||||
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER \
|
||||
PAN_MESA_DEBUG \
|
||||
PIGLIT_FRACTION \
|
||||
PIGLIT_JUNIT_RESULTS \
|
||||
PIGLIT_NO_WINDOW \
|
||||
PIGLIT_OPTIONS \
|
||||
PIGLIT_PLATFORM \
|
||||
PIGLIT_PROFILES \
|
||||
PIGLIT_REPLAY_ARTIFACTS_BASE_URL \
|
||||
PIGLIT_REPLAY_SUBCOMMAND \
|
||||
PIGLIT_REPLAY_DESCRIPTION_FILE \
|
||||
PIGLIT_REPLAY_DEVICE_NAME \
|
||||
PIGLIT_REPLAY_EXTRA_ARGS \
|
||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE \
|
||||
PIGLIT_REPLAY_SUBCOMMAND \
|
||||
PIGLIT_REPLAY_UPLOAD_TO_MINIO \
|
||||
PIGLIT_RESULTS \
|
||||
PIGLIT_TESTS \
|
||||
PIPELINE_ARTIFACTS_BASE \
|
||||
SKQP_ASSETS_DIR \
|
||||
SKQP_BACKENDS \
|
||||
TU_DEBUG \
|
||||
VIRGL_HOST_API \
|
||||
VK_CPU \
|
||||
VK_DRIVER \
|
||||
VK_ICD_FILENAMES \
|
||||
; do
|
||||
if [ -n "${!var+x}" ]; then
|
||||
echo "export $var=${!var@Q}"
|
||||
|
@@ -71,7 +71,7 @@ fi
|
||||
MINIO=$(cat /proc/cmdline | tr ' ' '\n' | grep minio_results | cut -d '=' -f 2 || true)
|
||||
if [ -n "$MINIO" ]; then
|
||||
tar -czf results.tar.gz results/;
|
||||
ci-fairy minio login --token-file "${CI_JOB_JWT_FILE}";
|
||||
ci-fairy minio login "$CI_JOB_JWT";
|
||||
ci-fairy minio cp results.tar.gz minio://"$MINIO"/results.tar.gz;
|
||||
fi
|
||||
|
||||
|
@@ -14,7 +14,6 @@ CONFIG_DRM_ROCKCHIP=y
|
||||
CONFIG_DRM_PANFROST=y
|
||||
CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_DRM_PANEL_EDP=y
|
||||
CONFIG_DRM_MSM=y
|
||||
CONFIG_DRM_I2C_ADV7511=y
|
||||
CONFIG_PWM_CROS_EC=y
|
||||
@@ -36,7 +35,6 @@ CONFIG_TYPEC_TCPM=y
|
||||
# For CONFIG_QCOM_LMH
|
||||
CONFIG_OF=y
|
||||
|
||||
CONFIG_QCOM_COMMAND_DB=y
|
||||
CONFIG_QCOM_RPMHPD=y
|
||||
CONFIG_QCOM_RPMPD=y
|
||||
CONFIG_SDM_GPUCC_845=y
|
||||
|
@@ -2,18 +2,47 @@
|
||||
|
||||
set -ex
|
||||
|
||||
CROSVM_VERSION=d2b6a64dd31c92a284a905c0f2483d0b222b1220
|
||||
git clone --single-branch -b for-mesa-ci --no-checkout https://gitlab.freedesktop.org/tomeu/crosvm.git /platform/crosvm
|
||||
# Pull down repositories that crosvm depends on to cros checkout-like locations.
|
||||
CROS_ROOT=/
|
||||
THIRD_PARTY_ROOT=$CROS_ROOT/third_party
|
||||
mkdir -p $THIRD_PARTY_ROOT
|
||||
AOSP_EXTERNAL_ROOT=$CROS_ROOT/aosp/external
|
||||
mkdir -p $AOSP_EXTERNAL_ROOT
|
||||
PLATFORM2_ROOT=/platform2
|
||||
|
||||
PLATFORM2_COMMIT=72e56e66ccf3d2ea48f5686bd1f772379c43628b
|
||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform2 $PLATFORM2_ROOT
|
||||
pushd $PLATFORM2_ROOT
|
||||
git checkout $PLATFORM2_COMMIT
|
||||
popd
|
||||
|
||||
# minijail does not exist in upstream linux distros.
|
||||
MINIJAIL_COMMIT=debdf5de5a0ae3b667bee2f8fb1f755b0b3f5a6c
|
||||
git clone --single-branch --no-checkout https://android.googlesource.com/platform/external/minijail $AOSP_EXTERNAL_ROOT/minijail
|
||||
pushd $AOSP_EXTERNAL_ROOT/minijail
|
||||
git checkout $MINIJAIL_COMMIT
|
||||
make
|
||||
cp libminijail.so /usr/lib/x86_64-linux-gnu/
|
||||
popd
|
||||
|
||||
# Pull the cras library for audio access.
|
||||
ADHD_COMMIT=a1e0869b95c845c4fe6234a7b92fdfa6acc1e809
|
||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/adhd $THIRD_PARTY_ROOT/adhd
|
||||
pushd $THIRD_PARTY_ROOT/adhd
|
||||
git checkout $ADHD_COMMIT
|
||||
popd
|
||||
|
||||
# Pull vHost (dataplane for virtio backend drivers)
|
||||
VHOST_COMMIT=3091854e27242d09453004b011f701fa29c0b8e8
|
||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/third_party/rust-vmm/vhost $THIRD_PARTY_ROOT/rust-vmm/vhost
|
||||
pushd $THIRD_PARTY_ROOT/rust-vmm/vhost
|
||||
git checkout $VHOST_COMMIT
|
||||
popd
|
||||
|
||||
CROSVM_VERSION=e42a43d880b0364b55559dbeade3af174f929001
|
||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform/crosvm /platform/crosvm
|
||||
pushd /platform/crosvm
|
||||
git checkout "$CROSVM_VERSION"
|
||||
git submodule update --init
|
||||
|
||||
VIRGLRENDERER_VERSION=2a5fb800c6b0ce15ad37c2c698635e3e2d27b37c
|
||||
pushd third_party/virglrenderer
|
||||
git checkout "$VIRGLRENDERER_VERSION"
|
||||
meson build/ $EXTRA_MESON_ARGS
|
||||
ninja -C build install
|
||||
popd
|
||||
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
bindgen \
|
||||
|
@@ -1,22 +1,9 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
if [ -n "${DEQP_RUNNER_GIT_TAG}${DEQP_RUNNER_GIT_REV}" ]; then
|
||||
# Build and install from source
|
||||
EXTRA_CARGO_ARGS="--git ${DEQP_RUNNER_GIT_URL:-https://gitlab.freedesktop.org/anholt/deqp-runner.git} ${EXTRA_CARGO_ARGS}"
|
||||
|
||||
if [ -n "${DEQP_RUNNER_GIT_TAG}" ]; then
|
||||
EXTRA_CARGO_ARGS="--tag ${DEQP_RUNNER_GIT_TAG} ${EXTRA_CARGO_ARGS}"
|
||||
else
|
||||
EXTRA_CARGO_ARGS="--rev ${DEQP_RUNNER_GIT_REV} ${EXTRA_CARGO_ARGS}"
|
||||
fi
|
||||
else
|
||||
# Install from package registry
|
||||
EXTRA_CARGO_ARGS="--version 0.11.0 ${EXTRA_CARGO_ARGS} -- deqp-runner"
|
||||
fi
|
||||
|
||||
cargo install --locked \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local \
|
||||
${EXTRA_CARGO_ARGS}
|
||||
cargo install --locked deqp-runner \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--version 0.10.0 \
|
||||
--root /usr/local \
|
||||
$EXTRA_CARGO_ARGS
|
||||
|
@@ -6,7 +6,7 @@ git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
git clone \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b vulkan-cts-1.2.7.2 \
|
||||
-b vulkan-cts-1.2.7.1 \
|
||||
--depth 1 \
|
||||
/VK-GL-CTS
|
||||
pushd /VK-GL-CTS
|
||||
@@ -68,11 +68,7 @@ cp /deqp/executor/testlog-to-* /deqp/executor.save
|
||||
rm -rf /deqp/executor
|
||||
mv /deqp/executor.save /deqp/executor
|
||||
|
||||
# Remove other mustpass files, since we saved off the ones we wanted to conventient locations above.
|
||||
rm -rf /deqp/external/openglcts/modules/gl_cts/data/mustpass
|
||||
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-master*
|
||||
rm -rf /deqp/external/vulkancts/modules/vulkan/vk-default
|
||||
|
||||
rm -rf /deqp/external/openglcts/modules/cts-runner
|
||||
rm -rf /deqp/modules/internal
|
||||
rm -rf /deqp/execserver
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
set -ex
|
||||
|
||||
export LIBDRM_VERSION=libdrm-2.4.109
|
||||
export LIBDRM_VERSION=libdrm-2.4.107
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz
|
||||
tar -xvf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz
|
||||
|
@@ -4,7 +4,7 @@ set -ex
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||
pushd /piglit
|
||||
git checkout af1785f31f65622d9b1ca1c08c75cf140bc7ed22
|
||||
git checkout 7d7dd2688c214e1b3c00f37226500cbec4a58efb
|
||||
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
|
||||
cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS $EXTRA_CMAKE_ARGS
|
||||
ninja $PIGLIT_BUILD_TARGETS
|
||||
|
@@ -1,82 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
create_gn_args() {
|
||||
cp "${BASE_ARGS_GN_FILE}" "${SKQP_OUT_DIR}"/args.gn
|
||||
echo "target_cpu = \"${SKQP_ARCH}\"" >> "${SKQP_OUT_DIR}"/args.gn
|
||||
}
|
||||
|
||||
download_skqp_models() (
|
||||
# The download_model.py script needs a checksum file to know what models
|
||||
# version to download.
|
||||
|
||||
# This is the most recent commit available in the skia repository with a
|
||||
# valid files.checksum
|
||||
SKIA_LAST_SKQP_CUT_COMMIT_SHA=ccf5f0d75b6a6b54756f2c62d57e3730eed8aa45
|
||||
git fetch origin "${SKIA_LAST_SKQP_CUT_COMMIT_SHA}:refs/remotes/origin/${SKIA_LAST_SKQP_CUT_COMMIT_SHA}"
|
||||
git checkout "${SKIA_LAST_SKQP_CUT_COMMIT_SHA}" -- \
|
||||
platform_tools/android/apps/skqp/src/main/assets/files.checksum
|
||||
|
||||
# The following patch transforms download_model.py from python2 to python3.
|
||||
git apply "${DOWNLOAD_MODEL_PATCH_FILE}"
|
||||
python3 tools/skqp/download_model.py
|
||||
|
||||
# Copy resources from skia to skqp directory
|
||||
python3 tools/skqp/setup_resources
|
||||
)
|
||||
|
||||
set -ex
|
||||
|
||||
SCRIPT_DIR=$(realpath "$(dirname "$0")")
|
||||
FETCH_GN_PATCH_FILE="${SCRIPT_DIR}/build-skqp_fetch-gn.patch"
|
||||
BASE_ARGS_GN_FILE="${SCRIPT_DIR}/build-skqp_base.gn"
|
||||
DOWNLOAD_MODEL_PATCH_FILE="${SCRIPT_DIR}/build-skqp_download_model.patch"
|
||||
|
||||
SKQP_ARCH=${SKQP_ARCH:-x64}
|
||||
SKIA_DIR=${SKIA_DIR:-$(mktemp -d)}
|
||||
SKQP_DIR=${SKQP_DIR:-$(mktemp -d)}
|
||||
SKQP_OUT_DIR=${SKIA_DIR}/out/${SKQP_ARCH}
|
||||
SKQP_INSTALL_DIR=/skqp
|
||||
SKQP_ASSETS_DIR="${SKQP_INSTALL_DIR}/assets"
|
||||
# Build list_gpu_unit_tests to update the unittests.txt file properly to the
|
||||
# target hardware.
|
||||
SKQP_BINARIES=(skqp list_gpu_unit_tests)
|
||||
|
||||
# Using a recent release version to mitigate instability during test phase
|
||||
SKIA_COMMIT_SHA="canvaskit/0.32.0"
|
||||
|
||||
git clone 'https://skia.googlesource.com/skia/' \
|
||||
--single-branch \
|
||||
-b "${SKIA_COMMIT_SHA}" \
|
||||
"${SKIA_DIR}"
|
||||
|
||||
pushd "${SKIA_DIR}"
|
||||
|
||||
git apply "${FETCH_GN_PATCH_FILE}"
|
||||
# Fetch some needed build tools needed to build skia/skqp
|
||||
# Basically, it clones repositories with commits SHAs from
|
||||
# ${SKIA_DIR}/DEPS directory
|
||||
python3 tools/git-sync-deps
|
||||
|
||||
mkdir -p "${SKQP_OUT_DIR}"
|
||||
mkdir -p "${SKQP_INSTALL_DIR}"
|
||||
|
||||
create_gn_args
|
||||
|
||||
# Build and install skqp binaries
|
||||
bin/gn gen "${SKQP_OUT_DIR}"
|
||||
|
||||
for BINARY in "${SKQP_BINARIES[@]}"
|
||||
do
|
||||
/usr/bin/ninja -C "${SKQP_OUT_DIR}" "${BINARY}"
|
||||
install -m 0755 "${SKQP_OUT_DIR}/${BINARY}" "${SKQP_INSTALL_DIR}"
|
||||
done
|
||||
|
||||
# Acquire assets and move them to the target directory.
|
||||
download_skqp_models
|
||||
mv platform_tools/android/apps/skqp/src/main/assets/ "${SKQP_ASSETS_DIR}"
|
||||
|
||||
popd
|
||||
rm -Rf "${SKQP_DIR}"
|
||||
rm -Rf "${SKIA_DIR}"
|
||||
|
||||
set +ex
|
@@ -1,25 +0,0 @@
|
||||
cc = "gcc"
|
||||
cxx = "g++"
|
||||
|
||||
extra_cflags = [ "-DSK_ENABLE_DUMP_GPU", "-DSK_BUILD_FOR_SKQP" ]
|
||||
extra_cflags_cc = [ "-static", "-Wno-error", "-Wno-macro-redefined", "-Wno-suggest-destructor-override", "-Wno-suggest-override" ]
|
||||
|
||||
is_debug = false
|
||||
|
||||
skia_enable_fontmgr_android = false
|
||||
skia_enable_fontmgr_empty = true
|
||||
skia_enable_pdf = false
|
||||
skia_enable_skottie = false
|
||||
|
||||
skia_skqp_global_error_tolerance = 8
|
||||
skia_tools_require_resources = true
|
||||
|
||||
skia_use_dng_sdk = false
|
||||
skia_use_expat = true
|
||||
skia_use_icu = false
|
||||
skia_use_libheif = false
|
||||
skia_use_lua = false
|
||||
skia_use_piex = false
|
||||
skia_use_vulkan = true
|
||||
|
||||
target_os = "linux"
|
@@ -1,22 +0,0 @@
|
||||
diff --git a/tools/skqp/download_model.py b/tools/skqp/download_model.py
|
||||
index fb0020e481..a5d8a03754 100755
|
||||
--- a/tools/skqp/download_model.py
|
||||
+++ b/tools/skqp/download_model.py
|
||||
@@ -10,7 +10,7 @@ import os
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
-import urllib2
|
||||
+import urllib.request, urllib.error, urllib.parse
|
||||
|
||||
def checksum(path):
|
||||
if not os.path.exists(path):
|
||||
@@ -33,7 +33,7 @@ def download(md5, path):
|
||||
pass # ignore race condition
|
||||
url = 'https://storage.googleapis.com/skia-skqp-assets/' + md5
|
||||
with open(path, 'wb') as o:
|
||||
- shutil.copyfileobj(urllib2.urlopen(url), o)
|
||||
+ shutil.copyfileobj(urllib.request.urlopen(url), o)
|
||||
|
||||
def tmp(prefix):
|
||||
fd, path = tempfile.mkstemp(prefix=prefix)
|
@@ -1,13 +0,0 @@
|
||||
diff --git a/bin/fetch-gn b/bin/fetch-gn
|
||||
index b4bb14c630..59c4591a30 100755
|
||||
--- a/bin/fetch-gn
|
||||
+++ b/bin/fetch-gn
|
||||
@@ -23,7 +23,7 @@ os.chdir(os.path.join(os.path.dirname(__file__), os.pardir))
|
||||
gnzip = os.path.join(tempfile.mkdtemp(), 'gn.zip')
|
||||
with open(gnzip, 'wb') as f:
|
||||
OS = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform]
|
||||
- cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64'}[platform.machine().lower()]
|
||||
+ cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64', 'aarch64': 'arm64'}[platform.machine().lower()]
|
||||
|
||||
rev = 'd62642c920e6a0d1756316d225a90fd6faa9e21e'
|
||||
url = 'https://chrome-infra-packages.appspot.com/dl/gn/gn/{}-{}/+/git_revision:{}'.format(
|
20
.gitlab-ci/container/build-virglrenderer.sh
Normal file
20
.gitlab-ci/container/build-virglrenderer.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
mkdir -p /epoxy
|
||||
pushd /epoxy
|
||||
wget -qO- https://github.com/anholt/libepoxy/releases/download/1.5.8/libepoxy-1.5.8.tar.xz | tar -xJ --strip-components=1
|
||||
meson build/ $EXTRA_MESON_ARGS
|
||||
ninja -C build install
|
||||
popd
|
||||
rm -rf /epoxy
|
||||
|
||||
VIRGLRENDERER_VERSION=f2ab66c6c00065b2944f4cd9d965ee455c535271
|
||||
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,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
export LIBWAYLAND_VERSION="1.18.0"
|
||||
export WAYLAND_PROTOCOLS_VERSION="1.24"
|
||||
|
||||
git clone https://gitlab.freedesktop.org/wayland/wayland
|
||||
cd wayland
|
||||
git checkout "$LIBWAYLAND_VERSION"
|
||||
meson -Ddocumentation=false -Ddtd_validation=false -Dlibraries=true _build
|
||||
ninja -C _build install
|
||||
cd ..
|
||||
rm -rf wayland
|
||||
|
||||
git clone https://gitlab.freedesktop.org/wayland/wayland-protocols
|
||||
cd wayland-protocols
|
||||
git checkout "$WAYLAND_PROTOCOLS_VERSION"
|
||||
meson _build
|
||||
ninja -C _build install
|
||||
cd ..
|
||||
rm -rf wayland-protocols
|
@@ -3,11 +3,7 @@
|
||||
set -ex
|
||||
|
||||
if [ $DEBIAN_ARCH = arm64 ]; then
|
||||
ARCH_PACKAGES="firmware-qcom-media
|
||||
libfontconfig1
|
||||
libgl1
|
||||
libglu1-mesa
|
||||
"
|
||||
ARCH_PACKAGES="firmware-qcom-media"
|
||||
elif [ $DEBIAN_ARCH = amd64 ]; then
|
||||
ARCH_PACKAGES="firmware-amd-graphics
|
||||
libelf1
|
||||
@@ -75,7 +71,7 @@ apt-get -y install --no-install-recommends \
|
||||
|
||||
# Needed for ci-fairy, this revision is able to upload files to
|
||||
# MinIO and doesn't depend on git
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@34f4ade99434043f88e164933f570301fd18b125
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@0f1abc24c043e63894085a6bd12f14263e8b29eb
|
||||
|
||||
apt-get purge -y \
|
||||
$INSTALL_CI_FAIRY_PACKAGES
|
||||
@@ -150,8 +146,6 @@ rm -rf usr/sbin/update-usbids
|
||||
rm -rf var/lib/usbutils/usb.ids
|
||||
rm -rf usr/share/misc/usb.ids
|
||||
|
||||
rm -rf /root/.pip
|
||||
|
||||
#######################################################################
|
||||
# Crush into a minimal production image to be deployed via some type of image
|
||||
# updating system.
|
||||
|
@@ -3,7 +3,6 @@
|
||||
set -ex
|
||||
|
||||
EPHEMERAL="\
|
||||
autoconf \
|
||||
rdfind \
|
||||
unzip \
|
||||
"
|
||||
@@ -30,7 +29,7 @@ sh .gitlab-ci/container/create-android-cross-file.sh /$ndk arm-linux-androideabi
|
||||
|
||||
# Not using build-libdrm.sh because we don't want its cleanup after building
|
||||
# each arch. Fetch and extract now.
|
||||
export LIBDRM_VERSION=libdrm-2.4.109
|
||||
export LIBDRM_VERSION=libdrm-2.4.102
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz
|
||||
tar -xf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz
|
||||
|
||||
@@ -51,56 +50,11 @@ for arch in \
|
||||
-Detnaviv=false \
|
||||
-Dfreedreno=false \
|
||||
-Dintel=false \
|
||||
-Dcairo-tests=false \
|
||||
-Dvalgrind=false
|
||||
-Dcairo-tests=false
|
||||
ninja -C build-$arch install
|
||||
cd ..
|
||||
done
|
||||
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
export LIBELF_VERSION=libelf-0.8.13
|
||||
wget https://fossies.org/linux/misc/old/$LIBELF_VERSION.tar.gz
|
||||
|
||||
# Not 100% sure who runs the mirror above so be extra careful
|
||||
if ! echo "4136d7b4c04df68b686570afa26988ac ${LIBELF_VERSION}.tar.gz" | md5sum -c -; then
|
||||
echo "Checksum failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tar -xf ${LIBELF_VERSION}.tar.gz
|
||||
cd $LIBELF_VERSION
|
||||
|
||||
# Work around a bug in the original configure not enabling __LIBELF64.
|
||||
autoreconf
|
||||
|
||||
for arch in \
|
||||
x86_64-linux-android \
|
||||
i686-linux-android \
|
||||
aarch64-linux-android \
|
||||
arm-linux-androideabi ; do
|
||||
|
||||
ccarch=${arch}
|
||||
if [ "${arch}" == 'arm-linux-androideabi' ]
|
||||
then
|
||||
ccarch=armv7a-linux-androideabi
|
||||
fi
|
||||
|
||||
export CC=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ar
|
||||
export CC=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}29-clang
|
||||
export CXX=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}29-clang++
|
||||
export LD=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ld
|
||||
export RANLIB=/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ranlib
|
||||
|
||||
# The configure script doesn't know about android, but doesn't really use the host anyway it
|
||||
# seems
|
||||
./configure --host=x86_64-linux-gnu --disable-nls --disable-shared \
|
||||
--libdir=/usr/local/lib/${arch}
|
||||
make install
|
||||
make distclean
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf $LIBELF_VERSION
|
||||
|
||||
apt-get purge -y $EPHEMERAL
|
||||
|
@@ -57,7 +57,7 @@ apt-get -y install \
|
||||
apt-get install -y --no-remove -t buster \
|
||||
android-sdk-ext4-utils
|
||||
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@34f4ade99434043f88e164933f570301fd18b125
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366
|
||||
|
||||
arch=armhf
|
||||
. .gitlab-ci/container/cross_build.sh
|
||||
|
@@ -63,6 +63,7 @@ apt-get install -y --no-remove \
|
||||
python3-requests \
|
||||
qemu-user \
|
||||
valgrind \
|
||||
wayland-protocols \
|
||||
wget \
|
||||
wine64 \
|
||||
x11proto-dri2-dev \
|
||||
@@ -72,7 +73,7 @@ apt-get install -y --no-remove \
|
||||
zlib1g-dev
|
||||
|
||||
# Needed for ci-fairy, this revision is able to upload files to MinIO
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@34f4ade99434043f88e164933f570301fd18b125
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366
|
||||
|
||||
############### Uninstall ephemeral packages
|
||||
|
||||
|
@@ -11,6 +11,8 @@ STABLE_EPHEMERAL=" \
|
||||
automake \
|
||||
autotools-dev \
|
||||
bzip2 \
|
||||
cmake \
|
||||
libgbm-dev \
|
||||
libtool \
|
||||
python3-pip \
|
||||
"
|
||||
@@ -21,13 +23,10 @@ apt-get update
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
$STABLE_EPHEMERAL \
|
||||
check \
|
||||
clang \
|
||||
cmake \
|
||||
libasan6 \
|
||||
libarchive-dev \
|
||||
libclang-cpp11-dev \
|
||||
libgbm-dev \
|
||||
libglvnd-dev \
|
||||
libllvmspirvlib-dev \
|
||||
liblua5.3-dev \
|
||||
@@ -68,8 +67,10 @@ chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
||||
|
||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
||||
export LIBWAYLAND_VERSION=wayland-1.18.0
|
||||
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
@@ -78,7 +79,11 @@ rm -rf $XORGMACROS_VERSION
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
||||
rm -rf $LIBWAYLAND_VERSION
|
||||
|
||||
|
||||
pushd /usr/local
|
||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
||||
|
@@ -59,7 +59,7 @@ apt-get install -y --no-install-recommends \
|
||||
|
||||
# Needed for ci-fairy, this revision is able to upload files to MinIO
|
||||
# and doesn't depend on git
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@34f4ade99434043f88e164933f570301fd18b125
|
||||
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@0f1abc24c043e63894085a6bd12f14263e8b29eb
|
||||
|
||||
############### Build dEQP runner
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
|
@@ -22,7 +22,6 @@ STABLE_EPHEMERAL=" \
|
||||
libcap-dev \
|
||||
libclang-cpp11-dev \
|
||||
libelf-dev \
|
||||
libexpat1-dev \
|
||||
libfdt-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
@@ -32,6 +31,7 @@ STABLE_EPHEMERAL=" \
|
||||
libudev-dev \
|
||||
libvulkan-dev \
|
||||
libwaffle-dev \
|
||||
libwayland-dev \
|
||||
libx11-xcb-dev \
|
||||
libxcb-dri2-0-dev \
|
||||
libxext-dev \
|
||||
@@ -45,18 +45,20 @@ STABLE_EPHEMERAL=" \
|
||||
patch \
|
||||
pkg-config \
|
||||
python3-distutils \
|
||||
wayland-protocols \
|
||||
wget \
|
||||
xz-utils \
|
||||
"
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
$STABLE_EPHEMERAL \
|
||||
clinfo \
|
||||
inetutils-syslogd \
|
||||
iptables \
|
||||
libclang-common-11-dev \
|
||||
libclang-cpp11 \
|
||||
libcap2 \
|
||||
libegl1 \
|
||||
libepoxy-dev \
|
||||
libfdt1 \
|
||||
libllvmspirvlib11 \
|
||||
libxcb-shm0 \
|
||||
@@ -65,27 +67,11 @@ apt-get install -y --no-remove \
|
||||
python3-renderdoc \
|
||||
python3-simplejson \
|
||||
spirv-tools \
|
||||
sysvinit-core \
|
||||
wget
|
||||
sysvinit-core
|
||||
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Build libdrm
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
############### Build Wayland
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
|
||||
############### Build Crosvm
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
. .gitlab-ci/container/build-crosvm.sh
|
||||
rm -rf /root/.cargo
|
||||
rm -rf /root/.rustup
|
||||
|
||||
############### Build kernel
|
||||
|
||||
export DEFCONFIG="arch/x86/configs/x86_64_defconfig"
|
||||
@@ -96,14 +82,28 @@ export DEBIAN_ARCH=amd64
|
||||
mkdir -p /lava-files/
|
||||
. .gitlab-ci/container/build-kernel.sh
|
||||
|
||||
############### Build libdrm
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
############### Build libclc
|
||||
|
||||
. .gitlab-ci/container/build-libclc.sh
|
||||
|
||||
############### Build virglrenderer
|
||||
|
||||
. .gitlab-ci/container/build-virglrenderer.sh
|
||||
|
||||
############### Build piglit
|
||||
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
|
||||
############### Build Crosvm
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
. .gitlab-ci/container/build-crosvm.sh
|
||||
rm -rf /root/.cargo
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
|
||||
|
@@ -13,7 +13,6 @@ STABLE_EPHEMERAL=" \
|
||||
g++-mingw-w64-i686-posix \
|
||||
g++-mingw-w64-x86-64-posix \
|
||||
glslang-tools \
|
||||
libexpat1-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
liblz4-dev \
|
||||
@@ -21,6 +20,7 @@ STABLE_EPHEMERAL=" \
|
||||
libudev-dev \
|
||||
libvulkan-dev \
|
||||
libwaffle-dev \
|
||||
libwayland-dev \
|
||||
libx11-xcb-dev \
|
||||
libxcb-ewmh-dev \
|
||||
libxcb-keysyms1-dev \
|
||||
@@ -124,10 +124,6 @@ wine \
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
############### Build Wayland
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
|
||||
############### Build parallel-deqp-runner's hang-detection tool
|
||||
|
||||
. .gitlab-ci/container/build-hang-detection.sh
|
||||
|
@@ -40,6 +40,9 @@ dnf install -y --setopt=install_weak_deps=False \
|
||||
"pkgconfig(pciaccess)" \
|
||||
"pkgconfig(vdpau)" \
|
||||
"pkgconfig(vulkan)" \
|
||||
"pkgconfig(wayland-egl-backend)" \
|
||||
"pkgconfig(wayland-protocols)" \
|
||||
"pkgconfig(wayland-scanner)" \
|
||||
"pkgconfig(x11)" \
|
||||
"pkgconfig(x11-xcb)" \
|
||||
"pkgconfig(xcb)" \
|
||||
@@ -71,8 +74,10 @@ dnf install -y --setopt=install_weak_deps=False \
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
||||
|
||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
||||
export LIBWAYLAND_VERSION=wayland-1.18.0
|
||||
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
@@ -81,7 +86,11 @@ rm -rf $XORGMACROS_VERSION
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
. .gitlab-ci/container/build-wayland.sh
|
||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
||||
rm -rf $LIBWAYLAND_VERSION
|
||||
|
||||
|
||||
pushd /usr/local
|
||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
||||
|
@@ -82,12 +82,8 @@ apt-get install -y --no-remove \
|
||||
glslang-tools \
|
||||
libdrm-dev \
|
||||
libegl1-mesa-dev \
|
||||
libfontconfig-dev \
|
||||
libgbm-dev \
|
||||
libgl-dev \
|
||||
libgles2-mesa-dev \
|
||||
libglu1-mesa-dev \
|
||||
libglx-dev \
|
||||
libpng-dev \
|
||||
libssl-dev \
|
||||
libudev-dev \
|
||||
@@ -97,14 +93,11 @@ apt-get install -y --no-remove \
|
||||
libx11-xcb-dev \
|
||||
libxcb-dri2-0-dev \
|
||||
libxkbcommon-dev \
|
||||
ninja-build \
|
||||
patch \
|
||||
python-is-python3 \
|
||||
python3-distutils \
|
||||
python3-mako \
|
||||
python3-numpy \
|
||||
python3-serial \
|
||||
unzip \
|
||||
wget
|
||||
|
||||
|
||||
@@ -148,13 +141,6 @@ DEQP_TARGET=surfaceless . .gitlab-ci/container/build-deqp.sh
|
||||
mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
|
||||
|
||||
############### Build SKQP
|
||||
if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
SKQP_ARCH="arm64" . .gitlab-ci/container/build-skqp.sh
|
||||
mv /skqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
fi
|
||||
|
||||
|
||||
############### Build piglit
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
@@ -174,7 +160,6 @@ EXTRA_MESON_ARGS+=" -D prefix=/libdrm"
|
||||
|
||||
############### Delete rust, since the tests won't be compiling anything.
|
||||
rm -rf /root/.cargo
|
||||
rm -rf /root/.rustup
|
||||
|
||||
############### Create rootfs
|
||||
set +e
|
||||
@@ -220,7 +205,7 @@ popd
|
||||
. .gitlab-ci/container/container_post_build.sh
|
||||
|
||||
############### Upload the files!
|
||||
ci-fairy minio login --token-file "${CI_JOB_JWT_FILE}"
|
||||
ci-fairy minio login $CI_JOB_JWT
|
||||
FILES_TO_UPLOAD="lava-rootfs.tgz \
|
||||
$KERNEL_IMAGE_NAME"
|
||||
|
||||
|
@@ -1 +1,2 @@
|
||||
lp_test_arit
|
||||
lp_test_format
|
||||
|
@@ -1,38 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
export DEQP_TEMP_DIR="$1"
|
||||
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
|
||||
mount -t tmpfs tmpfs /tmp
|
||||
|
||||
. $DEQP_TEMP_DIR/crosvm-env.sh
|
||||
. /crosvm-env.sh
|
||||
|
||||
# .gitlab-ci.yml script variable is using relative paths to install directory,
|
||||
# so change to that dir before running `crosvm-script`
|
||||
cd "${CI_PROJECT_DIR}"
|
||||
# / is ro
|
||||
export PIGLIT_REPLAY_EXTRA_ARGS="$PIGLIT_REPLAY_EXTRA_ARGS --db-path /tmp/replayer-db"
|
||||
|
||||
# The exception is the dEQP binary, since it needs to run from the directory
|
||||
# it's in
|
||||
if [ -d "${DEQP_BIN_DIR}" ]
|
||||
then
|
||||
cd "${DEQP_BIN_DIR}"
|
||||
if sh $CROSVM_TEST_SCRIPT; then
|
||||
touch /results/success
|
||||
fi
|
||||
|
||||
dmesg --level crit,err,warn -w >> $DEQP_TEMP_DIR/stderr &
|
||||
|
||||
set +e
|
||||
stdbuf -oL sh $DEQP_TEMP_DIR/crosvm-script.sh 2>> $DEQP_TEMP_DIR/stderr >> $DEQP_TEMP_DIR/stdout
|
||||
echo $? > $DEQP_TEMP_DIR/exit_code
|
||||
set -e
|
||||
|
||||
sync
|
||||
sleep 1
|
||||
sleep 5 # Leave some time to get the last output flushed out
|
||||
|
||||
poweroff -d -n -f || true
|
||||
|
||||
sleep 1 # Just in case init would exit before the kernel shuts down the VM
|
||||
sleep 10 # Just in case init would exit before the kernel shuts down the VM
|
||||
|
||||
exit 1
|
||||
|
@@ -1,58 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
set -x
|
||||
|
||||
# This script can be called concurrently, pass arguments and env in a
|
||||
# per-instance tmp dir
|
||||
DEQP_TEMP_DIR=$(mktemp -d /tmp.XXXXXXXXXX)
|
||||
export DEQP_TEMP_DIR
|
||||
ln -sf $CI_PROJECT_DIR/install /install
|
||||
|
||||
# The dEQP binary needs to run from the directory it's in
|
||||
if [ -n "${1##*.sh}" ] && [ -z "${1##*"deqp"*}" ]; then
|
||||
DEQP_BIN_DIR=$(dirname "$1")
|
||||
export DEQP_BIN_DIR
|
||||
fi
|
||||
export LD_LIBRARY_PATH=$CI_PROJECT_DIR/install/lib/
|
||||
export EGL_PLATFORM=surfaceless
|
||||
|
||||
# Securely pass the current variables to the crosvm environment
|
||||
CI_COMMON="$CI_PROJECT_DIR"/install/common
|
||||
echo "Variables passed through:"
|
||||
"${CI_COMMON}"/generate-env.sh | tee ${DEQP_TEMP_DIR}/crosvm-env.sh
|
||||
export -p > /crosvm-env.sh
|
||||
export GALLIUM_DRIVER="$CROSVM_GALLIUM_DRIVER"
|
||||
export GALLIVM_PERF="nopt"
|
||||
export LIBGL_ALWAYS_SOFTWARE="true"
|
||||
|
||||
CROSVM_KERNEL_ARGS="quiet console=null root=my_root rw rootfstype=virtiofs init=$CI_PROJECT_DIR/install/crosvm-init.sh ip=192.168.30.2::192.168.30.1:255.255.255.0:crosvm:eth0 -- $DEQP_TEMP_DIR"
|
||||
CROSVM_KERNEL_ARGS="root=my_root rw rootfstype=virtiofs loglevel=3 init=$CI_PROJECT_DIR/install/crosvm-init.sh ip=192.168.30.2::192.168.30.1:255.255.255.0:crosvm:eth0"
|
||||
|
||||
# Set the crosvm-script as the arguments of the current script.
|
||||
echo "$@" > $DEQP_TEMP_DIR/crosvm-script.sh
|
||||
# Temporary results dir because from the guest we cannot write to /
|
||||
mkdir -p /results
|
||||
mount -t tmpfs tmpfs /results
|
||||
|
||||
mkdir -p /piglit/.gitlab-ci/piglit
|
||||
mount -t tmpfs tmpfs /piglit/.gitlab-ci/piglit
|
||||
|
||||
unset DISPLAY
|
||||
unset XDG_RUNTIME_DIR
|
||||
|
||||
/usr/sbin/iptables-legacy -w -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||
/usr/sbin/iptables-legacy -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||
echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
|
||||
# Send output from guest to host
|
||||
touch $DEQP_TEMP_DIR/stderr $DEQP_TEMP_DIR/stdout
|
||||
tail -f $DEQP_TEMP_DIR/stderr >> /dev/stderr &
|
||||
ERR_TAIL_PID=$!
|
||||
tail -f $DEQP_TEMP_DIR/stdout >> /dev/stdout &
|
||||
OUT_TAIL_PID=$!
|
||||
|
||||
trap "exit \$exit_code" INT TERM
|
||||
trap "exit_code=\$?; kill $ERR_TAIL_PID $OUT_TAIL_PID; rm -rf $DEQP_TEMP_DIR" EXIT
|
||||
# Crosvm wants this
|
||||
syslogd > /dev/null
|
||||
|
||||
# We aren't testing LLVMPipe here, so we don't need to validate NIR on the host
|
||||
NIR_DEBUG="novalidate" LIBGL_ALWAYS_SOFTWARE="true" GALLIUM_DRIVER="$CROSVM_GALLIUM_DRIVER" crosvm run \
|
||||
export NIR_VALIDATE=0
|
||||
|
||||
crosvm run \
|
||||
--gpu "$CROSVM_GPU_ARGS" \
|
||||
-m 4096 \
|
||||
-c 2 \
|
||||
-c $((FDO_CI_CONCURRENT > 1 ? FDO_CI_CONCURRENT - 1 : 1)) \
|
||||
--disable-sandbox \
|
||||
--shared-dir /:my_root:type=fs:writeback=true:timeout=60:cache=always \
|
||||
--host_ip=192.168.30.1 --netmask=255.255.255.0 --mac "AA:BB:CC:00:00:12" \
|
||||
-p "$CROSVM_KERNEL_ARGS" \
|
||||
/lava-files/bzImage > $DEQP_TEMP_DIR/crosvm 2>&1
|
||||
/lava-files/bzImage
|
||||
|
||||
RET=$(cat $DEQP_TEMP_DIR/exit_code || true)
|
||||
mkdir -p $CI_PROJECT_DIR/results
|
||||
mv /results/* $CI_PROJECT_DIR/results/.
|
||||
|
||||
# Got no exit code from the script, show crosvm output to help with debugging
|
||||
[ -n "$RET" ] || cat $DEQP_TEMP_DIR/crosvm || true
|
||||
|
||||
exit ${RET:-1}
|
||||
test -f $CI_PROJECT_DIR/results/success
|
||||
|
@@ -2,9 +2,6 @@
|
||||
|
||||
set -ex
|
||||
|
||||
# Needed so configuration files can contain paths to files in /install
|
||||
ln -sf $CI_PROJECT_DIR/install /install
|
||||
|
||||
if [ -z "$GPU_VERSION" ]; then
|
||||
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/gpu-version-*.txt)'
|
||||
exit 1
|
||||
@@ -136,6 +133,7 @@ if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
|
||||
fi
|
||||
|
||||
GALLIUM_DRIVER=llvmpipe \
|
||||
GALLIVM_PERF="nopt" \
|
||||
virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 &
|
||||
|
||||
sleep 1
|
||||
|
@@ -1,21 +0,0 @@
|
||||
variables:
|
||||
DEBIAN_X86_BUILD_BASE_IMAGE: "debian/x86_build-base"
|
||||
DEBIAN_BASE_TAG: "2022-01-02-deqp-runner"
|
||||
|
||||
DEBIAN_X86_BUILD_IMAGE_PATH: "debian/x86_build"
|
||||
DEBIAN_BUILD_TAG: "2021-12-31-keep-cmake"
|
||||
|
||||
DEBIAN_X86_TEST_BASE_IMAGE: "debian/x86_test-base"
|
||||
|
||||
DEBIAN_X86_TEST_IMAGE_PATH: "debian/x86_test-gl"
|
||||
DEBIAN_X86_TEST_GL_TAG: "2022-01-18-kernel"
|
||||
DEBIAN_X86_TEST_VK_TAG: "2022-01-02-deqp-runner"
|
||||
|
||||
FEDORA_X86_BUILD_TAG: "2021-12-31-refactor"
|
||||
KERNEL_ROOTFS_TAG: "2022-01-18-kernel"
|
||||
|
||||
WINDOWS_X64_BUILD_PATH: "windows/x64_build"
|
||||
WINDOWS_X64_BUILD_TAG: "2022-20-02-base_split"
|
||||
|
||||
WINDOWS_X64_TEST_PATH: "windows/x64_test"
|
||||
WINDOWS_X64_TEST_TAG: "2022-20-02-base_split"
|
@@ -85,7 +85,7 @@
|
||||
|
||||
.lava-traces-base:
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh"
|
||||
HWCI_TEST_SCRIPT: "/install/piglit/run.sh"
|
||||
artifacts:
|
||||
reports:
|
||||
junit: results/junit.xml
|
||||
|
@@ -14,12 +14,15 @@ fi
|
||||
rm -rf results
|
||||
mkdir -p results/job-rootfs-overlay/
|
||||
|
||||
# LAVA always uploads to MinIO when necessary as we don't have direct upload
|
||||
# from the DUT
|
||||
export PIGLIT_REPLAY_UPLOAD_TO_MINIO=1
|
||||
cp artifacts/ci-common/capture-devcoredump.sh results/job-rootfs-overlay/
|
||||
cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/
|
||||
artifacts/ci-common/generate-env.sh > results/job-rootfs-overlay/set-job-env-vars.sh
|
||||
|
||||
tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ .
|
||||
ci-fairy minio login --token-file "${CI_JOB_JWT_FILE}"
|
||||
ci-fairy minio login "${CI_JOB_JWT}"
|
||||
ci-fairy minio cp job-rootfs-overlay.tar.gz "minio://${JOB_ROOTFS_OVERLAY_PATH}"
|
||||
|
||||
touch results/lava.log
|
||||
@@ -36,7 +39,7 @@ artifacts/lava/lava_job_submitter.py \
|
||||
--ci-project-dir ${CI_PROJECT_DIR} \
|
||||
--device-type ${DEVICE_TYPE} \
|
||||
--dtb ${DTB} \
|
||||
--jwt-file "${CI_JOB_JWT_FILE}" \
|
||||
--jwt "${CI_JOB_JWT}" \
|
||||
--kernel-image-name ${KERNEL_IMAGE_NAME} \
|
||||
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
|
||||
--boot-method ${BOOT_METHOD} \
|
||||
|
@@ -25,16 +25,16 @@
|
||||
"""Send a job to LAVA, track it and collect log back"""
|
||||
|
||||
import argparse
|
||||
import pathlib
|
||||
import lavacli
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import traceback
|
||||
import urllib.parse
|
||||
import xmlrpc
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import lavacli
|
||||
import yaml
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from lavacli.utils import loader
|
||||
|
||||
# Timeout in minutes to decide if the device from the dispatched LAVA job has
|
||||
@@ -59,18 +59,6 @@ def fatal_err(msg):
|
||||
print_log(msg)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def hide_sensitive_data(yaml_data, hide_tag="HIDEME"):
|
||||
out_data = ""
|
||||
|
||||
for line in yaml_data.splitlines(True):
|
||||
if hide_tag in line:
|
||||
continue
|
||||
out_data += line
|
||||
|
||||
return out_data
|
||||
|
||||
|
||||
def generate_lava_yaml(args):
|
||||
# General metadata and permissions, plus also inexplicably kernel arguments
|
||||
values = {
|
||||
@@ -152,22 +140,15 @@ def generate_lava_yaml(args):
|
||||
# - fetch and unpack per-job environment from lava-submit.sh
|
||||
# - exec .gitlab-ci/common/init-stage2.sh
|
||||
init_lines = []
|
||||
|
||||
with open(args.first_stage_init, 'r') as init_sh:
|
||||
init_lines += [ x.rstrip() for x in init_sh if not x.startswith('#') and x.rstrip() ]
|
||||
|
||||
with open(args.jwt_file) as jwt_file:
|
||||
init_lines += [
|
||||
"set +x",
|
||||
f'echo -n "{jwt_file.read()}" > "{args.jwt_file}" # HIDEME',
|
||||
"set -x",
|
||||
]
|
||||
|
||||
init_lines += [
|
||||
'mkdir -p {}'.format(args.ci_project_dir),
|
||||
'wget -S --progress=dot:giga -O- {} | tar -xz -C {}'.format(args.mesa_build_url, args.ci_project_dir),
|
||||
'wget -S --progress=dot:giga -O- {} | tar -xz -C /'.format(args.job_rootfs_overlay_url),
|
||||
f'echo "export CI_JOB_JWT_FILE={args.jwt_file}" >> /set-job-env-vars.sh',
|
||||
'set +x',
|
||||
'export CI_JOB_JWT="{}"'.format(args.jwt),
|
||||
'set -x',
|
||||
'exec /init-stage2.sh',
|
||||
]
|
||||
test['definitions'][0]['repository']['run']['steps'] = init_lines
|
||||
@@ -304,7 +285,9 @@ def main(args):
|
||||
yaml_file = generate_lava_yaml(args)
|
||||
|
||||
if args.dump_yaml:
|
||||
print(hide_sensitive_data(generate_lava_yaml(args)))
|
||||
censored_args = args
|
||||
censored_args.jwt = "jwt-hidden"
|
||||
print(generate_lava_yaml(censored_args))
|
||||
|
||||
if args.validate_only:
|
||||
ret = validate_job(proxy, yaml_file)
|
||||
@@ -335,7 +318,13 @@ def main(args):
|
||||
if get_job_results(proxy, job_id, "0_mesa", "mesa") == True:
|
||||
break
|
||||
|
||||
def create_parser():
|
||||
|
||||
if __name__ == '__main__':
|
||||
# given that we proxy from DUT -> LAVA dispatcher -> LAVA primary -> us ->
|
||||
# GitLab runner -> GitLab primary -> user, safe to say we don't need any
|
||||
# more buffering
|
||||
sys.stdout.reconfigure(line_buffering=True)
|
||||
sys.stderr.reconfigure(line_buffering=True)
|
||||
parser = argparse.ArgumentParser("LAVA job submitter")
|
||||
|
||||
parser.add_argument("--pipeline-info")
|
||||
@@ -352,22 +341,11 @@ def create_parser():
|
||||
parser.add_argument("--kernel-image-type", nargs='?', default="")
|
||||
parser.add_argument("--boot-method")
|
||||
parser.add_argument("--lava-tags", nargs='?', default="")
|
||||
parser.add_argument("--jwt-file", type=pathlib.Path)
|
||||
parser.add_argument("--jwt")
|
||||
parser.add_argument("--validate-only", action='store_true')
|
||||
parser.add_argument("--dump-yaml", action='store_true')
|
||||
parser.add_argument("--visibility-group")
|
||||
|
||||
return parser
|
||||
|
||||
if __name__ == "__main__":
|
||||
# given that we proxy from DUT -> LAVA dispatcher -> LAVA primary -> us ->
|
||||
# GitLab runner -> GitLab primary -> user, safe to say we don't need any
|
||||
# more buffering
|
||||
sys.stdout.reconfigure(line_buffering=True)
|
||||
sys.stderr.reconfigure(line_buffering=True)
|
||||
|
||||
parser = create_parser()
|
||||
|
||||
parser.set_defaults(func=main)
|
||||
args = parser.parse_args()
|
||||
args.func(args)
|
||||
|
@@ -68,6 +68,7 @@ meson _build --native-file=native.file \
|
||||
-D cpp_args="$(echo -n $CPP_ARGS)" \
|
||||
-D libunwind=${UNWIND} \
|
||||
${DRI_LOADERS} \
|
||||
-D dri-drivers=${DRI_DRIVERS:-[]} \
|
||||
${GALLIUM_ST} \
|
||||
-D gallium-drivers=${GALLIUM_DRIVERS:-[]} \
|
||||
-D vulkan-drivers=${VULKAN_DRIVERS:-[]} \
|
||||
|
@@ -17,22 +17,6 @@ export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_C
|
||||
RESULTS=`pwd`/${PIGLIT_RESULTS_DIR:-results}
|
||||
mkdir -p $RESULTS
|
||||
|
||||
if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
|
||||
# deqp is to use virpipe, and virgl_test_server llvmpipe
|
||||
export GALLIUM_DRIVER="$GALLIUM_DRIVER"
|
||||
|
||||
VTEST_ARGS="--use-egl-surfaceless"
|
||||
if [ "$VIRGL_HOST_API" = "GLES" ]; then
|
||||
VTEST_ARGS="$VTEST_ARGS --use-gles"
|
||||
fi
|
||||
|
||||
GALLIUM_DRIVER=llvmpipe \
|
||||
GALLIVM_PERF="nopt" \
|
||||
virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 &
|
||||
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
if [ -n "$PIGLIT_FRACTION" -o -n "$CI_NODE_INDEX" ]; then
|
||||
FRACTION=`expr ${PIGLIT_FRACTION:-1} \* ${CI_NODE_TOTAL:-1}`
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --fraction $FRACTION"
|
||||
|
@@ -40,17 +40,19 @@ if [ "$VK_DRIVER" ]; then
|
||||
# Set the Vulkan driver to use.
|
||||
export VK_ICD_FILENAMES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json"
|
||||
|
||||
# Set environment for Wine.
|
||||
export WINEDEBUG="-all"
|
||||
export WINEPREFIX="/dxvk-wine64"
|
||||
export WINEESYNC=1
|
||||
if [ "x$PIGLIT_PROFILES" = "xreplay" ]; then
|
||||
# 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
|
||||
# Set environment for DXVK.
|
||||
export DXVK_LOG_LEVEL="none"
|
||||
export DXVK_STATE_CACHE=0
|
||||
|
||||
# Set environment for gfxreconstruct executables.
|
||||
export PATH="/gfxreconstruct/build/bin:$PATH"
|
||||
# Set environment for gfxreconstruct executables.
|
||||
export PATH="/gfxreconstruct/build/bin:$PATH"
|
||||
fi
|
||||
|
||||
SANITY_MESA_VERSION_CMD="vulkaninfo"
|
||||
|
||||
@@ -75,12 +77,14 @@ else
|
||||
|
||||
### GL/ES ###
|
||||
|
||||
# Set environment for apitrace executable.
|
||||
export PATH="/apitrace/build:$PATH"
|
||||
if [ "x$PIGLIT_PROFILES" = "xreplay" ]; then
|
||||
# Set environment for apitrace executable.
|
||||
export PATH="/apitrace/build:$PATH"
|
||||
|
||||
# Our rootfs may not have "less", which apitrace uses during
|
||||
# apitrace dump
|
||||
export PAGER=cat
|
||||
# Our rootfs may not have "less", which apitrace uses during
|
||||
# apitrace dump
|
||||
export PAGER=cat
|
||||
fi
|
||||
|
||||
SANITY_MESA_VERSION_CMD="wflinfo"
|
||||
|
||||
@@ -103,6 +107,7 @@ else
|
||||
|
||||
LD_LIBRARY_PATH="$__LD_LIBRARY_PATH" \
|
||||
GALLIUM_DRIVER=llvmpipe \
|
||||
GALLIVM_PERF="nopt" \
|
||||
VTEST_USE_EGL_SURFACELESS=1 \
|
||||
VTEST_USE_GLES=1 \
|
||||
virgl_test_server >"$RESULTS"/vtest-log.txt 2>&1 &
|
||||
@@ -128,6 +133,13 @@ fi
|
||||
# If the job is parallel at the gitlab job level, will take the corresponding
|
||||
# fraction of the caselist.
|
||||
if [ -n "$CI_NODE_INDEX" ]; then
|
||||
|
||||
if [ "$PIGLIT_PROFILES" != "${PIGLIT_PROFILES% *}" ]; then
|
||||
FAILURE_MESSAGE=$(printf "%s" "Can't parallelize piglit with multiple profiles")
|
||||
quiet print_red printf "%s\n" "$FAILURE_MESSAGE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
USE_CASELIST=1
|
||||
fi
|
||||
|
||||
@@ -164,7 +176,7 @@ cd /piglit
|
||||
|
||||
if [ -n "$USE_CASELIST" ]; then
|
||||
PIGLIT_TESTS=$(printf "%s" "$PIGLIT_TESTS")
|
||||
PIGLIT_GENTESTS="./piglit print-cmd $PIGLIT_TESTS replay --format \"{name}\" > /tmp/case-list.txt"
|
||||
PIGLIT_GENTESTS="./piglit print-cmd $PIGLIT_TESTS $PIGLIT_PROFILES --format \"{name}\" > /tmp/case-list.txt"
|
||||
RUN_GENTESTS="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $PIGLIT_GENTESTS"
|
||||
|
||||
eval $RUN_GENTESTS
|
||||
@@ -178,7 +190,7 @@ PIGLIT_OPTIONS=$(printf "%s" "$PIGLIT_OPTIONS")
|
||||
|
||||
PIGLIT_TESTS=$(printf "%s" "$PIGLIT_TESTS")
|
||||
|
||||
PIGLIT_CMD="./piglit run --timeout 300 -j${FDO_CI_CONCURRENT:-4} $PIGLIT_OPTIONS $PIGLIT_TESTS replay "$(/usr/bin/printf "%q" "$RESULTS")
|
||||
PIGLIT_CMD="./piglit run --timeout 300 -j${FDO_CI_CONCURRENT:-4} $PIGLIT_OPTIONS $PIGLIT_TESTS $PIGLIT_PROFILES "$(/usr/bin/printf "%q" "$RESULTS")
|
||||
|
||||
RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD && $HANG_DETECTION_CMD $PIGLIT_CMD"
|
||||
|
||||
@@ -186,7 +198,12 @@ if [ "$RUN_CMD_WRAPPER" ]; then
|
||||
RUN_CMD="set +e; $RUN_CMD_WRAPPER "$(/usr/bin/printf "%q" "$RUN_CMD")"; set -e"
|
||||
fi
|
||||
|
||||
ci-fairy minio login $MINIO_ARGS --token-file "${CI_JOB_JWT_FILE}"
|
||||
FAILURE_MESSAGE=$(printf "%s" "Unexpected change in results:")
|
||||
|
||||
if [ "x$PIGLIT_PROFILES" = "xreplay" ] \
|
||||
&& [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then
|
||||
ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT
|
||||
fi
|
||||
|
||||
eval $RUN_CMD
|
||||
|
||||
@@ -196,9 +213,12 @@ fi
|
||||
|
||||
ARTIFACTS_BASE_URL="https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts"
|
||||
|
||||
./piglit summary aggregate "$RESULTS" -o junit.xml
|
||||
if [ ${PIGLIT_JUNIT_RESULTS:-0} -eq 1 ]; then
|
||||
./piglit summary aggregate "$RESULTS" -o junit.xml
|
||||
FAILURE_MESSAGE=$(printf "${FAILURE_MESSAGE}\n%s" "Check the JUnit report for failures at: ${ARTIFACTS_BASE_URL}/results/junit.xml")
|
||||
fi
|
||||
|
||||
PIGLIT_RESULTS="${PIGLIT_RESULTS:-replay}"
|
||||
PIGLIT_RESULTS="${PIGLIT_RESULTS:-$PIGLIT_PROFILES}"
|
||||
RESULTSFILE="$RESULTS/$PIGLIT_RESULTS.txt"
|
||||
mkdir -p .gitlab-ci/piglit
|
||||
./piglit summary console "$RESULTS"/results.json.bz2 \
|
||||
@@ -207,28 +227,49 @@ mkdir -p .gitlab-ci/piglit
|
||||
| sed '/^summary:/Q' \
|
||||
> $RESULTSFILE
|
||||
|
||||
__PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME"
|
||||
__MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL"
|
||||
__MINIO_TRACES_PREFIX="traces"
|
||||
if [ "x$PIGLIT_PROFILES" = "xreplay" ] \
|
||||
&& [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then
|
||||
|
||||
if [ "x$PIGLIT_REPLAY_SUBCOMMAND" != "xprofile" ]; then
|
||||
quiet replay_minio_upload_images
|
||||
__PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME"
|
||||
__MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL"
|
||||
__MINIO_TRACES_PREFIX="traces"
|
||||
|
||||
if [ "x$PIGLIT_REPLAY_SUBCOMMAND" != "xprofile" ]; then
|
||||
quiet replay_minio_upload_images
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$USE_CASELIST" ]; then
|
||||
# Just filter the expected results based on the tests that were actually
|
||||
# executed, and switch to the version with no summary
|
||||
cat ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.orig" | sed '/^summary:/Q' | rev \
|
||||
| cut -f2- -d: | rev | sed "s/$/:/g" > /tmp/executed.txt
|
||||
|
||||
if [ ! -s $RESULTSFILE ]; then
|
||||
grep -F -f /tmp/executed.txt "$INSTALL/$PIGLIT_RESULTS.txt" \
|
||||
> ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" || true
|
||||
elif [ -f "$INSTALL/$PIGLIT_RESULTS.txt" ]; then
|
||||
cp "$INSTALL/$PIGLIT_RESULTS.txt" \
|
||||
".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline"
|
||||
else
|
||||
touch ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline"
|
||||
fi
|
||||
|
||||
if diff -q ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" $RESULTSFILE; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
./piglit summary html --exclude-details=pass \
|
||||
"$RESULTS"/summary "$RESULTS"/results.json.bz2
|
||||
|
||||
if [ "x$PIGLIT_PROFILES" = "xreplay" ]; then
|
||||
find "$RESULTS"/summary -type f -name "*.html" -print0 \
|
||||
| xargs -0 sed -i 's%<img src="file://'"${RESULTS}"'.*-\([0-9a-f]*\)\.png%<img src="https://'"${JOB_ARTIFACTS_BASE}"'/traces/\1.png%g'
|
||||
find "$RESULTS"/summary -type f -name "*.html" -print0 \
|
||||
| xargs -0 sed -i 's%<img src="file://%<img src="https://'"${PIGLIT_REPLAY_REFERENCE_IMAGES_BASE}"'/%g'
|
||||
fi
|
||||
|
||||
quiet print_red echo "Failures in traces:"
|
||||
cat $RESULTSFILE
|
||||
quiet print_red echo "Review the image changes and get the new checksums at: ${ARTIFACTS_BASE_URL}/results/summary/problems.html"
|
||||
FAILURE_MESSAGE=$(printf "${FAILURE_MESSAGE}\n%s" "Check the HTML summary for problems at: ${ARTIFACTS_BASE_URL}/results/summary/problems.html")
|
||||
|
||||
quiet print_red printf "%s\n" "$FAILURE_MESSAGE"
|
||||
quiet diff --color=always -u ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline" $RESULTSFILE
|
||||
exit 1
|
@@ -52,6 +52,6 @@ if [ -n "$MINIO_ARTIFACT_NAME" ]; then
|
||||
# Pass needed files to the test stage
|
||||
MINIO_ARTIFACT_NAME="$MINIO_ARTIFACT_NAME.tar.gz"
|
||||
gzip -c artifacts/install.tar > ${MINIO_ARTIFACT_NAME}
|
||||
ci-fairy minio login --token-file "${CI_JOB_JWT_FILE}"
|
||||
ci-fairy minio login $CI_JOB_JWT
|
||||
ci-fairy minio cp ${MINIO_ARTIFACT_NAME} minio://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}
|
||||
fi
|
||||
|
@@ -1,85 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
copy_tests_files() (
|
||||
SKQP_BACKEND="${1}"
|
||||
SKQP_FILE_PREFIX="${INSTALL}/${GPU_VERSION}-skqp"
|
||||
|
||||
if echo "${SKQP_BACKEND}" | grep -qE 'gl(es)?'
|
||||
then
|
||||
SKQP_RENDER_TESTS_FILE="${SKQP_FILE_PREFIX}-${SKQP_BACKEND}_rendertests.txt"
|
||||
cp "${SKQP_RENDER_TESTS_FILE}" "${SKQP_ASSETS_DIR}"/skqp/rendertests.txt
|
||||
return 0
|
||||
fi
|
||||
|
||||
# The unittests.txt path is hardcoded inside assets directory,
|
||||
# that is why it needs to be a special case.
|
||||
if echo "${SKQP_BACKEND}" | grep -qE "unitTest"
|
||||
then
|
||||
cp "${SKQP_FILE_PREFIX}_unittests.txt" "${SKQP_ASSETS_DIR}"/skqp/unittests.txt
|
||||
fi
|
||||
)
|
||||
|
||||
set -ex
|
||||
|
||||
# Needed so configuration files can contain paths to files in /install
|
||||
ln -sf "$CI_PROJECT_DIR"/install /install
|
||||
|
||||
INSTALL=${PWD}/install
|
||||
|
||||
if [ -z "$GPU_VERSION" ]; then
|
||||
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/gpu-version-*.txt)'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SKQP_ASSETS_DIR=/skqp/assets
|
||||
SKQP_RESULTS_DIR="${SKQP_RESULTS_DIR:-results}"
|
||||
|
||||
mkdir "${SKQP_ASSETS_DIR}"/skqp
|
||||
|
||||
SKQP_EXITCODE=0
|
||||
for SKQP_BACKEND in ${SKQP_BACKENDS}
|
||||
do
|
||||
set -e
|
||||
copy_tests_files "${SKQP_BACKEND}"
|
||||
|
||||
set +e
|
||||
SKQP_BACKEND_RESULTS_DIR="${SKQP_RESULTS_DIR}"/"${SKQP_BACKEND}"
|
||||
mkdir -p "${SKQP_BACKEND_RESULTS_DIR}"
|
||||
/skqp/skqp "${SKQP_ASSETS_DIR}" '' "${SKQP_BACKEND_RESULTS_DIR}" "${SKQP_BACKEND}_"
|
||||
BACKEND_EXITCODE=$?
|
||||
|
||||
if [ ! $BACKEND_EXITCODE -eq 0 ]
|
||||
then
|
||||
echo "skqp failed on ${SKQP_BACKEND} tests with ${BACKEND_EXITCODE} exit code."
|
||||
fi
|
||||
|
||||
# Propagate error codes to leverage the final job result
|
||||
SKQP_EXITCODE=$(( SKQP_EXITCODE | BACKEND_EXITCODE ))
|
||||
done
|
||||
|
||||
set +x
|
||||
|
||||
# Unit tests produce empty HTML reports, guide the user to check the TXT file.
|
||||
if echo "${SKQP_BACKENDS}" | grep -qE "unitTest"
|
||||
then
|
||||
# Remove the empty HTML report to avoid confusion
|
||||
rm -f "${SKQP_RESULTS_DIR}"/unitTest/report.html
|
||||
|
||||
echo "See skqp unit test results at:"
|
||||
echo "https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/${SKQP_RESULTS_DIR}/unitTest/unit_tests.txt"
|
||||
fi
|
||||
|
||||
for REPORT in "${SKQP_RESULTS_DIR}"/**/report.html
|
||||
do
|
||||
BACKEND_NAME=$(echo "${REPORT}" | sed 's@.*/\([^/]*\)/report.html@\1@')
|
||||
echo "See skqp ${BACKEND_NAME} render tests report at:"
|
||||
echo "https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/${REPORT}"
|
||||
done
|
||||
|
||||
# If there is no report available, tell the user that something is wrong.
|
||||
if [ ! -f "${REPORT}" ]
|
||||
then
|
||||
echo "No skqp report available. Probably some fatal error has occured during the skqp execution."
|
||||
fi
|
||||
|
||||
exit $SKQP_EXITCODE
|
@@ -18,7 +18,6 @@
|
||||
- .gitlab-ci/**/*
|
||||
- include/**/*
|
||||
- meson.build
|
||||
- .gitattributes
|
||||
- src/*
|
||||
- src/compiler/**/*
|
||||
- src/drm-shim/**/*
|
||||
@@ -31,6 +30,10 @@
|
||||
- src/loader/**/*
|
||||
- src/mapi/**/*
|
||||
- src/mesa/*
|
||||
- src/mesa/drivers/*
|
||||
- src/mesa/drivers/common/**/*
|
||||
- src/mesa/drivers/dri/*
|
||||
- src/mesa/drivers/dri/common/**/*
|
||||
- src/mesa/main/**/*
|
||||
- src/mesa/math/**/*
|
||||
- src/mesa/program/**/*
|
||||
@@ -38,10 +41,11 @@
|
||||
- src/mesa/state_tracker/**/*
|
||||
- src/mesa/swrast/**/*
|
||||
- src/mesa/swrast_setup/**/*
|
||||
- src/mesa/tnl/**/*
|
||||
- src/mesa/tnl_dd/**/*
|
||||
- src/mesa/vbo/**/*
|
||||
- src/mesa/x86/**/*
|
||||
- src/mesa/x86-64/**/*
|
||||
- src/tool/**/*
|
||||
- src/util/**/*
|
||||
|
||||
.vulkan-rules:
|
||||
@@ -128,7 +132,6 @@
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
- meson.build
|
||||
- .gitattributes
|
||||
- include/**/*
|
||||
- src/compiler/**/*
|
||||
- src/include/**/*
|
||||
@@ -431,23 +434,6 @@
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.crocus-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
- *ignore_scheduled_pipelines
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/gallium/drivers/crocus/**/*
|
||||
- src/gallium/winsys/crocus/**/*
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.iris-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
@@ -529,9 +515,6 @@
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*softpipe_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*lavapipe_file_list
|
||||
when: on_success
|
||||
|
@@ -9,5 +9,5 @@ ENV ErrorActionPreference='Stop'
|
||||
COPY mesa_deps_vs2019.ps1 C:\
|
||||
RUN C:\mesa_deps_vs2019.ps1
|
||||
|
||||
COPY mesa_deps_build.ps1 C:\
|
||||
RUN C:\mesa_deps_build.ps1
|
||||
COPY mesa_deps.ps1 C:\
|
||||
RUN C:\mesa_deps.ps1
|
@@ -1,7 +0,0 @@
|
||||
# escape=`
|
||||
|
||||
ARG base_image
|
||||
FROM ${base_image}
|
||||
|
||||
COPY mesa_deps_test.ps1 C:\
|
||||
RUN C:\mesa_deps_test.ps1
|
@@ -21,8 +21,4 @@ if (!$buildstatus) {
|
||||
}
|
||||
|
||||
Copy-Item ".\.gitlab-ci\windows\piglit_run.ps1" -Destination $installdir
|
||||
|
||||
Copy-Item ".\.gitlab-ci\windows\spirv2dxil_check.ps1" -Destination $installdir
|
||||
Copy-Item ".\.gitlab-ci\windows\spirv2dxil_run.ps1" -Destination $installdir
|
||||
|
||||
Get-ChildItem -Recurse -Filter "ci" | Get-ChildItem -Filter "*.txt" | Copy-Item -Destination $installdir
|
||||
Copy-Item ".\.gitlab-ci\windows\quick_gl.txt" -Destination $installdir
|
||||
|
@@ -6,8 +6,6 @@ $registry_username = $args[1]
|
||||
$registry_password = $args[2]
|
||||
$registry_user_image = $args[3]
|
||||
$registry_central_image = $args[4]
|
||||
$build_dockerfile = $args[5]
|
||||
$registry_base_image = $args[6]
|
||||
|
||||
Set-Location -Path ".\.gitlab-ci\windows"
|
||||
|
||||
@@ -41,7 +39,7 @@ if ($?) {
|
||||
}
|
||||
|
||||
Write-Host "No image found at $registry_user_image or $registry_central_image; rebuilding"
|
||||
docker --config "windows-docker.conf" build --no-cache -t "$registry_user_image" -f "$build_dockerfile" --build-arg base_image="$registry_base_image" .
|
||||
docker --config "windows-docker.conf" build --no-cache -t "$registry_user_image" .
|
||||
if (!$?) {
|
||||
Write-Host "Container build failed"
|
||||
docker --config "windows-docker.conf" logout "$registry_uri"
|
||||
|
@@ -129,8 +129,6 @@ if (!$buildstatus) {
|
||||
Exit 1
|
||||
}
|
||||
|
||||
# See https://gitlab.freedesktop.org/mesa/mesa/-/issues/3855
|
||||
# Until that's resolved, we need the vulkan-runtime as a build dependency to be able to run any unit tests on GL
|
||||
Get-Date
|
||||
Write-Host "Downloading Vulkan-Runtime"
|
||||
Invoke-WebRequest -Uri 'https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-runtime.exe' -OutFile 'C:\vulkan-runtime.exe' | Out-Null
|
||||
@@ -142,5 +140,66 @@ if (!$?) {
|
||||
}
|
||||
Remove-Item C:\vulkan-runtime.exe -Force
|
||||
|
||||
Get-Date
|
||||
Write-Host "Downloading Freeglut"
|
||||
|
||||
$freeglut_zip = 'freeglut-MSVC.zip'
|
||||
$freeglut_url = "https://www.transmissionzero.co.uk/files/software/development/GLUT/$freeglut_zip"
|
||||
|
||||
For ($i = 0; $i -lt 5; $i++) {
|
||||
Invoke-WebRequest -Uri $freeglut_url -OutFile $freeglut_zip
|
||||
$freeglut_downloaded = $?
|
||||
if ($freeglut_downloaded) {
|
||||
Break
|
||||
}
|
||||
}
|
||||
|
||||
if (!$freeglut_downloaded) {
|
||||
Write-Host "Failed to download Freeglut"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Get-Date
|
||||
Write-Host "Installing Freeglut"
|
||||
Expand-Archive $freeglut_zip -DestinationPath C:\
|
||||
if (!$?) {
|
||||
Write-Host "Failed to install Freeglut"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Get-Date
|
||||
Write-Host "Downloading glext.h"
|
||||
New-Item -ItemType Directory -Path ".\glext" -Name "GL"
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
Invoke-WebRequest -Uri 'https://www.khronos.org/registry/OpenGL/api/GL/glext.h' -OutFile '.\glext\GL\glext.h' | Out-Null
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning Piglit"
|
||||
git clone --no-progress --single-branch --no-checkout https://gitlab.freedesktop.org/mesa/piglit.git 'C:\src\piglit'
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone Piglit repository"
|
||||
Exit 1
|
||||
}
|
||||
Push-Location -Path C:\src\piglit
|
||||
git checkout b0bbeb876a506e0ee689dd7e17cee374c8284058
|
||||
Pop-Location
|
||||
|
||||
Get-Date
|
||||
$piglit_build = New-Item -ItemType Directory -Path "C:\src\piglit" -Name "build"
|
||||
Push-Location -Path $piglit_build.FullName
|
||||
Write-Host "Compiling Piglit"
|
||||
cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Piglit" -DGLUT_INCLUDE_DIR=C:\freeglut\include -DGLUT_glut_LIBRARY_RELEASE=C:\freeglut\lib\x64\freeglut.lib -DGLEXT_INCLUDE_DIR=.\glext && ninja -j32'
|
||||
$buildstatus = $?
|
||||
ninja -j32 install | Out-Null
|
||||
$installstatus = $?
|
||||
Pop-Location
|
||||
Remove-Item -Recurse -Path $piglit_build
|
||||
if (!$buildstatus -Or !$installstatus) {
|
||||
Write-Host "Failed to compile or install Piglit"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Copy-Item -Path C:\freeglut\bin\x64\freeglut.dll -Destination C:\Piglit\lib\piglit\bin\freeglut.dll
|
||||
|
||||
Get-Date
|
||||
Write-Host "Complete"
|
@@ -1,70 +0,0 @@
|
||||
Get-Date
|
||||
Write-Host "Downloading Freeglut"
|
||||
|
||||
$freeglut_zip = 'freeglut-MSVC.zip'
|
||||
$freeglut_url = "https://www.transmissionzero.co.uk/files/software/development/GLUT/$freeglut_zip"
|
||||
|
||||
For ($i = 0; $i -lt 5; $i++) {
|
||||
Invoke-WebRequest -Uri $freeglut_url -OutFile $freeglut_zip
|
||||
$freeglut_downloaded = $?
|
||||
if ($freeglut_downloaded) {
|
||||
Break
|
||||
}
|
||||
}
|
||||
|
||||
if (!$freeglut_downloaded) {
|
||||
Write-Host "Failed to download Freeglut"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Get-Date
|
||||
Write-Host "Installing Freeglut"
|
||||
Expand-Archive $freeglut_zip -DestinationPath C:\
|
||||
if (!$?) {
|
||||
Write-Host "Failed to install Freeglut"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Get-Date
|
||||
Write-Host "Downloading glext.h"
|
||||
New-Item -ItemType Directory -Path ".\glext" -Name "GL"
|
||||
$ProgressPreference = "SilentlyContinue"
|
||||
Invoke-WebRequest -Uri 'https://www.khronos.org/registry/OpenGL/api/GL/glext.h' -OutFile '.\glext\GL\glext.h' | Out-Null
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning Piglit"
|
||||
git clone --no-progress --single-branch --no-checkout https://gitlab.freedesktop.org/mesa/piglit.git 'C:\src\piglit'
|
||||
if (!$?) {
|
||||
Write-Host "Failed to clone Piglit repository"
|
||||
Exit 1
|
||||
}
|
||||
Push-Location -Path C:\src\piglit
|
||||
git checkout f7f2a6c2275cae023a27b6cc81be3dda8c99492d
|
||||
Pop-Location
|
||||
|
||||
Get-Date
|
||||
$piglit_build = New-Item -ItemType Directory -Path "C:\src\piglit" -Name "build"
|
||||
Push-Location -Path $piglit_build.FullName
|
||||
Write-Host "Compiling Piglit"
|
||||
cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Piglit" -DGLUT_INCLUDE_DIR=C:\freeglut\include -DGLUT_glut_LIBRARY_RELEASE=C:\freeglut\lib\x64\freeglut.lib -DGLEXT_INCLUDE_DIR=.\glext && ninja -j32'
|
||||
$buildstatus = $?
|
||||
ninja -j32 install | Out-Null
|
||||
$installstatus = $?
|
||||
Pop-Location
|
||||
Remove-Item -Recurse -Path $piglit_build
|
||||
if (!$buildstatus -Or !$installstatus) {
|
||||
Write-Host "Failed to compile or install Piglit"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
Copy-Item -Path C:\freeglut\bin\x64\freeglut.dll -Destination C:\Piglit\lib\piglit\bin\freeglut.dll
|
||||
|
||||
Get-Date
|
||||
Write-Host "Cloning spirv-samples"
|
||||
git clone --no-progress --single-branch --no-checkout https://github.com/dneto0/spirv-samples.git C:\spirv-samples\
|
||||
Push-Location -Path C:\spirv-samples\
|
||||
git checkout 7ac0ad5a7fe0ec884faba1dc2916028d0268eeef
|
||||
Pop-Location
|
||||
|
||||
Get-Date
|
||||
Write-Host "Complete"
|
@@ -9,7 +9,7 @@ cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd6
|
||||
|
||||
py -3 C:\Piglit\bin\piglit.py summary console .\results | Select -SkipLast 1 | Select-String -NotMatch -Pattern ': pass' | Set-Content -Path .\result.txt
|
||||
|
||||
$reference = Get-Content ".\_install\$env:PIGLIT_RESULTS.txt"
|
||||
$reference = Get-Content ".\_install\$env:PIGLIT_PROFILE.txt"
|
||||
$result = Get-Content .\result.txt
|
||||
if (-Not ($reference -And $result)) {
|
||||
Exit 1
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,54 +0,0 @@
|
||||
# Ensure that dxil.dll in on the %PATH%
|
||||
$dxil_dll = cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 -no_logo && where dxil.dll" 2>&1
|
||||
if ($dxil_dll -notmatch "dxil.dll$") {
|
||||
Write-Output "Couldn't get path to dxil.dll"
|
||||
exit 1
|
||||
}
|
||||
$env:Path = "$(Split-Path $dxil_dll);$env:Path"
|
||||
|
||||
$exec_mode_to_stage = @{ Fragment = "fragment"; Vertex = "vertex"; GLCompute = "compute" }
|
||||
|
||||
$spvasm_files = (Get-ChildItem C:\spirv-samples\spvasm\*.spvasm) | Sort-Object Name
|
||||
foreach ($spvasm in $spvasm_files) {
|
||||
$test_name = "Test:$($spvasm.Name):"
|
||||
$spvfile = ($spvasm -replace '\.spvasm$', '.spv')
|
||||
$content = Get-Content $spvasm
|
||||
$spv_version = "1.0"
|
||||
if ($content | Where-Object { $_ -match 'Version:\s(\d+\.\d+)' }) {
|
||||
$spv_version = $Matches[1]
|
||||
}
|
||||
|
||||
$as_output = C:\spirv-tools\bin\spirv-as.exe --target-env spv$spv_version --preserve-numeric-ids -o $spvfile $spvasm 2>&1 | % { if ($_ -is [System.Management.Automation.ErrorRecord]) { $_.Exception.Message } else { $_ } } | Out-String
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Output "$test_name Skip: Unable to assemble shader"
|
||||
Write-Output "$as_output`n"
|
||||
continue
|
||||
}
|
||||
|
||||
$entry_points = $content | Select-String -Pattern '^OpEntryPoint\s(\w+)[^"]+"(\w+)"' | Select-Object -ExpandProperty Matches -First 1
|
||||
if ($entry_points.Count -eq 0) {
|
||||
Write-Output "$test_name Skip"
|
||||
Write-Output "No OpEntryPoint not found`n"
|
||||
continue
|
||||
}
|
||||
|
||||
foreach ($match in $entry_points) {
|
||||
$exec_mode, $entry_point = $match.Groups[1].Value, $match.Groups[2].Value
|
||||
$subtest = "$test_name$entry_point|${exec_mode}:"
|
||||
$stage = $exec_mode_to_stage[$exec_mode]
|
||||
if ($stage -eq '') {
|
||||
Write-Output "$subtest Fail: Unknown shader type ($exec_mode)"
|
||||
continue
|
||||
}
|
||||
|
||||
$s2d_output = .\_install\bin\spirv2dxil.exe -v -e "$entry_point" -s "$stage" -o NUL $spvfile 2>&1 | ForEach-Object { if ($_ -is [System.Management.Automation.ErrorRecord]) { $_.Exception.Message } else { $_ } } | Out-String
|
||||
if ($LASTEXITCODE -eq 0) {
|
||||
Write-Output "$subtest Pass"
|
||||
}
|
||||
else {
|
||||
Write-Output "$subtest Fail"
|
||||
$sanitized_output = $s2d_output -replace ', file .+, line \d+' -replace ' In file .+:\d+'
|
||||
Write-Output "$sanitized_output`n"
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,16 +0,0 @@
|
||||
. .\_install\spirv2dxil_check.ps1 2>&1 | Set-Content -Path .\spirv2dxil_results.txt
|
||||
$reference = Get-Content .\_install\spirv2dxil_reference.txt
|
||||
$result = Get-Content .\spirv2dxil_results.txt
|
||||
if (-Not ($reference -And $result)) {
|
||||
Exit 1
|
||||
}
|
||||
|
||||
$diff = Compare-Object -ReferenceObject $reference -DifferenceObject $result
|
||||
if (-Not $diff) {
|
||||
Exit 0
|
||||
}
|
||||
|
||||
Write-Host "Unexpected change in results:"
|
||||
Write-Output $diff | Format-Table -Property SideIndicator, InputObject -Wrap
|
||||
|
||||
Exit 1
|
5
.mailmap
5
.mailmap
@@ -107,8 +107,6 @@ Bruce Cherniak <bruce.cherniak@intel.com>
|
||||
|
||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
|
||||
|
||||
Caio Oliveira <caio.oliveira@intel.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)>
|
||||
@@ -297,8 +295,7 @@ Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
|
||||
|
||||
Jan Zielinski <jan.zielinski@intel.com> jzielins <jan.zielinski@intel.com>
|
||||
|
||||
Jason Ekstrand <jason.ekstrand@collabora.com> <jason@jlekstrand.net>
|
||||
Jason Ekstrand <jason.ekstrand@collabora.com> <jason.ekstrand@intel.com>
|
||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
|
||||
|
||||
Jeremy Huddleston <jeremyhu@apple.com>
|
||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
|
||||
|
10482
.pick_status.json
10482
.pick_status.json
File diff suppressed because it is too large
Load Diff
@@ -116,6 +116,8 @@ meson.build @dbaker @eric
|
||||
/src/gallium/winsys/iris/ @kwg @llandwerlin @jekstrand @idr
|
||||
/src/gallium/drivers/iris/ @kwg @llandwerlin @jekstrand @idr
|
||||
/src/gallium/drivers/i915/ @anholt
|
||||
/src/mesa/drivers/dri/i965/ @kwg @llandwerlin @jekstrand @idr
|
||||
/doxygen/i965.doxy @kwg @llandwerlin @jekstrand @idr
|
||||
|
||||
# Microsoft
|
||||
/src/microsoft/ @jenatali
|
||||
@@ -126,6 +128,11 @@ meson.build @dbaker @eric
|
||||
/src/panfrost/vulkan/ @bbrezillon
|
||||
/src/gallium/drivers/panfrost/ @alyssa
|
||||
|
||||
# SWR
|
||||
/src/gallium/drivers/swr/ @jzielins @krzysztof.raszkowski
|
||||
/docs/gallium/drivers/openswr.rst @jzielins @krzysztof.raszkowski
|
||||
/docs/gallium/drivers/openswr/ @jzielins @krzysztof.raszkowski
|
||||
|
||||
# VMware
|
||||
/src/gallium/drivers/svga/ @brianp @charmainel
|
||||
/src/gallium/winsys/svga/ @thomash @drawat
|
||||
|
@@ -42,13 +42,10 @@ LOCAL_SHARED_LIBRARIES := libc libdl libdrm libm liblog libcutils libz libc++ li
|
||||
LOCAL_STATIC_LIBRARIES := libexpat libarect libelf
|
||||
LOCAL_HEADER_LIBRARIES := libnativebase_headers hwvulkan_headers libbacktrace_headers
|
||||
MESON_GEN_PKGCONFIGS := backtrace cutils expat hardware libdrm:$(LIBDRM_VERSION) nativewindow sync zlib:1.2.11 libelf
|
||||
LOCAL_CFLAGS += $(BOARD_MESA3D_CFLAGS)
|
||||
|
||||
ifneq ($(filter swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
|
||||
ifeq ($(BOARD_MESA3D_FORCE_SOFTPIPE),)
|
||||
ifneq ($(filter swr swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
|
||||
MESON_GEN_LLVM_STUB := true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(filter zink,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
LOCAL_SHARED_LIBRARIES += libvulkan
|
||||
@@ -77,14 +74,10 @@ LOCAL_SHARED_LIBRARIES += libdrm_nouveau
|
||||
MESON_GEN_PKGCONFIGS += libdrm_nouveau:$(LIBDRM_VERSION)
|
||||
endif
|
||||
|
||||
ifneq ($(filter d3d12,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
LOCAL_HEADER_LIBRARIES += DirectX-Headers
|
||||
LOCAL_STATIC_LIBRARIES += DirectX-Guids
|
||||
MESON_GEN_PKGCONFIGS += DirectX-Headers
|
||||
endif
|
||||
|
||||
ifneq ($(MESON_GEN_LLVM_STUB),)
|
||||
MESON_LLVM_VERSION := 12.0.0
|
||||
# Required for swr gallium target
|
||||
MESON_LLVM_IRBUILDER_PATH := external/llvm-project/llvm/include/llvm/IR/IRBuilder.h
|
||||
LOCAL_SHARED_LIBRARIES += libLLVM12
|
||||
endif
|
||||
|
||||
|
@@ -93,7 +93,6 @@ MESON_GEN_NINJA := \
|
||||
-Dvulkan-drivers=$(subst $(space),$(comma),$(subst radeon,amd,$(BOARD_MESA3D_VULKAN_DRIVERS))) \
|
||||
-Dgbm=enabled \
|
||||
-Degl=enabled \
|
||||
-Dcpp_rtti=false \
|
||||
|
||||
MESON_BUILD := PATH=/usr/bin:/bin:/sbin:$$PATH ninja -C $(MESON_OUT_DIR)/build
|
||||
|
||||
@@ -129,6 +128,7 @@ $(MESON_GEN_FILES_TARGET): PRIVATE_C_INCLUDES := $(my_c_includes)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_IMPORTED_INCLUDES := $(imported_includes)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_LDFLAGS := $(my_ldflags)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_LDLIBS := $(my_ldlibs)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TIDY_CHECKS := $(my_tidy_checks)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TIDY_FLAGS := $(my_tidy_flags)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_ARFLAGS := $(my_arflags)
|
||||
@@ -139,11 +139,6 @@ $(MESON_GEN_FILES_TARGET): PRIVATE_ALL_OBJECTS := $(strip $(all_objects))
|
||||
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
|
||||
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_global_ldflags)
|
||||
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_LIBCRT_BUILTINS := $(my_target_libcrt_builtins)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_LIBATOMIC := $(my_target_libatomic)
|
||||
$(MESON_GEN_FILES_TARGET): PRIVATE_TARGET_CRTBEGIN_SO_O := $(my_target_crtbegin_so_o)
|
||||
@@ -257,7 +252,8 @@ ifneq ($(MESON_GEN_LLVM_STUB),)
|
||||
mkdir -p $(dir $@)/subprojects/llvm/
|
||||
echo -e "project('llvm', 'cpp', version : '$(MESON_LLVM_VERSION)')\n" \
|
||||
"dep_llvm = declare_dependency()\n" \
|
||||
"has_rtti = false\n" > $(dir $@)/subprojects/llvm/meson.build
|
||||
"has_rtti = false\n" \
|
||||
"irbuilder_h = files('$(AOSP_ABSOLUTE_PATH)/$(MESON_LLVM_IRBUILDER_PATH)')" > $(dir $@)/subprojects/llvm/meson.build
|
||||
endif
|
||||
$(MESON_GEN_NINJA)
|
||||
$(MESON_BUILD)
|
||||
|
@@ -105,7 +105,7 @@ def release_candidate(args: RCArguments) -> None:
|
||||
|
||||
data = read_calendar()
|
||||
|
||||
with CALENDAR_CSV.open('w', newline='') as f:
|
||||
with CALENDAR_CSV.open('w') as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerows(data)
|
||||
|
||||
@@ -147,7 +147,7 @@ def final_release(args: FinalArguments) -> None:
|
||||
data = read_calendar()
|
||||
date = _calculate_next_release_date(not args.zero_released)
|
||||
|
||||
with CALENDAR_CSV.open('w', newline='') as f:
|
||||
with CALENDAR_CSV.open('w') as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerows(data)
|
||||
|
||||
@@ -199,7 +199,7 @@ def extend(args: ExtendArguments) -> None:
|
||||
|
||||
current = read_calendar()
|
||||
|
||||
with CALENDAR_CSV.open('w', newline='') as f:
|
||||
with CALENDAR_CSV.open('w') as f:
|
||||
writer = csv.writer(f)
|
||||
with write_existing(writer, current) as row:
|
||||
# Get rid of -rcX as well
|
||||
|
@@ -177,13 +177,6 @@ SOURCES = [
|
||||
Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib.h'),
|
||||
Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib_xrandr.h'),
|
||||
Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT'),
|
||||
Source('include/vk_video/vulkan_video_codec_h264std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_h264std_decode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std_decode.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_h264std_encode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std_encode.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_h265std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h265std.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_h265std_decode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h265std_decode.h'),
|
||||
Source('include/vk_video/vulkan_video_codec_h265std_encode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h265std_encode.h'),
|
||||
Source('include/vk_video/vulkan_video_codecs_common.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codecs_common.h'),
|
||||
Source('include/vulkan/.editorconfig', None),
|
||||
],
|
||||
},
|
||||
|
@@ -1,9 +0,0 @@
|
||||
/drivers/vmware-guest.html /drivers/svga3d.html 301
|
||||
/gallium/drivers/freedreno.html /drivers/freedreno.html 301
|
||||
/gallium/drivers/freedreno/ir3-notes.html /drivers/freedreno/ir3-notes.html 301
|
||||
/gallium/drivers/llvmpipe.html /drivers/llvmpipe.html 301
|
||||
/gallium/drivers/zink.html /drivers/zink.html 301
|
||||
/llvmpipe.html /drivers/llvmpipe.html 301
|
||||
/postprocess.html /gallium/postprocess.html 301
|
||||
/versions.html /relnotes.html 301
|
||||
/vmware-guest.html /drivers/vmware-guest.html 301
|
@@ -242,27 +242,3 @@ directory. You can hack on mesa and iterate testing the build with:
|
||||
.. code-block:: console
|
||||
|
||||
sudo docker run --rm -v `pwd`:/mesa $IMAGE ninja -C /mesa/_build
|
||||
|
||||
|
||||
Conformance Tests
|
||||
-----------------
|
||||
|
||||
Some conformance tests require a special treatment to be maintained on Gitlab CI.
|
||||
This section lists their documentation pages.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
skqp
|
||||
|
||||
|
||||
Updating Gitlab CI Linux Kernel
|
||||
-------------------------------
|
||||
|
||||
Gitlab CI usually runs a bleeding-edge kernel. The following documentation has
|
||||
instructions on how to uprev Linux Kernel in the Gitlab Ci ecosystem.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
kernel
|
||||
|
@@ -1,121 +0,0 @@
|
||||
Upreving Linux Kernel
|
||||
=====================
|
||||
|
||||
Occasionally, the Gitlab CI needs a Linux Kernel update to enable new kernel
|
||||
features, device drivers, bug fixes etc to CI jobs.
|
||||
Kernel uprevs in Gitlab CI are relatively simple, but prone to lots of
|
||||
side-effects since many devices from different platforms are involved in the
|
||||
pipeline.
|
||||
|
||||
Kernel repository
|
||||
-----------------
|
||||
|
||||
The Linux Kernel used in the Gitlab CI is stored at the following repository:
|
||||
https://gitlab.freedesktop.org/gfx-ci/linux
|
||||
|
||||
It is common that Mesa kernel brings some patches that were not merged on the
|
||||
Linux mainline, that is why Mesa has its own kernel version which should be used
|
||||
as the base for newer kernels.
|
||||
|
||||
So, one should base the kernel uprev from the last tag used in the Mesa CI,
|
||||
please refer to `.gitlab-ci.yml` `KERNEL_URL` variable.
|
||||
Every tag has a standard naming: `vX.YZ-for-mesa-ci-<commit_short_SHA>`, which
|
||||
can be created via the command:
|
||||
|
||||
:code:`git tag vX.YZ-for-mesa-ci-$(git rev-parse --short HEAD)`
|
||||
|
||||
Building Kernel
|
||||
---------------
|
||||
|
||||
When Mesa CI generates a new rootfs image, the Linux Kernel is built based on
|
||||
the script located at `.gitlab-ci/build-kernel.sh`.
|
||||
|
||||
Updating Kconfigs
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
When a Kernel uprev happens, it is worth compiling and cross-compiling the
|
||||
Kernel locally, in order to update the Kconfigs accordingly. Remember that the
|
||||
resulting Kconfig is a merge between *Mesa CI Kconfig* and *Linux tree
|
||||
defconfig* made via `merge_config.sh` script located at Linux Kernel tree.
|
||||
|
||||
Kconfigs location
|
||||
"""""""""""""""""
|
||||
|
||||
+------------+--------------------------------------------+-------------------------------------+
|
||||
| Platform | Mesa CI Kconfig location | Linux tree defconfig |
|
||||
+============+============================================+=====================================+
|
||||
| arm | .gitlab-ci/container/arm.config | arch/arm/configs/multi_v7_defconfig |
|
||||
+------------+--------------------------------------------+-------------------------------------+
|
||||
| arm64 | .gitlab-ci/container/arm64.config | arch/arm64/configs/defconfig |
|
||||
+------------+--------------------------------------------+-------------------------------------+
|
||||
| x86-64 | .gitlab-ci/container/x86_64.config | arch/x86/configs/x86_64_defconfig |
|
||||
+------------+--------------------------------------------+-------------------------------------+
|
||||
|
||||
Updating image tags
|
||||
-------------------
|
||||
|
||||
Every kernel uprev should update 3 image tags, located at two files.
|
||||
|
||||
:code:`.gitlab-ci.yml` tag
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
- **KERNEL_URL** for the location of the new kernel
|
||||
|
||||
:code:`.gitlab-ci/image-tags.yml` tags
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
- **KERNEL_ROOTFS_TAG** to rebuild rootfs with the new kernel
|
||||
- **DEBIAN_X86_TEST_GL_TAG** to ensure that the new rootfs is being used by the Gitlab x86 jobs
|
||||
|
||||
Development routine
|
||||
-------------------
|
||||
|
||||
1. Compile the newer kernel locally for each platform.
|
||||
2. Compile device trees for ARM platforms
|
||||
3. Update Kconfigs. Are new Kconfigs necessary? Is CONFIG_XYZ_BLA deprecated? Does the `merge_config.sh` override an important config?
|
||||
4. Push a new development branch to `Kernel repository`_ based on the latest kernel tag used in Gitlab CI
|
||||
5. Hack `build-kernel.sh` script to clone kernel from your development branch
|
||||
6. Update image tags. See `Updating image tags`_
|
||||
7. Run the entire CI pipeline, all the automatic jobs should be green. If some job is red or taking too long, you will need to investigate it and probably ask for help.
|
||||
|
||||
When the Kernel uprev is stable
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
1. Push a new tag to Mesa CI `Kernel repository`_
|
||||
2. Update KERNEL_URL `debian/x86_test-gl` job definition
|
||||
3. Open a merge request, if it is not opened yet
|
||||
|
||||
Tips and Tricks
|
||||
---------------
|
||||
|
||||
Compare pipelines
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
To have the most confidence that a kernel uprev does not break anything in Mesa,
|
||||
it is suggested that one runs the entire CI pipeline to check if the update affected the manual CI jobs.
|
||||
|
||||
Step-by-step
|
||||
""""""""""""
|
||||
|
||||
1. Create a local branch in the same git ref (should be the main branch) before branching to the kernel uprev kernel.
|
||||
2. Push this test branch
|
||||
3. Run the entire pipeline against the test branch, even the manual jobs
|
||||
4. Now do the same for the kernel uprev branch
|
||||
5. Compare the job results. If a CI job turned red on your uprev branch, it means that the kernel update broke the test. Otherwise, it should be fine.
|
||||
|
||||
Bare-metal custom kernels
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Some CI jobs have support to plug in a custom kernel by simply changing a variable.
|
||||
This is great, since rebuilding the kernel and rootfs may takes dozens of minutes.
|
||||
|
||||
For example, freedreno jobs `gitlab.yml` manifest support a variable named
|
||||
`BM_KERNEL`. If one puts a gz-compressed kernel URL there, the job will use that
|
||||
kernel to boot the freedreno bare-metal devices. The same works for `BM_DTB` in
|
||||
the case of device tree binaries.
|
||||
|
||||
Careful reading of the job logs
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Sometimes a job may turn to red for reasons unrelated to the kernel update, e.g.
|
||||
LAVA `tftp` timeout, problems with the freedesktop servers etc.
|
||||
So it is important to see the reason why the job turned red, and retry it if an
|
||||
infrastructure error has happened.
|
101
docs/ci/skqp.rst
101
docs/ci/skqp.rst
@@ -1,101 +0,0 @@
|
||||
skqp
|
||||
====
|
||||
|
||||
`skqp <https://skia.org/docs/dev/testing/skqp/>`_ stands for SKIA Quality
|
||||
Program conformance tests. Basically, it has sets of rendering tests and unit
|
||||
tests to ensure that `SKIA <https://skia.org/>`_ is meeting its design specifications on a specific
|
||||
device.
|
||||
|
||||
The rendering tests have support for GL, GLES and Vulkan backends and test some
|
||||
rendering scenarios.
|
||||
And the unit tests check the GPU behavior without rendering images.
|
||||
|
||||
Tests
|
||||
-----
|
||||
|
||||
Render tests design
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
It is worth noting that `rendertests.txt` can bring some detail about each test
|
||||
expectation, so each test can have a max pixel error count, to tell skqp that it
|
||||
is OK to have at most that number of errors for that test. See also:
|
||||
https://github.com/google/skia/blob/main/tools/skqp/README_ALGORITHM.md
|
||||
|
||||
.. _test-location:
|
||||
|
||||
Location
|
||||
^^^^^^^^
|
||||
|
||||
Each `rendertests.txt` and `unittest.txt` file must be located inside a specific
|
||||
subdirectory inside skqp assets directory.
|
||||
|
||||
+--------------+--------------------------------------------+
|
||||
| Test type | Location |
|
||||
+==============+============================================+
|
||||
| Render tests | `${SKQP_ASSETS_DIR}/skqp/rendertests.txt` |
|
||||
+--------------+--------------------------------------------+
|
||||
| Unit tests | `${SKQP_ASSETS_DIR}/skqp/unittests.txt` |
|
||||
+--------------+--------------------------------------------+
|
||||
|
||||
The `skqp-runner.sh` script will make the necessary modifications to separate
|
||||
`rendertests.txt` for each backend-driver combination. As long as the test files are located in the expected place:
|
||||
|
||||
+--------------+----------------------------------------------------------------------------------------------+
|
||||
| Test type | Location |
|
||||
+==============+==============================================================================================+
|
||||
| Render tests | `${MESA_REPOSITORY_DIR}/src/${GPU_DRIVER}/ci/${GPU_VERSION}-${SKQP_BACKEND}_rendertests.txt` |
|
||||
+--------------+----------------------------------------------------------------------------------------------+
|
||||
| Unit tests | `${MESA_REPOSITORY_DIR}/src/${GPU_DRIVER}/ci/${GPU_VERSION}_unittests.txt` |
|
||||
+--------------+----------------------------------------------------------------------------------------------+
|
||||
|
||||
Where `SKQP_BACKEND` can be:
|
||||
|
||||
- gl: for GL backend
|
||||
- gles: for GLES backend
|
||||
- vk: for Vulkan backend
|
||||
|
||||
Example file
|
||||
""""""""""""
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
src/freedreno/ci/freedreno-a630-skqp-gl_rendertests.txt
|
||||
|
||||
- GPU_DRIVER: `freedreno`
|
||||
- GPU_VERSION: `freedreno-a630`
|
||||
- SKQP_BACKEND: `gl`
|
||||
|
||||
.. _rendertests-design:
|
||||
|
||||
skqp reports
|
||||
------------
|
||||
|
||||
skqp generates reports after finishing its execution, they are located at the job
|
||||
artifacts results directory and are divided in subdirectories by rendering tests
|
||||
backends and unit
|
||||
tests. The job log has links to every generated report in order to facilitate
|
||||
the skqp debugging.
|
||||
|
||||
Maintaining skqp on Mesa CI
|
||||
---------------------------
|
||||
|
||||
skqp is built alongside with another binary, namely `list_gpu_unit_tests`, it is
|
||||
located in the same folder where `skqp` binary is.
|
||||
|
||||
This binary will generate the expected `unittests.txt` for the target GPU, so
|
||||
ideally it should be executed on every skqp update and when a new device
|
||||
receives skqp CI jobs.
|
||||
|
||||
1. Generate target unit tests for the current GPU with :code:`./list_gpu_unit_tests > unittests.txt`
|
||||
|
||||
2. Run skqp job
|
||||
|
||||
3. If there is a failing or crashing unit test, remove it from the corresponding `unittests.txt`
|
||||
|
||||
4. If there is a crashing render test, remove it from the corresponding `rendertests.txt`
|
||||
|
||||
5. If there is a failing render test, visually inspect the result from the HTML report
|
||||
- If the render result is OK, update the max error count for that test
|
||||
- Otherwise, or put `-1` in the same threshold, as seen in :ref:`rendertests-design`
|
||||
|
||||
6. Remember to put the new tests files to the locations cited in :ref:`test-location`
|
@@ -128,5 +128,5 @@ Basic formatting guidelines
|
||||
prefer the use of ``bool``, ``true``, and ``false`` over
|
||||
``GLboolean``, ``GL_TRUE``, and ``GL_FALSE``. In C code, this may
|
||||
mean that ``#include <stdbool.h>`` needs to be added. The
|
||||
``try_emit_*`` method ``src/mesa/state_tracker/st_glsl_to_tgsi.cpp``
|
||||
can serve as an example.
|
||||
``try_emit_*`` methods in ``src/mesa/program/ir_to_mesa.cpp`` and
|
||||
``src/mesa/state_tracker/st_glsl_to_tgsi.cpp`` can serve as examples.
|
||||
|
14
docs/conf.py
14
docs/conf.py
@@ -135,6 +135,20 @@ html_extra_path = [
|
||||
]
|
||||
|
||||
html_redirects = [
|
||||
('drivers/vmware-guest', 'drivers/svga3d.html'),
|
||||
('gallium/drivers/freedreno', 'drivers/freedreno.html'),
|
||||
('gallium/drivers/freedreno/ir3-notes', 'drivers/freedreno/ir3-notes.html'),
|
||||
('gallium/drivers/llvmpipe', 'drivers/llvmpipe.html'),
|
||||
('gallium/drivers/openswr', 'drivers/openswr.html'),
|
||||
('gallium/drivers/openswr/faq', 'drivers/openswr/faq.html'),
|
||||
('gallium/drivers/openswr/knobs', 'drivers/openswr/knobs.html'),
|
||||
('gallium/drivers/openswr/profiling', 'drivers/openswr/profiling.html'),
|
||||
('gallium/drivers/openswr/usage', 'drivers/openswr/usage.html'),
|
||||
('gallium/drivers/zink', 'drivers/zink.html'),
|
||||
('llvmpipe', 'drivers/llvmpipe.html'),
|
||||
('postprocess', 'gallium/postprocess.html'),
|
||||
('versions', 'relnotes.html'),
|
||||
('vmware-guest', 'drivers/vmware-guest.html'),
|
||||
('webmaster', 'https://www.mesa3d.org/website/'),
|
||||
]
|
||||
|
||||
|
@@ -23,7 +23,7 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
functions and enums to the ``gl_API.xml`` file. Then, a bunch of
|
||||
source files must be regenerated by executing the corresponding
|
||||
Python scripts.
|
||||
- Add a new entry to the ``gl_extensions`` struct in ``consts_exts.h`` if
|
||||
- Add a new entry to the ``gl_extensions`` struct in ``mtypes.h`` if
|
||||
the extension requires driver capabilities not already exposed by
|
||||
another extension.
|
||||
- Add a new entry to the ``src/mesa/main/extensions_table.h`` file.
|
||||
|
@@ -1,232 +0,0 @@
|
||||
ANV
|
||||
===
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
Here are a few environment variable debug environment variables
|
||||
specific to Anv:
|
||||
|
||||
:envvar:`ANV_ENABLE_PIPELINE_CACHE`
|
||||
If defined to ``0`` or ``false``, this will disable pipeline
|
||||
caching, forcing Anv to reparse and recompile any VkShaderModule
|
||||
(SPIRV) it is given.
|
||||
:envvar:`ANV_DISABLE_SECONDARY_CMD_BUFFER_CALLS`
|
||||
If defined to ``1`` or ``true``, this will prevent usage of self
|
||||
modifying command buffers to implement ``vkCmdExecuteCommands``. As
|
||||
a result of this, it will also disable ``VK_KHR_performance_query``.
|
||||
:envvar:`ANV_ALWAYS_BINDLESS`
|
||||
If defined to ``1`` or ``true``, this forces all descriptor sets to
|
||||
use the internal `Bindless model`_.
|
||||
:envvar:`ANV_QUEUE_THREAD_DISABLE`
|
||||
If defined to ``1`` or ``true``, this disables support for timeline
|
||||
semaphores.
|
||||
:envvar:`ANV_USERSPACE_RELOCS`
|
||||
If defined to ``1`` or ``true``, this forces Anv to always do
|
||||
kernel relocations in command buffers. This should only have an
|
||||
effect on hardware that doesn't support soft-pinning (Ivybridge,
|
||||
Haswell, Cherryview).
|
||||
:envvar:`ANV_PRIMITIVE_REPLICATION_MAX_VIEWS`
|
||||
Specifies up to how many view shaders can be lowered to handle
|
||||
VK_KHR_multiview. Beyond this number, multiview is implemented
|
||||
using instanced rendering. If unspecified, the value default to
|
||||
``2``.
|
||||
|
||||
|
||||
Experimental features
|
||||
---------------------
|
||||
|
||||
:envvar:`ANV_EXPERIMENTAL_NV_MESH_SHADER`
|
||||
If defined to ``1`` or ``true``, this advertise support for
|
||||
VK_NV_mesh_shader extension for platforms that have hardware
|
||||
support for it.
|
||||
|
||||
|
||||
.. _`Bindless model`:
|
||||
|
||||
Binding Model
|
||||
-------------
|
||||
|
||||
Here is the Anv bindless binding model that was implemented for the
|
||||
descriptor indexing feature of Vulkan 1.2 :
|
||||
|
||||
.. graphviz::
|
||||
|
||||
digraph G {
|
||||
fontcolor="black";
|
||||
compound=true;
|
||||
|
||||
subgraph cluster_1 {
|
||||
label = "Binding Table (HW)";
|
||||
|
||||
bgcolor="cornflowerblue";
|
||||
|
||||
node [ style=filled,shape="record",fillcolor="white",
|
||||
label="RT0" ] n0;
|
||||
node [ label="RT1" ] n1;
|
||||
node [ label="dynbuf0"] n2;
|
||||
node [ label="set0" ] n3;
|
||||
node [ label="set1" ] n4;
|
||||
node [ label="set2" ] n5;
|
||||
|
||||
n0 -> n1 -> n2 -> n3 -> n4 -> n5 [style=invis];
|
||||
}
|
||||
subgraph cluster_2 {
|
||||
label = "Descriptor Set 0";
|
||||
|
||||
bgcolor="burlywood3";
|
||||
fixedsize = true;
|
||||
|
||||
node [ style=filled,shape="record",fillcolor="white", fixedsize = true, width=4,
|
||||
label="binding 0 - STORAGE_IMAGE\n anv_storage_image_descriptor" ] n8;
|
||||
node [ label="binding 1 - COMBINED_IMAGE_SAMPLER\n anv_sampled_image_descriptor" ] n9;
|
||||
node [ label="binding 2 - UNIFORM_BUFFER\n anv_address_range_descriptor" ] n10;
|
||||
node [ label="binding 3 - UNIFORM_TEXEL_BUFFER\n anv_storage_image_descriptor" ] n11;
|
||||
|
||||
n8 -> n9 -> n10 -> n11 [style=invis];
|
||||
}
|
||||
subgraph cluster_5 {
|
||||
label = "Vulkan Objects"
|
||||
|
||||
fontcolor="black";
|
||||
bgcolor="darkolivegreen4";
|
||||
|
||||
subgraph cluster_6 {
|
||||
label = "VkImageView";
|
||||
|
||||
bgcolor=darkolivegreen3;
|
||||
node [ style=filled,shape="box",fillcolor="white", fixedsize = true, width=2,
|
||||
label="surface_state" ] n12;
|
||||
}
|
||||
subgraph cluster_7 {
|
||||
label = "VkSampler";
|
||||
|
||||
bgcolor=darkolivegreen3;
|
||||
node [ style=filled,shape="box",fillcolor="white", fixedsize = true, width=2,
|
||||
label="sample_state" ] n13;
|
||||
}
|
||||
subgraph cluster_8 {
|
||||
label = "VkImageView";
|
||||
bgcolor="darkolivegreen3";
|
||||
|
||||
node [ style=filled,shape="box",fillcolor="white", fixedsize = true, width=2,
|
||||
label="surface_state" ] n14;
|
||||
}
|
||||
subgraph cluster_9 {
|
||||
label = "VkBuffer";
|
||||
bgcolor=darkolivegreen3;
|
||||
|
||||
node [ style=filled,shape="box",fillcolor="white", fixedsize = true, width=2,
|
||||
label="address" ] n15;
|
||||
}
|
||||
subgraph cluster_10 {
|
||||
label = "VkBufferView";
|
||||
|
||||
bgcolor=darkolivegreen3;
|
||||
node [ style=filled,shape="box",fillcolor="white", fixedsize = true, width=2,
|
||||
label="surface_state" ] n16;
|
||||
}
|
||||
|
||||
n12 -> n13 -> n14 -> n15 -> n16 [style=invis];
|
||||
}
|
||||
|
||||
subgraph cluster_11 {
|
||||
subgraph cluster_12 {
|
||||
label = "CommandBuffer state stream";
|
||||
|
||||
bgcolor="gold3";
|
||||
node [ style=filled,shape="box",fillcolor="white", fixedsize = true, width=2,
|
||||
label="surface_state" ] n17;
|
||||
node [ label="surface_state" ] n18;
|
||||
node [ label="surface_state" ] n19;
|
||||
|
||||
n17 -> n18 -> n19 [style=invis];
|
||||
}
|
||||
}
|
||||
|
||||
n3 -> n8 [lhead=cluster_2];
|
||||
|
||||
n8 -> n12;
|
||||
n9 -> n13;
|
||||
n9 -> n14;
|
||||
n10 -> n15;
|
||||
n11 -> n16;
|
||||
|
||||
n0 -> n17;
|
||||
n1 -> n18;
|
||||
n2 -> n19;
|
||||
}
|
||||
|
||||
|
||||
|
||||
The HW binding table is generated when the draw or dispatch commands
|
||||
are emitted. Here are the types of entries one can find in the binding
|
||||
table :
|
||||
|
||||
- The currently bound descriptor sets, one entry per descriptor set
|
||||
(our limit is 8).
|
||||
|
||||
- For dynamic buffers, one entry per dynamic buffer.
|
||||
|
||||
- For draw commands, render target entries if needed.
|
||||
|
||||
The entries of the HW binding table for descriptor sets are
|
||||
RENDER_SURFACE_STATE similar to what you would have for a normal
|
||||
uniform buffer. The shader will emit reads this buffer first to get
|
||||
the information it needs to access a surface/sampler/etc... and then
|
||||
emits the appropriate message using the information gathered from the
|
||||
descriptor set buffer.
|
||||
|
||||
Each binding type entry gets an associated structure in memory
|
||||
(``anv_storage_image_descriptor``, ``anv_sampled_image_descriptor``,
|
||||
``anv_address_range_descriptor``, ``anv_storage_image_descriptor``).
|
||||
This is the information read by the shader.
|
||||
|
||||
|
||||
.. _`Descriptor Set Memory Layout`:
|
||||
|
||||
Descriptor Set Memory Layout
|
||||
----------------------------
|
||||
|
||||
Here is a representation of how the descriptor set bindings, with each
|
||||
elements in each binding is mapped to a the descriptor set memory :
|
||||
|
||||
.. graphviz::
|
||||
|
||||
digraph structs {
|
||||
node [shape=record];
|
||||
rankdir=LR;
|
||||
|
||||
struct1 [label="Descriptor Set | \
|
||||
<b0> binding 0\n STORAGE_IMAGE \n (array_length=3) | \
|
||||
<b1> binding 1\n COMBINED_IMAGE_SAMPLER \n (array_length=2) | \
|
||||
<b2> binding 2\n UNIFORM_BUFFER \n (array_length=1) | \
|
||||
<b3> binding 3\n UNIFORM_TEXEL_BUFFER \n (array_length=1)"];
|
||||
struct2 [label="Descriptor Set Memory | \
|
||||
<b0e0> anv_storage_image_descriptor|\
|
||||
<b0e1> anv_storage_image_descriptor|\
|
||||
<b0e2> anv_storage_image_descriptor|\
|
||||
<b1e0> anv_sampled_image_descriptor|\
|
||||
<b1e1> anv_sampled_image_descriptor|\
|
||||
<b2e0> anv_address_range_descriptor|\
|
||||
<b3e0> anv_storage_image_descriptor"];
|
||||
|
||||
struct1:b0 -> struct2:b0e0;
|
||||
struct1:b0 -> struct2:b0e1;
|
||||
struct1:b0 -> struct2:b0e2;
|
||||
struct1:b1 -> struct2:b1e0;
|
||||
struct1:b1 -> struct2:b1e1;
|
||||
struct1:b2 -> struct2:b2e0;
|
||||
struct1:b3 -> struct2:b3e0;
|
||||
}
|
||||
|
||||
Each Binding in the descriptor set is allocated an array of
|
||||
``anv_*_descriptor`` data structure. The type of ``anv_*_descriptor``
|
||||
used for a binding is selected based on the ``VkDescriptorType`` of
|
||||
the bindings.
|
||||
|
||||
The value of ``anv_descriptor_set_binding_layout::descriptor_offset``
|
||||
is a byte offset from the descriptor set memory to the associated
|
||||
binding. ``anv_descriptor_set_binding_layout::array_size`` is the
|
||||
number of ``anv_*_descriptor`` elements in the descriptor set memory
|
||||
from that offset for the binding.
|
@@ -110,6 +110,8 @@ Here are some known caveats in OpenGL support:
|
||||
|
||||
- ``glPolygonMode()`` with ``GL_LINE`` is not supported. This is not part of
|
||||
OpenGL ES 2.0 and so it is not possible to reverse engineer.
|
||||
- Texture wrapping with ``GL_CLAMP_TO_BORDER`` is not supported. This is not
|
||||
part of OpenGL ES 2.0 and so it is not possible to reverse engineer.
|
||||
|
||||
- Precision limitations in fragment shaders:
|
||||
|
||||
|
24
docs/drivers/openswr.rst
Normal file
24
docs/drivers/openswr.rst
Normal file
@@ -0,0 +1,24 @@
|
||||
OpenSWR
|
||||
=======
|
||||
|
||||
The Gallium OpenSWR driver is a high performance, highly scalable
|
||||
software renderer targeted towards visualization workloads. For such
|
||||
geometry heavy workloads there is a considerable speedup over llvmpipe,
|
||||
which is to be expected as the geometry frontend of llvmpipe is single
|
||||
threaded.
|
||||
|
||||
This rasterizer is x86 specific and requires AVX or above. The driver
|
||||
fits into the gallium framework, and reuses gallivm for doing the TGSI
|
||||
to vectorized llvm-IR conversion of the shader kernels.
|
||||
|
||||
You can read more about OpenSWR on the `project website
|
||||
<https://www.openswr.org/>`__.
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
||||
openswr/usage
|
||||
openswr/faq
|
||||
openswr/profiling
|
||||
openswr/knobs
|
||||
|
141
docs/drivers/openswr/faq.rst
Normal file
141
docs/drivers/openswr/faq.rst
Normal file
@@ -0,0 +1,141 @@
|
||||
FAQ
|
||||
===
|
||||
|
||||
Why another software rasterizer?
|
||||
--------------------------------
|
||||
|
||||
Good question, given there are already three (swrast, softpipe,
|
||||
llvmpipe) in the Mesa tree. Two important reasons for this:
|
||||
|
||||
* Architecture - given our focus on scientific visualization, our
|
||||
workloads are much different than the typical game; we have heavy
|
||||
vertex load and relatively simple shaders. In addition, the core
|
||||
counts of machines we run on are much higher. These parameters led
|
||||
to design decisions much different than llvmpipe.
|
||||
|
||||
* Historical - Intel had developed a high performance software
|
||||
graphics stack for internal purposes. Later we adapted this
|
||||
graphics stack for use in visualization and decided to move forward
|
||||
with Mesa to provide a high quality API layer while at the same
|
||||
time benefiting from the excellent performance the software
|
||||
rasterizerizer gives us.
|
||||
|
||||
What's the architecture?
|
||||
------------------------
|
||||
|
||||
SWR is a tile based immediate mode renderer with a sort-free threading
|
||||
model which is arranged as a ring of queues. Each entry in the ring
|
||||
represents a draw context that contains all of the draw state and work
|
||||
queues. An API thread sets up each draw context and worker threads
|
||||
will execute both the frontend (vertex/geometry processing) and
|
||||
backend (fragment) work as required. The ring allows for backend
|
||||
threads to pull work in order. Large draws are split into chunks to
|
||||
allow vertex processing to happen in parallel, with the backend work
|
||||
pickup preserving draw ordering.
|
||||
|
||||
Our pipeline uses just-in-time compiled code for the fetch shader that
|
||||
does vertex attribute gathering and AOS to SOA conversions, the vertex
|
||||
shader and fragment shaders, streamout, and fragment blending. SWR
|
||||
core also supports geometry and compute shaders but we haven't exposed
|
||||
them through our driver yet. The fetch shader, streamout, and blend is
|
||||
built internally to swr core using LLVM directly, while for the vertex
|
||||
and pixel shaders we reuse bits of llvmpipe from
|
||||
``gallium/auxiliary/gallivm`` to build the kernels, which we wrap
|
||||
differently than llvmpipe's ``auxiliary/draw`` code.
|
||||
|
||||
What's the performance?
|
||||
-----------------------
|
||||
|
||||
For the types of high-geometry workloads we're interested in, we are
|
||||
significantly faster than llvmpipe. This is to be expected, as
|
||||
llvmpipe only threads the fragment processing and not the geometry
|
||||
frontend. The performance advantage over llvmpipe roughly scales
|
||||
linearly with the number of cores available.
|
||||
|
||||
While our current performance is quite good, we know there is more
|
||||
potential in this architecture. When we switched from a prototype
|
||||
OpenGL driver to Mesa we regressed performance severely, some due to
|
||||
interface issues that need tuning, some differences in shader code
|
||||
generation, and some due to conformance and feature additions to the
|
||||
core swr. We are looking to recovering most of this performance back.
|
||||
|
||||
What's the conformance?
|
||||
-----------------------
|
||||
|
||||
The major applications we are targeting are all based on the
|
||||
Visualization Toolkit (VTK), and as such our development efforts have
|
||||
been focused on making sure these work as best as possible. Our
|
||||
current code passes vtk's rendering tests with their new "OpenGL2"
|
||||
(really OpenGL 3.2) backend at 99%.
|
||||
|
||||
piglit testing shows a much lower pass rate, roughly 80% at the time
|
||||
of writing. Core SWR undergoes rigorous unit testing and we are quite
|
||||
confident in the rasterizer, and understand the areas where it
|
||||
currently has issues (example: line rendering is done with triangles,
|
||||
so doesn't match the strict line rendering rules). The majority of
|
||||
the piglit failures are errors in our driver layer interfacing Mesa
|
||||
and SWR. Fixing these issues is one of our major future development
|
||||
goals.
|
||||
|
||||
Why are you open sourcing this?
|
||||
-------------------------------
|
||||
|
||||
* Our customers prefer open source, and allowing them to simply
|
||||
download the Mesa source and enable our driver makes life much
|
||||
easier for them.
|
||||
|
||||
* The internal gallium APIs are not stable, so we'd like our driver
|
||||
to be visible for changes.
|
||||
|
||||
* It's easier to work with the Mesa community when the source we're
|
||||
working with can be used as reference.
|
||||
|
||||
What are your development plans?
|
||||
--------------------------------
|
||||
|
||||
* Performance - see the performance section earlier for details.
|
||||
|
||||
* Conformance - see the conformance section earlier for details.
|
||||
|
||||
* Features - core SWR has a lot of functionality we have yet to
|
||||
expose through our driver, such as MSAA, geometry shaders, compute
|
||||
shaders, and tesselation.
|
||||
|
||||
* AVX512 support
|
||||
|
||||
What is the licensing of the code?
|
||||
----------------------------------
|
||||
|
||||
* All code is under the normal Mesa MIT license.
|
||||
|
||||
Will this work on AMD?
|
||||
----------------------
|
||||
|
||||
* If using an AMD processor with AVX or AVX2, it should work though
|
||||
we don't have that hardware around to test. Patches if needed
|
||||
would be welcome.
|
||||
|
||||
Will this work on ARM, MIPS, POWER, <other non-x86 architecture>?
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
* Not without a lot of work. We make extensive use of AVX and AVX2
|
||||
intrinsics in our code and the in-tree JIT creation. It is not the
|
||||
intention for this codebase to support non-x86 architectures.
|
||||
|
||||
What hardware do I need?
|
||||
------------------------
|
||||
|
||||
* Any x86 processor with at least AVX (introduced in the Intel
|
||||
SandyBridge and AMD Bulldozer microarchitectures in 2011) will
|
||||
work.
|
||||
|
||||
* You don't need a fire-breathing Xeon machine to work on SWR - we do
|
||||
day-to-day development with laptops and desktop CPUs.
|
||||
|
||||
Does one build work on both AVX and AVX2?
|
||||
-----------------------------------------
|
||||
|
||||
Yes. The build system creates two shared libraries, ``libswrAVX.so`` and
|
||||
``libswrAVX2.so``, and ``swr_create_screen()`` loads the appropriate one at
|
||||
runtime.
|
||||
|
114
docs/drivers/openswr/knobs.rst
Normal file
114
docs/drivers/openswr/knobs.rst
Normal file
@@ -0,0 +1,114 @@
|
||||
Knobs
|
||||
=====
|
||||
|
||||
OpenSWR has a number of environment variables which control its
|
||||
operation, in addition to the normal Mesa and gallium controls.
|
||||
|
||||
.. envvar:: KNOB_ENABLE_ASSERT_DIALOGS <bool> (true)
|
||||
|
||||
Use dialogs when asserts fire. Asserts are only enabled in debug builds
|
||||
|
||||
.. envvar:: KNOB_SINGLE_THREADED <bool> (false)
|
||||
|
||||
If enabled will perform all rendering on the API thread. This is useful mainly for debugging purposes.
|
||||
|
||||
.. envvar:: KNOB_DUMP_SHADER_IR <bool> (false)
|
||||
|
||||
Dumps shader LLVM IR at various stages of jit compilation.
|
||||
|
||||
.. envvar:: KNOB_USE_GENERIC_STORETILE <bool> (false)
|
||||
|
||||
Always use generic function for performing StoreTile. Will be slightly slower than using optimized (jitted) path
|
||||
|
||||
.. envvar:: KNOB_FAST_CLEAR <bool> (true)
|
||||
|
||||
Replace 3D primitive execute with a SWRClearRT operation and defer clear execution to first backend op on hottile, or hottile store
|
||||
|
||||
.. envvar:: KNOB_MAX_NUMA_NODES <uint32_t> (0)
|
||||
|
||||
Maximum # of NUMA-nodes per system used for worker threads 0 == ALL NUMA-nodes in the system N == Use at most N NUMA-nodes for rendering
|
||||
|
||||
.. envvar:: KNOB_MAX_CORES_PER_NUMA_NODE <uint32_t> (0)
|
||||
|
||||
Maximum # of cores per NUMA-node used for worker threads. 0 == ALL non-API thread cores per NUMA-node N == Use at most N cores per NUMA-node
|
||||
|
||||
.. envvar:: KNOB_MAX_THREADS_PER_CORE <uint32_t> (1)
|
||||
|
||||
Maximum # of (hyper)threads per physical core used for worker threads. 0 == ALL hyper-threads per core N == Use at most N hyper-threads per physical core
|
||||
|
||||
.. envvar:: KNOB_MAX_WORKER_THREADS <uint32_t> (0)
|
||||
|
||||
Maximum worker threads to spawn. IMPORTANT: If this is non-zero, no worker threads will be bound to specific HW threads. They will all be "floating" SW threads. In this case, the above 3 KNOBS will be ignored.
|
||||
|
||||
.. envvar:: KNOB_BUCKETS_START_FRAME <uint32_t> (1200)
|
||||
|
||||
Frame from when to start saving buckets data. NOTE: KNOB_ENABLE_RDTSC must be enabled in core/knobs.h for this to have an effect.
|
||||
|
||||
.. envvar:: KNOB_BUCKETS_END_FRAME <uint32_t> (1400)
|
||||
|
||||
Frame at which to stop saving buckets data. NOTE: KNOB_ENABLE_RDTSC must be enabled in core/knobs.h for this to have an effect.
|
||||
|
||||
.. envvar:: KNOB_WORKER_SPIN_LOOP_COUNT <uint32_t> (5000)
|
||||
|
||||
Number of spin-loop iterations worker threads will perform before going to sleep when waiting for work
|
||||
|
||||
.. envvar:: KNOB_MAX_DRAWS_IN_FLIGHT <uint32_t> (160)
|
||||
|
||||
Maximum number of draws outstanding before API thread blocks.
|
||||
|
||||
.. envvar:: KNOB_MAX_PRIMS_PER_DRAW <uint32_t> (2040)
|
||||
|
||||
Maximum primitives in a single Draw(). Larger primitives are split into smaller Draw calls. Should be a multiple of (3 * vectorWidth).
|
||||
|
||||
.. envvar:: KNOB_MAX_TESS_PRIMS_PER_DRAW <uint32_t> (16)
|
||||
|
||||
Maximum primitives in a single Draw() with tessellation enabled. Larger primitives are split into smaller Draw calls. Should be a multiple of (vectorWidth).
|
||||
|
||||
.. envvar:: KNOB_MAX_FRAC_ODD_TESS_FACTOR <float> (63.0f)
|
||||
|
||||
(DEBUG) Maximum tessellation factor for fractional-odd partitioning.
|
||||
|
||||
.. envvar:: KNOB_MAX_FRAC_EVEN_TESS_FACTOR <float> (64.0f)
|
||||
|
||||
(DEBUG) Maximum tessellation factor for fractional-even partitioning.
|
||||
|
||||
.. envvar:: KNOB_MAX_INTEGER_TESS_FACTOR <uint32_t> (64)
|
||||
|
||||
(DEBUG) Maximum tessellation factor for integer partitioning.
|
||||
|
||||
.. envvar:: KNOB_BUCKETS_ENABLE_THREADVIZ <bool> (false)
|
||||
|
||||
Enable threadviz output.
|
||||
|
||||
.. envvar:: KNOB_TOSS_DRAW <bool> (false)
|
||||
|
||||
Disable per-draw/dispatch execution
|
||||
|
||||
.. envvar:: KNOB_TOSS_QUEUE_FE <bool> (false)
|
||||
|
||||
Stop per-draw execution at worker FE NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
||||
.. envvar:: KNOB_TOSS_FETCH <bool> (false)
|
||||
|
||||
Stop per-draw execution at vertex fetch NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
||||
.. envvar:: KNOB_TOSS_IA <bool> (false)
|
||||
|
||||
Stop per-draw execution at input assembler NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
||||
.. envvar:: KNOB_TOSS_VS <bool> (false)
|
||||
|
||||
Stop per-draw execution at vertex shader NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
||||
.. envvar:: KNOB_TOSS_SETUP_TRIS <bool> (false)
|
||||
|
||||
Stop per-draw execution at primitive setup NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
||||
.. envvar:: KNOB_TOSS_BIN_TRIS <bool> (false)
|
||||
|
||||
Stop per-draw execution at primitive binning NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
||||
.. envvar:: KNOB_TOSS_RS <bool> (false)
|
||||
|
||||
Stop per-draw execution at rasterizer NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h
|
||||
|
67
docs/drivers/openswr/profiling.rst
Normal file
67
docs/drivers/openswr/profiling.rst
Normal file
@@ -0,0 +1,67 @@
|
||||
Profiling
|
||||
=========
|
||||
|
||||
OpenSWR contains built-in profiling which can be enabled
|
||||
at build time to provide insight into performance tuning.
|
||||
|
||||
To enable this, uncomment the following line in ``rasterizer/core/knobs.h`` and rebuild: ::
|
||||
|
||||
//#define KNOB_ENABLE_RDTSC
|
||||
|
||||
Running an application will result in a ``rdtsc.txt`` file being
|
||||
created in current working directory. This file contains profile
|
||||
information captured between the ``KNOB_BUCKETS_START_FRAME`` and
|
||||
``KNOB_BUCKETS_END_FRAME`` (see knobs section).
|
||||
|
||||
The resulting file will contain sections for each thread with a
|
||||
hierarchical breakdown of the time spent in the various operations.
|
||||
For example: ::
|
||||
|
||||
Thread 0 (API)
|
||||
%Tot %Par Cycles CPE NumEvent CPE2 NumEvent2 Bucket
|
||||
0.00 0.00 28370 2837 10 0 0 APIClearRenderTarget
|
||||
0.00 41.23 11698 1169 10 0 0 |-> APIDrawWakeAllThreads
|
||||
0.00 18.34 5202 520 10 0 0 |-> APIGetDrawContext
|
||||
98.72 98.72 12413773688 29957 414380 0 0 APIDraw
|
||||
0.36 0.36 44689364 107 414380 0 0 |-> APIDrawWakeAllThreads
|
||||
96.36 97.62 12117951562 9747 1243140 0 0 |-> APIGetDrawContext
|
||||
0.00 0.00 19904 995 20 0 0 APIStoreTiles
|
||||
0.00 7.88 1568 78 20 0 0 |-> APIDrawWakeAllThreads
|
||||
0.00 25.28 5032 251 20 0 0 |-> APIGetDrawContext
|
||||
1.28 1.28 161344902 64 2486370 0 0 APIGetDrawContext
|
||||
0.00 0.00 50368 2518 20 0 0 APISync
|
||||
0.00 2.70 1360 68 20 0 0 |-> APIDrawWakeAllThreads
|
||||
0.00 65.27 32876 1643 20 0 0 |-> APIGetDrawContext
|
||||
|
||||
|
||||
Thread 1 (WORKER)
|
||||
%Tot %Par Cycles CPE NumEvent CPE2 NumEvent2 Bucket
|
||||
83.92 83.92 13198987522 96411 136902 0 0 FEProcessDraw
|
||||
24.91 29.69 3918184840 167 23410158 0 0 |-> FEFetchShader
|
||||
11.17 13.31 1756972646 75 23410158 0 0 |-> FEVertexShader
|
||||
8.89 10.59 1397902996 59 23410161 0 0 |-> FEPAAssemble
|
||||
19.06 22.71 2997794710 384 7803387 0 0 |-> FEClipTriangles
|
||||
11.67 61.21 1834958176 235 7803387 0 0 |-> FEBinTriangles
|
||||
0.00 0.00 0 0 187258 0 0 |-> FECullZeroAreaAndBackface
|
||||
0.00 0.00 0 0 60051033 0 0 |-> FECullBetweenCenters
|
||||
0.11 0.11 17217556 2869592 6 0 0 FEProcessStoreTiles
|
||||
15.97 15.97 2511392576 73665 34092 0 0 WorkerWorkOnFifoBE
|
||||
14.04 87.95 2208687340 9187 240408 0 0 |-> WorkerFoundWork
|
||||
0.06 0.43 9390536 13263 708 0 0 |-> BELoadTiles
|
||||
0.00 0.01 293020 182 1609 0 0 |-> BEClear
|
||||
12.63 89.94 1986508990 949 2093014 0 0 |-> BERasterizeTriangle
|
||||
2.37 18.75 372374596 177 2093014 0 0 |-> BETriangleSetup
|
||||
0.42 3.35 66539016 31 2093014 0 0 |-> BEStepSetup
|
||||
0.00 0.00 0 0 21766 0 0 |-> BETrivialReject
|
||||
1.05 8.33 165410662 79 2071248 0 0 |-> BERasterizePartial
|
||||
6.06 48.02 953847796 1260 756783 0 0 |-> BEPixelBackend
|
||||
0.20 3.30 31521202 41 756783 0 0 |-> BESetup
|
||||
0.16 2.69 25624304 33 756783 0 0 |-> BEBarycentric
|
||||
0.18 2.92 27884986 36 756783 0 0 |-> BEEarlyDepthTest
|
||||
0.19 3.20 30564174 41 744058 0 0 |-> BEPixelShader
|
||||
0.26 4.30 41058646 55 744058 0 0 |-> BEOutputMerger
|
||||
1.27 20.94 199750822 32 6054264 0 0 |-> BEEndTile
|
||||
0.33 2.34 51758160 23687 2185 0 0 |-> BEStoreTiles
|
||||
0.20 60.22 31169500 28807 1082 0 0 |-> B8G8R8A8_UNORM
|
||||
0.00 0.00 302752 302752 1 0 0 WorkerWaitForThreadEvent
|
||||
|
38
docs/drivers/openswr/usage.rst
Normal file
38
docs/drivers/openswr/usage.rst
Normal file
@@ -0,0 +1,38 @@
|
||||
Usage
|
||||
=====
|
||||
|
||||
Requirements
|
||||
^^^^^^^^^^^^
|
||||
|
||||
* An x86 processor with AVX or above
|
||||
* LLVM version 3.9 or later
|
||||
* C++14 capable compiler
|
||||
|
||||
Building
|
||||
^^^^^^^^
|
||||
|
||||
To build with GNU automake, select building the swr driver at
|
||||
configure time, for example: ::
|
||||
|
||||
configure --with-gallium-drivers=swrast,swr
|
||||
|
||||
Using
|
||||
^^^^^
|
||||
|
||||
On Linux, building with autotools will create a drop-in alternative
|
||||
for libGL.so into::
|
||||
|
||||
lib/gallium/libGL.so
|
||||
lib/gallium/libswrAVX.so
|
||||
lib/gallium/libswrAVX2.so
|
||||
|
||||
To use it set the LD_LIBRARY_PATH environment variable accordingly.
|
||||
|
||||
**IMPORTANT:** Mesa will default to using llvmpipe or softpipe as the default software renderer. To select the OpenSWR driver, set the GALLIUM_DRIVER environment variable appropriately: ::
|
||||
|
||||
GALLIUM_DRIVER=swr
|
||||
|
||||
To verify OpenSWR is being used, check to see if a message like the following is printed when the application is started: ::
|
||||
|
||||
SWR detected AVX2
|
||||
|
@@ -12,17 +12,16 @@ Product Architecture OpenGL ES OpenGL
|
||||
Mali T720 Midgard (v4) 2.0 2.1
|
||||
Mali T760 Midgard (v5) 3.1 3.1
|
||||
Mali T820 Midgard (v5) 3.1 3.1
|
||||
Mali T830 Midgard (v5) 3.1 3.1
|
||||
Mali T860 Midgard (v5) 3.1 3.1
|
||||
Mali T880 Midgard (v5) 3.1 3.1
|
||||
Mali G72 Bifrost (v6) 3.1 3.1
|
||||
Mali G31 Bifrost (v7) 3.1 3.1
|
||||
Mali G51 Bifrost (v7) 3.1 3.1
|
||||
Mali G52 Bifrost (v7) 3.1 3.1
|
||||
Mali G76 Bifrost (v7) 3.1 3.1
|
||||
========= ============ ============ =======
|
||||
|
||||
Other Midgard and Bifrost chips (T604, T628, G71) are not yet supported.
|
||||
Other Midgard and Bifrost chips (T604, T620, T830, T880, G71, G51, G76) may
|
||||
work but may be buggy. End users are advised against using Panfrost on
|
||||
unsupported hardware. Developers interested in porting will need to allowlist
|
||||
the hardware (``src/gallium/drivers/panfrost/pan_screen.c``).
|
||||
|
||||
Older Mali chips based on the Utgard architecture (Mali 400, Mali 450) are
|
||||
supported in the Lima driver, not Panfrost. Lima is also available in Mesa.
|
||||
|
@@ -29,8 +29,6 @@ tested with
|
||||
- RADV 21.1 or later (the host kernel must have
|
||||
``CONFIG_TRANSPARENT_HUGEPAGE`` disabled because of this `KVM issue
|
||||
<https://github.com/google/security-research/security/advisories/GHSA-7wq5-phmq-m584>`__)
|
||||
- TURNIP 22.0 or later
|
||||
- Mali r32p0 or later
|
||||
|
||||
The Venus driver requires supports for
|
||||
|
||||
@@ -39,12 +37,11 @@ The Venus driver requires supports for
|
||||
- ``VIRTGPU_PARAM_CROSS_DEVICE``
|
||||
- ``VIRTGPU_PARAM_CONTEXT_INIT``
|
||||
|
||||
from the virtio-gpu kernel driver, unless vtest is used. That usually means
|
||||
the guest kernel should be at least 5.16 or have the parameters back ported,
|
||||
paired with hypervisors such as `crosvm
|
||||
<https://chromium.googlesource.com/chromiumos/platform/crosvm>`__, or `patched
|
||||
qemu
|
||||
<https://www.collabora.com/news-and-blog/blog/2021/11/26/venus-on-qemu-enabling-new-virtual-vulkan-driver/>`__.
|
||||
from the virtio-gpu kernel driver, unless vtest is used. Currently, this
|
||||
means the `context-init
|
||||
<https://gitlab.freedesktop.org/virgl/drm-misc-next/-/tree/context-init>`__
|
||||
kernel branch paired with `crosvm
|
||||
<https://chromium.googlesource.com/chromiumos/platform/crosvm>`__.
|
||||
|
||||
vtest
|
||||
-----
|
||||
@@ -77,19 +74,25 @@ server finds the locally built host driver.
|
||||
Virtio-GPU
|
||||
----------
|
||||
|
||||
The driver requires ``VIRTGPU_PARAM_CONTEXT_INIT`` from the virtio-gpu kernel
|
||||
driver, which was upstreamed in kernel 5.16.
|
||||
Because the driver requires ``VIRTGPU_PARAM_CONTEXT_INIT`` from the virtio-gpu
|
||||
kernel driver, one must make sure the guest kernel includes the changes from
|
||||
the `context-init
|
||||
<https://gitlab.freedesktop.org/virgl/drm-misc-next/-/tree/context-init>`__
|
||||
branch.
|
||||
|
||||
crosvm is written in Rust. To build crosvm, make sure Rust has been installed
|
||||
and
|
||||
To build crosvm,
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone --recurse-submodules \
|
||||
https://chromium.googlesource.com/chromiumos/platform/crosvm
|
||||
$ mkdir crosvm
|
||||
$ cd crosvm
|
||||
$ wget https://storage.googleapis.com/git-repo-downloads/repo
|
||||
$ chmod +x repo
|
||||
$ ./repo init -g crosvm -u https://chromium.googlesource.com/chromiumos/manifest.git
|
||||
$ ./repo sync
|
||||
$ cd src/platform/crosvm
|
||||
$ RUSTFLAGS="-L<path-to-virglrenderer>/out/src" cargo build \
|
||||
--features "x wl-dmabuf virgl_renderer virgl_renderer_next default-no-sandbox"
|
||||
--features "x virgl_renderer virgl_renderer_next default-no-sandbox"
|
||||
|
||||
Note that crosvm must be built with ``default-no-sandbox`` or started with
|
||||
``--disable-sandbox`` in this setup.
|
||||
@@ -105,11 +108,11 @@ This is how one might want to start crosvm
|
||||
--host_ip 192.168.0.1 \
|
||||
--netmask 255.255.255.0 \
|
||||
--mac 12:34:56:78:9a:bc \
|
||||
--rwdisk disk.img \
|
||||
--rwdisk disk.qcow2 \
|
||||
-p root=/dev/vda1 \
|
||||
<path-to-bzImage>
|
||||
|
||||
assuming a working system is installed to partition 1 of ``disk.img``.
|
||||
assuming a working system is installed to partition 1 of ``disk.qcow2``.
|
||||
``sudo`` or ``CAP_NET_ADMIN`` is needed to set up the TAP network device.
|
||||
|
||||
Virtio-GPU and Virtio-WL
|
||||
@@ -122,7 +125,8 @@ that should hopefully change over time.
|
||||
|
||||
For now, the guest kernel must be built from the ``chromeos-5.10`` branch of
|
||||
the `Chrome OS kernel
|
||||
<https://chromium.googlesource.com/chromiumos/third_party/kernel>`__.
|
||||
<https://chromium.googlesource.com/chromiumos/third_party/kernel>`__. crosvm
|
||||
should also be built with ``wl-dmabuf`` feature rather than ``x`` feature.
|
||||
|
||||
To build minigbm and to enable minigbm support in virglrenderer,
|
||||
|
||||
@@ -152,6 +156,10 @@ In the guest, build and start sommelier, the special Wayland compositor,
|
||||
--xwayland-gl-driver-path=<path-to-locally-built-gl-driver> \
|
||||
sleep infinity
|
||||
|
||||
sommelier requires ``xdg-shell-unstable-v6`` rather than the stable
|
||||
``xdg-shell`` from the host compositor. One must make sure the host
|
||||
compositor still supports the older extension.
|
||||
|
||||
Optional Requirements
|
||||
---------------------
|
||||
|
||||
@@ -164,6 +172,14 @@ In the future, if virglrenderer's ``virgl_renderer_export_fence`` is
|
||||
supported, the Venus renderer will require ``VK_KHR_external_fence_fd`` with
|
||||
``VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT`` from the host driver.
|
||||
|
||||
A WSI image of the Venus driver is an external image to the host driver. When
|
||||
the WSI image is transitioned from ``VK_IMAGE_LAYOUT_UNDEFINED`` after image
|
||||
acquisition, the Venus driver does not request the Venus renderer to perform
|
||||
an ownership transfer on the external image. It is unclear if the ownership
|
||||
transfer is required or not. A specification issue has been filed for
|
||||
clarifications. See the comment before ``vn_cmd_fix_image_memory_barrier``
|
||||
for more details.
|
||||
|
||||
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
|
||||
-----------------------------------
|
||||
|
||||
@@ -190,6 +206,9 @@ accesses to the device memory are via the guest mapping, and are assumed to be
|
||||
coherent when the device memory also has
|
||||
``VK_MEMORY_PROPERTY_HOST_COHERENT_BIT``.
|
||||
|
||||
While the Venus renderer can force a ``VkDeviceMemory`` external, it does not
|
||||
force a ``VkImage`` or a ``VkBuffer`` external. As a result, it can bind an
|
||||
external device memory to a non-external resource.
|
||||
When a ``VkImage`` or a ``VkBuffer`` is created, the Venus renderer does not
|
||||
know if the image or the buffer will be bound to such a device memory or not.
|
||||
As a result, the Venus renderer unconditionally chains
|
||||
``VkExternalMemoryImageCreateInfo`` to ``VkImageCreateInfo`` and chains
|
||||
``VkExternalMemoryBufferCreateInfo`` to ``VkBufferCreateInfo`` without
|
||||
checking for the host driver support.
|
||||
|
172
docs/envvars.rst
172
docs/envvars.rst
@@ -68,11 +68,17 @@ Core Mesa environment variables
|
||||
:envvar:`MESA_LOG_FILE`
|
||||
specifies a file name for logging all errors, warnings, etc., rather
|
||||
than stderr
|
||||
:envvar:`MESA_TEX_PROG`
|
||||
if set, implement conventional texture environment modes with fragment
|
||||
programs (intended for developers only)
|
||||
:envvar:`MESA_TNL_PROG`
|
||||
if set, implement conventional vertex transformation operations with
|
||||
vertex programs (intended for developers only). Setting this variable
|
||||
automatically sets the :envvar:`MESA_TEX_PROG` variable as well.
|
||||
:envvar:`MESA_EXTENSION_OVERRIDE`
|
||||
can be used to enable/disable extensions. A value such as
|
||||
``GL_EXT_foo -GL_EXT_bar`` will enable the ``GL_EXT_foo`` extension
|
||||
and disable the ``GL_EXT_bar`` extension. Note that this will override
|
||||
extensions override configured using driconf.
|
||||
and disable the ``GL_EXT_bar`` extension.
|
||||
:envvar:`MESA_EXTENSION_MAX_YEAR`
|
||||
The ``GL_EXTENSIONS`` string returned by Mesa is sorted by extension
|
||||
year. If this variable is set to year X, only extensions defined on
|
||||
@@ -182,14 +188,6 @@ Core Mesa environment variables
|
||||
overrides the WSI present mode clients specify in
|
||||
``VkSwapchainCreateInfoKHR::presentMode``. Values can be ``fifo``,
|
||||
``relaxed``, ``mailbox`` or ``immediate``.
|
||||
:envvar:`MESA_VK_ABORT_ON_DEVICE_LOSS`
|
||||
causes the Vulkan driver to call abort() immediately after detecting a
|
||||
lost device. This is extremely useful when testing as it prevents the
|
||||
test suite from continuing on with a lost device.
|
||||
:envvar:`MESA_VK_ENABLE_SUBMIT_THREAD`
|
||||
for Vulkan drivers which support real timeline semaphores, this forces
|
||||
them to use a submit thread from the beginning, regardless of whether or
|
||||
not they ever see a wait-before-signal condition.
|
||||
:envvar:`MESA_LOADER_DRIVER_OVERRIDE`
|
||||
chooses a different driver binary such as ``etnaviv`` or ``zink``.
|
||||
|
||||
@@ -200,11 +198,15 @@ The following are only applicable for drivers that uses NIR, as they
|
||||
modify the behavior for the common ``NIR_PASS`` and ``NIR_PASS_V`` macros,
|
||||
that wrap calls to NIR lowering/optimizations.
|
||||
|
||||
:envvar:`NIR_DEBUG`
|
||||
a comma-separated list of debug options to apply to NIR
|
||||
shaders. Use `NIR_DEBUG=help` to print a list of available options.
|
||||
:envvar:`NIR_SKIP`
|
||||
a comma-separated list of optimization/lowering passes to skip.
|
||||
:envvar:`NIR_PRINT`
|
||||
If defined, the resulting NIR shader will be printed out at each
|
||||
successful NIR lowering/optimization call.
|
||||
:envvar:`NIR_TEST_CLONE`
|
||||
If defined, cloning a NIR shader would be tested at each successful
|
||||
NIR lowering/optimization call.
|
||||
:envvar:`NIR_TEST_SERIALIZE`
|
||||
If defined, serialize and deserialize a NIR shader would be tested at
|
||||
each successful NIR lowering/optimization call.
|
||||
|
||||
Mesa Xlib driver environment variables
|
||||
--------------------------------------
|
||||
@@ -217,8 +219,12 @@ the :doc:`Xlib software driver page <xlibdriver>` for details.
|
||||
:envvar:`MESA_BACK_BUFFER`
|
||||
specifies how to implement the back color buffer, either ``pixmap``
|
||||
or ``ximage``
|
||||
:envvar:`MESA_GAMMA`
|
||||
gamma correction coefficients for red, green, blue channels
|
||||
:envvar:`MESA_XSYNC`
|
||||
enable synchronous X behavior (for debugging only)
|
||||
:envvar:`MESA_GLX_FORCE_CI`
|
||||
if set, force GLX to treat 8 BPP visuals as CI visuals
|
||||
:envvar:`MESA_GLX_FORCE_ALPHA`
|
||||
if set, forces RGB windows to have an alpha channel.
|
||||
:envvar:`MESA_GLX_DEPTH_BITS`
|
||||
@@ -238,6 +244,8 @@ Intel driver environment variables
|
||||
|
||||
``ann``
|
||||
annotate IR in assembly dumps
|
||||
``aub``
|
||||
dump batches into an AUB trace for use with simulation tools
|
||||
``bat``
|
||||
emit batch information
|
||||
``blit``
|
||||
@@ -246,8 +254,6 @@ Intel driver environment variables
|
||||
emit messages about the blorp operations (blits & clears)
|
||||
``buf``
|
||||
emit messages about buffer objects
|
||||
``bt``
|
||||
emit messages binding tables
|
||||
``clip``
|
||||
emit messages about the clip unit (for old gens, includes the CLIP
|
||||
program)
|
||||
@@ -258,8 +264,10 @@ Intel driver environment variables
|
||||
``do32``
|
||||
generate compute shader SIMD32 programs even if workgroup size
|
||||
doesn't exceed the SIMD16 limit
|
||||
``fall``
|
||||
emit messages about performance issues (same as ``perf``)
|
||||
``dri``
|
||||
emit messages about the DRI interface
|
||||
``fbo``
|
||||
emit messages about framebuffers
|
||||
``fs``
|
||||
dump shader assembly for fragment shaders
|
||||
``gs``
|
||||
@@ -268,19 +276,13 @@ Intel driver environment variables
|
||||
print instruction hex dump with the disassembly
|
||||
``l3``
|
||||
emit messages about the new L3 state during transitions
|
||||
``mesh``
|
||||
dump shader assembly for mesh shaders
|
||||
``miptree``
|
||||
emit messages about miptrees
|
||||
``no8``
|
||||
don't generate SIMD8 fragment shader
|
||||
``no16``
|
||||
suppress generation of 16-wide fragment shaders. useful for
|
||||
debugging broken shaders
|
||||
``no32``
|
||||
suppress generation of 32-wide fragment shaders. useful for
|
||||
debugging broken shaders
|
||||
``no-oaconfig``
|
||||
disable HW performance metric configuration, and anything
|
||||
related to i915-perf (useful when running on simulation)
|
||||
``nocompact``
|
||||
disable instruction compaction
|
||||
``nodualobj``
|
||||
@@ -292,49 +294,46 @@ Intel driver environment variables
|
||||
``optimizer``
|
||||
dump shader assembly to files at each optimization pass and
|
||||
iteration that make progress
|
||||
``pc``
|
||||
emit messages about PIPE_CONTROL instruction usage
|
||||
``perf``
|
||||
emit messages about performance issues
|
||||
``perfmon``
|
||||
emit messages about ``AMD_performance_monitor``
|
||||
``pix``
|
||||
emit messages about pixel operations
|
||||
``prim``
|
||||
emit messages about drawing primitives
|
||||
``reemit``
|
||||
mark all state dirty on each draw call
|
||||
``rt``
|
||||
dump shader assembly for ray tracing shaders
|
||||
``sf``
|
||||
emit messages about the strips & fans unit (for old gens, includes
|
||||
the SF program)
|
||||
``soft64``
|
||||
enable implementation of software 64bit floating point support
|
||||
``shader_time``
|
||||
record how much GPU time is spent in each shader
|
||||
``spill_fs``
|
||||
force spilling of all registers in the scalar backend (useful to
|
||||
debug spilling code)
|
||||
``spill_vec4``
|
||||
force spilling of all registers in the vec4 backend (useful to
|
||||
debug spilling code)
|
||||
``state``
|
||||
emit messages about state flag tracking
|
||||
``submit``
|
||||
emit batchbuffer usage statistics
|
||||
``sync``
|
||||
after sending each batch, emit a message and wait for that batch
|
||||
to finish rendering
|
||||
``task``
|
||||
dump shader assembly for task shaders
|
||||
``tcs``
|
||||
dump shader assembly for tessellation control shaders
|
||||
``tcs8``
|
||||
force usage of 8-patches tessellation control shaders (only
|
||||
for gfx 9-11)
|
||||
``tes``
|
||||
dump shader assembly for tessellation evaluation shaders
|
||||
``tex``
|
||||
emit messages about textures.
|
||||
``urb``
|
||||
emit messages about URB setup
|
||||
``vert``
|
||||
emit messages about vertex assembly
|
||||
``vs``
|
||||
dump shader assembly for vertex shaders
|
||||
``wm``
|
||||
dump shader assembly for fragment shaders (same as ``fs``)
|
||||
|
||||
:envvar:`INTEL_MEASURE`
|
||||
Collects GPU timestamps over common intervals, and generates a CSV report
|
||||
@@ -414,6 +413,12 @@ Intel driver environment variables
|
||||
assembly.
|
||||
|
||||
|
||||
Radeon driver environment variables (radeon, r200, and r300g)
|
||||
-------------------------------------------------------------
|
||||
|
||||
:envvar:`RADEON_NO_TCL`
|
||||
if set, disable hardware-accelerated Transform/Clip/Lighting.
|
||||
|
||||
DRI environment variables
|
||||
-------------------------
|
||||
|
||||
@@ -453,7 +458,8 @@ Gallium environment variables
|
||||
files.
|
||||
:envvar:`GALLIUM_DRIVER`
|
||||
useful in combination with :envvar:`LIBGL_ALWAYS_SOFTWARE`=`true` for
|
||||
choosing one of the software renderers ``softpipe`` or ``llvmpipe``.
|
||||
choosing one of the software renderers ``softpipe``, ``llvmpipe`` or
|
||||
``swr``.
|
||||
:envvar:`GALLIUM_LOG_FILE`
|
||||
specifies a file for logging all errors, warnings, etc. rather than
|
||||
stderr.
|
||||
@@ -672,8 +678,6 @@ RADV driver environment variables
|
||||
dump shader statistics
|
||||
``spirv``
|
||||
dump SPIR-V
|
||||
``splitfma``
|
||||
split application-provided fused multiply-add in geometry stages
|
||||
``startup``
|
||||
display info at startup
|
||||
``syncshaders``
|
||||
@@ -684,7 +688,7 @@ RADV driver environment variables
|
||||
initialize all memory allocated in VRAM as zero
|
||||
|
||||
:envvar:`RADV_FORCE_FAMILY`
|
||||
create a null device to compile shaders without a AMD GPU (e.g. VEGA10)
|
||||
create a null device to compile shaders without a AMD GPU (e.g. vega10)
|
||||
|
||||
:envvar:`RADV_FORCE_VRS`
|
||||
allow to force per-pipeline vertex VRS rates on GFX10.3+. This is only
|
||||
@@ -709,8 +713,6 @@ RADV driver environment variables
|
||||
enable local BOs
|
||||
``nosam``
|
||||
disable optimizations that get enabled when all VRAM is CPU visible.
|
||||
``nv_ms``
|
||||
enable unofficial experimental support for NV_mesh_shader.
|
||||
``pswave32``
|
||||
enable wave32 for pixel shaders (GFX10+)
|
||||
``nggc``
|
||||
@@ -719,31 +721,10 @@ RADV driver environment variables
|
||||
enable rt extensions whose implementation is still experimental.
|
||||
``sam``
|
||||
enable optimizations to move more driver internal objects to VRAM.
|
||||
``rtwave64``
|
||||
enable wave64 for ray tracing shaders (GFX10+)
|
||||
|
||||
:envvar:`RADV_TEX_ANISO`
|
||||
force anisotropy filter (up to 16)
|
||||
|
||||
:envvar:`RADV_THREAD_TRACE`
|
||||
enable frame based SQTT/RGP captures (eg. `export RADV_THREAD_TRACE=100`
|
||||
will capture the frame #100)
|
||||
|
||||
:envvar:`RADV_THREAD_TRACE_BUFFER_SIZE`
|
||||
set the SQTT/RGP buffer size in bytes (default value is 32MiB, the buffer is
|
||||
automatically resized if too small)
|
||||
|
||||
:envvar:`RADV_THREAD_TRACE_CACHE_COUNTERS`
|
||||
enable/disable SQTT/RGP cache counters on GFX10+ (disabled by default)
|
||||
|
||||
:envvar:`RADV_THREAD_TRACE_INSTRUCTION_TIMING`
|
||||
enable/disable SQTT/RGP instruction timing (enabled by default)
|
||||
|
||||
:envvar:`RADV_THREAD_TRACE_TRIGGER`
|
||||
enable trigger file based SQTT/RGP captures (eg.
|
||||
`export RADV_THREAD_TRACE_TRIGGER=/tmp/radv_sqtt_trigger` and then
|
||||
`touch /tmp/radv_sqtt_trigger` to capture a frame)
|
||||
|
||||
:envvar:`ACO_DEBUG`
|
||||
a comma-separated list of named flags, which do various things:
|
||||
|
||||
@@ -993,62 +974,5 @@ r600 driver environment variables
|
||||
``trans``
|
||||
Log generic translation messages
|
||||
|
||||
r300 driver environment variables
|
||||
---------------------------------
|
||||
|
||||
:envvar:`RADEON_DEBUG`
|
||||
a comma-separated list of named flags, which do various things:
|
||||
|
||||
``info``
|
||||
Print hardware info (printed by default on debug builds
|
||||
``fp``
|
||||
Log fragment program compilation
|
||||
``vp``
|
||||
Log vertex program compilation
|
||||
``draw``
|
||||
Log draw calls
|
||||
``swtcl``
|
||||
Log SWTCL-specific info
|
||||
``rsblock``
|
||||
Log rasterizer registers
|
||||
``psc``
|
||||
Log vertex stream registers
|
||||
``tex``
|
||||
Log basic info about textures
|
||||
``texalloc``
|
||||
Log texture mipmap tree info
|
||||
``rs``
|
||||
Log rasterizer
|
||||
``fb``
|
||||
Log framebuffer
|
||||
``cbzb``
|
||||
Log fast color clear info
|
||||
``hyperz``
|
||||
Log HyperZ info
|
||||
``scissor``
|
||||
Log scissor info
|
||||
``msaa``
|
||||
Log MSAA resources
|
||||
``anisohq``
|
||||
Use high quality anisotropic filtering
|
||||
``notiling``
|
||||
Disable tiling
|
||||
``noimmd``
|
||||
Disable immediate mode
|
||||
``noopt``
|
||||
Disable shader optimizations
|
||||
``nocbzb``
|
||||
Disable fast color clear
|
||||
``nozmask``
|
||||
Disable zbuffer compression
|
||||
``nohiz``
|
||||
Disable hierarchical zbuffer
|
||||
``nocmask``
|
||||
Disable AA compression and fast AA clear
|
||||
``use_tgsi``
|
||||
Request TGSI shaders from the state tracker
|
||||
``notcl``
|
||||
Disable hardware accelerated Transform/Clip/Lighting
|
||||
|
||||
Other Gallium drivers have their own environment variables. These may
|
||||
change frequently so the source code should be consulted for details.
|
||||
|
@@ -131,7 +131,7 @@ has Mesa packages (like RPM or DEB) which you can easily install.
|
||||
2.2 I get undefined symbols such as bgnpolygon, v3f, etc...
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Your application is written in IRIS GL, not OpenGL. IRIS GL was the
|
||||
You're application is written in IRIS GL, not OpenGL. IRIS GL was the
|
||||
predecessor to OpenGL and is a different thing (almost) entirely. Mesa's
|
||||
not the solution.
|
||||
|
||||
|
@@ -36,7 +36,7 @@ context as extensions.
|
||||
Feature Status
|
||||
------------------------------------------------------- ------------------------
|
||||
|
||||
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost
|
||||
GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12, panfrost
|
||||
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
GL_NV_conditional_render (Conditional rendering) DONE ()
|
||||
@@ -63,26 +63,26 @@ GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
||||
glVertexAttribI commands DONE
|
||||
Depth format cube textures DONE ()
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE (v3d, vc4)
|
||||
Multisample anti-aliasing DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*)))
|
||||
Multisample anti-aliasing DONE (freedreno/a5xx+, freedreno (*), llvmpipe (*), softpipe (*), swr (*))
|
||||
8 draw buffers DONE (panfrost/t760+)
|
||||
|
||||
(*) freedreno (a2xx-a4xx), llvmpipe, and softpipe have fake Multisample anti-aliasing support
|
||||
(*) freedreno (a2xx-a4xx), llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
||||
|
||||
|
||||
GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12, panfrost
|
||||
GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12, panfrost
|
||||
|
||||
Forward compatible context support/deprecations DONE
|
||||
GL_ARB_draw_instanced (Instanced drawing) DONE (v3d)
|
||||
GL_ARB_copy_buffer (Buffer copying) DONE (v3d, vc4, lima)
|
||||
GL_NV_primitive_restart (Primitive restart) DONE (v3d)
|
||||
16 vertex texture image units DONE ()
|
||||
GL_ARB_texture_buffer_object (Texture buffer objs) DONE (v3d)
|
||||
GL_ARB_texture_buffer_object (Texture buffer objs) DONE ()
|
||||
GL_ARB_texture_rectangle (Rectangular textures) DONE (v3d, vc4, lima)
|
||||
GL_ARB_uniform_buffer_object (Uniform buffer objs) DONE (v3d)
|
||||
GL_EXT_texture_snorm (Signed normalized textures) DONE (v3d)
|
||||
|
||||
|
||||
GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
|
||||
GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl, zink, d3d12
|
||||
|
||||
Core/compatibility profiles DONE
|
||||
Geometry shaders DONE (freedreno/a6xx)
|
||||
@@ -99,70 +99,70 @@ GL 3.2, GLSL 1.50 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
||||
|
||||
GL 3.3, GLSL 3.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl, zink, d3d12
|
||||
|
||||
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, panfrost, lima)
|
||||
GL_ARB_blend_func_extended DONE (freedreno/a3xx, freedreno/a6xx, swr, panfrost)
|
||||
GL_ARB_explicit_attrib_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_occlusion_query2 DONE (v3d, panfrost)
|
||||
GL_ARB_occlusion_query2 DONE (swr, v3d, vc4, panfrost, lima)
|
||||
GL_ARB_sampler_objects DONE (all drivers)
|
||||
GL_ARB_shader_bit_encoding DONE (v3d, panfrost)
|
||||
GL_ARB_texture_rgb10_a2ui DONE (panfrost)
|
||||
GL_ARB_texture_swizzle DONE (v3d, vc4, panfrost, lima)
|
||||
GL_ARB_timer_query DONE ()
|
||||
GL_ARB_instanced_arrays DONE (v3d, panfrost)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (v3d, panfrost)
|
||||
GL_ARB_shader_bit_encoding DONE (swr, v3d, panfrost)
|
||||
GL_ARB_texture_rgb10_a2ui DONE (swr, panfrost)
|
||||
GL_ARB_texture_swizzle DONE (swr, v3d, vc4, panfrost, lima)
|
||||
GL_ARB_timer_query DONE (swr)
|
||||
GL_ARB_instanced_arrays DONE (swr, v3d, panfrost)
|
||||
GL_ARB_vertex_type_2_10_10_10_rev DONE (swr, v3d, panfrost)
|
||||
|
||||
|
||||
GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
|
||||
|
||||
GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, softpipe, panfrost, d3d12)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, softpipe, v3d, d3d12)
|
||||
GL_ARB_gpu_shader5 DONE (i965/gen7+, d3d12)
|
||||
GL_ARB_draw_buffers_blend DONE (freedreno, i965/gen6+, nv50, softpipe, swr, panfrost, d3d12)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, softpipe, swr, v3d)
|
||||
GL_ARB_gpu_shader5 DONE (i965/gen7+)
|
||||
- 'precise' qualifier DONE (softpipe)
|
||||
- Dynamically uniform sampler array indices DONE (softpipe)
|
||||
- Dynamically uniform UBO array indices DONE (freedreno, softpipe)
|
||||
- Implicit signed -> unsigned conversions DONE (softpipe, )
|
||||
- Fused multiply-add DONE (softpipe, )
|
||||
- Packing/bitfield/conversion functions DONE (freedreno, softpipe, panfrost)
|
||||
- Enhanced textureGather DONE (freedreno, softpipe, panfrost)
|
||||
- Geometry shader instancing DONE (softpipe, )
|
||||
- Geometry shader multiple streams DONE (softpipe, )
|
||||
- Implicit signed -> unsigned conversions DONE (softpipe, swr)
|
||||
- Fused multiply-add DONE (softpipe, swr)
|
||||
- Packing/bitfield/conversion functions DONE (freedreno, softpipe, swr, panfrost)
|
||||
- Enhanced textureGather DONE (freedreno, softpipe, swr, panfrost)
|
||||
- Geometry shader instancing DONE (softpipe, swr)
|
||||
- Geometry shader multiple streams DONE (softpipe, swr)
|
||||
- Enhanced per-sample shading DONE ()
|
||||
- Interpolation functions DONE (softpipe)
|
||||
- New overload resolution rules DONE (softpipe)
|
||||
GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, softpipe, )
|
||||
GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50, panfrost, d3d12)
|
||||
GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, softpipe, d3d12)
|
||||
GL_ARB_tessellation_shader DONE (freedreno/a6xx, i965/gen7+, )
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, softpipe, d3d12, panfrost)
|
||||
GL_ARB_texture_cube_map_array DONE (freedreno/a4xx+, i965/gen6+, nv50, softpipe, d3d12)
|
||||
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_transform_feedback2 DONE (freedreno/a3xx+, i965/gen6+, nv50, softpipe, v3d, panfrost)
|
||||
GL_ARB_transform_feedback3 DONE (freedreno/a3xx+, i965/gen7+, softpipe, )
|
||||
GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, softpipe, swr)
|
||||
GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50, panfrost)
|
||||
GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, softpipe, swr, d3d12)
|
||||
GL_ARB_tessellation_shader DONE (freedreno/a6xx, i965/gen7+, swr)
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, softpipe, swr, d3d12, panfrost)
|
||||
GL_ARB_texture_cube_map_array DONE (freedreno/a4xx+, i965/gen6+, nv50, softpipe, swr)
|
||||
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, softpipe, swr, v3d, panfrost)
|
||||
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, softpipe, swr, v3d, panfrost, d3d12)
|
||||
GL_ARB_transform_feedback2 DONE (freedreno/a3xx+, i965/gen6+, nv50, softpipe, swr, v3d, panfrost)
|
||||
GL_ARB_transform_feedback3 DONE (freedreno/a3xx+, i965/gen7+, softpipe, swr)
|
||||
|
||||
|
||||
GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
|
||||
|
||||
GL_ARB_ES2_compatibility DONE (freedreno, i965, nv50, softpipe, v3d, vc4, panfrost, d3d12, lima)
|
||||
GL_ARB_ES2_compatibility DONE (freedreno, i965, nv50, softpipe, swr, v3d, vc4, panfrost, d3d12, lima)
|
||||
GL_ARB_get_program_binary DONE (freedreno, 0 or 1 binary formats)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
|
||||
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, softpipe, )
|
||||
GL_ARB_viewport_array DONE (i965, nv50, softpipe, )
|
||||
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, softpipe, swr)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, softpipe, swr)
|
||||
|
||||
|
||||
GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, llvmpipe, virgl, zink
|
||||
|
||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965, softpipe, panfrost/if SoC supports)
|
||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965, softpipe, swr, panfrost/if SoC supports)
|
||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, softpipe, v3d)
|
||||
GL_ARB_base_instance DONE (freedreno, i965, nv50, softpipe, v3d, d3d12)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965, softpipe, panfrost, d3d12)
|
||||
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, softpipe, swr, v3d)
|
||||
GL_ARB_base_instance DONE (freedreno, i965, nv50, softpipe, swr, v3d)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
|
||||
GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_internalformat_query DONE (freedreno, i965, nv50, softpipe, v3d, vc4, panfrost, d3d12, lima)
|
||||
GL_ARB_internalformat_query DONE (freedreno, i965, nv50, softpipe, swr, v3d, vc4, panfrost, d3d12, lima)
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
|
||||
|
||||
@@ -171,32 +171,32 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, virgl
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_copy_image DONE (i965, nv50, softpipe, )
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
|
||||
GL_ARB_copy_image DONE (i965, nv50, softpipe, swr)
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, softpipe, )
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, softpipe, v3d, d3d12)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, softpipe, swr)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, softpipe, v3d)
|
||||
GL_ARB_internalformat_query2 DONE (all drivers)
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (freedreno, i965, softpipe, v3d, d3d12)
|
||||
GL_ARB_multi_draw_indirect DONE (freedreno, i965, softpipe, swr, v3d)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_robust_buffer_access_behavior DONE (freedreno, i965)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, softpipe, v3d, panfrost, d3d12)
|
||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, v3d, d3d12)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, softpipe, v3d, panfrost)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, softpipe, swr, v3d, panfrost, d3d12)
|
||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, swr, d3d12)
|
||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_texture_view DONE (freedreno, i965, nv50, softpipe, v3d)
|
||||
GL_ARB_texture_view DONE (freedreno, i965, nv50, softpipe, swr)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
|
||||
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
||||
GL_ARB_buffer_storage DONE (freedreno, i965, nv50, v3d, vc4)
|
||||
GL_ARB_clear_texture DONE (i965, nv50, softpipe, virgl)
|
||||
GL_ARB_buffer_storage DONE (freedreno, i965, nv50, swr, v3d, vc4)
|
||||
GL_ARB_clear_texture DONE (i965, nv50, softpipe, swr, virgl)
|
||||
GL_ARB_enhanced_layouts DONE (i965, nv50, softpipe, virgl)
|
||||
- compile-time constant expressions DONE
|
||||
- explicit byte offsets for blocks DONE
|
||||
@@ -206,16 +206,16 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, llvmpipe, zink
|
||||
- input/output block locations DONE
|
||||
GL_ARB_multi_bind DONE (all drivers)
|
||||
GL_ARB_query_buffer_object DONE (i965/hsw+, virgl)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, virgl, v3d, panfrost)
|
||||
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, softpipe, virgl, v3d, panfrost, d3d12)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, i965, nv50, softpipe, virgl, panfrost, d3d12)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, swr, virgl, v3d, panfrost)
|
||||
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, softpipe, swr, virgl, v3d, panfrost, d3d12)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost, d3d12)
|
||||
|
||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe, zink
|
||||
|
||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl)
|
||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, virgl, lima)
|
||||
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, softpipe, virgl, panfrost, d3d12)
|
||||
GL_ARB_cull_distance DONE (freedreno/a6xx, i965, nv50, softpipe, virgl)
|
||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, swr, virgl, lima)
|
||||
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, softpipe, swr, virgl, panfrost)
|
||||
GL_ARB_cull_distance DONE (freedreno/a6xx, i965, nv50, softpipe, swr, virgl)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, softpipe, virgl)
|
||||
GL_ARB_direct_state_access DONE (all drivers)
|
||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
||||
@@ -228,11 +228,11 @@ GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi, llvmpipe, zink
|
||||
GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
|
||||
|
||||
GL_ARB_gl_spirv DONE (i965/gen7+, llvmpipe)
|
||||
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, llvmpipe, virgl, d3d12)
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, llvmpipe, softpipe, )
|
||||
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, virgl)
|
||||
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, llvmpipe, virgl)
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, swr, virgl)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl, v3d)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, llvmpipe, nvc0, d3d12)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, llvmpipe, nvc0)
|
||||
GL_ARB_shader_group_vote DONE (i965, nvc0, llvmpipe)
|
||||
GL_ARB_spirv_extensions DONE (i965/gen7+, llvmpipe)
|
||||
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe, llvmpipe, d3d12, virgl)
|
||||
@@ -240,22 +240,22 @@ GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
|
||||
GL_KHR_no_error DONE (all drivers)
|
||||
|
||||
These are the extensions cherry-picked to make GLES 3.1
|
||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost, d3d12
|
||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, softpipe, llvmpipe, zink, panfrost
|
||||
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965/gen7+)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, swr)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, swr)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, swr)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, swr)
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, nv50)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, i965/gen7+, nv50)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, nv50, swr)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx+, i965/gen7+, nv50, swr)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
GS5 Enhanced textureGather DONE (freedreno, i965/gen7+)
|
||||
@@ -274,14 +274,14 @@ GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe, zink
|
||||
GL_KHR_blend_equation_advanced DONE (freedreno/a6xx, i965, nvc0, panfrost)
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_KHR_robustness DONE (freedreno, i965, nvc0, r600)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, lima)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, swr, lima)
|
||||
GL_OES_copy_image DONE (all drivers)
|
||||
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
|
||||
GL_OES_draw_elements_base_vertex DONE (all drivers)
|
||||
GL_OES_geometry_shader DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d)
|
||||
GL_OES_gpu_shader5 DONE (freedreno/a6xx, all drivers that support GL_ARB_gpu_shader5)
|
||||
GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d)
|
||||
GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600, panfrost, d3d12)
|
||||
GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600, panfrost)
|
||||
GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600, panfrost/bifrost)
|
||||
GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
|
||||
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
|
||||
@@ -305,26 +305,26 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_post_depth_coverage DONE (i965, nvc0, radeonsi, llvmpipe, zink)
|
||||
GL_ARB_robustness_isolation not started
|
||||
GL_ARB_sample_locations DONE (nvc0, zink)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, virgl)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, r600, radeonsi, softpipe, swr, virgl)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi, zink)
|
||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl, zink)
|
||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, virgl, panfrost, zink)
|
||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl, panfrost, zink)
|
||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi, zink)
|
||||
GL_ARB_shading_language_include DONE
|
||||
GL_ARB_sparse_buffer DONE (radeonsi/gfx9+, zink)
|
||||
GL_ARB_sparse_texture DONE (radeonsi/gfx9+, zink)
|
||||
GL_ARB_sparse_texture2 DONE (radeonsi/gfx9+, zink)
|
||||
GL_ARB_sparse_texture_clamp DONE (radeonsi/gfx9+, zink)
|
||||
GL_ARB_sparse_buffer DONE (radeonsi/CIK+, zink)
|
||||
GL_ARB_sparse_texture not started
|
||||
GL_ARB_sparse_texture2 not started
|
||||
GL_ARB_sparse_texture_clamp not started
|
||||
GL_ARB_texture_filter_minmax DONE (nvc0/gm200+, zink)
|
||||
GL_EXT_color_buffer_half_float DONE (freedreno, i965, iris, llvmpipe, nv50, nvc0, radeonsi, zink)
|
||||
GL_EXT_depth_bounds_test DONE (i965/gen12+, nv50, nvc0, radeonsi, softpipe, zink)
|
||||
GL_EXT_memory_object DONE (radeonsi, i965/gen7+, llvmpipe, zink)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi, i965/gen7+, llvmpipe, zink)
|
||||
GL_EXT_depth_bounds_test DONE (i965/gen12+, nv50, nvc0, radeonsi, softpipe, swr, zink)
|
||||
GL_EXT_memory_object DONE (radeonsi, i965/gen7+, llvmpipe)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi, i965/gen7+, llvmpipe)
|
||||
GL_EXT_memory_object_win32 not started
|
||||
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink)
|
||||
GL_EXT_render_snorm DONE (i965, r600, radeonsi, softpipe, zink)
|
||||
GL_EXT_semaphore DONE (radeonsi, i965/gen7+, zink)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi, i965/gen7+, zink)
|
||||
GL_EXT_semaphore DONE (radeonsi, i965/gen7+)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi, i965/gen7+)
|
||||
GL_EXT_semaphore_win32 not started
|
||||
GL_EXT_shader_group_vote DONE (all drivers that support GL_ARB_shader_group_vote)
|
||||
GL_EXT_sRGB_write_control DONE (all drivers that support GLES 3.0+)
|
||||
@@ -332,7 +332,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_EXT_texture_sRGB_R8 DONE (all drivers that support GLES 3.0+)
|
||||
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+, panfrost)
|
||||
GL_KHR_texture_compression_astc_hdr DONE (i965/bxt, panfrost)
|
||||
GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+, r600, radeonsi, panfrost, softpipe, zink, lima)
|
||||
GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+, r600, radeonsi, panfrost, softpipe, swr, zink, lima)
|
||||
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
|
||||
GL_OES_EGL_image DONE (all drivers)
|
||||
GL_OES_EGL_image_external DONE (all drivers)
|
||||
@@ -340,11 +340,11 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_OES_required_internalformat DONE (all drivers)
|
||||
GL_OES_surfaceless_context DONE (all drivers)
|
||||
GL_OES_texture_compression_astc DONE (core only)
|
||||
GL_OES_texture_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, zink)
|
||||
GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, zink)
|
||||
GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, zink, lima)
|
||||
GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, zink, lima)
|
||||
GL_OES_texture_view DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, v3d, zink)
|
||||
GL_OES_texture_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink)
|
||||
GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink)
|
||||
GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink, lima)
|
||||
GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe, panfrost, swr, zink, lima)
|
||||
GL_OES_texture_view DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr, zink)
|
||||
GL_OES_viewport_array DONE (i965, nvc0, r600, radeonsi, softpipe, zink)
|
||||
GLX_ARB_context_flush_control not started
|
||||
GLX_ARB_robustness_application_isolation not started
|
||||
@@ -419,7 +419,7 @@ Vulkan 1.0 -- all DONE: anv, lvp, radv, tu, v3dv, vn
|
||||
|
||||
Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
|
||||
|
||||
VK_KHR_16bit_storage DONE (anv/gen8+, lvp, radv, tu/a650, v3dv, vn)
|
||||
VK_KHR_16bit_storage DONE (anv/gen8+, lvp, radv, tu/a650, vn)
|
||||
VK_KHR_bind_memory2 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_dedicated_allocation DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_descriptor_update_template DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
@@ -445,16 +445,16 @@ Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
|
||||
|
||||
Vulkan 1.2 -- all DONE: anv, vn
|
||||
|
||||
VK_KHR_8bit_storage DONE (anv/gen8+, lvp, radv, v3dv, vn)
|
||||
VK_KHR_buffer_device_address DONE (anv/gen8+, lvp, radv, tu, vn)
|
||||
VK_KHR_create_renderpass2 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_depth_stencil_resolve DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_8bit_storage DONE (anv/gen8+, lvp, radv, vn)
|
||||
VK_KHR_buffer_device_address DONE (anv/gen8+, lvp, radv, vn)
|
||||
VK_KHR_create_renderpass2 DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_depth_stencil_resolve DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_draw_indirect_count DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_driver_properties DONE (anv, lvp, radv, v3dv, vn)
|
||||
VK_KHR_driver_properties DONE (anv, lvp, radv, vn)
|
||||
VK_KHR_image_format_list DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn, tu)
|
||||
VK_KHR_separate_depth_stencil_layouts DONE (anv, lvp, radv, vn)
|
||||
VK_KHR_shader_atomic_int64 DONE (anv/gen9+, lvp, radv, vn)
|
||||
VK_KHR_shader_float16_int8 DONE (anv/gen8+, lvp, radv, tu, vn)
|
||||
VK_KHR_shader_float_controls DONE (anv/gen8+, lvp, radv, tu, vn)
|
||||
@@ -464,38 +464,16 @@ Vulkan 1.2 -- all DONE: anv, vn
|
||||
VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_vulkan_memory_model DONE (anv, radv, tu, vn)
|
||||
VK_EXT_descriptor_indexing DONE (anv/gen9+, radv, tu, vn)
|
||||
VK_EXT_host_query_reset DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_EXT_host_query_reset DONE (anv, lvp, radv, tu, vn)
|
||||
VK_EXT_sampler_filter_minmax DONE (anv/gen9+, lvp, radv, tu, vn)
|
||||
VK_EXT_scalar_block_layout DONE (anv, lvp, radv/gfx7+, tu, vn)
|
||||
VK_EXT_separate_stencil_usage DONE (anv, lvp, tu, vn)
|
||||
VK_EXT_shader_viewport_index_layer DONE (anv, lvp, radv, tu, vn)
|
||||
|
||||
Vulkan 1.3 -- all DONE: anv, radv
|
||||
|
||||
VK_KHR_copy_commands2 DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_KHR_dynamic_rendering DONE (anv, lvp, radv)
|
||||
VK_KHR_format_feature_flags2 DONE (anv, radv)
|
||||
VK_KHR_maintenance4 DONE (anv, radv)
|
||||
VK_KHR_shader_non_semantic_info DONE (anv, radv)
|
||||
VK_KHR_shader_terminate_invocation DONE (anv, radv, tu)
|
||||
VK_KHR_synchronization2 DONE (anv, radv)
|
||||
VK_KHR_zero_initialize_workgroup_memory DONE (anv, radv)
|
||||
VK_EXT_4444_formats DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_EXT_extended_dynamic_state DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_extended_dynamic_state2 DONE (anv, lvp, radv)
|
||||
VK_EXT_inline_uniform_block DONE (anv, radv)
|
||||
VK_EXT_pipeline_creation_cache_control DONE (anv, radv, v3dv)
|
||||
VK_EXT_pipeline_creation_feedback DONE (anv, radv, v3dv)
|
||||
VK_EXT_private_data DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_EXT_image_robustness DONE (anv, radv)
|
||||
VK_EXT_shader_demote_to_helper_invocation DONE (anv, radv, tu)
|
||||
VK_EXT_subgroup_size_control DONE (anv, radv)
|
||||
VK_EXT_texel_buffer_alignment DONE (anv, radv)
|
||||
|
||||
Khronos extensions that are not part of any Vulkan version:
|
||||
|
||||
VK_KHR_acceleration_structure in progress
|
||||
VK_KHR_android_surface not started
|
||||
VK_KHR_copy_commands2 DONE (anv, lvp, radv, v3dv)
|
||||
VK_KHR_deferred_host_operations DONE (anv, radv)
|
||||
VK_KHR_display DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_KHR_display_swapchain not started
|
||||
@@ -505,33 +483,33 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_external_memory_win32 not started
|
||||
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv, vn)
|
||||
VK_KHR_external_semaphore_win32 not started
|
||||
VK_KHR_fragment_shading_rate DONE (radv/gfx10.3+)
|
||||
VK_KHR_fragment_shading_rate not started
|
||||
VK_KHR_get_display_properties2 DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_KHR_get_surface_capabilities2 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_incremental_present DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_performance_query DONE (anv/gen8+, tu)
|
||||
VK_KHR_pipeline_executable_properties DONE (anv, radv, tu)
|
||||
VK_KHR_pipeline_library in progress
|
||||
VK_KHR_push_descriptor DONE (anv, lvp, radv, tu)
|
||||
VK_KHR_ray_query not started
|
||||
VK_KHR_ray_tracing_pipeline in progress
|
||||
VK_KHR_shader_clock DONE (anv, radv)
|
||||
VK_KHR_shader_integer_dot_product DONE (anv, radv, tu)
|
||||
VK_KHR_shader_integer_dot_product DONE (radv)
|
||||
VK_KHR_shader_non_semantic_info DONE (anv, radv)
|
||||
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, radv)
|
||||
VK_KHR_shader_terminate_invocation DONE (anv, radv, tu)
|
||||
VK_KHR_shared_presentable_image not started
|
||||
VK_KHR_surface DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_surface_protected_capabilities DONE (anv, lvp, radv, v3dv, vn)
|
||||
VK_KHR_swapchain DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_swapchain_mutable_format DONE (anv, radv, v3dv, vn)
|
||||
VK_KHR_swapchain_mutable_format DONE (anv, radv, vn)
|
||||
VK_KHR_wayland_surface DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_workgroup_memory_explicit_layout DONE (anv, radv)
|
||||
VK_KHR_win32_keyed_mutex not started
|
||||
VK_KHR_win32_surface DONE (lvp)
|
||||
VK_KHR_xcb_surface DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_xlib_surface DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_EXT_buffer_device_address DONE (radv)
|
||||
VK_KHR_zero_initialize_workgroup_memory DONE (anv, radv)
|
||||
VK_EXT_4444_formats DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_calibrated_timestamps DONE (anv, lvp, radv)
|
||||
VK_EXT_color_write_enable DONE (anv, lvp, radv, v3dv)
|
||||
VK_EXT_color_write_enable DONE (anv, lvp, v3dv)
|
||||
VK_EXT_conditional_rendering DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_conservative_rasterization DONE (anv/gen9+, radv)
|
||||
VK_EXT_custom_border_color DONE (anv, lvp, radv, tu, v3dv)
|
||||
@@ -539,34 +517,41 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_EXT_depth_clip_enable DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_depth_range_unrestricted DONE (radv)
|
||||
VK_EXT_discard_rectangles DONE (radv)
|
||||
VK_EXT_display_control DONE (anv, tu)
|
||||
VK_EXT_display_control DONE (anv, radv, tu)
|
||||
VK_EXT_extended_dynamic_state DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_extended_dynamic_state2 DONE (anv, lvp, radv)
|
||||
VK_EXT_external_memory_dma_buf DONE (anv, radv, tu, v3dv, vn)
|
||||
VK_EXT_external_memory_host DONE (anv, lvp, radv)
|
||||
VK_EXT_filter_cubic DONE (tu/a650)
|
||||
VK_EXT_fragment_shader_interlock DONE (anv/gen9+)
|
||||
VK_EXT_global_priority DONE (anv, radv)
|
||||
VK_EXT_global_priority_query DONE (radv)
|
||||
VK_EXT_image_drm_format_modifier DONE (anv, radv/gfx9+, tu, vn)
|
||||
VK_EXT_image_view_min_lod DONE (radv)
|
||||
VK_EXT_image_robustness DONE (anv, radv)
|
||||
VK_EXT_index_type_uint8 DONE (anv, lvp, radv/gfx8+, v3dv, tu)
|
||||
VK_EXT_inline_uniform_block DONE (anv, radv)
|
||||
VK_EXT_line_rasterization DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_memory_budget DONE (anv, radv, tu)
|
||||
VK_EXT_memory_priority DONE (radv)
|
||||
VK_EXT_multi_draw DONE (anv, lvp, radv)
|
||||
VK_EXT_pci_bus_info DONE (anv, radv)
|
||||
VK_EXT_physical_device_drm DONE (anv, radv, v3dv)
|
||||
VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv/gfx10+)
|
||||
VK_EXT_primitive_topology_list_restart DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_pipeline_creation_cache_control DONE (anv, radv, v3dv)
|
||||
VK_EXT_pipeline_creation_feedback DONE (anv, radv, v3dv)
|
||||
VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv)
|
||||
VK_EXT_private_data DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_EXT_queue_family_foreign DONE (anv, radv, vn)
|
||||
VK_EXT_robustness2 DONE (anv, radv, tu)
|
||||
VK_EXT_sample_locations DONE (anv, radv/gfx9-, tu/a650)
|
||||
VK_EXT_shader_atomic_float DONE (anv, radv)
|
||||
VK_EXT_shader_atomic_float2 DONE (anv/gen9+, radv)
|
||||
VK_EXT_shader_demote_to_helper_invocation DONE (anv, radv, tu)
|
||||
VK_EXT_shader_image_atomic_int64 DONE (radv)
|
||||
VK_EXT_shader_stencil_export DONE (anv/gen9+, lvp, radv, tu)
|
||||
VK_EXT_shader_subgroup_ballot DONE (anv, radv)
|
||||
VK_EXT_shader_subgroup_vote DONE (anv, radv)
|
||||
VK_EXT_subgroup_size_control DONE (anv, radv)
|
||||
VK_EXT_texel_buffer_alignment DONE (anv, radv)
|
||||
VK_EXT_transform_feedback DONE (anv, lvp, radv, tu, vn)
|
||||
VK_EXT_vertex_attribute_divisor DONE (anv, radv, lvp, tu, v3dv)
|
||||
VK_EXT_vertex_input_dynamic_state DONE (lvp, radv)
|
||||
@@ -579,25 +564,7 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_IMG_filter_cubic DONE (tu/a650)
|
||||
VK_NV_compute_shader_derivatives DONE (anv, radv)
|
||||
VK_EXT_acquire_drm_display DONE (radv, anv)
|
||||
VK_VALVE_mutable_descriptor_type DONE (anv, radv, tu)
|
||||
VK_AMD_buffer_marker DONE (radv)
|
||||
VK_AMD_device_coherent_memory DONE (radv)
|
||||
VK_AMD_draw_indirect_count DONE (radv)
|
||||
VK_AMD_gcn_shader DONE (radv)
|
||||
VK_AMD_gpu_shader_half_float DONE (radv)
|
||||
VK_AMD_gpu_shader_int16 DONE (radv)
|
||||
VK_AMD_memory_overallocation_behavior DONE (radv)
|
||||
VK_AMD_mixed_attachment_samples DONE (radv)
|
||||
VK_AMD_rasterization_order DONE (radv)
|
||||
VK_AMD_shader_ballot DONE (radv)
|
||||
VK_AMD_shader_core_properties DONE (radv)
|
||||
VK_AMD_shader_core_properties2 DONE (radv)
|
||||
VK_AMD_shader_explicit_vertex_parameter DONE (radv)
|
||||
VK_AMD_shader_fragment_mask DONE (radv)
|
||||
VK_AMD_shader_image_load_store_lod DONE (radv)
|
||||
VK_AMD_shader_info DONE (radv)
|
||||
VK_AMD_shader_trinary_minmax DONE (radv)
|
||||
VK_AMD_texture_gather_bias_lod DONE (radv)
|
||||
VK_VALVE_mutable_descriptor_type DONE (radv, tu)
|
||||
|
||||
|
||||
OpenCL 1.0 -- all DONE:
|
||||
|
@@ -73,7 +73,9 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER``: Whether the TGSI
|
||||
property FS_COORD_PIXEL_CENTER with value INTEGER is supported.
|
||||
* ``PIPE_CAP_DEPTH_CLIP_DISABLE``: Whether the driver is capable of disabling
|
||||
depth clipping (through pipe_rasterizer_state).
|
||||
depth clipping (=1) (through pipe_rasterizer_state) or supports lowering
|
||||
depth_clamp in the client shader code (=2), for this the driver must
|
||||
currently use TGSI.
|
||||
* ``PIPE_CAP_DEPTH_CLIP_DISABLE_SEPARATE``: Whether the driver is capable of
|
||||
disabling depth clipping (through pipe_rasterizer_state) separately for
|
||||
the near and far plane. If not, depth_clip_near and depth_clip_far will be
|
||||
@@ -137,12 +139,6 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY``: This CAP describes
|
||||
a hw limitation. If true, pipe_vertex_element::src_offset must always be
|
||||
aligned to 4. If false, there are no restrictions on src_offset.
|
||||
* ``PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY``: This CAP describes
|
||||
a hw limitation. If true, the sum of
|
||||
``pipe_vertex_element::src_offset + pipe_vertex_buffer::buffer_offset + pipe_vertex_buffer::stride``
|
||||
must always be aligned to the component size for the vertex attributes
|
||||
which access that buffer. If false, there are no restrictions on these values.
|
||||
This CAP cannot be used with any other alignment-requiring CAPs.
|
||||
* ``PIPE_CAP_COMPUTE``: Whether the implementation supports the
|
||||
compute entry points defined in pipe_context and pipe_screen.
|
||||
* ``PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT``: Describes the required
|
||||
@@ -175,13 +171,10 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_TEXTURE_BUFFER_SAMPLER``: Whether a sampler should still
|
||||
be used for PIPE_BUFFER resources (normally a sampler is only used
|
||||
if the texture target is PIPE_TEXTURE_*).
|
||||
* ``PIPE_CAP_TEXTURE_TRANSFER_MODES``: The ``pipe_texture_transfer_mode`` modes
|
||||
that are supported for implementing a texture transfer which needs format conversions
|
||||
* ``PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER``: Whether it is preferable
|
||||
to use a blit to implement a texture transfer which needs format conversions
|
||||
and swizzling in gallium frontends. Generally, all hardware drivers with
|
||||
dedicated memory should return PIPE_TEXTURE_TRANSFER_BLIT and all software rasterizers
|
||||
should return PIPE_TEXTURE_TRANSFER_DEFAULT. PIPE_TEXTURE_TRANSFER_COMPUTE requires drivers
|
||||
to support 8bit and 16bit shader storage buffer writes and to implement
|
||||
pipe_screen::is_compute_copy_faster.
|
||||
dedicated memory should return 1 and all software rasterizers should return 0.
|
||||
* ``PIPE_CAP_QUERY_PIPELINE_STATISTICS``: Whether PIPE_QUERY_PIPELINE_STATISTICS
|
||||
is supported.
|
||||
* ``PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK``: Bitmask indicating whether special
|
||||
@@ -456,6 +449,8 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_MEMOBJ``: Whether operations on memory objects are supported.
|
||||
* ``PIPE_CAP_LOAD_CONSTBUF``: True if the driver supports ``TGSI_OPCODE_LOAD`` use
|
||||
with constant buffers.
|
||||
* ``PIPE_CAP_TGSI_ANY_REG_AS_ADDRESS``: Any TGSI register can be used as
|
||||
an address for indirect register indexing.
|
||||
* ``PIPE_CAP_TILE_RASTER_ORDER``: Whether the driver supports
|
||||
GL_MESA_tile_raster_order, using the tile_raster_order_* fields in
|
||||
pipe_rasterizer_state.
|
||||
@@ -553,7 +548,6 @@ The integer capabilities:
|
||||
A driver might rely on the input mapping that was defined with the original
|
||||
GLSL code.
|
||||
* ``PIPE_CAP_IMAGE_LOAD_FORMATTED``: True if a format for image loads does not need to be specified in the shader IR
|
||||
* ``PIPE_CAP_IMAGE_STORE_FORMATTED``: True if a format for image stores does not need to be specified in the shader IR
|
||||
* ``PIPE_CAP_THROTTLE``: Whether or not gallium frontends should throttle pipe_context
|
||||
execution. 0 = throttling is disabled.
|
||||
* ``PIPE_CAP_DMABUF``: Whether Linux DMABUF handles are supported by
|
||||
@@ -600,7 +594,7 @@ The integer capabilities:
|
||||
that backfacing primitives should use the back-side color as the FS input
|
||||
color. If unset, mesa/st will lower it to gl_FrontFacing reads in the
|
||||
fragment shader.
|
||||
* ``PIPE_CAP_CLIP_PLANES``: Driver supports user-defined clip-planes. 0 denotes none, 1 denotes MAX_CLIP_PLANES. > 1 overrides MAX.
|
||||
* ``PIPE_CAP_CLIP_PLANES``: Driver supports user-defined clip-planes.
|
||||
* ``PIPE_CAP_MAX_VERTEX_BUFFERS``: Number of supported vertex buffers.
|
||||
* ``PIPE_CAP_OPENCL_INTEGER_FUNCTIONS``: Driver supports extended OpenCL-style integer functions. This includes averge, saturating additiong, saturating subtraction, absolute difference, count leading zeros, and count trailing zeros.
|
||||
* ``PIPE_CAP_INTEGER_MULTIPLY_32X16``: Driver supports integer multiplication between a 32-bit integer and a 16-bit integer. If the second operand is 32-bits, the upper 16-bits are ignored, and the low 16-bits are possibly sign extended as necessary.
|
||||
@@ -629,13 +623,6 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_SUPPORTED_PRIM_MODES_WITH_RESTART``: A bitmask of the ``pipe_prim_type`` enum values that the driver can natively support for primitive restart. Only useful if ``PIPE_CAP_PRIMITIVE_RESTART`` is also exported.
|
||||
* ``PIPE_CAP_PREFER_BACK_BUFFER_REUSE``: Only applies to DRI_PRIME. If 1, the driver prefers that DRI3 tries to use the same back buffer each frame. If 0, this means DRI3 will at least use 2 back buffers and ping-pong between them to allow the tiled->linear copy to run in parallel.
|
||||
* ``PIPE_CAP_DRAW_VERTEX_STATE``: Driver supports `pipe_screen::create_vertex_state/vertex_state_destroy` and `pipe_context::draw_vertex_state`. Only used by display lists and designed to serve vbo_save.
|
||||
* ``PIPE_CAP_PREFER_POT_ALIGNED_VARYINGS``: Driver prefers varyings to be aligned to power of two in a slot. If this cap is enabled, vec4 varying will be placed in .xyzw components of the varying slot, vec3 in .xyz and vec2 in .xy or .zw
|
||||
* ``PIPE_CAP_MAX_SPARSE_TEXTURE_SIZE``: Maximum 1D/2D/rectangle texture image dimension for a sparse texture.
|
||||
* ``PIPE_CAP_MAX_SPARSE_3D_TEXTURE_SIZE``: Maximum 3D texture image dimension for a sparse texture.
|
||||
* ``PIPE_CAP_MAX_SPARSE_ARRAY_TEXTURE_LAYERS``: Maximum number of layers in a sparse array texture.
|
||||
* ``PIPE_CAP_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS``: TRUE if there are no restrictions on the allocation of mipmaps in sparse textures and FALSE otherwise. See SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB description in ARB_sparse_texture extension spec.
|
||||
* ``PIPE_CAP_QUERY_SPARSE_TEXTURE_RESIDENCY``: TRUE if shader sparse texture sample instruction could also return the residency information.
|
||||
* ``PIPE_CAP_CLAMP_SPARSE_TEXTURE_LOD``: TRUE if shader sparse texture sample instruction support clamp the minimal lod to prevent read from un-committed pages.
|
||||
|
||||
.. _pipe_capf:
|
||||
|
||||
@@ -644,16 +631,10 @@ PIPE_CAPF_*
|
||||
|
||||
The floating-point capabilities are:
|
||||
|
||||
* ``PIPE_CAPF_MIN_LINE_WIDTH``: The minimum width of a regular line.
|
||||
* ``PIPE_CAPF_MIN_LINE_WIDTH_AA``: The minimum width of a smoothed line.
|
||||
* ``PIPE_CAPF_MAX_LINE_WIDTH``: The maximum width of a regular line.
|
||||
* ``PIPE_CAPF_MAX_LINE_WIDTH_AA``: The maximum width of a smoothed line.
|
||||
* ``PIPE_CAPF_LINE_WIDTH_GRANULARITY``: The line width is rounded to a multiple of this number.
|
||||
* ``PIPE_CAPF_MIN_POINT_SIZE``: The minimum width and height of a point.
|
||||
* ``PIPE_CAPF_MIN_POINT_SIZE_AA``: The minimum width and height of a smoothed point.
|
||||
* ``PIPE_CAPF_MAX_POINT_SIZE``: The maximum width and height of a point.
|
||||
* ``PIPE_CAPF_MAX_POINT_SIZE_AA``: The maximum width and height of a smoothed point.
|
||||
* ``PIPE_CAPF_POINT_SIZE_GRANULARITY``: The point size is rounded to a multiple of this number.
|
||||
* ``PIPE_CAPF_MAX_POINT_WIDTH``: The maximum width and height of a point.
|
||||
* ``PIPE_CAPF_MAX_POINT_WIDTH_AA``: The maximum width and height of a smoothed point.
|
||||
* ``PIPE_CAPF_MAX_TEXTURE_ANISOTROPY``: The maximum level of anisotropy that can be
|
||||
applied to anisotropically filtered textures.
|
||||
* ``PIPE_CAPF_MAX_TEXTURE_LOD_BIAS``: The maximum :term:`LOD` bias that may be applied
|
||||
|
@@ -88,7 +88,8 @@ Ongoing: Mesa is the OpenGL implementation for devices designed by
|
||||
Intel, AMD, NVIDIA, Qualcomm, Broadcom, Vivante, plus the VMware and
|
||||
VirGL virtual GPUs. There's also several software-based renderers:
|
||||
swrast (the legacy Mesa rasterizer), softpipe (a Gallium reference
|
||||
driver) and llvmpipe (LLVM/JIT-based high-speed rasterizer).
|
||||
driver), llvmpipe (LLVM/JIT-based high-speed rasterizer) and swr
|
||||
(another LLVM-based driver).
|
||||
|
||||
Work continues on the drivers and core Mesa to implement newer versions
|
||||
of the OpenGL, OpenGL ES and Vulkan specifications.
|
||||
|
@@ -83,11 +83,11 @@ Linux, FreeBSD, and other operating systems.
|
||||
:caption: Drivers
|
||||
:hidden:
|
||||
|
||||
drivers/anv
|
||||
drivers/d3d12
|
||||
drivers/freedreno
|
||||
drivers/lima
|
||||
drivers/llvmpipe
|
||||
drivers/openswr
|
||||
drivers/panfrost
|
||||
drivers/svga3d
|
||||
drivers/v3d
|
||||
|
@@ -4,21 +4,21 @@ License and Copyright
|
||||
Disclaimer
|
||||
----------
|
||||
|
||||
Mesa implements various APIs, including `OpenGL`_, `OpenGL ES`_,
|
||||
`Vulkan`_ and `OpenCL`_. Even though Mesa implements these APIs, the
|
||||
implementation isn't formally conformant on all combinations of drivers
|
||||
and hardware. `Khronos`_ maintains lists of conformant implementations
|
||||
for each of their APIs, as well as `trademark details`_.
|
||||
Mesa is a 3-D graphics library with an API which is very similar to that
|
||||
of `OpenGL <https://www.opengl.org/>`_ [1]_.
|
||||
To the extent that Mesa utilizes the OpenGL command syntax or state
|
||||
machine, it is being used with authorization from `Silicon Graphics,
|
||||
Inc. <https://www.sgi.com/>`__\ (SGI). However, the author does not
|
||||
possess an OpenGL license from SGI, and makes no claim that Mesa is in
|
||||
any way a compatible replacement for OpenGL or associated with SGI.
|
||||
Those who want a licensed implementation of OpenGL should contact a
|
||||
licensed vendor.
|
||||
|
||||
Please do not refer to the library as *MesaGL* (for legal reasons). It's
|
||||
just *Mesa* or *The Mesa 3-D graphics library*.
|
||||
|
||||
.. _OpenGL: https://www.opengl.org/
|
||||
.. _OpenGL ES: https://www.khronos.org/opengles/
|
||||
.. _Vulkan: https://www.vulkan.org/
|
||||
.. _OpenCL: https://www.khronos.org/opencl/
|
||||
.. _Khronos: https://www.khronos.org/
|
||||
.. _trademark details: https://www.khronos.org/legal/trademarks/
|
||||
.. [1] OpenGL is a trademark of `Silicon Graphics
|
||||
Incorporated <https://www.sgi.com/>`__.
|
||||
|
||||
License / Copyright Information
|
||||
-------------------------------
|
||||
@@ -73,6 +73,8 @@ Mesa Component Licenses
|
||||
+=================+========================+=============================+
|
||||
| Main Mesa code | src/mesa/ | MIT |
|
||||
+-----------------+------------------------+-----------------------------+
|
||||
| Device drivers | src/mesa/drivers/* | MIT, generally |
|
||||
+-----------------+------------------------+-----------------------------+
|
||||
| Gallium code | src/gallium/ | MIT |
|
||||
+-----------------+------------------------+-----------------------------+
|
||||
| Ext headers | include/GL/glext.h, | Khronos |
|
||||
|
@@ -8,6 +8,8 @@ be aware of.
|
||||
Meson itself, are available in `homebrew <https://brew.sh>`, which has a
|
||||
Mesa package for reference. The exception seems to be Mako, a Python module
|
||||
used for templating, which you can install as `pip3 install mako`.
|
||||
- macOS's default C compiler doesn't play nice with some C11 idioms used in
|
||||
Mesa. To workaround, set `-Dc_std=c11`.
|
||||
- macOS is picky about its build-time environment. Type `brew sh` before
|
||||
building to get the Homebrew dependencies in your path.
|
||||
|
||||
@@ -16,7 +18,7 @@ hardware-accelerated system OpenGL framework, to provide hardware acceleration
|
||||
to X11 applications on macOS running via XQuartz.
|
||||
|
||||
Mesa's software rasterizers also work on macOS. To build, set the build options
|
||||
`-Dosmesa=true -Dglx=xlib` and select an appropriate Gallium software
|
||||
`-Dosmesa=true -Dglx=gallium-xlib` and select an appropriate Gallium software
|
||||
rasterizer.
|
||||
|
||||
For native hardware, stay tuned for updates here!
|
||||
|
@@ -12,7 +12,7 @@ production.**
|
||||
|
||||
.. note::
|
||||
|
||||
Mesa requires Meson >= 0.53.0 to build.
|
||||
Mesa requires Meson >= 0.52.0 to build.
|
||||
|
||||
If your distribution doesn't have something recent enough in its
|
||||
repositories, you can `try the methods suggested here
|
||||
@@ -296,6 +296,7 @@ The wrap file must define the following:
|
||||
It may also define:
|
||||
|
||||
- ``irbuilder_h``: a ``files()`` object pointing to llvm/IR/IRBuilder.h
|
||||
(this is required for SWR)
|
||||
- ``has_rtti``: a ``bool`` that declares whether LLVM was built with
|
||||
RTTI. Defaults to true
|
||||
|
||||
|
@@ -14,7 +14,7 @@ information about the API functions.
|
||||
The OSMesa interface may be used with the gallium software renderers:
|
||||
|
||||
#. llvmpipe - this is the high-performance Gallium LLVM driver
|
||||
#. softpipe - this is the reference Gallium software driver
|
||||
#. softpipe - this it the reference Gallium software driver
|
||||
|
||||
There are several examples of OSMesa in the mesa/demos repository.
|
||||
|
||||
|
@@ -80,46 +80,6 @@ To capture a trace with perfetto you need to take the following steps:
|
||||
8. Alternatively you can open the trace in `AGI <https://gpuinspector.dev/>`__
|
||||
(which despite the name can be used to view non-android traces).
|
||||
|
||||
To be a bit more explicit, here is a listing of commands reproducing
|
||||
the steps above :
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
# Configure Mesa with perfetto
|
||||
mesa $ meson . build -Dperfetto=true -Dvulkan-drivers=intel,broadcom -Dgallium-drivers=
|
||||
# Build mesa
|
||||
mesa $ ninja -C build
|
||||
|
||||
# Within the Mesa repo, build perfetto
|
||||
mesa $ cd subprojects/perfetto
|
||||
perfetto $ ./tools/install-build-deps
|
||||
perfetto $ ./tools/gn gen --args='is_debug=false' out/linux
|
||||
perfetto $ ./tools/ninja -C out/linux
|
||||
|
||||
# Start perfetto
|
||||
perfetto $ CONFIG=../../src/tool/pps/cfg/gpu.cfg OUT=out/linux/ ./tools/tmux -n
|
||||
|
||||
# In parallel from the Mesa repo, start the PPS producer
|
||||
mesa $ ./build/src/tool/pps/pps-producer
|
||||
|
||||
# Back in the perfetto tmux, press enter to start the capture
|
||||
|
||||
Vulkan data sources
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The Vulkan API gives the application control over recording of command
|
||||
buffers as well as when they are submitted to the hardware. As a
|
||||
consequence, we need to ensure command buffers are properly
|
||||
instrumented for the perfetto driver data sources prior to Perfetto
|
||||
actually collecting traces.
|
||||
|
||||
This can be achieved by setting the ``GPU_TRACE_INSTRUMENT``
|
||||
environment variable before starting a Vulkan application :
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
GPU_TRACE_INSTRUMENT=1 ./build/my_vulkan_app
|
||||
|
||||
Driver Specifics
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -154,21 +114,6 @@ Another option to enable access wide data without root permissions would be runn
|
||||
|
||||
Alternatively using the ``CAP_PERFMON`` permission on the binary should work too.
|
||||
|
||||
A particular metric set can also be selected to capture a different
|
||||
set of HW counters :
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
INTEL_PERFETTO_METRIC_SET=RasterizerAndPixelBackend ./build/src/tool/pps/pps-producer
|
||||
|
||||
Vulkan applications can also be instrumented to be Perfetto producers.
|
||||
To enable this for given application, set the environment variable as
|
||||
follow :
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
PERFETTO_TRACE=1 my_vulkan_app
|
||||
|
||||
Panfrost
|
||||
^^^^^^^^
|
||||
|
||||
|
@@ -1,7 +1,9 @@
|
||||
21.3,2022-02-09,21.3.6,Eric Engestrom,
|
||||
,2022-02-23,21.3.7,Eric Engestrom,
|
||||
,2022-03-09,21.3.8,Eric Engestrom,Last planned 21.3.x release.
|
||||
22.0,2022-02-02,22.0.0-rc1,Dylan Baker
|
||||
,2022-02-09,22.0.0-rc2,Dylan Baker
|
||||
,2022-02-16,22.0.0-rc3,Dylan Baker
|
||||
,2022-02-22,22.0.0-rc4,Dylan Baker,Or 22.0.0 final.
|
||||
21.2,2021-10-13,21.2.4,Dylan Baker,
|
||||
,2021-10-27,21.2.5,Dylan Baker,
|
||||
,2021-11-10,21.2.6,Dylan Baker,
|
||||
,2021-11-24,21.2.7,Dylan Baker,
|
||||
,2021-12-08,21.2.8,Dylan Baker,Last planned 21.2.x release.
|
||||
21.3,2021-10-13,21.3.0-rc1,Eric Engestrom,
|
||||
,2021-10-20,21.3.0-rc2,Eric Engestrom,
|
||||
,2021-10-27,21.3.0-rc3,Eric Engestrom,
|
||||
,2021-11-03,21.3.0-rc4,Eric Engestrom,
|
||||
|
|
@@ -175,27 +175,22 @@ to stabilization and bugfixing.
|
||||
testing is done and there are little to-no issues. Ideally all of those
|
||||
should be tackled already.
|
||||
|
||||
Check if the version number is going to remain as, alternatively
|
||||
``git mv docs/relnotes/{current,new}.rst`` as appropriate.
|
||||
|
||||
To setup the branchpoint:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
git fetch origin # make sure we have the latest commits
|
||||
git checkout main # make sure we're on main
|
||||
git reset origin # make sure we're at the latest commit
|
||||
|
||||
git checkout main # make sure we're in main first
|
||||
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
|
||||
|
||||
# Make sure main can carry on at the new version
|
||||
$EDITOR VERSION # bump the version number, keeping in mind the wrap around at the end of the year
|
||||
git commit -asm 'VERSION: bump to X.(Y+1)'
|
||||
truncate -s0 docs/relnotes/new_features.txt
|
||||
git commit -asm 'docs: reset new_features.txt'
|
||||
git push origin main
|
||||
|
||||
# Create the tag and branches on the server
|
||||
git push origin X.Y-branchpoint
|
||||
git push origin X.Y-branchpoint:refs/heads/X.Y
|
||||
git push origin X.Y-branchpoint:refs/heads/staging/X.Y
|
||||
git checkout -b X.Y
|
||||
git checkout main
|
||||
$EDITOR VERSION # bump the version number
|
||||
git commit -as
|
||||
truncate docs/relnotes/new_features.txt
|
||||
git commit -a
|
||||
git push origin X.Y-branchpoint X.Y
|
||||
|
||||
Now go to
|
||||
`GitLab <https://gitlab.freedesktop.org/mesa/mesa/-/milestones>`__ and
|
||||
@@ -299,15 +294,6 @@ Add the sha256sums to the release notes
|
||||
Edit ``docs/relnotes/X.Y.Z.rst`` to add the ``sha256sum`` as available in the
|
||||
``mesa-X.Y.Z.announce`` template. Commit this change.
|
||||
|
||||
Don't forget to push the commits to both the ``staging/X.Y`` branch and
|
||||
the ``X.Y`` branch:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
git push origin HEAD:staging/X.Y
|
||||
git push origin HEAD:X.Y
|
||||
|
||||
|
||||
Back on mesa main, add the new release notes into the tree
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
@@ -3,15 +3,6 @@ Release Notes
|
||||
|
||||
The release notes summarize what's new or changed in each Mesa release.
|
||||
|
||||
- :doc:`21.3.5 release notes <relnotes/21.3.5>`
|
||||
- :doc:`21.3.4 release notes <relnotes/21.3.4>`
|
||||
- :doc:`21.3.3 release notes <relnotes/21.3.3>`
|
||||
- :doc:`21.3.2 release notes <relnotes/21.3.2>`
|
||||
- :doc:`21.3.1 release notes <relnotes/21.3.1>`
|
||||
- :doc:`21.2.6 release notes <relnotes/21.2.6>`
|
||||
- :doc:`21.3.0 release notes <relnotes/21.3.0>`
|
||||
- :doc:`21.2.5 release notes <relnotes/21.2.5>`
|
||||
- :doc:`21.2.4 release notes <relnotes/21.2.4>`
|
||||
- :doc:`21.2.3 release notes <relnotes/21.2.3>`
|
||||
- :doc:`21.2.2 release notes <relnotes/21.2.2>`
|
||||
- :doc:`21.1.8 release notes <relnotes/21.1.8>`
|
||||
@@ -354,15 +345,6 @@ release notes, or in the `old docs`_.
|
||||
:maxdepth: 1
|
||||
:hidden:
|
||||
|
||||
relnotes/21.3.5
|
||||
relnotes/21.3.4
|
||||
relnotes/21.3.3
|
||||
relnotes/21.3.2
|
||||
relnotes/21.3.1
|
||||
relnotes/21.2.6
|
||||
relnotes/21.3.0
|
||||
relnotes/21.2.5
|
||||
relnotes/21.2.4
|
||||
relnotes/21.2.3
|
||||
relnotes/21.2.2
|
||||
relnotes/21.1.8
|
||||
|
@@ -1,147 +0,0 @@
|
||||
Mesa 21.2.4 Release Notes / 2021-10-14
|
||||
======================================
|
||||
|
||||
Mesa 21.2.4 is a bug fix release which fixes bugs found since the 21.2.3 release.
|
||||
|
||||
Mesa 21.2.4 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is **only** available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
|
||||
Mesa 21.2.4 implements the Vulkan 1.2 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
fe6ede82d1ac02339da3c2ec1820a379641902fd351a52cc01153f76eff85b44 mesa-21.2.4.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- RADV: Rendering issues in Resident Evil 2 with NGGC
|
||||
- crocus: Incorrect stride when used through prime
|
||||
- anv: descriptorBindingUniformBufferUpdateAfterBind feature is not supported
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (3):
|
||||
|
||||
- panfrost: Move special_varying to compiler definitions
|
||||
- panfrost: Fix off-by-one in varying count assert
|
||||
- panfrost: Don't set CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER
|
||||
|
||||
Bas Nieuwenhuizen (2):
|
||||
|
||||
- amd/common: Add fallback for misreported clocks for RGP.
|
||||
- radv: Handle copying zero queries.
|
||||
|
||||
Chia-I Wu (1):
|
||||
|
||||
- radv: plug leaks in radv_device_init_accel_struct_build_state
|
||||
|
||||
Connor Abbott (1):
|
||||
|
||||
- ir3: Use source in ir3_output_conv_src_type()
|
||||
|
||||
Dave Airlie (7):
|
||||
|
||||
- crocus/query: don't loop on ready status after gpu hang.
|
||||
- device_select: close dri3 fd after using it.
|
||||
- crocus: Honor scanout requirement from DRI
|
||||
- crocus/gen5: reemit shaders on gen5 after new program cache bo.
|
||||
- crocus/gen5: add dirty flags for urb fences.
|
||||
- crocus/gen6: don't reemit the svbi when debugging
|
||||
- gallivm/format: clamp SINT conversion rather than truncate.
|
||||
|
||||
Dylan Baker (7):
|
||||
|
||||
- docs" Add SHA256 sum for mesa 21.2.3
|
||||
- .pick_status.json: Update to fb8f532ea1bbd9c959e0f59c652347e435a71f91
|
||||
- .pick_status.json: Update to d2543658ef6fe0ad59af217a09a931d3b6174a43
|
||||
- .pick_status.json: Update to 729991e09cd28550001ae63710ab929d95b115bc
|
||||
- .pick_status.json: Update to 3a18963b0876af2aa0d60dd9917e69d409ce4d6e
|
||||
- .pick_status.json: Update to ced950e42f4a95ef410e63c2d26a2119e0c3c40b
|
||||
- .pick_status.json: Update to 783f8f728ce8e77885adbc7b2c12c39c3e3e5198
|
||||
|
||||
Emma Anholt (2):
|
||||
|
||||
- gallium/dri: Make YUV formats we're going to emulate external-only.
|
||||
- i915g: Check for the scanout-layout conditions before setting level info.
|
||||
|
||||
Filip Gawin (1):
|
||||
|
||||
- r300: implement forgotten tgsi's cases of textures
|
||||
|
||||
Gert Wollny (1):
|
||||
|
||||
- mesa: signal driver when buffer is bound to different texture format
|
||||
|
||||
Icecream95 (1):
|
||||
|
||||
- pan/mdg: Use the correct swizzle for condition moves
|
||||
|
||||
Jason Ekstrand (1):
|
||||
|
||||
- vulkan/shader_module: Fix the lifetime of temporary shader modules
|
||||
|
||||
Kai Wasserbäch (2):
|
||||
|
||||
- gallivm: add new wrapper around Module::setOverrideStackAlignment()
|
||||
- gallivm: fix FTBFS on i386 with LLVM >= 13, StackAlignmentOverride is gone
|
||||
|
||||
Lionel Landwerlin (3):
|
||||
|
||||
- anv: enable UBO indexing
|
||||
- anv: add missing transition handling bits
|
||||
- spirv: deal with null pointers
|
||||
|
||||
Marek Olšák (2):
|
||||
|
||||
- radeonsi: add back a workaround for DCC MSAA on gfx9 due to conformance issues
|
||||
- ac/surface: don't overwrite DCC settings for imported buffers
|
||||
|
||||
Pavel Asyutchenko (1):
|
||||
|
||||
- llvmpipe: fix crash when doing FB fetch + gl_FragDepth write in one shader
|
||||
|
||||
Qiang Yu (1):
|
||||
|
||||
- loader/dri3: fix swap out of order when changing swap interval
|
||||
|
||||
Rob Clark (1):
|
||||
|
||||
- freedreno/drm: Move pipe unref after fence removal
|
||||
|
||||
Samuel Pitoiset (2):
|
||||
|
||||
- radv: fix adjusting the frag coord when RADV_FORCE_VRS is enabled
|
||||
- aco: fix load_barycentric_at_{offset,sample}
|
||||
|
||||
Timur Kristóf (3):
|
||||
|
||||
- aco: Fix small primitive precision.
|
||||
- aco: Fix determining whether any culling is enabled.
|
||||
- ac/nir/cull: Accept NaN and +/- Inf in face culling.
|
||||
|
||||
Vasily Khoruzhick (1):
|
||||
|
||||
- lima: split_load_input: don't split unaligned vec2
|
||||
|
||||
Vinson Lee (1):
|
||||
|
||||
- pps: Avoid duplicate elements in with_datasources array.
|
@@ -1,138 +0,0 @@
|
||||
Mesa 21.2.5 Release Notes / 2021-10-28
|
||||
======================================
|
||||
|
||||
Mesa 21.2.5 is a bug fix release which fixes bugs found since the 21.2.4 release.
|
||||
|
||||
Mesa 21.2.5 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is **only** available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
|
||||
Mesa 21.2.5 implements the Vulkan 1.2 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
8e49585fb760d973723dab6435d0c86f7849b8305b1e6d99f475138d896bacbb mesa-21.2.5.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- RADV: Resident Evil Village needs invariantgeom when NGG culling is enabled
|
||||
- [radeonsi] Euro Truck Simulator 2: broken mimimap
|
||||
- [regression][bisected] Launching Valheim OpenGL game leads to GPU Hang
|
||||
- Android Meson build regression: hardware/system information apps crash on Raspberry Pi 4
|
||||
- anv: dEQP-VK.graphicsfuzz.cov-multiple-one-iteration-loops-global-counter-write-matrices fails
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (4):
|
||||
|
||||
- panfrost: Detect implementations support AFBC
|
||||
- panfrost,panvk: Use dev->has_afbc instead of quirks
|
||||
- panfrost: Fix gl_FragColor lowering
|
||||
- panfrost: Add internal afbc_formats
|
||||
|
||||
Boris Brezillon (3):
|
||||
|
||||
- vulkan: Fix weak symbol emulation when compiling with MSVC
|
||||
- vulkan: Set unused entrypoints to vk_entrypoint_stub when compiling with MSVC
|
||||
- vulkan: Fix entrypoint generation when compiling for x86 with MSVC
|
||||
|
||||
Daniel Schürmann (1):
|
||||
|
||||
- driconf: set vk_x11_strict_image_count for Wolfenstein: Youngblood
|
||||
|
||||
Dylan Baker (7):
|
||||
|
||||
- docs: add sha256 sum for 21.2.4 release
|
||||
- .pick_status.json: Update to 1c0eb7aa78bac4494dbff0c502a8c09e23a4c123
|
||||
- .pick_status.json: Update to d43f89f17a8259c842016fa559fa33c1c6279105
|
||||
- .pick_status.json: Update to be6d584de43966ee58bf1fcac156ebf8040081d1
|
||||
- .pick_status.json: Update to 39f25945311e1385a54ddd17f71f9f6023d97256
|
||||
- .pick_status.json: Update to dc74285d32df9c09eb896bc4571066402d32d10b
|
||||
- .pick_status.json: Update to 16f838576cf29e26f1af198ac93a0fb3a3cfad8f
|
||||
|
||||
Emma Anholt (1):
|
||||
|
||||
- radeonsi: Fix leak of screen->perfcounters.
|
||||
|
||||
Ian Romanick (1):
|
||||
|
||||
- nir/loop_unroll: Always unroll loops that iterate at most once
|
||||
|
||||
Jan Beich (1):
|
||||
|
||||
- meson: disable -Werror=thread-safety on FreeBSD
|
||||
|
||||
Jason Ekstrand (2):
|
||||
|
||||
- i965: Emit a NULL surface for buffer textures with no buffer
|
||||
- nir/algebraic: Lower fisfinite
|
||||
|
||||
Karol Herbst (1):
|
||||
|
||||
- spirv: Don't add 0.5 to array indicies for OpImageSampleExplicitLod
|
||||
|
||||
Lionel Landwerlin (2):
|
||||
|
||||
- isl: only bump the min row pitch for display when not specified
|
||||
- anv: fix push constant lowering with bindless shaders
|
||||
|
||||
Maniraj D (1):
|
||||
|
||||
- egl: set TSD as NULL after deinit
|
||||
|
||||
Marcin Ślusarz (2):
|
||||
|
||||
- iris: fix scratch address patching for TESS_EVAL stage
|
||||
- intel: fix INTEL_DEBUG environment variable on 32-bit systems
|
||||
|
||||
Marek Olšák (2):
|
||||
|
||||
- mesa: fix crashes in the no_error path of glUniform
|
||||
- st/mesa: don't crash when draw indirect buffer has no storage
|
||||
|
||||
Mike Blumenkrantz (6):
|
||||
|
||||
- aux/pb: add a tolerance for reclaim failure
|
||||
- aux/pb: more correctly check number of reclaims
|
||||
- zink: fully zero surface creation struct
|
||||
- zink: don't break early when applying fb clears
|
||||
- zink: fix gl_SampleMaskIn spirv generation
|
||||
- nir/lower_samplers_as_deref: rewrite more image intrinsics
|
||||
|
||||
Mykhailo Skorokhodov (1):
|
||||
|
||||
- iris: Add missed tile flush flag
|
||||
|
||||
Nanley Chery (1):
|
||||
|
||||
- iris: Tile cache flush for depth before fast clear
|
||||
|
||||
Pierre-Eric Pelloux-Prayer (1):
|
||||
|
||||
- radeonsi: use viewport offset in quant_mode determination
|
||||
|
||||
Tapani Pälli (1):
|
||||
|
||||
- anv: use vk_object_zalloc for wsi fences created
|
||||
|
||||
Timur Kristóf (1):
|
||||
|
||||
- drirc: Apply radv_invariant_geom workaround to Resident Evil Village.
|
@@ -1,161 +0,0 @@
|
||||
Mesa 21.2.6 Release Notes / 2021-11-24
|
||||
======================================
|
||||
|
||||
Mesa 21.2.6 is a bug fix release which fixes bugs found since the 21.2.5 release.
|
||||
|
||||
Mesa 21.2.6 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is **only** available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
|
||||
Mesa 21.2.6 implements the Vulkan 1.2 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
1e7e22d93c6e8859fa044b1121119d26b2e67e4184b92ebb81c66497dc80c954 mesa-21.2.6.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- NIR validation failed after nir_copy_prop
|
||||
- lima: Corrupted Android-12 UI on Allwinner A64
|
||||
- RADV/ACO: Rendering glitches in Forza Horizon 5 windshields
|
||||
- dEQP-GLES31.*imulextended* compiling fp64 glsl 4.00 shader
|
||||
- Regression/Bisected: Crash in Godot games when steam overlay enabled
|
||||
- RADV: IsHelperInvocationEXT query is not considered volatile in ACO
|
||||
- Final Fantasy V (Old version): Random text characters are not displayed
|
||||
- Diagonal rendering artifacts in Tomb Raider
|
||||
- [hsw][bisected][regression] dEQP-VK.reconvergence.*nesting* failures
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Connor Abbott (2):
|
||||
|
||||
- ir3/lower_pcopy: Fix shr.b illegal copy lowering
|
||||
- ir3/lower_pcopy: Fix bug with "illegal" copies and swaps
|
||||
|
||||
Danylo Piliaiev (1):
|
||||
|
||||
- ir3/ra: Check register file upper bound when updating preferred_reg
|
||||
|
||||
Dave Airlie (2):
|
||||
|
||||
- llvmpipe: disable 64-bit integer textures.
|
||||
- llvmpipe: fix compressed image sizes.
|
||||
|
||||
Dylan Baker (9):
|
||||
|
||||
- docs: add sha256 sums for 21.2.5
|
||||
- .pick_status.json: Update to 8bfa146b8056d5dded6fdd2c4d8524aa0c438058
|
||||
- .pick_status.json: Update to 79f57f68930ce4fcf59bdca82357e19b4f3d62e6
|
||||
- .pick_status.json: Update to c356f3cfce9459dc1341b6a2a0fd5336a9bdcc3c
|
||||
- .pick_status.json: Mark a large number of zink patches as denominated
|
||||
- .pick_status.json: Update to 78b613db23c10dc257247d99d8b2b1ef6c96bebb
|
||||
- .pick_status.json: Update to 09bb4dbe60b1bb233c5c0102446ffbc142a29246
|
||||
- .pick_status.json: Update to e0de7aa4d7717bbd79bbc5bfc660f941f680402b
|
||||
- .pick_status.json: Update to f8009d3db25512b5dc62d0272c979fb79f8c7075
|
||||
|
||||
Eric Engestrom (1):
|
||||
|
||||
- meson: drop duplicate addition of surfaceless & drm to the list of platforms
|
||||
|
||||
Greg V (1):
|
||||
|
||||
- util: make util_get_process_exec_path work on FreeBSD w/o procfs
|
||||
|
||||
Ian Romanick (1):
|
||||
|
||||
- glsl/nir: Don't build soft float64 when it cannot be used
|
||||
|
||||
Jason Ekstrand (1):
|
||||
|
||||
- anv: Fix FlushMappedMemoryRanges for odd mmap offsets
|
||||
|
||||
Jesse Natalie (2):
|
||||
|
||||
- util/hash_table: Clear special 0/1 entries for u64 hash table too
|
||||
- d3d12: Fix Linux fence wait return value
|
||||
|
||||
Kenneth Graunke (1):
|
||||
|
||||
- iris: Fix MOCS for buffer copies
|
||||
|
||||
Lionel Landwerlin (6):
|
||||
|
||||
- intel/dev: fix HSW GT3 number of subslices in slice1
|
||||
- intel/dev: don't forget to set max_eu_per_subslice in generated topology
|
||||
- intel/perf: fix perf equation subslice mask generation for gfx12+
|
||||
- intel/devinfo: fix wrong offset computation
|
||||
- intel: remove 2 preproduction pci-id for ADLS
|
||||
- intel/fs: fix shader call lowering pass
|
||||
|
||||
Liviu Prodea (1):
|
||||
|
||||
- aco: Work around MSVC restrict in c99_compat.h
|
||||
|
||||
Marek Olšák (4):
|
||||
|
||||
- radeonsi: print the border color error message only once
|
||||
- radeonsi: fix 2 issues with depth_cleared_level_mask
|
||||
- radeonsi: fix a typo preventing a fast depth-stencil clear
|
||||
- driconf: disallow 10-bit pbuffers for viewperf2020/maya due to X errors
|
||||
|
||||
Mike Blumenkrantz (10):
|
||||
|
||||
- zink: add better handling for CUBE_COMPATIBLE bit
|
||||
- zink: always use explicit lod for texture() when legal in non-fragment stages
|
||||
- zink: be more permissive for injecting LOD into texture() instructions
|
||||
- zink: inject LOD for sampler version of OpImageQuerySize
|
||||
- zink: don't clamp cube array surfacess to cubes
|
||||
- zink: don't clamp 2D_ARRAY surfaces to 2D
|
||||
- zink: add more int/float types to cast switching in ntv
|
||||
- zink: force float dest types on some alu results
|
||||
- aux/primconvert: handle singular incomplete restarts
|
||||
- zink: clamp PIPE_SHADER_CAP_MAX_INPUTS for xfb
|
||||
|
||||
Pierre-Eric Pelloux-Prayer (3):
|
||||
|
||||
- radeonsi: treat nir_intrinsic_load_constant as a VMEM operation
|
||||
- ac/surface: don't validate DCC settings if DCC isn't possible
|
||||
- mesa: always call _mesa_update_pixel
|
||||
|
||||
Rhys Perry (2):
|
||||
|
||||
- aco/spill: use spills_entry instead of spills_exit to kill linear VGPRs
|
||||
- spirv: run nir_copy_prop before nir_rematerialize_derefs_in_use_blocks_impl
|
||||
|
||||
Roman Stratiienko (1):
|
||||
|
||||
- android.mk: Add missing variables to the make target
|
||||
|
||||
Thomas H.P. Andersen (1):
|
||||
|
||||
- svga: fix bitwise/logical and mixup
|
||||
|
||||
Timothy Arceri (1):
|
||||
|
||||
- mesa: fix buffer overrun in SavedObj texture obj array
|
||||
|
||||
Timur Kristóf (1):
|
||||
|
||||
- aco: Fix how p_is_helper interacts with optimizations.
|
||||
|
||||
Vadym Shovkoplias (1):
|
||||
|
||||
- intel/fs: Fix a cmod prop bug when cmod is set to inst that doesn't support it
|
@@ -21,7 +21,7 @@ SHA256 checksum
|
||||
|
||||
::
|
||||
|
||||
a2753c09deef0ba14d35ae8a2ceff3fe5cd13698928c7bb62c2ec8736eb09ce1 mesa-21.3.0.tar.xz
|
||||
TBD.
|
||||
|
||||
|
||||
New features
|
||||
@@ -1499,8 +1499,8 @@ Emma Anholt (233):
|
||||
- ci/deqp-runner: Don't start GPU hang detection for making junit results.
|
||||
- ci/deqp-runner: Move more non-suite logic under the non-suite 'if'.
|
||||
- ci/piglit-runner: Fix funny indentation of the piglit-runner command.
|
||||
- ci/deqp-runner: Rename the deqp-drivername-\*.txt files to drivername-\*.txt
|
||||
- ci/piglit-runner: Merge piglit-driver-\*.txt files into driver-\*.txt.
|
||||
- ci/deqp-runner: Rename the deqp-drivername-\*.txt files to drivername-*.txt
|
||||
- ci/piglit-runner: Merge piglit-driver-\*.txt files into driver-*.txt.
|
||||
- ci: Enable testing radeonsi's libva using libva-util unit tests.
|
||||
- freedreno: Fix gmem invalidating the depth or stencil of packed d/s.
|
||||
- freedreno/a6xx: Fix partial z/s clears with sysmem.
|
||||
|
@@ -1,132 +0,0 @@
|
||||
Mesa 21.3.1 Release Notes / 2021-12-01
|
||||
======================================
|
||||
|
||||
Mesa 21.3.1 is a bug fix release which fixes bugs found since the 21.3.0 release.
|
||||
|
||||
Mesa 21.3.1 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is **only** available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
|
||||
Mesa 21.3.1 implements the Vulkan 1.2 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
2b0dc2540cb192525741d00f706dbc4586349185dafc65729c7fda0800cc474d mesa-21.3.1.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- GPU Crash in Yuzu 6600xt 5.15
|
||||
- [spirv-fuzz] lower_trivial_continues_block: Assertion \`!first_instr || instr_is_continue(first_instr)' failed.
|
||||
- [RADV] Crash in Metro Exodus in Caspain chapter and Sam's Story
|
||||
- NIR validation failed after nir_copy_prop
|
||||
- lima: Corrupted Android-12 UI on Allwinner A64
|
||||
- RADV/ACO: Rendering glitches in Forza Horizon 5 windshields
|
||||
- dEQP-GLES31.*imulextended* compiling fp64 glsl 4.00 shader
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Connor Abbott (3):
|
||||
|
||||
- ir3/ra: Consider reg file size when swapping killed sources
|
||||
- ir3/lower_pcopy: Fix shr.b illegal copy lowering
|
||||
- ir3/lower_pcopy: Fix bug with "illegal" copies and swaps
|
||||
|
||||
Eric Engestrom (2):
|
||||
|
||||
- docs: update sha256sum for 21.3.0
|
||||
- .pick_status.json: Update to 1ba231fb75be5bffd806cbd09ac285d1f8f15e3d
|
||||
|
||||
Erico Nunes (1):
|
||||
|
||||
- ci: temporarily disable lima CI
|
||||
|
||||
Iago Toral Quiroga (3):
|
||||
|
||||
- broadcom/compiler: don't allow RF writes from signals after thrend
|
||||
- broadcom/compiler: fix scoreboard locking checks
|
||||
- broadcom/compiler: don't move ldvary earlier if current instruction has ldunif
|
||||
|
||||
Ian Romanick (1):
|
||||
|
||||
- glsl/nir: Don't build soft float64 when it cannot be used
|
||||
|
||||
Iván Briano (1):
|
||||
|
||||
- intel/nir: also allow unknown format for getting the size of a storage image
|
||||
|
||||
Kenneth Graunke (3):
|
||||
|
||||
- iris: Make a helper function for cross-batch dependency flushing
|
||||
- iris: Check for cross-batch flushing whenever a buffer is newly written.
|
||||
- iris: Tidy code in iris_use_pinned_bo a bit
|
||||
|
||||
Lionel Landwerlin (3):
|
||||
|
||||
- anv: don't try to close fd = -1
|
||||
- intel/fs: fix shader call lowering pass
|
||||
- util/u_trace: refcount payloads
|
||||
|
||||
Mauro Rossi (1):
|
||||
|
||||
- android: define cpp_rtti=false because libLLVM is built w/o RTTI (v2)
|
||||
|
||||
Mike Blumenkrantz (6):
|
||||
|
||||
- zink: block suballocator caching for swapchain/dmabuf images
|
||||
- zink: set suballocator bo size to aligned allocation size
|
||||
- zink: stop using VK_IMAGE_LAYOUT_PREINITIALIZED for dmabuf
|
||||
- zink: always set matching resource export type for dmabuf creation
|
||||
- zink: fix memory availability reporting
|
||||
- zink: fail context creation more gracefully
|
||||
|
||||
Mykhailo Skorokhodov (1):
|
||||
|
||||
- nir: Fix read depth for predecessors
|
||||
|
||||
Qiang Yu (1):
|
||||
|
||||
- glx/dri3: fix glXQueryContext does not return GLX_RENDER_TYPE value
|
||||
|
||||
Rhys Perry (4):
|
||||
|
||||
- aco/spill: use spills_entry instead of spills_exit to kill linear VGPRs
|
||||
- spirv: run nir_copy_prop before nir_rematerialize_derefs_in_use_blocks_impl
|
||||
- nir/dce: fix DCE of loops with a halt or return instruction in the pre-header
|
||||
- aco: don't create DPP instructions with SGPR operands
|
||||
|
||||
Roman Stratiienko (1):
|
||||
|
||||
- android.mk: Add missing variables to the make target
|
||||
|
||||
Samuel Pitoiset (4):
|
||||
|
||||
- radv: disable HTILE for D32S8 format and mipmaps on GFX10
|
||||
- radv: fix emitting VBO when vertex input dynamic state is used
|
||||
- radv: add a workaround to fix a segfault with Metro Exodus (Linux native)
|
||||
- radv: fix resetting the entire vertex input dynamic state
|
||||
|
||||
Thomas H.P. Andersen (1):
|
||||
|
||||
- svga: fix bitwise/logical and mixup
|
||||
|
||||
Vasily Khoruzhick (1):
|
||||
|
||||
- lima: disasm: use last argument as a filename
|
@@ -1,126 +0,0 @@
|
||||
Mesa 21.3.2 Release Notes / 2021-12-17
|
||||
======================================
|
||||
|
||||
Mesa 21.3.2 is a bug fix release which fixes bugs found since the 21.3.1 release.
|
||||
|
||||
Mesa 21.3.2 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is **only** available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
|
||||
Mesa 21.3.2 implements the Vulkan 1.2 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
e2e7bafb8307e7abc3bf982f39382fae3619c84b45504920a21504be52f126bd mesa-21.3.2.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Flickering and blackscreen on Mpv and Clapper (and also low performance on glxgears)
|
||||
- DXVK SIGBUS with Turnip on Poco F1 at loading to open world.
|
||||
- RADV: IsHelperInvocationEXT query is not considered volatile in ACO
|
||||
- [GraphicsFuzz] dEQP-VK.graphicsfuzz.stable-binarysearch-tree-nested-if-and-conditional
|
||||
- [bisected] Mesa 21.3.x breaks GBM with NVIDIA closed source driver 495.44
|
||||
- [DG2] dEQP-GL[45|ES31].functional.shaders.builtin_functions.pack_unpack.packhalf2x16_compute fail
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (1):
|
||||
|
||||
- panfrost: Don't shadow Mesa's fui()
|
||||
|
||||
Caio Oliveira (1):
|
||||
|
||||
- nir: Initialize nir_register::divergent
|
||||
|
||||
Danylo Piliaiev (1):
|
||||
|
||||
- turnip: Fix operator precedence in address calculation macros for queries
|
||||
|
||||
Dave Airlie (1):
|
||||
|
||||
- crocus: cleanup bo exports for external objects
|
||||
|
||||
Eric Engestrom (1):
|
||||
|
||||
- .pick_status.json: Update to a65285f54be6d756a8a558f638c18bb4f075222c
|
||||
|
||||
Francisco Jerez (1):
|
||||
|
||||
- intel/fs/xehp: Teach SWSB pass about the exec pipeline of FS_OPCODE_PACK_HALF_2x16_SPLIT.
|
||||
|
||||
Ian Romanick (2):
|
||||
|
||||
- intel/compiler: Don't predicate a WHILE if there is a CONT
|
||||
- intel/stub: Silence "initialized field overwritten" warning
|
||||
|
||||
Jakob Bornecrantz (1):
|
||||
|
||||
- vulkan-device-select: Don't leak drmDevicePtr
|
||||
|
||||
James Jones (1):
|
||||
|
||||
- gbm: Don't pass default usage flags on ABIs < 1
|
||||
|
||||
Jason Ekstrand (3):
|
||||
|
||||
- crocus: wm_prog_key::key_alpha_test uses GL enums
|
||||
- anv: Stop doing too much per-sample shading
|
||||
- radeonsi/nir: Check for VARYING_SLOT_PRIMITIVE_ID not SYSTEM_VALUE
|
||||
|
||||
Lionel Landwerlin (4):
|
||||
|
||||
- nir/opt_deref: don't try to cast empty structures
|
||||
- intel/nir: preserve access value when duping intrinsic
|
||||
- nir/lower_io: include the variable access in the lowered intrinsic
|
||||
- vulkan: fix missing handling of WSI memory signal
|
||||
|
||||
Mauro Rossi (1):
|
||||
|
||||
- android: add support for classic dri-drivers (v2)
|
||||
|
||||
Michel Zou (1):
|
||||
|
||||
- meson: correctly detect linker arguments
|
||||
|
||||
Nanley Chery (1):
|
||||
|
||||
- iris: Free the local cache bucket in bufmgr_destroy
|
||||
|
||||
Pierre-Eric Pelloux-Prayer (1):
|
||||
|
||||
- radeonsi: fix fast clear / depth decompression corruption
|
||||
|
||||
Rhys Perry (1):
|
||||
|
||||
- radv: have the null winsys set more fields
|
||||
|
||||
Roman Stratiienko (2):
|
||||
|
||||
- v3dv: Fix dEQP-VK.info#instance_extensions test
|
||||
- v3dv: Fix V3DV_HAS_SURFACE preprocessor condition
|
||||
|
||||
Tapani Pälli (1):
|
||||
|
||||
- anv: allow VK_IMAGE_LAYOUT_UNDEFINED as final layout
|
||||
|
||||
Timur Kristóf (1):
|
||||
|
||||
- aco: Clean up and fix quad group instructions with WQM.
|
@@ -1,108 +0,0 @@
|
||||
Mesa 21.3.3 Release Notes / 2021-12-29
|
||||
======================================
|
||||
|
||||
Mesa 21.3.3 is a bug fix release which fixes bugs found since the 21.3.2 release.
|
||||
|
||||
Mesa 21.3.3 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is **only** available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
|
||||
Mesa 21.3.3 implements the Vulkan 1.2 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
|
||||
SHA256 checksum
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
ad7f4613ea7c5d08d9fcb5025270199e6ceb9aa99fd72ee572b70342240a8121 mesa-21.3.3.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Assassin's Creed Syndicate crashes with Mesa 21.3.0+ ACO
|
||||
- [21.3 regression] swr: Build failure with MSVC
|
||||
- anv: dEQP-VK.graphicsfuzz.spv-stable-pillars-volatile-nontemporal-store fails
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (2):
|
||||
|
||||
- pan/indirect_draw: Don't upload garbage UBO
|
||||
- panfrost: Fix Secondary Shader field
|
||||
|
||||
Bas Nieuwenhuizen (2):
|
||||
|
||||
- radv: Use correct buffer size for query pool result copies.
|
||||
- radv: Skip wait timeline ioctl with 0 handles.
|
||||
|
||||
Daniel Schürmann (2):
|
||||
|
||||
- aco/optimizer: fix fneg modifier propagation on VOP3P
|
||||
- aco/ra: fix get_reg_for_operand() in case of stride mismatches
|
||||
|
||||
Emma Anholt (7):
|
||||
|
||||
- r300: Fix mis-optimization turning -1 - x into 1 - x.
|
||||
- r300: Move the instruction filter for r500_transform_IF() to the top.
|
||||
- r300: Ensure that immediates have matching negate flags too.
|
||||
- r300: Also consider ALU condition modifiers for loop DCE.
|
||||
- r300: Disable loop unrolling on r500.
|
||||
- r300/vs: Allocate temps we see a use as a source, too.
|
||||
- r300/vs: Fix flow control processing just after an endloop.
|
||||
|
||||
Eric Engestrom (2):
|
||||
|
||||
- .pick_status.json: Update to 4942e108909bbe0f53ec5fd52a3c7ae14c60abe6
|
||||
- .pick_status.json: Mark d49d092259829ad9e33d0d9fc8eef9759d9fe56e as denominated
|
||||
|
||||
Francisco Jerez (1):
|
||||
|
||||
- intel/fs: Add physical fall-through CFG edge for unconditional BREAK instruction.
|
||||
|
||||
Jason Ekstrand (1):
|
||||
|
||||
- vulkan/log: Don't assert on non-client-visible objects
|
||||
|
||||
Jesse Natalie (1):
|
||||
|
||||
- microsoft/compiler: Implement inot
|
||||
|
||||
Liviu Prodea (1):
|
||||
|
||||
- swr: Fix MSVC build
|
||||
|
||||
Rob Clark (2):
|
||||
|
||||
- freedreno/ir3: Handle instr->address when cloning
|
||||
- freedreno/computerator: Fix @buf header
|
||||
|
||||
Samuel Pitoiset (1):
|
||||
|
||||
- radv: re-apply "Do not access set layout during vkCmdBindDescriptorSets."
|
||||
|
||||
Tapani Pälli (1):
|
||||
|
||||
- glsl: fix invariant qualifer usage and matching rule for GLSL 4.20
|
||||
|
||||
Timur Kristóf (2):
|
||||
|
||||
- aco/optimizer_postRA: Fix combining DPP into VALU.
|
||||
- aco/optimizer_postRA: Fix applying VCC to branches.
|
||||
|
||||
Vinson Lee (1):
|
||||
|
||||
- panfrost: Avoid double unlock.
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user