Compare commits
128 Commits
mesa-21.3.
...
mesa-21.2.
Author | SHA1 | Date | |
---|---|---|---|
|
33595f88d6 | ||
|
c0623dbe16 | ||
|
2eb92dec11 | ||
|
18b65515a6 | ||
|
ecfa127381 | ||
|
90645f3eea | ||
|
432964005b | ||
|
a5dec10d83 | ||
|
1d02d0743d | ||
|
5b4b4b9ef6 | ||
|
7deef80ef6 | ||
|
1a1cf756d2 | ||
|
58bf0165ca | ||
|
9fc8ae0cd5 | ||
|
5b99334ba3 | ||
|
76a317170e | ||
|
97955560fd | ||
|
149473db82 | ||
|
720645a5b3 | ||
|
7c2c2b9d2a | ||
|
075ec9e608 | ||
|
538e9f93c5 | ||
|
2ca05ac293 | ||
|
5b17ed9781 | ||
|
ce0e8e022d | ||
|
14f09b60e5 | ||
|
ca5fbe8517 | ||
|
39ffd918cd | ||
|
4bb8e29a28 | ||
|
4524e8bff8 | ||
|
bda17c7388 | ||
|
1396ddcc4e | ||
|
8b4a8972a8 | ||
|
4f7b4ba7f8 | ||
|
940cb9ebe9 | ||
|
f3a523a9be | ||
|
f9107dbf71 | ||
|
ebcd657099 | ||
|
72eeeba333 | ||
|
947fd891bf | ||
|
cfe3e2ff53 | ||
|
ad0ba78934 | ||
|
bfc6597375 | ||
|
d06433f883 | ||
|
5577fb807e | ||
|
6705d498f4 | ||
|
d8402f2ff0 | ||
|
0e7985a7de | ||
|
1b886f20a7 | ||
|
b795fc4a28 | ||
|
731f989135 | ||
|
319818e9fd | ||
|
0028e826c5 | ||
|
fc9650d1f3 | ||
|
0eb551f658 | ||
|
f27415c223 | ||
|
83ddb66d8a | ||
|
fdc5858caf | ||
|
d23a2a0128 | ||
|
fe2d7f3089 | ||
|
25b71cfa10 | ||
|
acbcb4f093 | ||
|
bfefde2248 | ||
|
f9bae7e537 | ||
|
55761919e4 | ||
|
d054db55e6 | ||
|
f2a07762df | ||
|
cb9df156a6 | ||
|
053b80c70f | ||
|
cee6a91d69 | ||
|
5bd5f23579 | ||
|
a7bf3f5262 | ||
|
765ef56f34 | ||
|
277718fa8c | ||
|
84be95c634 | ||
|
a408f780c1 | ||
|
b850f72628 | ||
|
0342e7f91f | ||
|
a7199a03ab | ||
|
5a49aee6b3 | ||
|
08781845fe | ||
|
98d88943e3 | ||
|
b47de6e919 | ||
|
9d0be7b613 | ||
|
f2bdec9ecd | ||
|
83d94cfe71 | ||
|
8447b1d52b | ||
|
ba9e463c65 | ||
|
f62606c825 | ||
|
25b8c5e4b0 | ||
|
00b732a566 | ||
|
cea26a9813 | ||
|
3b1f5b2d5a | ||
|
400c224efe | ||
|
d341882e13 | ||
|
588ee0fd3f | ||
|
8e00c1956d | ||
|
4be9824dc9 | ||
|
3cb96be239 | ||
|
04e8aeac6d | ||
|
742c35d17c | ||
|
3c5987e2b4 | ||
|
2193a19631 | ||
|
8653cbd0aa | ||
|
bfd3fcd3af | ||
|
5be2d785ae | ||
|
9af1aa306f | ||
|
22941ec612 | ||
|
bbeb420157 | ||
|
a63d23c4c2 | ||
|
c511014205 | ||
|
c84ea77f76 | ||
|
91f9753405 | ||
|
8a33436b88 | ||
|
75ea264543 | ||
|
a2c2e1ff6c | ||
|
94ea5e0d8e | ||
|
6b6553c49c | ||
|
1b7de4bffa | ||
|
3eb7232a9b | ||
|
7bc923e54b | ||
|
eec1f4092c | ||
|
18ed841f2a | ||
|
7fbea74c23 | ||
|
bf260384b9 | ||
|
7d2802b80c | ||
|
0ca42c89e7 | ||
|
b6c34d6cec |
@@ -12,9 +12,6 @@ variables:
|
||||
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
|
||||
# reference images stored for traces
|
||||
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${MINIO_HOST}/mesa-tracie-results/$FDO_UPSTREAM_REPO"
|
||||
# Individual CI farm status, set to "offline" to disable jobs
|
||||
# running on a particular CI farm (ie. for outages, etc):
|
||||
FD_FARM: "online"
|
||||
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
@@ -30,22 +27,22 @@ include:
|
||||
- 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/i915/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/iris/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/lima/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/panfrost/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/radeonsi/ci/gitlab-ci.yml'
|
||||
- local: 'src/gallium/drivers/softpipe/ci/gitlab-ci.yml'
|
||||
- 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/panfrost/ci/gitlab-ci.yml'
|
||||
|
||||
stages:
|
||||
- sanity
|
||||
- container
|
||||
- container-2
|
||||
- git-archive
|
||||
- build-x86_64
|
||||
- build-misc
|
||||
@@ -54,10 +51,10 @@ stages:
|
||||
- arm
|
||||
- broadcom
|
||||
- freedreno
|
||||
- etnaviv
|
||||
- software-renderer
|
||||
- layered-backends
|
||||
- deploy
|
||||
- success
|
||||
|
||||
# Generic rule to not run the job during scheduled pipelines
|
||||
# ----------------------------------------------------------
|
||||
@@ -180,6 +177,25 @@ test-docs-mr:
|
||||
when:
|
||||
- runner_system_failure
|
||||
|
||||
success:
|
||||
stage: success
|
||||
image: debian:stable-slim
|
||||
rules:
|
||||
- *ignore_scheduled_pipelines
|
||||
- if: *is-post-merge
|
||||
when: never
|
||||
- if: *is-for-marge
|
||||
changes: *docs-or-ci
|
||||
when: never
|
||||
- changes: *all_paths
|
||||
when: never
|
||||
- if: *is-pre-merge
|
||||
when: on_success
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- echo "Dummy job to make sure every merge request pipeline runs at least one job"
|
||||
|
||||
|
||||
.ci-deqp-artifacts:
|
||||
artifacts:
|
||||
@@ -206,10 +222,8 @@ test-docs-mr:
|
||||
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
|
||||
.set-image:
|
||||
extends:
|
||||
- .incorporate-templates-commit
|
||||
variables:
|
||||
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
||||
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
image: "$MESA_IMAGE"
|
||||
|
||||
.set-image-base-tag:
|
||||
@@ -217,7 +231,7 @@ test-docs-mr:
|
||||
- .set-image
|
||||
- .incorporate-base-tag+templates-commit
|
||||
variables:
|
||||
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
||||
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
|
||||
|
||||
# Build the CI docker images.
|
||||
@@ -283,6 +297,7 @@ test-docs-mr:
|
||||
- .incorporate-base-tag+templates-commit
|
||||
# Don't want the .container rules
|
||||
- .ci-run-policy
|
||||
stage: container-2
|
||||
|
||||
# Debian 11 based x86 build image base
|
||||
debian/x86_build-base:
|
||||
@@ -290,7 +305,7 @@ debian/x86_build-base:
|
||||
- .fdo.container-build@debian
|
||||
- .container
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_build-base "2021-07-26-python"
|
||||
MESA_IMAGE_TAG: &debian-x86_build-base "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/x86_build-base:
|
||||
extends:
|
||||
@@ -376,7 +391,7 @@ debian/android_build:
|
||||
extends:
|
||||
- .use-debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-android_build "2021-10-26-static-libstdcxx"
|
||||
MESA_IMAGE_TAG: &debian-android_build "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/android_build:
|
||||
extends:
|
||||
@@ -392,7 +407,7 @@ debian/android_build:
|
||||
debian/x86_test-base:
|
||||
extends: debian/x86_build-base
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-x86_test-base "2021-10-15-va"
|
||||
MESA_IMAGE_TAG: &debian-x86_test-base "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/x86_test-base:
|
||||
extends:
|
||||
@@ -409,14 +424,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.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"
|
||||
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.13-rc5-for-mesa-ci-27df41f1e0cf/linux-v5.13-rc5-for-mesa-ci-27df41f1e0cf.tar.bz2"
|
||||
MESA_IMAGE_TAG: &debian-x86_test-gl "2021-07-12-dmabuf"
|
||||
|
||||
# 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 "2021-2021-10-15-va"
|
||||
MESA_IMAGE_TAG: &debian-x86_test-vk "2021-07-02-bump-libdrm"
|
||||
|
||||
# Debian 11 based ARM build image
|
||||
debian/arm_build:
|
||||
@@ -426,7 +441,7 @@ debian/arm_build:
|
||||
tags:
|
||||
- aarch64
|
||||
variables:
|
||||
MESA_IMAGE_TAG: &debian-arm_build "2021-07-26-python"
|
||||
MESA_IMAGE_TAG: &debian-arm_build "2021-07-02-bump-libdrm"
|
||||
|
||||
.use-debian/arm_build:
|
||||
extends:
|
||||
@@ -461,11 +476,11 @@ fedora/x86_build:
|
||||
.kernel+rootfs:
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
stage: container
|
||||
stage: container-2
|
||||
variables:
|
||||
GIT_STRATEGY: fetch
|
||||
KERNEL_URL: *kernel-rootfs-url
|
||||
MESA_ROOTFS_TAG: &kernel-rootfs "2021-11-02-lazor"
|
||||
MESA_ROOTFS_TAG: &kernel-rootfs "2021-07-12-dmabuf"
|
||||
DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
|
||||
script:
|
||||
- .gitlab-ci/container/lava_build.sh
|
||||
@@ -512,6 +527,7 @@ debian/arm_test:
|
||||
- .container
|
||||
# Don't want the .container rules
|
||||
- .ci-run-policy
|
||||
stage: build-misc
|
||||
needs:
|
||||
- kernel+rootfs_arm64
|
||||
- kernel+rootfs_armhf
|
||||
@@ -519,7 +535,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 "2021-09-17-deqp"
|
||||
MESA_IMAGE_TAG: &debian-arm_test "2021-07-02-bump-libdrm"
|
||||
MESA_ROOTFS_TAG: *kernel-rootfs
|
||||
|
||||
.use-debian/arm_test:
|
||||
@@ -684,7 +700,6 @@ debian-testing:
|
||||
-D platforms=x11
|
||||
GALLIUM_ST: >
|
||||
-D dri3=enabled
|
||||
-D gallium-va=enabled
|
||||
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,iris,i915"
|
||||
VULKAN_DRIVERS: "swrast,amd"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
@@ -755,6 +770,7 @@ debian-gallium:
|
||||
script:
|
||||
- .gitlab-ci/meson/build.sh
|
||||
- .gitlab-ci/run-shader-db.sh
|
||||
- src/freedreno/.gitlab-ci/run-fdtools.sh
|
||||
|
||||
# Test a release build with -Werror so new warnings don't sneak in.
|
||||
debian-release:
|
||||
@@ -778,7 +794,6 @@ debian-release:
|
||||
-D gallium-opencl=disabled
|
||||
-D llvm=false
|
||||
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
||||
VULKAN_DRIVERS: "amd"
|
||||
BUILDTYPE: "release"
|
||||
EXTRA_OPTION: >
|
||||
-D osmesa=true
|
||||
@@ -881,7 +896,7 @@ debian-android:
|
||||
# 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 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
|
||||
# - PKG_CONFIG_PATH=/usr/local/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:
|
||||
@@ -936,7 +951,7 @@ debian-arm64:
|
||||
- .meson-arm
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
VULKAN_DRIVERS: "freedreno,broadcom,panfrost"
|
||||
VULKAN_DRIVERS: "freedreno,broadcom"
|
||||
EXTRA_OPTION: >
|
||||
-D llvm=disabled
|
||||
-D valgrind=false
|
||||
@@ -1250,7 +1265,7 @@ debian-mingw32-x86_64:
|
||||
variables:
|
||||
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_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/
|
||||
PIGLIT_JUNIT_RESULTS: 1
|
||||
|
||||
.deqp-test:
|
||||
@@ -1292,7 +1307,6 @@ debian-mingw32-x86_64:
|
||||
- when: never
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
JOB_TIMEOUT: 80
|
||||
|
||||
# The above .test-manual rules doesn't allow the jobs to be available for MRs
|
||||
# but we should have an option to have manual jobs in MRs as well.
|
||||
@@ -1306,7 +1320,6 @@ debian-mingw32-x86_64:
|
||||
- when: never
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
JOB_TIMEOUT: 80
|
||||
|
||||
.baremetal-test:
|
||||
extends:
|
||||
@@ -1340,7 +1353,7 @@ debian-mingw32-x86_64:
|
||||
|
||||
.baremetal-arm64-asan-test:
|
||||
variables:
|
||||
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.6"
|
||||
TEST_LD_PRELOAD: libasan.so.6
|
||||
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
||||
needs:
|
||||
- debian/arm_test
|
||||
@@ -1350,4 +1363,4 @@ debian-mingw32-x86_64:
|
||||
.baremetal-deqp-test:
|
||||
variables:
|
||||
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
||||
FDO_CI_CONCURRENT: 0 # Default to number of CPUs
|
||||
DEQP_PARALLEL: 0 # Default to number of CPUs
|
||||
|
@@ -10,7 +10,7 @@ EXIT=0
|
||||
# Run reset tests without parallelism:
|
||||
if ! env \
|
||||
DEQP_RESULTS_DIR=results/reset \
|
||||
FDO_CI_CONCURRENT=1 \
|
||||
DEQP_PARALLEL=1 \
|
||||
DEQP_CASELIST_FILTER='.*reset.*' \
|
||||
/install/deqp-runner.sh; then
|
||||
EXIT=1
|
||||
|
81
.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
Executable file
81
.gitlab-ci/bare-metal/arm64_a630_gles_others.sh
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This test script groups together a bunch of fast dEQP variant runs
|
||||
# to amortize the cost of rebooting the board.
|
||||
|
||||
set -ex
|
||||
|
||||
EXIT=0
|
||||
|
||||
# Test rendering with the gmem path forced when possible (~1 minute)
|
||||
if ! env \
|
||||
DEQP_RESULTS_DIR=results/gmem \
|
||||
DEQP_VER=gles31 \
|
||||
DEQP_FRACTION=5 \
|
||||
FD_MESA_DEBUG=nobypass \
|
||||
/install/deqp-runner.sh; then
|
||||
EXIT=1
|
||||
fi
|
||||
|
||||
# Test rendering with the bypass path forced when possible (~1 minute)
|
||||
if ! env \
|
||||
DEQP_RESULTS_DIR=results/bypass \
|
||||
DEQP_VER=gles31 \
|
||||
DEQP_FRACTION=5 \
|
||||
FD_MESA_DEBUG=nogmem \
|
||||
GPU_VERSION=freedreno-a630-bypass \
|
||||
/install/deqp-runner.sh; then
|
||||
EXIT=1
|
||||
fi
|
||||
|
||||
# Test rendering with the UBO-to-constants optimization disabled (~1 minute)
|
||||
if ! env \
|
||||
DEQP_RESULTS_DIR=results/nouboopt \
|
||||
DEQP_VER=gles31 \
|
||||
IR3_SHADER_DEBUG=nouboopt \
|
||||
DEQP_CASELIST_FILTER="functional.*ubo" \
|
||||
/install/deqp-runner.sh; then
|
||||
EXIT=1
|
||||
fi
|
||||
|
||||
# gles3-565nozs mustpass (~20s)
|
||||
if ! env \
|
||||
DEQP_RESULTS_DIR=results/gles3-565nozs \
|
||||
DEQP_VER=gles3 \
|
||||
DEQP_CONFIG="rgb565d0s0ms0" \
|
||||
DEQP_VARIANT="565-no-depth-no-stencil" \
|
||||
/install/deqp-runner.sh; then
|
||||
EXIT=1
|
||||
fi
|
||||
|
||||
# gles31-565nozs mustpass (~1s)
|
||||
if ! env \
|
||||
DEQP_RESULTS_DIR=results/gles31-565nozs \
|
||||
DEQP_VER=gles31 \
|
||||
DEQP_CONFIG="rgb565d0s0ms0" \
|
||||
DEQP_VARIANT="565-no-depth-no-stencil" \
|
||||
/install/deqp-runner.sh; then
|
||||
EXIT=1
|
||||
fi
|
||||
|
||||
# gles3-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859
|
||||
# if ! env \
|
||||
# DEQP_RESULTS_DIR=results/gles3-multisample \
|
||||
# DEQP_VER=gles3 \
|
||||
# DEQP_CONFIG="rgba8888d24s8ms4" \
|
||||
# DEQP_VARIANT="multisample" \
|
||||
# /install/deqp-runner.sh; then
|
||||
# EXIT=1
|
||||
# fi
|
||||
|
||||
# gles31-multisample mustpass -- disabled pending https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1859
|
||||
# if ! env \
|
||||
# DEQP_RESULTS_DIR=results/gles31-multisample \
|
||||
# DEQP_VER=gles31 \
|
||||
# DEQP_CONFIG="rgba8888d24s8ms4" \
|
||||
# DEQP_VARIANT="multisample" \
|
||||
# /install/deqp-runner.sh; then
|
||||
# EXIT=1
|
||||
# fi
|
||||
|
||||
exit $EXIT
|
@@ -126,12 +126,6 @@ class CrosServoRun:
|
||||
self.print_error("Detected cheza power management bus error, restarting run...")
|
||||
return 2
|
||||
|
||||
# If the network device dies, it's probably not graphics's fault, just try again.
|
||||
if re.search("NETDEV WATCHDOG", line):
|
||||
self.print_error(
|
||||
"Detected network device failure, restarting run...")
|
||||
return 2
|
||||
|
||||
# These HFI response errors started appearing with the introduction
|
||||
# of piglit runs. CosmicPenguin says:
|
||||
#
|
||||
@@ -145,11 +139,6 @@ class CrosServoRun:
|
||||
self.print_error("Detected cheza power management bus error, restarting run...")
|
||||
return 2
|
||||
|
||||
if re.search("coreboot.*bootblock starting", line):
|
||||
self.print_error(
|
||||
"Detected spontaneous reboot, restarting run...")
|
||||
return 2
|
||||
|
||||
result = re.search("hwci: mesa: (\S*)", line)
|
||||
if result:
|
||||
if result.group(1) == "pass":
|
||||
|
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
relay=$1
|
||||
|
||||
if [ -z "$relay" ]; then
|
||||
echo "Must supply a relay arg"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$CI_PROJECT_DIR/install/bare-metal/eth008-power-relay.py $ETH_HOST $ETH_PORT off $relay
|
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import sys
|
||||
import socket
|
||||
|
||||
host = sys.argv[1]
|
||||
port = sys.argv[2]
|
||||
mode = sys.argv[3]
|
||||
relay = sys.argv[4]
|
||||
msg = None
|
||||
|
||||
if mode == "on":
|
||||
msg = b'\x20'
|
||||
else:
|
||||
msg = b'\x21'
|
||||
|
||||
msg += int(relay).to_bytes(1, 'big')
|
||||
msg += b'\x00'
|
||||
|
||||
c = socket.create_connection((host, int(port)))
|
||||
c.sendall(msg)
|
||||
|
||||
data = c.recv(1)
|
||||
c.close()
|
||||
|
||||
if data[0] == b'\x01':
|
||||
print('Command failed')
|
||||
sys.exit(1)
|
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
relay=$1
|
||||
|
||||
if [ -z "$relay" ]; then
|
||||
echo "Must supply a relay arg"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$CI_PROJECT_DIR/install/bare-metal/eth008-power-relay.py $ETH_HOST $ETH_PORT off $relay
|
||||
sleep 5
|
||||
$CI_PROJECT_DIR/install/bare-metal/eth008-power-relay.py $ETH_HOST $ETH_PORT on $relay
|
@@ -83,12 +83,6 @@ class FastbootRun:
|
||||
"Detected kernel soft lockup, restarting run...")
|
||||
return 2
|
||||
|
||||
# If the network device dies, it's probably not graphics's fault, just try again.
|
||||
if re.search("NETDEV WATCHDOG", line):
|
||||
self.print_error(
|
||||
"Detected network device failure, restarting run...")
|
||||
return 2
|
||||
|
||||
result = re.search("hwci: mesa: (\S*)", line)
|
||||
if result:
|
||||
if result.group(1) == "pass":
|
||||
|
@@ -1,41 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Copyright © 2020 Christian Gmeiner
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
# IN THE SOFTWARE.
|
||||
#
|
||||
# Tiny script to read bytes from telnet, and write the output to stdout, with a
|
||||
# buffer in between so we don't lose serial output from its buffer.
|
||||
#
|
||||
|
||||
import sys
|
||||
import telnetlib
|
||||
|
||||
host=sys.argv[1]
|
||||
port=sys.argv[2]
|
||||
|
||||
tn = telnetlib.Telnet(host, port, 1000000)
|
||||
|
||||
while True:
|
||||
bytes = tn.read_some()
|
||||
sys.stdout.buffer.write(bytes)
|
||||
sys.stdout.flush()
|
||||
|
||||
tn.close()
|
@@ -26,27 +26,21 @@ for var in \
|
||||
DEQP_EXPECTED_RENDERER \
|
||||
DEQP_FRACTION \
|
||||
DEQP_HEIGHT \
|
||||
DEQP_NO_SAVE_RESULTS \
|
||||
DEQP_PARALLEL \
|
||||
DEQP_RESULTS_DIR \
|
||||
DEQP_RUNNER_OPTIONS \
|
||||
DEQP_SUITE \
|
||||
DEQP_VARIANT \
|
||||
DEQP_VER \
|
||||
DEQP_WIDTH \
|
||||
DEVICE_NAME \
|
||||
DRIVER_NAME \
|
||||
EGL_PLATFORM \
|
||||
ETNA_MESA_DEBUG \
|
||||
FDO_CI_CONCURRENT \
|
||||
FDO_UPSTREAM_REPO \
|
||||
FD_MESA_DEBUG \
|
||||
FLAKES_CHANNEL \
|
||||
GPU_VERSION \
|
||||
GTEST \
|
||||
GTEST_FAILS \
|
||||
GTEST_FRACTION \
|
||||
GTEST_RESULTS_DIR \
|
||||
GTEST_RUNNER_OPTIONS \
|
||||
GTEST_SKIPS \
|
||||
HWCI_FREQ_MAX \
|
||||
HWCI_KERNEL_MODULES \
|
||||
HWCI_START_XORG \
|
||||
@@ -62,7 +56,6 @@ for var in \
|
||||
MESA_VK_IGNORE_CONFORMANCE_WARNING \
|
||||
MINIO_HOST \
|
||||
NIR_VALIDATE \
|
||||
PAN_I_WANT_A_BROKEN_VULKAN_DRIVER \
|
||||
PAN_MESA_DEBUG \
|
||||
PIGLIT_FRACTION \
|
||||
PIGLIT_JUNIT_RESULTS \
|
||||
@@ -80,6 +73,7 @@ for var in \
|
||||
PIGLIT_RESULTS \
|
||||
PIGLIT_TESTS \
|
||||
PIPELINE_ARTIFACTS_BASE \
|
||||
TEST_LD_PRELOAD \
|
||||
TU_DEBUG \
|
||||
VK_CPU \
|
||||
VK_DRIVER \
|
||||
|
@@ -23,9 +23,6 @@ export XDG_CACHE_HOME=/tmp
|
||||
export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))")
|
||||
|
||||
if [ "$HWCI_FREQ_MAX" = "true" ]; then
|
||||
# Ensure initialization of the DRM device (needed by MSM)
|
||||
head -0 /dev/dri/renderD128
|
||||
|
||||
# Disable GPU frequency scaling
|
||||
DEVFREQ_GOVERNOR=`find /sys/devices -name governor | grep gpu || true`
|
||||
test -z "$DEVFREQ_GOVERNOR" || echo performance > $DEVFREQ_GOVERNOR || true
|
||||
|
@@ -11,7 +11,6 @@ CONFIG_DEVFREQ_GOV_PASSIVE=y
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_ETNAVIV=y
|
||||
CONFIG_DRM_ROCKCHIP=y
|
||||
CONFIG_DRM_PANFROST=y
|
||||
CONFIG_DRM_LIMA=y
|
||||
|
@@ -16,6 +16,7 @@ CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_DRM_MSM=y
|
||||
CONFIG_DRM_I2C_ADV7511=y
|
||||
CONFIG_DRM_I2C_ADV7533=y
|
||||
CONFIG_PWM_CROS_EC=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
|
||||
@@ -31,10 +32,6 @@ CONFIG_TYPEC=y
|
||||
CONFIG_TYPEC_TCPM=y
|
||||
|
||||
# MSM platform bits
|
||||
|
||||
# For CONFIG_QCOM_LMH
|
||||
CONFIG_OF=y
|
||||
|
||||
CONFIG_QCOM_RPMHPD=y
|
||||
CONFIG_QCOM_RPMPD=y
|
||||
CONFIG_SDM_GPUCC_845=y
|
||||
@@ -48,11 +45,9 @@ CONFIG_I2C_QCOM_GENI=y
|
||||
CONFIG_SPI_QCOM_GENI=y
|
||||
CONFIG_PHY_QCOM_QUSB2=y
|
||||
CONFIG_PHY_QCOM_QMP=y
|
||||
CONFIG_QCOM_CLK_APCC_MSM8996=y
|
||||
CONFIG_QCOM_LLCC=y
|
||||
CONFIG_QCOM_LMH=y
|
||||
CONFIG_QCOM_SPMI_TEMP_ALARM=y
|
||||
CONFIG_QCOM_WDT=y
|
||||
CONFIG_QCOM_CLK_APCC_MSM8996=y
|
||||
CONFIG_POWER_RESET_QCOM_PON=y
|
||||
CONFIG_RTC_DRV_PM8XXX=y
|
||||
CONFIG_INTERCONNECT=y
|
||||
@@ -61,9 +56,8 @@ CONFIG_INTERCONNECT_QCOM_SDM845=y
|
||||
CONFIG_INTERCONNECT_QCOM_MSM8916=y
|
||||
CONFIG_INTERCONNECT_QCOM_OSM_L3=y
|
||||
CONFIG_INTERCONNECT_QCOM_SC7180=y
|
||||
CONFIG_QCOM_WDT=y
|
||||
CONFIG_CRYPTO_DEV_QCOM_RNG=y
|
||||
CONFIG_SC_DISPCC_7180=y
|
||||
CONFIG_SC_GPUCC_7180=y
|
||||
|
||||
# db410c ethernet
|
||||
CONFIG_USB_RTL8152=y
|
||||
@@ -142,15 +136,12 @@ CONFIG_USB_NET_SMSC95XX=y
|
||||
# For amlogic
|
||||
CONFIG_MESON_GXL_PHY=y
|
||||
CONFIG_MDIO_BUS_MUX_MESON_G12A=y
|
||||
CONFIG_DRM_MESON=y
|
||||
|
||||
# For Mediatek
|
||||
CONFIG_DRM_MEDIATEK=y
|
||||
CONFIG_PWM_MEDIATEK=y
|
||||
CONFIG_DRM_MEDIATEK_HDMI=y
|
||||
CONFIG_GNSS=y
|
||||
CONFIG_GNSS_MTK_SERIAL=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_HW_RANDOM_MTK=y
|
||||
CONFIG_MTK_DEVAPC=y
|
||||
CONFIG_PWM_MTK_DISP=y
|
||||
|
@@ -31,18 +31,5 @@ if [[ $arch == "arm64" ]]; then
|
||||
wget ${ARTIFACTS_URL}/$DTB
|
||||
done
|
||||
|
||||
popd
|
||||
elif [[ $arch == "armhf" ]]; then
|
||||
mkdir -p /baremetal-files
|
||||
pushd /baremetal-files
|
||||
|
||||
wget ${ARTIFACTS_URL}/zImage
|
||||
|
||||
DEVICE_TREES="imx6q-cubox-i.dtb"
|
||||
|
||||
for DTB in $DEVICE_TREES; do
|
||||
wget ${ARTIFACTS_URL}/$DTB
|
||||
done
|
||||
|
||||
popd
|
||||
fi
|
||||
|
@@ -10,14 +10,14 @@ AOSP_EXTERNAL_ROOT=$CROS_ROOT/aosp/external
|
||||
mkdir -p $AOSP_EXTERNAL_ROOT
|
||||
PLATFORM2_ROOT=/platform2
|
||||
|
||||
PLATFORM2_COMMIT=72e56e66ccf3d2ea48f5686bd1f772379c43628b
|
||||
PLATFORM2_COMMIT=2079dd5fcd61f1ac39e2fc16595956617f3f1e9e
|
||||
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
|
||||
MINIJAIL_COMMIT=5f9e3001c61626d2863dad91248ba8496c3ef511
|
||||
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
|
||||
@@ -26,38 +26,25 @@ cp libminijail.so /usr/lib/x86_64-linux-gnu/
|
||||
popd
|
||||
|
||||
# Pull the cras library for audio access.
|
||||
ADHD_COMMIT=a1e0869b95c845c4fe6234a7b92fdfa6acc1e809
|
||||
ADHD_COMMIT=5068bdd18b51de8f2d5bcff754cdecda80de8f44
|
||||
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
|
||||
CROSVM_VERSION=f70350ba51e9631e3b7fe711c0296e041a61a499
|
||||
git clone --single-branch --no-checkout https://chromium.googlesource.com/chromiumos/platform/crosvm /platform/crosvm
|
||||
pushd /platform/crosvm
|
||||
git checkout "$CROSVM_VERSION"
|
||||
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
bindgen \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--root /usr/local \
|
||||
$EXTRA_CARGO_ARGS
|
||||
|
||||
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--locked \
|
||||
--features 'default-no-sandbox gpu x virgl_renderer virgl_renderer_next' \
|
||||
--features 'default-no-sandbox gpu x virtio-gpu-next' \
|
||||
--path . \
|
||||
--root /usr/local \
|
||||
$EXTRA_CARGO_ARGS
|
||||
|
||||
popd
|
||||
|
||||
rm -rf $PLATFORM2_ROOT $AOSP_EXTERNAL_ROOT/minijail $THIRD_PARTY_ROOT/adhd $THIRD_PARTY_ROOT/rust-vmm /platform/crosvm
|
||||
rm -rf $PLATFORM2_ROOT $AOSP_EXTERNAL_ROOT/minijail $THIRD_PARTY_ROOT/adhd /platform/crosvm
|
||||
|
@@ -4,6 +4,6 @@ set -ex
|
||||
|
||||
cargo install --locked deqp-runner \
|
||||
-j ${FDO_CI_CONCURRENT:-4} \
|
||||
--version 0.10.0 \
|
||||
--version 0.7.2 \
|
||||
--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.1 \
|
||||
-b vulkan-cts-1.2.6.2 \
|
||||
--depth 1 \
|
||||
/VK-GL-CTS
|
||||
pushd /VK-GL-CTS
|
||||
@@ -43,10 +43,8 @@ mv /deqp/modules/egl/deqp-egl-x11 /deqp/modules/egl/deqp-egl
|
||||
|
||||
# Copy out the mustpass lists we want.
|
||||
mkdir /deqp/mustpass
|
||||
for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt) ; do
|
||||
cat /VK-GL-CTS/external/vulkancts/mustpass/master/$mustpass \
|
||||
>> /deqp/mustpass/vk-master.txt
|
||||
done
|
||||
cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
|
||||
/deqp/mustpass/vk-master.txt
|
||||
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \
|
||||
|
@@ -4,7 +4,7 @@ set -ex
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||
pushd /piglit
|
||||
git checkout 7d7dd2688c214e1b3c00f37226500cbec4a58efb
|
||||
git checkout 11025faf96df23debbefd3678fe959eaa35a50f0
|
||||
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
|
||||
|
@@ -15,10 +15,10 @@ ln -s /usr/local/bin $HOME/.cargo/bin
|
||||
# version of the compiler, rather than whatever the container's Debian comes
|
||||
# with.
|
||||
#
|
||||
# Pick the rust compiler (1.48) available in Debian stable, and pick a specific
|
||||
# Pick the rust compiler (1.41) available in Debian stable, and pick a specific
|
||||
# snapshot from rustup so the compiler doesn't drift on us.
|
||||
wget https://sh.rustup.rs -O - | \
|
||||
sh -s -- -y --default-toolchain 1.49.0-2020-12-31
|
||||
sh -s -- -y --default-toolchain 1.41.1-2020-02-27
|
||||
|
||||
# Set up a config script for cross compiling -- cargo needs your system cc for
|
||||
# linking in cross builds, but doesn't know what you want to use for system cc.
|
||||
|
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
git clone \
|
||||
https://github.com/intel/libva-utils.git \
|
||||
-b 2.13.0 \
|
||||
--depth 1 \
|
||||
/va-utils
|
||||
|
||||
pushd /va-utils
|
||||
meson build -D tests=true -Dprefix=/va $EXTRA_MESON_ARGS
|
||||
ninja -C build install
|
||||
popd
|
||||
rm -rf /va-utils
|
@@ -10,7 +10,7 @@ ninja -C build install
|
||||
popd
|
||||
rm -rf /epoxy
|
||||
|
||||
VIRGLRENDERER_VERSION=f2ab66c6c00065b2944f4cd9d965ee455c535271
|
||||
VIRGLRENDERER_VERSION=08e11a495429c222f150b6d6f8c4936f2f0e0759
|
||||
git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git --single-branch --no-checkout /virglrenderer
|
||||
pushd /virglrenderer
|
||||
git checkout "$VIRGLRENDERER_VERSION"
|
||||
|
@@ -17,7 +17,7 @@ cat >$cross_file <<EOF
|
||||
[binaries]
|
||||
ar = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-ar'
|
||||
c = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
|
||||
cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables']
|
||||
cpp = ['ccache', '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch2}29-clang++', '-fno-exceptions', '-fno-unwind-tables', '-fno-asynchronous-unwind-tables', '-static-libstdc++']
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
strip = '$ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/$arch-strip'
|
||||
|
@@ -8,8 +8,6 @@ elif [ $DEBIAN_ARCH = amd64 ]; then
|
||||
ARCH_PACKAGES="firmware-amd-graphics
|
||||
libelf1
|
||||
libllvm11
|
||||
libva2
|
||||
libva-drm2
|
||||
"
|
||||
fi
|
||||
|
||||
|
@@ -43,6 +43,7 @@ apt-get -y install \
|
||||
llvm-11-dev \
|
||||
meson \
|
||||
pkg-config \
|
||||
python-is-python3 \
|
||||
python3-mako \
|
||||
python3-pil \
|
||||
python3-pip \
|
||||
|
@@ -14,6 +14,7 @@ apt-get install -y --no-remove \
|
||||
fastboot \
|
||||
netcat \
|
||||
procps \
|
||||
python-is-python3 \
|
||||
python3-distutils \
|
||||
python3-minimal \
|
||||
python3-serial \
|
||||
|
@@ -58,6 +58,7 @@ apt-get install -y --no-remove \
|
||||
make \
|
||||
meson \
|
||||
pkg-config \
|
||||
python-is-python3 \
|
||||
python3-mako \
|
||||
python3-pil \
|
||||
python3-requests \
|
||||
|
@@ -41,6 +41,7 @@ apt-get install -y --no-remove \
|
||||
libxkbcommon0 \
|
||||
libxrandr2 \
|
||||
libxrender1 \
|
||||
python-is-python3 \
|
||||
python3-mako \
|
||||
python3-numpy \
|
||||
python3-packaging \
|
||||
|
@@ -12,6 +12,7 @@ STABLE_EPHEMERAL=" \
|
||||
bc \
|
||||
bison \
|
||||
bzip2 \
|
||||
cargo \
|
||||
ccache \
|
||||
clang-11 \
|
||||
cmake \
|
||||
@@ -100,7 +101,6 @@ PIGLIT_OPTS="-DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitl
|
||||
|
||||
############### Build Crosvm
|
||||
|
||||
. .gitlab-ci/container/build-rust.sh
|
||||
. .gitlab-ci/container/build-crosvm.sh
|
||||
rm -rf /root/.cargo
|
||||
|
||||
|
@@ -120,10 +120,6 @@ wine \
|
||||
|
||||
. .gitlab-ci/container/container_pre_build.sh
|
||||
|
||||
############### Build libdrm
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
############### Build parallel-deqp-runner's hang-detection tool
|
||||
|
||||
. .gitlab-ci/container/build-hang-detection.sh
|
||||
@@ -150,6 +146,10 @@ setup_wine "/vkd3d-proton-wine64"
|
||||
|
||||
. .gitlab-ci/container/build-vkd3d-proton.sh
|
||||
|
||||
############### Build libdrm
|
||||
|
||||
. .gitlab-ci/container/build-libdrm.sh
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
ccache --show-stats
|
||||
|
@@ -27,22 +27,19 @@ if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
KERNEL_ARCH="arm64"
|
||||
DEFCONFIG="arch/arm64/configs/defconfig"
|
||||
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8016-sbc.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/apq8096-db820c.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/amlogic/meson-g12b-a311d-khadas-vim3.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-juniper-sku16.dtb"
|
||||
DEVICE_TREES+=" arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots.dtb"
|
||||
KERNEL_IMAGE_NAME="Image"
|
||||
elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
GCC_ARCH="arm-linux-gnueabihf"
|
||||
KERNEL_ARCH="arm"
|
||||
DEFCONFIG="arch/arm/configs/multi_v7_defconfig"
|
||||
DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb"
|
||||
DEVICE_TREES+=" arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
|
||||
DEVICE_TREES+=" arch/arm/boot/dts/imx6q-cubox-i.dtb"
|
||||
DEVICE_TREES="arch/arm/boot/dts/rk3288-veyron-jaq.dtb arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
|
||||
KERNEL_IMAGE_NAME="zImage"
|
||||
. .gitlab-ci/container/create-cross-file.sh armhf
|
||||
else
|
||||
@@ -51,7 +48,6 @@ else
|
||||
DEFCONFIG="arch/x86/configs/x86_64_defconfig"
|
||||
DEVICE_TREES=""
|
||||
KERNEL_IMAGE_NAME="bzImage"
|
||||
ARCH_PACKAGES="libva-dev"
|
||||
fi
|
||||
|
||||
# Determine if we're in a cross build.
|
||||
@@ -73,7 +69,6 @@ fi
|
||||
|
||||
apt-get update
|
||||
apt-get install -y --no-remove \
|
||||
${ARCH_PACKAGES} \
|
||||
automake \
|
||||
bc \
|
||||
cmake \
|
||||
@@ -132,7 +127,8 @@ rm -rf /apitrace
|
||||
############### Build dEQP runner
|
||||
. .gitlab-ci/container/build-deqp-runner.sh
|
||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
|
||||
mv /usr/local/bin/*-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
||||
mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
||||
mv /usr/local/bin/piglit-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
||||
|
||||
|
||||
############### Build dEQP
|
||||
@@ -145,11 +141,6 @@ mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh
|
||||
mv /piglit /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
|
||||
############### Build libva tests
|
||||
if [[ "$DEBIAN_ARCH" = "amd64" ]]; then
|
||||
. .gitlab-ci/container/build-va-tools.sh
|
||||
mv /va/bin/* /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/
|
||||
fi
|
||||
|
||||
############### Build libdrm
|
||||
EXTRA_MESON_ARGS+=" -D prefix=/libdrm"
|
||||
@@ -186,8 +177,6 @@ rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
|
||||
# created.
|
||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH
|
||||
find /libdrm/ -name lib\*\.so\* | xargs cp -t /lava-files/rootfs-${DEBIAN_ARCH}/usr/lib/$GCC_ARCH/.
|
||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/libdrm/
|
||||
cp -Rp /libdrm/share /lava-files/rootfs-${DEBIAN_ARCH}/libdrm/share
|
||||
rm -rf /libdrm
|
||||
|
||||
|
||||
|
@@ -1,11 +1,6 @@
|
||||
CONFIG_LOCALVERSION_AUTO=y
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PM_DEVFREQ=y
|
||||
CONFIG_OF=y
|
||||
CONFIG_CROS_EC=y
|
||||
|
||||
# abootimg with a 'dummy' rootfs fails with root=/dev/nfs
|
||||
CONFIG_BLK_DEV_INITRD=n
|
||||
|
||||
@@ -62,7 +57,7 @@ CONFIG_X86_AMD_FREQ_SENSITIVITY=y
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_AMD=y
|
||||
CONFIG_DRM_AMDGPU=m
|
||||
CONFIG_DRM_AMDGPU_SI=y
|
||||
CONFIG_DRM_AMDGPU_SI=m
|
||||
CONFIG_DRM_AMDGPU_USERPTR=y
|
||||
CONFIG_DRM_AMD_ACP=n
|
||||
CONFIG_ACPI_WMI=y
|
||||
|
@@ -18,8 +18,6 @@ if sh $CROSVM_TEST_SCRIPT; then
|
||||
touch /results/success
|
||||
fi
|
||||
|
||||
sleep 5 # Leave some time to get the last output flushed out
|
||||
|
||||
poweroff -d -n -f || true
|
||||
|
||||
sleep 10 # Just in case init would exit before the kernel shuts down the VM
|
||||
|
@@ -9,7 +9,6 @@ export EGL_PLATFORM=surfaceless
|
||||
|
||||
export -p > /crosvm-env.sh
|
||||
export GALLIUM_DRIVER="$CROSVM_GALLIUM_DRIVER"
|
||||
export GALLIVM_PERF="nopt"
|
||||
export LIBGL_ALWAYS_SOFTWARE="true"
|
||||
|
||||
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"
|
||||
@@ -30,13 +29,10 @@ echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
# Crosvm wants this
|
||||
syslogd > /dev/null
|
||||
|
||||
# We aren't testing LLVMPipe here, so we don't need to validate NIR on the host
|
||||
export NIR_VALIDATE=0
|
||||
|
||||
crosvm run \
|
||||
--gpu "$CROSVM_GPU_ARGS" \
|
||||
--gpu gles=false,backend=3d,egl=true,surfaceless=true \
|
||||
-m 4096 \
|
||||
-c $((FDO_CI_CONCURRENT > 1 ? FDO_CI_CONCURRENT - 1 : 1)) \
|
||||
-c 4 \
|
||||
--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" \
|
||||
|
@@ -8,10 +8,3 @@ dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/4575
|
||||
dEQP-VK.wsi.display.get_display_plane_capabilities
|
||||
|
||||
# piglit: WGL is Windows-only
|
||||
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.*
|
@@ -2,8 +2,30 @@
|
||||
|
||||
set -ex
|
||||
|
||||
DEQP_WIDTH=${DEQP_WIDTH:-256}
|
||||
DEQP_HEIGHT=${DEQP_HEIGHT:-256}
|
||||
DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0}
|
||||
DEQP_VARIANT=${DEQP_VARIANT:-master}
|
||||
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
|
||||
|
||||
if [ -z "$DEQP_VER" ]; then
|
||||
echo 'DEQP_VER must be set to something like "gles2", "gles31-khr" or "vk" for the test run'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$DEQP_VER" = "vk" ]; then
|
||||
if [ -z "$VK_DRIVER" ]; then
|
||||
echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run'
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
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)'
|
||||
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/deqp-gpu-version-*.txt)'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -14,103 +36,145 @@ export LD_LIBRARY_PATH=`pwd`/install/lib/
|
||||
export EGL_PLATFORM=surfaceless
|
||||
export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_CPU:-`uname -m`}.json
|
||||
|
||||
# the runner was failing to look for libkms in /usr/local/lib for some reason
|
||||
# I never figured out.
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
|
||||
|
||||
RESULTS=`pwd`/${DEQP_RESULTS_DIR:-results}
|
||||
mkdir -p $RESULTS
|
||||
|
||||
HANG_DETECTION_CMD=""
|
||||
|
||||
if [ -z "$DEQP_SUITE" ]; then
|
||||
if [ -z "$DEQP_VER" ]; then
|
||||
echo 'DEQP_SUITE must be set to the name of your deqp-gpu_version.toml, or DEQP_VER must be set to something like "gles2", "gles31-khr" or "vk" for the test run'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEQP_WIDTH=${DEQP_WIDTH:-256}
|
||||
DEQP_HEIGHT=${DEQP_HEIGHT:-256}
|
||||
DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0}
|
||||
DEQP_VARIANT=${DEQP_VARIANT:-master}
|
||||
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
|
||||
|
||||
if [ "$DEQP_VER" = "vk" -a -z "$VK_DRIVER" ]; then
|
||||
echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Generate test case list file.
|
||||
if [ "$DEQP_VER" = "vk" ]; then
|
||||
MUSTPASS=/deqp/mustpass/vk-$DEQP_VARIANT.txt
|
||||
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
|
||||
HANG_DETECTION_CMD="/parallel-deqp-runner/build/bin/hang-detection"
|
||||
elif [ "$DEQP_VER" = "gles2" -o "$DEQP_VER" = "gles3" -o "$DEQP_VER" = "gles31" -o "$DEQP_VER" = "egl" ]; then
|
||||
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
|
||||
DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER
|
||||
elif [ "$DEQP_VER" = "gles2-khr" -o "$DEQP_VER" = "gles3-khr" -o "$DEQP_VER" = "gles31-khr" -o "$DEQP_VER" = "gles32-khr" ]; then
|
||||
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
|
||||
DEQP=/deqp/external/openglcts/modules/glcts
|
||||
else
|
||||
MUSTPASS=/deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt
|
||||
DEQP=/deqp/external/openglcts/modules/glcts
|
||||
fi
|
||||
|
||||
cp $MUSTPASS /tmp/case-list.txt
|
||||
|
||||
# If the caselist is too long to run in a reasonable amount of time, let the job
|
||||
# specify what fraction (1/n) of the caselist we should run. Note: N~M is a gnu
|
||||
# sed extension to match every nth line (first line is #1).
|
||||
if [ -n "$DEQP_FRACTION" ]; then
|
||||
sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
# If the job is parallel at the gitab job level, take the corresponding fraction
|
||||
# of the caselist.
|
||||
if [ -n "$CI_NODE_INDEX" ]; then
|
||||
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_CASELIST_FILTER" ]; then
|
||||
sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_CASELIST_INV_FILTER" ]; then
|
||||
sed -ni "/$DEQP_CASELIST_INV_FILTER/!p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ ! -s /tmp/case-list.txt ]; then
|
||||
echo "Caselist generation failed"
|
||||
exit 1
|
||||
fi
|
||||
# Generate test case list file.
|
||||
if [ "$DEQP_VER" = "vk" ]; then
|
||||
cp /deqp/mustpass/vk-$DEQP_VARIANT.txt /tmp/case-list.txt
|
||||
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
|
||||
HANG_DETECTION_CMD="/parallel-deqp-runner/build/bin/hang-detection"
|
||||
elif [ "$DEQP_VER" = "gles2" -o "$DEQP_VER" = "gles3" -o "$DEQP_VER" = "gles31" -o "$DEQP_VER" = "egl" ]; then
|
||||
cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt
|
||||
DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER
|
||||
SUITE=dEQP
|
||||
elif [ "$DEQP_VER" = "gles2-khr" -o "$DEQP_VER" = "gles3-khr" -o "$DEQP_VER" = "gles31-khr" -o "$DEQP_VER" = "gles32-khr" ]; then
|
||||
cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt
|
||||
DEQP=/deqp/external/openglcts/modules/glcts
|
||||
SUITE=dEQP
|
||||
else
|
||||
cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt
|
||||
DEQP=/deqp/external/openglcts/modules/glcts
|
||||
SUITE=KHR
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
|
||||
DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
|
||||
# If the caselist is too long to run in a reasonable amount of time, let the job
|
||||
# specify what fraction (1/n) of the caselist we should run. Note: N~M is a gnu
|
||||
# sed extension to match every nth line (first line is #1).
|
||||
if [ -n "$DEQP_FRACTION" ]; then
|
||||
sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
# If the job is parallel at the gitab job level, take the corresponding fraction
|
||||
# of the caselist.
|
||||
if [ -n "$CI_NODE_INDEX" ]; then
|
||||
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_CASELIST_FILTER" ]; then
|
||||
sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_CASELIST_INV_FILTER" ]; then
|
||||
sed -ni "/$DEQP_CASELIST_INV_FILTER/!p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ ! -s /tmp/case-list.txt ]; then
|
||||
echo "Caselist generation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL/deqp-$GPU_VERSION-fails.txt" ]; then
|
||||
DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --baseline $INSTALL/deqp-$GPU_VERSION-fails.txt"
|
||||
fi
|
||||
|
||||
# Default to an empty known flakes file if it doesn't exist.
|
||||
touch $INSTALL/$GPU_VERSION-flakes.txt
|
||||
touch $INSTALL/deqp-$GPU_VERSION-flakes.txt
|
||||
|
||||
|
||||
if [ -n "$VK_DRIVER" ] && [ -e "$INSTALL/$VK_DRIVER-skips.txt" ]; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$VK_DRIVER-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GALLIUM_DRIVER-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$DRIVER_NAME-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
|
||||
DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GPU_VERSION-skips.txt"
|
||||
if [ -e "$INSTALL/deqp-$GPU_VERSION-skips.txt" ]; then
|
||||
DEQP_SKIPS="$INSTALL/deqp-$GPU_VERSION-skips.txt"
|
||||
fi
|
||||
|
||||
set +e
|
||||
|
||||
if [ -n "$DEQP_PARALLEL" ]; then
|
||||
JOB="--jobs $DEQP_PARALLEL"
|
||||
elif [ -n "$FDO_CI_CONCURRENT" ]; then
|
||||
JOB="--jobs $FDO_CI_CONCURRENT"
|
||||
else
|
||||
JOB="--jobs 4"
|
||||
fi
|
||||
|
||||
# If this CI lab lacks artifacts support, print the whole list of failures/flakes.
|
||||
if [ -n "$DEQP_NO_SAVE_RESULTS" ]; then
|
||||
SUMMARY_LIMIT="--summary-limit 0"
|
||||
fi
|
||||
|
||||
run_cts() {
|
||||
deqp=$1
|
||||
caselist=$2
|
||||
output=$3
|
||||
deqp-runner \
|
||||
run \
|
||||
--deqp $deqp \
|
||||
--output $RESULTS \
|
||||
--caselist $caselist \
|
||||
--skips $INSTALL/deqp-all-skips.txt $DEQP_SKIPS \
|
||||
--flakes $INSTALL/deqp-$GPU_VERSION-flakes.txt \
|
||||
--testlog-to-xml /deqp/executor/testlog-to-xml \
|
||||
$JOB \
|
||||
$SUMMARY_LIMIT \
|
||||
$DEQP_RUNNER_OPTIONS \
|
||||
-- \
|
||||
$DEQP_OPTIONS
|
||||
}
|
||||
|
||||
parse_renderer() {
|
||||
RENDERER=`grep -A1 TestCaseResult.\*info.renderer $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'`
|
||||
VERSION=`grep -A1 TestCaseResult.\*info.version $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'`
|
||||
echo "Renderer: $RENDERER"
|
||||
echo "Version: $VERSION "
|
||||
|
||||
if ! echo $RENDERER | grep -q $DEQP_EXPECTED_RENDERER; then
|
||||
echo "Expected GL_RENDERER $DEQP_EXPECTED_RENDERER"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_renderer() {
|
||||
if echo $DEQP_VER | grep -q egl; then
|
||||
return
|
||||
fi
|
||||
echo "Capturing renderer info for GLES driver sanity checks"
|
||||
# If you're having trouble loading your driver, uncommenting this may help
|
||||
# debug.
|
||||
# export EGL_LOG_LEVEL=debug
|
||||
VERSION=`echo $DEQP_VER | cut -d '-' -f1 | tr '[a-z]' '[A-Z]'`
|
||||
export LD_PRELOAD=$TEST_LD_PRELOAD
|
||||
$DEQP $DEQP_OPTIONS --deqp-case=$SUITE-$VERSION.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa
|
||||
export LD_PRELOAD=
|
||||
parse_renderer
|
||||
}
|
||||
|
||||
check_vk_device_name() {
|
||||
echo "Capturing device info for VK driver sanity checks"
|
||||
export LD_PRELOAD=$TEST_LD_PRELOAD
|
||||
$DEQP $DEQP_OPTIONS --deqp-case=dEQP-VK.info.device --deqp-log-filename=$RESULTS/deqp-info.qpa
|
||||
export LD_PRELOAD=
|
||||
DEVICENAME=`grep deviceName $RESULTS/deqp-info.qpa | sed 's|deviceName: ||g'`
|
||||
echo "deviceName: $DEVICENAME"
|
||||
if ! echo $DEVICENAME | grep -q "$DEQP_EXPECTED_RENDERER"; then
|
||||
echo "Expected deviceName $DEQP_EXPECTED_RENDERER"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
report_load() {
|
||||
echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)"
|
||||
echo "# of CPU cores: $(cat /proc/cpuinfo | grep processor | wc -l)"
|
||||
@@ -133,48 +197,27 @@ if [ "$GALLIUM_DRIVER" = "virpipe" ]; then
|
||||
fi
|
||||
|
||||
GALLIUM_DRIVER=llvmpipe \
|
||||
GALLIVM_PERF="nopt" \
|
||||
GALLIVM_PERF="nopt,no_filter_hacks" \
|
||||
virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 &
|
||||
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
if [ -z "$DEQP_SUITE" ]; then
|
||||
if [ -n "$DEQP_EXPECTED_RENDERER" ]; then
|
||||
export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --renderer-check "$DEQP_EXPECTED_RENDERER""
|
||||
fi
|
||||
if [ $DEQP_VER != vk -a $DEQP_VER != egl ]; then
|
||||
export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --version-check `cat $INSTALL/VERSION | sed 's/[() ]/./g'`"
|
||||
fi
|
||||
|
||||
deqp-runner \
|
||||
run \
|
||||
--deqp $DEQP \
|
||||
--output $RESULTS \
|
||||
--caselist /tmp/case-list.txt \
|
||||
--skips $INSTALL/all-skips.txt $DEQP_SKIPS \
|
||||
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--testlog-to-xml /deqp/executor/testlog-to-xml \
|
||||
--jobs ${FDO_CI_CONCURRENT:-4} \
|
||||
$DEQP_RUNNER_OPTIONS \
|
||||
-- \
|
||||
$DEQP_OPTIONS
|
||||
if [ $DEQP_VER = vk ]; then
|
||||
quiet check_vk_device_name
|
||||
else
|
||||
deqp-runner \
|
||||
suite \
|
||||
--suite $INSTALL/deqp-$DEQP_SUITE.toml \
|
||||
--output $RESULTS \
|
||||
--skips $INSTALL/all-skips.txt $DEQP_SKIPS \
|
||||
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--testlog-to-xml /deqp/executor/testlog-to-xml \
|
||||
--fraction-start $CI_NODE_INDEX \
|
||||
--fraction $CI_NODE_TOTAL \
|
||||
--jobs ${FDO_CI_CONCURRENT:-4} \
|
||||
$DEQP_RUNNER_OPTIONS
|
||||
quiet check_renderer
|
||||
fi
|
||||
|
||||
RESULTS_CSV=$RESULTS/results.csv
|
||||
FAILURES_CSV=$RESULTS/failures.csv
|
||||
|
||||
export LD_PRELOAD=$TEST_LD_PRELOAD
|
||||
|
||||
run_cts $DEQP /tmp/case-list.txt $RESULTS_CSV
|
||||
DEQP_EXITCODE=$?
|
||||
|
||||
export LD_PRELOAD=
|
||||
quiet report_load
|
||||
|
||||
# Remove all but the first 50 individual XML files uploaded as artifacts, to
|
||||
@@ -189,8 +232,8 @@ find $RESULTS -name \*.xml \
|
||||
-exec cp /deqp/testlog.css /deqp/testlog.xsl "$RESULTS/" ";" \
|
||||
-quit
|
||||
|
||||
deqp-runner junit \
|
||||
--testsuite dEQP \
|
||||
$HANG_DETECTION_CMD deqp-runner junit \
|
||||
--testsuite $DEQP_VER \
|
||||
--results $RESULTS/failures.csv \
|
||||
--output $RESULTS/junit.xml \
|
||||
--limit 50 \
|
||||
@@ -201,8 +244,8 @@ if [ -n "$FLAKES_CHANNEL" ]; then
|
||||
python3 $INSTALL/report-flakes.py \
|
||||
--host irc.oftc.net \
|
||||
--port 6667 \
|
||||
--results $RESULTS/results.csv \
|
||||
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--results $RESULTS_CSV \
|
||||
--known-flakes $INSTALL/deqp-$GPU_VERSION-flakes.txt \
|
||||
--channel "$FLAKES_CHANNEL" \
|
||||
--runner "$CI_RUNNER_DESCRIPTION" \
|
||||
--job "$CI_JOB_ID" \
|
||||
|
@@ -1,70 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
INSTALL=`pwd`/install
|
||||
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH=`pwd`/install/lib/
|
||||
export LIBVA_DRIVERS_PATH=`pwd`/install/lib/dri/
|
||||
# libva spams driver open info by default, and that happens per testcase.
|
||||
export LIBVA_MESSAGING_LEVEL=1
|
||||
|
||||
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
|
||||
GTEST_RUNNER_OPTIONS="$GTEST_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
|
||||
fi
|
||||
|
||||
# Default to an empty known flakes file if it doesn't exist.
|
||||
touch $INSTALL/$GPU_VERSION-flakes.txt
|
||||
|
||||
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
|
||||
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GALLIUM_DRIVER-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
|
||||
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$DRIVER_NAME-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
|
||||
GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GPU_VERSION-skips.txt"
|
||||
fi
|
||||
|
||||
set +e
|
||||
|
||||
gtest-runner \
|
||||
run \
|
||||
--gtest $GTEST \
|
||||
--output ${GTEST_RESULTS_DIR:-results} \
|
||||
--jobs ${FDO_CI_CONCURRENT:-4} \
|
||||
$GTEST_SKIPS \
|
||||
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--fraction-start ${CI_NODE_INDEX:-1} \
|
||||
--fraction $((${CI_NODE_TOTAL:-1} * ${GTEST_FRACTION:-1})) \
|
||||
--env "LD_PRELOAD=$TEST_LD_PRELOAD" \
|
||||
$GTEST_RUNNER_OPTIONS
|
||||
|
||||
GTEST_EXITCODE=$?
|
||||
|
||||
deqp-runner junit \
|
||||
--testsuite gtest \
|
||||
--results $RESULTS/failures.csv \
|
||||
--output $RESULTS/junit.xml \
|
||||
--limit 50 \
|
||||
--template "See https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/results/{{testcase}}.xml"
|
||||
|
||||
# Report the flakes to the IRC channel for monitoring (if configured):
|
||||
if [ -n "$FLAKES_CHANNEL" ]; then
|
||||
python3 $INSTALL/report-flakes.py \
|
||||
--host irc.oftc.net \
|
||||
--port 6667 \
|
||||
--results $RESULTS/results.csv \
|
||||
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--channel "$FLAKES_CHANNEL" \
|
||||
--runner "$CI_RUNNER_DESCRIPTION" \
|
||||
--job "$CI_JOB_ID" \
|
||||
--url "$CI_JOB_URL" \
|
||||
--branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \
|
||||
--branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}"
|
||||
fi
|
||||
|
||||
exit $GTEST_EXITCODE
|
@@ -5,7 +5,8 @@
|
||||
interruptible: true
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
FDO_CI_CONCURRENT: 6 # should be replaced by per-machine definitions
|
||||
DEQP_PARALLEL: 6 # should be replaced by per-machine definitions
|
||||
DEQP_NO_SAVE_RESULTS: 1 # but why not ... ?
|
||||
DEQP_VER: gles2
|
||||
# proxy used to cache data locally
|
||||
FDO_HTTP_CACHE_URI: "http://caching-proxy/cache/?uri="
|
||||
@@ -18,7 +19,6 @@
|
||||
JOB_ROOTFS_OVERLAY_PATH: "${JOB_ARTIFACTS_BASE}/job-rootfs-overlay.tar.gz"
|
||||
JOB_RESULTS_PATH: "${JOB_ARTIFACTS_BASE}/results.tar.gz"
|
||||
PIGLIT_NO_WINDOW: 1
|
||||
VISIBILITY_GROUP: "Collabora+fdo"
|
||||
script:
|
||||
- ./artifacts/lava/lava-submit.sh
|
||||
artifacts:
|
||||
|
@@ -34,7 +34,6 @@ artifacts/lava/lava_job_submitter.py \
|
||||
--mesa-build-url "${FDO_HTTP_CACHE_URI:-}https://${MESA_BUILD_PATH}" \
|
||||
--job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \
|
||||
--job-artifacts-base ${JOB_ARTIFACTS_BASE} \
|
||||
--job-timeout ${JOB_TIMEOUT:-30} \
|
||||
--first-stage-init artifacts/ci-common/init-stage1.sh \
|
||||
--ci-project-dir ${CI_PROJECT_DIR} \
|
||||
--device-type ${DEVICE_TYPE} \
|
||||
@@ -43,5 +42,4 @@ artifacts/lava/lava_job_submitter.py \
|
||||
--kernel-image-name ${KERNEL_IMAGE_NAME} \
|
||||
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
|
||||
--boot-method ${BOOT_METHOD} \
|
||||
--visibility-group ${VISIBILITY_GROUP} \
|
||||
--lava-tags "${LAVA_TAGS}" >> results/lava.log
|
||||
|
@@ -34,23 +34,9 @@ import urllib.parse
|
||||
import xmlrpc
|
||||
import yaml
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
from lavacli.utils import loader
|
||||
|
||||
# Timeout in minutes to decide if the device from the dispatched LAVA job has
|
||||
# hung or not due to the lack of new log output.
|
||||
DEVICE_HANGING_TIMEOUT_MIN = 5
|
||||
|
||||
# How many seconds the script should wait before try a new polling iteration to
|
||||
# check if the dispatched LAVA job is running or waiting in the job queue.
|
||||
WAIT_FOR_DEVICE_POLLING_TIME_SEC = 10
|
||||
|
||||
# How many seconds to wait between log output LAVA RPC calls.
|
||||
LOG_POLLING_TIME_SEC = 5
|
||||
|
||||
# How many retries should be made when a timeout happen.
|
||||
NUMBER_OF_RETRIES_TIMEOUT_DETECTION = 2
|
||||
|
||||
|
||||
def print_log(msg):
|
||||
print("{}: {}".format(datetime.now(), msg))
|
||||
@@ -64,14 +50,14 @@ def generate_lava_yaml(args):
|
||||
values = {
|
||||
'job_name': 'mesa: {}'.format(args.pipeline_info),
|
||||
'device_type': args.device_type,
|
||||
'visibility': { 'group': [ args.visibility_group ] },
|
||||
'visibility': { 'group': [ 'Collabora+fdo'] },
|
||||
'priority': 75,
|
||||
'context': {
|
||||
'extra_nfsroot_args': ' init=/init rootwait minio_results={}'.format(args.job_artifacts_base)
|
||||
},
|
||||
'timeouts': {
|
||||
'job': {
|
||||
'minutes': args.job_timeout
|
||||
'minutes': 30
|
||||
}
|
||||
},
|
||||
}
|
||||
@@ -111,7 +97,7 @@ def generate_lava_yaml(args):
|
||||
# skeleton test definition: only declaring each job as a single 'test'
|
||||
# since LAVA's test parsing is not useful to us
|
||||
test = {
|
||||
'timeout': { 'minutes': args.job_timeout },
|
||||
'timeout': { 'minutes': 30 },
|
||||
'failure_retry': 1,
|
||||
'definitions': [ {
|
||||
'name': 'mesa',
|
||||
@@ -126,7 +112,7 @@ def generate_lava_yaml(args):
|
||||
'format': 'Lava-Test Test Definition 1.0',
|
||||
},
|
||||
'parse': {
|
||||
'pattern': r'hwci: (?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
|
||||
'pattern': 'hwci: (?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
|
||||
},
|
||||
'run': {
|
||||
},
|
||||
@@ -224,44 +210,19 @@ def get_job_results(proxy, job_id, test_suite, test_case):
|
||||
|
||||
return True
|
||||
|
||||
def wait_until_job_is_started(proxy, job_id):
|
||||
print_log(f"Waiting for job {job_id} to start.")
|
||||
current_state = "Submitted"
|
||||
waiting_states = ["Submitted", "Scheduling", "Scheduled"]
|
||||
while current_state in waiting_states:
|
||||
job_state = _call_proxy(proxy.scheduler.job_state, job_id)
|
||||
current_state = job_state["job_state"]
|
||||
|
||||
time.sleep(WAIT_FOR_DEVICE_POLLING_TIME_SEC)
|
||||
print_log(f"Job {job_id} started.")
|
||||
|
||||
def follow_job_execution(proxy, job_id):
|
||||
line_count = 0
|
||||
finished = False
|
||||
last_time_logs = datetime.now()
|
||||
while not finished:
|
||||
(finished, data) = _call_proxy(proxy.scheduler.jobs.logs, job_id, line_count)
|
||||
logs = yaml.load(str(data), Loader=loader(False))
|
||||
if logs:
|
||||
# Reset the timeout
|
||||
last_time_logs = datetime.now()
|
||||
for line in logs:
|
||||
print("{} {}".format(line["dt"], line["msg"]))
|
||||
|
||||
line_count += len(logs)
|
||||
|
||||
else:
|
||||
time_limit = timedelta(minutes=DEVICE_HANGING_TIMEOUT_MIN)
|
||||
if datetime.now() - last_time_logs > time_limit:
|
||||
print_log("LAVA job {} doesn't advance (machine got hung?). Retry.".format(job_id))
|
||||
return False
|
||||
|
||||
# `proxy.scheduler.jobs.logs` does not block, even when there is no
|
||||
# new log to be fetched. To avoid dosing the LAVA dispatcher
|
||||
# machine, let's add a sleep to save them some stamina.
|
||||
time.sleep(LOG_POLLING_TIME_SEC)
|
||||
|
||||
return True
|
||||
|
||||
def show_job_data(proxy, job_id):
|
||||
show = _call_proxy(proxy.scheduler.jobs.show, job_id)
|
||||
@@ -296,22 +257,13 @@ def main(args):
|
||||
print("LAVA job definition validated successfully")
|
||||
return
|
||||
|
||||
retry_count = NUMBER_OF_RETRIES_TIMEOUT_DETECTION
|
||||
|
||||
while retry_count >= 0:
|
||||
while True:
|
||||
job_id = submit_job(proxy, yaml_file)
|
||||
|
||||
print_log("LAVA job id: {}".format(job_id))
|
||||
|
||||
wait_until_job_is_started(proxy, job_id)
|
||||
|
||||
if not follow_job_execution(proxy, job_id):
|
||||
print_log(f"Job {job_id} has timed out. Cancelling it.")
|
||||
# Cancel the job as it is considered unreachable by Mesa CI.
|
||||
proxy.scheduler.jobs.cancel(job_id)
|
||||
|
||||
retry_count -= 1
|
||||
continue
|
||||
follow_job_execution(proxy, job_id)
|
||||
|
||||
show_job_data(proxy, job_id)
|
||||
|
||||
@@ -332,7 +284,6 @@ if __name__ == '__main__':
|
||||
parser.add_argument("--mesa-build-url")
|
||||
parser.add_argument("--job-rootfs-overlay-url")
|
||||
parser.add_argument("--job-artifacts-base")
|
||||
parser.add_argument("--job-timeout", type=int)
|
||||
parser.add_argument("--first-stage-init")
|
||||
parser.add_argument("--ci-project-dir")
|
||||
parser.add_argument("--device-type")
|
||||
@@ -344,7 +295,6 @@ if __name__ == '__main__':
|
||||
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")
|
||||
|
||||
parser.set_defaults(func=main)
|
||||
args = parser.parse_args()
|
||||
|
6
.gitlab-ci/piglit/piglit-all-skips.txt
Normal file
6
.gitlab-ci/piglit/piglit-all-skips.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
# WGL is Windows-only
|
||||
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.*
|
@@ -3,7 +3,7 @@
|
||||
set -ex
|
||||
|
||||
if [ -z "$GPU_VERSION" ]; then
|
||||
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in your ci/gpu-version-*.txt)'
|
||||
echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in your ci/piglit-gpu-version-*.txt)'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -28,45 +28,47 @@ if [ -n "$CI_NODE_INDEX" ]; then
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --fraction-start ${CI_NODE_INDEX}"
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
|
||||
if [ -e "$INSTALL/piglit-$GPU_VERSION-fails.txt" ]; then
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --baseline $INSTALL/piglit-$GPU_VERSION-fails.txt"
|
||||
fi
|
||||
|
||||
# Default to an empty known flakes file if it doesn't exist.
|
||||
touch $INSTALL/$GPU_VERSION-flakes.txt
|
||||
touch $INSTALL/piglit-$GPU_VERSION-flakes.txt
|
||||
|
||||
if [ -n "$VK_DRIVER" ] && [ -e "$INSTALL/$VK_DRIVER-skips.txt" ]; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$VK_DRIVER-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GALLIUM_DRIVER-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$DRIVER_NAME-skips.txt"
|
||||
fi
|
||||
|
||||
if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
|
||||
PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GPU_VERSION-skips.txt"
|
||||
if [ -e "$INSTALL/piglit-$GPU_VERSION-skips.txt" ]; then
|
||||
PIGLIT_SKIPS="$INSTALL/piglit-$GPU_VERSION-skips.txt"
|
||||
fi
|
||||
|
||||
set +e
|
||||
|
||||
piglit-runner \
|
||||
run \
|
||||
--piglit-folder /piglit \
|
||||
--output $RESULTS \
|
||||
--jobs ${FDO_CI_CONCURRENT:-4} \
|
||||
--skips $INSTALL/all-skips.txt $PIGLIT_SKIPS \
|
||||
--flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--profile $PIGLIT_PROFILES \
|
||||
--process-isolation \
|
||||
$PIGLIT_RUNNER_OPTIONS \
|
||||
-v -v
|
||||
if [ -n "$PIGLIT_PARALLEL" ]; then
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --jobs $PIGLIT_PARALLEL"
|
||||
elif [ -n "$FDO_CI_CONCURRENT" ]; then
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --jobs $FDO_CI_CONCURRENT"
|
||||
else
|
||||
PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --jobs 4"
|
||||
fi
|
||||
|
||||
RESULTS_CSV=$RESULTS/results.csv
|
||||
FAILURES_CSV=$RESULTS/failures.csv
|
||||
|
||||
export LD_PRELOAD=$TEST_LD_PRELOAD
|
||||
|
||||
piglit-runner \
|
||||
run \
|
||||
--piglit-folder /piglit \
|
||||
--output $RESULTS \
|
||||
--skips $INSTALL/piglit/piglit-all-skips.txt $PIGLIT_SKIPS \
|
||||
--flakes $INSTALL/piglit-$GPU_VERSION-flakes.txt \
|
||||
--profile $PIGLIT_PROFILES \
|
||||
--process-isolation \
|
||||
$PIGLIT_RUNNER_OPTIONS \
|
||||
-v -v
|
||||
|
||||
PIGLIT_EXITCODE=$?
|
||||
|
||||
export LD_PRELOAD=
|
||||
|
||||
deqp-runner junit \
|
||||
--testsuite $PIGLIT_PROFILES \
|
||||
--results $RESULTS/failures.csv \
|
||||
@@ -79,8 +81,8 @@ if [ -n "$FLAKES_CHANNEL" ]; then
|
||||
python3 $INSTALL/report-flakes.py \
|
||||
--host irc.oftc.net \
|
||||
--port 6667 \
|
||||
--results $RESULTS/results.csv \
|
||||
--known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
|
||||
--results $RESULTS_CSV \
|
||||
--known-flakes $INSTALL/piglit-$GPU_VERSION-flakes.txt \
|
||||
--channel "$FLAKES_CHANNEL" \
|
||||
--runner "$CI_RUNNER_DESCRIPTION" \
|
||||
--job "$CI_JOB_ID" \
|
||||
|
@@ -107,7 +107,7 @@ else
|
||||
|
||||
LD_LIBRARY_PATH="$__LD_LIBRARY_PATH" \
|
||||
GALLIUM_DRIVER=llvmpipe \
|
||||
GALLIVM_PERF="nopt" \
|
||||
GALLIVM_PERF="nopt,no_filter_hacks" \
|
||||
VTEST_USE_EGL_SURFACELESS=1 \
|
||||
VTEST_USE_GLES=1 \
|
||||
virgl_test_server >"$RESULTS"/vtest-log.txt 2>&1 &
|
||||
@@ -160,6 +160,18 @@ replay_minio_upload_images() {
|
||||
else
|
||||
__MINIO_PATH="$JOB_ARTIFACTS_BASE"
|
||||
__DESTINATION_FILE_PATH="$__MINIO_TRACES_PREFIX/${line##*-}"
|
||||
# Adding to the JUnit the direct link to the diff page in
|
||||
# the dashboard
|
||||
__PIGLIT_TESTCASE_CLASSNAME="piglit\.trace\.$PIGLIT_REPLAY_DEVICE_NAME\.$(dirname $__TRACE | sed 's%/%\\.%g;s@%@\\%@')"
|
||||
__PIGLIT_TESTCASE_NAME="$(basename $__TRACE | sed 's%\.%_%g;s@%@\\%@')"
|
||||
__DASHBOARD_URL="https://tracie.freedesktop.org/dashboard/imagediff/${CI_PROJECT_PATH}/${CI_JOB_ID}/${__TRACE}"
|
||||
__START_TEST_PATTERN='<testcase classname="'"${__PIGLIT_TESTCASE_CLASSNAME}"'" name="'"${__PIGLIT_TESTCASE_NAME}"'" status="fail"'
|
||||
__REPLACE_TEST_PATTERN='</system-out><failure type="fail"/></testcase>'
|
||||
# Replace in the range between __START_TEST_PATTERN and
|
||||
# __REPLACE_TEST_PATTERN leaving __START_TEST_PATTERN out
|
||||
# from the substitution
|
||||
sed '\%'"${__START_TEST_PATTERN}"'%,\%'"${__REPLACE_TEST_PATTERN}"'%{\%'"${__START_TEST_PATTERN}"'%b;s%'"${__REPLACE_TEST_PATTERN}"'%</system-out><failure type="fail">To view the image differences visit: '"${__DASHBOARD_URL}"'</failure></testcase>%}' \
|
||||
-i "$RESULTS"/junit.xml
|
||||
fi
|
||||
|
||||
ci-fairy minio cp $MINIO_ARGS "$RESULTS/$__PREFIX/$line" \
|
||||
@@ -200,11 +212,6 @@ fi
|
||||
|
||||
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
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
@@ -230,6 +237,8 @@ mkdir -p .gitlab-ci/piglit
|
||||
if [ "x$PIGLIT_PROFILES" = "xreplay" ] \
|
||||
&& [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then
|
||||
|
||||
ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT
|
||||
|
||||
__PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME"
|
||||
__MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL"
|
||||
__MINIO_TRACES_PREFIX="traces"
|
||||
|
@@ -18,7 +18,7 @@ if [ -n "$CROSS" ]; then
|
||||
else
|
||||
STRIP="strip"
|
||||
fi
|
||||
if [ -z "$ARTIFACTS_DEBUG_SYMBOLS" ]; then
|
||||
if [ -z "$ARTIFACTS_DEBUG_SYMBOLS"]; then
|
||||
find install -name \*.so -exec $STRIP {} \;
|
||||
fi
|
||||
|
||||
@@ -31,13 +31,13 @@ cp -Rp .gitlab-ci/piglit install/
|
||||
cp -Rp .gitlab-ci/fossils.yml install/
|
||||
cp -Rp .gitlab-ci/fossils install/
|
||||
cp -Rp .gitlab-ci/fossilize-runner.sh install/
|
||||
cp -Rp .gitlab-ci/deqp-runner.sh install/
|
||||
cp -Rp .gitlab-ci/crosvm-runner.sh install/
|
||||
cp -Rp .gitlab-ci/crosvm-init.sh install/
|
||||
cp -Rp .gitlab-ci/*.txt install/
|
||||
cp -Rp .gitlab-ci/deqp-*.txt install/
|
||||
cp -Rp .gitlab-ci/report-flakes.py install/
|
||||
cp -Rp .gitlab-ci/vkd3d-proton install/
|
||||
cp -Rp .gitlab-ci/*-runner.sh install/
|
||||
find . -path \*/ci/\*.txt \
|
||||
-o -path \*/ci/\*.toml \
|
||||
-o -path \*/ci/\*traces\*.yml \
|
||||
| xargs -I '{}' cp -p '{}' install/
|
||||
|
||||
|
@@ -151,8 +151,6 @@
|
||||
.freedreno-rules:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- if: '$FD_FARM == "offline"'
|
||||
when: never
|
||||
- *ignore_scheduled_pipelines
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
@@ -163,7 +161,7 @@
|
||||
- changes:
|
||||
*vulkan_file_list
|
||||
when: on_success
|
||||
- changes: &freedreno_file_list
|
||||
- changes:
|
||||
# Note: when https://gitlab.com/gitlab-org/gitlab/-/issues/198688
|
||||
# is supported, we can change the src/freedreno/ rule to explicitly
|
||||
# exclude tools
|
||||
@@ -173,57 +171,6 @@
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
||||
# rules duplication manually
|
||||
.freedreno-rules-restricted:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- if: '$FD_FARM == "offline"'
|
||||
when: never
|
||||
# If the triggerer has access to the restricted traces and if it is pre-merge
|
||||
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu)$/") &&
|
||||
($GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME)'
|
||||
when: never
|
||||
- *ignore_scheduled_pipelines
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*vulkan_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*freedreno_file_list
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
||||
# rules duplication manually
|
||||
.freedreno-rules-performance:
|
||||
stage: freedreno
|
||||
rules:
|
||||
- if: '$FD_FARM == "offline"'
|
||||
when: never
|
||||
- *ignore_scheduled_pipelines
|
||||
# Run only on pre-merge pipelines from Marge
|
||||
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
||||
when: never
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*vulkan_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*freedreno_file_list
|
||||
when: manual
|
||||
- when: never
|
||||
|
||||
.panfrost-midgard-rules:
|
||||
stage: arm
|
||||
rules:
|
||||
@@ -239,7 +186,6 @@
|
||||
- src/gallium/winsys/panfrost/**/*
|
||||
when: on_success
|
||||
- changes: &panfrost_common_file_list
|
||||
- src/panfrost/ci/*
|
||||
- src/panfrost/include/*
|
||||
- src/panfrost/lib/*
|
||||
- src/panfrost/shared/*
|
||||
@@ -266,12 +212,6 @@
|
||||
- changes:
|
||||
*panfrost_gallium_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*vulkan_file_list
|
||||
when: on_success
|
||||
- changes: &panfrost_vulkan_file_list
|
||||
- src/panfrost/vulkan/*
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/panfrost/bifrost/**/*
|
||||
when: on_success
|
||||
@@ -398,25 +338,6 @@
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.radeonsi-vaapi-rules:
|
||||
stage: amd
|
||||
rules:
|
||||
- *ignore_scheduled_pipelines
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*radeonsi_file_list
|
||||
when: on_success
|
||||
- changes: &radeon_vcn_file_list
|
||||
- src/gallium/frontends/va/**/*
|
||||
- src/gallium/drivers/radeon/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.i915g-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
@@ -444,33 +365,13 @@
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes: &iris_file_list
|
||||
- changes:
|
||||
- src/gallium/drivers/iris/**/*
|
||||
- src/gallium/winsys/iris/**/*
|
||||
- src/intel/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
||||
# rules duplication manually
|
||||
.iris-rules-performance:
|
||||
stage: intel
|
||||
rules:
|
||||
- *ignore_scheduled_pipelines
|
||||
# Run only on pre-merge pipelines from Marge
|
||||
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
||||
when: never
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: manual
|
||||
- changes:
|
||||
*iris_file_list
|
||||
when: manual
|
||||
- when: never
|
||||
|
||||
.anv-rules:
|
||||
stage: intel
|
||||
rules:
|
||||
@@ -556,26 +457,6 @@
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
.etnaviv-rules:
|
||||
stage: etnaviv
|
||||
rules:
|
||||
- *ignore_scheduled_pipelines
|
||||
- changes:
|
||||
*mesa_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
*gallium_core_file_list
|
||||
when: on_success
|
||||
- changes:
|
||||
- src/etnaviv/**/*
|
||||
- src/gallium/drivers/etnaviv/**/*
|
||||
- src/gallium/winsys/etnaviv/**/*
|
||||
- src/gallium/auxiliary/renderonly/**/*
|
||||
- src/gallium/winsys/kmsro/**/*
|
||||
- src/gallium/winsys/etnaviv/**/*
|
||||
when: on_success
|
||||
- when: never
|
||||
|
||||
# Rules for unusual architectures that only build a subset of drivers
|
||||
.ppc64el-rules:
|
||||
rules:
|
||||
|
@@ -9,7 +9,7 @@ Write-Host "Compiling Mesa"
|
||||
$builddir = New-Item -ItemType Directory -Name "_build"
|
||||
$installdir = New-Item -ItemType Directory -Name "_install"
|
||||
Push-Location $builddir.FullName
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson --default-library=shared -Dzlib:default_library=static --buildtype=release -Db_ndebug=false -Dc_std=c17 -Dcpp_std=vc++latest -Db_vscrt=mt --cmake-prefix-path=`"C:\llvm-10`" --pkg-config-path=`"C:\llvm-10\lib\pkgconfig;C:\llvm-10\share\pkgconfig;C:\spirv-tools\lib\pkgconfig`" --prefix=`"$installdir`" -Dllvm=enabled -Dshared-llvm=disabled -Dvulkan-drivers=swrast,amd -Dgallium-drivers=swrast,d3d12,zink -Dshared-glapi=enabled -Dgles2=enabled -Dmicrosoft-clc=enabled -Dstatic-libclc=all -Dspirv-to-dxil=true -Dbuild-tests=true -Dwerror=true -Dwarning_level=2 -Dzlib:warning_level=1 -Dlibelf:warning_level=1 && ninja -j32 install && meson test --num-processes 32"
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && meson --default-library=shared -Dzlib:default_library=static --buildtype=release -Db_ndebug=false -Dc_std=c17 -Dcpp_std=vc++latest -Db_vscrt=mt --cmake-prefix-path=`"C:\llvm-10`" --pkg-config-path=`"C:\llvm-10\lib\pkgconfig;C:\llvm-10\share\pkgconfig;C:\spirv-tools\lib\pkgconfig`" --prefix=`"$installdir`" -Dllvm=enabled -Dshared-llvm=disabled -Dvulkan-drivers=swrast,amd -Dgallium-drivers=swrast,d3d12,zink -Dmicrosoft-clc=enabled -Dstatic-libclc=all -Dbuild-tests=true -Dwerror=true -Dwarning_level=2 -Dzlib:warning_level=1 -Dlibelf:warning_level=1 && ninja -j32 install && meson test --num-processes 32"
|
||||
$buildstatus = $?
|
||||
Pop-Location
|
||||
|
||||
|
@@ -1,8 +1,6 @@
|
||||
$env:PIGLIT_NO_FAST_SKIP = 1
|
||||
|
||||
Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\lib\piglit\bin\opengl32.dll
|
||||
Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\lib\piglit\bin\libgallium_wgl.dll
|
||||
Copy-Item -Path _install\bin\libglapi.dll -Destination C:\Piglit\lib\piglit\bin\libglapi.dll
|
||||
|
||||
# Run this using VsDevCmd.bat to ensure DXIL.dll is in %PATH%
|
||||
cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && py -3 C:\Piglit\bin\piglit.py run `"$env:PIGLIT_PROFILE`" $env:PIGLIT_OPTIONS $env:PIGLIT_TESTS .\results"
|
||||
|
@@ -364,6 +364,7 @@ spec/!opengl 2.0/vertex-program-two-side/tcs-out, tes and fs: skip
|
||||
spec/!opengl 2.0/vertex-program-two-side/tes-out and fs: skip
|
||||
spec/!opengl 2.0/vertex-program-two-side/vs, gs and fs: skip
|
||||
spec/!opengl 2.0/vertex-program-two-side/vs, tcs, tes and fs: skip
|
||||
spec/!opengl 2.1/fbo-mrt-alphatest-no-buffer-zero-write: crash
|
||||
spec/!opengl 3.0/bound-resource-limits: fail
|
||||
spec/!opengl 3.0/clearbuffer-depth-cs-probe: skip
|
||||
spec/!opengl 3.0/required-sized-texture-formats: fail
|
||||
@@ -2389,6 +2390,7 @@ spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 7: sk
|
||||
spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 8: skip
|
||||
spec/arb_texture_buffer_object/bufferstorage: skip
|
||||
spec/arb_texture_buffer_object/data-sync: fail
|
||||
spec/arb_texture_buffer_object/get: fail
|
||||
spec/arb_texture_buffer_object/indexed: skip
|
||||
spec/arb_texture_buffer_object/negative-unsupported: skip
|
||||
spec/arb_texture_buffer_object/subdata-sync: fail
|
||||
@@ -4560,6 +4562,8 @@ spec/glsl-1.30/execution/tex-miplevel-selection texturegrad cubearray: skip
|
||||
spec/glsl-1.30/execution/tex-miplevel-selection texturelod cubearray: skip
|
||||
spec/glsl-1.30/execution/tex-miplevel-selection textureoffset 2darrayshadow: skip
|
||||
spec/glsl-1.50/built-in constants compatibility: skip
|
||||
spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_loop ffs: fail
|
||||
spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_loop other: fail
|
||||
spec/glsl-1.50/execution/geometry/primitive-types gl_triangle_strip: fail
|
||||
spec/glsl-1.50/execution/geometry/primitive-types gl_triangle_strip_adjacency: fail
|
||||
spec/glsl-1.50/execution/geometry/tri-strip-ordering-with-prim-restart gl_triangle_strip ffs: fail
|
||||
@@ -4749,9 +4753,9 @@ wgl/wgl-sanity: skip
|
||||
summary:
|
||||
name: results
|
||||
---- --------
|
||||
pass: 13303
|
||||
fail: 535
|
||||
crash: 67
|
||||
pass: 13299
|
||||
fail: 538
|
||||
crash: 68
|
||||
skip: 4126
|
||||
timeout: 0
|
||||
warn: 10
|
||||
|
16339
.pick_status.json
16339
.pick_status.json
File diff suppressed because it is too large
Load Diff
138
CODEOWNERS
138
CODEOWNERS
@@ -1,138 +0,0 @@
|
||||
# This file contains the GitLab handle of the maintainers/reviewers for
|
||||
# a given file:
|
||||
# https://docs.gitlab.com/ce/user/project/code_owners.html
|
||||
#
|
||||
# Consider these as the list of people who want to be involved in MRs
|
||||
# touching these files/folders, and whom you can ask your questions and
|
||||
# tag in issues.
|
||||
#
|
||||
# As of GitLab 14.3, all features surrounding this file are premium-only,
|
||||
# which means this file is only read by humans for now.
|
||||
#
|
||||
# Paths starting with a `/` are relative to the git root, otherwise they
|
||||
# can match any substring of the file's path.
|
||||
# If multiple lines match, only the last one applies; there is no
|
||||
# accumulation.
|
||||
|
||||
|
||||
##################
|
||||
# INFRASTRUCTURE #
|
||||
##################
|
||||
|
||||
# Build system - Meson
|
||||
meson.build @dbaker @eric
|
||||
/meson_options.txt @dbaker @eric
|
||||
/docs/meson.rst @dbaker @eric
|
||||
|
||||
# Build system - Android
|
||||
/android/ @roman.stratiienko
|
||||
|
||||
# Compatibility headers
|
||||
/include/c99* @evelikov
|
||||
/include/c11* @eric
|
||||
|
||||
# Documentation
|
||||
/docs/ @eric @evelikov
|
||||
|
||||
|
||||
##########
|
||||
# COMMON #
|
||||
##########
|
||||
|
||||
# NIR
|
||||
/src/compiler/nir/ @jekstrand
|
||||
|
||||
# Vulkan
|
||||
/src/vulkan/ @eric @jekstrand
|
||||
/include/vulkan/ @eric @jekstrand
|
||||
|
||||
|
||||
#############
|
||||
# PLATFORMS #
|
||||
#############
|
||||
|
||||
# EGL
|
||||
/src/egl/ @eric @evelikov
|
||||
/include/EGL/ @eric @evelikov
|
||||
|
||||
# EGL - Android support
|
||||
/src/egl/drivers/dri2/platform_android.c @robh @tfiga
|
||||
|
||||
# EGL - Device support
|
||||
/src/egl/drivers/dri2/platform_device.c @evelikov
|
||||
|
||||
# EGL - Wayland support
|
||||
/src/egl/wayland/ @daniels @eric
|
||||
/src/egl/drivers/dri2/platform_wayland.c @daniels @eric
|
||||
|
||||
# Gallium targets
|
||||
/src/gallium/targets/ @evelikov
|
||||
|
||||
# GLX
|
||||
/src/glx/ @ajax
|
||||
/include/GL/glx* @ajax
|
||||
|
||||
# GLVND
|
||||
/src/egl/main/eglglvnd.c @kbrenneman
|
||||
/src/egl/main/egldispatchstubs.* @kbrenneman
|
||||
/src/egl/generate/ @kbrenneman
|
||||
/src/glx/*glvnd* @kbrenneman
|
||||
|
||||
# Haiku
|
||||
/include/HaikuGL/ @kallisti5
|
||||
/src/egl/drivers/haiku/ @kallisti5
|
||||
/src/gallium/frontends/hgl/ @kallisti5
|
||||
/src/gallium/targets/haiku-softpipe/ @kallisti5
|
||||
/src/gallium/winsys/sw/hgl/ @kallisti5
|
||||
/src/hgl/ @kallisti5
|
||||
|
||||
# Loader - DRI/classic
|
||||
/src/loader/ @evelikov
|
||||
|
||||
# Loader - Gallium
|
||||
/src/gallium/auxiliary/pipe-loader/ @evelikov
|
||||
/src/gallium/auxiliary/target-helpers/ @evelikov
|
||||
|
||||
# Vulkan WSI - Display
|
||||
/src/vulkan/wsi/wsi_common_display.* @keithp
|
||||
/src/*/vulkan/*_wsi_display.c @keithp
|
||||
|
||||
|
||||
###########
|
||||
# Drivers #
|
||||
###########
|
||||
|
||||
# Asahi
|
||||
/src/asahi/ @alyssa
|
||||
/src/gallium/drivers/asahi/ @alyssa
|
||||
|
||||
# Freedreno
|
||||
/src/gallium/drivers/freedreno/ @robclark
|
||||
|
||||
# Intel
|
||||
/include/drm-uapi/i915_drm.h @kwg @llandwerlin @jekstrand @idr
|
||||
/include/pci_ids/i*_pci_ids.h @kwg @llandwerlin @jekstrand @idr
|
||||
/src/intel/ @kwg @llandwerlin @jekstrand @idr
|
||||
/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
|
||||
/src/gallium/drivers/d3d12/ @jenatali
|
||||
|
||||
# Panfrost
|
||||
/src/panfrost/ @alyssa
|
||||
/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
|
114
REVIEWERS
Normal file
114
REVIEWERS
Normal file
@@ -0,0 +1,114 @@
|
||||
Overview:
|
||||
|
||||
This file is similar in syntax (or more precisly a subset) of what is
|
||||
used by the MAINTAINERS file in the linux kernel.
|
||||
The purpose is not exactly the same the MAINTAINERS file in the linux
|
||||
kernel, as there are not official/formal maintainers of different
|
||||
subsystems in mesa, but is meant to give an idea of who to CC for
|
||||
various patches for review.
|
||||
|
||||
Descriptions of section entries:
|
||||
|
||||
R: Designated reviewer: FullName <address@domain>
|
||||
These reviewers should be CCed on patches.
|
||||
F: Files and directories with wildcard patterns.
|
||||
A trailing slash includes all files and subdirectory files.
|
||||
F: drivers/net/ all files in and below drivers/net
|
||||
F: drivers/net/* all files in drivers/net, but not below
|
||||
F: */net/* all files in "any top level directory"/net
|
||||
One pattern per line. Multiple F: lines acceptable.
|
||||
|
||||
Maintainers List (try to look for most precise areas first)
|
||||
|
||||
Note: this is an opt-in system, I have not tried to add anyone who hasn't
|
||||
either asked me or sent a patch to add themselves.
|
||||
|
||||
-----------------------------------
|
||||
|
||||
NIR
|
||||
R: Jason Ekstrand <jason@jlekstrand.net>
|
||||
F: src/compiler/nir/
|
||||
|
||||
DOCUMENTATION
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
F: docs/
|
||||
|
||||
COMPATIBILITY HEADERS
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: include/c99*
|
||||
|
||||
DRI LOADER
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/loader/
|
||||
|
||||
EGL
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/egl/
|
||||
F: include/EGL/
|
||||
|
||||
HAIKU
|
||||
R: Alexander von Gluck IV <kallisti5@unixzen.com>
|
||||
F: include/HaikuGL/
|
||||
F: src/egl/drivers/haiku/
|
||||
F: src/gallium/frontends/hgl/
|
||||
F: src/gallium/targets/haiku-softpipe/
|
||||
F: src/gallium/winsys/sw/hgl/
|
||||
F: src/hgl/
|
||||
|
||||
GALLIUM LOADER
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/gallium/auxiliary/pipe-loader/
|
||||
F: src/gallium/auxiliary/target-helpers/
|
||||
|
||||
GALLIUM TARGETS
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/gallium/targets/
|
||||
|
||||
ANDROID BUILD
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
F: CleanSpec.mk
|
||||
F: */Android.*mk
|
||||
F: */Makefile.sources
|
||||
|
||||
MESON BUILD
|
||||
R: Dylan Baker <dylan@pnwbakers.com>
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
F: */meson.build
|
||||
F: meson.build
|
||||
F: meson_options.txt
|
||||
|
||||
ANDROID EGL SUPPORT
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
R: Tomasz Figa <tfiga@chromium.org>
|
||||
F: src/egl/drivers/dri2/platform_android.c
|
||||
|
||||
WAYLAND EGL SUPPORT
|
||||
R: Daniel Stone <daniels@collabora.com>
|
||||
F: src/egl/wayland/*
|
||||
F: src/egl/drivers/dri2/platform_wayland.c
|
||||
|
||||
FREEDRENO
|
||||
R: Rob Clark <robclark@freedesktop.org>
|
||||
F: src/gallium/drivers/freedreno/
|
||||
|
||||
GLX
|
||||
R: Adam Jackson <ajax@redhat.com>
|
||||
F: src/glx/
|
||||
|
||||
VULKAN
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
F: src/vulkan/
|
||||
F: include/vulkan/
|
||||
|
||||
VMWARE DRIVER
|
||||
R: Brian Paul <brianp@vmware.com>
|
||||
R: Charmaine Lee <charmainel@vmware.com>
|
||||
F: src/gallium/drivers/svga/
|
||||
|
||||
VMWARE WINSYS CODE
|
||||
R: Thomas Hellstrom <thellstrom@vmware.com>
|
||||
R: Deepak Rawat <drawat@vmware.com>
|
||||
F: src/gallium/winsys/svga/
|
@@ -26,13 +26,10 @@ ifneq ($(filter true, $(BOARD_MESA3D_USES_MESON_BUILD)),)
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
MESA3D_TOP := $(dir $(LOCAL_PATH))
|
||||
|
||||
LIBDRM_VERSION = $(shell cat external/libdrm/meson.build | grep -o "\<version\>\s*:\s*'\w*\.\w*\.\w*'" | grep -o "\w*\.\w*\.\w*" | head -1)
|
||||
|
||||
MESA_VK_LIB_SUFFIX_amd := radeon
|
||||
MESA_VK_LIB_SUFFIX_intel := intel
|
||||
MESA_VK_LIB_SUFFIX_freedreno := freedreno
|
||||
MESA_VK_LIB_SUFFIX_broadcom := broadcom
|
||||
MESA_VK_LIB_SUFFIX_panfrost := panfrost
|
||||
MESA_VK_LIB_SUFFIX_virtio-experimental := virtio
|
||||
MESA_VK_LIB_SUFFIX_swrast := lvp
|
||||
|
||||
@@ -41,7 +38,7 @@ include $(CLEAR_VARS)
|
||||
LOCAL_SHARED_LIBRARIES := libc libdl libdrm libm liblog libcutils libz libc++ libnativewindow libsync libhardware
|
||||
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
|
||||
MESON_GEN_PKGCONFIGS := backtrace cutils expat hardware libdrm:2.4.105 nativewindow sync zlib:1.2.11 libelf
|
||||
|
||||
ifneq ($(filter swr swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
|
||||
MESON_GEN_LLVM_STUB := true
|
||||
@@ -54,31 +51,31 @@ endif
|
||||
|
||||
ifneq ($(filter iris,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_intel
|
||||
MESON_GEN_PKGCONFIGS += libdrm_intel:$(LIBDRM_VERSION)
|
||||
MESON_GEN_PKGCONFIGS += libdrm_intel:2.4.105
|
||||
endif
|
||||
|
||||
ifneq ($(filter radeonsi amd,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),)
|
||||
MESON_GEN_LLVM_STUB := true
|
||||
LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_amdgpu
|
||||
MESON_GEN_PKGCONFIGS += libdrm_amdgpu:$(LIBDRM_VERSION)
|
||||
MESON_GEN_PKGCONFIGS += libdrm_amdgpu:2.4.105
|
||||
endif
|
||||
|
||||
ifneq ($(filter radeonsi r300 r600,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_radeon
|
||||
MESON_GEN_PKGCONFIGS += libdrm_radeon:$(LIBDRM_VERSION)
|
||||
MESON_GEN_PKGCONFIGS += libdrm_radeon:2.4.105
|
||||
endif
|
||||
|
||||
ifneq ($(filter nouveau,$(BOARD_MESA3D_GALLIUM_DRIVERS)),)
|
||||
LOCAL_SHARED_LIBRARIES += libdrm_nouveau
|
||||
MESON_GEN_PKGCONFIGS += libdrm_nouveau:$(LIBDRM_VERSION)
|
||||
MESON_GEN_PKGCONFIGS += libdrm_nouveau:2.4.105
|
||||
endif
|
||||
|
||||
ifneq ($(MESON_GEN_LLVM_STUB),)
|
||||
MESON_LLVM_VERSION := 12.0.0
|
||||
MESON_LLVM_VERSION := 11.0.0
|
||||
# Required for swr gallium target
|
||||
MESON_LLVM_IRBUILDER_PATH := external/llvm-project/llvm/include/llvm/IR/IRBuilder.h
|
||||
LOCAL_SHARED_LIBRARIES += libLLVM12
|
||||
LOCAL_SHARED_LIBRARIES += libLLVM11
|
||||
endif
|
||||
|
||||
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0)
|
||||
|
@@ -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)
|
||||
@@ -277,13 +272,12 @@ $(MESON_OUT_DIR)/install/.install.timestamp: $(MESON_OUT_DIR)/.build.timestamp
|
||||
touch $@
|
||||
|
||||
$($(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN) $(MESA3D_GLES_BINS): $(MESON_OUT_DIR)/install/.install.timestamp
|
||||
echo "Build $@"
|
||||
touch $@
|
||||
echo "Build $@"\
|
||||
|
||||
define vulkan_target
|
||||
$(M_TARGET_PREFIX)MESA3D_VULKAN_$1_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libvulkan_$(MESA_VK_LIB_SUFFIX_$1).so
|
||||
$(MESON_OUT_DIR)/install/usr/local/lib/libvulkan_$(MESA_VK_LIB_SUFFIX_$1).so: $(MESON_OUT_DIR)/install/.install.timestamp
|
||||
touch $(MESON_OUT_DIR)/install/usr/local/lib/libvulkan_$(MESA_VK_LIB_SUFFIX_$1).so
|
||||
echo $@
|
||||
|
||||
endef
|
||||
|
||||
@@ -298,4 +292,3 @@ $($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp:
|
||||
|
||||
$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.symlinks.timestamp
|
||||
echo "Build $@"
|
||||
touch $@
|
||||
|
@@ -182,7 +182,9 @@ async def gather_commits(version: str) -> str:
|
||||
return out.decode().strip()
|
||||
|
||||
|
||||
async def parse_issues(commits: str) -> typing.List[str]:
|
||||
async def gather_bugs(version: str) -> typing.List[str]:
|
||||
commits = await gather_commits(version)
|
||||
|
||||
issues: typing.List[str] = []
|
||||
for commit in commits.split('\n'):
|
||||
sha, message = commit.split(maxsplit=1)
|
||||
@@ -191,24 +193,17 @@ async def parse_issues(commits: str) -> typing.List[str]:
|
||||
stdout=asyncio.subprocess.PIPE)
|
||||
_out, _ = await p.communicate()
|
||||
out = _out.decode().split('\n')
|
||||
|
||||
for line in reversed(out):
|
||||
if line.startswith('Closes:'):
|
||||
bug = line.lstrip('Closes:').strip()
|
||||
if bug.startswith('https://gitlab.freedesktop.org/mesa/mesa'):
|
||||
# This means we have a bug in the form "Closes: https://..."
|
||||
issues.append(os.path.basename(urllib.parse.urlparse(bug).path))
|
||||
elif ',' in bug:
|
||||
issues.extend([b.strip().lstrip('#') for b in bug.split(',')])
|
||||
elif bug.startswith('#'):
|
||||
issues.append(bug.lstrip('#'))
|
||||
|
||||
return issues
|
||||
|
||||
|
||||
async def gather_bugs(version: str) -> typing.List[str]:
|
||||
commits = await gather_commits(version)
|
||||
issues = await parse_issues(commits)
|
||||
break
|
||||
else:
|
||||
raise Exception('No closes found?')
|
||||
if bug.startswith('h'):
|
||||
# This means we have a bug in the form "Closes: https://..."
|
||||
issues.append(os.path.basename(urllib.parse.urlparse(bug).path))
|
||||
else:
|
||||
issues.append(bug.lstrip('#'))
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
async with aiohttp.ClientSession(loop=loop) as session:
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Copyright © 2019,2021 Intel Corporation
|
||||
# Copyright © 2019 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -18,19 +18,8 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
import sys
|
||||
import textwrap
|
||||
import typing
|
||||
|
||||
import pytest
|
||||
|
||||
# AsyncMock is new in 3.8, so if we're using an older version we need the
|
||||
# backported version of mock
|
||||
if sys.version_info >= (3, 8):
|
||||
from unittest import mock
|
||||
else:
|
||||
import mock
|
||||
|
||||
from .gen_release_notes import *
|
||||
|
||||
|
||||
@@ -69,93 +58,3 @@ async def test_gather_commits():
|
||||
version = '19.2.0'
|
||||
out = await gather_commits(version)
|
||||
assert out
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@pytest.mark.parametrize(
|
||||
'content, bugs',
|
||||
[
|
||||
# It is important to have the title on a new line, as
|
||||
# textwrap.dedent wont work otherwise.
|
||||
|
||||
# Test the `Closes: #N` syntax
|
||||
(
|
||||
'''\
|
||||
A commit
|
||||
|
||||
It has a message in it
|
||||
|
||||
Closes: #1
|
||||
''',
|
||||
['1'],
|
||||
),
|
||||
|
||||
# Test the Full url
|
||||
(
|
||||
'''\
|
||||
A commit with no body
|
||||
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3456
|
||||
''',
|
||||
['3456'],
|
||||
),
|
||||
|
||||
# Test projects that are not mesa
|
||||
(
|
||||
'''\
|
||||
A commit for libdrm
|
||||
|
||||
Closes: https://gitlab.freedesktop.org/mesa/drm/-/3456
|
||||
''',
|
||||
[],
|
||||
),
|
||||
(
|
||||
'''\
|
||||
A commit for for something else completely
|
||||
|
||||
Closes: https://github.com/Organiztion/project/1234
|
||||
''',
|
||||
[],
|
||||
),
|
||||
|
||||
# Test multiple issues on one line
|
||||
(
|
||||
'''\
|
||||
Fix many bugs
|
||||
|
||||
Closes: #1, #2
|
||||
''',
|
||||
['1', '2'],
|
||||
),
|
||||
|
||||
# Test multiple closes
|
||||
(
|
||||
'''\
|
||||
Fix many bugs
|
||||
|
||||
Closes: #1
|
||||
Closes: #2
|
||||
''',
|
||||
['1', '2'],
|
||||
),
|
||||
(
|
||||
'''\
|
||||
With long form
|
||||
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3456
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3457
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3458
|
||||
''',
|
||||
['3456', '3457', '3458'],
|
||||
),
|
||||
])
|
||||
async def test_parse_issues(content: str, bugs: typing.List[str]) -> None:
|
||||
mock_com = mock.AsyncMock(return_value=(textwrap.dedent(content).encode(), ''))
|
||||
mock_p = mock.Mock()
|
||||
mock_p.communicate = mock_com
|
||||
mock_exec = mock.AsyncMock(return_value=mock_p)
|
||||
|
||||
with mock.patch('bin.gen_release_notes.asyncio.create_subprocess_exec', mock_exec), \
|
||||
mock.patch('bin.gen_release_notes.gather_commits', mock.AsyncMock(return_value='sha\n')):
|
||||
ids = await parse_issues('1234 not used')
|
||||
assert set(ids) == set(bugs)
|
||||
|
@@ -22,6 +22,7 @@
|
||||
|
||||
"""Script to install megadriver symlinks for meson."""
|
||||
|
||||
from __future__ import print_function
|
||||
import argparse
|
||||
import os
|
||||
|
||||
|
@@ -47,7 +47,7 @@ SOURCES = [
|
||||
'api': 'khr',
|
||||
'inc_folder': 'KHR',
|
||||
'sources': [
|
||||
Source('include/KHR/khrplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/KHR/khrplatform.h'),
|
||||
Source('include/KHR/khrplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/KHR/khrplatform.h'),
|
||||
],
|
||||
},
|
||||
|
||||
@@ -55,10 +55,10 @@ SOURCES = [
|
||||
'api': 'egl',
|
||||
'inc_folder': 'EGL',
|
||||
'sources': [
|
||||
Source('src/egl/generate/egl.xml', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/egl.xml'),
|
||||
Source('include/EGL/egl.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/EGL/egl.h'),
|
||||
Source('include/EGL/eglplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/EGL/eglplatform.h'),
|
||||
Source('include/EGL/eglext.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/main/api/EGL/eglext.h'),
|
||||
Source('src/egl/generate/egl.xml', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/egl.xml'),
|
||||
Source('include/EGL/egl.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/EGL/egl.h'),
|
||||
Source('include/EGL/eglplatform.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/EGL/eglplatform.h'),
|
||||
Source('include/EGL/eglext.h', 'https://github.com/KhronosGroup/EGL-Registry/raw/master/api/EGL/eglext.h'),
|
||||
Source('include/EGL/eglextchromium.h', 'https://chromium.googlesource.com/chromium/src/+/refs/heads/master/ui/gl/EGL/eglextchromium.h?format=TEXT'),
|
||||
Source('include/EGL/eglext_angle.h', 'https://chromium.googlesource.com/angle/angle/+/refs/heads/master/include/EGL/eglext_angle.h?format=TEXT'),
|
||||
Source('include/EGL/eglmesaext.h', None),
|
||||
@@ -69,11 +69,11 @@ SOURCES = [
|
||||
'api': 'gl',
|
||||
'inc_folder': 'GL',
|
||||
'sources': [
|
||||
Source('src/mapi/glapi/registry/gl.xml', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/xml/gl.xml'),
|
||||
Source('include/GL/glcorearb.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glcorearb.h'),
|
||||
Source('include/GL/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glext.h'),
|
||||
Source('include/GL/glxext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glxext.h'),
|
||||
Source('include/GL/wglext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/wglext.h'),
|
||||
Source('src/mapi/glapi/registry/gl.xml', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/xml/gl.xml'),
|
||||
Source('include/GL/glcorearb.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/glcorearb.h'),
|
||||
Source('include/GL/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/glext.h'),
|
||||
Source('include/GL/glxext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/glxext.h'),
|
||||
Source('include/GL/wglext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GL/wglext.h'),
|
||||
Source('include/GL/gl.h', None), # FIXME: I don't know what the canonical source is
|
||||
Source('include/GL/glx.h', None), # FIXME: I don't know what the canonical source is
|
||||
Source('include/GL/internal/', None),
|
||||
@@ -86,10 +86,10 @@ SOURCES = [
|
||||
'api': 'gles1',
|
||||
'inc_folder': 'GLES',
|
||||
'sources': [
|
||||
Source('include/GLES/gl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/gl.h'),
|
||||
Source('include/GLES/glplatform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/glplatform.h'),
|
||||
Source('include/GLES/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/glext.h'),
|
||||
Source('include/GLES/egl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES/egl.h'),
|
||||
Source('include/GLES/gl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/gl.h'),
|
||||
Source('include/GLES/glplatform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/glplatform.h'),
|
||||
Source('include/GLES/glext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/glext.h'),
|
||||
Source('include/GLES/egl.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES/egl.h'),
|
||||
],
|
||||
},
|
||||
|
||||
@@ -97,9 +97,9 @@ SOURCES = [
|
||||
'api': 'gles2',
|
||||
'inc_folder': 'GLES2',
|
||||
'sources': [
|
||||
Source('include/GLES2/gl2.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES2/gl2.h'),
|
||||
Source('include/GLES2/gl2platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES2/gl2platform.h'),
|
||||
Source('include/GLES2/gl2ext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES2/gl2ext.h'),
|
||||
Source('include/GLES2/gl2.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES2/gl2.h'),
|
||||
Source('include/GLES2/gl2platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES2/gl2platform.h'),
|
||||
Source('include/GLES2/gl2ext.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES2/gl2ext.h'),
|
||||
],
|
||||
},
|
||||
|
||||
@@ -107,10 +107,10 @@ SOURCES = [
|
||||
'api': 'gles3',
|
||||
'inc_folder': 'GLES3',
|
||||
'sources': [
|
||||
Source('include/GLES3/gl3.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl3.h'),
|
||||
Source('include/GLES3/gl31.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl31.h'),
|
||||
Source('include/GLES3/gl32.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl32.h'),
|
||||
Source('include/GLES3/gl3platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GLES3/gl3platform.h'),
|
||||
Source('include/GLES3/gl3.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl3.h'),
|
||||
Source('include/GLES3/gl31.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl31.h'),
|
||||
Source('include/GLES3/gl32.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl32.h'),
|
||||
Source('include/GLES3/gl3platform.h', 'https://github.com/KhronosGroup/OpenGL-Registry/raw/master/api/GLES3/gl3platform.h'),
|
||||
Source('include/GLES3/gl3ext.h', None), # FIXME: I don't know what the canonical source is
|
||||
],
|
||||
},
|
||||
@@ -155,27 +155,25 @@ SOURCES = [
|
||||
'api': 'vulkan',
|
||||
'inc_folder': 'vulkan',
|
||||
'sources': [
|
||||
Source('src/vulkan/registry/vk.xml', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/registry/vk.xml'),
|
||||
Source('include/vulkan/vulkan.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan.h'),
|
||||
Source('include/vulkan/vulkan_core.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_core.h'),
|
||||
Source('include/vulkan/vulkan_beta.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_beta.h'),
|
||||
Source('include/vulkan/vk_icd.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vk_icd.h'),
|
||||
Source('include/vulkan/vk_layer.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vk_layer.h'),
|
||||
Source('include/vulkan/vk_platform.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vk_platform.h'),
|
||||
Source('include/vulkan/vulkan_android.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_android.h'),
|
||||
Source('include/vulkan/vulkan_directfb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_directfb.h'),
|
||||
Source('include/vulkan/vulkan_fuchsia.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_fuchsia.h'),
|
||||
Source('include/vulkan/vulkan_ggp.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_ggp.h'),
|
||||
Source('include/vulkan/vulkan_ios.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_ios.h'),
|
||||
Source('include/vulkan/vulkan_macos.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_macos.h'),
|
||||
Source('include/vulkan/vulkan_metal.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_metal.h'),
|
||||
Source('include/vulkan/vulkan_screen.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_screen.h'),
|
||||
Source('include/vulkan/vulkan_vi.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_vi.h'),
|
||||
Source('include/vulkan/vulkan_wayland.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_wayland.h'),
|
||||
Source('include/vulkan/vulkan_win32.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_win32.h'),
|
||||
Source('include/vulkan/vulkan_xcb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xcb.h'),
|
||||
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('src/vulkan/registry/vk.xml', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/registry/vk.xml'),
|
||||
Source('include/vulkan/vulkan.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan.h'),
|
||||
Source('include/vulkan/vulkan_core.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_core.h'),
|
||||
Source('include/vulkan/vulkan_beta.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_beta.h'),
|
||||
Source('include/vulkan/vk_icd.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vk_icd.h'),
|
||||
Source('include/vulkan/vk_layer.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vk_layer.h'),
|
||||
Source('include/vulkan/vk_platform.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vk_platform.h'),
|
||||
Source('include/vulkan/vulkan_android.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_android.h'),
|
||||
Source('include/vulkan/vulkan_fuchsia.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_fuchsia.h'),
|
||||
Source('include/vulkan/vulkan_ggp.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_ggp.h'),
|
||||
Source('include/vulkan/vulkan_ios.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_ios.h'),
|
||||
Source('include/vulkan/vulkan_macos.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_macos.h'),
|
||||
Source('include/vulkan/vulkan_metal.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_metal.h'),
|
||||
Source('include/vulkan/vulkan_vi.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_vi.h'),
|
||||
Source('include/vulkan/vulkan_wayland.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_wayland.h'),
|
||||
Source('include/vulkan/vulkan_win32.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_win32.h'),
|
||||
Source('include/vulkan/vulkan_xcb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_xcb.h'),
|
||||
Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/include/vulkan/vulkan_xlib.h'),
|
||||
Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/master/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/vulkan/.editorconfig', None),
|
||||
],
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
#!/usr/bin/env python
|
||||
# encoding=utf-8
|
||||
# Copyright © 2017 Intel Corporation
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
|
||||
|
||||
|
@@ -138,14 +138,6 @@ class Commit:
|
||||
c.resolution = Resolution(data['resolution'])
|
||||
return c
|
||||
|
||||
def date(self) -> str:
|
||||
# Show commit date, ie. when the commit actually landed
|
||||
# (as opposed to when it was first written)
|
||||
return subprocess.check_output(
|
||||
['git', 'show', '--no-patch', '--format=%cs', self.sha],
|
||||
stderr=subprocess.DEVNULL
|
||||
).decode("ascii").strip()
|
||||
|
||||
async def apply(self, ui: 'UI') -> typing.Tuple[bool, str]:
|
||||
# FIXME: This isn't really enough if we fail to cherry-pick because the
|
||||
# git tree will still be dirty
|
||||
|
@@ -43,8 +43,9 @@ PALETTE = [
|
||||
|
||||
class RootWidget(urwid.Frame):
|
||||
|
||||
def __init__(self, *args, ui: 'UI', **kwargs):
|
||||
def __init__(self, *args, ui: 'UI' = None, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
assert ui is not None
|
||||
self.ui = ui
|
||||
|
||||
def keypress(self, size: int, key: str) -> typing.Optional[str]:
|
||||
@@ -66,8 +67,7 @@ class CommitWidget(urwid.Text):
|
||||
_selectable = True
|
||||
|
||||
def __init__(self, ui: 'UI', commit: 'core.Commit'):
|
||||
reason = commit.nomination_type.name.ljust(6)
|
||||
super().__init__(f'{commit.date()} {reason} {commit.sha[:10]} {commit.description}')
|
||||
super().__init__(f'{commit.sha[:10]} {commit.description}')
|
||||
self.ui = ui
|
||||
self.commit = commit
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python3
|
||||
#!/usr/bin/env python
|
||||
|
||||
import argparse
|
||||
import os
|
||||
@@ -21,9 +21,6 @@ PLATFORM_SYMBOLS = [
|
||||
'_end',
|
||||
'_fini',
|
||||
'_init',
|
||||
'_fbss',
|
||||
'_fdata',
|
||||
'_ftext',
|
||||
]
|
||||
|
||||
def get_symbols_nm(nm, lib):
|
||||
@@ -73,7 +70,7 @@ def get_symbols_dumpbin(dumpbin, lib):
|
||||
continue
|
||||
symbol_name = fields[3]
|
||||
# De-mangle symbols
|
||||
if symbol_name[0] == '_' and '@' in symbol_name:
|
||||
if symbol_name[0] == '_':
|
||||
symbol_name = symbol_name[1:].split('@')[0]
|
||||
symbols.append(symbol_name)
|
||||
return symbols
|
||||
|
@@ -8,11 +8,9 @@ if [ ! -e .git ]; then
|
||||
fi
|
||||
|
||||
if [ ! -d platform-hardware-libhardware ]; then
|
||||
git clone --depth 1 https://android.googlesource.com/platform/frameworks/native platform-frameworks-native
|
||||
git clone --depth 1 https://android.googlesource.com/platform/hardware/libhardware platform-hardware-libhardware
|
||||
git clone --depth 1 https://android.googlesource.com/platform/system/core platform-system-core
|
||||
git clone --depth 1 https://android.googlesource.com/platform/system/logging platform-system-logging
|
||||
git clone --depth 1 https://android.googlesource.com/platform/system/unwinding platform-system-unwinding
|
||||
git clone --depth 1 https://android.googlesource.com/platform/frameworks/native platform-frameworks-native
|
||||
fi
|
||||
|
||||
dest=include/android_stub
|
||||
@@ -27,14 +25,14 @@ mkdir ${dest}
|
||||
|
||||
# These directories contains mostly only the files we need, so copy wholesale
|
||||
|
||||
cp -av \
|
||||
platform-frameworks-native/libs/nativewindow/include/vndk \
|
||||
platform-frameworks-native/libs/nativebase/include/nativebase \
|
||||
platform-system-core/libsync/include/ndk \
|
||||
cp -av platform-frameworks-native/libs/nativewindow/include/vndk \
|
||||
platform-system-core/libsync/include/sync \
|
||||
platform-system-core/libsync/include/ndk \
|
||||
platform-system-core/libbacktrace/include/backtrace \
|
||||
platform-system-core/libsystem/include/system \
|
||||
platform-system-logging/liblog/include/log \
|
||||
platform-system-unwinding/libbacktrace/include/backtrace \
|
||||
platform-system-core/liblog/include/log \
|
||||
platform-frameworks-native/libs/nativewindow/include/apex \
|
||||
platform-frameworks-native/libs/nativebase/include/nativebase \
|
||||
${dest}
|
||||
|
||||
|
||||
@@ -45,16 +43,15 @@ cp -av platform-hardware-libhardware/include/hardware/{hardware,gralloc,gralloc1
|
||||
cp -av platform-frameworks-native/vulkan/include/hardware/hwvulkan.h ${dest}/hardware
|
||||
|
||||
mkdir ${dest}/cutils
|
||||
cp -av platform-system-core/libcutils/include/cutils/{compiler,log,native_handle,properties,trace}.h ${dest}/cutils
|
||||
cp -av platform-system-core/libcutils/include/cutils/{log,native_handle,properties}.h ${dest}/cutils
|
||||
|
||||
|
||||
# include/android has files from a few different projects
|
||||
|
||||
mkdir ${dest}/android
|
||||
cp -av \
|
||||
platform-frameworks-native/libs/nativewindow/include/android/* \
|
||||
cp -av platform-frameworks-native/libs/nativewindow/include/android/* \
|
||||
platform-frameworks-native/libs/arect/include/android/* \
|
||||
platform-system-core/liblog/include/android/* \
|
||||
platform-system-core/libsync/include/android/* \
|
||||
platform-system-logging/liblog/include/android/* \
|
||||
${dest}/android
|
||||
|
||||
|
@@ -1,8 +1,12 @@
|
||||
Report a Bug
|
||||
============
|
||||
|
||||
The Mesa bug database is hosted on
|
||||
`freedesktop.org <https://freedesktop.org>`__. The old bug database on
|
||||
SourceForge is no longer used.
|
||||
|
||||
To file a Mesa bug, go to `GitLab on
|
||||
freedesktop.org <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__.
|
||||
freedesktop.org <https://gitlab.freedesktop.org/mesa/mesa/-/issues>`__
|
||||
|
||||
Please follow these bug reporting guidelines:
|
||||
|
||||
|
@@ -52,41 +52,6 @@ The three GitLab CI systems currently integrated are:
|
||||
LAVA
|
||||
docker
|
||||
|
||||
Application traces replay
|
||||
-------------------------
|
||||
|
||||
The CI replays application traces with various drivers in two different jobs. The first
|
||||
job replays traces listed in ``src/<driver>/ci/traces-<driver>.yml`` files and if any
|
||||
of those traces fail the pipeline fails as well. The second job replays traces listed in
|
||||
``src/<driver>/ci/restricted-traces-<driver>.yml`` and it is allowed to fail. This second
|
||||
job is only created when the pipeline is triggered by `marge-bot` or any other user that
|
||||
has been granted access to these traces.
|
||||
|
||||
A traces YAML file also includes a ``download-url`` pointing to a MinIO
|
||||
instance where to download the traces from. While the first job should always work with
|
||||
publicly accessible traces, the second job could point to an url with restricted access.
|
||||
|
||||
Restricted traces are those that have been made available to Mesa developers without a
|
||||
license to redistribute at will, and thus should not be exposed to the public. Failing to
|
||||
access that URL would not prevent the pipeline to pass, therefore forks made by
|
||||
contributors without permissions to download non-redistributable traces can be merged
|
||||
without friction.
|
||||
|
||||
As an aside, only maintainers of such non-redistributable traces are responsible for
|
||||
ensuring that replays are successful, since other contributors would not be able to
|
||||
download and test them by themselves.
|
||||
|
||||
Those Mesa contributors that believe they could have permission to access such
|
||||
non-redistributable traces can request permission to Daniel Stone <daniels@collabora.com>.
|
||||
|
||||
gitlab.freedesktop.org accounts that are to be granted access to these traces will be
|
||||
added to the OPA policy for the MinIO repository as per
|
||||
https://gitlab.freedesktop.org/freedesktop/helm-gitlab-config/-/commit/a3cd632743019f68ac8a829267deb262d9670958 .
|
||||
|
||||
So the jobs are created in personal repositories, the name of the user's account needs
|
||||
to be added to the rules attribute of the Gitlab CI job that accesses the restricted
|
||||
accounts.
|
||||
|
||||
Intel CI
|
||||
--------
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
set $proxy_authorization '';
|
||||
set $authorization '';
|
||||
|
||||
set_by_lua $proxyuri '
|
||||
unescaped = ngx.unescape_uri(ngx.var.arg_uri);
|
||||
@@ -13,12 +13,10 @@ set_by_lua $proxyuri '
|
||||
host = it[3];
|
||||
query = it[4];
|
||||
|
||||
if ngx.var.http_authorization and ngx.var.http_authorization ~= "" then
|
||||
ngx.var.proxy_authorization = ngx.var.http_authorization;
|
||||
elseif authstring then
|
||||
if authstring then
|
||||
auth = string.sub(authstring, 0, -2);
|
||||
auth64 = ngx.encode_base64(auth);
|
||||
ngx.var.proxy_authorization = "Basic " .. auth64;
|
||||
ngx.var.authorization = "Basic " .. auth64;
|
||||
end
|
||||
|
||||
-- Default to / if none is set to avoid using the request_uri query
|
||||
@@ -30,7 +28,7 @@ set_by_lua $proxyuri '
|
||||
';
|
||||
|
||||
add_header X-GG-Cache-Status $upstream_cache_status;
|
||||
proxy_set_header Authorization $proxy_authorization;
|
||||
proxy_set_header Authorization $authorization;
|
||||
|
||||
proxy_pass $proxyuri;
|
||||
# Redirect back to ourselves on 301 replies
|
||||
|
@@ -22,7 +22,7 @@ cuts taken to get things up and running (which are mostly not inherent to
|
||||
the xml schema, and should not be too difficult to remove from the py and
|
||||
decode/disasm utility):
|
||||
|
||||
* Maximum "field" size is 64b
|
||||
* Maximum "bitset" size is 64b
|
||||
* Fixed instruction size
|
||||
|
||||
Often times, especially when new functionality is added in later gens
|
||||
@@ -184,9 +184,6 @@ decoding. The display template consists of references to fields (which may
|
||||
be derived fields) specified as ``{FIELDNAME}`` and other characters
|
||||
which are just echoed through to the resulting decoded bitset.
|
||||
|
||||
It is possible to define a line column alignment value per field to influence
|
||||
the visual output. It needs to be pecified as ``{FIELDNAME:align=xx}``.
|
||||
|
||||
The ``<override>`` element will be described in the next section, but it
|
||||
provides for both different decoded instruction syntax/mnemonics (when
|
||||
simply providing a different display template string) as well as instruction
|
||||
|
@@ -106,10 +106,9 @@ Windows
|
||||
|
||||
On Windows, building will create
|
||||
``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` which
|
||||
is a drop-in alternative for system's ``opengl32.dll``, which will use
|
||||
the Mesa ICD, ``build/windows-x86-debug/gallium/targets/wgl/libgallium_wgl.dll``.
|
||||
To use it put both dlls in the same directory as your application. It can also
|
||||
be used by replacing the native ICD driver, but it's quite an advanced usage, so if
|
||||
is a drop-in alternative for system's ``opengl32.dll``. To use it put it
|
||||
in the same directory as your application. It can also be used by
|
||||
replacing the native ICD driver, but it's quite an advanced usage, so if
|
||||
you need to ask, don't even try it.
|
||||
|
||||
There is however an easy way to replace the OpenGL software renderer
|
||||
@@ -117,7 +116,7 @@ that comes with Microsoft Windows 7 (or later) with llvmpipe (that is,
|
||||
on systems without any OpenGL drivers):
|
||||
|
||||
- copy
|
||||
``build/windows-x86-debug/gallium/targets/wgl/libgallium_wgl.dll`` to
|
||||
``build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll`` to
|
||||
``C:\Windows\SysWOW64\mesadrv.dll``
|
||||
|
||||
- load this registry settings:
|
||||
|
@@ -1,10 +1,9 @@
|
||||
Panfrost
|
||||
========
|
||||
|
||||
The Panfrost driver stack includes an OpenGL ES implementation for Arm Mali
|
||||
GPUs based on the Midgard and Bifrost microarchitectures. It is **conformant**
|
||||
on Mali G52 but **non-conformant** on other GPUs. The following hardware is
|
||||
currently supported:
|
||||
The Panfrost driver stack includes a **non-conformant** OpenGL ES
|
||||
implementation for Arm Mali GPUs based on the Midgard and Bifrost
|
||||
microarchitectures. The following GPUs are currently supported:
|
||||
|
||||
========= ============ ============ =======
|
||||
Product Architecture OpenGL ES OpenGL
|
||||
@@ -40,16 +39,17 @@ it's easy to add support, see the commit ``cff7de4bb597e9`` as an example.
|
||||
LLVM is *not* required by Panfrost's compilers. LLVM support in Mesa can
|
||||
safely be disabled for most OpenGL ES users with Panfrost.
|
||||
|
||||
Build like ``meson . build/ -Ddri-drivers= -Dvulkan-drivers=
|
||||
-Dgallium-drivers=panfrost -Dllvm=disabled`` for a build directory
|
||||
Build with meson like ``meson . build/ -Ddri-drivers= -Dvulkan-drivers=
|
||||
-Dgallium-drivers=panfrost -Dllvm=false`` for a build directory
|
||||
``build``.
|
||||
|
||||
Building for Android via the legacy ``Android.mk`` system is not officially
|
||||
supported but reportedly works. Your mileage may vary.
|
||||
|
||||
For general information on building Mesa, read :doc:`the install documentation
|
||||
<../install>`.
|
||||
|
||||
Chat
|
||||
----
|
||||
|
||||
Panfrost developers and users hang out on IRC at ``#panfrost`` on OFTC. Note
|
||||
that registering and authenticating with `NickServ` is required to prevent
|
||||
spam. `Join the chat. <https://webchat.oftc.net/?channels=#panfrost>`_
|
||||
Panfrost developers and users hang out on IRC at ``#panfrost`` on OFTC.
|
||||
|
@@ -227,23 +227,6 @@ are required to be supported
|
||||
|
||||
* `VK_KHR_draw_indirect_count`_
|
||||
|
||||
Performance
|
||||
-----------
|
||||
|
||||
If you notice poor performance and high CPU usage while running an application,
|
||||
changing the descriptor manager may improve performance:
|
||||
|
||||
.. envvar:: ZINK_DESCRIPTORS <mode> ("auto")
|
||||
|
||||
``auto``
|
||||
Automatically detect best mode. This is the default.
|
||||
``lazy``
|
||||
Disable caching and attempt to use the least amount of CPU.
|
||||
``nofallback``
|
||||
Always use caching to try reducing GPU churn.
|
||||
``notemplates``
|
||||
The same as `auto`, but disables the use of `VK_KHR_descriptor_templates`.
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
|
102
docs/envvars.rst
102
docs/envvars.rst
@@ -232,13 +232,12 @@ the :doc:`Xlib software driver page <xlibdriver>` for details.
|
||||
:envvar:`MESA_GLX_ALPHA_BITS`
|
||||
specifies default number of bits for alpha channel.
|
||||
|
||||
Intel driver environment variables
|
||||
i945/i965 driver environment variables (non-Gallium)
|
||||
----------------------------------------------------
|
||||
|
||||
:envvar:`INTEL_BLACKHOLE_DEFAULT`
|
||||
if set to 1, true or yes, then the OpenGL implementation will
|
||||
default ``GL_BLACKHOLE_RENDER_INTEL`` to true, thus disabling any
|
||||
rendering.
|
||||
:envvar:`INTEL_NO_HW`
|
||||
if set to 1, prevents batches from being submitted to the hardware.
|
||||
This is useful for debugging hangs, etc.
|
||||
:envvar:`INTEL_DEBUG`
|
||||
a comma-separated list of named flags, which do various things:
|
||||
|
||||
@@ -335,65 +334,8 @@ Intel driver environment variables
|
||||
``vs``
|
||||
dump shader assembly for vertex shaders
|
||||
|
||||
:envvar:`INTEL_MEASURE`
|
||||
Collects GPU timestamps over common intervals, and generates a CSV report
|
||||
to show how long rendering took. The overhead of collection is limited to
|
||||
the flushing that is required at the interval boundaries for accurate
|
||||
timestamps. By default, timing data is sent to ``stderr``. To direct output
|
||||
to a file:
|
||||
|
||||
``INTEL_MEASURE=file=/tmp/measure.csv {workload}``
|
||||
|
||||
To begin capturing timestamps at a particular frame:
|
||||
|
||||
``INTEL_MEASURE=file=/tmp/measure.csv,start=15 {workload}``
|
||||
|
||||
To capture only 23 frames:
|
||||
|
||||
``INTEL_MEASURE=count=23 {workload}``
|
||||
|
||||
To capture frames 15-37, stopping before frame 38:
|
||||
|
||||
``INTEL_MEASURE=start=15,count=23 {workload}``
|
||||
|
||||
Designate an asynchronous control file with:
|
||||
|
||||
``INTEL_MEASURE=control=path/to/control.fifo {workload}``
|
||||
|
||||
As the workload runs, enable capture for 5 frames with:
|
||||
|
||||
``$ echo 5 > path/to/control.fifo``
|
||||
|
||||
Enable unbounded capture:
|
||||
|
||||
``$ echo -1 > path/to/control.fifo``
|
||||
|
||||
and disable with:
|
||||
|
||||
``$ echo 0 > path/to/control.fifo``
|
||||
|
||||
Select the boundaries of each snapshot with:
|
||||
|
||||
``INTEL_MEASURE=draw``
|
||||
Collects timings for every render (DEFAULT)
|
||||
|
||||
``INTEL_MEASURE=rt``
|
||||
Collects timings when the render target changes
|
||||
|
||||
``INTEL_MEASURE=batch``
|
||||
Collects timings when batches are submitted
|
||||
|
||||
``INTEL_MEASURE=frame``
|
||||
Collects timings at frame boundaries
|
||||
|
||||
With ``INTEL_MEASURE=interval=5``, the duration of 5 events will be
|
||||
combined into a single record in the output. When possible, a single
|
||||
start and end event will be submitted to the GPU to minimize
|
||||
stalling. Combined events will not span batches, except in
|
||||
the case of ``INTEL_MEASURE=frame``.
|
||||
:envvar:`INTEL_NO_HW`
|
||||
if set to 1, true or yes, prevents batches from being submitted to the
|
||||
hardware. This is useful for debugging hangs, etc.
|
||||
:envvar:`INTEL_SCALAR_VS` (or ``TCS``, ``TES``, ``GS``)
|
||||
force scalar/vec4 mode for a shader stage (Gen8-9 only)
|
||||
:envvar:`INTEL_PRECISE_TRIG`
|
||||
if set to 1, true or yes, then the driver prefers accuracy over
|
||||
performance in trig functions.
|
||||
@@ -411,6 +353,10 @@ Intel driver environment variables
|
||||
The success of assembly override would be signified by "Successfully
|
||||
overrode shader with sha1 <sha1>" in stderr replacing the original
|
||||
assembly.
|
||||
:envvar:`INTEL_BLACKHOLE_DEFAULT`
|
||||
if set to 1, true or yes, then the OpenGL implementation will
|
||||
default ``GL_BLACKHOLE_RENDER_INTEL`` to true, thus disabling any
|
||||
rendering.
|
||||
|
||||
|
||||
Radeon driver environment variables (radeon, r200, and r300g)
|
||||
@@ -419,13 +365,6 @@ Radeon driver environment variables (radeon, r200, and r300g)
|
||||
:envvar:`RADEON_NO_TCL`
|
||||
if set, disable hardware-accelerated Transform/Clip/Lighting.
|
||||
|
||||
DRI environment variables
|
||||
-------------------------
|
||||
|
||||
:envvar:`DRI_NO_MSAA`
|
||||
disable MSAA for GLX/EGL MSAA visuals
|
||||
|
||||
|
||||
EGL environment variables
|
||||
-------------------------
|
||||
|
||||
@@ -618,6 +557,8 @@ RADV driver environment variables
|
||||
force all allocated buffers to be referenced in submissions
|
||||
``checkir``
|
||||
validate the LLVM IR before LLVM compiles the shader
|
||||
``errors``
|
||||
display more info about errors
|
||||
``forcecompress``
|
||||
Enables DCC,FMASK,CMASK,HTILE in situations where the driver supports it
|
||||
but normally does not deem it beneficial.
|
||||
@@ -633,8 +574,6 @@ RADV driver environment variables
|
||||
class of application bugs appearing as flickering.
|
||||
``metashaders``
|
||||
dump internal meta shaders
|
||||
``noatocdithering``
|
||||
disable dithering for alpha to coverage
|
||||
``nobinning``
|
||||
disable primitive binning
|
||||
``nocache``
|
||||
@@ -657,8 +596,6 @@ RADV driver environment variables
|
||||
disable memory shaders cache
|
||||
``nongg``
|
||||
disable NGG for GFX10+
|
||||
``nonggc``
|
||||
disable NGG culling on GPUs where it's enabled by default (GFX10.3+ only).
|
||||
``nooutoforder``
|
||||
disable out-of-order rasterization
|
||||
``notccompatcmask``
|
||||
@@ -670,8 +607,6 @@ RADV driver environment variables
|
||||
disable VRS for flat shading (only on GFX10.3+)
|
||||
``preoptir``
|
||||
dump LLVM IR before any optimizations
|
||||
``prologs``
|
||||
dump vertex shader prologs
|
||||
``shaders``
|
||||
dump shaders
|
||||
``shaderstats``
|
||||
@@ -704,9 +639,6 @@ RADV driver environment variables
|
||||
enable wave32 for compute shaders (GFX10+)
|
||||
``dccmsaa``
|
||||
enable DCC for MSAA images
|
||||
``force_emulate_rt``
|
||||
forces ray-tracing to be emulated in software,
|
||||
even if there is hardware support.
|
||||
``gewave32``
|
||||
enable wave32 for vertex/tess/geometry shaders (GFX10+)
|
||||
``localbos``
|
||||
@@ -716,7 +648,7 @@ RADV driver environment variables
|
||||
``pswave32``
|
||||
enable wave32 for pixel shaders (GFX10+)
|
||||
``nggc``
|
||||
enable NGG culling on GPUs where it's not enabled by default (GFX10.1 only).
|
||||
enable NGG culling on GFX10+ GPUs.
|
||||
``rt``
|
||||
enable rt extensions whose implementation is still experimental.
|
||||
``sam``
|
||||
@@ -758,6 +690,8 @@ radeonsi driver environment variables
|
||||
Disable DCC.
|
||||
``nodccclear``
|
||||
Disable DCC fast clear.
|
||||
``nodccfb``
|
||||
Disable separate DCC on the main framebuffer
|
||||
``nodccmsaa``
|
||||
Disable DCC for MSAA
|
||||
``nodpbb``
|
||||
@@ -834,6 +768,12 @@ radeonsi driver environment variables
|
||||
Always use NGG culling even when it can hurt.
|
||||
``nonggc``
|
||||
Disable NGG culling.
|
||||
``alwayspd``
|
||||
Always enable the primitive discard compute shader.
|
||||
``pd``
|
||||
Enable the primitive discard compute shader for large draw calls.
|
||||
``nopd``
|
||||
Disable the primitive discard compute shader.
|
||||
``switch_on_eop``
|
||||
Program WD/IA to switch on end-of-packet.
|
||||
``nooutoforder``
|
||||
|
@@ -41,7 +41,7 @@ GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
||||
glBindFragDataLocation, glGetFragDataLocation DONE
|
||||
GL_NV_conditional_render (Conditional rendering) DONE ()
|
||||
GL_ARB_map_buffer_range (Map buffer subranges) DONE (v3d, vc4, lima)
|
||||
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d, lima)
|
||||
GL_ARB_color_buffer_float (Clamping controls) DONE (v3d)
|
||||
GL_ARB_texture_float (Float textures, renderbuffers) DONE (v3d)
|
||||
GL_EXT_packed_float DONE (v3d)
|
||||
GL_EXT_texture_shared_exponent DONE (v3d)
|
||||
@@ -74,7 +74,7 @@ GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
||||
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)
|
||||
GL_NV_primitive_restart (Primitive restart) DONE ()
|
||||
16 vertex texture image units DONE ()
|
||||
GL_ARB_texture_buffer_object (Texture buffer objs) DONE ()
|
||||
GL_ARB_texture_rectangle (Rectangular textures) DONE (v3d, vc4, lima)
|
||||
@@ -206,14 +206,14 @@ 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, swr, virgl, v3d, panfrost)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, softpipe, swr, virgl, 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, swr, virgl, lima)
|
||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, softpipe, swr, virgl)
|
||||
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)
|
||||
@@ -235,10 +235,12 @@ GL 4.6, GLSL 4.60 -- all DONE: radeonsi, zink
|
||||
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)
|
||||
GL_ARB_texture_filter_anisotropic DONE (etnaviv/HALTI0, freedreno, i965, nv50, nvc0, r600, softpipe (*), llvmpipe (*), d3d12, virgl)
|
||||
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
|
||||
GL_KHR_no_error DONE (all drivers)
|
||||
|
||||
(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
|
||||
|
||||
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
|
||||
|
||||
@@ -268,45 +270,45 @@ GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl, v3d, s
|
||||
glGetBooleani_v - restrict to GLES enums
|
||||
gl_HelperInvocation support DONE (i965, r600, panfrost)
|
||||
|
||||
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe, zink
|
||||
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl, llvmpipe
|
||||
|
||||
GL_EXT_color_buffer_float DONE (all drivers)
|
||||
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, swr, lima)
|
||||
GL_KHR_robustness DONE (freedreno, i965, nvc0, r600, zink)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+, r600, v3d, vc4, panfrost, softpipe, swr, zink, 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_geometry_shader DONE (freedreno/a6xx, i965/hsw+, nvc0, r600, softpipe, v3d, zink)
|
||||
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)
|
||||
GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600, panfrost/bifrost)
|
||||
GL_OES_primitive_bounding_box DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, softpipe, v3d, zink)
|
||||
GL_OES_sample_shading DONE (freedreno/a6xx, i965, nvc0, r600, zink, panfrost, zink)
|
||||
GL_OES_sample_variables DONE (freedreno/a6xx, i965, nvc0, r600, zink, panfrost/bifrost, zink)
|
||||
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)
|
||||
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, i965, nvc0, r600)
|
||||
GL_OES_shader_multisample_interpolation DONE (freedreno/a6xx, i965, nvc0, r600, zink)
|
||||
GL_OES_tessellation_shader DONE (freedreno/a6xx, all drivers that support GL_ARB_tessellation_shader)
|
||||
GL_OES_texture_border_clamp DONE (all drivers)
|
||||
GL_OES_texture_buffer DONE (freedreno, i965, nvc0, r600, softpipe, panfrost)
|
||||
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe)
|
||||
GL_OES_texture_buffer DONE (freedreno, i965, nvc0, r600, softpipe, panfrost, zink)
|
||||
GL_OES_texture_cube_map_array DONE (freedreno/a4xx+, i965/hsw+, nvc0, r600, softpipe, zink)
|
||||
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
|
||||
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
|
||||
Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES version:
|
||||
|
||||
GL_ARB_bindless_texture DONE (nvc0, radeonsi, zink)
|
||||
GL_ARB_bindless_texture DONE (nvc0, radeonsi)
|
||||
GL_ARB_cl_event not started
|
||||
GL_ARB_compute_variable_group_size DONE (i965/gen7+, nvc0, radeonsi, zink)
|
||||
GL_ARB_ES3_2_compatibility DONE (i965/gen8+, radeonsi, virgl, zink)
|
||||
GL_ARB_fragment_shader_interlock DONE (i965, zink)
|
||||
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe, zink)
|
||||
GL_ARB_parallel_shader_compile DONE (freedreno, iris, radeonsi)
|
||||
GL_ARB_parallel_shader_compile DONE (all drivers)
|
||||
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, swr, virgl)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi, zink)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
||||
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, swr, virgl, panfrost, zink)
|
||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi, zink)
|
||||
@@ -316,12 +318,12 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
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_color_buffer_half_float DONE (gallium drivers supporting required formats)
|
||||
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 DONE (radeonsi, i965/gen7+)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi, i965/gen7+)
|
||||
GL_EXT_memory_object_win32 not started
|
||||
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost, zink)
|
||||
GL_EXT_multisampled_render_to_texture DONE (freedreno/a6xx, panfrost)
|
||||
GL_EXT_render_snorm DONE (i965, r600, radeonsi, softpipe, zink)
|
||||
GL_EXT_semaphore DONE (radeonsi, i965/gen7+)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi, i965/gen7+)
|
||||
@@ -436,7 +438,7 @@ Vulkan 1.1 -- all DONE: anv, lvp, radv, tu, vn
|
||||
VK_KHR_maintenance1 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_maintenance2 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_maintenance3 DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_multiview DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_multiview DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_relaxed_block_layout DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_sampler_ycbcr_conversion DONE (anv, radv, tu, vn)
|
||||
VK_KHR_shader_draw_parameters DONE (anv, lvp, radv, tu, vn)
|
||||
@@ -448,20 +450,20 @@ Vulkan 1.2 -- all DONE: anv, 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_depth_stencil_resolve DONE (anv, radv, tu, vn)
|
||||
VK_KHR_draw_indirect_count DONE (anv, lvp, radv, tu, 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, vn)
|
||||
VK_KHR_imageless_framebuffer DONE (anv, lvp, radv, 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)
|
||||
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)
|
||||
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, lvp, radv, tu, vn)
|
||||
VK_KHR_spirv_1_4 DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_timeline_semaphore DONE (anv, lvp, radv, tu, vn)
|
||||
VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv, tu, vn)
|
||||
VK_KHR_shader_float_controls DONE (anv/gen8+, radv, tu, vn)
|
||||
VK_KHR_shader_subgroup_extended_types DONE (anv/gen8+, radv, vn)
|
||||
VK_KHR_spirv_1_4 DONE (anv, radv, tu, vn)
|
||||
VK_KHR_timeline_semaphore DONE (anv, radv, tu, vn)
|
||||
VK_KHR_uniform_buffer_standard_layout DONE (anv, lvp, radv, 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, vn)
|
||||
@@ -477,29 +479,28 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_deferred_host_operations DONE (anv, radv)
|
||||
VK_KHR_display DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_KHR_display_swapchain not started
|
||||
VK_KHR_external_fence_fd DONE (anv, radv, tu, v3dv, vn)
|
||||
VK_KHR_external_fence_fd DONE (anv, radv, tu, v3dv)
|
||||
VK_KHR_external_fence_win32 not started
|
||||
VK_KHR_external_memory_fd DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_external_memory_fd DONE (anv, radv, tu, v3dv)
|
||||
VK_KHR_external_memory_win32 not started
|
||||
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv, vn)
|
||||
VK_KHR_external_semaphore_fd DONE (anv, radv, tu, v3dv)
|
||||
VK_KHR_external_semaphore_win32 not started
|
||||
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_incremental_present DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_KHR_performance_query DONE (anv/gen8+, tu)
|
||||
VK_KHR_pipeline_executable_properties DONE (anv, radv, tu)
|
||||
VK_KHR_push_descriptor DONE (anv, lvp, radv, tu)
|
||||
VK_KHR_shader_clock DONE (anv, radv)
|
||||
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, vn)
|
||||
VK_KHR_surface_protected_capabilities DONE (anv, lvp, radv, vn)
|
||||
VK_KHR_swapchain DONE (anv, lvp, radv, tu, v3dv)
|
||||
VK_KHR_swapchain_mutable_format DONE (anv, radv)
|
||||
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
|
||||
@@ -507,44 +508,43 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_xcb_surface DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_xlib_surface DONE (anv, lvp, radv, tu, v3dv, vn)
|
||||
VK_KHR_zero_initialize_workgroup_memory DONE (anv, radv)
|
||||
VK_EXT_4444_formats DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_4444_formats DONE (anv, radv, tu)
|
||||
VK_EXT_calibrated_timestamps DONE (anv, lvp, radv)
|
||||
VK_EXT_color_write_enable DONE (anv, lvp, v3dv)
|
||||
VK_EXT_color_write_enable DONE (anv)
|
||||
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)
|
||||
VK_EXT_custom_border_color DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_debug_marker DONE (radv)
|
||||
VK_EXT_depth_clip_enable DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_depth_clip_enable DONE (anv, radv, tu)
|
||||
VK_EXT_depth_range_unrestricted DONE (radv)
|
||||
VK_EXT_discard_rectangles DONE (radv)
|
||||
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_external_memory_dma_buf DONE (anv, radv, tu, v3dv)
|
||||
VK_EXT_external_memory_host DONE (anv, 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_image_drm_format_modifier DONE (anv, radv/gfx9+, tu, vn)
|
||||
VK_EXT_image_drm_format_modifier DONE (anv, radv/gfx9+, tu)
|
||||
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_line_rasterization DONE (anv, lvp, radv)
|
||||
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_pipeline_creation_cache_control DONE (anv, radv, v3dv)
|
||||
VK_EXT_pipeline_creation_feedback DONE (anv, radv, v3dv)
|
||||
VK_EXT_physical_device_drm DONE (anv, radv)
|
||||
VK_EXT_pipeline_creation_cache_control DONE (anv, radv)
|
||||
VK_EXT_pipeline_creation_feedback DONE (anv, radv)
|
||||
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_provoking_vertex DONE (anv, lvp, radv, tu)
|
||||
VK_EXT_queue_family_foreign DONE (anv, radv)
|
||||
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)
|
||||
@@ -553,18 +553,17 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
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)
|
||||
VK_EXT_vertex_attribute_divisor DONE (anv, radv, lvp, tu)
|
||||
VK_EXT_vertex_input_dynamic_state DONE (lvp)
|
||||
VK_EXT_ycbcr_image_arrays DONE (anv, radv)
|
||||
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv, vn)
|
||||
VK_ANDROID_native_buffer DONE (anv, radv, vn)
|
||||
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, radv)
|
||||
VK_ANDROID_native_buffer DONE (anv, radv)
|
||||
VK_GOOGLE_decorate_string DONE (anv, lvp, radv)
|
||||
VK_GOOGLE_hlsl_functionality1 DONE (anv, lvp, radv)
|
||||
VK_GOOGLE_user_type DONE (anv, radv)
|
||||
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 (radv, tu)
|
||||
|
||||
|
||||
OpenCL 1.0 -- all DONE:
|
||||
|
@@ -118,8 +118,6 @@ objects. They all follow simple, one-method binding calls, e.g.
|
||||
levels. This corresponds to GL's ``PATCH_DEFAULT_OUTER_LEVEL``.
|
||||
* ``default_inner_level`` is the default value for the inner tessellation
|
||||
levels. This corresponds to GL's ``PATCH_DEFAULT_INNER_LEVEL``.
|
||||
* ``set_patch_vertices`` sets the number of vertices per input patch
|
||||
for tessellation.
|
||||
|
||||
* ``set_debug_callback`` sets the callback to be used for reporting
|
||||
various debug messages, eventually reported via KHR_debug and
|
||||
|
@@ -326,15 +326,10 @@ clip_halfz
|
||||
When true clip space in the z axis goes from [0..1] (D3D). When false
|
||||
[-1, 1] (GL)
|
||||
|
||||
depth_clip_near
|
||||
When false, the near depth clipping plane of the view volume is disabled.
|
||||
depth_clip_far
|
||||
When false, the far depth clipping plane of the view volume is disabled.
|
||||
depth_clamp
|
||||
Whether the depth value will be clamped to the interval defined by the
|
||||
near and far depth range at the per-pixel level, after polygon offset has
|
||||
been applied and before depth testing. Note that a clamp to [0,1] according
|
||||
to GL rules should always happen even if this is disabled.
|
||||
depth_clip
|
||||
When false, the near and far depth clipping planes of the view volume are
|
||||
disabled and the depth value will be clamped at the per-pixel level, after
|
||||
polygon offset has been applied and before depth testing.
|
||||
|
||||
clip_plane_enable
|
||||
For each k in [0, PIPE_MAX_CLIP_PLANES), if bit k of this field is set,
|
||||
|
@@ -80,9 +80,6 @@ The integer capabilities:
|
||||
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
|
||||
equal.
|
||||
``PIPE_CAP_DEPTH_CLAMP_ENABLE``: Whether the driver is capable of
|
||||
enabling depth clamping (through pipe_rasterizer_state) separately from depth
|
||||
clipping. If not, depth_clamp will be the inverse of depth_clip_far.
|
||||
* ``PIPE_CAP_SHADER_STENCIL_EXPORT``: Whether a stencil reference value can be
|
||||
written from a fragment shader.
|
||||
* ``PIPE_CAP_TGSI_INSTANCEID``: Whether TGSI_SEMANTIC_INSTANCEID is supported
|
||||
@@ -621,8 +618,6 @@ The integer capabilities:
|
||||
* ``PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART``: Driver requests all draws using a non-fixed restart index to be rewritten to use a fixed restart index.
|
||||
* ``PIPE_CAP_SUPPORTED_PRIM_MODES``: A bitmask of the ``pipe_prim_type`` enum values that the driver can natively support.
|
||||
* ``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_capf:
|
||||
|
||||
|
@@ -3561,6 +3561,11 @@ interpolation should be done at, one of ``TGSI_INTERPOLATE_LOC_*``. Note that
|
||||
when per-sample shading is enabled, the implementation may choose to
|
||||
interpolate at the sample irrespective of the Location field.
|
||||
|
||||
The CylindricalWrap bitfield specifies which register components
|
||||
should be subject to cylindrical wrapping when interpolating by the
|
||||
rasteriser. If TGSI_CYLINDRICAL_WRAP_X is set to 1, the X component
|
||||
should be interpolated according to cylindrical wrapping rules.
|
||||
|
||||
|
||||
Declaration Sampler View
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@@ -246,36 +246,6 @@ ISL, we represent a W-tile as a tiling with a logical dimension of 64el x 64el
|
||||
but a physical size of 128B x 32rows. This cleanly takes care of the pitch
|
||||
issue above and seems to nicely model the hardware.
|
||||
|
||||
Tile4
|
||||
-----
|
||||
|
||||
The tile4 format, introduced on Xe-HP, is somewhat similar to Y but with more
|
||||
internal shuffling. Each tile4 tile is an 8x8 grid of cache lines arranged
|
||||
as follows:
|
||||
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
0x000 0x040 0x080 0x0a0 0x200 0x240 0x280 0x2a0
|
||||
0x100 0x140 0x180 0x1a0 0x300 0x340 0x380 0x3a0
|
||||
0x400 0x440 0x480 0x4a0 0x600 0x640 0x680 0x6a0
|
||||
0x500 0x540 0x580 0x5a0 0x700 0x740 0x780 0x7a0
|
||||
0x800 0x840 0x880 0x8a0 0xa00 0xa40 0xa80 0xaa0
|
||||
0x900 0x940 0x980 0x9a0 0xb00 0xb40 0xb80 0xba0
|
||||
0xc00 0xc40 0xc80 0xca0 0xe00 0xe40 0xe80 0xea0
|
||||
0xd00 0xd40 0xd80 0xda0 0xf00 0xf40 0xf80 0xfa0
|
||||
===== ===== ===== ===== ===== ===== ===== =====
|
||||
|
||||
Each 64B cache line within the tile is laid out the same way as for a Y-tile,
|
||||
as 4 rows of 16B each:
|
||||
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
|
||||
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
|
||||
0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f
|
||||
0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f
|
||||
==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ==== ====
|
||||
|
||||
Tiling as a bit pattern
|
||||
-----------------------
|
||||
|
||||
@@ -311,7 +281,6 @@ the tile are given by the table below:
|
||||
:cpp:enumerator:`isl_tiling::ISL_TILING_X` :math:`v_2` :math:`v_1` :math:`v_0` :math:`u_8` :math:`u_7` :math:`u_6` :math:`u_5` :math:`u_4` :math:`u_3` :math:`u_2` :math:`u_1` :math:`u_0`
|
||||
:cpp:enumerator:`isl_tiling::ISL_TILING_Y0` :math:`u_6` :math:`u_5` :math:`u_4` :math:`v_4` :math:`v_3` :math:`v_2` :math:`v_1` :math:`v_0` :math:`u_3` :math:`u_2` :math:`u_1` :math:`u_0`
|
||||
:cpp:enumerator:`isl_tiling::ISL_TILING_W` :math:`u_5` :math:`u_4` :math:`u_3` :math:`v_5` :math:`v_4` :math:`v_3` :math:`v_2` :math:`u_2` :math:`v_1` :math:`u_1` :math:`v_0` :math:`u_0`
|
||||
:cpp:enumerator:`isl_tiling::ISL_TILING_4` :math:`v_4` :math:`v_3` :math:`u_6` :math:`v_2` :math:`u_5` :math:`u_4` :math:`v_1` :math:`v_0` :math:`u_3` :math:`u_2` :math:`u_1` :math:`u_0`
|
||||
=========================================== =========== =========== =========== =========== =========== =========== =========== =========== =========== =========== =========== ===========
|
||||
|
||||
Constructing the mapping this way makes a lot of sense when you think about
|
||||
|
@@ -11,4 +11,3 @@ stack.
|
||||
:maxdepth: 2
|
||||
|
||||
alu
|
||||
tex
|
||||
|
@@ -1,67 +0,0 @@
|
||||
NIR Texture Instructions
|
||||
========================
|
||||
|
||||
Even though texture instructions *could* be supported as intrinsics, the vast
|
||||
number of combinations mean that doing so is practically impossible. Instead,
|
||||
NIR has a dedicated texture instruction. There are several texture operations:
|
||||
|
||||
.. doxygenenum:: nir_texop
|
||||
|
||||
As with other instruction types, there is still an array of sources, except
|
||||
that each source also has a *type* associated with it. There are various
|
||||
source types, each corresponding to a piece of information that the different
|
||||
texture operations require.
|
||||
|
||||
.. doxygenenum:: nir_tex_src_type
|
||||
|
||||
Of particular interest are the texture/sampler deref/index/handle source types.
|
||||
First, note that textures and samplers are specified separately in NIR. While
|
||||
not required for OpenGL, this is required for Vulkan and OpenCL. Some
|
||||
OpenGL [ES] drivers have to deal with hardware that does not have separate
|
||||
samplers and textures. While not recommended, an OpenGL-only driver may assume
|
||||
that the texture and sampler derefs will always point to the same resource, if
|
||||
needed. Note that this pretty well paints your compiler into a corner and
|
||||
makes any future port to Vulkan or OpenCL harder, so such assumptions should
|
||||
really only be made if targeting OpenGL ES 2.0 era hardware.
|
||||
|
||||
Also, like a lot of other resources, there are multiple ways to represent a
|
||||
texture in NIR. It can be referenced by a variable dereference, an index, or a
|
||||
bindless handle. When using an index or a bindless handle, the texture type
|
||||
information is generally not available. To handle this, various information
|
||||
from the type is redundantly stored in the :cpp:struct:`nir_tex_instr` itself.
|
||||
|
||||
.. doxygenstruct:: nir_tex_instr
|
||||
:members:
|
||||
|
||||
.. doxygenstruct:: nir_tex_src
|
||||
:members:
|
||||
|
||||
Texture instruction helpers
|
||||
---------------------------
|
||||
|
||||
There are a number of helper functions for working with NIR texture
|
||||
instructions. They are documented here in no particular order.
|
||||
|
||||
.. doxygenfunction:: nir_tex_instr_create
|
||||
.. doxygenfunction:: nir_tex_instr_need_sampler
|
||||
.. doxygenfunction:: nir_tex_instr_result_size
|
||||
.. doxygenfunction:: nir_tex_instr_dest_size
|
||||
.. doxygenfunction:: nir_tex_instr_is_query
|
||||
.. doxygenfunction:: nir_tex_instr_has_implicit_derivative
|
||||
.. doxygenfunction:: nir_tex_instr_src_type
|
||||
.. doxygenfunction:: nir_tex_instr_src_size
|
||||
.. doxygenfunction:: nir_tex_instr_src_index
|
||||
.. doxygenfunction:: nir_tex_instr_add_src
|
||||
.. doxygenfunction:: nir_tex_instr_remove_src
|
||||
|
||||
Texture instruction lowering
|
||||
----------------------------
|
||||
|
||||
Because most hardware only supports some subset of all possible GLSL/SPIR-V
|
||||
texture operations, NIR provides a quite powerful lowering pass which is able
|
||||
to implement more complex texture operations in terms of simpler ones.
|
||||
|
||||
.. doxygenfunction:: nir_lower_tex
|
||||
.. doxygenstruct:: nir_lower_tex_options
|
||||
:members:
|
||||
.. doxygenenum:: nir_lower_tex_packing
|
@@ -31,17 +31,8 @@ The exact supported features vary per driver:
|
||||
* - Driver
|
||||
- PPS Counters
|
||||
- Render Stages
|
||||
* - Freedreno
|
||||
- ``gpu.counters.msm``
|
||||
- ``gpu.renderstages.msm``
|
||||
* - Turnip
|
||||
- ``gpu.counters.msm``
|
||||
-
|
||||
* - Intel
|
||||
- ``gpu.counters.i915``
|
||||
-
|
||||
* - Panfrost
|
||||
- ``gpu.counters.panfrost``
|
||||
- gpu.counters.panfrost
|
||||
-
|
||||
|
||||
Run
|
||||
@@ -85,35 +76,6 @@ Driver Specifics
|
||||
|
||||
Below is driver specific information/instructions for the PPS producer.
|
||||
|
||||
Freedreno / Turnip
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The Freedreno PPS driver needs root access to read system-wide
|
||||
performance counters, so you can simply run it with sudo:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo ./build/src/tool/pps/pps-producer
|
||||
|
||||
Intel
|
||||
^^^^^
|
||||
|
||||
The Intel PPS driver needs root access to read system-wide
|
||||
`RenderBasic <https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/reference/gpu-metrics-reference.html>`__
|
||||
performance counters, so you can simply run it with sudo:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo ./build/src/tool/pps/pps-producer
|
||||
|
||||
Another option to enable access wide data without root permissions would be running the following:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo sysctl dev.i915.perf_stream_paranoid=0
|
||||
|
||||
Alternatively using the ``CAP_PERFMON`` permission on the binary should work too.
|
||||
|
||||
Panfrost
|
||||
^^^^^^^^
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
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,
|
||||
21.0,2021-05-05,21.0.4,Dylan Baker,This is the last planned release of the 21.0.x series.
|
||||
21.1,2021-07-14,21.1.5,Eric Engestrom,
|
||||
21.1,2021-07-28,21.1.6,Eric Engestrom,
|
||||
21.1,2021-08-11,21.1.7,Eric Engestrom,
|
||||
21.1,2021-08-25,21.1.8,Eric Engestrom,
|
||||
21.2,2021-07-14,21.2.0-rc1,Dylan Baker
|
||||
,2021-07-21,21.2.0-rc2,Dylan Baker
|
||||
,2021-07-28,21.2.0-rc3,Dylan Baker
|
||||
,2021-08-04,21.2.0-rc4,Dylan Baker,Or 21.2.0 final.
|
||||
|
|
@@ -3,13 +3,6 @@ Release Notes
|
||||
|
||||
The release notes summarize what's new or changed in each Mesa release.
|
||||
|
||||
- :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>`
|
||||
- :doc:`21.1.7 release notes <relnotes/21.1.7>`
|
||||
- :doc:`21.2.0 release notes <relnotes/21.2.0>`
|
||||
- :doc:`21.1.6 release notes <relnotes/21.1.6>`
|
||||
- :doc:`21.1.5 release notes <relnotes/21.1.5>`
|
||||
- :doc:`21.1.4 release notes <relnotes/21.1.4>`
|
||||
- :doc:`21.1.3 release notes <relnotes/21.1.3>`
|
||||
- :doc:`21.1.2 release notes <relnotes/21.1.2>`
|
||||
@@ -345,13 +338,6 @@ release notes, or in the `old docs`_.
|
||||
:maxdepth: 1
|
||||
:hidden:
|
||||
|
||||
relnotes/21.2.3
|
||||
relnotes/21.2.2
|
||||
relnotes/21.1.8
|
||||
relnotes/21.1.7
|
||||
relnotes/21.2.0
|
||||
relnotes/21.1.6
|
||||
relnotes/21.1.5
|
||||
relnotes/21.1.4
|
||||
relnotes/21.1.3
|
||||
relnotes/21.1.2
|
||||
|
@@ -2,8 +2,6 @@ Mesa 21.0.3 Release Notes / 2021-04-21
|
||||
======================================
|
||||
|
||||
Mesa 21.0.3 is a bug fix release which fixes bugs found since the 21.0.2 release.
|
||||
This is the last release of the 21.0 series, please migrate to 21.1 as soon as
|
||||
possible.
|
||||
|
||||
Mesa 21.0.3 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
|
@@ -1,143 +0,0 @@
|
||||
Mesa 21.1.5 Release Notes / 2021-07-14
|
||||
======================================
|
||||
|
||||
Mesa 21.1.5 is a bug fix release which fixes bugs found since the 21.1.4 release.
|
||||
|
||||
Mesa 21.1.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.1.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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
022c7293074aeeced2278c872db4fa693147c70f8595b076cf3f1ef81520766d mesa-21.1.5.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- [build error] macros.h:88:26: error: size of unnamed array is negative
|
||||
- Game Issue: Nuclear Throne crashes in RadeonSI
|
||||
- Crash in glLinkProgram while trying to craft the link error
|
||||
- Shader compilation memory leaks
|
||||
- Wolfenstein II: The New Colossus - Screen goes black in some cases
|
||||
- SpaceEngine in Steam Proton cannot start with Mesa >=20.3
|
||||
- [bisected] KDE plasma menu text renders like stretched strangely [amdgpu]
|
||||
- Luna Sky Crashes on Launch
|
||||
- Mesa crashes on undefined texture behaviour
|
||||
- Mesa crashes on undefined texture behaviour
|
||||
- cache_test uses uninitialized stack memory
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (1):
|
||||
|
||||
- nir: Fix constant folding for irhadd/urhadd
|
||||
|
||||
Bas Nieuwenhuizen (1):
|
||||
|
||||
- ac/surface: Handle non-retiled displayable DCC correctly for modifiers.
|
||||
|
||||
Connor Abbott (1):
|
||||
|
||||
- ir3: Fix infinite loop in scheduler when splitting
|
||||
|
||||
Danylo Piliaiev (1):
|
||||
|
||||
- glsl: Prohibit implicit conversion of mem parameter in atomicOP functions
|
||||
|
||||
Dave Airlie (1):
|
||||
|
||||
- draw: fix tessellation output vertex size calculation
|
||||
|
||||
Eric Engestrom (4):
|
||||
|
||||
- .pick_status.json: Update to e4f762ac346f31fc1fd201aecdc375348be5075f
|
||||
- zink: mark a bunch of zink-piglit-quick_gl tests as flakes
|
||||
- .pick_status.json: Update to c704bb630d21e0a30500e9d8f42493ede3cc55ae
|
||||
- .pick_status.json: Mark e5d158881b3e12270521d7081b4bba0ac2108d2e as denominated
|
||||
|
||||
Heinrich Fink (1):
|
||||
|
||||
- softpipe: add missing sentinel to debug option array
|
||||
|
||||
Jason Ekstrand (1):
|
||||
|
||||
- iris: Don't leak the surface if uncompressed re-interp fails
|
||||
|
||||
Lionel Landwerlin (1):
|
||||
|
||||
- intel/perf: use the right popcount for 64bits
|
||||
|
||||
Marek Olšák (2):
|
||||
|
||||
- ac/surface/tests: fix the ARM build
|
||||
- radeonsi,radv: fix a late alloc deadlock with <= 6 CUs per SA
|
||||
|
||||
Michel Dänzer (3):
|
||||
|
||||
- Convert most remaining free-form fall-through comments to FALLTHROUGH
|
||||
- osmesa: Replace default case FALLTHROUGH annotation by following return
|
||||
- Fix up leftover "state_trackers" references to "frontends"
|
||||
|
||||
Pierre-Eric Pelloux-Prayer (4):
|
||||
|
||||
- radeonsi: fix fb_too_small condition
|
||||
- radeonsi/gfx7: always sync pfp/me
|
||||
- ac/surface: don't print stencil info if tex has no stencil
|
||||
- radeonsi/driconf: add workaround for SpaceEngine
|
||||
|
||||
Qiang Yu (1):
|
||||
|
||||
- st/mesa: fix size miss match for some check
|
||||
|
||||
Rob Clark (2):
|
||||
|
||||
- freedreno: Consolidate needs_flush and clearing last_fence
|
||||
- freedreno/a6xx: Fix framebuffer_barrier crash
|
||||
|
||||
Samuel Pitoiset (2):
|
||||
|
||||
- radv: disable DCC for DOOM 2016 and Wolfenstein II
|
||||
- aco: fix shared_atomic_comp_swap if the second source isn't a VGPR
|
||||
|
||||
Thomas H.P. Andersen (3):
|
||||
|
||||
- nir: return progress from nir_lower_packing
|
||||
- nir/ifind_msb_rev: fix input check
|
||||
- broadcom/compiler: fix add vs. mul
|
||||
|
||||
Timothy Arceri (7):
|
||||
|
||||
- util/tests: initialise key in cache_test
|
||||
- mesa: don't crash on incorrect texture use
|
||||
- i965: don't crash on incorrect texture use
|
||||
- util/driconf: add new ignore_write_to_readonly_var workaround
|
||||
- util: add some workarounds for the game Luna Sky
|
||||
- glsl: force_glsl_version to shaders with no defined version
|
||||
- util/radeonsi: add radeonsi workaround for Nuclear Throne
|
||||
|
||||
Vinson Lee (1):
|
||||
|
||||
- st/xa: Mark default xa_get_pipe_format case unreachable.
|
||||
|
||||
Yevhenii Kolesnikov (1):
|
||||
|
||||
- intel: fix leaking memory on shader creation
|
@@ -1,154 +0,0 @@
|
||||
Mesa 21.1.6 Release Notes / 2021-07-28
|
||||
======================================
|
||||
|
||||
Mesa 21.1.6 is a bug fix release which fixes bugs found since the 21.1.5 release.
|
||||
|
||||
Mesa 21.1.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.1.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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
b1cb0122f911dfa9fe1f209a7061378c61a1448a280e711511ca72dad9999e37 mesa-21.1.6.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- [RADV] FSR in Resident Evil: Village looks very pixelated on Polaris
|
||||
- Crash in update_buffers after closing KDE "splash screen" downloader
|
||||
- Crash in update_buffers after closing KDE "splash screen" downloader
|
||||
- radeonsi: persistent, read-only buffer maps are slow to read
|
||||
- substance painter flickering with jagged texture and masks shown black
|
||||
- radv: FP16 mode in FidelityFX FSR doesn't look right
|
||||
- [RADV] Blocky corruption in Scarlet Nexus and vkd3d-proton 2.4
|
||||
- Radeon RX580 and 5700 XT: Reloading ARB assembly shaders causes very glitchy rendering
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (1):
|
||||
|
||||
- targets/graw-xlib: Add missing dep_x11
|
||||
|
||||
Chia-I Wu (2):
|
||||
|
||||
- egl/surfaceless: try kms_swrast before swrast
|
||||
- meson: allow egl_native_platform to be specified
|
||||
|
||||
Connor Abbott (1):
|
||||
|
||||
- freedreno/computerator: Fix local_size typo
|
||||
|
||||
Daniel Schürmann (1):
|
||||
|
||||
- aco/optimizer: ensure to not erase high bits when propagating packed constants
|
||||
|
||||
Daniel Stone (2):
|
||||
|
||||
- egl/wayland: Error on invalid native window
|
||||
- egl/wayland: Allow EGLSurface to outlive wl_egl_window
|
||||
|
||||
Dave Airlie (2):
|
||||
|
||||
- softpipe/aniso: move DDQ calculation to after scaling.
|
||||
- llvmpipe: add support for time elapsed queries.
|
||||
|
||||
Eric Engestrom (4):
|
||||
|
||||
- .pick_status.json: Mark a9c9a9938d6d2ead6f08ccf5256c95801fbc864f as backported
|
||||
- .pick_status.json: Update to 376fb4f55f080929df8ca5a2a975fc88a00eec06
|
||||
- .pick_status.json: Update to 1d6c790f9f6c373e667de955822b1048c7073ba3
|
||||
- .pick_status.json: Update to 73262d4bd4a4637a332264a165c62ce3209d03fb
|
||||
|
||||
Erik Faye-Lund (3):
|
||||
|
||||
- zink: remove duplicate format-mapping on little-endian
|
||||
- vulkan: do not map zero-sized region of memory
|
||||
- vulkan: allocate host-visible memory for swapchain images
|
||||
|
||||
Ian Romanick (1):
|
||||
|
||||
- nir/gcm: Clear out pass_flags before starting
|
||||
|
||||
Jason Ekstrand (2):
|
||||
|
||||
- iris: Re-emit MEDIA_VFE_STATE for variable group size shaders
|
||||
- anv: Handle errors properly in anv_i915_query
|
||||
|
||||
Jose Maria Casanova Crespo (1):
|
||||
|
||||
- v3d/driconf: Expose non-MSAA texture limits for mutter and gnome-shell
|
||||
|
||||
Joshua Ashton (1):
|
||||
|
||||
- lavapipe: Use common Vulkan format helpers
|
||||
|
||||
Juan A. Suarez Romero (1):
|
||||
|
||||
- broadcom/compiler: emit TMU flush before a jump
|
||||
|
||||
Karol Herbst (1):
|
||||
|
||||
- nv50/ir/nir: fix smem size for GL
|
||||
|
||||
Marek Olšák (2):
|
||||
|
||||
- radeonsi: don't expose no-attachment MSAA 16x on all 1 RB chips due to issues
|
||||
- st/mesa: always use PIPE_USAGE_STAGING for GL_MAP_READ_BIT usage
|
||||
|
||||
Mauro Rossi (1):
|
||||
|
||||
- egl/android: include "util/compiler.h" for FALLTHROUGH macro
|
||||
|
||||
Mike Blumenkrantz (1):
|
||||
|
||||
- util/foz: stop crashing on destroy if prepare hasn't been called
|
||||
|
||||
Olivier Fourdan (1):
|
||||
|
||||
- radeonsi: Check aux_context on si_destroy_screen()
|
||||
|
||||
Pierre-Eric Pelloux-Prayer (2):
|
||||
|
||||
- mesa: clear shader_info::is_lowered in prog_to_nir
|
||||
- mesa: fix bindless uniform samplers update
|
||||
|
||||
Rhys Perry (1):
|
||||
|
||||
- aco: don't create v_madmk_f32/v_madak_f32 from v_fma_legacy_f16
|
||||
|
||||
Rob Clark (1):
|
||||
|
||||
- freedreno/ir3: Don't force RTNE if rounding mode is undefined
|
||||
|
||||
Samuel Pitoiset (1):
|
||||
|
||||
- radv: only init the TC-compat ZRANGE metadata for the depth aspect
|
||||
|
||||
Timothy Arceri (3):
|
||||
|
||||
- glsl: replace some C++ code with C
|
||||
- util: add workaround for Full Bore
|
||||
- glsl: relax rule on varying matching for shaders older than 4.20
|
||||
|
||||
Vasily Khoruzhick (1):
|
||||
|
||||
- lima: handle fp16 vertex formats
|
@@ -1,186 +0,0 @@
|
||||
Mesa 21.1.7 Release Notes / 2021-08-11
|
||||
======================================
|
||||
|
||||
Mesa 21.1.7 is a bug fix release which fixes bugs found since the 21.1.6 release.
|
||||
|
||||
Mesa 21.1.7 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.1.7 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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
e9e67c10654f2e4bf15b944bb048007a614292aa4792b1b7512eb700b7b3a7bb mesa-21.1.7.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Miscompilation of a switch case
|
||||
- [radeonsi][regression] CPU is being used ~10 times more than usual after c5478f9067f.
|
||||
- dEQP-VK.wsi.android.swapchain.create#image_swapchain_create_info crash on Android R
|
||||
- The image is distorted while use iGPU(Intel GPU) rendering and output via dGPU (AMD GPU)
|
||||
- lima: regression in plbu scissors cmd
|
||||
- Incorrect rendering
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (3):
|
||||
|
||||
- pan/bi: Restrict swizzles on same cycle temporaries
|
||||
- nir/lower_mediump_io: Don't remap base unless needed
|
||||
- nir/lower_mediump: Fix metadata in all passes
|
||||
|
||||
Bas Nieuwenhuizen (9):
|
||||
|
||||
- util/fossilize_db: Update parsed_offset correctly.
|
||||
- util/fossilize_db: Reset file position to parsed_offset on cache_offset read failure.
|
||||
- util/fossilize_db: Flush files after header write.
|
||||
- util/fossilize_db: Be conservative about header length check for locking.
|
||||
- util/fossilize_db: Only allocate entries after full read.
|
||||
- util/fossilize_db: Use uint64_t for file size.
|
||||
- util/fossilize_db: Unlock the cache file if the entry already exists.
|
||||
- util/fossilize_db: Add extra flock mutex.
|
||||
- radv: Allocate space for inline push constants.
|
||||
|
||||
Chia-I Wu (1):
|
||||
|
||||
- vulkan/wsi/x11: do not inherit last_present_mode
|
||||
|
||||
Connor Abbott (1):
|
||||
|
||||
- ir3: Preserve gl_ViewportIndex in the binning shader
|
||||
|
||||
Dave Airlie (3):
|
||||
|
||||
- teximage: return correct desktop GL error for compressedteximage
|
||||
- intel/fs: restrict max push length on older GPUs to a smaller amount
|
||||
- virgl: disable anisotropic filtering.
|
||||
|
||||
Dylan Baker (1):
|
||||
|
||||
- freedreno/ir3: Add build id to the disassembler test
|
||||
|
||||
Eric Engestrom (9):
|
||||
|
||||
- .pick_status.json: Update to 7055282231cdad23e7b23fb49a2f953a99797f8a
|
||||
- .pick_status.json: Update to 2f06642b06c94f07f4bfe3df32b25659428c9144
|
||||
- .pick_status.json: Mark 6ccf11ac2b951963407601b5b1109b45a972e48e as denominated
|
||||
- .pick_status.json: Update to 2f06642b06c94f07f4bfe3df32b25659428c9144
|
||||
- .pick_status.json: Update to 353e6323936b812884fa677c25bdba91554881b7
|
||||
- .pick_status.json: Update to 4128acdee32eadfef1fb8c3c3ce2e512a267cdf4
|
||||
- pick-ui: drop assert that optional argument is passed
|
||||
- pick-ui: show nomination type in the UI
|
||||
- pick-ui: show commit date
|
||||
|
||||
Erico Nunes (1):
|
||||
|
||||
- lima: avoid crash with negative viewport values
|
||||
|
||||
Hoe Hao Cheng (1):
|
||||
|
||||
- zink: make codegen compatible with python 3.5
|
||||
|
||||
Jesse Natalie (1):
|
||||
|
||||
- mesa/main: Check for fbo attachments when importing EGL images to textures
|
||||
|
||||
Joshua Watt (1):
|
||||
|
||||
- v3d, vc4: Fix dmabuf import for non-scanout buffers
|
||||
|
||||
Juan A. Suarez Romero (1):
|
||||
|
||||
- gallium/hud: initialize query
|
||||
|
||||
Karol Herbst (1):
|
||||
|
||||
- nv30: fix emulated vertex index buffers
|
||||
|
||||
Lepton Wu (1):
|
||||
|
||||
- gallium: Reset {d,r}Priv in dri_unbind_context
|
||||
|
||||
Lionel Landwerlin (3):
|
||||
|
||||
- loader/dri3: create linear buffer with scanout support
|
||||
- anv: fix submission batching with perf queries
|
||||
- anv: don't try to access Android swapchains
|
||||
|
||||
Lucas Stach (2):
|
||||
|
||||
- renderonly: don't complain when GPU import fails
|
||||
- etnaviv: always try to create KMS side handles for imported resources
|
||||
|
||||
Marcin Ślusarz (1):
|
||||
|
||||
- glsl: evaluate switch expression once
|
||||
|
||||
Mike Blumenkrantz (1):
|
||||
|
||||
- zink: use array size in spirv bo length calculations
|
||||
|
||||
Philipp Zabel (1):
|
||||
|
||||
- etnaviv: fix gbm_bo_get_handle_for_plane for multiplanar images
|
||||
|
||||
Pierre Moreau (2):
|
||||
|
||||
- clover/spirv: Properly size 3-component vector args
|
||||
- clover/nir: Set constant buffer pointer size to host
|
||||
|
||||
Pierre-Eric Pelloux-Prayer (3):
|
||||
|
||||
- gallium/va: don't use key=NULL in hash tables
|
||||
- amd/registers: fix fields conflict detection
|
||||
- radeonsi: don't create an infinite number of variants
|
||||
|
||||
Rhys Perry (1):
|
||||
|
||||
- nir/algebraic: fix imod by negative power-of-two
|
||||
|
||||
Samuel Pitoiset (1):
|
||||
|
||||
- radv: fix selecting the first active CU when profiling with SQTT
|
||||
|
||||
Simon Ser (5):
|
||||
|
||||
- etnaviv: fix renderonly check in etna_resource_alloc
|
||||
- etnaviv: fail in get_handle(TYPE_KMS) without a scanout resource
|
||||
- freedreno: fail in get_handle(TYPE_KMS) without a scanout resource
|
||||
- panfrost: fail in get_handle(TYPE_KMS) without a scanout resource
|
||||
- lima: fail in get_handle(TYPE_KMS) without a scanout resource
|
||||
|
||||
Thomas H.P. Andersen (1):
|
||||
|
||||
- nine: Fix assert in tx_src_param
|
||||
|
||||
Timothy Arceri (1):
|
||||
|
||||
- intel/compiler: make sure swizzle is applied to if condition
|
||||
|
||||
Yevhenii Kolesnikov (2):
|
||||
|
||||
- glsl: Add operator for .length() method on implicitly-sized arrays
|
||||
- glsl: Properly handle .length() of an unsized array
|
||||
|
||||
Zhu Yuliang (1):
|
||||
|
||||
- gallium/vl: don't leak fd in vl_dri3_screen_create
|
@@ -1,105 +0,0 @@
|
||||
Mesa 21.1.8 Release Notes / 2021-09-08
|
||||
======================================
|
||||
|
||||
Mesa 21.1.8 is a bug fix release which fixes bugs found since the 21.1.7 release.
|
||||
|
||||
Mesa 21.1.8 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.1.8 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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
5cd32f5d089dca75300578a3d771a656eaed652090573a2655fe4e7022d56bfc mesa-21.1.8.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- llvmpipe doesn't compile a valid shader with an useless switch
|
||||
- GetFragDataLocation(prog, "gl_FragColor") generates INVALID_OPERATION, but specs don't say it should
|
||||
- Possible miscompilation of a comparison with unsigned zero
|
||||
- dEQP-VK.wsi.android.swapchain.create#image_swapchain_create_info crash on Android R
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Alyssa Rosenzweig (1):
|
||||
|
||||
- drm-shim: Support kernels with >4k pages
|
||||
|
||||
Boris Brezillon (1):
|
||||
|
||||
- panfrost: Fix pan_blitter_emit_bifrost_blend()
|
||||
|
||||
Eric Engestrom (3):
|
||||
|
||||
- .pick_status.json: Update to 8bb9e9e76fa1f062c8da9536e9ee209b2dc268f7
|
||||
- Revert "python: Explicitly add the 'L' suffix on Python 3"
|
||||
- isl: drop left-over comment
|
||||
|
||||
Erik Faye-Lund (2):
|
||||
|
||||
- gallium/nir/tgsi: fixup indentation
|
||||
- gallium/nir/tgsi: initialize file_max for inputs
|
||||
|
||||
Ilia Mirkin (1):
|
||||
|
||||
- mesa: don't return errors for gl_* GetFragData* queries
|
||||
|
||||
Jason Ekstrand (1):
|
||||
|
||||
- anv: Set CONTEXT_PARAM_RECOVERABLE to false
|
||||
|
||||
Lionel Landwerlin (1):
|
||||
|
||||
- anv/android: handle image bindings from gralloc buffers
|
||||
|
||||
Mao, Marc (1):
|
||||
|
||||
- iris: declare padding for iris_vue_prog_key
|
||||
|
||||
Marcin Ślusarz (2):
|
||||
|
||||
- nir/builder: invalidate metadata per function
|
||||
- glsl/opt_algebraic: disable invalid optimization
|
||||
|
||||
Mike Blumenkrantz (1):
|
||||
|
||||
- nir/lower_vectorize_tess_levels: set num_components for vectorized loads
|
||||
|
||||
Roman Stratiienko (1):
|
||||
|
||||
- lima: Implement lima_resource_get_param() callback
|
||||
|
||||
Simon Ser (4):
|
||||
|
||||
- etnaviv: add stride, offset and modifier to resource_get_param
|
||||
- panfrost: implement resource_get_param
|
||||
- vc4: implement resource_get_param
|
||||
- v3d: implement resource_get_param
|
||||
|
||||
Timothy Arceri (1):
|
||||
|
||||
- glsl: fix variable scope for instructions inside case statements
|
||||
|
||||
Vinson Lee (2):
|
||||
|
||||
- meson: Remove duplicate xvmc in build summary.
|
||||
- nir: Initialize evaluate_cube_face_index_amd dst.x.
|
@@ -21,7 +21,7 @@ SHA256 checksum
|
||||
|
||||
::
|
||||
|
||||
0cb3c802f4b8e7699b1602c08c29d06a4d532ab5b8f7a64676c4ca6bb8f4d426 mesa-21.2.0.tar.xz
|
||||
TBD.
|
||||
|
||||
|
||||
New features
|
||||
|
@@ -1,293 +0,0 @@
|
||||
Mesa 21.2.2 Release Notes / 2021-09-21
|
||||
======================================
|
||||
|
||||
Mesa 21.2.2 is a bug fix release which fixes bugs found since the 21.2.1 release.
|
||||
|
||||
Mesa 21.2.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.2.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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
c4aaf1bf974217ed825e1c536de6ab72a4e266d44bcf69fc4ec499039f99e5c4 mesa-21.2.2.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- RADV: consistent crash in Splitgate
|
||||
- [RADV] The game "Aliens: Fireteam Elite" start crashing after commit 2e56e2342094e8ec90afa5265b1c43503f662939
|
||||
- llvmpipe doesn't compile a shader with an inner scope in a for loop
|
||||
- llvmpipe doesn't compile the increment of a for a loop
|
||||
- Mesa 21.2.1 implementation error: unexpected state[0] in make_state_flags()
|
||||
- freedreno: regression in org.skia.skqp.SkQPRunner#gles_localmatriximagefilter
|
||||
- [Radeonsi] VA-API Encoding no longer works on AMD PITCAIRN
|
||||
- turnip: Geometry flickering in Genshin Impact after 83e9a7fbcf53b90d0de66985dbbf91986fc7b05d
|
||||
- OSMesa problem resizing
|
||||
- Memory leak: si_get_shader_binary_size is missing a call to ac_rtld_close
|
||||
- dEQP-GLES3.stress.draw.unaligned_data.random.4 segfault
|
||||
- gl_DrawID is incorrect for glMultiDrawElementsBaseVertex/glMultiDrawElementsIndirect
|
||||
- i915: GPU hang when doing FB fetch and gl_FragDepth write in one shader
|
||||
- ../mesa-9999/src/amd/compiler/aco_instruction_selection.cpp:10009:30: error: 'exchange' is not a member of 'std'
|
||||
- radv: disable DCC for displayable images with storage on navi12/14
|
||||
- RADV: Menu static/artifacts in Doom Eternal
|
||||
- Crash happens when testing GL_PIXEL_PACK_BUFFER
|
||||
- panfrost G31 - Cathedral crash- opengl 2.1 game (I guess)
|
||||
- panfrost / armv7 - crash with mesa newer than 21.0.3
|
||||
- freedreno C++14 build error
|
||||
- llvmpipe doesn't compile a valid shader with an useless switch
|
||||
- GetFragDataLocation(prog, "gl_FragColor") generates INVALID_OPERATION, but specs don't say it should
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Adrian Bunk (1):
|
||||
|
||||
- util/format: NEON is not available with the soft-float ABI
|
||||
|
||||
Alyssa Rosenzweig (24):
|
||||
|
||||
- panfrost: Handle non-dithered clear colours
|
||||
- panfrost: Disable shader-assisted indirect draws
|
||||
- pan/bi: Don't set td in blend shaders
|
||||
- pan/bi: Correct the sr_count on +ST_TILE
|
||||
- pan/bi: Extract load_sample_id to a helper
|
||||
- pan/bi: Set the sample ID for blend shader LD_TILE
|
||||
- pan/bi: Use CLPER_V6 on Mali G31
|
||||
- panfrost: Remove unneeded quirks from T760
|
||||
- panfrost: Use blendable check for tib read check
|
||||
- pan/mdg: Insert moves before writeout when needed
|
||||
- panfrost: Zero initialize blend_shaders
|
||||
- panfrost: Fix NULL dereference in allowlist code
|
||||
- panfrost: Protect the variants array with a lock
|
||||
- panfrost: Don't use ralloc for resources
|
||||
- panfrost: Move bo->label assignment into the lock
|
||||
- panfrost: Switch resources from an array to a set
|
||||
- panfrost: Cache number of users of a resource
|
||||
- panfrost: Maintain a bitmap of active batches
|
||||
- panfrost: Add foreach_batch iterator
|
||||
- panfrost: Prefer batch->resources to rsrc->users
|
||||
- panfrost: Remove rsrc->track.users
|
||||
- panfrost: Remove writer = NULL assignments
|
||||
- panfrost: Replace writers pointer with hash table
|
||||
- panfrost: Raise maximum texture size
|
||||
|
||||
Bas Nieuwenhuizen (2):
|
||||
|
||||
- util/fossilize_db: Don't corrupt keys during entry read.
|
||||
- nir: Avoid visiting instructions multiple times in nir_instr_free_and_dce.
|
||||
|
||||
Boris Brezillon (2):
|
||||
|
||||
- panfrost: Add explicit padding to pan_blend_shader_key
|
||||
- panfrost: v7 does not support RGB32_UNORM textures
|
||||
|
||||
Connor Abbott (4):
|
||||
|
||||
- ir3/ra: Fix available bitset for live-through collect srcs
|
||||
- ir3/ra: Handle huge merge sets
|
||||
- ir3/lower_pcopy: Use right flags for src const/immed
|
||||
- ir3/lower_pcopy: Set entry->done in the swap loop
|
||||
|
||||
Corentin Noël (1):
|
||||
|
||||
- glx: Prevent crashes when an extension isn't found
|
||||
|
||||
Daniel Schürmann (1):
|
||||
|
||||
- aco: fix p_insert lowering with 16bit sources
|
||||
|
||||
Danylo Piliaiev (1):
|
||||
|
||||
- turnip: re-emit vertex params after they are invalidated
|
||||
|
||||
Dave Airlie (5):
|
||||
|
||||
- vulkan/wsi/sw: wait for image fence before submitting to queue
|
||||
- crocus: copy views before adjusting
|
||||
- crocus: add missing line smooth bits.
|
||||
- crocus: add missing fs dirty on reduced prim change.
|
||||
- crocus/gen7: add missing IVB/GT2 geom shader workaround.
|
||||
|
||||
Dylan Baker (11):
|
||||
|
||||
- docs: add SHA256 sum for mesa 21.2.1
|
||||
- .pick_status.json: Update to 35c3f5f08b7b11f3896412fb5778f127be329615
|
||||
- .pick_status.json: Update to 8e5e70bb3de7f75ab1b039e2cec2975ba59e4af7
|
||||
- .pick_status.json: Update to 572ed2249465acd4c5f8a229d504a48cbddf95a5
|
||||
- .pick_status.json: Update to 71e748ad2443c373bb090fa1da2626da367b1d20
|
||||
- .pick_status.json: Update to 9bc61108d73db4e614dda2a27750ff80165eedbb
|
||||
- .pick_status.json: Update to a6a89aaa2f2943532d99d9bc7b80106a1740f237
|
||||
- .pick_status.json: Update to f4b61e90617f19ca1b8a3cfe046bac5801081057
|
||||
- .pick_status.json: Update to 076c8f041a63c74c31d9f541684860628a8b9979
|
||||
- .pick_status.json: Update to b58d6eaf1174aab296c4230e3895c65cba4bd9e3
|
||||
- .pick_status.json: Update to 7244aa19806cec5265e1e219cac1a99b0d3c62c6
|
||||
|
||||
Ed Martin (1):
|
||||
|
||||
- winsys/radeonsi: Set vce_encode = true when VCE found
|
||||
|
||||
Emma Anholt (2):
|
||||
|
||||
- llvmpipe: Free CS shader images on context destroy.
|
||||
- llvmpipe: Fix leak of CS local memory with 0 threads.
|
||||
|
||||
Erik Faye-Lund (4):
|
||||
|
||||
- gallivm: fix texture-mapping with 16-bit result
|
||||
- gallium/nir/tgsi: fixup indentation
|
||||
- gallium/nir/tgsi: initialize file_max for inputs
|
||||
- lavapipe: fix reported subpixel precision for lines
|
||||
|
||||
Filip Gawin (2):
|
||||
|
||||
- nir: fix shadowed variable in nir_lower_bit_size.c
|
||||
- nir: fix ifind_msb_rev by using appropriate type
|
||||
|
||||
Ian Romanick (3):
|
||||
|
||||
- util: Add and use functions to calculate min and max int for a size
|
||||
- nir/lower_bit_size: Support add_sat and sub_sat
|
||||
- nir/lower_gs_intrinsics: Return progress if append_set_vertex_and_primitive_count makes progress
|
||||
|
||||
Icecream95 (1):
|
||||
|
||||
- pan/bi: Extend bi_add_nop_for_atest for tilebuffer loads
|
||||
|
||||
Ilia Mirkin (3):
|
||||
|
||||
- mesa: don't return errors for gl_* GetFragData* queries
|
||||
- glsl: fix explicit-location ifc matching in presence of array types
|
||||
- freedreno: use OUT_WFI for emit_marker
|
||||
|
||||
Jason Ekstrand (1):
|
||||
|
||||
- anv: Set CONTEXT_PARAM_RECOVERABLE to false
|
||||
|
||||
Jordan Justen (1):
|
||||
|
||||
- intel/isl: Enable MOCS 61 for external surfaces on TGL
|
||||
|
||||
Juan A. Suarez Romero (1):
|
||||
|
||||
- broadcom/compiler: force a last thrsw for spilling
|
||||
|
||||
Lionel Landwerlin (2):
|
||||
|
||||
- nir: prevent peephole from generating invalid NIR
|
||||
- intel/fs: fix framebuffer reads
|
||||
|
||||
Mao, Marc (1):
|
||||
|
||||
- iris: declare padding for iris_vue_prog_key
|
||||
|
||||
Marcin Ślusarz (2):
|
||||
|
||||
- glsl: propagate errors from \*=, /=, +=, -= operators
|
||||
- glsl: break out early if compound assignment's operand errored out
|
||||
|
||||
Marek Olšák (6):
|
||||
|
||||
- mesa: remove unused indices parameter from validate functions
|
||||
- mesa: fix gl_DrawID with indirect multi draws using user indirect buffer
|
||||
- mesa: skip draw calls with unaligned indices
|
||||
- radeonsi: fix a memory leak in si_get_shader_binary_size
|
||||
- radeonsi: disable DCC stores on Navi12-14 for displayable DCC to fix corruption
|
||||
- radeonsi: strengthen the VGT_FLUSH condition in begin_new_gfx_cs
|
||||
|
||||
Mike Blumenkrantz (8):
|
||||
|
||||
- nir/lower_vectorize_tess_levels: set num_components for vectorized loads
|
||||
- zink: fix pipeline caching
|
||||
- radv: use pool stride when copying single query results
|
||||
- zink: free local shader nirs on program free
|
||||
- zink: destroy shader modules on program free to avoid leaking
|
||||
- tgsi_to_nir: force int type for LAYER output
|
||||
- util/primconvert: force restart rewrites if original primtype wasn't supported
|
||||
- zink: fix ZINK_MAX_DESCRIPTORS_PER_TYPE to stop exploding the stack
|
||||
|
||||
Nanley Chery (1):
|
||||
|
||||
- intel/blorp: Fix Gfx7 stencil surface state valign
|
||||
|
||||
Neha Bhende (1):
|
||||
|
||||
- svga/drm: use pb_usage_flags instead of pipe_map_flags in vmw_svga_winsys_buffer_map
|
||||
|
||||
Quantum (1):
|
||||
|
||||
- main: allow all external textures for BindImageTexture
|
||||
|
||||
Rhys Perry (4):
|
||||
|
||||
- aco: include utility in isel
|
||||
- aco: don't constant propagate to DPP instructions
|
||||
- aco/spill: add temporary operands of exec phis to next_use_distances_end
|
||||
- nir: fix serialization of loop/if control
|
||||
|
||||
Samuel Pitoiset (5):
|
||||
|
||||
- radv: fix fast clearing depth images with mips on GFX10+
|
||||
- radv: fix copying depth+stencil images on compute
|
||||
- radv: disable DCC image stores on Navi12-14 for displayable DCC corruption
|
||||
- radv: fix determining the maximum number of waves that can use scratch
|
||||
- radv/llvm: fix using Wave32
|
||||
|
||||
Simon Ser (4):
|
||||
|
||||
- etnaviv: add stride, offset and modifier to resource_get_param
|
||||
- panfrost: implement resource_get_param
|
||||
- vc4: implement resource_get_param
|
||||
- v3d: implement resource_get_param
|
||||
|
||||
Timothy Arceri (6):
|
||||
|
||||
- glsl: fix variable scope for instructions inside case statements
|
||||
- nir: move nir_block_ends_in_break() to nir.h
|
||||
- mesa: fix mesa_problem() call in _mesa_program_state_flags()
|
||||
- glsl: fix variable scope for loop-expression
|
||||
- glsl: handle scope correctly when inlining loop expression
|
||||
- glsl: fix variable scope for do-while loops
|
||||
|
||||
Timur Kristóf (7):
|
||||
|
||||
- aco: Fix to_uniform_bool_instr when operands are not suitable.
|
||||
- aco: Emit zero for the derivatives of uniforms.
|
||||
- aco: Unset 16 and 24-bit flags from operands in apply_extract.
|
||||
- nir: Fix local_invocation_index upper bound for non-compute-like stages.
|
||||
- aco: Fix invalid usage of std::fill with std::array.
|
||||
- aco: Use Builder reference in emit_copies_block.
|
||||
- aco: Skip code paths to emit copies when there are no copies.
|
||||
|
||||
Vinson Lee (1):
|
||||
|
||||
- freedreno: Require C++17.
|
||||
|
||||
Yevhenii Kharchenko (1):
|
||||
|
||||
- iris: fix layer calculation for TEXTURE_3D ReadPixels() on mip-level>0
|
||||
|
||||
liuyujun (1):
|
||||
|
||||
- gallium: fix surface->destroy use-after-free
|
||||
|
||||
mattvchandler (1):
|
||||
|
||||
- gallium/osmesa: fix buffer resizing
|
@@ -1,139 +0,0 @@
|
||||
Mesa 21.2.3 Release Notes / 2021-09-29
|
||||
======================================
|
||||
|
||||
Mesa 21.2.3 is a bug fix release which fixes bugs found since the 21.2.2 release.
|
||||
|
||||
Mesa 21.2.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.2.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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
7245284a159d2484770e1835a673e79e4322a9ddf43b17859668244946db7174 mesa-21.2.3.tar.xz
|
||||
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- None
|
||||
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Significant performance drop on Radeon HD 8400
|
||||
- [nir][radv] Out of range shift when compiling Resident Evil Village shaders
|
||||
- [nir][radv] Out of range shift when compiling Resident Evil Village shaders
|
||||
- GL_EXT_disjoint_timer_query glGetInteger64v GL_TIMESTAMP failing with GL_INVALID_ENUM
|
||||
- Possible miscompilation of an integer division with vulkan
|
||||
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
Boris Brezillon (3):
|
||||
|
||||
- panfrost: RGB10_A2_SNORM is not a valid texture format on v6+
|
||||
- panfrost: RGB332_UNORM is not a valid texture format on v6+
|
||||
- pan/blit: Fix a NULL dereference in the preload path
|
||||
|
||||
Charmaine Lee (1):
|
||||
|
||||
- svga: fix render target views leak
|
||||
|
||||
Dylan Baker (15):
|
||||
|
||||
- docs/relnotes/21.2.2: Add SHA256 sum
|
||||
- .pick_status.json: Update to d3511e8af21ac11b8e7f5305942624d1ae29a73a
|
||||
- .pick_status.json: Mark a79ac1bee14d6600cde2788bf136aa59b69a786f as backported
|
||||
- .pick_status.json: Mark e0533ebf16edcb8b9f0687d3155417e6c1c53d35 as backported
|
||||
- .pick_status.json: Mark f241bd3749cec55ca5fac9cb24f17553ab31c0e1 as backported
|
||||
- .pick_status.json: Mark 268158a758551a46feb120af3f3cff5fb9292310 as backported
|
||||
- .pick_status.json: Mark 6373dd814a74d84becbbbfc42673df147adb6e9b as denominated
|
||||
- .pick_status.json: Mark eb7d2ef070a8819c2859c10559496836275848e2 as denominated
|
||||
- .pick_status.json: Mark a810e58051b4a065b0aade86c45bf7ed254fc726 as denominated
|
||||
- .pick_status.json: Update to 400da4900e2d72ee807cc3eedac9ace1dfd5dfba
|
||||
- .pick_status.json: Update to dc354b8fda928861b7dfff3f8f53159e0053f9f5
|
||||
- .pick_status.json: Update to b653164973bbd3053d3b9ed37c4362af96346900
|
||||
- .pick_status.json: Update to ecc6d78b0541d66765d434dd4158066d6c664f8e
|
||||
- .pick_status.json: Update to fbbe00c0b7f7aa5aca42a82358332eb2de56b9af
|
||||
- lavapipe/ci: Add additional failing test
|
||||
|
||||
Ella-0 (1):
|
||||
|
||||
- v3d: add R10G10B10X2_UNORM to format table
|
||||
|
||||
Emma Anholt (1):
|
||||
|
||||
- mesa: Fix missing CopyTexImage formats for OES_required_internalformat.
|
||||
|
||||
Italo Nicola (1):
|
||||
|
||||
- panfrost: fix null deref when no color buffer is attached
|
||||
|
||||
Jordan Justen (2):
|
||||
|
||||
- iris: Disable I915_FORMAT_MOD_Y_TILED_GEN12* on adl-p/display 13
|
||||
- intel/dev: Add display_ver and set adl-p to 13
|
||||
|
||||
Lionel Landwerlin (1):
|
||||
|
||||
- nir: fix opt_memcpy src/dst mixup
|
||||
|
||||
Marcin Ślusarz (1):
|
||||
|
||||
- intel/compiler: INT DIV function does not support source modifiers
|
||||
|
||||
Marek Olšák (2):
|
||||
|
||||
- radeonsi: fix a depth texturing performance regression on gfx6-7
|
||||
- radeonsi: fix clearing index_size for NGG fast launch
|
||||
|
||||
Marek Vasut (1):
|
||||
|
||||
- freedreno: Handle timeout == PIPE_TIMEOUT_INFINITE and rollover
|
||||
|
||||
Neha Bhende (1):
|
||||
|
||||
- auxiliary/indices: convert primitive type PIPE_PRIM_PATCHES
|
||||
|
||||
Qiang Yu (1):
|
||||
|
||||
- radeonsi: fix ps SI_PARAM_LINE_STIPPLE_TEX arg
|
||||
|
||||
Rhys Perry (3):
|
||||
|
||||
- aco: don't coalesce constant copies into non-power-of-two sizes
|
||||
- aco/tests: add idep_amdgfxregs_h
|
||||
- radv: don't require a GS copy shader to use the cache with NGG VS+GS
|
||||
|
||||
Rob Clark (2):
|
||||
|
||||
- freedreno: Use correct key for binning pass shader
|
||||
- freedreno/drm: Don't return shared/control bo's to cache
|
||||
|
||||
Tapani Pälli (1):
|
||||
|
||||
- mesa: fix timestamp enum with EXT_disjoint_timer_query
|
||||
|
||||
Timur Kristóf (5):
|
||||
|
||||
- aco/optimize_postRA: Use iterators instead of operator[] of std::array.
|
||||
- ac/nir: Fix match_mask to work correctly for VS outputs.
|
||||
- nir: Exclude non-generic patch variables from get_variable_io_mask.
|
||||
- ac/nir/nggc: Refactor save_reusable_variables.
|
||||
- ac/nir/nggc: Don't reuse uniform values from divergent control flow.
|
||||
|
||||
Zachary Michaels (1):
|
||||
|
||||
- X11: Ensure that VK_SUBOPTIMAL_KHR propagates to user code
|
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
---------------
|
||||
|
||||
::
|
||||
|
||||
TBD.
|
||||
|
||||
|
||||
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
|
@@ -6,15 +6,34 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright 2013-2020 The Khronos Group Inc.
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos EGL XML API Registry.
|
||||
** The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: e8baa0bf39 $ on $Git commit date: 2021-04-26 17:56:26 -0600 $
|
||||
** Khronos $Git commit SHA1: b5409265f3 $ on $Git commit date: 2020-02-20 08:24:34 -0800 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
@@ -23,7 +42,7 @@ extern "C" {
|
||||
#define EGL_EGL_PROTOTYPES 1
|
||||
#endif
|
||||
|
||||
/* Generated on date 20210604 */
|
||||
/* Generated on date 20200220 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
|
@@ -6,20 +6,39 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright 2013-2020 The Khronos Group Inc.
|
||||
** SPDX-License-Identifier: Apache-2.0
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos EGL XML API Registry.
|
||||
** The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: dc0b58dca5 $ on $Git commit date: 2021-06-25 01:58:50 +0200 $
|
||||
** Khronos $Git commit SHA1: b5409265f3 $ on $Git commit date: 2020-02-20 08:24:34 -0800 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#define EGL_EGLEXT_VERSION 20210629
|
||||
#define EGL_EGLEXT_VERSION 20200220
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
@@ -574,14 +593,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
|
||||
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
|
||||
#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */
|
||||
|
||||
#ifndef EGL_ANGLE_sync_control_rate
|
||||
#define EGL_ANGLE_sync_control_rate 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETMSCRATEANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetMscRateANGLE (EGLDisplay dpy, EGLSurface surface, EGLint *numerator, EGLint *denominator);
|
||||
#endif
|
||||
#endif /* EGL_ANGLE_sync_control_rate */
|
||||
|
||||
#ifndef EGL_ANGLE_window_fixed_size
|
||||
#define EGL_ANGLE_window_fixed_size 1
|
||||
#define EGL_FIXED_SIZE_ANGLE 0x3201
|
||||
@@ -651,11 +662,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglCompositorSwapPolicyEXT (EGLint external_win_id
|
||||
#endif
|
||||
#endif /* EGL_EXT_compositor */
|
||||
|
||||
#ifndef EGL_EXT_config_select_group
|
||||
#define EGL_EXT_config_select_group 1
|
||||
#define EGL_CONFIG_SELECT_GROUP_EXT 0x34C0
|
||||
#endif /* EGL_EXT_config_select_group */
|
||||
|
||||
#ifndef EGL_EXT_create_context_robustness
|
||||
#define EGL_EXT_create_context_robustness 1
|
||||
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF
|
||||
@@ -688,11 +694,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#define EGL_DRM_MASTER_FD_EXT 0x333C
|
||||
#endif /* EGL_EXT_device_drm */
|
||||
|
||||
#ifndef EGL_EXT_device_drm_render_node
|
||||
#define EGL_EXT_device_drm_render_node 1
|
||||
#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377
|
||||
#endif /* EGL_EXT_device_drm_render_node */
|
||||
|
||||
#ifndef EGL_EXT_device_enumeration
|
||||
#define EGL_EXT_device_enumeration 1
|
||||
#endif /* EGL_EXT_device_enumeration */
|
||||
@@ -702,26 +703,10 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#define EGL_OPENWF_DEVICE_ID_EXT 0x3237
|
||||
#endif /* EGL_EXT_device_openwf */
|
||||
|
||||
#ifndef EGL_EXT_device_persistent_id
|
||||
#define EGL_EXT_device_persistent_id 1
|
||||
#define EGL_DEVICE_UUID_EXT 0x335C
|
||||
#define EGL_DRIVER_UUID_EXT 0x335D
|
||||
#define EGL_DRIVER_NAME_EXT 0x335E
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEBINARYEXTPROC) (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceBinaryEXT (EGLDeviceEXT device, EGLint name, EGLint max_size, void *value, EGLint *size);
|
||||
#endif
|
||||
#endif /* EGL_EXT_device_persistent_id */
|
||||
|
||||
#ifndef EGL_EXT_device_query
|
||||
#define EGL_EXT_device_query 1
|
||||
#endif /* EGL_EXT_device_query */
|
||||
|
||||
#ifndef EGL_EXT_device_query_name
|
||||
#define EGL_EXT_device_query_name 1
|
||||
#define EGL_RENDERER_EXT 0x335F
|
||||
#endif /* EGL_EXT_device_query_name */
|
||||
|
||||
#ifndef EGL_EXT_gl_colorspace_bt2020_linear
|
||||
#define EGL_EXT_gl_colorspace_bt2020_linear 1
|
||||
#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT 0x333F
|
||||
@@ -898,16 +883,11 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy,
|
||||
#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6
|
||||
#endif /* EGL_EXT_platform_x11 */
|
||||
|
||||
#ifndef EGL_EXT_platform_xcb
|
||||
#define EGL_EXT_platform_xcb 1
|
||||
#ifndef EGL_MESA_platform_xcb
|
||||
#define EGL_MESA_platform_xcb 1
|
||||
#define EGL_PLATFORM_XCB_EXT 0x31DC
|
||||
#define EGL_PLATFORM_XCB_SCREEN_EXT 0x31DE
|
||||
#endif /* EGL_EXT_platform_xcb */
|
||||
|
||||
#ifndef EGL_EXT_present_opaque
|
||||
#define EGL_EXT_present_opaque 1
|
||||
#define EGL_PRESENT_OPAQUE_EXT 0x31DF
|
||||
#endif /* EGL_EXT_present_opaque */
|
||||
#endif /* EGL_MESA_platform_xcb */
|
||||
|
||||
#ifndef EGL_EXT_protected_content
|
||||
#define EGL_EXT_protected_content 1
|
||||
@@ -1175,24 +1155,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface sur
|
||||
#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C
|
||||
#endif /* EGL_NV_robustness_video_memory_purge */
|
||||
|
||||
#ifndef EGL_NV_stream_consumer_eglimage
|
||||
#define EGL_NV_stream_consumer_eglimage 1
|
||||
#define EGL_STREAM_CONSUMER_IMAGE_NV 0x3373
|
||||
#define EGL_STREAM_IMAGE_ADD_NV 0x3374
|
||||
#define EGL_STREAM_IMAGE_REMOVE_NV 0x3375
|
||||
#define EGL_STREAM_IMAGE_AVAILABLE_NV 0x3376
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, EGLuint64KHR *modifiers, EGLAttrib *attrib_list);
|
||||
typedef EGLint (EGLAPIENTRYP PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMACQUIREIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMRELEASEIMAGENVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamImageConsumerConnectNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint num_modifiers, EGLuint64KHR *modifiers, EGLAttrib *attrib_list);
|
||||
EGLAPI EGLint EGLAPIENTRY eglQueryStreamConsumerEventNV (EGLDisplay dpy, EGLStreamKHR stream, EGLTime timeout, EGLenum *event, EGLAttrib *aux);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamAcquireImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage *pImage, EGLSync sync);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamReleaseImageNV (EGLDisplay dpy, EGLStreamKHR stream, EGLImage image, EGLSync sync);
|
||||
#endif
|
||||
#endif /* EGL_NV_stream_consumer_eglimage */
|
||||
|
||||
#ifndef EGL_NV_stream_consumer_gltexture_yuv
|
||||
#define EGL_NV_stream_consumer_gltexture_yuv 1
|
||||
#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
|
||||
|
@@ -38,7 +38,9 @@
|
||||
#if defined(__WIN32__) && !defined(__CYGWIN__)
|
||||
# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
|
||||
# define GLAPI __declspec(dllexport)
|
||||
# else
|
||||
# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
|
||||
# define GLAPI __declspec(dllimport)
|
||||
# else /* for use with static link lib build of Win32 edition only */
|
||||
# define GLAPI extern
|
||||
# endif
|
||||
# if defined(__MINGW32__) && defined(GL_NO_STDCALL) || defined(UNDER_CE) /* The generated DLLs by MingW with STDCALL are not compatible with the ones done by Microsoft's compilers */
|
||||
|
@@ -48,6 +48,8 @@ typedef unsigned int drm_drawable_t;
|
||||
typedef struct drm_clip_rect drm_clip_rect_t;
|
||||
#endif
|
||||
|
||||
#include <GL/gl.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
@@ -151,6 +153,32 @@ struct __DRIswapControlExtensionRec {
|
||||
unsigned int (*getSwapInterval)(__DRIdrawable *drawable);
|
||||
};
|
||||
|
||||
/**
|
||||
* Used by drivers that implement the GLX_MESA_swap_frame_usage extension.
|
||||
*/
|
||||
#define __DRI_FRAME_TRACKING "DRI_FrameTracking"
|
||||
#define __DRI_FRAME_TRACKING_VERSION 1
|
||||
struct __DRIframeTrackingExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
/**
|
||||
* Enable or disable frame usage tracking.
|
||||
*
|
||||
* \since Internal API version 20030317.
|
||||
*/
|
||||
int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable);
|
||||
|
||||
/**
|
||||
* Retrieve frame usage information.
|
||||
*
|
||||
* \since Internal API version 20030317.
|
||||
*/
|
||||
int (*queryFrameTracking)(__DRIdrawable *drawable,
|
||||
int64_t * sbc, int64_t * missedFrames,
|
||||
float * lastMissedUsage, float * usage);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Used by drivers that implement the GLX_SGI_video_sync extension.
|
||||
*/
|
||||
@@ -177,6 +205,24 @@ struct __DRImediaStreamCounterExtensionRec {
|
||||
int64_t *msc);
|
||||
};
|
||||
|
||||
|
||||
#define __DRI_TEX_OFFSET "DRI_TexOffset"
|
||||
#define __DRI_TEX_OFFSET_VERSION 1
|
||||
struct __DRItexOffsetExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
/**
|
||||
* Method to override base texture image with a driver specific 'offset'.
|
||||
* The depth passed in allows e.g. to ignore the alpha channel of texture
|
||||
* images where the non-alpha components don't occupy a whole texel.
|
||||
*
|
||||
* For GLX_EXT_texture_from_pixmap with AIGLX.
|
||||
*/
|
||||
void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname,
|
||||
unsigned long long offset, GLint depth, GLuint pitch);
|
||||
};
|
||||
|
||||
|
||||
/* Valid values for format in the setTexBuffer2 function below. These
|
||||
* values match the GLX tokens for compatibility reasons, but we
|
||||
* define them here since the DRI interface can't depend on GLX. */
|
||||
@@ -197,7 +243,7 @@ struct __DRItexBufferExtensionRec {
|
||||
* setTexBuffer2 in version 2 of this interface
|
||||
*/
|
||||
void (*setTexBuffer)(__DRIcontext *pDRICtx,
|
||||
int target,
|
||||
GLint target,
|
||||
__DRIdrawable *pDraw);
|
||||
|
||||
/**
|
||||
@@ -209,8 +255,8 @@ struct __DRItexBufferExtensionRec {
|
||||
* \since 2
|
||||
*/
|
||||
void (*setTexBuffer2)(__DRIcontext *pDRICtx,
|
||||
int target,
|
||||
int format,
|
||||
GLint target,
|
||||
GLint format,
|
||||
__DRIdrawable *pDraw);
|
||||
/**
|
||||
* Method to release texture buffer in case some special platform
|
||||
@@ -221,7 +267,7 @@ struct __DRItexBufferExtensionRec {
|
||||
* \since 3
|
||||
*/
|
||||
void (*releaseTexBuffer)(__DRIcontext *pDRICtx,
|
||||
int target,
|
||||
GLint target,
|
||||
__DRIdrawable *pDraw);
|
||||
};
|
||||
|
||||
@@ -364,8 +410,8 @@ struct __DRI2fenceExtensionRec {
|
||||
* \param flags a combination of __DRI2_FENCE_FLAG_xxx flags
|
||||
* \param timeout the timeout in ns or __DRI2_FENCE_TIMEOUT_INFINITE
|
||||
*/
|
||||
unsigned char (*client_wait_sync)(__DRIcontext *ctx, void *fence,
|
||||
unsigned flags, uint64_t timeout);
|
||||
GLboolean (*client_wait_sync)(__DRIcontext *ctx, void *fence,
|
||||
unsigned flags, uint64_t timeout);
|
||||
|
||||
/**
|
||||
* This function enqueues a wait command into the command stream of
|
||||
@@ -503,6 +549,28 @@ typedef struct __DRIdamageExtensionRec __DRIdamageExtension;
|
||||
typedef struct __DRIloaderExtensionRec __DRIloaderExtension;
|
||||
typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension;
|
||||
|
||||
|
||||
/**
|
||||
* Callback to getDrawableInfo protocol
|
||||
*/
|
||||
#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo"
|
||||
#define __DRI_GET_DRAWABLE_INFO_VERSION 1
|
||||
struct __DRIgetDrawableInfoExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
/**
|
||||
* This function is used to get information about the position, size, and
|
||||
* clip rects of a drawable.
|
||||
*/
|
||||
GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable,
|
||||
unsigned int * index, unsigned int * stamp,
|
||||
int * x, int * y, int * width, int * height,
|
||||
int * numClipRects, drm_clip_rect_t ** pClipRects,
|
||||
int * backX, int * backY,
|
||||
int * numBackClipRects, drm_clip_rect_t ** pBackClipRects,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
* Callback to get system time for media stream counter extensions.
|
||||
*/
|
||||
@@ -523,7 +591,7 @@ struct __DRIsystemTimeExtensionRec {
|
||||
* the rate of the "media stream counter". In practical terms, this is
|
||||
* the frame refresh rate of the display.
|
||||
*/
|
||||
unsigned char (*getMSCRate)(__DRIdrawable *draw,
|
||||
GLboolean (*getMSCRate)(__DRIdrawable *draw,
|
||||
int32_t * numerator, int32_t * denominator,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
@@ -554,7 +622,7 @@ struct __DRIdamageExtensionRec {
|
||||
void (*reportDamage)(__DRIdrawable *draw,
|
||||
int x, int y,
|
||||
drm_clip_rect_t *rects, int num_rects,
|
||||
unsigned char front_buffer,
|
||||
GLboolean front_buffer,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
|
||||
@@ -653,9 +721,9 @@ struct __DRIswrastLoaderExtensionRec {
|
||||
*
|
||||
* \since 6
|
||||
*/
|
||||
unsigned char (*getImageShm2)(__DRIdrawable *readable,
|
||||
int x, int y, int width, int height,
|
||||
int shmid, void *loaderPrivate);
|
||||
GLboolean (*getImageShm2)(__DRIdrawable *readable,
|
||||
int x, int y, int width, int height,
|
||||
int shmid, void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1135,27 +1203,50 @@ struct __DRIdri2LoaderExtensionRec {
|
||||
|
||||
#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0
|
||||
#define __DRI_CTX_ATTRIB_MINOR_VERSION 1
|
||||
|
||||
#define __DRI_CTX_ATTRIB_FLAGS 2
|
||||
|
||||
/**
|
||||
* \requires __DRI2_ROBUSTNESS.
|
||||
*/
|
||||
#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3
|
||||
|
||||
#define __DRI_CTX_FLAG_DEBUG 0x00000001
|
||||
#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002
|
||||
|
||||
/**
|
||||
* \requires __DRI2_ROBUSTNESS.
|
||||
*/
|
||||
#define __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS 0x00000004
|
||||
|
||||
/**
|
||||
* \requires __DRI2_NO_ERROR.
|
||||
*
|
||||
*/
|
||||
#define __DRI_CTX_FLAG_NO_ERROR 0x00000008
|
||||
|
||||
#define __DRI_CTX_ATTRIB_RESET_STRATEGY 3
|
||||
/**
|
||||
* \name Context reset strategies.
|
||||
*/
|
||||
/*@{*/
|
||||
#define __DRI_CTX_RESET_NO_NOTIFICATION 0
|
||||
#define __DRI_CTX_RESET_LOSE_CONTEXT 1
|
||||
/*@}*/
|
||||
|
||||
#define __DRI_CTX_ATTRIB_PRIORITY 4
|
||||
|
||||
#define __DRI_CTX_PRIORITY_LOW 0
|
||||
#define __DRI_CTX_PRIORITY_MEDIUM 1
|
||||
#define __DRI_CTX_PRIORITY_HIGH 2
|
||||
|
||||
/**
|
||||
* \name Context release behaviors.
|
||||
*/
|
||||
/*@{*/
|
||||
#define __DRI_CTX_ATTRIB_RELEASE_BEHAVIOR 5
|
||||
|
||||
#define __DRI_CTX_RELEASE_BEHAVIOR_NONE 0
|
||||
#define __DRI_CTX_RELEASE_BEHAVIOR_FLUSH 1
|
||||
|
||||
#define __DRI_CTX_NUM_ATTRIBS 6
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* \name Reasons that __DRIdri2Extension::createContextAttribs might fail
|
||||
@@ -1441,7 +1532,7 @@ struct __DRIimageExtensionRec {
|
||||
unsigned int use,
|
||||
void *loaderPrivate);
|
||||
|
||||
unsigned char (*queryImage)(__DRIimage *image, int attrib, int *value);
|
||||
GLboolean (*queryImage)(__DRIimage *image, int attrib, int *value);
|
||||
|
||||
/**
|
||||
* The new __DRIimage will share the content with the old one, see dup(2).
|
||||
@@ -1453,7 +1544,7 @@ struct __DRIimageExtensionRec {
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
unsigned char (*validateUsage)(__DRIimage *image, unsigned int use);
|
||||
GLboolean (*validateUsage)(__DRIimage *image, unsigned int use);
|
||||
|
||||
/**
|
||||
* Unlike createImageFromName __DRI_IMAGE_FORMAT is not used but instead
|
||||
@@ -1634,8 +1725,8 @@ struct __DRIimageExtensionRec {
|
||||
*
|
||||
* \since 15
|
||||
*/
|
||||
unsigned char (*queryDmaBufFormats)(__DRIscreen *screen, int max,
|
||||
int *formats, int *count);
|
||||
GLboolean (*queryDmaBufFormats)(__DRIscreen *screen, int max,
|
||||
int *formats, int *count);
|
||||
|
||||
/*
|
||||
* dmabuf format modifier query for a given format to support
|
||||
@@ -1656,10 +1747,10 @@ struct __DRIimageExtensionRec {
|
||||
*
|
||||
* \since 15
|
||||
*/
|
||||
unsigned char (*queryDmaBufModifiers)(__DRIscreen *screen, int fourcc,
|
||||
int max, uint64_t *modifiers,
|
||||
unsigned int *external_only,
|
||||
int *count);
|
||||
GLboolean (*queryDmaBufModifiers)(__DRIscreen *screen, int fourcc,
|
||||
int max, uint64_t *modifiers,
|
||||
unsigned int *external_only,
|
||||
int *count);
|
||||
|
||||
/**
|
||||
* dmabuf format modifier attribute query for a given format and modifier.
|
||||
@@ -1675,11 +1766,9 @@ struct __DRIimageExtensionRec {
|
||||
*
|
||||
* \since 16
|
||||
*/
|
||||
unsigned char (*queryDmaBufFormatModifierAttribs)(__DRIscreen *screen,
|
||||
uint32_t fourcc,
|
||||
uint64_t modifier,
|
||||
int attrib,
|
||||
uint64_t *value);
|
||||
GLboolean (*queryDmaBufFormatModifierAttribs)(__DRIscreen *screen,
|
||||
uint32_t fourcc, uint64_t modifier,
|
||||
int attrib, uint64_t *value);
|
||||
|
||||
/**
|
||||
* Create a DRI image from the given renderbuffer.
|
||||
@@ -1751,36 +1840,14 @@ struct __DRIimageExtensionRec {
|
||||
* with new lookup functions.
|
||||
*/
|
||||
#define __DRI_IMAGE_LOOKUP "DRI_IMAGE_LOOKUP"
|
||||
#define __DRI_IMAGE_LOOKUP_VERSION 2
|
||||
#define __DRI_IMAGE_LOOKUP_VERSION 1
|
||||
|
||||
typedef struct __DRIimageLookupExtensionRec __DRIimageLookupExtension;
|
||||
struct __DRIimageLookupExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
/**
|
||||
* Lookup EGLImage without validated. Equivalent to call
|
||||
* validateEGLImage() then lookupEGLImageValidated().
|
||||
*
|
||||
* \since 1
|
||||
*/
|
||||
__DRIimage *(*lookupEGLImage)(__DRIscreen *screen, void *image,
|
||||
void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Check if EGLImage is associated with the EGL display before lookup with
|
||||
* lookupEGLImageValidated(). It will hold EGLDisplay.Mutex, so is separated
|
||||
* out from lookupEGLImage() to avoid deadlock.
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
unsigned char (*validateEGLImage)(void *image, void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Lookup EGLImage after validateEGLImage(). No lock in this function.
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
__DRIimage *(*lookupEGLImageValidated)(void *image, void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1925,7 +1992,6 @@ typedef struct __DRIDriverVtableExtensionRec {
|
||||
#define __DRI2_RENDERER_HAS_CONTEXT_PRIORITY_HIGH (1 << 2)
|
||||
|
||||
#define __DRI2_RENDERER_HAS_PROTECTED_CONTENT 0x000e
|
||||
#define __DRI2_RENDERER_PREFER_BACK_BUFFER_REUSE 0x000f
|
||||
|
||||
typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension;
|
||||
struct __DRI2rendererQueryExtensionRec {
|
||||
@@ -2135,7 +2201,7 @@ struct __DRIbackgroundCallableExtensionRec {
|
||||
* the context was created. This can be used by the loader to identify
|
||||
* which context any callbacks are associated with.
|
||||
*/
|
||||
unsigned char (*isThreadSafe)(void *loaderPrivate);
|
||||
GLboolean (*isThreadSafe)(void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -332,6 +332,8 @@ typedef struct AHardwareBuffer_Planes {
|
||||
*/
|
||||
typedef struct AHardwareBuffer AHardwareBuffer;
|
||||
|
||||
#if __ANDROID_API__ >= 26
|
||||
|
||||
/**
|
||||
* Allocates a buffer that matches the passed AHardwareBuffer_Desc.
|
||||
*
|
||||
@@ -499,6 +501,10 @@ int AHardwareBuffer_sendHandleToUnixSocket(const AHardwareBuffer* buffer, int so
|
||||
*/
|
||||
int AHardwareBuffer_recvHandleFromUnixSocket(int socketFd, AHardwareBuffer** outBuffer) __INTRODUCED_IN(26);
|
||||
|
||||
#endif // __ANDROID_API__ >= 26
|
||||
|
||||
#if __ANDROID_API__ >= 29
|
||||
|
||||
/**
|
||||
* Test whether the given format and usage flag combination is
|
||||
* allocatable.
|
||||
@@ -534,6 +540,7 @@ int AHardwareBuffer_isSupported(const AHardwareBuffer_Desc* desc) __INTRODUCED_I
|
||||
int AHardwareBuffer_lockAndGetInfo(AHardwareBuffer* buffer, uint64_t usage,
|
||||
int32_t fence, const ARect* rect, void** outVirtualAddress,
|
||||
int32_t* outBytesPerPixel, int32_t* outBytesPerStride) __INTRODUCED_IN(29);
|
||||
#endif // __ANDROID_API__ >= 29
|
||||
|
||||
__END_DECLS
|
||||
|
||||
|
@@ -217,6 +217,7 @@ typedef void (*__android_logger_function)(const struct __android_log_message* lo
|
||||
*/
|
||||
typedef void (*__android_aborter_function)(const char* abort_message);
|
||||
|
||||
#if !defined(__ANDROID__) || __ANDROID_API__ >= 30
|
||||
/**
|
||||
* Writes the log message specified by log_message. log_message includes additional file name and
|
||||
* line number information that a logger may use. log_message is versioned for backwards
|
||||
@@ -370,6 +371,7 @@ int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(30);
|
||||
* Available since API level 30.
|
||||
*/
|
||||
void __android_log_set_default_tag(const char* tag) __INTRODUCED_IN(30);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@@ -185,6 +185,8 @@ int32_t ANativeWindow_lock(ANativeWindow* window, ANativeWindow_Buffer* outBuffe
|
||||
*/
|
||||
int32_t ANativeWindow_unlockAndPost(ANativeWindow* window);
|
||||
|
||||
#if __ANDROID_API__ >= 26
|
||||
|
||||
/**
|
||||
* Set a transform that will be applied to future buffers posted to the window.
|
||||
*
|
||||
@@ -195,6 +197,10 @@ int32_t ANativeWindow_unlockAndPost(ANativeWindow* window);
|
||||
*/
|
||||
int32_t ANativeWindow_setBuffersTransform(ANativeWindow* window, int32_t transform) __INTRODUCED_IN(26);
|
||||
|
||||
#endif // __ANDROID_API__ >= 26
|
||||
|
||||
#if __ANDROID_API__ >= 28
|
||||
|
||||
/**
|
||||
* All buffers queued after this call will be associated with the dataSpace
|
||||
* parameter specified.
|
||||
@@ -223,6 +229,10 @@ int32_t ANativeWindow_setBuffersDataSpace(ANativeWindow* window, int32_t dataSpa
|
||||
*/
|
||||
int32_t ANativeWindow_getBuffersDataSpace(ANativeWindow* window) __INTRODUCED_IN(28);
|
||||
|
||||
#endif // __ANDROID_API__ >= 28
|
||||
|
||||
#if __ANDROID_API__ >= 30
|
||||
|
||||
/** Compatibility value for ANativeWindow_setFrameRate. */
|
||||
enum ANativeWindow_FrameRateCompatibility {
|
||||
/**
|
||||
@@ -291,6 +301,8 @@ int32_t ANativeWindow_setFrameRate(ANativeWindow* window, float frameRate, int8_
|
||||
*/
|
||||
void ANativeWindow_tryAllocateBuffers(ANativeWindow* window);
|
||||
|
||||
#endif // __ANDROID_API__ >= 30
|
||||
|
||||
#ifdef __cplusplus
|
||||
};
|
||||
#endif
|
||||
|
210
include/android_stub/apex/window.h
Normal file
210
include/android_stub/apex/window.h
Normal file
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
* Copyright 2019 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <nativebase/nativebase.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
// apex is a superset of the NDK
|
||||
#include <android/native_window.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/*
|
||||
* perform bits that can be used with ANativeWindow_perform()
|
||||
*
|
||||
* This is only to support the intercepting methods below - these should notbe
|
||||
* used directly otherwise.
|
||||
*/
|
||||
enum ANativeWindowPerform {
|
||||
// clang-format off
|
||||
ANATIVEWINDOW_PERFORM_SET_USAGE = 0,
|
||||
ANATIVEWINDOW_PERFORM_SET_BUFFERS_GEOMETRY = 5,
|
||||
ANATIVEWINDOW_PERFORM_SET_BUFFERS_FORMAT = 9,
|
||||
ANATIVEWINDOW_PERFORM_SET_USAGE64 = 30,
|
||||
// clang-format on
|
||||
};
|
||||
|
||||
/**
|
||||
* Prototype of the function that an ANativeWindow implementation would call
|
||||
* when ANativeWindow_cancelBuffer is called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_cancelBufferFn)(ANativeWindow* window, ANativeWindowBuffer* buffer,
|
||||
int fenceFd);
|
||||
|
||||
/**
|
||||
* Prototype of the function that intercepts an invocation of
|
||||
* ANativeWindow_cancelBufferFn, along with a data pointer that's passed by the
|
||||
* caller who set the interceptor, as well as arguments that would be
|
||||
* passed to ANativeWindow_cancelBufferFn if it were to be called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_cancelBufferInterceptor)(ANativeWindow* window,
|
||||
ANativeWindow_cancelBufferFn cancelBuffer,
|
||||
void* data, ANativeWindowBuffer* buffer,
|
||||
int fenceFd);
|
||||
|
||||
/**
|
||||
* Prototype of the function that an ANativeWindow implementation would call
|
||||
* when ANativeWindow_dequeueBuffer is called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_dequeueBufferFn)(ANativeWindow* window, ANativeWindowBuffer** buffer,
|
||||
int* fenceFd);
|
||||
|
||||
/**
|
||||
* Prototype of the function that intercepts an invocation of
|
||||
* ANativeWindow_dequeueBufferFn, along with a data pointer that's passed by the
|
||||
* caller who set the interceptor, as well as arguments that would be
|
||||
* passed to ANativeWindow_dequeueBufferFn if it were to be called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_dequeueBufferInterceptor)(ANativeWindow* window,
|
||||
ANativeWindow_dequeueBufferFn dequeueBuffer,
|
||||
void* data, ANativeWindowBuffer** buffer,
|
||||
int* fenceFd);
|
||||
|
||||
/**
|
||||
* Prototype of the function that an ANativeWindow implementation would call
|
||||
* when ANativeWindow_perform is called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_performFn)(ANativeWindow* window, int operation, va_list args);
|
||||
|
||||
/**
|
||||
* Prototype of the function that intercepts an invocation of
|
||||
* ANativeWindow_performFn, along with a data pointer that's passed by the
|
||||
* caller who set the interceptor, as well as arguments that would be
|
||||
* passed to ANativeWindow_performFn if it were to be called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_performInterceptor)(ANativeWindow* window,
|
||||
ANativeWindow_performFn perform, void* data,
|
||||
int operation, va_list args);
|
||||
|
||||
/**
|
||||
* Prototype of the function that an ANativeWindow implementation would call
|
||||
* when ANativeWindow_queueBuffer is called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_queueBufferFn)(ANativeWindow* window, ANativeWindowBuffer* buffer,
|
||||
int fenceFd);
|
||||
|
||||
/**
|
||||
* Prototype of the function that intercepts an invocation of
|
||||
* ANativeWindow_queueBufferFn, along with a data pointer that's passed by the
|
||||
* caller who set the interceptor, as well as arguments that would be
|
||||
* passed to ANativeWindow_queueBufferFn if it were to be called.
|
||||
*/
|
||||
typedef int (*ANativeWindow_queueBufferInterceptor)(ANativeWindow* window,
|
||||
ANativeWindow_queueBufferFn queueBuffer,
|
||||
void* data, ANativeWindowBuffer* buffer,
|
||||
int fenceFd);
|
||||
|
||||
/**
|
||||
* Registers an interceptor for ANativeWindow_cancelBuffer. Instead of calling
|
||||
* the underlying cancelBuffer function, instead the provided interceptor is
|
||||
* called, which may optionally call the underlying cancelBuffer function. An
|
||||
* optional data pointer is also provided to side-channel additional arguments.
|
||||
*
|
||||
* Note that usage of this should only be used for specialized use-cases by
|
||||
* either the system partition or to Mainline modules. This should never be
|
||||
* exposed to NDK or LL-NDK.
|
||||
*
|
||||
* Returns NO_ERROR on success, -errno if registration failed.
|
||||
*/
|
||||
int ANativeWindow_setCancelBufferInterceptor(ANativeWindow* window,
|
||||
ANativeWindow_cancelBufferInterceptor interceptor,
|
||||
void* data);
|
||||
|
||||
/**
|
||||
* Registers an interceptor for ANativeWindow_dequeueBuffer. Instead of calling
|
||||
* the underlying dequeueBuffer function, instead the provided interceptor is
|
||||
* called, which may optionally call the underlying dequeueBuffer function. An
|
||||
* optional data pointer is also provided to side-channel additional arguments.
|
||||
*
|
||||
* Note that usage of this should only be used for specialized use-cases by
|
||||
* either the system partition or to Mainline modules. This should never be
|
||||
* exposed to NDK or LL-NDK.
|
||||
*
|
||||
* Returns NO_ERROR on success, -errno if registration failed.
|
||||
*/
|
||||
int ANativeWindow_setDequeueBufferInterceptor(ANativeWindow* window,
|
||||
ANativeWindow_dequeueBufferInterceptor interceptor,
|
||||
void* data);
|
||||
/**
|
||||
* Registers an interceptor for ANativeWindow_perform. Instead of calling
|
||||
* the underlying perform function, instead the provided interceptor is
|
||||
* called, which may optionally call the underlying perform function. An
|
||||
* optional data pointer is also provided to side-channel additional arguments.
|
||||
*
|
||||
* Note that usage of this should only be used for specialized use-cases by
|
||||
* either the system partition or to Mainline modules. This should never be
|
||||
* exposed to NDK or LL-NDK.
|
||||
*
|
||||
* Returns NO_ERROR on success, -errno if registration failed.
|
||||
*/
|
||||
int ANativeWindow_setPerformInterceptor(ANativeWindow* window,
|
||||
ANativeWindow_performInterceptor interceptor, void* data);
|
||||
/**
|
||||
* Registers an interceptor for ANativeWindow_queueBuffer. Instead of calling
|
||||
* the underlying queueBuffer function, instead the provided interceptor is
|
||||
* called, which may optionally call the underlying queueBuffer function. An
|
||||
* optional data pointer is also provided to side-channel additional arguments.
|
||||
*
|
||||
* Note that usage of this should only be used for specialized use-cases by
|
||||
* either the system partition or to Mainline modules. This should never be
|
||||
* exposed to NDK or LL-NDK.
|
||||
*
|
||||
* Returns NO_ERROR on success, -errno if registration failed.
|
||||
*/
|
||||
int ANativeWindow_setQueueBufferInterceptor(ANativeWindow* window,
|
||||
ANativeWindow_queueBufferInterceptor interceptor,
|
||||
void* data);
|
||||
|
||||
/**
|
||||
* Retrieves how long it took for the last time a buffer was dequeued.
|
||||
*
|
||||
* \return the dequeue duration in nanoseconds
|
||||
*/
|
||||
int64_t ANativeWindow_getLastDequeueDuration(ANativeWindow* window);
|
||||
|
||||
/**
|
||||
* Retrieves how long it took for the last time a buffer was queued.
|
||||
*
|
||||
* \return the queue duration in nanoseconds
|
||||
*/
|
||||
int64_t ANativeWindow_getLastQueueDuration(ANativeWindow* window);
|
||||
|
||||
/**
|
||||
* Retrieves the system time in nanoseconds when the last time a buffer
|
||||
* started to be dequeued.
|
||||
*
|
||||
* \return the start time in nanoseconds
|
||||
*/
|
||||
int64_t ANativeWindow_getLastDequeueStartTime(ANativeWindow* window);
|
||||
|
||||
/**
|
||||
* Sets a timeout in nanoseconds for dequeue calls. All subsequent dequeue calls
|
||||
* made by the window will return -ETIMEDOUT after the timeout if the dequeue
|
||||
* takes too long.
|
||||
*
|
||||
* If the provided timeout is negative, hen this removes the previously configured
|
||||
* timeout. The window then behaves as if ANativeWindow_setDequeueTimeout was
|
||||
* never called.
|
||||
*
|
||||
* \return NO_ERROR on success
|
||||
* \return BAD_VALUE if the dequeue timeout was unabled to be updated, as
|
||||
* updating the dequeue timeout may change internals of the underlying window.
|
||||
*/
|
||||
int ANativeWindow_setDequeueTimeout(ANativeWindow* window, int64_t timeout);
|
||||
|
||||
__END_DECLS
|
@@ -1,44 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2009 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef ANDROID_CUTILS_COMPILER_H
|
||||
#define ANDROID_CUTILS_COMPILER_H
|
||||
|
||||
/*
|
||||
* helps the compiler's optimizer predicting branches
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
# define CC_LIKELY( exp ) (__builtin_expect( !!(exp), true ))
|
||||
# define CC_UNLIKELY( exp ) (__builtin_expect( !!(exp), false ))
|
||||
#else
|
||||
# define CC_LIKELY( exp ) (__builtin_expect( !!(exp), 1 ))
|
||||
# define CC_UNLIKELY( exp ) (__builtin_expect( !!(exp), 0 ))
|
||||
#endif
|
||||
|
||||
/**
|
||||
* exports marked symbols
|
||||
*
|
||||
* if used on a C++ class declaration, this macro must be inserted
|
||||
* after the "class" keyword. For instance:
|
||||
*
|
||||
* template <typename TYPE>
|
||||
* class ANDROID_API Singleton { }
|
||||
*/
|
||||
|
||||
#define ANDROID_API __attribute__((visibility("default")))
|
||||
|
||||
#endif // ANDROID_CUTILS_COMPILER_H
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user