Compare commits
348 Commits
mesa-20.0.
...
mesa-19.2.
Author | SHA1 | Date | |
---|---|---|---|
|
65d255cd1e | ||
|
d8e767ede8 | ||
|
4a0199b6e4 | ||
|
3ed8c94244 | ||
|
5c98b36577 | ||
|
a3869c14c0 | ||
|
bda6890f58 | ||
|
2bf47550ce | ||
|
b4e83559cb | ||
|
a39d364af3 | ||
|
c166435dc2 | ||
|
52a8d43a24 | ||
|
2e379b0a65 | ||
|
336f59f8ba | ||
|
38c8af9e2a | ||
|
5836dd66e0 | ||
|
264d1187df | ||
|
aa620fdf8e | ||
|
05d5784ea6 | ||
|
b1f505463d | ||
|
c2488d810b | ||
|
e594e4cefd | ||
|
8f526ee7cd | ||
|
be8a46d064 | ||
|
4c86eda2c2 | ||
|
f418e9231a | ||
|
9e0a0d2ebb | ||
|
e10851ff34 | ||
|
023ddb01b5 | ||
|
3199172eaa | ||
|
ae071434e9 | ||
|
60c299c542 | ||
|
b5b09acb74 | ||
|
38bd621f0d | ||
|
0e7e56aa2f | ||
|
2353a63a58 | ||
|
856c7eddf7 | ||
|
4c82d426bd | ||
|
d8a37880b5 | ||
|
bd2f6150ca | ||
|
9ffb0176e2 | ||
|
a390cf739f | ||
|
a993dc20b6 | ||
|
2281258a7b | ||
|
a89d4090bc | ||
|
cb835d281b | ||
|
6e98a923cb | ||
|
2b89e68a2e | ||
|
9cbffed5d0 | ||
|
6f1b8e554f | ||
|
cebe2b12f5 | ||
|
330d31f63b | ||
|
019dbc4b3b | ||
|
2e4da07a3e | ||
|
85608bad46 | ||
|
a2b3911a47 | ||
|
a74300e4cf | ||
|
c1f1a1056f | ||
|
13768f3714 | ||
|
aab604398d | ||
|
5fbc187720 | ||
|
aaba438f80 | ||
|
3de8c6e8fb | ||
|
6d96ee8507 | ||
|
4575aa2a30 | ||
|
ff9237e8ea | ||
|
a839a023c5 | ||
|
63ff2a51d3 | ||
|
43234ba02a | ||
|
49e105048b | ||
|
db4f7eae8b | ||
|
5290062a3f | ||
|
7affc43e81 | ||
|
8cb1070ea3 | ||
|
88ca3cf11d | ||
|
73a9f31b57 | ||
|
d8847c2f28 | ||
|
aa51bd5aa1 | ||
|
5378782434 | ||
|
2936df10df | ||
|
1d86a89733 | ||
|
05605ad196 | ||
|
a884f9d5e9 | ||
|
e9a1f47123 | ||
|
fa47f0f5cd | ||
|
701457466c | ||
|
58a37997a3 | ||
|
cab0e230ec | ||
|
87db4b9376 | ||
|
5f6f349bcf | ||
|
dacfad708f | ||
|
340849f311 | ||
|
e2b416e8ae | ||
|
a352e1d2f7 | ||
|
e8d4a75d9a | ||
|
2bd9eb83b4 | ||
|
f0cad4c038 | ||
|
c5f5ce1e37 | ||
|
db2797251d | ||
|
56f0434232 | ||
|
ad56aaef4f | ||
|
35b900310b | ||
|
cb0215a6fb | ||
|
425fbe2902 | ||
|
62f9ba1bf2 | ||
|
306e82acb6 | ||
|
ef906b4636 | ||
|
e958b35a40 | ||
|
16af8e9772 | ||
|
01e31f8cab | ||
|
4d6fcddc65 | ||
|
5694c20188 | ||
|
9a929cfef2 | ||
|
ae4f569232 | ||
|
9d13289ad4 | ||
|
9b49a4ea12 | ||
|
55a04df479 | ||
|
45aa00da9f | ||
|
a1e6d1fb30 | ||
|
2380173433 | ||
|
45ebe99a88 | ||
|
c1ca1602dd | ||
|
91960ae890 | ||
|
59e56bf05d | ||
|
6f30614d73 | ||
|
b87edab8a2 | ||
|
8355658fa8 | ||
|
089aa74d57 | ||
|
7f0d0ab83d | ||
|
7b70f2ec47 | ||
|
f446e56d30 | ||
|
767965b6fa | ||
|
3deb4fa226 | ||
|
0056943e69 | ||
|
d14d70de2f | ||
|
0beee2f723 | ||
|
c48dc6ad5f | ||
|
03df69d6a1 | ||
|
47bc45ba1a | ||
|
aa89c0a2bd | ||
|
3e15620451 | ||
|
877417918f | ||
|
e19dc53aae | ||
|
a06f8341d8 | ||
|
4f38287970 | ||
|
a4348e9594 | ||
|
61b3371acc | ||
|
5a0361ce09 | ||
|
06b8b29a0a | ||
|
9052318565 | ||
|
85193e808a | ||
|
34d738ff2e | ||
|
c289ac9a22 | ||
|
bad5e64da8 | ||
|
52cf623955 | ||
|
78a05b8cbb | ||
|
676471a092 | ||
|
0b97377f58 | ||
|
33eecbcc9b | ||
|
2bbe4c69c8 | ||
|
db56bc2c52 | ||
|
4169d86913 | ||
|
680e18c159 | ||
|
d4dab05a09 | ||
|
f5cccfe0e6 | ||
|
0a2285b1d4 | ||
|
8f95245068 | ||
|
a413b55157 | ||
|
5a027b6201 | ||
|
769a18d1f3 | ||
|
cb2649768f | ||
|
e6edeebd15 | ||
|
2dbf10ba3d | ||
|
daeb959c91 | ||
|
db1ed17ac4 | ||
|
dc0995669d | ||
|
434ab094c0 | ||
|
e35a7a0238 | ||
|
95d87a897b | ||
|
c4b70fef71 | ||
|
bc6cc94d5a | ||
|
6273d4d4ed | ||
|
960ab3e465 | ||
|
41b57b8b73 | ||
|
109137ee7b | ||
|
f4faf5cbd7 | ||
|
b29682c290 | ||
|
1b67e47c0c | ||
|
0c56cb50c7 | ||
|
40d592473e | ||
|
2947b89369 | ||
|
0c47b502c2 | ||
|
8ea440fa3a | ||
|
e59e9cd58a | ||
|
0d781fe4b8 | ||
|
ba8b282ae4 | ||
|
f7e25ae6d6 | ||
|
5037ffb646 | ||
|
c90dc1232d | ||
|
a1b6212710 | ||
|
9f94cd7140 | ||
|
5e289248a4 | ||
|
dc7129777f | ||
|
6485fd8362 | ||
|
2d30c0fc59 | ||
|
ac9ef75a25 | ||
|
75836b70c7 | ||
|
0b54e1d176 | ||
|
00eaba7761 | ||
|
770e77dcd1 | ||
|
0c29a15a09 | ||
|
401de43891 | ||
|
e27644cc2e | ||
|
b1ea3dcc1f | ||
|
6ee069f94a | ||
|
d083220879 | ||
|
9bf80c2b53 | ||
|
fa59ef37ed | ||
|
0ff13c291b | ||
|
71fafc13b9 | ||
|
e2bb51a99b | ||
|
2e9a37cf1c | ||
|
b94ab6f5e3 | ||
|
b2a09536ff | ||
|
3aeddc1f2f | ||
|
d5fe3f73fc | ||
|
5650308d08 | ||
|
fbd96932d6 | ||
|
82fc77b521 | ||
|
78c34c3bfb | ||
|
cd0402c582 | ||
|
110dc21ed3 | ||
|
cfcb96da38 | ||
|
b0b63d9593 | ||
|
5eba28227c | ||
|
f9ef2b4375 | ||
|
b85d10e14b | ||
|
7882268cc9 | ||
|
4eabbc04f2 | ||
|
97792279e4 | ||
|
3771534b2f | ||
|
481d82b65b | ||
|
732950bf36 | ||
|
637e02c1b1 | ||
|
e4bb2ceb78 | ||
|
d858388bfc | ||
|
7635b74acf | ||
|
2012c4a75c | ||
|
3f56fa8fe9 | ||
|
2c6e34ac93 | ||
|
23bc3a401d | ||
|
8889cc1241 | ||
|
89776bb48c | ||
|
55a10da818 | ||
|
c9b1f07e55 | ||
|
9d22b0dc90 | ||
|
cb548d566d | ||
|
172cff6357 | ||
|
c1114994f3 | ||
|
1a99cfef28 | ||
|
f42a4300aa | ||
|
0e6ccd180c | ||
|
5e72987777 | ||
|
95145376d1 | ||
|
3ef013f0e9 | ||
|
b84cbdfd4d | ||
|
f180b04d65 | ||
|
45b22fb873 | ||
|
ffa1f33ec0 | ||
|
0bbf6eab52 | ||
|
ef0ccde381 | ||
|
ba255cdd50 | ||
|
1a4e7d7293 | ||
|
1cfc906898 | ||
|
0a83226dc6 | ||
|
26cd407481 | ||
|
451ddeb429 | ||
|
6ac1d9b46e | ||
|
529db83e7b | ||
|
7f9b49218f | ||
|
efa4aee99d | ||
|
ec74c76a1a | ||
|
6934bc4f08 | ||
|
6aa7a10370 | ||
|
97e44d6817 | ||
|
a8525d7751 | ||
|
2971f079e1 | ||
|
da03ddf677 | ||
|
753ea83477 | ||
|
91fa24a686 | ||
|
c96de002b7 | ||
|
07ac4269a5 | ||
|
c2aad5dc4d | ||
|
952fd55015 | ||
|
9433241cc9 | ||
|
6e07e58ef6 | ||
|
7160c70f0f | ||
|
b871874de7 | ||
|
80514527e5 | ||
|
7d8eee2bdb | ||
|
6ea07af9c1 | ||
|
1ec895b4a7 | ||
|
7ff682a12c | ||
|
9fff4192bc | ||
|
5c1362581a | ||
|
649040ed8d | ||
|
7200ed1399 | ||
|
966a2bdc99 | ||
|
dff3ab5c04 | ||
|
d78f39eba0 | ||
|
1be5f26cfb | ||
|
14588c0727 | ||
|
973d58e9b3 | ||
|
58acce6dd9 | ||
|
bd0300f8ef | ||
|
4385e6cf02 | ||
|
18511e3f5b | ||
|
7c615873e5 | ||
|
6af303f6fc | ||
|
844fbc5c42 | ||
|
813ed8629e | ||
|
6e6f137a4e | ||
|
07760c1c9e | ||
|
0504bff354 | ||
|
637a9cbd3b | ||
|
690f050608 | ||
|
3ab1368c4f | ||
|
71daf2ef67 | ||
|
614def1a89 | ||
|
55334521f7 | ||
|
8ee40f6b63 | ||
|
25de459644 | ||
|
5d7754017c | ||
|
d23bf14d44 | ||
|
514eb1587e | ||
|
a935da7cef | ||
|
b9330a6189 | ||
|
0207c318e0 | ||
|
e09d469622 | ||
|
f208b04dba | ||
|
c0716446a4 | ||
|
4d3097f36a | ||
|
a3a266807e | ||
|
beea2dee8a | ||
|
78c603ebf5 | ||
|
3dec21a8aa | ||
|
6e07ac3343 | ||
|
c0b9399d9d |
@@ -1,66 +0,0 @@
|
||||
goto %1
|
||||
|
||||
:install
|
||||
rem Check pip
|
||||
if "%buildsystem%" == "scons" (
|
||||
python --version
|
||||
python -m pip --version
|
||||
rem Install Mako
|
||||
python -m pip install Mako==1.0.7
|
||||
rem Install pywin32 extensions, needed by SCons
|
||||
python -m pip install pypiwin32
|
||||
rem Install python wheels, necessary to install SCons via pip
|
||||
python -m pip install wheel
|
||||
rem Install SCons
|
||||
python -m pip install scons==3.0.1
|
||||
call scons --version
|
||||
) else (
|
||||
python --version
|
||||
python -m pip install Mako meson
|
||||
meson --version
|
||||
|
||||
rem Install pkg-config, which meson requires even on windows
|
||||
cinst -y pkgconfiglite
|
||||
)
|
||||
|
||||
rem Install flex/bison
|
||||
set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
|
||||
if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
|
||||
7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
||||
set Path=%CD%\winflexbison;%Path%
|
||||
win_flex --version
|
||||
win_bison --version
|
||||
rem Download and extract LLVM
|
||||
if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
|
||||
7z x -y "%LLVM_ARCHIVE%" > nul
|
||||
if "%buildsystem%" == "scons" (
|
||||
mkdir llvm\bin
|
||||
set LLVM=%CD%\llvm
|
||||
) else (
|
||||
move llvm subprojects\
|
||||
copy .appveyor\llvm-wrap.meson subprojects\llvm\meson.build
|
||||
)
|
||||
goto :eof
|
||||
|
||||
:build_script
|
||||
if "%buildsystem%" == "scons" (
|
||||
call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
|
||||
) else (
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=x86
|
||||
rem We use default-library as static to affect any wraps (such as expat and zlib)
|
||||
rem it would be better if we could set subprojects buildtype independently,
|
||||
rem but I haven't written that patch yet :)
|
||||
call meson builddir --backend=vs2017 --default-library=static -Dbuild-tests=true -Db_vscrt=mtd --buildtype=release -Dllvm=true -Dgallium-drivers=swrast -Dosmesa=gallium
|
||||
pushd builddir
|
||||
call msbuild mesa.sln /m
|
||||
popd
|
||||
)
|
||||
goto :eof
|
||||
|
||||
:test_script
|
||||
if "%buildsystem%" == "scons" (
|
||||
call scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
|
||||
) else (
|
||||
call meson test -C builddir
|
||||
)
|
||||
goto :eof
|
@@ -1,36 +0,0 @@
|
||||
# A meson.build file for binary wrapping the LLVM used in the appvyeor CI
|
||||
project('llvm', ['cpp'])
|
||||
|
||||
cpp = meson.get_compiler('cpp')
|
||||
|
||||
_deps = []
|
||||
_search = join_paths(meson.current_source_dir(), 'lib')
|
||||
foreach d : ['LLVMAnalysis', 'LLVMAsmParser', 'LLVMAsmPrinter',
|
||||
'LLVMBinaryFormat', 'LLVMBitReader', 'LLVMBitWriter',
|
||||
'LLVMCodeGen', 'LLVMCore', 'LLVMCoroutines', 'LLVMCoverage',
|
||||
'LLVMDebugInfoCodeView', 'LLVMDebugInfoDWARF',
|
||||
'LLVMDebugInfoMSF', 'LLVMDebugInfoPDB', 'LLVMDemangle',
|
||||
'LLVMDlltoolDriver', 'LLVMExecutionEngine', 'LLVMGlobalISel',
|
||||
'LLVMInstCombine', 'LLVMInstrumentation', 'LLVMInterpreter',
|
||||
'LLVMipo', 'LLVMIRReader', 'LLVMLibDriver', 'LLVMLineEditor',
|
||||
'LLVMLinker', 'LLVMLTO', 'LLVMMCDisassembler', 'LLVMMCJIT',
|
||||
'LLVMMC', 'LLVMMCParser', 'LLVMMIRParser', 'LLVMObjCARCOpts',
|
||||
'LLVMObject', 'LLVMObjectYAML', 'LLVMOption', 'LLVMOrcJIT',
|
||||
'LLVMPasses', 'LLVMProfileData', 'LLVMRuntimeDyld',
|
||||
'LLVMScalarOpts', 'LLVMSelectionDAG', 'LLVMSupport',
|
||||
'LLVMSymbolize', 'LLVMTableGen', 'LLVMTarget',
|
||||
'LLVMTransformUtils', 'LLVMVectorize', 'LLVMX86AsmParser',
|
||||
'LLVMX86AsmPrinter', 'LLVMX86CodeGen', 'LLVMX86Desc',
|
||||
'LLVMX86Disassembler', 'LLVMX86Info', 'LLVMX86Utils',
|
||||
'LLVMXRay']
|
||||
_deps += cpp.find_library(d, dirs : _search)
|
||||
endforeach
|
||||
|
||||
dep_llvm = declare_dependency(
|
||||
include_directories : include_directories('include'),
|
||||
dependencies : _deps,
|
||||
version : '5.0.1',
|
||||
)
|
||||
|
||||
has_rtti = false
|
||||
irbuilder_h = files('include/llvm/IR/IRBuilder.h')
|
@@ -32,10 +32,6 @@ indent_size = 2
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.html]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
|
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
*.dsp -crlf
|
||||
*.dsw -crlf
|
||||
*.sln -crlf
|
||||
*.vcproj -crlf
|
742
.gitlab-ci.yml
742
.gitlab-ci.yml
@@ -1,88 +1,5 @@
|
||||
variables:
|
||||
UPSTREAM_REPO: mesa/mesa
|
||||
|
||||
include:
|
||||
- project: 'wayland/ci-templates'
|
||||
# Must be the same as in .gitlab-ci/lava-gitlab-ci.yml
|
||||
ref: 0a9bdd33a98f05af6761ab118b5074952242aab0
|
||||
file: '/templates/debian.yml'
|
||||
- local: '.gitlab-ci/lava-gitlab-ci.yml'
|
||||
|
||||
stages:
|
||||
- container
|
||||
- build
|
||||
- test
|
||||
- success
|
||||
|
||||
|
||||
# When to automatically run the CI
|
||||
.ci-run-policy:
|
||||
rules:
|
||||
# Run pipeline by default for merge requests changing files affecting it
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
changes: &paths
|
||||
- VERSION
|
||||
- bin/**/*
|
||||
# GitLab CI
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
# Meson
|
||||
- meson*
|
||||
- build-support/**/*
|
||||
- subprojects/**/*
|
||||
# SCons
|
||||
- SConstruct
|
||||
- scons/**/*
|
||||
- common.py
|
||||
# Source code
|
||||
- include/**/*
|
||||
- src/**/*
|
||||
when: on_success
|
||||
# Run pipeline by default in the main project if files affecting it were
|
||||
# changed
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
changes:
|
||||
*paths
|
||||
when: on_success
|
||||
# Allow triggering jobs manually on branches of forked projects
|
||||
- if: '$CI_PROJECT_PATH != "mesa/mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
||||
when: manual
|
||||
# Otherwise, most jobs won't run
|
||||
- when: never
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
# Cancel CI run if a newer commit is pushed to the same branch
|
||||
interruptible: true
|
||||
|
||||
success:
|
||||
stage: success
|
||||
image: debian:stable-slim
|
||||
only:
|
||||
- merge_requests
|
||||
except:
|
||||
changes:
|
||||
*paths
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
script:
|
||||
- echo "Dummy job to make sure every merge request pipeline runs at least one job"
|
||||
|
||||
|
||||
.ci-deqp-artifacts:
|
||||
artifacts:
|
||||
when: always
|
||||
untracked: false
|
||||
paths:
|
||||
# Watch out! Artifacts are relative to the build dir.
|
||||
# https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
|
||||
- artifacts
|
||||
|
||||
# Build the CI docker images.
|
||||
#
|
||||
# DEBIAN_TAG is the tag of the docker image used by later stage jobs. If the
|
||||
# image doesn't exist yet, the container stage job generates it.
|
||||
# This is the tag of the docker image used for the build jobs. If the
|
||||
# image doesn't exist yet, the containers-build stage generates it.
|
||||
#
|
||||
# In order to generate a new image, one should generally change the tag.
|
||||
# While removing the image from the registry would also work, that's not
|
||||
@@ -95,107 +12,63 @@ success:
|
||||
# main repository, it's recommended to remove the image from the source
|
||||
# repository's container registry, so that the image from the main
|
||||
# repository's registry will be used there as well.
|
||||
variables:
|
||||
UPSTREAM_REPO: mesa/mesa
|
||||
DEBIAN_TAG: "2019-08-09"
|
||||
DEBIAN_VERSION: stretch-slim
|
||||
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
|
||||
|
||||
.container:
|
||||
stage: container
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
include:
|
||||
- project: 'wayland/ci-templates'
|
||||
ref: c73dae8b84697ef18e2dbbf4fed7386d9652b0cd
|
||||
file: '/templates/debian.yml'
|
||||
|
||||
stages:
|
||||
- containers-build
|
||||
- build+test
|
||||
- test
|
||||
|
||||
|
||||
# When to automatically run the CI
|
||||
.ci-run-policy: &ci-run-policy
|
||||
only:
|
||||
- branches@mesa/mesa
|
||||
- merge_requests
|
||||
- /^ci([-/].*)?$/
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
|
||||
.ci-deqp-artifacts: &ci-deqp-artifacts
|
||||
artifacts:
|
||||
when: always
|
||||
untracked: false
|
||||
paths:
|
||||
# Watch out! Artifacts are relative to the build dir.
|
||||
# https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
|
||||
- artifacts
|
||||
|
||||
# CONTAINERS
|
||||
|
||||
debian:
|
||||
extends: .debian@container-ifnot-exists
|
||||
stage: containers-build
|
||||
<<: *ci-run-policy
|
||||
variables:
|
||||
DEBIAN_VERSION: buster-slim
|
||||
REPO_SUFFIX: $CI_JOB_NAME
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
||||
# no need to pull the whole repo to build the container image
|
||||
GIT_STRATEGY: none
|
||||
|
||||
# Debian 10 based x86 build image
|
||||
x86_build:
|
||||
extends:
|
||||
- .debian@container-ifnot-exists
|
||||
- .container
|
||||
variables:
|
||||
DEBIAN_TAG: &x86_build "2020-01-14"
|
||||
|
||||
.use-x86_build:
|
||||
variables:
|
||||
TAG: *x86_build
|
||||
image: "$CI_REGISTRY_IMAGE/debian/x86_build:$TAG"
|
||||
needs:
|
||||
- x86_build
|
||||
|
||||
# Debian 10 based x86 test image for GL
|
||||
x86_test-gl:
|
||||
extends: x86_build
|
||||
variables:
|
||||
DEBIAN_TAG: &x86_test-gl "2020-01-14"
|
||||
|
||||
# Debian 10 based x86 test image for VK
|
||||
x86_test-vk:
|
||||
extends: x86_build
|
||||
variables:
|
||||
DEBIAN_TAG: &x86_test-vk "2020-01-14"
|
||||
# Can only be triggered manually on personal branches because RADV is the only
|
||||
# driver that does Vulkan testing at the moment.
|
||||
rules:
|
||||
# Never build the test image for VK by default in the main project.
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
when: never
|
||||
# Never build the test image for VK by default for merge requests.
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
when: never
|
||||
# Otherwise, allow building it manually for personal branches.
|
||||
- when: manual
|
||||
|
||||
|
||||
# Debian 9 based x86 build image (old LLVM)
|
||||
x86_build_old:
|
||||
extends: x86_build
|
||||
variables:
|
||||
DEBIAN_TAG: &x86_build_old "2019-09-18"
|
||||
DEBIAN_VERSION: stretch-slim
|
||||
|
||||
.use-x86_build_old:
|
||||
variables:
|
||||
TAG: *x86_build_old
|
||||
image: "$CI_REGISTRY_IMAGE/debian/x86_build_old:$TAG"
|
||||
needs:
|
||||
- x86_build_old
|
||||
|
||||
# Debian 10 based ARM build image
|
||||
arm_build:
|
||||
extends:
|
||||
- .debian@container-ifnot-exists@arm64v8
|
||||
- .container
|
||||
variables:
|
||||
DEBIAN_TAG: &arm_build "2020-01-14"
|
||||
|
||||
.use-arm_build:
|
||||
variables:
|
||||
TAG: *arm_build
|
||||
image: "$CI_REGISTRY_IMAGE/debian/arm_build:$TAG"
|
||||
needs:
|
||||
- arm_build
|
||||
|
||||
# Debian 10 based ARM test image
|
||||
arm_test:
|
||||
extends: arm_build
|
||||
variables:
|
||||
DEBIAN_TAG: &arm_test "2019-12-18"
|
||||
|
||||
.use-arm_test:
|
||||
variables:
|
||||
TAG: *arm_test
|
||||
image: "$CI_REGISTRY_IMAGE/debian/arm_test:$TAG"
|
||||
needs:
|
||||
- meson-arm64
|
||||
- arm_test
|
||||
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
|
||||
|
||||
|
||||
# BUILD
|
||||
|
||||
# Shared between windows and Linux
|
||||
.build-common:
|
||||
extends: .ci-run-policy
|
||||
stage: build
|
||||
.build:
|
||||
<<: *ci-run-policy
|
||||
image: $DEBIAN_IMAGE
|
||||
stage: build+test
|
||||
cache:
|
||||
paths:
|
||||
- ccache
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
@@ -203,68 +76,93 @@ arm_test:
|
||||
# scons:
|
||||
- build/*/config.log
|
||||
- shader-db
|
||||
|
||||
# Just Linux
|
||||
.build-linux:
|
||||
extends: .build-common
|
||||
variables:
|
||||
CCACHE_COMPILERCHECK: "content"
|
||||
CCACHE_COMPRESS: "true"
|
||||
CCACHE_DIR: /cache/mesa/ccache
|
||||
# Use ccache transparently, and print stats before/after
|
||||
before_script:
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- export CCACHE_BASEDIR="$PWD"
|
||||
- ccache --show-stats
|
||||
- export CCACHE_DIR="$PWD/ccache"
|
||||
- ccache --zero-stats || true
|
||||
- ccache --show-stats || true
|
||||
after_script:
|
||||
# In case the install dir is being saved as artifacts, tar it up
|
||||
# so that symlinks and hardlinks aren't each packed separately in
|
||||
# the zip file.
|
||||
- if [ -d install ]; then
|
||||
tar -cf artifacts/install.tar install;
|
||||
fi
|
||||
- export CCACHE_DIR="$PWD/ccache"
|
||||
- ccache --show-stats
|
||||
|
||||
.build-windows:
|
||||
extends: .build-common
|
||||
tags:
|
||||
- mesa-windows
|
||||
cache:
|
||||
key: ${CI_JOB_NAME}
|
||||
paths:
|
||||
- subprojects/packagecache
|
||||
|
||||
.meson-build:
|
||||
extends:
|
||||
- .build-linux
|
||||
- .use-x86_build
|
||||
variables:
|
||||
LLVM_VERSION: 9
|
||||
extends: .build
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
|
||||
.scons-build:
|
||||
extends:
|
||||
- .build-linux
|
||||
- .use-x86_build
|
||||
extends: .build
|
||||
variables:
|
||||
SCONSFLAGS: "-j4"
|
||||
script:
|
||||
- .gitlab-ci/scons-build.sh
|
||||
- if test -n "$LLVM_VERSION"; then
|
||||
export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
|
||||
fi
|
||||
- scons $SCONS_TARGET
|
||||
- eval $SCONS_CHECK_COMMAND
|
||||
|
||||
meson-testing:
|
||||
extends:
|
||||
- .meson-build
|
||||
- .ci-deqp-artifacts
|
||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
||||
# gallium drivers combined.
|
||||
# Start this early so that it doesn't limit the total run time.
|
||||
#
|
||||
# We also stick the glvnd build here, since we want non-glvnd in
|
||||
# meson-main for actual driver CI.
|
||||
meson-swr-glvnd:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glx=dri
|
||||
-D gbm=true
|
||||
-D glvnd=true
|
||||
-D egl=true
|
||||
-D platforms=x11,drm,surfaceless
|
||||
GALLIUM_ST: >
|
||||
-D dri3=true
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
VULKAN_DRIVERS: amd
|
||||
BUILDTYPE: "debugoptimized"
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
-D gallium-vdpau=false
|
||||
-D gallium-xvmc=false
|
||||
-D gallium-omx=disabled
|
||||
-D gallium-va=false
|
||||
-D gallium-xa=false
|
||||
-D gallium-nine=false
|
||||
-D gallium-opencl=disabled
|
||||
GALLIUM_DRIVERS: "swr,iris"
|
||||
LLVM_VERSION: "6.0"
|
||||
|
||||
meson-clang:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_DRIVERS: "auto"
|
||||
GALLIUM_DRIVERS: "auto"
|
||||
VULKAN_DRIVERS: intel,amd,freedreno
|
||||
CC: "ccache clang-8"
|
||||
CXX: "ccache clang++-8"
|
||||
before_script:
|
||||
- export CCACHE_BASEDIR="$PWD" CCACHE_DIR="$PWD/ccache"
|
||||
- ccache --zero-stats --show-stats || true
|
||||
# clang++ breaks if it picks up the GCC 8 directory without libstdc++.so
|
||||
- apt-get remove -y libgcc-8-dev
|
||||
|
||||
scons-swr:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: "swr=1"
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
LLVM_VERSION: "6.0"
|
||||
|
||||
scons-win64:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: platform=windows machine=x86_64
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
|
||||
meson-main:
|
||||
extends: .meson-build
|
||||
@@ -286,102 +184,14 @@ meson-main:
|
||||
-D gallium-xa=true
|
||||
-D gallium-nine=true
|
||||
-D gallium-opencl=disabled
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima"
|
||||
LLVM_VERSION: "7"
|
||||
EXTRA_OPTION: >
|
||||
-D osmesa=gallium
|
||||
-D tools=all
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/run-shader-db.sh
|
||||
|
||||
.meson-cross:
|
||||
extends:
|
||||
- .meson-build
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D gbm=false
|
||||
-D egl=true
|
||||
-D platforms=surfaceless
|
||||
-D osmesa=none
|
||||
GALLIUM_ST: >
|
||||
-D dri3=false
|
||||
-D gallium-vdpau=false
|
||||
-D gallium-xvmc=false
|
||||
-D gallium-omx=disabled
|
||||
-D gallium-va=false
|
||||
-D gallium-xa=false
|
||||
-D gallium-nine=false
|
||||
|
||||
.meson-arm:
|
||||
extends:
|
||||
- .meson-cross
|
||||
- .use-arm_build
|
||||
variables:
|
||||
VULKAN_DRIVERS: freedreno
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
|
||||
MESON_SHADERDB: "true"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
EXTRA_OPTION: >
|
||||
-D I-love-half-baked-turnips=true
|
||||
tags:
|
||||
- aarch64
|
||||
|
||||
meson-armhf:
|
||||
extends:
|
||||
- .meson-arm
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
CROSS: armhf
|
||||
LLVM_VERSION: "7"
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
|
||||
meson-arm64:
|
||||
extends:
|
||||
- .meson-arm
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
LLVM_VERSION: "8"
|
||||
VULKAN_DRIVERS: "freedreno,amd"
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- .gitlab-ci/prepare-artifacts.sh
|
||||
|
||||
meson-clang:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glvnd=true
|
||||
DRI_DRIVERS: "auto"
|
||||
GALLIUM_DRIVERS: "auto"
|
||||
VULKAN_DRIVERS: intel,amd,freedreno
|
||||
CC: "ccache clang-9"
|
||||
CXX: "ccache clang++-9"
|
||||
|
||||
.meson-windows:
|
||||
extends:
|
||||
- .build-windows
|
||||
before_script:
|
||||
- $ENV:ARCH = "x86"
|
||||
- $ENV:VERSION = "2019\Community"
|
||||
script:
|
||||
- cmd /C .gitlab-ci\meson-build.bat
|
||||
|
||||
scons-swr:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: "swr=1"
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
LLVM_VERSION: "6.0"
|
||||
|
||||
scons-win64:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: platform=windows machine=x86_64
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
<<: *ci-deqp-artifacts
|
||||
|
||||
meson-clover:
|
||||
extends: .meson-build
|
||||
@@ -403,27 +213,12 @@ meson-clover:
|
||||
script:
|
||||
- export GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- .gitlab-ci/meson-build.sh
|
||||
- LLVM_VERSION=8 .gitlab-ci/meson-build.sh
|
||||
- export GALLIUM_DRIVERS="i915,r600"
|
||||
- LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh
|
||||
- LLVM_VERSION=7 .gitlab-ci/meson-build.sh
|
||||
|
||||
meson-clover-old-llvm:
|
||||
extends:
|
||||
- meson-clover
|
||||
- .use-x86_build_old
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D egl=false
|
||||
-D gbm=false
|
||||
-D platforms=drm,surfaceless
|
||||
GALLIUM_DRIVERS: "i915,r600"
|
||||
script:
|
||||
- export GALLIUM_DRIVERS="i915,r600"
|
||||
- LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh
|
||||
- LLVM_VERSION=4.0 .gitlab-ci/meson-build.sh
|
||||
- LLVM_VERSION=5.0 .gitlab-ci/meson-build.sh
|
||||
- LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh
|
||||
|
||||
meson-vulkan:
|
||||
extends: .meson-build
|
||||
@@ -444,14 +239,58 @@ meson-vulkan:
|
||||
-D gallium-xa=false
|
||||
-D gallium-nine=false
|
||||
-D gallium-opencl=disabled
|
||||
-D b_sanitize=undefined
|
||||
-D c_args=-fno-sanitize-recover=all
|
||||
-D cpp_args=-fno-sanitize-recover=all
|
||||
UBSAN_OPTIONS: "print_stacktrace=1"
|
||||
VULKAN_DRIVERS: intel,amd,freedreno
|
||||
LLVM_VERSION: "7"
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-overlay-layer=true
|
||||
|
||||
.meson-cross:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D gbm=false
|
||||
-D egl=false
|
||||
-D platforms=surfaceless
|
||||
-D osmesa=none
|
||||
GALLIUM_ST: >
|
||||
-D dri3=false
|
||||
-D gallium-vdpau=false
|
||||
-D gallium-xvmc=false
|
||||
-D gallium-omx=disabled
|
||||
-D gallium-va=false
|
||||
-D gallium-xa=false
|
||||
-D gallium-nine=false
|
||||
-D llvm=false
|
||||
<<: *ci-deqp-artifacts
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
|
||||
meson-armhf:
|
||||
extends: .meson-cross
|
||||
variables:
|
||||
CROSS: armhf
|
||||
VULKAN_DRIVERS: freedreno
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
|
||||
# Disable the tests since we're cross compiling.
|
||||
EXTRA_OPTION: >
|
||||
-D build-tests=false
|
||||
-D I-love-half-baked-turnips=true
|
||||
-D vulkan-overlay-layer=true
|
||||
|
||||
meson-arm64:
|
||||
extends: .meson-cross
|
||||
variables:
|
||||
CROSS: arm64
|
||||
VULKAN_DRIVERS: freedreno
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
|
||||
# Disable the tests since we're cross compiling.
|
||||
EXTRA_OPTION: >
|
||||
-D build-tests=false
|
||||
-D I-love-half-baked-turnips=true
|
||||
-D vulkan-overlay-layer=true
|
||||
|
||||
# While the main point of this build is testing the i386 cross build,
|
||||
# we also use this one to test some other options that are exclusive
|
||||
# with meson-main's choices (classic swrast and osmesa)
|
||||
@@ -462,229 +301,82 @@ meson-i386:
|
||||
VULKAN_DRIVERS: intel
|
||||
DRI_DRIVERS: "swrast"
|
||||
GALLIUM_DRIVERS: "iris"
|
||||
# Disable i386 tests, because u_format_tests gets precision
|
||||
# failures in dxtn unpacking
|
||||
EXTRA_OPTION: >
|
||||
-D build-tests=false
|
||||
-D vulkan-overlay-layer=true
|
||||
-D llvm=false
|
||||
-D osmesa=classic
|
||||
-D werror=true
|
||||
|
||||
meson-mingw32-x86_64:
|
||||
extends: .meson-build
|
||||
scons-nollvm:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_DRIVERS: ""
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
EXTRA_OPTION: >
|
||||
-Dllvm=false
|
||||
-Dosmesa=gallium
|
||||
--cross-file=.gitlab-ci/x86_64-w64-mingw32
|
||||
SCONS_TARGET: "llvm=0"
|
||||
SCONS_CHECK_COMMAND: "scons llvm=0 check"
|
||||
|
||||
scons:
|
||||
scons-llvm:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: "llvm=1"
|
||||
SCONS_CHECK_COMMAND: "scons llvm=1 force_scons=1 check"
|
||||
script:
|
||||
- SCONS_TARGET="" SCONS_CHECK_COMMAND="scons check force_scons=1" .gitlab-ci/scons-build.sh
|
||||
- LLVM_VERSION=9 .gitlab-ci/scons-build.sh
|
||||
SCONS_CHECK_COMMAND: "scons llvm=1 check"
|
||||
LLVM_VERSION: "3.4"
|
||||
# LLVM 3.4 packages were built with an old libstdc++ ABI
|
||||
CXX: "g++ -D_GLIBCXX_USE_CXX11_ABI=0"
|
||||
|
||||
scons-old-llvm:
|
||||
extends:
|
||||
- scons
|
||||
- .use-x86_build_old
|
||||
script:
|
||||
- LLVM_VERSION=3.9 .gitlab-ci/scons-build.sh
|
||||
|
||||
.test:
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
.deqp-test:
|
||||
<<: *ci-run-policy
|
||||
stage: test
|
||||
image: $DEBIAN_IMAGE
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
before_script:
|
||||
DEQP_SKIPS: deqp-default-skips.txt
|
||||
script:
|
||||
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
||||
- rm -rf install
|
||||
- tar -xf artifacts/install.tar
|
||||
- LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
|
||||
artifacts:
|
||||
when: always
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||
paths:
|
||||
- results/
|
||||
dependencies:
|
||||
- meson-testing
|
||||
|
||||
.test-gl:
|
||||
extends:
|
||||
- .test
|
||||
variables:
|
||||
TAG: *x86_test-gl
|
||||
image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:$TAG"
|
||||
needs:
|
||||
- meson-testing
|
||||
- x86_test-gl
|
||||
|
||||
.test-vk:
|
||||
extends:
|
||||
- .test
|
||||
variables:
|
||||
TAG: *x86_test-vk
|
||||
image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:$TAG"
|
||||
needs:
|
||||
- meson-testing
|
||||
- x86_test-vk
|
||||
|
||||
.piglit-test:
|
||||
extends: .test-gl
|
||||
- ./artifacts/deqp-runner.sh
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||
paths:
|
||||
- summary/
|
||||
variables:
|
||||
LIBGL_ALWAYS_SOFTWARE: 1
|
||||
PIGLIT_NO_WINDOW: 1
|
||||
script:
|
||||
- artifacts/piglit/run.sh
|
||||
|
||||
piglit-quick_gl:
|
||||
extends: .piglit-test
|
||||
variables:
|
||||
LP_NUM_THREADS: 0
|
||||
NIR_VALIDATE: 0
|
||||
PIGLIT_OPTIONS: >
|
||||
--process-isolation false
|
||||
-x arb_gpu_shader5
|
||||
-x egl_ext_device_
|
||||
-x egl_ext_platform_device
|
||||
-x ext_timer_query@time-elapsed
|
||||
-x glx-multithread-clearbuffer
|
||||
-x glx-multithread-shader-compile
|
||||
-x max-texture-size
|
||||
-x maxsize
|
||||
PIGLIT_PROFILES: quick_gl
|
||||
|
||||
piglit-glslparser:
|
||||
extends: .piglit-test
|
||||
variables:
|
||||
LP_NUM_THREADS: 0
|
||||
NIR_VALIDATE: 0
|
||||
PIGLIT_PROFILES: glslparser
|
||||
|
||||
piglit-quick_shader:
|
||||
extends: .piglit-test
|
||||
variables:
|
||||
LP_NUM_THREADS: 1
|
||||
NIR_VALIDATE: 0
|
||||
PIGLIT_PROFILES: quick_shader
|
||||
|
||||
.deqp-test:
|
||||
variables:
|
||||
DEQP_SKIPS: deqp-default-skips.txt
|
||||
script:
|
||||
- ./artifacts/deqp-runner.sh
|
||||
|
||||
.deqp-test-gl:
|
||||
extends:
|
||||
- .test-gl
|
||||
- .deqp-test
|
||||
|
||||
.deqp-test-vk:
|
||||
extends:
|
||||
- .test-vk
|
||||
- .deqp-test
|
||||
variables:
|
||||
DEQP_VER: vk
|
||||
- results/
|
||||
|
||||
test-llvmpipe-gles2:
|
||||
variables:
|
||||
DEQP_VER: gles2
|
||||
DEQP_PARALLEL: 4
|
||||
NIR_VALIDATE: 0
|
||||
# Don't use threads inside llvmpipe, we've already got all 4 cores
|
||||
# busy with DEQP_PARALLEL.
|
||||
LP_NUM_THREADS: 0
|
||||
DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
extends: .deqp-test-gl
|
||||
|
||||
test-softpipe-gles2:
|
||||
extends: test-llvmpipe-gles2
|
||||
variables:
|
||||
DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
|
||||
DEQP_SKIPS: deqp-softpipe-skips.txt
|
||||
GALLIUM_DRIVER: "softpipe"
|
||||
|
||||
test-softpipe-gles3:
|
||||
parallel: 2
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
extends: test-softpipe-gles2
|
||||
|
||||
test-softpipe-gles31:
|
||||
parallel: 4
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
extends: test-softpipe-gles2
|
||||
DEQP_VER: gles2
|
||||
DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
DEQP_RENDERER_MATCH: "llvmpipe"
|
||||
extends: .deqp-test
|
||||
dependencies:
|
||||
- meson-main
|
||||
|
||||
arm64_a630_gles2:
|
||||
extends:
|
||||
- .deqp-test-gl
|
||||
- .use-arm_test
|
||||
test-softpipe-gles2:
|
||||
parallel: 4
|
||||
variables:
|
||||
DEQP_VER: gles2
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
|
||||
DEQP_SKIPS: deqp-freedreno-a630-skips.txt
|
||||
NIR_VALIDATE: 0
|
||||
DEQP_PARALLEL: 4
|
||||
FLAKES_CHANNEL: "#freedreno-ci"
|
||||
tags:
|
||||
- mesa-cheza
|
||||
DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
DEQP_RENDERER_MATCH: "softpipe"
|
||||
GALLIUM_DRIVER: "softpipe"
|
||||
extends: .deqp-test
|
||||
dependencies:
|
||||
- meson-arm64
|
||||
- meson-main
|
||||
|
||||
arm64_a630_gles31:
|
||||
extends: arm64_a630_gles2
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
|
||||
arm64_a630_gles3:
|
||||
extends: arm64_a630_gles2
|
||||
# The GLES2 CTS run takes about 8 minutes of CPU time, while GLES3 is
|
||||
# 25 minutes. Until we can get its runtime down, just do a partial
|
||||
# (every 10 tests) run.
|
||||
test-softpipe-gles3-limited:
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
|
||||
arm64_a306_gles2:
|
||||
extends: arm64_a630_gles2
|
||||
variables:
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
|
||||
DEQP_SKIPS: deqp-default-skips.txt
|
||||
tags:
|
||||
- db410c
|
||||
|
||||
# RADV CI
|
||||
.test-radv:
|
||||
variables:
|
||||
VK_DRIVER: radeon
|
||||
RADV_DEBUG: checkir
|
||||
# Can only be triggered manually on personal branches because RADV is the only
|
||||
# driver that does Vulkan testing at the moment.
|
||||
rules:
|
||||
# Never test RADV by default in the main project.
|
||||
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
|
||||
when: never
|
||||
# Never test RADV by default for merge requests.
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
||||
when: never
|
||||
# Otherwise, allow testing RADV if the test image for VK has been manually
|
||||
# started.
|
||||
- when: on_success
|
||||
|
||||
radv_polaris10_vkcts:
|
||||
extends:
|
||||
- .deqp-test-vk
|
||||
- .test-radv
|
||||
variables:
|
||||
DEQP_PARALLEL: 4
|
||||
DEQP_SKIPS: deqp-radv-polaris10-skips.txt
|
||||
tags:
|
||||
- polaris10
|
||||
DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
DEQP_RENDERER_MATCH: "softpipe"
|
||||
GALLIUM_DRIVER: "softpipe"
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 10
|
||||
extends: .deqp-test
|
||||
dependencies:
|
||||
- meson-main
|
||||
|
@@ -1,122 +0,0 @@
|
||||
## Mesa testing using gitlab-runner
|
||||
|
||||
The goal of the "test" stage of the .gitlab-ci.yml is to do pre-merge
|
||||
testing of Mesa drivers on various platforms, so that we can ensure no
|
||||
regressions are merged, as long as developers are merging code using
|
||||
the "Merge when pipeline completes" button.
|
||||
|
||||
This document only covers the CI from .gitlab-ci.yml and this
|
||||
directory. For other CI systems, see Intel's [Mesa
|
||||
CI](https://gitlab.freedesktop.org/Mesa_CI) or panfrost's LAVA-based
|
||||
CI (`src/gallium/drivers/panfrost/ci/`)
|
||||
|
||||
### Software architecture
|
||||
|
||||
For freedreno and llvmpipe CI, we're using gitlab-runner on the test
|
||||
devices (DUTs), cached docker containers with VK-GL-CTS, and the
|
||||
normal shared x86_64 runners to build the Mesa drivers to be run
|
||||
inside of those containers on the DUTs.
|
||||
|
||||
The docker containers are rebuilt from the debian-install.sh script
|
||||
when DEBIAN\_TAG is changed in .gitlab-ci.yml, and
|
||||
debian-test-install.sh when DEBIAN\_ARM64\_TAG is changed in
|
||||
.gitlab-ci.yml. The resulting images are around 500MB, and are
|
||||
expected to change approximately weekly (though an individual
|
||||
developer working on them may produce many more images while trying to
|
||||
come up with a working MR!).
|
||||
|
||||
gitlab-runner is a client that polls gitlab.freedesktop.org for
|
||||
available jobs, with no inbound networking requirements. Jobs can
|
||||
have tags, so we can have DUT-specific jobs that only run on runners
|
||||
with that tag marked in the gitlab UI.
|
||||
|
||||
Since dEQP takes a long time to run, we mark the job as "parallel" at
|
||||
some level, which spawns multiple jobs from one definition, and then
|
||||
deqp-runner.sh takes the corresponding fraction of the test list for
|
||||
that job.
|
||||
|
||||
To reduce dEQP runtime (or avoid tests with unreliable results), a
|
||||
deqp-runner.sh invocation can provide a list of tests to skip. If
|
||||
your driver is not yet conformant, you can pass a list of expected
|
||||
failures, and the job will only fail on tests that aren't listed (look
|
||||
at the job's log for which specific tests failed).
|
||||
|
||||
### DUT requirements
|
||||
|
||||
#### DUTs must have a stable kernel and GPU reset.
|
||||
|
||||
If the system goes down during a test run, that job will eventually
|
||||
time out and fail (default 1 hour). However, if the kernel can't
|
||||
reliably reset the GPU on failure, bugs in one MR may leak into
|
||||
spurious failures in another MR. This would be an unacceptable impact
|
||||
on Mesa developers working on other drivers.
|
||||
|
||||
#### DUTs must be able to run docker
|
||||
|
||||
The Mesa gitlab-runner based test architecture is built around docker,
|
||||
so that we can cache the debian package installation and CTS build
|
||||
step across multiple test runs. Since the images are large and change
|
||||
approximately weekly, the DUTs also need to be running some script to
|
||||
prune stale docker images periodically in order to not run out of disk
|
||||
space as we rev those containers (perhaps [this
|
||||
script](https://gitlab.com/gitlab-org/gitlab-runner/issues/2980#note_169233611)).
|
||||
|
||||
Note that docker doesn't allow containers to be stored on NFS, and
|
||||
doesn't allow multiple docker daemons to interact with the same
|
||||
network block device, so you will probably need some sort of physical
|
||||
storage on your DUTs.
|
||||
|
||||
#### DUTs must be public
|
||||
|
||||
By including your device in .gitlab-ci.yml, you're effectively letting
|
||||
anyone on the internet run code on your device. docker containers may
|
||||
provide some limited protection, but how much you trust that and what
|
||||
you do to mitigate hostile access is up to you.
|
||||
|
||||
#### DUTs must expose the dri device nodes to the containers.
|
||||
|
||||
Obviously, to get access to the HW, we need to pass the render node
|
||||
through. This is done by adding `devices = ["/dev/dri"]` to the
|
||||
`runners.docker` section of /etc/gitlab-runner/config.toml.
|
||||
|
||||
### HW CI farm expectations
|
||||
|
||||
To make sure that testing of one vendor's drivers doesn't block
|
||||
unrelated work by other vendors, we require that a given driver's test
|
||||
farm produces a spurious failure no more than once a week. If every
|
||||
driver had CI and failed once a week, we would be seeing someone's
|
||||
code getting blocked on a spurious failure daily, which is an
|
||||
unacceptable cost to the project.
|
||||
|
||||
Additionally, the test farm needs to be able to provide a short enough
|
||||
turnaround time that people can regularly use the "Merge when pipeline
|
||||
succeeds" button successfully (until we get
|
||||
[marge-bot](https://github.com/smarkets/marge-bot) in place on
|
||||
freedesktop.org). As a result, we require that the test farm be able
|
||||
to handle a whole pipeline's worth of jobs in less than 5 minutes (to
|
||||
compare, the build stage is about 10 minutes, if you could get all
|
||||
your jobs scheduled on the shared runners in time.).
|
||||
|
||||
If a test farm is short the HW to provide these guarantees, consider
|
||||
dropping tests to reduce runtime.
|
||||
`VK-GL-CTS/scripts/log/bottleneck_report.py` can help you find what
|
||||
tests were slow in a `results.qpa` file. Or, you can have a job with
|
||||
no `parallel` field set and:
|
||||
|
||||
```
|
||||
variables:
|
||||
CI_NODE_INDEX: 1
|
||||
CI_NODE_TOTAL: 10
|
||||
```
|
||||
|
||||
to just run 1/10th of the test list.
|
||||
|
||||
If a HW CI farm goes offline (network dies and all CI pipelines end up
|
||||
stalled) or its runners are consistenly spuriously failing (disk
|
||||
full?), and the maintainer is not immediately available to fix the
|
||||
issue, please push through an MR disabling that farm's jobs by adding
|
||||
'.' to the front of the jobs names until the maintainer can bring
|
||||
things back up. If this happens, the farm maintainer should provide a
|
||||
report to mesa-dev@lists.freedesktop.org after the fact explaining
|
||||
what happened and what the mitigation plan is for that failure next
|
||||
time.
|
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git --depth 1 -b mesa-ci-2019-12-17
|
||||
cd parallel-deqp-runner
|
||||
meson build/ $EXTRA_MESON_ARGS
|
||||
ninja -C build -j4 install
|
||||
cd ..
|
||||
rm -rf parallel-deqp-runner
|
@@ -1,61 +0,0 @@
|
||||
git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
# XXX: Use --depth 1 once we can drop the cherry-picks.
|
||||
git clone \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b opengl-es-cts-3.2.5.1 \
|
||||
/VK-GL-CTS
|
||||
pushd /VK-GL-CTS
|
||||
# Fix surfaceless build
|
||||
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
|
||||
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
|
||||
|
||||
# surfaceless links against libkms and such despite not using it.
|
||||
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
|
||||
sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
|
||||
sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
|
||||
|
||||
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
||||
# libpng (sigh). The archives get their checksums checked anyway, and git
|
||||
# always goes through ssh or https.
|
||||
python3 external/fetch_sources.py --insecure
|
||||
|
||||
mkdir -p /deqp
|
||||
|
||||
# Save the testlog stylesheets:
|
||||
cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp
|
||||
popd
|
||||
|
||||
pushd /deqp
|
||||
cmake -G Ninja \
|
||||
-DDEQP_TARGET=surfaceless \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
$EXTRA_CMAKE_ARGS \
|
||||
/VK-GL-CTS
|
||||
ninja
|
||||
|
||||
# Copy out the mustpass lists we want from a bunch of other junk.
|
||||
mkdir /deqp/mustpass
|
||||
for gles in gles2 gles3 gles31; do
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
|
||||
/deqp/mustpass/$gles-master.txt
|
||||
done
|
||||
|
||||
# Save *some* executor utils, but otherwise strip things down
|
||||
# to reduct deqp build size:
|
||||
mkdir /deqp/executor.save
|
||||
cp /deqp/executor/testlog-to-* /deqp/executor.save
|
||||
rm -rf /deqp/executor
|
||||
mv /deqp/executor.save /deqp/executor
|
||||
|
||||
rm -rf /deqp/external
|
||||
rm -rf /deqp/modules/internal
|
||||
rm -rf /deqp/execserver
|
||||
rm -rf /deqp/modules/egl
|
||||
rm -rf /deqp/framework
|
||||
find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
|
||||
${STRIP_CMD:-strip} modules/*/deqp-*
|
||||
du -sh *
|
||||
rm -rf /VK-GL-CTS
|
||||
popd
|
@@ -1,33 +0,0 @@
|
||||
git clone --depth 1 \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b vulkan-cts-1.1.6.0 \
|
||||
/VK-GL-CTS
|
||||
cd /VK-GL-CTS
|
||||
|
||||
# --insecure is due to SSL cert failures hitting sourceforge for zlib and
|
||||
# libpng (sigh). The archives get their checksums checked anyway, and git
|
||||
# always goes through ssh or https.
|
||||
python3 external/fetch_sources.py --insecure
|
||||
|
||||
mkdir -p /deqp
|
||||
cd /deqp
|
||||
cmake -G Ninja \
|
||||
-DDEQP_TARGET=x11_glx \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
/VK-GL-CTS
|
||||
ninja -j4
|
||||
|
||||
# Copy out the mustpass list we want.
|
||||
mkdir /deqp/mustpass
|
||||
cp /VK-GL-CTS/external/vulkancts/mustpass/master/vk-default.txt \
|
||||
/deqp/mustpass/vk-master.txt
|
||||
|
||||
rm -rf /deqp/modules/internal
|
||||
rm -rf /deqp/executor
|
||||
rm -rf /deqp/execserver
|
||||
rm -rf /deqp/modules/egl
|
||||
rm -rf /deqp/framework
|
||||
find -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' | xargs rm -rf
|
||||
strip external/vulkancts/modules/vulkan/deqp-vk
|
||||
du -sh *
|
||||
rm -rf /VK-GL-CTS
|
@@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit
|
||||
pushd /piglit
|
||||
git checkout 8771c3860505db2bcf4877216221d774bf90af6b
|
||||
patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release
|
||||
ninja -j4
|
||||
find -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' | xargs rm -rf
|
||||
rm -rf target_api
|
||||
popd
|
@@ -1,74 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
############### Install packages for building
|
||||
apt-get -y install ca-certificates
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
dpkg --add-architecture armhf
|
||||
apt-get update
|
||||
apt-get -y install \
|
||||
bc \
|
||||
bison \
|
||||
ccache \
|
||||
cmake \
|
||||
cpio \
|
||||
crossbuild-essential-armhf \
|
||||
debootstrap \
|
||||
flex \
|
||||
g++ \
|
||||
gettext \
|
||||
git \
|
||||
lavacli \
|
||||
libdrm-dev:armhf \
|
||||
libegl1-mesa-dev \
|
||||
libegl1-mesa-dev:armhf \
|
||||
libelf-dev \
|
||||
libelf-dev:armhf \
|
||||
libexpat1-dev \
|
||||
libexpat1-dev:armhf \
|
||||
libgles2-mesa-dev \
|
||||
libgles2-mesa-dev:armhf \
|
||||
libpng-dev \
|
||||
libpng-dev:armhf \
|
||||
libssl-dev \
|
||||
libvulkan-dev \
|
||||
libvulkan-dev:armhf \
|
||||
llvm-7-dev:armhf \
|
||||
llvm-8-dev \
|
||||
meson \
|
||||
pkg-config \
|
||||
python \
|
||||
python3-mako \
|
||||
unzip \
|
||||
wget \
|
||||
zlib1g-dev
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export LIBDRM_VERSION=libdrm-2.4.100
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
############### Generate cross build file for Meson
|
||||
|
||||
cross_file="/cross_file-armhf.txt"
|
||||
/usr/share/meson/debcrossgen --arch armhf -o "$cross_file"
|
||||
# Explicitly set ccache path for cross compilers
|
||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||
# Don't need wrapper for armhf executables
|
||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||
|
||||
############### Generate kernel, ramdisk, test suites, etc for LAVA jobs
|
||||
|
||||
DEBIAN_ARCH=arm64 . .gitlab-ci/container/lava_arm.sh
|
||||
DEBIAN_ARCH=armhf . .gitlab-ci/container/lava_arm.sh
|
||||
|
||||
apt-get purge -y \
|
||||
wget
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -1,64 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
############### Install packages for building
|
||||
apt-get -y install ca-certificates
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
apt-get update
|
||||
apt-get -y install \
|
||||
bzip2 \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
libc6-dev \
|
||||
libdrm-nouveau2 \
|
||||
libexpat1 \
|
||||
libgbm-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libllvm8 \
|
||||
libpng16-16 \
|
||||
libpng-dev \
|
||||
libvulkan-dev \
|
||||
libvulkan1 \
|
||||
meson \
|
||||
netcat \
|
||||
pkg-config \
|
||||
procps \
|
||||
python \
|
||||
waffle-utils \
|
||||
wget \
|
||||
zlib1g
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
. .gitlab-ci/build-deqp-gl.sh
|
||||
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y \
|
||||
bzip2 \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
libc6-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng-dev \
|
||||
libvulkan-dev \
|
||||
meson \
|
||||
pkg-config \
|
||||
python \
|
||||
wget
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -1,63 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
if [[ "$DEBIAN_ARCH" = "arm64" ]]; then
|
||||
GCC_ARCH="aarch64-linux-gnu"
|
||||
KERNEL_ARCH="arm64"
|
||||
DEFCONFIG="arch/arm64/configs/defconfig"
|
||||
DEVICE_TREES="arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dtb arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dtb arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dtb arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dtb"
|
||||
KERNEL_IMAGE_NAME="Image"
|
||||
else
|
||||
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 arch/arm/boot/dts/sun8i-h3-libretech-all-h3-cc.dtb"
|
||||
KERNEL_IMAGE_NAME="zImage"
|
||||
fi
|
||||
|
||||
############### Build dEQP runner
|
||||
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
EXTRA_MESON_ARGS="--cross-file /cross_file-armhf.txt"
|
||||
fi
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
mkdir -p /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin
|
||||
mv /usr/local/bin/deqp-runner /lava-files/rootfs-${DEBIAN_ARCH}/usr/bin/.
|
||||
|
||||
|
||||
############### Build dEQP
|
||||
EXTRA_CMAKE_ARGS="-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc -DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++"
|
||||
STRIP_CMD="${GCC_ARCH}-strip"
|
||||
. .gitlab-ci/build-deqp-gl.sh
|
||||
mv /deqp /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
|
||||
|
||||
############### Cross-build kernel
|
||||
KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/v5.5-rc5-panfrost-fixes/linux-v5.5-rc5-panfrost-fixes.tar.gz"
|
||||
|
||||
if [[ "$DEBIAN_ARCH" = "armhf" ]]; then
|
||||
export ARCH=${KERNEL_ARCH}
|
||||
export CROSS_COMPILE="${GCC_ARCH}-"
|
||||
fi
|
||||
|
||||
mkdir -p kernel
|
||||
wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C kernel
|
||||
pushd kernel
|
||||
./scripts/kconfig/merge_config.sh ${DEFCONFIG} ../.gitlab-ci/${KERNEL_ARCH}.config
|
||||
make -j12 ${KERNEL_IMAGE_NAME} dtbs
|
||||
cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /lava-files/.
|
||||
cp ${DEVICE_TREES} /lava-files/.
|
||||
popd
|
||||
rm -rf kernel
|
||||
|
||||
|
||||
############### Create rootfs
|
||||
set +e
|
||||
debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /lava-files/rootfs-${DEBIAN_ARCH}/ http://deb.debian.org/debian
|
||||
cat /lava-files/rootfs-${DEBIAN_ARCH}/debootstrap/debootstrap.log
|
||||
set -e
|
||||
|
||||
cp .gitlab-ci/create-rootfs.sh /lava-files/rootfs-${DEBIAN_ARCH}/.
|
||||
chroot /lava-files/rootfs-${DEBIAN_ARCH} sh /create-rootfs.sh
|
||||
rm /lava-files/rootfs-${DEBIAN_ARCH}/create-rootfs.sh
|
@@ -1,52 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1.4.12 (GNU/Linux)
|
||||
|
||||
mQINBFE9lCwBEADi0WUAApM/mgHJRU8lVkkw0CHsZNpqaQDNaHefD6Rw3S4LxNmM
|
||||
EZaOTkhP200XZM8lVdbfUW9xSjA3oPldc1HG26NjbqqCmWpdo2fb+r7VmU2dq3NM
|
||||
R18ZlKixiLDE6OUfaXWKamZsXb6ITTYmgTO6orQWYrnW6ckYHSeaAkW0wkDAryl2
|
||||
B5v8aoFnQ1rFiVEMo4NGzw4UX+MelF7rxaaregmKVTPiqCOSPJ1McC1dHFN533FY
|
||||
Wh/RVLKWo6npu+owtwYFQW+zyQhKzSIMvNujFRzhIxzxR9Gn87MoLAyfgKEzrbbT
|
||||
DhqqNXTxS4UMUKCQaO93TzetX/EBrRpJj+vP640yio80h4Dr5pAd7+LnKwgpTDk1
|
||||
G88bBXJAcPZnTSKu9I2c6KY4iRNbvRz4i+ZdwwZtdW4nSdl2792L7Sl7Nc44uLL/
|
||||
ZqkKDXEBF6lsX5XpABwyK89S/SbHOytXv9o4puv+65Ac5/UShspQTMSKGZgvDauU
|
||||
cs8kE1U9dPOqVNCYq9Nfwinkf6RxV1k1+gwtclxQuY7UpKXP0hNAXjAiA5KS5Crq
|
||||
7aaJg9q2F4bub0mNU6n7UI6vXguF2n4SEtzPRk6RP+4TiT3bZUsmr+1ktogyOJCc
|
||||
Ha8G5VdL+NBIYQthOcieYCBnTeIH7D3Sp6FYQTYtVbKFzmMK+36ERreL/wARAQAB
|
||||
tD1TeWx2ZXN0cmUgTGVkcnUgLSBEZWJpYW4gTExWTSBwYWNrYWdlcyA8c3lsdmVz
|
||||
dHJlQGRlYmlhbi5vcmc+iQI4BBMBAgAiBQJRPZQsAhsDBgsJCAcDAgYVCAIJCgsE
|
||||
FgIDAQIeAQIXgAAKCRAVz00Yr090Ibx+EADArS/hvkDF8juWMXxh17CgR0WZlHCC
|
||||
9CTBWkg5a0bNN/3bb97cPQt/vIKWjQtkQpav6/5JTVCSx2riL4FHYhH0iuo4iAPR
|
||||
udC7Cvg8g7bSPrKO6tenQZNvQm+tUmBHgFiMBJi92AjZ/Qn1Shg7p9ITivFxpLyX
|
||||
wpmnF1OKyI2Kof2rm4BFwfSWuf8Fvh7kDMRLHv+MlnK/7j/BNpKdozXxLcwoFBmn
|
||||
l0WjpAH3OFF7Pvm1LJdf1DjWKH0Dc3sc6zxtmBR/KHHg6kK4BGQNnFKujcP7TVdv
|
||||
gMYv84kun14pnwjZcqOtN3UJtcx22880DOQzinoMs3Q4w4o05oIF+sSgHViFpc3W
|
||||
R0v+RllnH05vKZo+LDzc83DQVrdwliV12eHxrMQ8UYg88zCbF/cHHnlzZWAJgftg
|
||||
hB08v1BKPgYRUzwJ6VdVqXYcZWEaUJmQAPuAALyZESw94hSo28FAn0/gzEc5uOYx
|
||||
K+xG/lFwgAGYNb3uGM5m0P6LVTfdg6vDwwOeTNIExVk3KVFXeSQef2ZMkhwA7wya
|
||||
KJptkb62wBHFE+o9TUdtMCY6qONxMMdwioRE5BYNwAsS1PnRD2+jtlI0DzvKHt7B
|
||||
MWd8hnoUKhMeZ9TNmo+8CpsAtXZcBho0zPGz/R8NlJhAWpdAZ1CmcPo83EW86Yq7
|
||||
BxQUKnNHcwj2ebkCDQRRPZQsARAA4jxYmbTHwmMjqSizlMJYNuGOpIidEdx9zQ5g
|
||||
zOr431/VfWq4S+VhMDhs15j9lyml0y4ok215VRFwrAREDg6UPMr7ajLmBQGau0Fc
|
||||
bvZJ90l4NjXp5p0NEE/qOb9UEHT7EGkEhaZ1ekkWFTWCgsy7rRXfZLxB6sk7pzLC
|
||||
DshyW3zjIakWAnpQ5j5obiDy708pReAuGB94NSyb1HoW/xGsGgvvCw4r0w3xPStw
|
||||
F1PhmScE6NTBIfLliea3pl8vhKPlCh54Hk7I8QGjo1ETlRP4Qll1ZxHJ8u25f/ta
|
||||
RES2Aw8Hi7j0EVcZ6MT9JWTI83yUcnUlZPZS2HyeWcUj+8nUC8W4N8An+aNps9l/
|
||||
21inIl2TbGo3Yn1JQLnA1YCoGwC34g8QZTJhElEQBN0X29ayWW6OdFx8MDvllbBV
|
||||
ymmKq2lK1U55mQTfDli7S3vfGz9Gp/oQwZ8bQpOeUkc5hbZszYwP4RX+68xDPfn+
|
||||
M9udl+qW9wu+LyePbW6HX90LmkhNkkY2ZzUPRPDHZANU5btaPXc2H7edX4y4maQa
|
||||
xenqD0lGh9LGz/mps4HEZtCI5CY8o0uCMF3lT0XfXhuLksr7Pxv57yue8LLTItOJ
|
||||
d9Hmzp9G97SRYYeqU+8lyNXtU2PdrLLq7QHkzrsloG78lCpQcalHGACJzrlUWVP/
|
||||
fN3Ht3kAEQEAAYkCHwQYAQIACQUCUT2ULAIbDAAKCRAVz00Yr090IbhWEADbr50X
|
||||
OEXMIMGRLe+YMjeMX9NG4jxs0jZaWHc/WrGR+CCSUb9r6aPXeLo+45949uEfdSsB
|
||||
pbaEdNWxF5Vr1CSjuO5siIlgDjmT655voXo67xVpEN4HhMrxugDJfCa6z97P0+ML
|
||||
PdDxim57uNqkam9XIq9hKQaurxMAECDPmlEXI4QT3eu5qw5/knMzDMZj4Vi6hovL
|
||||
wvvAeLHO/jsyfIdNmhBGU2RWCEZ9uo/MeerPHtRPfg74g+9PPfP6nyHD2Wes6yGd
|
||||
oVQwtPNAQD6Cj7EaA2xdZYLJ7/jW6yiPu98FFWP74FN2dlyEA2uVziLsfBrgpS4l
|
||||
tVOlrO2YzkkqUGrybzbLpj6eeHx+Cd7wcjI8CalsqtL6cG8cUEjtWQUHyTbQWAgG
|
||||
5VPEgIAVhJ6RTZ26i/G+4J8neKyRs4vz+57UGwY6zI4AB1ZcWGEE3Bf+CDEDgmnP
|
||||
LSwbnHefK9IljT9XU98PelSryUO/5UPw7leE0akXKB4DtekToO226px1VnGp3Bov
|
||||
1GBGvpHvL2WizEwdk+nfk8LtrLzej+9FtIcq3uIrYnsac47Pf7p0otcFeTJTjSq3
|
||||
krCaoG4Hx0zGQG2ZFpHrSrZTVy6lxvIdfi0beMgY6h78p6M9eYZHQHc02DjFkQXN
|
||||
bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw==
|
||||
=j+4q
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
@@ -1,220 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
CROSS_ARCHITECTURES="i386"
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
dpkg --add-architecture $arch
|
||||
done
|
||||
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
unzip \
|
||||
wget
|
||||
|
||||
# Upstream LLVM package repository
|
||||
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
autoconf \
|
||||
automake \
|
||||
autotools-dev \
|
||||
bison \
|
||||
clang-9 \
|
||||
cmake \
|
||||
flex \
|
||||
g++ \
|
||||
gcc \
|
||||
gettext \
|
||||
git \
|
||||
libclang-6.0-dev \
|
||||
libclang-7-dev \
|
||||
libclang-8-dev \
|
||||
libclang-9-dev \
|
||||
libclc-dev \
|
||||
libelf-dev \
|
||||
libepoxy-dev \
|
||||
libexpat1-dev \
|
||||
libgbm-dev \
|
||||
libgtk-3-dev \
|
||||
libomxil-bellagio-dev \
|
||||
libpciaccess-dev \
|
||||
libtool \
|
||||
libunwind-dev \
|
||||
libva-dev \
|
||||
libvdpau-dev \
|
||||
libvulkan-dev \
|
||||
libx11-dev \
|
||||
libx11-xcb-dev \
|
||||
libxdamage-dev \
|
||||
libxext-dev \
|
||||
libxrandr-dev \
|
||||
libxrender-dev \
|
||||
libxshmfence-dev \
|
||||
libxvmc-dev \
|
||||
libxxf86vm-dev \
|
||||
llvm-6.0-dev \
|
||||
llvm-7-dev \
|
||||
llvm-8-dev \
|
||||
llvm-9-dev \
|
||||
meson \
|
||||
pkg-config \
|
||||
python-mako \
|
||||
python3-mako \
|
||||
scons \
|
||||
x11proto-dri2-dev \
|
||||
x11proto-gl-dev \
|
||||
x11proto-randr-dev \
|
||||
xz-utils \
|
||||
zlib1g-dev
|
||||
|
||||
# Cross-build Mesa deps
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
apt-get install -y --no-remove \
|
||||
crossbuild-essential-${arch} \
|
||||
libdrm-dev:${arch} \
|
||||
libelf-dev:${arch} \
|
||||
libexpat1-dev:${arch}
|
||||
done
|
||||
|
||||
# for 64bit windows cross-builds
|
||||
apt-get install -y --no-remove \
|
||||
libz-mingw-w64-dev \
|
||||
mingw-w64 \
|
||||
wine \
|
||||
wine32 \
|
||||
wine64
|
||||
|
||||
# Debian's pkg-config wrapers for mingw are broken, and there's no sign that
|
||||
# they're going to be fixed, so we'll just have to fix it ourselves
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=930492
|
||||
cat >/usr/local/bin/x86_64-w64-mingw32-pkg-config <<EOF
|
||||
#!/bin/sh
|
||||
|
||||
PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@
|
||||
EOF
|
||||
chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config
|
||||
|
||||
# for the vulkan overlay layer
|
||||
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
|
||||
unzip glslang-master-linux-Release.zip bin/glslangValidator
|
||||
install -m755 bin/glslangValidator /usr/local/bin/
|
||||
rm bin/glslangValidator glslang-master-linux-Release.zip
|
||||
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||
export XCB_RELEASES=https://xcb.freedesktop.org/dist
|
||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
||||
|
||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
||||
export LIBDRM_VERSION=libdrm-2.4.100
|
||||
export XCBPROTO_VERSION=xcb-proto-1.13
|
||||
export LIBXCB_VERSION=libxcb-1.13
|
||||
export LIBWAYLAND_VERSION=wayland-1.15.0
|
||||
export WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
|
||||
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $XORGMACROS_VERSION
|
||||
|
||||
wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
|
||||
tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
|
||||
cd $XCBPROTO_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $XCBPROTO_VERSION
|
||||
|
||||
wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
|
||||
tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
|
||||
cd $LIBXCB_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $LIBXCB_VERSION
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||
cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd ..
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
||||
rm -rf $LIBWAYLAND_VERSION
|
||||
|
||||
wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $WAYLAND_PROTOCOLS_VERSION
|
||||
|
||||
|
||||
# The version of libglvnd-dev in debian is too old
|
||||
# Check this page to see when this local compilation can be dropped in favour of the package:
|
||||
# https://packages.debian.org/libglvnd-dev
|
||||
GLVND_VERSION=1.2.0
|
||||
wget https://gitlab.freedesktop.org/glvnd/libglvnd/-/archive/v$GLVND_VERSION/libglvnd-v$GLVND_VERSION.tar.gz
|
||||
tar -xvf libglvnd-v$GLVND_VERSION.tar.gz && rm libglvnd-v$GLVND_VERSION.tar.gz
|
||||
pushd libglvnd-v$GLVND_VERSION; ./autogen.sh; ./configure; make install; popd
|
||||
rm -rf libglvnd-v$GLVND_VERSION
|
||||
|
||||
|
||||
pushd /usr/local
|
||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
||||
rm -rf shader-db/.git
|
||||
cd shader-db
|
||||
make
|
||||
popd
|
||||
|
||||
# Use ccache to speed up builds
|
||||
apt-get install -y --no-remove ccache
|
||||
|
||||
# We need xmllint to validate the XML files in Mesa
|
||||
apt-get install -y --no-remove libxml2-utils
|
||||
|
||||
|
||||
# Generate cross build files for Meson
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
cross_file="/cross_file-$arch.txt"
|
||||
/usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
|
||||
# Explicitly set ccache path for cross compilers
|
||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
||||
if [ "$arch" = "i386" ]; then
|
||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
||||
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
||||
# Don't need wrapper for i386 executables
|
||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y \
|
||||
autoconf \
|
||||
automake \
|
||||
autotools-dev \
|
||||
cmake \
|
||||
git \
|
||||
gnupg \
|
||||
libgbm-dev \
|
||||
libtool \
|
||||
unzip \
|
||||
wget
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -1,59 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y \
|
||||
apt-transport-https \
|
||||
ca-certificates
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=stretch-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
llvm-3.9-dev \
|
||||
libclang-3.9-dev \
|
||||
llvm-4.0-dev \
|
||||
libclang-4.0-dev \
|
||||
llvm-5.0-dev \
|
||||
libclang-5.0-dev \
|
||||
g++ \
|
||||
bzip2 \
|
||||
ccache \
|
||||
zlib1g-dev \
|
||||
pkg-config \
|
||||
gcc \
|
||||
git \
|
||||
libepoxy-dev \
|
||||
libclc-dev \
|
||||
xz-utils \
|
||||
libdrm-dev \
|
||||
libexpat1-dev \
|
||||
libelf-dev \
|
||||
libunwind-dev \
|
||||
libpng-dev \
|
||||
python-mako \
|
||||
python3-mako \
|
||||
bison \
|
||||
flex \
|
||||
gettext \
|
||||
scons \
|
||||
meson
|
||||
|
||||
|
||||
############### Uninstall unused packages
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -1,96 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
|
||||
# Upstream LLVM package repository
|
||||
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
cmake \
|
||||
g++ \
|
||||
git \
|
||||
gcc \
|
||||
libexpat1 \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng16-16 \
|
||||
libpng-dev \
|
||||
libvulkan1 \
|
||||
libvulkan-dev \
|
||||
libwaffle-dev \
|
||||
libwayland-server0 \
|
||||
libxcb-xfixes0 \
|
||||
libxkbcommon0 \
|
||||
libxkbcommon-dev \
|
||||
libxrender1 \
|
||||
libxrender-dev \
|
||||
libllvm9 \
|
||||
meson \
|
||||
patch \
|
||||
pkg-config \
|
||||
python3-mako \
|
||||
python3-numpy \
|
||||
python3-six \
|
||||
python \
|
||||
waffle-utils \
|
||||
xauth \
|
||||
xvfb \
|
||||
zlib1g
|
||||
|
||||
|
||||
############### Build piglit
|
||||
|
||||
. .gitlab-ci/build-piglit.sh
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
|
||||
############### Build dEQP GL
|
||||
|
||||
. .gitlab-ci/build-deqp-gl.sh
|
||||
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
libc6-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng-dev \
|
||||
libwaffle-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrender-dev \
|
||||
meson \
|
||||
patch \
|
||||
pkg-config \
|
||||
python
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -1,87 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get install -y \
|
||||
ca-certificates \
|
||||
gnupg \
|
||||
|
||||
# Upstream LLVM package repository
|
||||
apt-key add .gitlab-ci/container/llvm-snapshot.gpg.key
|
||||
echo "deb https://apt.llvm.org/buster/ llvm-toolchain-buster-9 main" >/etc/apt/sources.list.d/llvm9.list
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
|
||||
apt-get update
|
||||
|
||||
# Use newer packages from backports by default
|
||||
cat >/etc/apt/preferences <<EOF
|
||||
Package: *
|
||||
Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
EOF
|
||||
|
||||
apt-get dist-upgrade -y
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
cmake \
|
||||
g++ \
|
||||
git \
|
||||
gcc \
|
||||
libexpat1 \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng16-16 \
|
||||
libpng-dev \
|
||||
libvulkan1 \
|
||||
libvulkan-dev \
|
||||
libwayland-server0 \
|
||||
libxcb-randr0 \
|
||||
libxcb-xfixes0 \
|
||||
libxkbcommon0 \
|
||||
libxkbcommon-dev \
|
||||
libxrender1 \
|
||||
libxrender-dev \
|
||||
libllvm9 \
|
||||
meson \
|
||||
patch \
|
||||
pkg-config \
|
||||
python3-distutils \
|
||||
python \
|
||||
xauth \
|
||||
xvfb
|
||||
|
||||
|
||||
############### Build dEQP runner
|
||||
|
||||
. .gitlab-ci/build-cts-runner.sh
|
||||
|
||||
############### Build dEQP VK
|
||||
|
||||
. .gitlab-ci/build-deqp-vk.sh
|
||||
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y \
|
||||
cmake \
|
||||
g++ \
|
||||
gcc \
|
||||
git \
|
||||
gnupg \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng-dev \
|
||||
libvulkan-dev \
|
||||
libxkbcommon-dev \
|
||||
libxrender-dev \
|
||||
meson \
|
||||
patch \
|
||||
pkg-config \
|
||||
python
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -1 +0,0 @@
|
||||
u_format_test
|
285
.gitlab-ci/debian-install.sh
Normal file
285
.gitlab-ci/debian-install.sh
Normal file
@@ -0,0 +1,285 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
CROSS_ARCHITECTURES="armhf arm64 i386"
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
dpkg --add-architecture $arch
|
||||
done
|
||||
|
||||
apt-get install -y \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
wget \
|
||||
unzip \
|
||||
gnupg
|
||||
|
||||
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
|
||||
echo "deb [trusted=yes] https://apt.llvm.org/stretch/ llvm-toolchain-stretch-7 main" >/etc/apt/sources.list.d/llvm7.list
|
||||
echo "deb [trusted=yes] https://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main" >/etc/apt/sources.list.d/llvm8.list
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
echo 'deb https://deb.debian.org/debian jessie main' >/etc/apt/sources.list.d/jessie.list
|
||||
|
||||
apt-get update
|
||||
apt-get install -y -t stretch-backports \
|
||||
llvm-3.4-dev \
|
||||
llvm-3.9-dev \
|
||||
libclang-3.9-dev \
|
||||
llvm-4.0-dev \
|
||||
libclang-4.0-dev \
|
||||
llvm-5.0-dev \
|
||||
libclang-5.0-dev \
|
||||
llvm-6.0-dev \
|
||||
libclang-6.0-dev \
|
||||
llvm-7-dev \
|
||||
libclang-7-dev \
|
||||
llvm-8-dev \
|
||||
libclang-8-dev \
|
||||
g++ \
|
||||
clang-8
|
||||
|
||||
# Install remaining packages from Debian buster to get newer versions
|
||||
echo "deb https://deb.debian.org/debian/ buster main" >/etc/apt/sources.list.d/buster.list
|
||||
echo "deb https://deb.debian.org/debian/ buster-updates main" >/etc/apt/sources.list.d/buster-updates.list
|
||||
apt-get update
|
||||
apt-get install -y \
|
||||
git \
|
||||
bzip2 \
|
||||
zlib1g-dev \
|
||||
pkg-config \
|
||||
libxrender-dev \
|
||||
libxdamage-dev \
|
||||
libxxf86vm-dev \
|
||||
gcc \
|
||||
git \
|
||||
libepoxy-dev \
|
||||
libegl1-mesa-dev \
|
||||
libgbm-dev \
|
||||
libclc-dev \
|
||||
libxvmc-dev \
|
||||
libomxil-bellagio-dev \
|
||||
xz-utils \
|
||||
libexpat1-dev \
|
||||
libx11-xcb-dev \
|
||||
libelf-dev \
|
||||
libunwind-dev \
|
||||
libglvnd-dev \
|
||||
libgtk-3-dev \
|
||||
libpng-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
python-mako \
|
||||
python3-mako \
|
||||
bison \
|
||||
flex \
|
||||
gettext \
|
||||
cmake \
|
||||
meson \
|
||||
scons
|
||||
|
||||
# Cross-build Mesa deps
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
apt-get install -y \
|
||||
libdrm-dev:${arch} \
|
||||
libexpat1-dev:${arch} \
|
||||
libelf-dev:${arch}
|
||||
done
|
||||
apt-get install -y \
|
||||
dpkg-dev \
|
||||
gcc-aarch64-linux-gnu \
|
||||
g++-aarch64-linux-gnu \
|
||||
gcc-arm-linux-gnueabihf \
|
||||
g++-arm-linux-gnueabihf \
|
||||
gcc-i686-linux-gnu \
|
||||
g++-i686-linux-gnu
|
||||
|
||||
# for 64bit windows cross-builds
|
||||
apt-get install -y mingw-w64
|
||||
|
||||
# for the vulkan overlay layer
|
||||
wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip
|
||||
unzip glslang-master-linux-Release.zip bin/glslangValidator
|
||||
install -m755 bin/glslangValidator /usr/local/bin/
|
||||
rm bin/glslangValidator glslang-master-linux-Release.zip
|
||||
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||
export XCB_RELEASES=https://xcb.freedesktop.org/dist
|
||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
||||
|
||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
||||
export GLPROTO_VERSION=glproto-1.4.17
|
||||
export DRI2PROTO_VERSION=dri2proto-2.8
|
||||
export LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
||||
export LIBDRM_VERSION=libdrm-2.4.99
|
||||
export XCBPROTO_VERSION=xcb-proto-1.13
|
||||
export RANDRPROTO_VERSION=randrproto-1.5.0
|
||||
export LIBXRANDR_VERSION=libXrandr-1.5.0
|
||||
export LIBXCB_VERSION=libxcb-1.13
|
||||
export LIBXSHMFENCE_VERSION=libxshmfence-1.3
|
||||
export LIBVDPAU_VERSION=libvdpau-1.1
|
||||
export LIBVA_VERSION=libva-1.7.0
|
||||
export LIBWAYLAND_VERSION=wayland-1.15.0
|
||||
export WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
|
||||
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $XORGMACROS_VERSION
|
||||
|
||||
wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
|
||||
tar -xvf $GLPROTO_VERSION.tar.bz2 && rm $GLPROTO_VERSION.tar.bz2
|
||||
cd $GLPROTO_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $GLPROTO_VERSION
|
||||
|
||||
wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
|
||||
tar -xvf $DRI2PROTO_VERSION.tar.bz2 && rm $DRI2PROTO_VERSION.tar.bz2
|
||||
cd $DRI2PROTO_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $DRI2PROTO_VERSION
|
||||
|
||||
wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
|
||||
tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
|
||||
cd $XCBPROTO_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $XCBPROTO_VERSION
|
||||
|
||||
wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
|
||||
tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
|
||||
cd $LIBXCB_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $LIBXCB_VERSION
|
||||
|
||||
wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
|
||||
tar -xvf $LIBPCIACCESS_VERSION.tar.bz2 && rm $LIBPCIACCESS_VERSION.tar.bz2
|
||||
cd $LIBPCIACCESS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $LIBPCIACCESS_VERSION
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
||||
cd $LIBDRM_VERSION; ./configure --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api; make install; cd ..
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
|
||||
tar -xvf $RANDRPROTO_VERSION.tar.bz2 && rm $RANDRPROTO_VERSION.tar.bz2
|
||||
cd $RANDRPROTO_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $RANDRPROTO_VERSION
|
||||
|
||||
wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
|
||||
tar -xvf $LIBXRANDR_VERSION.tar.bz2 && rm $LIBXRANDR_VERSION.tar.bz2
|
||||
cd $LIBXRANDR_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $LIBXRANDR_VERSION
|
||||
|
||||
wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
||||
tar -xvf $LIBXSHMFENCE_VERSION.tar.bz2 && rm $LIBXSHMFENCE_VERSION.tar.bz2
|
||||
cd $LIBXSHMFENCE_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $LIBXSHMFENCE_VERSION
|
||||
|
||||
wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
|
||||
tar -xvf $LIBVDPAU_VERSION.tar.bz2 && rm $LIBVDPAU_VERSION.tar.bz2
|
||||
cd $LIBVDPAU_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $LIBVDPAU_VERSION
|
||||
|
||||
wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
|
||||
tar -xvf $LIBVA_VERSION.tar.bz2 && rm $LIBVA_VERSION.tar.bz2
|
||||
cd $LIBVA_VERSION; ./configure --disable-wayland --disable-dummy-driver; make install; cd ..
|
||||
rm -rf $LIBVA_VERSION
|
||||
|
||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
||||
rm -rf $LIBWAYLAND_VERSION
|
||||
|
||||
wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
|
||||
rm -rf $WAYLAND_PROTOCOLS_VERSION
|
||||
|
||||
pushd /usr/local
|
||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
||||
rm -rf shader-db/.git
|
||||
cd shader-db
|
||||
make
|
||||
popd
|
||||
|
||||
# Use ccache to speed up builds
|
||||
apt-get install -y ccache
|
||||
|
||||
# We need xmllint to validate the XML files in Mesa
|
||||
apt-get install -y libxml2-utils
|
||||
|
||||
|
||||
# Generate cross build files for Meson
|
||||
for arch in $CROSS_ARCHITECTURES; do
|
||||
cross_file="/cross_file-$arch.txt"
|
||||
/usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
|
||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
||||
if [ "$arch" = "i386" ]; then
|
||||
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
############### Build dEQP
|
||||
git config --global user.email "mesa@example.com"
|
||||
git config --global user.name "Mesa CI"
|
||||
# XXX: Use --depth 1 once we can drop the cherry-picks.
|
||||
git clone \
|
||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
||||
-b opengl-es-cts-3.2.5.1 \
|
||||
/VK-GL-CTS
|
||||
cd /VK-GL-CTS
|
||||
# Fix surfaceless build
|
||||
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
|
||||
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
|
||||
|
||||
# surfaceless links against libkms and such despite not using it.
|
||||
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
|
||||
sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
|
||||
sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
|
||||
|
||||
python3 external/fetch_sources.py
|
||||
|
||||
mkdir -p /deqp
|
||||
cd /deqp
|
||||
cmake -G Ninja \
|
||||
-DDEQP_TARGET=surfaceless \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
/VK-GL-CTS
|
||||
ninja
|
||||
|
||||
# Copy out the mustpass lists we want from a bunch of other junk.
|
||||
mkdir /deqp/mustpass
|
||||
for gles in gles2 gles3 gles31; do
|
||||
cp \
|
||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
|
||||
/deqp/mustpass/$gles-master.txt
|
||||
done
|
||||
|
||||
# Remove the rest of the build products that we don't need.
|
||||
rm -rf /deqp/external
|
||||
rm -rf /deqp/modules/internal
|
||||
rm -rf /deqp/executor
|
||||
rm -rf /deqp/execserver
|
||||
rm -rf /deqp/modules/egl
|
||||
rm -rf /deqp/framework
|
||||
du -sh *
|
||||
rm -rf /VK-GL-CTS
|
||||
|
||||
############### Uninstall the build software
|
||||
|
||||
apt-get purge -y \
|
||||
git \
|
||||
curl \
|
||||
unzip \
|
||||
gnupg \
|
||||
cmake \
|
||||
git \
|
||||
libgles2-mesa-dev \
|
||||
libgbm-dev
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -3,8 +3,8 @@
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
dEQP-GLES[0-9]*.performance
|
||||
dEQP-GLES[0-9]*.stress
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
dEQP-GLES[0-9]*.functional.flush_finish
|
||||
|
@@ -1,33 +0,0 @@
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_l8_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgb888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba4444_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_nearest_clamp_rgba8888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_l8_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgb888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgba4444_npot
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_linear_clamp_rgba8888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_l8_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgb888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba4444_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.linear_nearest_clamp_rgba8888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_l8_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgb888_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgba4444_npot
|
||||
dEQP-GLES2.functional.texture.filtering.cube.nearest_linear_clamp_rgba8888_npot
|
@@ -1,3 +0,0 @@
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_clear
|
||||
dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw
|
@@ -1,21 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# Unstable test results
|
||||
#dEQP-GLES3.functional.fragment_out.random.*
|
||||
dEQP-GLES3.functional.transform_feedback.*points.*
|
||||
dEQP-GLES3.functional.transform_feedback.*lines.*
|
||||
dEQP-GLES31.functional.primitive_bounding_box.*
|
||||
#dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array.*
|
||||
|
||||
# Intermittent timeout
|
||||
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23
|
||||
|
@@ -1,205 +0,0 @@
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_neg_y_pos_z_and_pos_x_pos_y_neg_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_x_pos_y_pos_z_and_pos_x_neg_y_neg_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_neg_y_pos_z_and_neg_x_pos_y_neg_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_x_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.11
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.12
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.13
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.14
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.15
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.16
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.17
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.18
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.19
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.2
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.20
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.21
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.22
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.23
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.24
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.3
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.4
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.5
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.6
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil
|
||||
dEQP-GLES2.functional.shaders.algorithm.hsl_to_rgb_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.array_arguments.global_in_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.array_arguments.local_in_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.datatypes.int_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.overloading.builtin_sin_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.overloading.builtin_step_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.overloading.user_func_arg_int_types_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.inout_lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.out_highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.out_int_vertex
|
||||
dEQP-GLES2.functional.shaders.functions.qualifiers.out_lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_loop_write_static_loop_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_loop_write_static_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat3_dynamic_write_dynamic_loop_read_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_constant_iterations.conditional_body_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_dynamic_iterations.vector_counter_fragment
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_uniform_iterations.conditional_body_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.do_while_uniform_iterations.nested_tricky_dataflow_2_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.for_dynamic_iterations.vector_counter_fragment
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.compound_statement_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.sequence_statement_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.nested_sequence_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_dynamic_iterations.vector_counter_fragment
|
||||
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.nested_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_effect.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub_assign_result.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.binary_operator.sub.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.highp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.lowp_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_int_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec2_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec3_vertex
|
||||
dEQP-GLES2.functional.shaders.operator.unary_operator.minus.mediump_ivec4_vertex
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.37
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.11
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.12
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.14
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.37
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.5
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.74
|
||||
dEQP-GLES2.functional.shaders.random.texture.fragment.28
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.1
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.65
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.69
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texturecube_bias
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.bias.linear_nearest
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.projected.linear_nearest
|
||||
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgb
|
||||
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgba
|
||||
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.cube_rgb
|
||||
dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.cube_rgba
|
@@ -1,46 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance
|
||||
dEQP-GLES[0-9]*.stress
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish
|
||||
|
||||
# Crashes
|
||||
dEQP-GLES2.functional.shaders.invariance.highp.common_subexpression_1
|
||||
dEQP-GLES2.functional.shaders.invariance.mediump.common_subexpression_1
|
||||
dEQP-GLES2.functional.shaders.invariance.lowp.common_subexpression_1
|
||||
|
||||
# Flaky
|
||||
dEQP-GLES2.functional.fbo.completeness.size.distinct
|
||||
dEQP-GLES2.functional.negative_api.shader.uniform_matrixfv_invalid_transpose
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.94
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.55
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
|
||||
# Driver bugs causing GPU errors
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.nested_sequence_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_constant_iterations.conditional_body_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.conditional_continue_vertex
|
||||
dEQP-GLES2.functional.shaders.loops.while_uniform_iterations.double_continue_vertex
|
||||
|
||||
# Hangs / OOM
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_read
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_read
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_static_loop_read
|
||||
dEQP-GLES2.functional.shaders.indexing.varying_array.vec4_dynamic_loop_write_dynamic_loop_read
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec3_dynamic_loop_write_dynamic_read_vertex
|
||||
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_static_loop_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.tmp_array.vec4_dynamic_loop_write_dynamic_loop_read_vertex
|
||||
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_static_loop_read_vertex
|
||||
dEQP-GLES2.functional.shaders.indexing.matrix_subscript.mat4_dynamic_loop_write_dynamic_loop_read_vertex
|
@@ -1,31 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
@@ -1,14 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# XXX: Why does this flake?
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
|
@@ -1,31 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
@@ -1,10 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
@@ -1,31 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
@@ -1,13 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# XXX: Why does this flake?
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
@@ -1,31 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16
|
@@ -1,13 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# XXX: Why does this flake?
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
@@ -1,31 +0,0 @@
|
||||
# Disable a TON of tests to keep the run around 5-10 minutes because my runner is
|
||||
# slow.
|
||||
dEQP-VK.api.*
|
||||
dEQP-VK.binding_model.*
|
||||
dEQP-VK.clipping.*
|
||||
dEQP-VK.compute.*
|
||||
dEQP-VK.conditional_rendering.*
|
||||
dEQP-VK.descriptor_indexing.*
|
||||
dEQP-VK.device_group.*
|
||||
dEQP-VK.fragment_operations.*
|
||||
dEQP-VK.fragment_shader_interlock.*
|
||||
dEQP-VK.graphicsfuzz.*
|
||||
dEQP-VK.image.*
|
||||
dEQP-VK.imageless_framebuffer.*
|
||||
dEQP-VK.info.*
|
||||
dEQP-VK.memory.*
|
||||
dEQP-VK.memory_model.*
|
||||
dEQP-VK.multiview.*
|
||||
dEQP-VK.pipeline.*
|
||||
dEQP-VK.protected_memory.*
|
||||
dEQP-VK.query_pool.*
|
||||
dEQP-VK.robustness.*
|
||||
dEQP-VK.sparse_resources.*
|
||||
dEQP-VK.spirv_assembly.*
|
||||
dEQP-VK.subgroups.*
|
||||
dEQP-VK.synchronization.*
|
||||
dEQP-VK.texture.*
|
||||
dEQP-VK.transform_feedback.*
|
||||
dEQP-VK.ubo.*
|
||||
dEQP-VK.wsi.*
|
||||
dEQP-VK.ycbcr.*
|
@@ -1,42 +1,43 @@
|
||||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
DEQP_OPTIONS="--deqp-surface-width=256 --deqp-surface-height=256"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=rgba8888d24s8ms0"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
|
||||
|
||||
# It would be nice to be able to enable the watchdog, so that hangs in a test
|
||||
# don't need to wait the full hour for the run to time out. However, some
|
||||
# shaders end up taking long enough to compile
|
||||
# (dEQP-GLES31.functional.ubo.random.all_per_block_buffers.20 for example)
|
||||
# that they'll sporadically trigger the watchdog.
|
||||
#DEQP_OPTIONS="$DEQP_OPTIONS --deqp-watchdog=enable"
|
||||
DEQP_OPTIONS=(--deqp-surface-width=256 --deqp-surface-height=256)
|
||||
DEQP_OPTIONS+=(--deqp-surface-type=pbuffer)
|
||||
DEQP_OPTIONS+=(--deqp-gl-config-name=rgba8888d24s8ms0)
|
||||
DEQP_OPTIONS+=(--deqp-visibility=hidden)
|
||||
DEQP_OPTIONS+=(--deqp-log-images=disable)
|
||||
DEQP_OPTIONS+=(--deqp-watchdog=enable)
|
||||
DEQP_OPTIONS+=(--deqp-crashhandler=enable)
|
||||
|
||||
if [ -z "$DEQP_VER" ]; then
|
||||
echo 'DEQP_VER must be set to something like "gles2", "gles31" or "vk" for the test run'
|
||||
echo 'DEQP_VER must be set to something like "gles2" or "gles31" 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 "$DEQP_SKIPS" ]; then
|
||||
echo 'DEQP_SKIPS must be set to something like "deqp-default-skips.txt"'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ARTIFACTS=`pwd`/artifacts
|
||||
# Prep the expected failure list
|
||||
if [ -n "$DEQP_EXPECTED_FAILS" ]; then
|
||||
export DEQP_EXPECTED_FAILS=`pwd`/artifacts/$DEQP_EXPECTED_FAILS
|
||||
else
|
||||
export DEQP_EXPECTED_FAILS=/tmp/expect-no-failures.txt
|
||||
touch $DEQP_EXPECTED_FAILS
|
||||
fi
|
||||
sort < $DEQP_EXPECTED_FAILS > /tmp/expected-fails.txt
|
||||
|
||||
# Fix relative paths on inputs.
|
||||
export DEQP_SKIPS=`pwd`/artifacts/$DEQP_SKIPS
|
||||
|
||||
# Be a good citizen on the shared runners.
|
||||
export LP_NUM_THREADS=4
|
||||
|
||||
# Set up the driver environment.
|
||||
export LD_LIBRARY_PATH=`pwd`/install/lib/
|
||||
export EGL_PLATFORM=surfaceless
|
||||
export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.x86_64.json
|
||||
|
||||
# the runner was failing to look for libkms in /usr/local/lib for some reason
|
||||
# I never figured out.
|
||||
@@ -45,14 +46,18 @@ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
|
||||
RESULTS=`pwd`/results
|
||||
mkdir -p $RESULTS
|
||||
|
||||
# Generate test case list file.
|
||||
if [ "$DEQP_VER" = "vk" ]; then
|
||||
cp /deqp/mustpass/vk-master.txt /tmp/case-list.txt
|
||||
DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk
|
||||
else
|
||||
cp /deqp/mustpass/$DEQP_VER-master.txt /tmp/case-list.txt
|
||||
DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER
|
||||
fi
|
||||
cd /deqp/modules/$DEQP_VER
|
||||
|
||||
# Generate test case list file
|
||||
cp /deqp/mustpass/$DEQP_VER-master.txt /tmp/case-list.txt
|
||||
|
||||
# Note: not using sorted input and comm, becuase I want to run the tests in
|
||||
# the same order that dEQP would.
|
||||
while read -r line; do
|
||||
if echo "$line" | grep -q '^[^#]'; then
|
||||
sed -i "/$line/d" /tmp/case-list.txt
|
||||
fi
|
||||
done < $DEQP_SKIPS
|
||||
|
||||
# If the job is parallel, take the corresponding fraction of the caselist.
|
||||
# Note: N~M is a gnu sed extension to match every nth line (first line is #1).
|
||||
@@ -65,173 +70,43 @@ if [ ! -s /tmp/case-list.txt ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -n "$DEQP_EXPECTED_FAILS" ]; then
|
||||
XFAIL="--xfail-list $ARTIFACTS/$DEQP_EXPECTED_FAILS"
|
||||
fi
|
||||
# Cannot use tee because dash doesn't have pipefail
|
||||
touch /tmp/result.txt
|
||||
tail -f /tmp/result.txt &
|
||||
|
||||
set +e
|
||||
|
||||
run_cts() {
|
||||
deqp=$1
|
||||
caselist=$2
|
||||
output=$3
|
||||
deqp-runner \
|
||||
--deqp $deqp \
|
||||
--output $output \
|
||||
--caselist $caselist \
|
||||
--exclude-list $ARTIFACTS/$DEQP_SKIPS \
|
||||
$XFAIL \
|
||||
--job ${DEQP_PARALLEL:-1} \
|
||||
--allow-flakes true \
|
||||
$DEQP_RUNNER_OPTIONS \
|
||||
-- \
|
||||
$DEQP_OPTIONS
|
||||
}
|
||||
|
||||
report_flakes() {
|
||||
if [ -z "$FLAKES_CHANNEL" ]; then
|
||||
return 0
|
||||
fi
|
||||
flakes=$1
|
||||
bot="$CI_RUNNER_DESCRIPTION-$CI_PIPELINE_ID"
|
||||
channel="$FLAKES_CHANNEL"
|
||||
(
|
||||
echo NICK $bot
|
||||
echo USER $bot unused unused :Gitlab CI Notifier
|
||||
sleep 10
|
||||
echo "JOIN $channel"
|
||||
sleep 1
|
||||
desc="Flakes detected in job: $CI_JOB_URL on $CI_RUNNER_DESCRIPTION"
|
||||
if [ -n "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ]; then
|
||||
desc="$desc on branch $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME ($CI_MERGE_REQUEST_TITLE)"
|
||||
fi
|
||||
echo "PRIVMSG $channel :$desc"
|
||||
for flake in `cat $flakes`; do
|
||||
echo "PRIVMSG $channel :$flake"
|
||||
done
|
||||
echo "PRIVMSG $channel :See $CI_JOB_URL/artifacts/browse/results/"
|
||||
echo "QUIT"
|
||||
) | nc irc.freenode.net 6667 > /dev/null
|
||||
|
||||
}
|
||||
|
||||
extract_xml_result() {
|
||||
testcase=$1
|
||||
shift 1
|
||||
qpas=$*
|
||||
start="#beginTestCaseResult $testcase"
|
||||
for qpa in $qpas; do
|
||||
while IFS= read -r line; do
|
||||
if [ "$line" = "$start" ]; then
|
||||
dst="$testcase.qpa"
|
||||
echo "#beginSession" > $dst
|
||||
echo $line >> $dst
|
||||
while IFS= read -r line; do
|
||||
if [ "$line" = "#endTestCaseResult" ]; then
|
||||
echo $line >> $dst
|
||||
echo "#endSession" >> $dst
|
||||
/deqp/executor/testlog-to-xml $dst "$RESULTS/$testcase.xml"
|
||||
# copy the stylesheets here so they only end up in artifacts
|
||||
# if we have one or more result xml in artifacts
|
||||
cp /deqp/testlog.css "$RESULTS/"
|
||||
cp /deqp/testlog.xsl "$RESULTS/"
|
||||
return 0
|
||||
fi
|
||||
echo $line >> $dst
|
||||
done
|
||||
return 1
|
||||
fi
|
||||
done < $qpa
|
||||
done
|
||||
}
|
||||
|
||||
extract_xml_results() {
|
||||
qpas=$*
|
||||
while IFS= read -r testcase; do
|
||||
testcase=${testcase%,*}
|
||||
extract_xml_result $testcase $qpas
|
||||
done
|
||||
}
|
||||
|
||||
# Generate junit results
|
||||
generate_junit() {
|
||||
results=$1
|
||||
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
|
||||
echo "<testsuites>"
|
||||
echo "<testsuite name=\"$DEQP_VER-$CI_NODE_INDEX\">"
|
||||
while read line; do
|
||||
testcase=${line%,*}
|
||||
result=${line#*,}
|
||||
# avoid counting Skip's in the # of tests:
|
||||
if [ "$result" = "Skip" ]; then
|
||||
continue;
|
||||
fi
|
||||
echo "<testcase name=\"$testcase\">"
|
||||
if [ "$result" != "Pass" ]; then
|
||||
echo "<failure type=\"$result\">"
|
||||
echo "$result: See $CI_JOB_URL/artifacts/results/$testcase.xml"
|
||||
echo "</failure>"
|
||||
fi
|
||||
echo "</testcase>"
|
||||
done < $results
|
||||
echo "</testsuite>"
|
||||
echo "</testsuites>"
|
||||
}
|
||||
|
||||
# wrapper to supress +x to avoid spamming the log
|
||||
quiet() {
|
||||
set +x
|
||||
"$@"
|
||||
set -x
|
||||
}
|
||||
|
||||
run_cts $DEQP /tmp/case-list.txt $RESULTS/cts-runner-results.txt
|
||||
./deqp-$DEQP_VER "${DEQP_OPTIONS[@]}" --deqp-log-filename=$RESULTS/results.qpa --deqp-caselist-file=/tmp/case-list.txt >> /tmp/result.txt
|
||||
DEQP_EXITCODE=$?
|
||||
|
||||
quiet generate_junit $RESULTS/cts-runner-results.txt > $RESULTS/results.xml
|
||||
sed -ne \
|
||||
'/StatusCode="Fail"/{x;p}; s/#beginTestCaseResult //; T; h' \
|
||||
$RESULTS/results.qpa \
|
||||
> /tmp/unsorted-fails.txt
|
||||
|
||||
if [ $DEQP_EXITCODE -ne 0 ]; then
|
||||
# preserve caselist files in case of failures:
|
||||
cp /tmp/deqp_runner.*.txt $RESULTS/
|
||||
echo "Some unexpected results found (see cts-runner-results.txt in artifacts for full results):"
|
||||
cat $RESULTS/cts-runner-results.txt | \
|
||||
grep -v ",Pass" | \
|
||||
grep -v ",Skip" | \
|
||||
grep -v ",ExpectedFail" > \
|
||||
$RESULTS/cts-runner-unexpected-results.txt
|
||||
head -n 50 $RESULTS/cts-runner-unexpected-results.txt
|
||||
# Scrape out the renderer that the test run used, so we can validate that the
|
||||
# right driver was used.
|
||||
if grep -q "dEQP-.*.info.renderer" /tmp/case-list.txt; then
|
||||
# This is an ugly dependency on the .qpa format: Print 3 lines after the
|
||||
# match, which happens to contain the result.
|
||||
RENDERER=`sed -n '/#beginTestCaseResult dEQP-.*.info.renderer/{n;n;n;p}' $RESULTS/results.qpa | sed -n -E "s|<Text>(.*)</Text>|\1|p"`
|
||||
|
||||
if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then
|
||||
# Save the logs for up to the first 50 unexpected results:
|
||||
head -n 50 $RESULTS/cts-runner-unexpected-results.txt | quiet extract_xml_results /tmp/*.qpa
|
||||
fi
|
||||
echo "GL_RENDERER for this test run: $RENDERER"
|
||||
|
||||
count=`cat $RESULTS/cts-runner-unexpected-results.txt | wc -l`
|
||||
|
||||
# Re-run fails to detect flakes. But use a small threshold, if
|
||||
# something was fundamentally broken, we don't want to re-run
|
||||
# the entire caselist
|
||||
else
|
||||
cat $RESULTS/cts-runner-results.txt | \
|
||||
grep ",Flake" > \
|
||||
$RESULTS/cts-runner-flakes.txt
|
||||
|
||||
count=`cat $RESULTS/cts-runner-flakes.txt | wc -l`
|
||||
if [ $count -gt 0 ]; then
|
||||
echo "Some flakes found (see cts-runner-flakes.txt in artifacts for full results):"
|
||||
head -n 50 $RESULTS/cts-runner-flakes.txt
|
||||
|
||||
if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then
|
||||
# Save the logs for up to the first 50 flakes:
|
||||
head -n 50 $RESULTS/cts-runner-flakes.txt | quiet extract_xml_results /tmp/*.qpa
|
||||
fi
|
||||
|
||||
# Report the flakes to IRC channel for monitoring (if configured):
|
||||
quiet report_flakes $RESULTS/cts-runner-flakes.txt
|
||||
else
|
||||
# no flakes, so clean-up:
|
||||
rm $RESULTS/cts-runner-flakes.txt
|
||||
if [ -n "$DEQP_RENDERER_MATCH" ]; then
|
||||
echo $RENDERER | grep -q $DEQP_RENDERER_MATCH > /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $DEQP_EXITCODE
|
||||
if [ $DEQP_EXITCODE -ne 0 ]; then
|
||||
exit $DEQP_EXITCODE
|
||||
fi
|
||||
|
||||
sort < /tmp/unsorted-fails.txt > $RESULTS/fails.txt
|
||||
|
||||
comm -23 $RESULTS/fails.txt /tmp/expected-fails.txt > /tmp/new-fails.txt
|
||||
if [ -s /tmp/new-fails.txt ]; then
|
||||
echo "Unexpected failures:"
|
||||
cat /tmp/new-fails.txt
|
||||
exit 1
|
||||
else
|
||||
echo "No new failures"
|
||||
fi
|
||||
|
@@ -443,402 +443,3 @@ dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_divisible
|
||||
dEQP-GLES3.functional.texture.wrap.astc_8x8_srgb.repeat_repeat_linear_not_divisible
|
||||
dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads1
|
||||
dEQP-GLES3.functional.vertex_arrays.single_attribute.normalize.int2_10_10_10.components4_quads256
|
||||
dEQP-GLES31.functional.debug.error_filters.case_29
|
||||
dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.blit_framebuffer_multisample
|
||||
dEQP-GLES31.functional.debug.negative_coverage.get_error.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES31.functional.debug.negative_coverage.log.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES31.functional.draw_base_vertex.draw_elements_instanced_base_vertex.line_loop.instanced_attributes
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.overwrite_indexed.common_color_mask_buffer_color_mask
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.0
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.1
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.10
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.11
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.12
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.14
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.16
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.17
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.19
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.2
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.3
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.4
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.5
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.6
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.7
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.8
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_implementation_draw_buffers.9
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.0
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.1
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.14
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.15
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.16
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.17
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.19
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.2
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.4
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.5
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.7
|
||||
dEQP-GLES31.functional.draw_buffers_indexed.random.max_required_draw_buffers.9
|
||||
dEQP-GLES31.functional.draw_indirect.draw_arrays_indirect.line_strip.multiple_attributes
|
||||
dEQP-GLES31.functional.fbo.no_attachments.interaction.17x512ms4_default_16x16ms2
|
||||
dEQP-GLES31.functional.fbo.no_attachments.interaction.1x1ms0_default_2048x2048ms4
|
||||
dEQP-GLES31.functional.fbo.no_attachments.interaction.2048x2048ms4_default_1x1ms0
|
||||
dEQP-GLES31.functional.fbo.no_attachments.interaction.256x256ms0_default_512x512ms2
|
||||
dEQP-GLES31.functional.fbo.no_attachments.interaction.256x256ms2_default_128x512ms0
|
||||
dEQP-GLES31.functional.fbo.no_attachments.multisample.samples2
|
||||
dEQP-GLES31.functional.fbo.no_attachments.multisample.samples3
|
||||
dEQP-GLES31.functional.fbo.no_attachments.multisample.samples4
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.1
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.11
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.14
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.15
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.4
|
||||
dEQP-GLES31.functional.fbo.no_attachments.random.9
|
||||
dEQP-GLES31.functional.geometry_shading.query.primitives_generated_amplification
|
||||
dEQP-GLES31.functional.geometry_shading.query.primitives_generated_instanced
|
||||
dEQP-GLES31.functional.geometry_shading.query.primitives_generated_no_amplification
|
||||
dEQP-GLES31.functional.geometry_shading.query.primitives_generated_no_geometry
|
||||
dEQP-GLES31.functional.geometry_shading.query.primitives_generated_partial_primitives
|
||||
dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil
|
||||
dEQP-GLES31.functional.image_load_store.early_fragment_tests.early_fragment_tests_stencil_fbo
|
||||
dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_depth
|
||||
dEQP-GLES31.functional.image_load_store.early_fragment_tests.no_early_fragment_tests_depth_fbo
|
||||
dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.dynamically_uniform_geometry
|
||||
dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getfloat
|
||||
dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getinteger
|
||||
dEQP-GLES31.functional.state_query.integer.max_framebuffer_samples_getinteger64
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_float
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_integer
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_pure_int
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_format_pure_uint
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_float
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_integer
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_pure_int
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample.texture_immutable_levels_pure_uint
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_float
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_integer
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_pure_int
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_format_pure_uint
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_float
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_integer
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_pure_int
|
||||
dEQP-GLES31.functional.state_query.texture.texture_2d_multisample_array.texture_immutable_levels_pure_uint
|
||||
dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_npot
|
||||
dEQP-GLES31.functional.texture.border_clamp.depth_compare_mode.depth32f_stencil8.linear_size_pot
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_clamp_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_mirror_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_clamp
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_mirror
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_linear_repeat_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_clamp_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_mirror_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_repeat_clamp
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_linear_repeat_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_clamp_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_mirror_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_repeat_clamp
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_linear_nearest_repeat_mirror
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_clamp_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_mirror_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_clamp
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_linear_repeat_mirror
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_clamp
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_mirror
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_mipmap_nearest_nearest_repeat_repeat
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.combinations.nearest_nearest_repeat_mirror
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_linear_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb10_a2_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb565_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb565_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb5_a1_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb9_e5_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgb9_e5_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba16f_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba4_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba4_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_snorm_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.rgba8_snorm_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.sr8_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.srgb8_alpha8_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.formats.srgb8_alpha8_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_linear_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.128x128x12_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.63x63x18_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_linear
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.64x64x12_nearest_mipmap_nearest
|
||||
dEQP-GLES31.functional.texture.filtering.cube_array.sizes.8x8x6_nearest
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.basic.2d_array.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8.no_corners.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.no_corners.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.no_corners.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.no_corners.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.no_corners.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.basic.cube.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset.implementation_offset.2d_array.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_npot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.depth32f.size_pot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_linear_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_linear_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_nearest_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.green_blue_alpha_zero
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.red_green_blue_alpha
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.filter_mode.min_nearest_mipmap_nearest_mag_nearest
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.green_blue_alpha_zero
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.red_green_blue_alpha
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.filter_mode.min_nearest_mipmap_nearest_mag_nearest
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.green_blue_alpha_zero
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.red_green_blue_alpha
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_npot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.depth32f.size_pot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_linear_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_linear_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_nearest_mipmap_linear_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.filter_mode.min_nearest_mipmap_nearest_mag_linear
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.green_blue_alpha_zero
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.red_green_blue_alpha
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.filter_mode.min_nearest_mipmap_nearest_mag_nearest
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.green_blue_alpha_zero
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.red_green_blue_alpha
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.base_level.level_1
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.base_level.level_2
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.filter_mode.min_nearest_mipmap_nearest_mag_nearest
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.green_blue_alpha_zero
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.red_green_blue_alpha
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.implementation_offset.2d_array.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_npot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.depth32f.size_pot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8i.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d.rgba8ui.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_npot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_less.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.depth32f.size_pot.compare_less.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8i.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_npot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_npot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_npot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.clamp_to_edge_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.mirrored_repeat_clamp_to_edge
|
||||
dEQP-GLES31.functional.texture.gather.offset_dynamic.min_required_offset.2d_array.rgba8ui.size_pot.repeat_mirrored_repeat
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8i.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8i.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8i.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8i.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8ui.texture_swizzle.alpha_zero_one_red
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8ui.texture_swizzle.blue_alpha_zero_one
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8ui.texture_swizzle.one_red_green_blue
|
||||
dEQP-GLES31.functional.texture.gather.offsets.implementation_offset.2d_array.rgba8ui.texture_swizzle.zero_one_red_green
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_and_alpha_to_coverage
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_and_sample_coverage
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_and_sample_coverage_and_alpha_to_coverage
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_non_effective_bits
|
||||
dEQP-GLES31.functional.texture.multisample.samples_1.sample_mask_only
|
||||
|
@@ -1,16 +0,0 @@
|
||||
# Note: skips lists for CI are just a list of lines that, when
|
||||
# non-zero-length and not starting with '#', will regex match to
|
||||
# delete lines from the test list. Be careful.
|
||||
|
||||
# Skip the perf/stress tests to keep runtime manageable
|
||||
dEQP-GLES[0-9]*.performance.*
|
||||
dEQP-GLES[0-9]*.stress.*
|
||||
|
||||
# These are really slow on tiling architectures (including llvmpipe).
|
||||
dEQP-GLES[0-9]*.functional.flush_finish.*
|
||||
|
||||
# Random failures
|
||||
dEQP-GLES31.functional.shaders.builtin_functions.*geometry
|
||||
|
||||
dEQP-GLES31.functional.fbo.no_attachments.maximums.all
|
||||
dEQP-GLES31.functional.fbo.no_attachments.maximums.size
|
@@ -1,45 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import argparse
|
||||
import os
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--template")
|
||||
parser.add_argument("--pipeline-info")
|
||||
parser.add_argument("--base-artifacts-url")
|
||||
parser.add_argument("--device-type")
|
||||
parser.add_argument("--kernel-image-name")
|
||||
parser.add_argument("--kernel-image-type", nargs='?', default="")
|
||||
parser.add_argument("--gpu-version")
|
||||
parser.add_argument("--boot-method")
|
||||
parser.add_argument("--lava-tags", nargs='?', default="")
|
||||
parser.add_argument("--env-vars", nargs='?', default="")
|
||||
parser.add_argument("--deqp-version")
|
||||
parser.add_argument("--arch")
|
||||
parser.add_argument("--ci-node-index")
|
||||
parser.add_argument("--ci-node-total")
|
||||
args = parser.parse_args()
|
||||
|
||||
env = Environment(loader = FileSystemLoader(os.path.dirname(args.template)), trim_blocks=True, lstrip_blocks=True)
|
||||
template = env.get_template(os.path.basename(args.template))
|
||||
|
||||
values = {}
|
||||
values['pipeline_info'] = args.pipeline_info
|
||||
values['base_artifacts_url'] = args.base_artifacts_url
|
||||
values['device_type'] = args.device_type
|
||||
values['kernel_image_name'] = args.kernel_image_name
|
||||
values['kernel_image_type'] = args.kernel_image_type
|
||||
values['gpu_version'] = args.gpu_version
|
||||
values['boot_method'] = args.boot_method
|
||||
values['tags'] = args.lava_tags
|
||||
values['env_vars'] = args.env_vars
|
||||
values['deqp_version'] = args.deqp_version
|
||||
values['arch'] = args.arch
|
||||
values['ci_node_index'] = args.ci_node_index
|
||||
values['ci_node_total'] = args.ci_node_total
|
||||
|
||||
f = open('lava-deqp.yml', "w")
|
||||
f.write(template.render(values))
|
||||
f.close()
|
||||
|
@@ -1,93 +0,0 @@
|
||||
job_name: mesa-deqp-{{ gpu_version }} {{ pipeline_info }}
|
||||
device_type: {{ device_type }}
|
||||
timeouts:
|
||||
job:
|
||||
minutes: 40
|
||||
action:
|
||||
minutes: 10
|
||||
actions:
|
||||
power-off:
|
||||
seconds: 30
|
||||
priority: 75
|
||||
visibility: public
|
||||
{% if tags %}
|
||||
tags:
|
||||
{% for tag in tags %}
|
||||
- {{ tag }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
actions:
|
||||
- deploy:
|
||||
timeout:
|
||||
minutes: 10
|
||||
to: tftp
|
||||
kernel:
|
||||
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
|
||||
{% if kernel_image_type %}
|
||||
{{ kernel_image_type }}
|
||||
{% endif %}
|
||||
ramdisk:
|
||||
url: {{ base_artifacts_url }}/lava-rootfs-{{ arch }}.cpio.gz
|
||||
compression: gz
|
||||
dtb:
|
||||
url: {{ base_artifacts_url }}/{{ device_type }}.dtb
|
||||
os: oe
|
||||
- boot:
|
||||
timeout:
|
||||
minutes: 5
|
||||
method: {{ boot_method }}
|
||||
commands: ramdisk
|
||||
prompts:
|
||||
- '#'
|
||||
- test:
|
||||
timeout:
|
||||
minutes: 60
|
||||
definitions:
|
||||
- repository:
|
||||
metadata:
|
||||
format: Lava-Test Test Definition 1.0
|
||||
name: deqp
|
||||
description: "Mesa dEQP test plan"
|
||||
os:
|
||||
- oe
|
||||
scope:
|
||||
- functional
|
||||
run:
|
||||
steps:
|
||||
- mount -t proc none /proc
|
||||
- mount -t sysfs none /sys
|
||||
- mount -t devtmpfs none /dev
|
||||
- mkdir -p /dev/pts
|
||||
- mount -t devpts devpts /dev/pts
|
||||
|
||||
{% if env_vars %}
|
||||
- export {{ env_vars }}
|
||||
{% endif %}
|
||||
|
||||
- export DEQP_NO_SAVE_RESULTS=1
|
||||
- 'export DEQP_RUNNER_OPTIONS="--compact-display false --shuffle false"'
|
||||
- export DEQP_EXPECTED_FAILS=deqp-{{ gpu_version }}-fails.txt
|
||||
- export DEQP_SKIPS=deqp-{{ gpu_version }}-skips.txt
|
||||
- export DEQP_VER={{ deqp_version }}
|
||||
- export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri
|
||||
- export CI_NODE_INDEX={{ ci_node_index }}
|
||||
- export CI_NODE_TOTAL={{ ci_node_total }}
|
||||
|
||||
# Put stuff where the runner script expects it
|
||||
- mkdir artifacts
|
||||
- mkdir results
|
||||
- mkdir -p install/lib
|
||||
- cp /deqp/$DEQP_EXPECTED_FAILS artifacts/.
|
||||
- cp /deqp/$DEQP_SKIPS artifacts/.
|
||||
- mv /mesa/lib/* install/lib/.
|
||||
|
||||
- "if sh /deqp/deqp-runner.sh; then
|
||||
echo 'deqp: pass';
|
||||
else
|
||||
echo 'deqp: fail';
|
||||
fi"
|
||||
parse:
|
||||
pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
|
||||
from: inline
|
||||
name: deqp
|
||||
path: inline/mesa-deqp.yaml
|
@@ -1,122 +0,0 @@
|
||||
.lava-test:
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
stage: test
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
ENV_VARS: "MESA_GLES_VERSION_OVERRIDE=3.0 DEQP_PARALLEL=6"
|
||||
script:
|
||||
- BUILD_JOB_ID=`cat artifacts/build_job_id.txt`
|
||||
- >
|
||||
artifacts/generate_lava.py \
|
||||
--template artifacts/lava-deqp.yml.jinja2 \
|
||||
--pipeline-info "$CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \
|
||||
--base-artifacts-url $CI_PROJECT_URL/-/jobs/$BUILD_JOB_ID/artifacts/raw/artifacts \
|
||||
--device-type ${DEVICE_TYPE} \
|
||||
--env-vars "${ENV_VARS}" \
|
||||
--arch ${ARCH} \
|
||||
--deqp-version gles2 \
|
||||
--kernel-image-name ${KERNEL_IMAGE_NAME} \
|
||||
--kernel-image-type "${KERNEL_IMAGE_TYPE}" \
|
||||
--gpu-version ${GPU_VERSION} \
|
||||
--boot-method ${BOOT_METHOD} \
|
||||
--lava-tags "${LAVA_TAGS}" \
|
||||
--ci-node-index "${CI_NODE_INDEX}" \
|
||||
--ci-node-total "${CI_NODE_TOTAL}"
|
||||
- lava_job_id=`lavacli jobs submit lava-deqp.yml`
|
||||
- echo $lava_job_id
|
||||
- rm -rf artifacts/*
|
||||
- cp lava-deqp.yml artifacts/.
|
||||
- lavacli jobs logs $lava_job_id | grep -a -v "{'case':" | tee artifacts/lava-deqp-$lava_job_id.log
|
||||
- lavacli jobs show $lava_job_id
|
||||
- result=`lavacli results $lava_job_id 0_deqp deqp | head -1`
|
||||
- echo $result
|
||||
- '[[ "$result" == "pass" ]]'
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- artifacts/
|
||||
|
||||
.lava-test:armhf:
|
||||
variables:
|
||||
ARCH: armhf
|
||||
KERNEL_IMAGE_NAME: zImage
|
||||
KERNEL_IMAGE_TYPE: "type:\ zimage"
|
||||
BOOT_METHOD: u-boot
|
||||
extends:
|
||||
- .lava-test
|
||||
- .use-arm_build
|
||||
dependencies:
|
||||
- meson-armhf
|
||||
needs:
|
||||
- meson-armhf
|
||||
|
||||
.lava-test:arm64:
|
||||
variables:
|
||||
ARCH: arm64
|
||||
KERNEL_IMAGE_NAME: Image
|
||||
KERNEL_IMAGE_TYPE: "type:\ image"
|
||||
BOOT_METHOD: u-boot
|
||||
extends:
|
||||
- .lava-test
|
||||
- .use-arm_build
|
||||
dependencies:
|
||||
- meson-arm64
|
||||
needs:
|
||||
- meson-arm64
|
||||
|
||||
panfrost-t720-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: sun50i-h6-pine-h64
|
||||
GPU_VERSION: panfrost-t720
|
||||
tags:
|
||||
- lava-sun50i-h6-pine-h64
|
||||
|
||||
panfrost-t760-test:armhf:
|
||||
extends: .lava-test:armhf
|
||||
variables:
|
||||
DEVICE_TYPE: rk3288-veyron-jaq
|
||||
GPU_VERSION: panfrost-t760
|
||||
BOOT_METHOD: depthcharge
|
||||
KERNEL_IMAGE_TYPE: ""
|
||||
tags:
|
||||
- lava-rk3288-veyron-jaq
|
||||
|
||||
panfrost-t860-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: rk3399-gru-kevin
|
||||
GPU_VERSION: panfrost-t860
|
||||
BOOT_METHOD: depthcharge
|
||||
KERNEL_IMAGE_TYPE: ""
|
||||
tags:
|
||||
- lava-rk3399-gru-kevin
|
||||
|
||||
.panfrost-t820-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: meson-gxm-khadas-vim2
|
||||
GPU_VERSION: panfrost-t820
|
||||
LAVA_TAGS: panfrost
|
||||
tags:
|
||||
- lava-meson-gxm-khadas-vim2
|
||||
|
||||
.lima-mali400-test:armhf:
|
||||
parallel: 2
|
||||
extends: .lava-test:armhf
|
||||
variables:
|
||||
DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
|
||||
GPU_VERSION: lima
|
||||
ENV_VARS: "DEQP_PARALLEL=3"
|
||||
tags:
|
||||
- lava-sun8i-h3-libretech-all-h3-cc
|
||||
|
||||
lima-mali450-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: meson-gxl-s905x-libretech-cc
|
||||
GPU_VERSION: lima
|
||||
ENV_VARS: "DEQP_PARALLEL=6"
|
||||
tags:
|
||||
- lava-meson-gxl-s905x-libretech-cc
|
@@ -1,13 +0,0 @@
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\%VERSION%\Common7\Tools\VsDevCmd.bat" -arch=%ARCH%
|
||||
|
||||
del /Q /S _build
|
||||
meson _build ^
|
||||
-Dbuild-tests=true ^
|
||||
-Db_vscrt=mtd ^
|
||||
-Dbuildtype=release ^
|
||||
-Dllvm=false ^
|
||||
-Dgallium-drivers=swrast ^
|
||||
-Dosmesa=gallium
|
||||
meson configure _build
|
||||
ninja -C _build
|
||||
ninja -C _build test
|
@@ -3,47 +3,20 @@
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
CROSS_FILE=/cross_file-"$CROSS".txt
|
||||
|
||||
# We need to control the version of llvm-config we're using, so we'll
|
||||
# tweak the cross file or generate a native file to do so.
|
||||
# generate a native file to do so. This requires meson >=0.49
|
||||
if test -n "$LLVM_VERSION"; then
|
||||
LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
|
||||
if [ -n "$CROSS" ]; then
|
||||
sed -i -e '/\[binaries\]/a\' -e "llvm-config = '`which $LLVM_CONFIG`'" $CROSS_FILE
|
||||
fi
|
||||
$LLVM_CONFIG --version
|
||||
else
|
||||
rm -f native.file
|
||||
touch native.file
|
||||
fi
|
||||
|
||||
# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected
|
||||
# to fail for the $CROSS configuration, one per line. you can then mark those
|
||||
# tests in their meson.build with:
|
||||
#
|
||||
# test(...,
|
||||
# should_fail: meson.get_cross_property('xfail', '').contains(t),
|
||||
# )
|
||||
#
|
||||
# where t is the name of the test, and the '' is the string to search when
|
||||
# not cross-compiling (which is empty, because for amd64 everything is
|
||||
# expected to pass).
|
||||
if [ -n "$CROSS" ]; then
|
||||
CROSS_XFAIL=.gitlab-ci/cross-xfail-"$CROSS"
|
||||
if [ -s "$CROSS_XFAIL" ]; then
|
||||
sed -i \
|
||||
-e '/\[properties\]/a\' \
|
||||
-e "xfail = '$(tr '\n' , < $CROSS_XFAIL)'" \
|
||||
"$CROSS_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -rf _build
|
||||
meson _build --native-file=native.file \
|
||||
--wrap-mode=nofallback \
|
||||
${CROSS+--cross "$CROSS_FILE"} \
|
||||
${CROSS+--cross /cross_file-$CROSS.txt} \
|
||||
-D prefix=`pwd`/install \
|
||||
-D libdir=lib \
|
||||
-D buildtype=${BUILDTYPE:-debug} \
|
||||
@@ -62,3 +35,28 @@ ninja -j4
|
||||
LC_ALL=C.UTF-8 ninja test
|
||||
ninja install
|
||||
cd ..
|
||||
|
||||
if test -n "$MESON_SHADERDB"; then
|
||||
./.gitlab-ci/run-shader-db.sh;
|
||||
fi
|
||||
|
||||
# Delete 2MB of includes from artifacts.
|
||||
rm -rf install/include
|
||||
|
||||
# Strip the drivers in the artifacts to cut 80% of the artifacts size.
|
||||
if [ -n "$CROSS" ]; then
|
||||
STRIP=`sed -n -E "s/strip\s*=\s*'(.*)'/\1/p" /cross_file-$CROSS.txt`
|
||||
if [ -z "$STRIP" ]; then
|
||||
echo "Failed to find strip command in cross file"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
STRIP="strip"
|
||||
fi
|
||||
find install -name \*.so -exec $STRIP {} \;
|
||||
|
||||
# Test runs don't pull down the git tree, so put the dEQP helper
|
||||
# script and associated bits there.
|
||||
mkdir -p artifacts/
|
||||
cp -Rp .gitlab-ci/deqp* artifacts/
|
||||
# cp -Rp src/freedreno/ci/expected* artifacts/
|
||||
|
@@ -1,36 +0,0 @@
|
||||
diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt
|
||||
index 738526546..6f89048cd 100644
|
||||
--- a/generated_tests/CMakeLists.txt
|
||||
+++ b/generated_tests/CMakeLists.txt
|
||||
@@ -206,11 +206,6 @@ piglit_make_generated_tests(
|
||||
templates/gen_variable_index_write_tests/vs.shader_test.mako
|
||||
templates/gen_variable_index_write_tests/fs.shader_test.mako
|
||||
templates/gen_variable_index_write_tests/helpers.mako)
|
||||
-piglit_make_generated_tests(
|
||||
- vs_in_fp64.list
|
||||
- gen_vs_in_fp64.py
|
||||
- templates/gen_vs_in_fp64/columns.shader_test.mako
|
||||
- templates/gen_vs_in_fp64/regular.shader_test.mako)
|
||||
piglit_make_generated_tests(
|
||||
shader_framebuffer_fetch_tests.list
|
||||
gen_shader_framebuffer_fetch_tests.py)
|
||||
@@ -279,7 +274,6 @@ add_custom_target(gen-gl-tests
|
||||
gen_extensions_defined.list
|
||||
vp-tex.list
|
||||
variable_index_write_tests.list
|
||||
- vs_in_fp64.list
|
||||
gpu_shader4_tests.list
|
||||
)
|
||||
|
||||
diff --git a/tests/sanity.py b/tests/sanity.py
|
||||
index 12f1614c9..9019087e2 100644
|
||||
--- a/tests/sanity.py
|
||||
+++ b/tests/sanity.py
|
||||
@@ -100,7 +100,6 @@ shader_tests = (
|
||||
'spec/arb_tessellation_shader/execution/barrier-patch.shader_test',
|
||||
'spec/arb_tessellation_shader/execution/built-in-functions/tcs-any-bvec4-using-if.shader_test',
|
||||
'spec/arb_tessellation_shader/execution/sanity.shader_test',
|
||||
- 'spec/arb_vertex_attrib_64bit/execution/vs_in/vs-input-uint_uvec4-double_dmat3x4_array2-position.shader_test',
|
||||
'spec/glsl-1.50/execution/geometry-basic.shader_test',
|
||||
'spec/oes_viewport_array/viewport-gs-write-simple.shader_test',
|
||||
)
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,29 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
VERSION=`cat artifacts/VERSION`
|
||||
|
||||
cd /piglit
|
||||
|
||||
PIGLIT_OPTIONS=$(echo $PIGLIT_OPTIONS | head -n 1)
|
||||
xvfb-run --server-args="-noreset" sh -c \
|
||||
"export LD_LIBRARY_PATH=$OLDPWD/install/lib;
|
||||
wflinfo --platform glx --api gl --profile core | grep \"Mesa $VERSION\\\$\" &&
|
||||
./piglit run -j4 $PIGLIT_OPTIONS $PIGLIT_PROFILES $OLDPWD/results"
|
||||
|
||||
PIGLIT_RESULTS=${PIGLIT_RESULTS:-$PIGLIT_PROFILES}
|
||||
mkdir -p .gitlab-ci/piglit
|
||||
cp $OLDPWD/artifacts/piglit/$PIGLIT_RESULTS.txt .gitlab-ci/piglit/$PIGLIT_RESULTS.txt.baseline
|
||||
./piglit summary console $OLDPWD/results | head -n -1 | grep -v ": pass" >.gitlab-ci/piglit/$PIGLIT_RESULTS.txt
|
||||
|
||||
if diff -q .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,}; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
./piglit summary html --exclude-details=pass $OLDPWD/summary $OLDPWD/results
|
||||
|
||||
echo Unexpected change in results:
|
||||
diff -u .gitlab-ci/piglit/$PIGLIT_RESULTS.txt{.baseline,}
|
||||
exit 1
|
@@ -1,59 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
CROSS_FILE=/cross_file-"$CROSS".txt
|
||||
|
||||
# Delete unused bin and includes from artifacts to save space.
|
||||
rm -rf install/bin install/include
|
||||
|
||||
# Strip the drivers in the artifacts to cut 80% of the artifacts size.
|
||||
if [ -n "$CROSS" ]; then
|
||||
STRIP=`sed -n -E "s/strip\s*=\s*'(.*)'/\1/p" "$CROSS_FILE"`
|
||||
if [ -z "$STRIP" ]; then
|
||||
echo "Failed to find strip command in cross file"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
STRIP="strip"
|
||||
fi
|
||||
find install -name \*.so -exec $STRIP {} \;
|
||||
|
||||
# Test runs don't pull down the git tree, so put the dEQP helper
|
||||
# script and associated bits there.
|
||||
mkdir -p artifacts/
|
||||
cp VERSION artifacts/
|
||||
cp -Rp .gitlab-ci/deqp* artifacts/
|
||||
cp -Rp .gitlab-ci/piglit artifacts/
|
||||
|
||||
# Tar up the install dir so that symlinks and hardlinks aren't each
|
||||
# packed separately in the zip file.
|
||||
tar -cf artifacts/install.tar install
|
||||
|
||||
# If the container has LAVA stuff, prepare the artifacts for LAVA jobs
|
||||
if [ -d /lava-files ]; then
|
||||
# Copy kernel and device trees for LAVA
|
||||
cp /lava-files/*Image artifacts/.
|
||||
cp /lava-files/*.dtb artifacts/.
|
||||
|
||||
# Pack ramdisk for LAVA
|
||||
mkdir -p /lava-files/rootfs-${CROSS:-arm64}/mesa
|
||||
cp -a install/* /lava-files/rootfs-${CROSS:-arm64}/mesa/.
|
||||
|
||||
cp .gitlab-ci/deqp-runner.sh /lava-files/rootfs-${CROSS:-arm64}/deqp/.
|
||||
cp .gitlab-ci/deqp-*-fails.txt /lava-files/rootfs-${CROSS:-arm64}/deqp/.
|
||||
cp .gitlab-ci/deqp-*-skips.txt /lava-files/rootfs-${CROSS:-arm64}/deqp/.
|
||||
find /lava-files/rootfs-${CROSS:-arm64}/ -type f -printf "%s\t%i\t%p\n" | sort -n | tail -100
|
||||
|
||||
pushd /lava-files/rootfs-${CROSS:-arm64}/
|
||||
find -H | cpio -H newc -o | gzip -c - > $CI_PROJECT_DIR/artifacts/lava-rootfs-${CROSS:-arm64}.cpio.gz
|
||||
popd
|
||||
|
||||
# Store job ID so the test stage can build URLs to the artifacts
|
||||
echo $CI_JOB_ID > artifacts/build_job_id.txt
|
||||
|
||||
# Pass needed files to the test stage
|
||||
cp $CI_PROJECT_DIR/.gitlab-ci/generate_lava.py artifacts/.
|
||||
cp $CI_PROJECT_DIR/.gitlab-ci/lava-deqp.yml.jinja2 artifacts/.
|
||||
fi
|
@@ -1,12 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
if test -n "$LLVM_VERSION"; then
|
||||
export LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
fi
|
||||
|
||||
rm -rf build
|
||||
scons $SCONS_TARGET force_scons=on
|
||||
eval $SCONS_CHECK_COMMAND
|
@@ -1,20 +0,0 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'x86_64-w64-mingw32-gcc']
|
||||
cpp = ['ccache', 'x86_64-w64-mingw32-g++']
|
||||
ar = 'x86_64-w64-mingw32-ar'
|
||||
strip = 'x86_64-w64-mingw32-strip'
|
||||
pkgconfig = '/usr/local/bin/x86_64-w64-mingw32-pkg-config'
|
||||
windres = 'x86_64-w64-mingw32-windres'
|
||||
exe_wrapper = ['wine64']
|
||||
|
||||
[properties]
|
||||
needs_exe_wrapper = True
|
||||
sys_root = '/usr/x86_64-w64-mingw32/'
|
||||
|
||||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'x86_64'
|
||||
endian = 'little'
|
||||
|
||||
; vim: ft=dosini
|
20
.mailmap
20
.mailmap
@@ -26,8 +26,6 @@ Alexander Monakov <amonakov@gmail.com> <amonakov@ispras.ru>
|
||||
|
||||
Alexander von Gluck IV <kallisti5@unixzen.com> Alexander von Gluck <kallisti5@unixzen.com>
|
||||
|
||||
Alexandros Frantzis <alexandros.frantzis@collabora.com> <Alexandros.Frantzis@canonical.com>
|
||||
|
||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.prom.eng.vmware.com>
|
||||
Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.vmware.com>
|
||||
|
||||
@@ -52,8 +50,6 @@ Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru>
|
||||
|
||||
Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr>
|
||||
|
||||
Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> <basni@chromium.org>
|
||||
|
||||
Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com>
|
||||
|
||||
Ben Skeggs <bskeggs@redhat.com> <darktama@beleth.(none)>
|
||||
@@ -133,8 +129,8 @@ David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
|
||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
|
||||
David Miller <davem@davemloft.net> davem69 <davem69>
|
||||
|
||||
David Heidelberg <david@ixit.cz> David Heidelberger <david.heidelberger@ixit.cz>
|
||||
David Heidelberg <david@ixit.cz> <d.okias@gmail.com>
|
||||
David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz>
|
||||
David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com>
|
||||
|
||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
|
||||
|
||||
@@ -146,8 +142,6 @@ Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com>
|
||||
|
||||
Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
|
||||
|
||||
Elie Tournier <tournier.elie@gmail.com>
|
||||
|
||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
|
||||
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
|
||||
@@ -160,7 +154,6 @@ Emil Velikov <emil.l.velikov@gmail.com> <emmil.velikov@collabora.com>
|
||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
|
||||
|
||||
Eric Engestrom <eric@engestrom.ch> <eric.engestrom@imgtec.com>
|
||||
Eric Engestrom <eric@engestrom.ch> <eric.engestrom@intel.com>
|
||||
|
||||
Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com>
|
||||
|
||||
@@ -169,14 +162,10 @@ Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>>
|
||||
|
||||
Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com>
|
||||
|
||||
Frank Binns <frank.binns@imgtec.com> <francisbinns@gmail.com>
|
||||
|
||||
Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org>
|
||||
|
||||
George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr>
|
||||
|
||||
Gert Wollny <gert.wollny@collabora.com> <gw.fossdev@gmail.com>
|
||||
|
||||
Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com>
|
||||
|
||||
Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson>
|
||||
@@ -195,8 +184,6 @@ Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@tungstengraphics.com>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <wallbraker 'at' gmail 'dot' com>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob.bornecrantz@collabora.com>
|
||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@collabora.com>
|
||||
|
||||
Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org>
|
||||
|
||||
@@ -341,7 +328,6 @@ Michel Dänzer <michel@daenzer.net> <daenzer@vmware.com>
|
||||
Michel Dänzer <michel@daenzer.net> <michel@tungstengraphics.com>
|
||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <michel.daenzer@amd.com>
|
||||
Michel Dänzer <michel@daenzer.net> Michel Daenzer <daenzer@localhost.(none)>
|
||||
Michel Dänzer <michel@daenzer.net> <mdaenzer@redhat.com>
|
||||
|
||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> Mike Kaplinksiy <mike.kaplinskiy@gmail.com>
|
||||
Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com>
|
||||
@@ -467,8 +453,6 @@ Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu>
|
||||
Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com>
|
||||
Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com>
|
||||
|
||||
Tomeu Vizoso <tomeu.vizoso@collabora.com> <tomeu@tomeuvizoso.net>
|
||||
|
||||
Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com>
|
||||
|
||||
Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com>
|
||||
|
4223
.pick_status.json
4223
.pick_status.json
File diff suppressed because it is too large
Load Diff
12
.travis.yml
12
.travis.yml
@@ -19,15 +19,14 @@ matrix:
|
||||
before_install:
|
||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install expat gettext
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja;
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja;
|
||||
fi
|
||||
- if test "x$BUILD" = xscons; then
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install scons;
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install python2 scons;
|
||||
fi
|
||||
|
||||
# Set PATH for homebrew pip3 installs
|
||||
- PYTHON_VERSION=$(python3 -V | awk '{print $2}' | cut -d. -f1-2)
|
||||
- PATH="$HOME/Library/Python/$PYTHON_VERSION/bin:${PATH}"
|
||||
- PATH="$HOME/Library/Python/3.6/bin:${PATH}"
|
||||
# Set PKG_CONFIG_PATH for keg-only expat
|
||||
- PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
||||
# Set PATH for keg-only gettext
|
||||
@@ -56,9 +55,8 @@ script:
|
||||
meson _build -Dbuild-tests=true;
|
||||
ninja -C _build || travis_terminate 1;
|
||||
ninja -C _build test || travis_terminate 1;
|
||||
ninja -C _build install || travis_terminate 1;
|
||||
fi
|
||||
- if test "x$BUILD" = xscons; then
|
||||
scons force_scons=1 || travis_terminate 1;
|
||||
scons force_scons=1 check || travis_terminate 1;
|
||||
scons || travis_terminate 1;
|
||||
scons check || travis_terminate 1;
|
||||
fi
|
||||
|
@@ -103,9 +103,12 @@ ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
|
||||
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_CFLAGS += \
|
||||
-DUSE_X86_ASM
|
||||
|
||||
endif
|
||||
endif
|
||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
||||
|
24
Android.mk
24
Android.mk
@@ -24,7 +24,7 @@
|
||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
||||
#
|
||||
# classic drivers: i915 i965
|
||||
# gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv iris lima panfrost
|
||||
# gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv iris lima
|
||||
#
|
||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
||||
@@ -61,8 +61,7 @@ gallium_drivers := \
|
||||
virgl.HAVE_GALLIUM_VIRGL \
|
||||
etnaviv.HAVE_GALLIUM_ETNAVIV \
|
||||
iris.HAVE_GALLIUM_IRIS \
|
||||
lima.HAVE_GALLIUM_LIMA \
|
||||
panfrost.HAVE_GALLIUM_PANFROST
|
||||
lima.HAVE_GALLIUM_LIMA
|
||||
|
||||
ifeq ($(BOARD_GPU_DRIVERS),all)
|
||||
MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers)))
|
||||
@@ -84,20 +83,33 @@ endif
|
||||
|
||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
||||
|
||||
# host and target must be the same arch to generate matypes.h
|
||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
|
||||
MESA_ENABLE_ASM := true
|
||||
else
|
||||
MESA_ENABLE_ASM := false
|
||||
endif
|
||||
|
||||
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
|
||||
MESA_ENABLE_LLVM := true
|
||||
endif
|
||||
|
||||
define mesa-build-with-llvm
|
||||
$(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5 6 7), \
|
||||
$(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \
|
||||
$(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \
|
||||
$(eval LOCAL_CFLAGS += -DLLVM_AVAILABLE -DMESA_LLVM_VERSION_STRING=\"3.9\") \
|
||||
$(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_STRING=\"3.7\")) \
|
||||
$(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_STRING=\"3.8\")) \
|
||||
$(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_STRING=\"3.9\")) \
|
||||
$(if $(filter P,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_STRING=\"3.9\")) \
|
||||
$(eval LOCAL_SHARED_LIBRARIES += libLLVM)
|
||||
endef
|
||||
|
||||
# add subdirectories
|
||||
SUBDIRS := \
|
||||
src/etnaviv \
|
||||
src/freedreno \
|
||||
src/gbm \
|
||||
src/loader \
|
||||
|
@@ -56,4 +56,5 @@ Contributions are welcome, and step-by-step instructions can be found in our
|
||||
documentation (`docs/submittingpatches.html
|
||||
<https://mesa3d.org/submittingpatches.html>`_).
|
||||
|
||||
Note that Mesa uses gitlab for patches submission, review and discussions.
|
||||
Note that Mesa uses email mailing-lists for patches submission, review and
|
||||
discussions.
|
||||
|
41
REVIEWERS
41
REVIEWERS
@@ -1,11 +1,30 @@
|
||||
Overview:
|
||||
|
||||
This file is similar in syntax (or more precisly a subset) of what is
|
||||
used by the MAINTAINERS file in the linux kernel.
|
||||
used by the MAINTAINERS file in the linux kernel. Some fields do not
|
||||
apply, for example, in all cases, send patches to:
|
||||
|
||||
mesa-dev@lists.freedesktop.org
|
||||
|
||||
and in all cases the patchwork instance is:
|
||||
|
||||
https://patchwork.freedesktop.org/project/mesa/
|
||||
|
||||
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.
|
||||
various patches for review, and to allow the use of
|
||||
scripts/get_reviewer.pl as git --cc-cmd.
|
||||
|
||||
Usage:
|
||||
|
||||
When sending patches:
|
||||
|
||||
git send-email --cc-cmd ./scripts/get_reviewer.pl ...
|
||||
|
||||
Or to configure as default:
|
||||
|
||||
git config sendemail.cccmd ./scripts/get_reviewer.pl
|
||||
|
||||
Descriptions of section entries:
|
||||
|
||||
@@ -17,6 +36,14 @@ Descriptions of section entries:
|
||||
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.
|
||||
N: Files and directories with regex patterns.
|
||||
N: [^a-z]tegra all files whose path contains the word tegra
|
||||
One pattern per line. Multiple N: lines acceptable.
|
||||
scripts/get_maintainer.pl has different behavior for files that
|
||||
match F: pattern and matches of N: patterns. By default,
|
||||
get_maintainer will not look at git log history when an F: pattern
|
||||
match occurs. When an N: match occurs, git log history is used
|
||||
to also notify the people that have git commit signatures.
|
||||
|
||||
Maintainers List (try to look for most precise areas first)
|
||||
|
||||
@@ -108,13 +135,3 @@ 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/
|
||||
|
21
SConstruct
21
SConstruct
@@ -20,7 +20,6 @@
|
||||
# to get the full list of options. See scons manpage for more info.
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
@@ -67,26 +66,6 @@ else:
|
||||
|
||||
Help(opts.GenerateHelpText(env))
|
||||
|
||||
|
||||
#######################################################################
|
||||
# Print a deprecation warning for using scons on non-windows
|
||||
|
||||
if common.host_platform != 'windows' and env['platform'] != 'windows':
|
||||
if env['force_scons']:
|
||||
print("WARNING: Scons is deprecated for non-windows platforms (including cygwin) "
|
||||
"please use meson instead.", file=sys.stderr)
|
||||
else:
|
||||
print("ERROR: Scons is deprecated for non-windows platforms (including cygwin) "
|
||||
"please use meson instead. If you really need to use scons you "
|
||||
"can add `force_scons=1` to the scons command line.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("WARNING: Scons support is in the process of being deprecated on "
|
||||
"on windows platforms (including mingw). If you haven't already "
|
||||
"please try using meson for windows builds. Be sure to report any "
|
||||
"issues you run into", file=sys.stderr)
|
||||
|
||||
|
||||
#######################################################################
|
||||
# Environment setup
|
||||
|
||||
|
41
appveyor.yml
41
appveyor.yml
@@ -38,7 +38,6 @@ cache:
|
||||
- '%LOCALAPPDATA%\pip\Cache -> appveyor.yml'
|
||||
- win_flex_bison-2.5.15.zip
|
||||
- llvm-5.0.1-msvc2017-mtd.7z
|
||||
- subprojects\packagecache -> subprojects\*.wrap
|
||||
|
||||
os: Visual Studio 2017
|
||||
|
||||
@@ -50,21 +49,41 @@ init:
|
||||
environment:
|
||||
WINFLEXBISON_VERSION: 2.5.15
|
||||
LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z
|
||||
matrix:
|
||||
- compiler: msvc
|
||||
buildsystem: scons
|
||||
- compiler: msvc
|
||||
buildsystem: meson
|
||||
path: C:\Python38-x64;C:\Python38-x64\Scripts;%path%
|
||||
|
||||
install:
|
||||
- cmd: .appveyor\appveyor_msvc.bat install
|
||||
# Check git config
|
||||
- git config core.autocrlf
|
||||
# Check pip
|
||||
- python --version
|
||||
- python -m pip --version
|
||||
# Install Mako
|
||||
- python -m pip install Mako==1.0.7
|
||||
# Install pywin32 extensions, needed by SCons
|
||||
- python -m pip install pypiwin32
|
||||
# Install python wheels, necessary to install SCons via pip
|
||||
- python -m pip install wheel
|
||||
# Install SCons
|
||||
- python -m pip install scons==3.0.1
|
||||
- scons --version
|
||||
# Install flex/bison
|
||||
- set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
|
||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
|
||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
||||
- set Path=%CD%\winflexbison;%Path%
|
||||
- win_flex --version
|
||||
- win_bison --version
|
||||
# Download and extract LLVM
|
||||
- if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%"
|
||||
- 7z x -y "%LLVM_ARCHIVE%" > nul
|
||||
- mkdir llvm\bin
|
||||
- set LLVM=%CD%\llvm
|
||||
|
||||
build_script:
|
||||
- cmd: .appveyor\appveyor_msvc.bat build_script
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
|
||||
|
||||
after_build:
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
|
||||
|
||||
test_script:
|
||||
- cmd: .appveyor\appveyor_msvc.bat test_script
|
||||
|
||||
# It's possible to setup notification here, as described in
|
||||
# http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but
|
||||
|
40
bin/.cherry-ignore
Normal file
40
bin/.cherry-ignore
Normal file
@@ -0,0 +1,40 @@
|
||||
# warnings that are not useful
|
||||
da5ebe30105f70e3520ce3ae145793b755552569
|
||||
6b8cb087568699ca9a6e9e8b7bf49179e622b59f
|
||||
|
||||
# Jason doesn't want this applied to 19.2 (it's a revert)
|
||||
d15fe8ca8262d502435c4f83985ac414f950bc5f
|
||||
|
||||
# This doesn't apply to 19.2
|
||||
f833b4cada07b746a10ffa4d93fcd821920c3cb1
|
||||
d2db43fcad6a2ea2070ff5f7884411f4b7d3925c
|
||||
66f2aa6ccd0b226eebe2c1a46281160b0a54d522
|
||||
|
||||
# The author requested that this not be applied to 19.2
|
||||
dcc0e23438f3e5929c2ef74d57e8207be25ecb41
|
||||
|
||||
# This doesn't apply cleanly, and no one really cares about this file on stable
|
||||
# branches anyway.
|
||||
bcd9224728dcb8d8fe4bcddc4bd9b2c36fcfe9dd
|
||||
|
||||
# De-nominated by its author due to alternate fix not being backported
|
||||
43041627445540afda1a05d11861935963660344
|
||||
|
||||
# This is immediately reverted, so just don't apply
|
||||
19546108d3dd5541a189e36df4ea83b3f519e48f
|
||||
|
||||
# The authors requested these not be applied to 19.2
|
||||
869e32593a9096b845dd6106f8f86e1c41fac968
|
||||
a2c3c65a31de90fdb55f76f2894860dfbafe2043
|
||||
bb0c5c487e63e88acbb792f092dd8f392bad8540
|
||||
|
||||
# This is reverted shortly after it was landed
|
||||
4432a2d14d80081d062f7939a950d65ea3a16eed
|
||||
|
||||
# These aren't relevant for 19.2
|
||||
1a05811936dd8d0c3a367c6f00629624ef39d537
|
||||
911a8261419f48dcd756f78832fa5a5f4c5b8d93
|
||||
|
||||
# This was manuall backported
|
||||
2afeed301010917c4eae55dcd2544f9d329df934
|
||||
4b392ced2d744fccffe95490ff57e6b41033c266
|
@@ -35,7 +35,7 @@ from mako.template import Template
|
||||
from mako import exceptions
|
||||
|
||||
|
||||
CURRENT_GL_VERSION = '4.6'
|
||||
CURRENT_GL_VERSION = '4.5'
|
||||
CURRENT_VK_VERSION = '1.1'
|
||||
|
||||
TEMPLATE = Template(textwrap.dedent("""\
|
||||
|
@@ -92,7 +92,7 @@ is_revert_nomination()
|
||||
}
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
latest_branchpoint=`git merge-base upstream/master HEAD`
|
||||
|
||||
# List all the commits between day 1 and the branch point...
|
||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
||||
@@ -103,7 +103,7 @@ git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_bra
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for potential candidates
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..origin/master |\
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..upstream/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
|
@@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# encoding=utf-8
|
||||
# Copyright 2017-2018 Intel Corporation
|
||||
# Copyright © 2017-2018 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
|
||||
|
@@ -20,4 +20,3 @@
|
||||
|
||||
git_sha1_gen_py = files('git_sha1_gen.py')
|
||||
symbols_check = find_program('symbols-check.py')
|
||||
install_megadrivers_py = find_program('install_megadrivers.py')
|
||||
|
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright © 2019-2020 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
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
import asyncio
|
||||
|
||||
import urwid
|
||||
|
||||
from pick.ui import UI, PALETTE
|
||||
|
||||
if __name__ == "__main__":
|
||||
u = UI()
|
||||
evl = urwid.AsyncioEventLoop(loop=asyncio.get_event_loop())
|
||||
loop = urwid.MainLoop(u.render(), PALETTE, event_loop=evl)
|
||||
u.mainloop = loop
|
||||
loop.run()
|
367
bin/pick/core.py
367
bin/pick/core.py
@@ -1,367 +0,0 @@
|
||||
# Copyright © 2019-2020 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
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
"""Core data structures and routines for pick."""
|
||||
|
||||
import asyncio
|
||||
import enum
|
||||
import json
|
||||
import pathlib
|
||||
import re
|
||||
import typing
|
||||
|
||||
import attr
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from .ui import UI
|
||||
|
||||
import typing_extensions
|
||||
|
||||
class CommitDict(typing_extensions.TypedDict):
|
||||
|
||||
sha: str
|
||||
description: str
|
||||
nomintated: bool
|
||||
nomination_type: typing.Optional[int]
|
||||
resolution: typing.Optional[int]
|
||||
master_sha: typing.Optional[str]
|
||||
|
||||
IS_FIX = re.compile(r'^\s*fixes:\s*([a-f0-9]{6,40})', flags=re.MULTILINE | re.IGNORECASE)
|
||||
# FIXME: I dislike the duplication in this regex, but I couldn't get it to work otherwise
|
||||
IS_CC = re.compile(r'^\s*cc:\s*["\']?([0-9]{2}\.[0-9])?["\']?\s*["\']?([0-9]{2}\.[0-9])?["\']?\s*\<?mesa-stable',
|
||||
flags=re.MULTILINE | re.IGNORECASE)
|
||||
IS_REVERT = re.compile(r'This reverts commit ([0-9a-f]{40})')
|
||||
|
||||
# XXX: hack
|
||||
SEM = asyncio.Semaphore(50)
|
||||
|
||||
COMMIT_LOCK = asyncio.Lock()
|
||||
|
||||
|
||||
class PickUIException(Exception):
|
||||
pass
|
||||
|
||||
|
||||
@enum.unique
|
||||
class NominationType(enum.Enum):
|
||||
|
||||
CC = 0
|
||||
FIXES = 1
|
||||
REVERT = 2
|
||||
|
||||
|
||||
@enum.unique
|
||||
class Resolution(enum.Enum):
|
||||
|
||||
UNRESOLVED = 0
|
||||
MERGED = 1
|
||||
DENOMINATED = 2
|
||||
BACKPORTED = 3
|
||||
NOTNEEDED = 4
|
||||
|
||||
|
||||
async def commit_state(*, amend: bool = False, message: str = 'Update') -> None:
|
||||
"""Commit the .pick_status.json file."""
|
||||
f = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
|
||||
async with COMMIT_LOCK:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'add', f.as_posix(),
|
||||
stdout=asyncio.subprocess.DEVNULL,
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
v = await p.wait()
|
||||
if v != 0:
|
||||
return False
|
||||
|
||||
if amend:
|
||||
cmd = ['--amend', '--no-edit']
|
||||
else:
|
||||
cmd = ['--message', f'.pick_status.json: {message}']
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'commit', *cmd,
|
||||
stdout=asyncio.subprocess.DEVNULL,
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
v = await p.wait()
|
||||
if v != 0:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
@attr.s(slots=True)
|
||||
class Commit:
|
||||
|
||||
sha: str = attr.ib()
|
||||
description: str = attr.ib()
|
||||
nominated: bool = attr.ib(False)
|
||||
nomination_type: typing.Optional[NominationType] = attr.ib(None)
|
||||
resolution: Resolution = attr.ib(Resolution.UNRESOLVED)
|
||||
master_sha: typing.Optional[str] = attr.ib(None)
|
||||
because_sha: typing.Optional[str] = attr.ib(None)
|
||||
|
||||
def to_json(self) -> 'CommitDict':
|
||||
d: typing.Dict[str, typing.Any] = attr.asdict(self)
|
||||
if self.nomination_type is not None:
|
||||
d['nomination_type'] = self.nomination_type.value
|
||||
if self.resolution is not None:
|
||||
d['resolution'] = self.resolution.value
|
||||
return typing.cast('CommitDict', d)
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, data: 'CommitDict') -> 'Commit':
|
||||
c = cls(data['sha'], data['description'], data['nominated'], master_sha=data['master_sha'], because_sha=data['because_sha'])
|
||||
if data['nomination_type'] is not None:
|
||||
c.nomination_type = NominationType(data['nomination_type'])
|
||||
if data['resolution'] is not None:
|
||||
c.resolution = Resolution(data['resolution'])
|
||||
return c
|
||||
|
||||
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
|
||||
async with COMMIT_LOCK:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'cherry-pick', '-x', self.sha,
|
||||
stdout=asyncio.subprocess.DEVNULL,
|
||||
stderr=asyncio.subprocess.PIPE,
|
||||
)
|
||||
_, err = await p.communicate()
|
||||
|
||||
if p.returncode != 0:
|
||||
return (False, err)
|
||||
|
||||
self.resolution = Resolution.MERGED
|
||||
await ui.feedback(f'{self.sha} ({self.description}) applied successfully')
|
||||
|
||||
# Append the changes to the .pickstatus.json file
|
||||
ui.save()
|
||||
v = await commit_state(amend=True)
|
||||
return (v, '')
|
||||
|
||||
async def abort_cherry(self, ui: 'UI', err: str) -> None:
|
||||
await ui.feedback(f'{self.sha} ({self.description}) failed to apply\n{err}')
|
||||
async with COMMIT_LOCK:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'cherry-pick', '--abort',
|
||||
stdout=asyncio.subprocess.DEVNULL,
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
r = await p.wait()
|
||||
await ui.feedback(f'{"Successfully" if r == 0 else "Failed to"} abort cherry-pick.')
|
||||
|
||||
async def denominate(self, ui: 'UI') -> bool:
|
||||
self.resolution = Resolution.DENOMINATED
|
||||
ui.save()
|
||||
v = await commit_state(message=f'Mark {self.sha} as denominated')
|
||||
assert v
|
||||
await ui.feedback(f'{self.sha} ({self.description}) denominated successfully')
|
||||
return True
|
||||
|
||||
async def backport(self, ui: 'UI') -> bool:
|
||||
self.resolution = Resolution.BACKPORTED
|
||||
ui.save()
|
||||
v = await commit_state(message=f'Mark {self.sha} as backported')
|
||||
assert v
|
||||
await ui.feedback(f'{self.sha} ({self.description}) backported successfully')
|
||||
return True
|
||||
|
||||
async def resolve(self, ui: 'UI') -> None:
|
||||
self.resolution = Resolution.MERGED
|
||||
ui.save()
|
||||
v = await commit_state(amend=True)
|
||||
assert v
|
||||
await ui.feedback(f'{self.sha} ({self.description}) committed successfully')
|
||||
|
||||
|
||||
async def get_new_commits(sha: str) -> typing.List[typing.Tuple[str, str]]:
|
||||
# TODO: config file that points to the upstream branch
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'log', '--pretty=oneline', f'{sha}..master',
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.DEVNULL)
|
||||
out, _ = await p.communicate()
|
||||
assert p.returncode == 0, f"git log didn't work: {sha}"
|
||||
return list(split_commit_list(out.decode().strip()))
|
||||
|
||||
|
||||
def split_commit_list(commits: str) -> typing.Generator[typing.Tuple[str, str], None, None]:
|
||||
if not commits:
|
||||
return
|
||||
for line in commits.split('\n'):
|
||||
v = tuple(line.split(' ', 1))
|
||||
assert len(v) == 2, 'this is really just for mypy'
|
||||
yield typing.cast(typing.Tuple[str, str], v)
|
||||
|
||||
|
||||
async def is_commit_in_branch(sha: str) -> bool:
|
||||
async with SEM:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'merge-base', '--is-ancestor', sha, 'HEAD',
|
||||
stdout=asyncio.subprocess.DEVNULL,
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
await p.wait()
|
||||
return p.returncode == 0
|
||||
|
||||
|
||||
async def full_sha(sha: str) -> str:
|
||||
async with SEM:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'rev-parse', sha,
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
out, _ = await p.communicate()
|
||||
if p.returncode:
|
||||
raise PickUIException(f'Invalid Sha {sha}')
|
||||
return out.decode().strip()
|
||||
|
||||
|
||||
async def resolve_nomination(commit: 'Commit', version: str) -> 'Commit':
|
||||
async with SEM:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'log', '--pretty=medium', '-1', commit.sha,
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.DEVNULL,
|
||||
)
|
||||
_out, _ = await p.communicate()
|
||||
assert p.returncode == 0, f'git log for {commit.sha} failed'
|
||||
out = _out.decode()
|
||||
|
||||
# We give presedence to fixes and cc tags over revert tags.
|
||||
# XXX: not having the wallrus operator available makes me sad :=
|
||||
m = IS_FIX.search(out)
|
||||
if m:
|
||||
# We set the nomination_type and because_sha here so that we can later
|
||||
# check to see if this fixes another staged commit.
|
||||
try:
|
||||
commit.because_sha = fixed = await full_sha(m.group(1))
|
||||
except PickUIException:
|
||||
pass
|
||||
else:
|
||||
commit.nomination_type = NominationType.FIXES
|
||||
if await is_commit_in_branch(fixed):
|
||||
commit.nominated = True
|
||||
return commit
|
||||
|
||||
m = IS_CC.search(out)
|
||||
if m:
|
||||
if m.groups() == (None, None) or version in m.groups():
|
||||
commit.nominated = True
|
||||
commit.nomination_type = NominationType.CC
|
||||
return commit
|
||||
|
||||
m = IS_REVERT.search(out)
|
||||
if m:
|
||||
# See comment for IS_FIX path
|
||||
try:
|
||||
commit.because_sha = reverted = await full_sha(m.group(1))
|
||||
except PickUIException:
|
||||
pass
|
||||
else:
|
||||
commit.nomination_type = NominationType.REVERT
|
||||
if await is_commit_in_branch(reverted):
|
||||
commit.nominated = True
|
||||
return commit
|
||||
|
||||
return commit
|
||||
|
||||
|
||||
async def resolve_fixes(commits: typing.List['Commit'], previous: typing.List['Commit']) -> None:
|
||||
"""Determine if any of the undecided commits fix/revert a staged commit.
|
||||
|
||||
The are still needed if they apply to a commit that is staged for
|
||||
inclusion, but not yet included.
|
||||
|
||||
This must be done in order, because a commit 3 might fix commit 2 which
|
||||
fixes commit 1.
|
||||
"""
|
||||
shas: typing.Set[str] = set(c.sha for c in previous if c.nominated)
|
||||
assert None not in shas, 'None in shas'
|
||||
|
||||
for commit in reversed(commits):
|
||||
if not commit.nominated and commit.nomination_type is NominationType.FIXES:
|
||||
commit.nominated = commit.because_sha in shas
|
||||
|
||||
if commit.nominated:
|
||||
shas.add(commit.sha)
|
||||
|
||||
for commit in commits:
|
||||
if (commit.nomination_type is NominationType.REVERT and
|
||||
commit.because_sha in shas):
|
||||
for oldc in reversed(commits):
|
||||
if oldc.sha == commit.because_sha:
|
||||
# In this case a commit that hasn't yet been applied is
|
||||
# reverted, we don't want to apply that commit at all
|
||||
oldc.nominated = False
|
||||
oldc.resolution = Resolution.DENOMINATED
|
||||
commit.nominated = False
|
||||
commit.resolution = Resolution.DENOMINATED
|
||||
shas.remove(commit.because_sha)
|
||||
break
|
||||
|
||||
|
||||
async def gather_commits(version: str, previous: typing.List['Commit'],
|
||||
new: typing.List[typing.Tuple[str, str]], cb) -> typing.List['Commit']:
|
||||
# We create an array of the final size up front, then we pass that array
|
||||
# to the "inner" co-routine, which is turned into a list of tasks and
|
||||
# collected by asyncio.gather. We do this to allow the tasks to be
|
||||
# asyncrounously gathered, but to also ensure that the commits list remains
|
||||
# in order.
|
||||
commits = [None] * len(new)
|
||||
tasks = []
|
||||
|
||||
async def inner(commit: 'Commit', version: str, commits: typing.List['Commit'],
|
||||
index: int, cb) -> None:
|
||||
commits[index] = await resolve_nomination(commit, version)
|
||||
cb()
|
||||
|
||||
for i, (sha, desc) in enumerate(new):
|
||||
tasks.append(asyncio.ensure_future(
|
||||
inner(Commit(sha, desc), version, commits, i, cb)))
|
||||
|
||||
await asyncio.gather(*tasks)
|
||||
assert None not in commits
|
||||
|
||||
await resolve_fixes(commits, previous)
|
||||
|
||||
for commit in commits:
|
||||
if commit.resolution is Resolution.UNRESOLVED and not commit.nominated:
|
||||
commit.resolution = Resolution.NOTNEEDED
|
||||
|
||||
return commits
|
||||
|
||||
|
||||
def load() -> typing.List['Commit']:
|
||||
p = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
|
||||
if not p.exists():
|
||||
return []
|
||||
with p.open('r') as f:
|
||||
raw = json.load(f)
|
||||
return [Commit.from_json(c) for c in raw]
|
||||
|
||||
|
||||
def save(commits: typing.Iterable['Commit']) -> None:
|
||||
p = pathlib.Path(__file__).parent.parent.parent / '.pick_status.json'
|
||||
commits = list(commits)
|
||||
with p.open('wt') as f:
|
||||
json.dump([c.to_json() for c in commits], f, indent=4)
|
||||
|
||||
asyncio.ensure_future(commit_state(message=f'Update to {commits[0].sha}'))
|
@@ -1,470 +0,0 @@
|
||||
# Copyright © 2019-2020 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
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
"""Tests for pick's core data structures and routines."""
|
||||
|
||||
from unittest import mock
|
||||
import textwrap
|
||||
import typing
|
||||
|
||||
import attr
|
||||
import pytest
|
||||
|
||||
from . import core
|
||||
|
||||
|
||||
class TestCommit:
|
||||
|
||||
@pytest.fixture
|
||||
def unnominated_commit(self) -> 'core.Commit':
|
||||
return core.Commit('abc123', 'sub: A commit', master_sha='45678')
|
||||
|
||||
@pytest.fixture
|
||||
def nominated_commit(self) -> 'core.Commit':
|
||||
return core.Commit('abc123', 'sub: A commit', True,
|
||||
core.NominationType.CC, core.Resolution.UNRESOLVED)
|
||||
|
||||
class TestToJson:
|
||||
|
||||
def test_not_nominated(self, unnominated_commit: 'core.Commit'):
|
||||
c = unnominated_commit
|
||||
v = c.to_json()
|
||||
assert v == {'sha': 'abc123', 'description': 'sub: A commit', 'nominated': False,
|
||||
'nomination_type': None, 'resolution': core.Resolution.UNRESOLVED.value,
|
||||
'master_sha': '45678', 'because_sha': None}
|
||||
|
||||
def test_nominated(self, nominated_commit: 'core.Commit'):
|
||||
c = nominated_commit
|
||||
v = c.to_json()
|
||||
assert v == {'sha': 'abc123',
|
||||
'description': 'sub: A commit',
|
||||
'nominated': True,
|
||||
'nomination_type': core.NominationType.CC.value,
|
||||
'resolution': core.Resolution.UNRESOLVED.value,
|
||||
'master_sha': None,
|
||||
'because_sha': None}
|
||||
|
||||
class TestFromJson:
|
||||
|
||||
def test_not_nominated(self, unnominated_commit: 'core.Commit'):
|
||||
c = unnominated_commit
|
||||
v = c.to_json()
|
||||
c2 = core.Commit.from_json(v)
|
||||
assert c == c2
|
||||
|
||||
def test_nominated(self, nominated_commit: 'core.Commit'):
|
||||
c = nominated_commit
|
||||
v = c.to_json()
|
||||
c2 = core.Commit.from_json(v)
|
||||
assert c == c2
|
||||
|
||||
|
||||
class TestRE:
|
||||
|
||||
"""Tests for the regular expressions used to identify commits."""
|
||||
|
||||
class TestFixes:
|
||||
|
||||
def test_simple(self):
|
||||
message = textwrap.dedent("""\
|
||||
etnaviv: fix vertex buffer state emission for single stream GPUs
|
||||
|
||||
GPUs with a single supported vertex stream must use the single state
|
||||
address to program the stream.
|
||||
|
||||
Fixes: 3d09bb390a39 (etnaviv: GC7000: State changes for HALTI3..5)
|
||||
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
|
||||
Reviewed-by: Jonathan Marek <jonathan@marek.ca>
|
||||
""")
|
||||
|
||||
m = core.IS_FIX.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '3d09bb390a39'
|
||||
|
||||
class TestCC:
|
||||
|
||||
def test_single_branch(self):
|
||||
"""Tests commit meant for a single branch, ie, 19.1"""
|
||||
message = textwrap.dedent("""\
|
||||
radv: fix DCC fast clear code for intensity formats
|
||||
|
||||
This fixes a rendering issue with DiRT 4 on GFX10. Only GFX10 was
|
||||
affected because intensity formats are different.
|
||||
|
||||
Cc: 19.2 <mesa-stable@lists.freedesktop.org>
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1923
|
||||
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
||||
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '19.2'
|
||||
|
||||
def test_multiple_branches(self):
|
||||
"""Tests commit with more than one branch specified"""
|
||||
message = textwrap.dedent("""\
|
||||
radeonsi: enable zerovram for Rocket League
|
||||
|
||||
Fixes corruption on game startup.
|
||||
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1888
|
||||
|
||||
Cc: 19.1 19.2 <mesa-stable@lists.freedesktop.org>
|
||||
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '19.1'
|
||||
assert m.group(2) == '19.2'
|
||||
|
||||
def test_no_branch(self):
|
||||
"""Tests commit with no branch specification"""
|
||||
message = textwrap.dedent("""\
|
||||
anv/android: fix images created with external format support
|
||||
|
||||
This fixes a case where user first creates image and then later binds it
|
||||
with memory created from AHW buffer.
|
||||
|
||||
Cc: <mesa-stable@lists.freedesktop.org>
|
||||
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
|
||||
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
|
||||
def test_quotes(self):
|
||||
"""Tests commit with quotes around the versions"""
|
||||
message = textwrap.dedent("""\
|
||||
anv: Always fill out the AUX table even if CCS is disabled
|
||||
|
||||
Cc: "20.0" mesa-stable@lists.freedesktop.org
|
||||
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
||||
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '20.0'
|
||||
|
||||
def test_multiple_quotes(self):
|
||||
"""Tests commit with quotes around the versions"""
|
||||
message = textwrap.dedent("""\
|
||||
anv: Always fill out the AUX table even if CCS is disabled
|
||||
|
||||
Cc: "20.0" "20.1" mesa-stable@lists.freedesktop.org
|
||||
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
||||
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '20.0'
|
||||
assert m.group(2) == '20.1'
|
||||
|
||||
def test_single_quotes(self):
|
||||
"""Tests commit with quotes around the versions"""
|
||||
message = textwrap.dedent("""\
|
||||
anv: Always fill out the AUX table even if CCS is disabled
|
||||
|
||||
Cc: '20.0' mesa-stable@lists.freedesktop.org
|
||||
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
||||
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '20.0'
|
||||
|
||||
def test_multiple_single_quotes(self):
|
||||
"""Tests commit with quotes around the versions"""
|
||||
message = textwrap.dedent("""\
|
||||
anv: Always fill out the AUX table even if CCS is disabled
|
||||
|
||||
Cc: '20.0' '20.1' mesa-stable@lists.freedesktop.org
|
||||
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
||||
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3454>
|
||||
""")
|
||||
|
||||
m = core.IS_CC.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '20.0'
|
||||
assert m.group(2) == '20.1'
|
||||
|
||||
class TestRevert:
|
||||
|
||||
def test_simple(self):
|
||||
message = textwrap.dedent("""\
|
||||
Revert "radv: do not emit PKT3_CONTEXT_CONTROL with AMDGPU 3.6.0+"
|
||||
|
||||
This reverts commit 2ca8629fa9b303e24783b76a7b3b0c2513e32fbd.
|
||||
|
||||
This was initially ported from RadeonSI, but in the meantime it has
|
||||
been reverted because it might hang. Be conservative and re-introduce
|
||||
this packet emission.
|
||||
|
||||
Unfortunately this doesn't fix anything known.
|
||||
|
||||
Cc: 19.2 <mesa-stable@lists.freedesktop.org>
|
||||
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
|
||||
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
|
||||
""")
|
||||
|
||||
m = core.IS_REVERT.search(message)
|
||||
assert m is not None
|
||||
assert m.group(1) == '2ca8629fa9b303e24783b76a7b3b0c2513e32fbd'
|
||||
|
||||
|
||||
class TestResolveNomination:
|
||||
|
||||
@attr.s(slots=True)
|
||||
class FakeSubprocess:
|
||||
|
||||
"""A fake asyncio.subprocess like classe for use with mock."""
|
||||
|
||||
out: typing.Optional[bytes] = attr.ib(None)
|
||||
returncode: int = attr.ib(0)
|
||||
|
||||
async def mock(self, *_, **__):
|
||||
"""A dirtly little helper for mocking."""
|
||||
return self
|
||||
|
||||
async def communicate(self) -> typing.Tuple[bytes, bytes]:
|
||||
assert self.out is not None
|
||||
return self.out, b''
|
||||
|
||||
async def wait(self) -> int:
|
||||
return self.returncode
|
||||
|
||||
@staticmethod
|
||||
async def return_true(*_, **__) -> bool:
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
async def return_false(*_, **__) -> bool:
|
||||
return False
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_fix_is_nominated(self):
|
||||
s = self.FakeSubprocess(b'Fixes: 3d09bb390a39 (etnaviv: GC7000: State changes for HALTI3..5)')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_true):
|
||||
await core.resolve_nomination(c, '')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.FIXES
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_fix_is_not_nominated(self):
|
||||
s = self.FakeSubprocess(b'Fixes: 3d09bb390a39 (etnaviv: GC7000: State changes for HALTI3..5)')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_false):
|
||||
await core.resolve_nomination(c, '')
|
||||
|
||||
assert not c.nominated
|
||||
assert c.nomination_type is core.NominationType.FIXES
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_cc_is_nominated(self):
|
||||
s = self.FakeSubprocess(b'Cc: 16.2 <mesa-stable@lists.freedesktop.org>')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
await core.resolve_nomination(c, '16.2')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.CC
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_cc_is_nominated2(self):
|
||||
s = self.FakeSubprocess(b'Cc: mesa-stable@lists.freedesktop.org')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
await core.resolve_nomination(c, '16.2')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.CC
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_cc_is_not_nominated(self):
|
||||
s = self.FakeSubprocess(b'Cc: 16.2 <mesa-stable@lists.freedesktop.org>')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
await core.resolve_nomination(c, '16.1')
|
||||
|
||||
assert not c.nominated
|
||||
assert c.nomination_type is None
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_revert_is_nominated(self):
|
||||
s = self.FakeSubprocess(b'This reverts commit 1234567890123456789012345678901234567890.')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_true):
|
||||
await core.resolve_nomination(c, '')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.REVERT
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_revert_is_not_nominated(self):
|
||||
s = self.FakeSubprocess(b'This reverts commit 1234567890123456789012345678901234567890.')
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_false):
|
||||
await core.resolve_nomination(c, '')
|
||||
|
||||
assert not c.nominated
|
||||
assert c.nomination_type is core.NominationType.REVERT
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_is_fix_and_cc(self):
|
||||
s = self.FakeSubprocess(
|
||||
b'Fixes: 3d09bb390a39 (etnaviv: GC7000: State changes for HALTI3..5)\n'
|
||||
b'Cc: 16.1 <mesa-stable@lists.freedesktop.org>'
|
||||
)
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_true):
|
||||
await core.resolve_nomination(c, '16.1')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.FIXES
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_is_fix_and_revert(self):
|
||||
s = self.FakeSubprocess(
|
||||
b'Fixes: 3d09bb390a39 (etnaviv: GC7000: State changes for HALTI3..5)\n'
|
||||
b'This reverts commit 1234567890123456789012345678901234567890.'
|
||||
)
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_true):
|
||||
await core.resolve_nomination(c, '16.1')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.FIXES
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_is_cc_and_revert(self):
|
||||
s = self.FakeSubprocess(
|
||||
b'This reverts commit 1234567890123456789012345678901234567890.\n'
|
||||
b'Cc: 16.1 <mesa-stable@lists.freedesktop.org>'
|
||||
)
|
||||
c = core.Commit('abcdef1234567890', 'a commit')
|
||||
|
||||
with mock.patch('bin.pick.core.asyncio.create_subprocess_exec', s.mock):
|
||||
with mock.patch('bin.pick.core.is_commit_in_branch', self.return_true):
|
||||
await core.resolve_nomination(c, '16.1')
|
||||
|
||||
assert c.nominated
|
||||
assert c.nomination_type is core.NominationType.CC
|
||||
|
||||
|
||||
class TestResolveFixes:
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_in_new(self):
|
||||
"""Because commit abcd is nominated, so f123 should be as well."""
|
||||
c = [
|
||||
core.Commit('f123', 'desc', nomination_type=core.NominationType.FIXES, because_sha='abcd'),
|
||||
core.Commit('abcd', 'desc', True),
|
||||
]
|
||||
await core.resolve_fixes(c, [])
|
||||
assert c[1].nominated
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_not_in_new(self):
|
||||
"""Because commit abcd is not nominated, commit f123 shouldn't be either."""
|
||||
c = [
|
||||
core.Commit('f123', 'desc', nomination_type=core.NominationType.FIXES, because_sha='abcd'),
|
||||
core.Commit('abcd', 'desc'),
|
||||
]
|
||||
await core.resolve_fixes(c, [])
|
||||
assert not c[0].nominated
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_in_previous(self):
|
||||
"""Because commit abcd is nominated, so f123 should be as well."""
|
||||
p = [
|
||||
core.Commit('abcd', 'desc', True),
|
||||
]
|
||||
c = [
|
||||
core.Commit('f123', 'desc', nomination_type=core.NominationType.FIXES, because_sha='abcd'),
|
||||
]
|
||||
await core.resolve_fixes(c, p)
|
||||
assert c[0].nominated
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_not_in_previous(self):
|
||||
"""Because commit abcd is not nominated, commit f123 shouldn't be either."""
|
||||
p = [
|
||||
core.Commit('abcd', 'desc'),
|
||||
]
|
||||
c = [
|
||||
core.Commit('f123', 'desc', nomination_type=core.NominationType.FIXES, because_sha='abcd'),
|
||||
]
|
||||
await core.resolve_fixes(c, p)
|
||||
assert not c[0].nominated
|
||||
|
||||
|
||||
class TestIsCommitInBranch:
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_no(self):
|
||||
# Hopefully this is never true?
|
||||
value = await core.is_commit_in_branch('ffffffffffffffffffffffffffffff')
|
||||
assert not value
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_yes(self):
|
||||
# This commit is from 2000, it better always be in the branch
|
||||
value = await core.is_commit_in_branch('88f3b89a2cb77766d2009b9868c44e03abe2dbb2')
|
||||
assert value
|
||||
|
||||
|
||||
class TestFullSha:
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_basic(self):
|
||||
# This commit is from 2000, it better always be in the branch
|
||||
value = await core.full_sha('88f3b89a2cb777')
|
||||
assert value
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_invalid(self):
|
||||
# This commit is from 2000, it better always be in the branch
|
||||
with pytest.raises(core.PickUIException):
|
||||
await core.full_sha('fffffffffffffffffffffffffffffffffff')
|
259
bin/pick/ui.py
259
bin/pick/ui.py
@@ -1,259 +0,0 @@
|
||||
# Copyright © 2020-2020 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
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
"""Urwid UI for pick script."""
|
||||
|
||||
import asyncio
|
||||
import functools
|
||||
import itertools
|
||||
import textwrap
|
||||
import typing
|
||||
|
||||
import attr
|
||||
import urwid
|
||||
|
||||
from . import core
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
WidgetType = typing.TypeVar('WidgetType', bound=urwid.Widget)
|
||||
|
||||
PALETTE = [
|
||||
('a', 'black', 'light gray'),
|
||||
('b', 'black', 'dark red'),
|
||||
('bg', 'black', 'dark blue'),
|
||||
('reversed', 'standout', ''),
|
||||
]
|
||||
|
||||
|
||||
class RootWidget(urwid.Frame):
|
||||
|
||||
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]:
|
||||
if key == 'q':
|
||||
raise urwid.ExitMainLoop()
|
||||
elif key == 'u':
|
||||
asyncio.ensure_future(self.ui.update())
|
||||
elif key == 'a':
|
||||
self.ui.add()
|
||||
else:
|
||||
return super().keypress(size, key)
|
||||
return None
|
||||
|
||||
|
||||
class CommitWidget(urwid.Text):
|
||||
|
||||
# urwid.Text is normally not interactable, this is required to tell urwid
|
||||
# to use our keypress method
|
||||
_selectable = True
|
||||
|
||||
def __init__(self, ui: 'UI', commit: 'core.Commit'):
|
||||
super().__init__(commit.description)
|
||||
self.ui = ui
|
||||
self.commit = commit
|
||||
|
||||
async def apply(self) -> None:
|
||||
result, err = await self.commit.apply(self.ui)
|
||||
if not result:
|
||||
self.ui.chp_failed(self, err)
|
||||
else:
|
||||
self.ui.remove_commit(self)
|
||||
|
||||
async def denominate(self) -> None:
|
||||
await self.commit.denominate(self.ui)
|
||||
self.ui.remove_commit(self)
|
||||
|
||||
async def backport(self) -> None:
|
||||
await self.commit.backport(self.ui)
|
||||
self.ui.remove_commit(self)
|
||||
|
||||
def keypress(self, size: int, key: str) -> typing.Optional[str]:
|
||||
if key == 'c':
|
||||
asyncio.ensure_future(self.apply())
|
||||
elif key == 'd':
|
||||
asyncio.ensure_future(self.denominate())
|
||||
elif key == 'b':
|
||||
asyncio.ensure_future(self.backport())
|
||||
else:
|
||||
return key
|
||||
return None
|
||||
|
||||
|
||||
@attr.s(slots=True)
|
||||
class UI:
|
||||
|
||||
"""Main management object.
|
||||
|
||||
:previous_commits: A list of commits to master since this branch was created
|
||||
:new_commits: Commits added to master since the last time this script was run
|
||||
"""
|
||||
|
||||
commit_list: typing.List['urwid.Button'] = attr.ib(factory=lambda: urwid.SimpleFocusListWalker([]), init=False)
|
||||
feedback_box: typing.List['urwid.Text'] = attr.ib(factory=lambda: urwid.SimpleFocusListWalker([]), init=False)
|
||||
header: 'urwid.Text' = attr.ib(factory=lambda: urwid.Text('Mesa Stable Picker', align='center'), init=False)
|
||||
body: 'urwid.Columns' = attr.ib(attr.Factory(lambda s: s._make_body(), True), init=False)
|
||||
footer: 'urwid.Columns' = attr.ib(attr.Factory(lambda s: s._make_footer(), True), init=False)
|
||||
root: RootWidget = attr.ib(attr.Factory(lambda s: s._make_root(), True), init=False)
|
||||
mainloop: urwid.MainLoop = attr.ib(None, init=False)
|
||||
|
||||
previous_commits: typing.List['core.Commit'] = attr.ib(factory=list, init=False)
|
||||
new_commits: typing.List['core.Commit'] = attr.ib(factory=list, init=False)
|
||||
|
||||
def _make_body(self) -> 'urwid.Columns':
|
||||
commits = urwid.ListBox(self.commit_list)
|
||||
feedback = urwid.ListBox(self.feedback_box)
|
||||
return urwid.Columns([commits, feedback])
|
||||
|
||||
def _make_footer(self) -> 'urwid.Columns':
|
||||
body = [
|
||||
urwid.Text('[U]pdate'),
|
||||
urwid.Text('[Q]uit'),
|
||||
urwid.Text('[C]herry Pick'),
|
||||
urwid.Text('[D]enominate'),
|
||||
urwid.Text('[B]ackport'),
|
||||
urwid.Text('[A]pply additional patch')
|
||||
]
|
||||
return urwid.Columns(body)
|
||||
|
||||
def _make_root(self) -> 'RootWidget':
|
||||
return RootWidget(self.body, self.header, self.footer, 'body', ui=self)
|
||||
|
||||
def render(self) -> 'WidgetType':
|
||||
asyncio.ensure_future(self.update())
|
||||
return self.root
|
||||
|
||||
def load(self) -> None:
|
||||
self.previous_commits = core.load()
|
||||
|
||||
async def update(self) -> None:
|
||||
self.load()
|
||||
with open('VERSION', 'r') as f:
|
||||
version = f.read().strip()[:4]
|
||||
if self.previous_commits:
|
||||
sha = self.previous_commits[0].sha
|
||||
else:
|
||||
sha = f'{version}-branchpoint'
|
||||
|
||||
new_commits = await core.get_new_commits(sha)
|
||||
|
||||
if new_commits:
|
||||
pb = urwid.ProgressBar('a', 'b', done=len(new_commits))
|
||||
o = self.mainloop.widget
|
||||
self.mainloop.widget = urwid.Overlay(
|
||||
urwid.Filler(urwid.LineBox(pb)), o, 'center', ('relative', 50), 'middle', ('relative', 50))
|
||||
self.new_commits = await core.gather_commits(
|
||||
version, self.previous_commits, new_commits,
|
||||
lambda: pb.set_completion(pb.current + 1))
|
||||
self.mainloop.widget = o
|
||||
|
||||
for commit in reversed(list(itertools.chain(self.new_commits, self.previous_commits))):
|
||||
if commit.nominated and commit.resolution is core.Resolution.UNRESOLVED:
|
||||
b = urwid.AttrMap(CommitWidget(self, commit), None, focus_map='reversed')
|
||||
self.commit_list.append(b)
|
||||
self.save()
|
||||
|
||||
async def feedback(self, text: str) -> None:
|
||||
self.feedback_box.append(urwid.AttrMap(urwid.Text(text), None))
|
||||
|
||||
def remove_commit(self, commit: CommitWidget) -> None:
|
||||
for i, c in enumerate(self.commit_list):
|
||||
if c.base_widget is commit:
|
||||
del self.commit_list[i]
|
||||
break
|
||||
|
||||
def save(self):
|
||||
core.save(itertools.chain(self.new_commits, self.previous_commits))
|
||||
|
||||
def add(self) -> None:
|
||||
"""Add an additional commit which isn't nominated."""
|
||||
o = self.mainloop.widget
|
||||
|
||||
def reset_cb(_) -> None:
|
||||
self.mainloop.widget = o
|
||||
|
||||
async def apply_cb(edit: urwid.Edit) -> None:
|
||||
text: str = edit.get_edit_text()
|
||||
|
||||
# In case the text is empty
|
||||
if not text:
|
||||
return
|
||||
|
||||
sha = await core.full_sha(text)
|
||||
for c in reversed(list(itertools.chain(self.new_commits, self.previous_commits))):
|
||||
if c.sha == sha:
|
||||
commit = c
|
||||
break
|
||||
else:
|
||||
raise RuntimeError(f"Couldn't find {sha}")
|
||||
|
||||
await commit.apply(self)
|
||||
|
||||
q = urwid.Edit("Comit sha\n")
|
||||
ok_btn = urwid.Button('Ok')
|
||||
urwid.connect_signal(ok_btn, 'click', lambda _: asyncio.ensure_future(apply_cb(q)))
|
||||
urwid.connect_signal(ok_btn, 'click', reset_cb)
|
||||
|
||||
can_btn = urwid.Button('Cancel')
|
||||
urwid.connect_signal(can_btn, 'click', reset_cb)
|
||||
|
||||
cols = urwid.Columns([ok_btn, can_btn])
|
||||
pile = urwid.Pile([q, cols])
|
||||
box = urwid.LineBox(pile)
|
||||
|
||||
self.mainloop.widget = urwid.Overlay(
|
||||
urwid.Filler(box), o, 'center', ('relative', 50), 'middle', ('relative', 50)
|
||||
)
|
||||
|
||||
def chp_failed(self, commit: 'CommitWidget', err: str) -> None:
|
||||
o = self.mainloop.widget
|
||||
|
||||
def reset_cb(_) -> None:
|
||||
self.mainloop.widget = o
|
||||
|
||||
t = urwid.Text(textwrap.dedent(f"""
|
||||
Failed to apply {commit.commit.sha} {commit.commit.description} with the following error:
|
||||
|
||||
{err}
|
||||
|
||||
You can either cancel, or resolve the conflicts, commit the
|
||||
changes and select ok."""))
|
||||
|
||||
can_btn = urwid.Button('Cancel')
|
||||
urwid.connect_signal(can_btn, 'click', reset_cb)
|
||||
urwid.connect_signal(
|
||||
can_btn, 'click', lambda _: asyncio.ensure_future(commit.commit.abort_cherry(self, err)))
|
||||
|
||||
ok_btn = urwid.Button('Ok')
|
||||
urwid.connect_signal(ok_btn, 'click', reset_cb)
|
||||
urwid.connect_signal(
|
||||
ok_btn, 'click', lambda _: asyncio.ensure_future(commit.commit.resolve(self)))
|
||||
urwid.connect_signal(
|
||||
ok_btn, 'click', lambda _: self.remove_commit(commit))
|
||||
|
||||
cols = urwid.Columns([ok_btn, can_btn])
|
||||
pile = urwid.Pile([t, cols])
|
||||
box = urwid.LineBox(pile)
|
||||
|
||||
self.mainloop.widget = urwid.Overlay(
|
||||
urwid.Filler(box), o, 'center', ('relative', 50), 'middle', ('relative', 50)
|
||||
)
|
@@ -19,10 +19,9 @@ PLATFORM_SYMBOLS = [
|
||||
]
|
||||
|
||||
|
||||
def get_symbols_nm(nm, lib):
|
||||
def get_symbols(nm, lib):
|
||||
'''
|
||||
List all the (non platform-specific) symbols exported by the library
|
||||
using `nm`
|
||||
'''
|
||||
symbols = []
|
||||
platform_name = platform.system()
|
||||
@@ -40,35 +39,7 @@ def get_symbols_nm(nm, lib):
|
||||
assert symbol_name[0] == '_'
|
||||
symbol_name = symbol_name[1:]
|
||||
symbols.append(symbol_name)
|
||||
return symbols
|
||||
|
||||
|
||||
def get_symbols_dumpbin(dumpbin, lib):
|
||||
'''
|
||||
List all the (non platform-specific) symbols exported by the library
|
||||
using `dumpbin`
|
||||
'''
|
||||
symbols = []
|
||||
output = subprocess.check_output([dumpbin, '/exports', lib],
|
||||
stderr=open(os.devnull, 'w')).decode("ascii")
|
||||
for line in output.splitlines():
|
||||
fields = line.split()
|
||||
# The lines with the symbols are made of at least 4 columns; see details below
|
||||
if len(fields) < 4:
|
||||
continue
|
||||
try:
|
||||
# Making sure the first 3 columns are a dec counter, a hex counter
|
||||
# and a hex address
|
||||
_ = int(fields[0], 10)
|
||||
_ = int(fields[1], 16)
|
||||
_ = int(fields[2], 16)
|
||||
except ValueError:
|
||||
continue
|
||||
symbol_name = fields[3]
|
||||
# De-mangle symbols
|
||||
if symbol_name[0] == '_':
|
||||
symbol_name = symbol_name[1:].split('@')[0]
|
||||
symbols.append(symbol_name)
|
||||
return symbols
|
||||
|
||||
|
||||
@@ -84,21 +55,12 @@ def main():
|
||||
help='path to library')
|
||||
parser.add_argument('--nm',
|
||||
action='store',
|
||||
help='path to binary (or name in $PATH)')
|
||||
parser.add_argument('--dumpbin',
|
||||
action='store',
|
||||
required=True,
|
||||
help='path to binary (or name in $PATH)')
|
||||
args = parser.parse_args()
|
||||
|
||||
try:
|
||||
if platform.system() == 'Windows':
|
||||
if not args.dumpbin:
|
||||
parser.error('--dumpbin is mandatory')
|
||||
lib_symbols = get_symbols_dumpbin(args.dumpbin, args.lib)
|
||||
else:
|
||||
if not args.nm:
|
||||
parser.error('--nm is mandatory')
|
||||
lib_symbols = get_symbols_nm(args.nm, args.lib)
|
||||
lib_symbols = get_symbols(args.nm, args.lib)
|
||||
except:
|
||||
# We can't run this test, but we haven't technically failed it either
|
||||
# Return the GNU "skip" error code
|
||||
@@ -147,10 +109,6 @@ def main():
|
||||
continue
|
||||
if symbol in optional_symbols:
|
||||
continue
|
||||
if symbol[:2] == '_Z':
|
||||
# Ignore random C++ symbols
|
||||
#TODO: figure out if there's any way to avoid exporting them in the first place
|
||||
continue
|
||||
unknown_symbols.append(symbol)
|
||||
|
||||
missing_symbols = [
|
||||
|
@@ -112,7 +112,6 @@ def AddOptions(opts):
|
||||
opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
|
||||
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
|
||||
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
|
||||
opts.Add(BoolOption('force_scons', 'Force enable scons on deprecated platforms', 'false'))
|
||||
opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
|
||||
'no'))
|
||||
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
|
||||
|
@@ -41,11 +41,11 @@ as if you're defining a large, static table of information.
|
||||
<li>Opening braces go on the same line as the if/for/while statement.
|
||||
For example:
|
||||
<pre>
|
||||
if (condition) {
|
||||
foo;
|
||||
} else {
|
||||
bar;
|
||||
}
|
||||
if (condition) {
|
||||
foo;
|
||||
} else {
|
||||
bar;
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put a space before/after operators. For example, <code>a = b + c;</code>
|
||||
@@ -53,7 +53,7 @@ and not <code>a=b+c;</code>
|
||||
|
||||
<li>This GNU indent command generally does the right thing for formatting:
|
||||
<pre>
|
||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
||||
</pre>
|
||||
|
||||
<li>
|
||||
@@ -63,47 +63,47 @@ follow <a href="http://www.doxygen.nl">Doxygen</a> conventions.
|
||||
</p>
|
||||
Single-line comments:
|
||||
<pre>
|
||||
/* null-out pointer to prevent dangling reference below */
|
||||
bufferObj = NULL;
|
||||
/* null-out pointer to prevent dangling reference below */
|
||||
bufferObj = NULL;
|
||||
</pre>
|
||||
Or,
|
||||
<pre>
|
||||
bufferObj = NULL; /* prevent dangling reference below */
|
||||
bufferObj = NULL; /* prevent dangling reference below */
|
||||
</pre>
|
||||
Multi-line comment:
|
||||
<pre>
|
||||
/* If this is a new buffer object id, or one which was generated but
|
||||
* never used before, allocate a buffer object now.
|
||||
*/
|
||||
/* If this is a new buffer object id, or one which was generated but
|
||||
* never used before, allocate a buffer object now.
|
||||
*/
|
||||
</pre>
|
||||
We try to quote the OpenGL specification where prudent:
|
||||
<pre>
|
||||
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
|
||||
*
|
||||
* "An INVALID_OPERATION error is generated for any of the following
|
||||
* conditions:
|
||||
*
|
||||
* * <length> is zero."
|
||||
*
|
||||
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
|
||||
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
|
||||
* either.
|
||||
*/
|
||||
/* Page 38 of the PDF of the OpenGL ES 3.0 spec says:
|
||||
*
|
||||
* "An INVALID_OPERATION error is generated for any of the following
|
||||
* conditions:
|
||||
*
|
||||
* * <length> is zero."
|
||||
*
|
||||
* Additionally, page 94 of the PDF of the OpenGL 4.5 core spec
|
||||
* (30.10.2014) also says this, so it's no longer allowed for desktop GL,
|
||||
* either.
|
||||
*/
|
||||
</pre>
|
||||
Function comment example:
|
||||
<pre>
|
||||
/**
|
||||
* Create and initialize a new buffer object. Called via the
|
||||
* ctx->Driver.CreateObject() driver callback function.
|
||||
* \param name integer name of the object
|
||||
* \param type one of GL_FOO, GL_BAR, etc.
|
||||
* \return pointer to new object or NULL if error
|
||||
*/
|
||||
struct gl_object *
|
||||
_mesa_create_object(GLuint name, GLenum type)
|
||||
{
|
||||
/* function body */
|
||||
}
|
||||
/**
|
||||
* Create and initialize a new buffer object. Called via the
|
||||
* ctx->Driver.CreateObject() driver callback function.
|
||||
* \param name integer name of the object
|
||||
* \param type one of GL_FOO, GL_BAR, etc.
|
||||
* \return pointer to new object or NULL if error
|
||||
*/
|
||||
struct gl_object *
|
||||
_mesa_create_object(GLuint name, GLenum type)
|
||||
{
|
||||
/* function body */
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put the function return type and qualifiers on one line and the function
|
||||
@@ -113,11 +113,11 @@ the opening brace goes on the next line by itself (see above.)
|
||||
|
||||
<li>Function names follow various conventions depending on the type of function:
|
||||
<pre>
|
||||
glFooBar() - a public GL entry point (in glapi_dispatch.c)
|
||||
_mesa_FooBar() - the internal immediate mode function
|
||||
save_FooBar() - retained mode (display list) function in dlist.c
|
||||
foo_bar() - a static (private) function
|
||||
_mesa_foo_bar() - an internal non-static Mesa function
|
||||
glFooBar() - a public GL entry point (in glapi_dispatch.c)
|
||||
_mesa_FooBar() - the internal immediate mode function
|
||||
save_FooBar() - retained mode (display list) function in dlist.c
|
||||
foo_bar() - a static (private) function
|
||||
_mesa_foo_bar() - an internal non-static Mesa function
|
||||
</pre>
|
||||
|
||||
<li>Constants, macros and enum names are <code>ALL_UPPERCASE</code>, with _
|
||||
|
@@ -77,6 +77,9 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -77,17 +77,17 @@ table.</li>
|
||||
<p>This can be implemented in just a few lines of C code. The file
|
||||
<code>src/mesa/glapi/glapitemp.h</code> contains code very similar to this.</p>
|
||||
|
||||
<figure>
|
||||
<pre>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td><pre>
|
||||
void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
|
||||
{
|
||||
const struct _glapi_table * const dispatch = GET_DISPATCH();
|
||||
|
||||
(*dispatch->Vertex3f)(x, y, z);
|
||||
}
|
||||
</pre>
|
||||
<figcaption>Sample dispatch function</figcaption>
|
||||
</figure>
|
||||
}</pre></td></tr>
|
||||
<tr><td>Sample dispatch function</td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<p>The problem with this simple implementation is the large amount of
|
||||
overhead that it adds to every GL function call.</p>
|
||||
@@ -129,14 +129,15 @@ The resulting implementation of <code>GET_DISPATCH</code> is slightly more
|
||||
complex, but it avoids the expensive <code>pthread_getspecific</code> call in
|
||||
the common case.</p>
|
||||
|
||||
<figure>
|
||||
<pre>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td><pre>
|
||||
#define GET_DISPATCH() \
|
||||
(_glapi_Dispatch != NULL) \
|
||||
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
|
||||
</pre>
|
||||
<figcaption>Improved <code>GET_DISPATCH</code> Implementation</figcaption>
|
||||
</figure>
|
||||
</pre></td></tr>
|
||||
<tr><td>Improved <code>GET_DISPATCH</code> Implementation</td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<h3>3.2. ELF TLS</h3>
|
||||
|
||||
@@ -153,15 +154,16 @@ direct rendering drivers that use either interface. Once the pointer is
|
||||
properly declared, <code>GET_DISPACH</code> becomes a simple variable
|
||||
reference.</p>
|
||||
|
||||
<figure>
|
||||
<pre>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td><pre>
|
||||
extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
||||
__attribute__((tls_model("initial-exec")));
|
||||
|
||||
#define GET_DISPATCH() _glapi_tls_Dispatch
|
||||
</pre>
|
||||
<figcaption>TLS <code>GET_DISPATCH</code> Implementation</figcaption>
|
||||
</figure>
|
||||
</pre></td></tr>
|
||||
<tr><td>TLS <code>GET_DISPATCH</code> Implementation</td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<p>Use of this path is controlled by the preprocessor define
|
||||
<code>USE_ELF_TLS</code>. Any platform capable of using ELF TLS should use this
|
||||
@@ -213,12 +215,13 @@ of the assembly source file different implementations of the macro are
|
||||
selected based on the defined preprocessor variables. The assembly code
|
||||
then consists of a series of invocations of the macros such as:
|
||||
|
||||
<figure>
|
||||
<pre>
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
<tr><td><pre>
|
||||
GL_STUB(Color3fv, _gloffset_Color3fv)
|
||||
</pre>
|
||||
<figcaption>SPARC Assembly Implementation of <code>glColor3fv</code></figcaption>
|
||||
</figure>
|
||||
</pre></td></tr>
|
||||
<tr><td>SPARC Assembly Implementation of <code>glColor3fv</code></td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<p>The benefit of this technique is that changes to the calling pattern
|
||||
(i.e., addition of a new dispatch table pointer access method) require fewer
|
||||
@@ -268,6 +271,8 @@ dispatch stub.</p>
|
||||
<code>src/mesa/glapi/glapi.c</code> just before <code>glprocs.h</code> is
|
||||
included.</p>
|
||||
|
||||
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -19,10 +19,10 @@
|
||||
<h2>Downloading</h2>
|
||||
|
||||
<p>
|
||||
You can download the released versions of Mesa via
|
||||
<a href="https://mesa.freedesktop.org/archive/">HTTPS</a>
|
||||
or
|
||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/">FTP</a>.
|
||||
Primary Mesa download site:
|
||||
<a href="ftp://ftp.freedesktop.org/pub/mesa/">ftp.freedesktop.org</a> (FTP)
|
||||
or <a href="https://mesa.freedesktop.org/archive/">mesa.freedesktop.org</a>
|
||||
(HTTPS).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@@ -307,8 +307,6 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
||||
<dd>disable instruction compaction</dd>
|
||||
<dt><code>nodualobj</code></dt>
|
||||
<dd>suppress generation of dual-object geometry shader code</dd>
|
||||
<dt><code>nofc</code></dt>
|
||||
<dd>disable fast clears</dd>
|
||||
<dt><code>norbc</code></dt>
|
||||
<dd>disable single sampled render buffer compression</dd>
|
||||
<dt><code>optimizer</code></dt>
|
||||
@@ -544,231 +542,6 @@ Mesa EGL supports different sets of environment variables. See the
|
||||
</dl>
|
||||
|
||||
|
||||
<h3>RADV driver environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>RADV_DEBUG</code></dt>
|
||||
<dd>a comma-separated list of named flags, which do various things:
|
||||
<dl>
|
||||
<dt><code>allbos</code></dt>
|
||||
<dd>force all allocated buffers to be referenced in submissions</dd>
|
||||
<dt><code>allentrypoints</code></dt>
|
||||
<dd>enable all device/instance entrypoints</dd>
|
||||
<dt><code>checkir</code></dt>
|
||||
<dd>validate the LLVM IR before LLVM compiles the shader</dd>
|
||||
<dt><code>errors</code></dt>
|
||||
<dd>display more info about errors</dd>
|
||||
<dt><code>info</code></dt>
|
||||
<dd>show GPU-related information</dd>
|
||||
<dt><code>metashaders</code></dt>
|
||||
<dd>dump internal meta shaders</dd>
|
||||
<dt><code>nobinning</code></dt>
|
||||
<dd>disable primitive binning</dd>
|
||||
<dt><code>nocache</code></dt>
|
||||
<dd>disable shaders cache</dd>
|
||||
<dt><code>nocompute</code></dt>
|
||||
<dd>disable compute queue</dd>
|
||||
<dt><code>nodcc</code></dt>
|
||||
<dd>disable Delta Color Compression (DCC) on images</dd>
|
||||
<dt><code>nodynamicbounds</code></dt>
|
||||
<dd>do not check OOB access for dynamic descriptors</dd>
|
||||
<dt><code>nofastclears</code></dt>
|
||||
<dd>disable fast color/depthstencil clears</dd>
|
||||
<dt><code>nohiz</code></dt>
|
||||
<dd>disable HIZ for depthstencil images</dd>
|
||||
<dt><code>noibs</code></dt>
|
||||
<dd>disable directly recording command buffers in GPU-visible memory</dd>
|
||||
<dt><code>noloadstoreopt</code></dt>
|
||||
<dd>disable LLVM SILoadStoreOptimizer pass</dd>
|
||||
<dt><code>nomemorycache</code></dt>
|
||||
<dd>disable memory shaders cache</dd>
|
||||
<dt><code>nongg</code></dt>
|
||||
<dd>disable NGG for GFX10+</dd>
|
||||
<dt><code>nooutoforder</code></dt>
|
||||
<dd>disable out-of-order rasterization</dd>
|
||||
<dt><code>noshaderballot</code></dt>
|
||||
<dd>disable shader ballot</dd>
|
||||
<dt><code>nosisched</code></dt>
|
||||
<dd>disable LLVM sisched experimental scheduler</dd>
|
||||
<dt><code>nothreadllvm</code></dt>
|
||||
<dd>disable LLVM threaded compilation</dd>
|
||||
<dt><code>preoptir</code></dt>
|
||||
<dd>dump LLVM IR before any optimizations</dd>
|
||||
<dt><code>shaders</code></dt>
|
||||
<dd>dump shaders</dd>
|
||||
<dt><code>shaderstats</code></dt>
|
||||
<dd>dump shader statistics</dd>
|
||||
<dt><code>spirv</code></dt>
|
||||
<dd>dump SPIR-V</dd>
|
||||
<dt><code>startup</code></dt>
|
||||
<dd>display info at startup</dd>
|
||||
<dt><code>syncshaders</code></dt>
|
||||
<dd>synchronize shaders after all draws/dispatches</dd>
|
||||
<dt><code>vmfaults</code></dt>
|
||||
<dd>check for VM memory faults via dmesg</dd>
|
||||
<dt><code>zerovram</code></dt>
|
||||
<dd>initialize all memory allocated in VRAM as zero</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt><code>RADV_FORCE_FAMILY</code></dt>
|
||||
<dd>force the driver to use a specific family eg. gfx900 (developers only)</dd>
|
||||
<dt><code>RADV_PERFTEST</code></dt>
|
||||
<dd>a comma-separated list of named flags, which do various things:
|
||||
<dl>
|
||||
<dt><code>aco</code></dt>
|
||||
<dd>enable ACO experimental compiler</dd>
|
||||
<dt><code>bolist</code></dt>
|
||||
<dd>enable the global BO list</dd>
|
||||
<dt><code>cswave32</code></dt>
|
||||
<dd>enable wave32 for compute shaders (GFX10+)</dd>
|
||||
<dt><code>dccmsaa</code></dt>
|
||||
<dd>enable DCC for MSAA images</dd>
|
||||
<dt><code>dfsm</code></dt>
|
||||
<dd>enable dfsm</dd>
|
||||
<dt><code>gewave32</code></dt>
|
||||
<dd>enable wave32 for vertex/tess/geometry shaders (GFX10+)</dd>
|
||||
<dt><code>localbos</code></dt>
|
||||
<dd>enable local BOs</dd>
|
||||
<dt><code>nobatchchain</code></dt>
|
||||
<dd>disable chained submissions</dd>
|
||||
<dt><code>pswave32</code></dt>
|
||||
<dd>enable wave32 for pixel shaders (GFX10+)</dd>
|
||||
<dt><code>shader_ballot</code></dt>
|
||||
<dd>enable shader ballot</dd>
|
||||
<dt><code>sisched</code></dt>
|
||||
<dd>enable LLVM sisched experimental scheduler</dd>
|
||||
<dt><code>tccompatcmask</code></dt>
|
||||
<dd>enable TC-compat cmask for MSAA images</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt><code>RADV_SECURE_COMPILE_THREADS</code></dt>
|
||||
<dd>maximum number of secure compile threads (up to 32)</dd>
|
||||
<dt><code>RADV_TRACE_FILE</code></dt>
|
||||
<dd>generate cmdbuffer tracefiles when a GPU hang is detected</dd>
|
||||
</dl>
|
||||
|
||||
<h3>radeonsi driver environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>AMD_DEBUG</code></dt>
|
||||
<dd>a comma-separated list of named flags, which do various things:</dd>
|
||||
<dl>
|
||||
<dd></dd>
|
||||
<h4>Disable features / workaround flags (useful to diagnose an issue):</h4>
|
||||
<dt><code>nodma</code></dt>
|
||||
<dd>Disable SDMA</dd>
|
||||
<dt><code>nodmaclear</code></dt>
|
||||
<dd>Disable SDMA clears</dd>
|
||||
<dt><code>nodmacopyimage</code></dt>
|
||||
<dd>Disable SDMA image copies</dd>
|
||||
<dt><code>zerovram</code></dt>
|
||||
<dd>Clear VRAM allocations.</dd>
|
||||
<dt><code>nodcc</code></dt>
|
||||
<dd>Disable DCC.</dd>
|
||||
<dt><code>nodccclear</code></dt>
|
||||
<dd>Disable DCC fast clear.</dd>
|
||||
<dt><code>nodccfb</code></dt>
|
||||
<dd>Disable separate DCC on the main framebuffer</dd>
|
||||
<dt><code>nodccmsaa</code></dt>
|
||||
<dd>Disable DCC for MSAA</dd>
|
||||
<dt><code>nodpbb</code></dt>
|
||||
<dd>Disable DPBB.</dd>
|
||||
<dt><code>nodfsm</code></dt>
|
||||
<dd>Disable DFSM.</dd>
|
||||
<dt><code>notiling</code></dt>
|
||||
<dd>Disable tiling</dd>
|
||||
<dt><code>nofmask</code></dt>
|
||||
<dd>Disable MSAA compression</dd>
|
||||
<dt><code>nohyperz</code></dt>
|
||||
<dd>Disable Hyper-Z</dd>
|
||||
<dt><code>norbplus</code></dt>
|
||||
<dd>Disable RB+.</dd>
|
||||
<dt><code>no2d</code></dt>
|
||||
<dd>Disable 2D tiling</dd>
|
||||
<h4>Info flags:</h4>
|
||||
<dt><code>info</code></dt>
|
||||
<dd>Print driver information</dd>
|
||||
<dt><code>tex</code></dt>
|
||||
<dd>Print texture info</dd>
|
||||
<dt><code>compute</code></dt>
|
||||
<dd>Print compute info</dd>
|
||||
<dt><code>vm</code></dt>
|
||||
<dd>Print virtual addresses when creating resources</dd>
|
||||
<h4>Print shaders flags:</h4>
|
||||
<dt><code>vs</code></dt>
|
||||
<dd>Print vertex shaders</dd>
|
||||
<dt><code>ps</code></dt>
|
||||
<dd>Print pixel shaders</dd>
|
||||
<dt><code>gs</code></dt>
|
||||
<dd>Print geometry shaders</dd>
|
||||
<dt><code>tcs</code></dt>
|
||||
<dd>Print tessellation control shaders</dd>
|
||||
<dt><code>tes</code></dt>
|
||||
<dd>Print tessellation evaluation shaders</dd>
|
||||
<dt><code>cs</code></dt>
|
||||
<dd>Print compute shaders</dd>
|
||||
<dt><code>noir</code></dt>
|
||||
<dd>Don't print the LLVM IR</dd>
|
||||
<dt><code>nonir</code></dt>
|
||||
<dd>Don't print NIR when printing shaders</dd>
|
||||
<dt><code>noasm</code></dt>
|
||||
<dd>Don't print disassembled shaders</dd>
|
||||
<dt><code>preoptir</code></dt>
|
||||
<dd>Print the LLVM IR before initial optimizations</dd>
|
||||
<h4>Shader compilation tuning flags:</h4>
|
||||
<dt><code>sisched</code></dt>
|
||||
<dd>Enable LLVM SI Machine Instruction Scheduler.</dd>
|
||||
<dt><code>gisel</code></dt>
|
||||
<dd>Enable LLVM global instruction selector.</dd>
|
||||
<dt><code>w32ge</code></dt>
|
||||
<dd>Use Wave32 for vertex, tessellation, and geometry shaders.</dd>
|
||||
<dt><code>w32ps</code></dt>
|
||||
<dd>Use Wave32 for pixel shaders.</dd>
|
||||
<dt><code>w32cs</code></dt>
|
||||
<dd>Use Wave32 for computes shaders.</dd>
|
||||
<dt><code>w64ge</code></dt>
|
||||
<dd>Use Wave64 for vertex, tessellation, and geometry shaders.</dd>
|
||||
<dt><code>w64ps</code></dt>
|
||||
<dd>Use Wave64 for pixel shaders.</dd>
|
||||
<dt><code>w64cs</code></dt>
|
||||
<dd>Use Wave64 for computes shaders.</dd>
|
||||
<dt><code>checkir</code></dt>
|
||||
<dd>Enable additional sanity checks on shader IR</dd>
|
||||
<dt><code>mono</code></dt>
|
||||
<dd>Use old-style monolithic shaders compiled on demand</dd>
|
||||
<dt><code>nooptvariant</code></dt>
|
||||
<dd>Disable compiling optimized shader variants.</dd>
|
||||
<h4>Advanced usage flags:</h4>
|
||||
<dt><code>forcedma</code></dt>
|
||||
<dd>Use SDMA for all operations when possible.</dd>
|
||||
<dt><code>nowc</code></dt>
|
||||
<dd>Disable GTT write combining</dd>
|
||||
<dt><code>check_vm</code></dt>
|
||||
<dd>Check VM faults and dump debug info.</dd>
|
||||
<dt><code>reserve_vmid</code></dt>
|
||||
<dd>Force VMID reservation per context.</dd>
|
||||
<dt><code>nogfx</code></dt>
|
||||
<dd>Disable graphics. Only multimedia compute paths can be used.</dd>
|
||||
<dt><code>nongg</code></dt>
|
||||
<dd>Disable NGG and use the legacy pipeline.</dd>
|
||||
<dt><code>nggc</code></dt>
|
||||
<dd>Always use NGG culling even when it can hurt.</dd>
|
||||
<dt><code>nonggc</code></dt>
|
||||
<dd>Disable NGG culling.</dd>
|
||||
<dt><code>alwayspd</code></dt>
|
||||
<dd>Always enable the primitive discard compute shader.</dd>
|
||||
<dt><code>pd</code></dt>
|
||||
<dd>Enable the primitive discard compute shader for large draw calls.</dd>
|
||||
<dt><code>nopd</code></dt>
|
||||
<dd>Disable the primitive discard compute shader.</dd>
|
||||
<dt><code>switch_on_eop</code></dt>
|
||||
<dd>Program WD/IA to switch on end-of-packet.</dd>
|
||||
<dt><code>nooutoforder</code></dt>
|
||||
<dd>Disable out-of-order rasterization</dd>
|
||||
<dt><code>dpbb</code></dt>
|
||||
<dd>Enable DPBB.</dd>
|
||||
<dt><code>dfsm</code></dt>
|
||||
<dd>Enable DFSM.</dd>
|
||||
</dl>
|
||||
|
||||
<p>
|
||||
Other Gallium drivers have their own environment variables. These may change
|
||||
frequently so the source code should be consulted for details.
|
||||
|
@@ -118,19 +118,19 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
- 'precise' qualifier DONE (softpipe)
|
||||
- Dynamically uniform sampler array indices DONE (softpipe)
|
||||
- Dynamically uniform UBO array indices DONE (freedreno, softpipe)
|
||||
- Implicit signed -> unsigned conversions DONE (softpipe, swr)
|
||||
- Fused multiply-add DONE (softpipe, swr)
|
||||
- Packing/bitfield/conversion functions DONE (freedreno, softpipe, swr)
|
||||
- Enhanced textureGather DONE (freedreno, softpipe, swr)
|
||||
- Geometry shader instancing DONE (llvmpipe, softpipe, swr)
|
||||
- Geometry shader multiple streams DONE (softpipe, swr)
|
||||
- Implicit signed -> unsigned conversions DONE (softpipe)
|
||||
- Fused multiply-add DONE (softpipe)
|
||||
- Packing/bitfield/conversion functions DONE (freedreno, softpipe)
|
||||
- Enhanced textureGather DONE (freedreno, softpipe)
|
||||
- Geometry shader instancing DONE (llvmpipe, softpipe)
|
||||
- Geometry shader multiple streams DONE (softpipe)
|
||||
- Enhanced per-sample shading DONE ()
|
||||
- Interpolation functions DONE (softpipe)
|
||||
- New overload resolution rules DONE (softpipe)
|
||||
GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50)
|
||||
GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_tessellation_shader DONE (i965/gen7+, swr)
|
||||
GL_ARB_tessellation_shader DONE (i965/gen7+)
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
@@ -151,13 +151,13 @@ GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
|
||||
GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
|
||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965)
|
||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965, softpipe)
|
||||
GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
@@ -170,18 +170,18 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe)
|
||||
GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe, swr)
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, llvmpipe, softpipe)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, softpipe)
|
||||
GL_ARB_internalformat_query2 DONE (all drivers)
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (freedreno, i965, llvmpipe, softpipe, swr)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_robust_buffer_access_behavior DONE (i965)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, llvmpipe, swr)
|
||||
@@ -204,7 +204,7 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
|
||||
- specified transform/feedback layout DONE
|
||||
- input/output block locations DONE
|
||||
GL_ARB_multi_bind DONE (all drivers)
|
||||
GL_ARB_query_buffer_object DONE (i965/hsw+, llvmpipe, virgl)
|
||||
GL_ARB_query_buffer_object DONE (i965/hsw+, virgl)
|
||||
GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
@@ -215,7 +215,7 @@ GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi, r600
|
||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, llvmpipe, softpipe, virgl)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, softpipe, virgl)
|
||||
GL_ARB_direct_state_access DONE (all drivers)
|
||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, virgl)
|
||||
@@ -224,18 +224,18 @@ GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi, r600
|
||||
GL_KHR_robustness DONE (freedreno, i965)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
GL 4.6, GLSL 4.60 -- all DONE: radeonsi
|
||||
GL 4.6, GLSL 4.60
|
||||
|
||||
GL_ARB_gl_spirv DONE (i965/gen7+)
|
||||
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, llvmpipe, virgl)
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, llvmpipe, swr, virgl)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, llvmpipe, softpipe, virgl)
|
||||
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+)
|
||||
GL_ARB_texture_filter_anisotropic DONE (freedreno, i965, nv50, nvc0, r600, softpipe (*), llvmpipe (*))
|
||||
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, llvmpipe, softpipe, virgl)
|
||||
GL_ARB_gl_spirv in progress (Nicolai Hähnle, Ian Romanick)
|
||||
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, radeonsi, virgl)
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_spirv_extensions in progress (Nicolai Hähnle, Ian Romanick)
|
||||
GL_ARB_texture_filter_anisotropic DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, softpipe (*), llvmpipe (*))
|
||||
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, nvc0, radeonsi, llvmpipe, softpipe, virgl)
|
||||
GL_KHR_no_error DONE (all drivers)
|
||||
|
||||
(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
|
||||
@@ -244,14 +244,14 @@ 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
|
||||
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
@@ -311,7 +311,6 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
|
||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
|
||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi)
|
||||
GL_ARB_shading_language_include DONE
|
||||
GL_ARB_sparse_buffer DONE (radeonsi/CIK+)
|
||||
GL_ARB_sparse_texture not started
|
||||
GL_ARB_sparse_texture2 not started
|
||||
@@ -348,54 +347,54 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GLX_ARB_robustness_share_group_isolation not started
|
||||
|
||||
GL_EXT_direct_state_access subfeatures (in the spec order):
|
||||
GL 1.1: Client commands DONE
|
||||
GL 1.0-1.3: Matrix and transpose matrix commands DONE
|
||||
GL 1.1-1.2: Texture commands DONE
|
||||
GL 1.2: 3D texture commands DONE
|
||||
GL 1.2.1: Multitexture commands DONE
|
||||
GL 1.2.1-3.0: Indexed texture commands DONE
|
||||
GL 1.2.1-3.0: Indexed generic queries DONE
|
||||
GL 1.2.1: EnableIndexed.. Get*Indexed DONE
|
||||
GL_ARB_vertex_program DONE
|
||||
GL 1.3: Compressed texture and multitexture commands DONE
|
||||
GL 1.5: Buffer commands DONE
|
||||
GL 2.0-2.1: Uniform and uniform matrix commands DONE
|
||||
GL_EXT_texture_buffer_object DONE
|
||||
GL_EXT_texture_integer DONE
|
||||
GL_EXT_gpu_shader4 DONE
|
||||
GL_EXT_gpu_program_parameters DONE
|
||||
GL 1.1: Client commands not started
|
||||
GL 1.0-1.3: Matrix and transpose matrix commands not started
|
||||
GL 1.1-1.2: Texture commands not started
|
||||
GL 1.2: 3D texture commands not started
|
||||
GL 1.2.1: Multitexture commands not started
|
||||
GL 1.2.1-3.0: Indexed texture commands not started
|
||||
GL 1.2.1-3.0: Indexed generic queries not started
|
||||
GL 1.2.1: EnableIndexed.. Get*Indexed not started
|
||||
GL_ARB_vertex_program not started
|
||||
GL 1.3: Compressed texture and multitexture commands not started
|
||||
GL 1.5: Buffer commands not started
|
||||
GL 2.0-2.1: Uniform and uniform matrix commands not started
|
||||
GL_EXT_texture_buffer_object not started
|
||||
GL_EXT_texture_integer not started
|
||||
GL_EXT_gpu_shader4 not started
|
||||
GL_EXT_gpu_program_parameters not started
|
||||
GL_NV_gpu_program4 n/a
|
||||
GL_NV_framebuffer_multisample_coverage n/a
|
||||
GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap DONE
|
||||
GL 3.0: CopyBuffer command DONE
|
||||
GL_EXT_geometry_shader4 commands (expose in GL 3.2) DONE
|
||||
GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap not started
|
||||
GL 3.0: CopyBuffer command not started
|
||||
GL_EXT_geometry_shader4 commands (expose in GL 3.2) not started
|
||||
GL_NV_explicit_multisample n/a
|
||||
GL 3.0: Vertex array/attrib/query/map commands DONE
|
||||
Matrix GL tokens DONE
|
||||
GL 3.0: Vertex array/attrib/query/map commands not started
|
||||
Matrix GL tokens not started
|
||||
|
||||
GL_EXT_direct_state_access additions from other extensions (complete list):
|
||||
GL_AMD_framebuffer_sample_positions n/a
|
||||
GL_AMD_gpu_shader_int64 n/a (not enabled in compat profile)
|
||||
GL_ARB_bindless_texture DONE
|
||||
GL_ARB_buffer_storage DONE
|
||||
GL_ARB_clear_buffer_object DONE
|
||||
GL_ARB_framebuffer_no_attachments DONE
|
||||
GL_ARB_gpu_shader_fp64 DONE
|
||||
GL_ARB_instanced_arrays DONE
|
||||
GL_ARB_internalformat_query2 DONE
|
||||
GL_AMD_gpu_shader_int64 not started
|
||||
GL_ARB_bindless_texture not started
|
||||
GL_ARB_buffer_storage not started
|
||||
GL_ARB_clear_buffer_object not started
|
||||
GL_ARB_framebuffer_no_attachments not started
|
||||
GL_ARB_gpu_shader_fp64 not started
|
||||
GL_ARB_instanced_arrays not started
|
||||
GL_ARB_internalformat_query2 not started
|
||||
GL_ARB_sparse_texture n/a
|
||||
GL_ARB_sparse_buffer DONE
|
||||
GL_ARB_texture_buffer_range DONE
|
||||
GL_ARB_texture_storage DONE
|
||||
GL_ARB_texture_storage_multisample DONE
|
||||
GL_ARB_vertex_attrib_64bit DONE
|
||||
GL_ARB_vertex_attrib_binding DONE
|
||||
GL_EXT_buffer_storage DONE
|
||||
GL_EXT_external_buffer n/a
|
||||
GL_ARB_sparse_buffer not started
|
||||
GL_ARB_texture_buffer_range not started
|
||||
GL_ARB_texture_storage not started
|
||||
GL_ARB_texture_storage_multisample not started
|
||||
GL_ARB_vertex_attrib_64bit not started
|
||||
GL_ARB_vertex_attrib_binding not started
|
||||
GL_EXT_buffer_storage not started
|
||||
GL_EXT_external_buffer not started
|
||||
GL_EXT_separate_shader_objects n/a
|
||||
GL_EXT_sparse_texture n/a
|
||||
GL_EXT_texture_storage n/a
|
||||
GL_EXT_vertex_attrib_64bit DONE
|
||||
GL_EXT_vertex_attrib_64bit not started
|
||||
GL_EXT_EGL_image_storage n/a
|
||||
GL_NV_bindless_texture n/a
|
||||
GL_NV_gpu_shader5 n/a
|
||||
@@ -409,6 +408,7 @@ we DO NOT WANT implementations of these extensions for Mesa.
|
||||
|
||||
GL_ARB_geometry_shader4 Superseded by GL 3.2 geometry shaders
|
||||
GL_ARB_matrix_palette Superseded by GL_ARB_vertex_program
|
||||
GL_ARB_shading_language_include Not interesting
|
||||
GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
|
||||
GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
|
||||
|
||||
@@ -416,7 +416,7 @@ Vulkan 1.0 -- all DONE: anv, radv
|
||||
|
||||
Vulkan 1.1 -- all DONE: anv, radv
|
||||
|
||||
VK_KHR_16bit_storage DONE (anv/gen8+, radv)
|
||||
VK_KHR_16bit_storage in progress (Alejandro)
|
||||
VK_KHR_bind_memory2 DONE (anv, radv)
|
||||
VK_KHR_dedicated_allocation DONE (anv, radv)
|
||||
VK_KHR_descriptor_update_template DONE (anv, radv)
|
||||
@@ -435,21 +435,18 @@ Vulkan 1.1 -- all DONE: anv, radv
|
||||
VK_KHR_maintenance3 DONE (anv, radv)
|
||||
VK_KHR_multiview DONE (anv, radv)
|
||||
VK_KHR_relaxed_block_layout DONE (anv, radv)
|
||||
VK_KHR_sampler_ycbcr_conversion DONE (anv, radv)
|
||||
VK_KHR_sampler_ycbcr_conversion DONE (anv)
|
||||
VK_KHR_shader_draw_parameters DONE (anv, radv)
|
||||
VK_KHR_storage_buffer_storage_class DONE (anv, radv)
|
||||
VK_KHR_variable_pointers DONE (anv, radv)
|
||||
|
||||
Khronos extensions that are not part of any Vulkan version:
|
||||
|
||||
VK_KHR_8bit_storage DONE (anv/gen8+, radv)
|
||||
VK_KHR_8bit_storage DONE (anv, radv)
|
||||
VK_KHR_android_surface not started
|
||||
VK_KHR_create_renderpass2 DONE (anv, radv)
|
||||
VK_KHR_depth_stencil_resolve DONE (anv, radv)
|
||||
VK_KHR_display DONE (anv, radv)
|
||||
VK_KHR_display_swapchain not started
|
||||
VK_KHR_draw_indirect_count DONE (anv, radv)
|
||||
VK_KHR_driver_properties DONE (anv, radv)
|
||||
VK_KHR_display_swapchain DONE (anv, radv)
|
||||
VK_KHR_draw_indirect_count DONE (radv)
|
||||
VK_KHR_external_fence_fd DONE (anv, radv)
|
||||
VK_KHR_external_fence_win32 not started
|
||||
VK_KHR_external_memory_fd DONE (anv, radv)
|
||||
@@ -459,23 +456,13 @@ Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_get_display_properties2 DONE (anv, radv)
|
||||
VK_KHR_get_surface_capabilities2 DONE (anv, radv)
|
||||
VK_KHR_image_format_list DONE (anv, radv)
|
||||
VK_KHR_imageless_framebuffer DONE (anv, radv)
|
||||
VK_KHR_incremental_present DONE (anv, radv)
|
||||
VK_KHR_mir_surface not started
|
||||
VK_KHR_pipeline_executable_properties DONE (anv, radv)
|
||||
VK_KHR_push_descriptor DONE (anv, radv)
|
||||
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, radv)
|
||||
VK_KHR_shader_atomic_int64 DONE (anv, radv)
|
||||
VK_KHR_shader_float16_int8 DONE (anv/gen8+, radv)
|
||||
VK_KHR_shader_float_controls DONE (anv/gen8+, radv)
|
||||
VK_KHR_shader_subgroup_extended_types DONE (radv)
|
||||
VK_KHR_shared_presentable_image not started
|
||||
VK_KHR_surface DONE (anv, radv)
|
||||
VK_KHR_surface_protected_capabilities DONE (anv, radv)
|
||||
VK_KHR_swapchain DONE (anv, radv)
|
||||
VK_KHR_swapchain_mutable_format DONE (anv, radv)
|
||||
VK_KHR_uniform_buffer_standard_layout DONE (anv, radv)
|
||||
VK_KHR_vulkan_memory_model not started
|
||||
VK_KHR_wayland_surface DONE (anv, radv)
|
||||
VK_KHR_win32_keyed_mutex not started
|
||||
VK_KHR_win32_surface not started
|
||||
|
@@ -16,43 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>January 28, 2020</h2><p><a href="relnotes/19.3.3.html">Mesa 19.3.3</a> is released. This is a bug fix release.</p><h2>January 9, 2020</h2><p><a href="relnotes/19.3.2.html">Mesa 19.3.2</a> is released. This is a bug fix release.</p><h2>December 18, 2019</h2><p><a href="relnotes/19.2.8.html">Mesa 19.2.8</a> is released. This is a bug fix release.</p><h2>December 18, 2019</h2><p><a href="relnotes/19.3.1.html">Mesa 19.3.1</a> is released. This is a bug fix release.</p><h2>December 12, 2019</h2><p><a href="relnotes/19.3.0.html">Mesa 19.3.0</a> is released. This is a new development release. See the release notes for mor information about this release.</p><h2>December 4, 2019</h2><p><a href="relnotes/19.2.7.html">Mesa 19.2.7</a> is released. This is a bug fix release.</p><h2>November 21, 2019</h2><p><a href="relnotes/19.2.6.html">Mesa 19.2.6</a> is released. This is a bug fix release.</p><h2>November 20, 2019</h2><p><a href="relnotes/19.2.5.html">Mesa 19.2.5</a> is released. This is a bug fix release.</p><h2>November 13, 2019</h2><p><a href="relnotes/19.2.4.html">Mesa 19.2.4</a> is released. This is an emergency bugfix release, all users of 19.2.3 are recomended to upgrade immediately.</p>
|
||||
<h2>November 6, 2019</h2><p><a href="relnotes/19.2.3.html">Mesa 19.2.3</a> is released. This is a bug fix release.</p><h2>October 24, 2019</h2><p><a href="relnotes/19.2.2.html">Mesa 19.2.2</a> is released. This is a bug fix release.</p><h2>October 21, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.8.html">Mesa 19.1.8</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
NOTE: It is anticipated that 19.1.8 will be the final release in the
|
||||
19.1 series. Users of 19.1 are encouraged to migrate to the 19.2
|
||||
series in order to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>October 9, 2019</h2><p><a href="relnotes/19.2.1.html">Mesa 19.2.1</a> is released. This is a bug fix release.</p><h2>September 25, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.2.0.html">Mesa 19.2.0</a> is released.
|
||||
This is a new development release. See the release notes for more
|
||||
information about this release
|
||||
</p>
|
||||
|
||||
<h2>September 17, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.7.html">Mesa 19.1.7</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 3, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.6.html">Mesa 19.1.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 23, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.5.html">Mesa 19.1.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 7, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.4.html">Mesa 19.1.4</a> is released.
|
||||
@@ -1640,7 +1603,7 @@ shading language and built-in functions.
|
||||
|
||||
<h2>April 4, 2007</h2>
|
||||
<p>
|
||||
Thomas Hellström of Tungsten Graphics has written a whitepaper
|
||||
Thomas Hellström of Tungsten Graphics has written a whitepaper
|
||||
describing the new DRI memory management system.
|
||||
</p>
|
||||
|
||||
@@ -2038,7 +2001,7 @@ d2b5ba32b53e0ad0576c637a4cc1fb41 MesaDemos-5.1.zip
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>November 12, 2003</h2>
|
||||
<H2>November 12, 2003</H2>
|
||||
|
||||
<p>
|
||||
New Mesa 5.0.2 tarballs have been uploaded to SourceForge which fix a
|
||||
@@ -2651,7 +2614,7 @@ https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</a>.</p>
|
||||
quake scene, you may want to try this out, as it contains some optimizations
|
||||
specifically in the Q3A rendering path.
|
||||
|
||||
</p><h2>May 13, 1999</h2>
|
||||
<h2>May 13, 1999</h2>
|
||||
<p>For those interested in the integration of Mesa into XFree86 4.0, Precision Insight
|
||||
has posted their lowlevel design documents at
|
||||
<a href="http://www.precisioninsight.com">www.precisioninsight.com</a>.</p>
|
||||
@@ -2692,7 +2655,7 @@ http://www.quake3arena.com/news/glopt.html
|
||||
<h2>March 18, 1999</h2>
|
||||
<p>The new webpages are now online. Enjoy, and let me know if you find any errors.
|
||||
|
||||
</p><h2>February 16, 1999</h2>
|
||||
<h2>February 16, 1999</h2>
|
||||
<p><a href="https://www.sgi.com/">SGI</a> releases its
|
||||
<a href="http://web.archive.org/web/20040805154836/http://www.sgi.com/software/opensource/glx/download.html">GLX source code</a>.
|
||||
</p>
|
||||
@@ -2702,4 +2665,4 @@ http://www.quake3arena.com/news/glopt.html
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@@ -23,6 +23,7 @@
|
||||
<li><a href="#prereq-dri">For DRI and hardware acceleration</a>
|
||||
</ul>
|
||||
<li><a href="#meson">Building with meson</a>
|
||||
<li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
|
||||
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
|
||||
<li><a href="#android">Building with AOSP (Android)</a>
|
||||
<li><a href="#libs">Library Information</a>
|
||||
@@ -37,15 +38,17 @@
|
||||
<h4>Build system</h4>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms and is supported on windows.
|
||||
<li><a href="http://www.scons.org/">SCons</a> is an alternative for building on
|
||||
Windows and Linux.
|
||||
<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms.
|
||||
<li>Autoconf was removed in 19.1.0, use meson instead
|
||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
||||
Windows and optional for Linux (it's an alternative to meson.)
|
||||
</li>
|
||||
<li>Android Build system when building as native Android component. Meson
|
||||
<li>Android Build system when building as native Android component. Autoconf
|
||||
is used when when building ARC.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Compiler</h4>
|
||||
<p>
|
||||
The following compilers are known to work, if you know of others or you're
|
||||
@@ -60,6 +63,12 @@ willing to maintain support for other compiler get in touch.
|
||||
|
||||
|
||||
<h4>Third party/extra tools.</h4>
|
||||
<p>
|
||||
<strong>Note</strong>: These should not be required, when building from a release tarball. If
|
||||
you think you've spotted a bug let developers know by filing a
|
||||
<a href="bugs.html">bug report</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.python.org/">Python</a> - Python is required.
|
||||
@@ -74,9 +83,7 @@ Python Mako module is required. Version 0.8.0 or later should work.
|
||||
On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
|
||||
(or later) should work.
|
||||
On Windows with MinGW, install flex and bison with:
|
||||
</p>
|
||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
||||
<p>
|
||||
For MSVC on Windows, install
|
||||
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
||||
</p>
|
||||
@@ -107,12 +114,9 @@ the packaging tool used by your distro.
|
||||
|
||||
<h2 id="meson">2. Building with meson</h2>
|
||||
|
||||
<p><strong>Meson >= 0.46.0 is required</strong></p>
|
||||
|
||||
|
||||
<p>
|
||||
Meson is the latest build system in mesa, it is currently able to build for
|
||||
*nix systems like Linux and BSD, macOS, Haiku, and Windows.
|
||||
*nix systems like Linux and BSD, and will be able to build for windows as well.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -123,22 +127,20 @@ The general approach is:
|
||||
ninja -C builddir/
|
||||
sudo ninja -C builddir/ install
|
||||
</pre>
|
||||
|
||||
<p>On windows you can also use the visual studio backend</p>
|
||||
<pre>
|
||||
meson builddir --backend=vs
|
||||
cd builddir
|
||||
msbuild mesa.sln /m
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Please read the <a href="meson.html">detailed meson instructions</a>
|
||||
for more information
|
||||
</p>
|
||||
|
||||
<h2 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h2>
|
||||
|
||||
<p>
|
||||
Autoconf support was removed in Mesa 19.1.0. Please use meson instead.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="scons">3. Building with SCons (Windows/Linux)</h2>
|
||||
|
||||
<h2 id="scons">4. Building with SCons (Windows/Linux)</h2>
|
||||
|
||||
<p>
|
||||
To build Mesa with SCons on Linux or Windows do
|
||||
@@ -174,7 +176,7 @@ Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
||||
|
||||
|
||||
|
||||
<h2 id="android">4. Building with AOSP (Android)</h2>
|
||||
<h2 id="android">5. Building with AOSP (Android)</h2>
|
||||
|
||||
<p>
|
||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
||||
@@ -193,7 +195,7 @@ Android-x86 and/or other resources.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="libs">5. Library Information</h2>
|
||||
<h2 id="libs">6. Library Information</h2>
|
||||
|
||||
<p>
|
||||
When compilation has finished, look in the top-level <code>lib/</code>
|
||||
@@ -230,7 +232,7 @@ versions of libGL and device drivers.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="pkg-config">6. Building OpenGL programs with pkg-config</h2>
|
||||
<h2 id="pkg-config">7. Building OpenGL programs with pkg-config</h2>
|
||||
|
||||
<p>
|
||||
Running <code>ninja install</code> will install package configuration files
|
||||
|
@@ -357,46 +357,46 @@ features.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Texture mapping:
|
||||
<ul>
|
||||
<li>glAreTexturesResident
|
||||
<li>glBindTexture
|
||||
<li>glCopyTexImage1D
|
||||
<li>glCopyTexImage2D
|
||||
<li>glCopyTexSubImage1D
|
||||
<li>glCopyTexSubImage2D
|
||||
<li>glDeleteTextures
|
||||
<li>glGenTextures
|
||||
<li>glIsTexture
|
||||
<li>glPrioritizeTextures
|
||||
<li>glTexSubImage1D
|
||||
<li>glTexSubImage2D
|
||||
</ul>
|
||||
<ul>
|
||||
<li>glAreTexturesResident
|
||||
<li>glBindTexture
|
||||
<li>glCopyTexImage1D
|
||||
<li>glCopyTexImage2D
|
||||
<li>glCopyTexSubImage1D
|
||||
<li>glCopyTexSubImage2D
|
||||
<li>glDeleteTextures
|
||||
<li>glGenTextures
|
||||
<li>glIsTexture
|
||||
<li>glPrioritizeTextures
|
||||
<li>glTexSubImage1D
|
||||
<li>glTexSubImage2D
|
||||
</ul>
|
||||
<li>Vertex Arrays:
|
||||
<ul>
|
||||
<li>glArrayElement
|
||||
<li>glColorPointer
|
||||
<li>glDrawElements
|
||||
<li>glEdgeFlagPointer
|
||||
<li>glIndexPointer
|
||||
<li>glInterleavedArrays
|
||||
<li>glNormalPointer
|
||||
<li>glTexCoordPointer
|
||||
<li>glVertexPointer
|
||||
</ul>
|
||||
<ul>
|
||||
<li>glArrayElement
|
||||
<li>glColorPointer
|
||||
<li>glDrawElements
|
||||
<li>glEdgeFlagPointer
|
||||
<li>glIndexPointer
|
||||
<li>glInterleavedArrays
|
||||
<li>glNormalPointer
|
||||
<li>glTexCoordPointer
|
||||
<li>glVertexPointer
|
||||
</ul>
|
||||
<li>Client state management:
|
||||
<ul>
|
||||
<li>glDisableClientState
|
||||
<li>glEnableClientState
|
||||
<li>glPopClientAttrib
|
||||
<li>glPushClientAttrib
|
||||
</ul>
|
||||
<ul>
|
||||
<li>glDisableClientState
|
||||
<li>glEnableClientState
|
||||
<li>glPopClientAttrib
|
||||
<li>glPushClientAttrib
|
||||
</ul>
|
||||
<li>Misc:
|
||||
<ul>
|
||||
<li>glGetPointer
|
||||
<li>glIndexub
|
||||
<li>glIndexubv
|
||||
<li>glPolygonOffset
|
||||
</ul>
|
||||
<ul>
|
||||
<li>glGetPointer
|
||||
<li>glIndexub
|
||||
<li>glIndexubv
|
||||
<li>glPolygonOffset
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@@ -20,7 +20,7 @@
|
||||
|
||||
<p>
|
||||
Mesa is a 3-D graphics library with an API which is very similar to
|
||||
that of <a href="https://www.opengl.org/">OpenGL</a><sup>[<a href="#trademark">1</a>]</sup>.
|
||||
that of <a href="https://www.opengl.org/">OpenGL</a>.*
|
||||
To the extent that Mesa utilizes the OpenGL command syntax or state
|
||||
machine, it is being used with authorization from <a
|
||||
href="https://www.sgi.com/">Silicon Graphics,
|
||||
@@ -38,8 +38,8 @@ library</em>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a id="trademark">[1]</a>: OpenGL is a trademark of <a
|
||||
href="https://www.sgi.com/">Silicon Graphics Incorporated</a>.
|
||||
* OpenGL is a trademark of <a href="https://www.sgi.com/"
|
||||
>Silicon Graphics Incorporated</a>.
|
||||
</p>
|
||||
|
||||
|
||||
|
@@ -56,7 +56,7 @@ It's the fastest software rasterizer for Mesa.
|
||||
For Linux, on a recent Debian based distribution do:
|
||||
</p>
|
||||
<pre>
|
||||
aptitude install llvm-dev
|
||||
aptitude install llvm-dev
|
||||
</pre>
|
||||
<p>
|
||||
If you want development snapshot builds of LLVM for Debian and derived
|
||||
@@ -68,7 +68,7 @@ aptitude install llvm-dev
|
||||
For a RPM-based distribution do:
|
||||
</p>
|
||||
<pre>
|
||||
yum install llvm-devel
|
||||
yum install llvm-devel
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -120,15 +120,15 @@ yum install llvm-devel
|
||||
To build everything on Linux invoke scons as:
|
||||
|
||||
<pre>
|
||||
scons build=debug libgl-xlib
|
||||
scons build=debug libgl-xlib
|
||||
</pre>
|
||||
|
||||
Alternatively, you can build it with meson with:
|
||||
<pre>
|
||||
mkdir build
|
||||
cd build
|
||||
meson -D glx=gallium-xlib -D gallium-drivers=swrast
|
||||
ninja
|
||||
mkdir build
|
||||
cd build
|
||||
meson -D glx=gallium-xlib -D gallium-drivers=swrast
|
||||
ninja
|
||||
</pre>
|
||||
|
||||
but the rest of these instructions assume that scons is used.
|
||||
@@ -136,7 +136,7 @@ but the rest of these instructions assume that scons is used.
|
||||
For Windows the procedure is similar except the target:
|
||||
|
||||
<pre>
|
||||
scons platform=windows build=debug libgl-gdi
|
||||
scons platform=windows build=debug libgl-gdi
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -148,11 +148,11 @@ scons platform=windows build=debug libgl-gdi
|
||||
<code>libGL.so</code> into</p>
|
||||
|
||||
<pre>
|
||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
||||
</pre>
|
||||
or
|
||||
<pre>
|
||||
lib/gallium/libGL.so
|
||||
lib/gallium/libGL.so
|
||||
</pre>
|
||||
|
||||
<p>To use it set the <code>LD_LIBRARY_PATH</code> environment variable
|
||||
@@ -206,7 +206,7 @@ any OpenGL drivers):
|
||||
To profile llvmpipe you should build as
|
||||
</p>
|
||||
<pre>
|
||||
scons build=profile <same-as-before>
|
||||
scons build=profile <same-as-before>
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -221,8 +221,8 @@ On Linux, it is possible to have symbol resolution of JIT code with <a href="htt
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
perf record -g /my/application
|
||||
perf report
|
||||
perf record -g /my/application
|
||||
perf report
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -255,7 +255,7 @@ Some of these tests can output results and benchmarks to a tab-separated file
|
||||
for later analysis, e.g.:
|
||||
</p>
|
||||
<pre>
|
||||
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
|
||||
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -34,20 +34,6 @@ iframe {
|
||||
float: left;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0.5em;
|
||||
padding: 0.5em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
figure pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
figure figcaption {
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
|
||||
.content {
|
||||
position: absolute;
|
||||
left: 20em;
|
||||
|
199
docs/meson.html
199
docs/meson.html
@@ -26,18 +26,14 @@
|
||||
<h2 id="intro">1. Introduction</h2>
|
||||
|
||||
<p>For general information about Meson see the
|
||||
<a href="https://mesonbuild.com/">Meson website</a>.</p>
|
||||
<a href="http://mesonbuild.com/">Meson website</a>.</p>
|
||||
|
||||
<p><strong>Mesa's Meson build system is generally considered stable and ready
|
||||
for production.</strong></p>
|
||||
|
||||
<p><strong>Mesa requires Meson >= 0.46.0 to build.</strong>
|
||||
|
||||
<p>The Meson build of Mesa is tested on Linux, macOS, Windows, Cygwin, Haiku, FreeBSD,
|
||||
<p>The Meson build of Mesa is tested on Linux, macOS, Cygwin and Haiku, FreeBSD,
|
||||
DragonflyBSD, NetBSD, and should work on OpenBSD.</p>
|
||||
|
||||
<h4>Unix-like OSes</h4>
|
||||
|
||||
<p>If Meson is not already installed on your system, you can typically
|
||||
install it with your package installer. For example:</p>
|
||||
<pre>
|
||||
@@ -47,7 +43,9 @@ or
|
||||
<pre>
|
||||
sudo dnf install meson # Fedora
|
||||
</pre>
|
||||
<p>
|
||||
|
||||
<p><strong>Mesa requires Meson >= 0.46.0 to build.</strong>
|
||||
|
||||
Some older versions of meson do not check that they are too old and will error
|
||||
out in odd ways.
|
||||
</p>
|
||||
@@ -57,37 +55,14 @@ If it's not already installed, use apt-get or dnf to install
|
||||
the <em>ninja-build</em> package.
|
||||
</p>
|
||||
|
||||
<h4>Windows</h4>
|
||||
|
||||
<p>
|
||||
You will need to install python3 and meson as a module using pip. This is
|
||||
because we use python for generating code, and rely on external modules
|
||||
(mako). You also need pkg-config (a hard dependency of meson), flex, and bison.
|
||||
|
||||
The easiest way to install everything you need is with <a
|
||||
href="https://chocolatey.org/">chocolatey</a>.
|
||||
</p>
|
||||
<pre>
|
||||
choco install python3 winflexbison pkgconfiglite
|
||||
</pre>
|
||||
<p>You can even use chocolatey to install mingw and ninja (ninja can be used with MSVC as well)</p>
|
||||
<pre>
|
||||
choco install ninja mingw
|
||||
</pre>
|
||||
<p>Then install meson using pip</p>
|
||||
<pre>
|
||||
py -3 -m pip install meson mako
|
||||
</pre>
|
||||
|
||||
You may need to add the python3 scripts directory to your path for meson.
|
||||
|
||||
<h2 id="basic">2. Basic Usage</h2>
|
||||
|
||||
<p>
|
||||
The meson program is used to configure the source directory and generates
|
||||
either a ninja build file or Visual Studio® build files. The latter must
|
||||
be enabled via the <code>--backend</code> switch, as ninja is the default
|
||||
backend on all operating systems.
|
||||
backend on all
|
||||
operating systems.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -95,7 +70,7 @@ Meson only supports out-of-tree builds, and must be passed a
|
||||
directory to put built and generated sources into. We'll call that directory
|
||||
"build" here.
|
||||
It's recommended to create a
|
||||
<a href="https://mesonbuild.com/Using-multiple-build-directories.html">
|
||||
<a href="http://mesonbuild.com/Using-multiple-build-directories.html">
|
||||
separate build directory</a> for each configuration you might want to use.
|
||||
</p>
|
||||
|
||||
@@ -144,7 +119,7 @@ meson configure build/ -Dprefix=/tmp/install -Dglx=true
|
||||
|
||||
<p>
|
||||
Note that options taking lists (such as <code>platforms</code>) are
|
||||
<a href="https://mesonbuild.com/Build-options.html#using-build-options">a bit
|
||||
<a href="http://mesonbuild.com/Build-options.html#using-build-options">a bit
|
||||
more complicated</a>, but the simplest form compatible with Mesa options
|
||||
is to use a comma to separate values (<code>-D platforms=drm,wayland</code>)
|
||||
and brackets to represent an empty list (<code>-D platforms=[]</code>).
|
||||
@@ -178,32 +153,12 @@ Meson does not do this. Instead, you will need do this:
|
||||
ninja -C build/ xmlpool-pot xmlpool-update-po xmlpool-gmo
|
||||
</pre>
|
||||
|
||||
<h4>Windows specific instructions</h4>
|
||||
|
||||
<p>
|
||||
On windows you have a couple of choices for compilers. If you installed mingw
|
||||
with chocolatey and want to use ninja you should be able to open any shell
|
||||
and follow the instructions above. If you want to you MSVC, clang-cl, or ICL
|
||||
(the Intel Compiler), read on.
|
||||
</p>
|
||||
<p>
|
||||
Both ICL and MSVC come with shell environments, the easiest way to use meson
|
||||
with these it to open a shell. For clang-cl you will need to open an MSVC
|
||||
shell, and then override the compilers, either using a <a
|
||||
href="https://mesonbuild.com/Native-environments.html">native file</a>, or
|
||||
with the CC and CXX environment variables.
|
||||
</p>
|
||||
<p>
|
||||
All of these compilers are tested and work with ninja, but if you want visual
|
||||
studio integration or you just like msbuild, passing
|
||||
<code>--backend=vs</code> to meson will generate a visual studio solution. If
|
||||
you want to use ICL or clang-cl with the vsbackend you will need meson 0.52.0
|
||||
or greater. Older versions always use the microsoft compiler.
|
||||
</p>
|
||||
|
||||
<h2 id="advanced">3. Advanced Usage</h2>
|
||||
|
||||
<h3>Installation Location</h3>
|
||||
<dl>
|
||||
|
||||
<dt>Installation Location</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Meson default to installing libGL.so in your system's main lib/ directory
|
||||
and DRI drivers to a dri/ subdirectory.
|
||||
@@ -225,8 +180,10 @@ to run/test the driver.
|
||||
<p>
|
||||
Meson also honors <code>DESTDIR</code> for installs.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<h3>Compiler Options</h3>
|
||||
<dt>Compiler Options</dt>
|
||||
<dd>
|
||||
<p>Meson supports the common CFLAGS, CXXFLAGS, etc. environment
|
||||
variables but their use is discouraged because of the many caveats
|
||||
in using them.
|
||||
@@ -242,9 +199,11 @@ for C++ sources:
|
||||
<pre>
|
||||
meson builddir/ -Dc_args=-fmax-errors=10 -Dcpp_args=-DMAGIC=123
|
||||
</pre>
|
||||
</dd>
|
||||
|
||||
|
||||
<h3>Compiler Specification</h3>
|
||||
<dt>Compiler Specification</dt>
|
||||
<dd>
|
||||
<p>
|
||||
Meson supports the standard CC and CXX environment variables for
|
||||
changing the default compiler. Note that Meson does not allow
|
||||
@@ -265,28 +224,16 @@ ninja -C build-clang
|
||||
<p>
|
||||
The default compilers depends on your operating system. Meson supports most of
|
||||
the popular compilers, a complete list is available
|
||||
<a href="https://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
|
||||
<a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
|
||||
</p>
|
||||
</dd>
|
||||
|
||||
<h3>LLVM</h3>
|
||||
<p>Meson includes upstream logic to wrap llvm-config using its standard
|
||||
<dt>LLVM</dt>
|
||||
<dd><p>Meson includes upstream logic to wrap llvm-config using its standard
|
||||
dependency interface.
|
||||
</p>
|
||||
<p>
|
||||
As of meson 0.51.0 meson can use cmake to find llvm (the cmake finder
|
||||
was added in meson 0.49.0, but LLVM cannot be found until 0.51) Due to the
|
||||
way LLVM implements its cmake finder it will only find static libraries, it
|
||||
will never find libllvm.so.
|
||||
</p></dd>
|
||||
|
||||
There is also a <code>-Dcmake_module_path</code> option in this meson version,
|
||||
which points to the root of an alternative installation (the prefix). For
|
||||
example:
|
||||
</p>
|
||||
<pre>
|
||||
meson builddir -Dcmake_module_path=/home/user/mycmake/prefix
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
<dd><p>
|
||||
As of meson 0.49.0 meson also has the concept of a
|
||||
<a href="https://mesonbuild.com/Native-environments.html">"native file"</a>,
|
||||
these files provide information about the native build environment (as opposed
|
||||
@@ -296,17 +243,18 @@ find llvm-config:
|
||||
|
||||
custom-llvm.ini
|
||||
<pre>
|
||||
[binaries]
|
||||
llvm-config = '/usr/local/bin/llvm/llvm-config'
|
||||
[binaries]
|
||||
llvm-config = '/usr/local/bin/llvm/llvm-config'
|
||||
</pre>
|
||||
|
||||
Then configure meson:
|
||||
|
||||
<pre>
|
||||
meson builddir/ --native-file custom-llvm.ini
|
||||
meson builddir/ --native-file custom-llvm.ini
|
||||
</pre>
|
||||
</dd>
|
||||
|
||||
<p>
|
||||
<dd><p>
|
||||
Meson < 0.49 doesn't support native files, so to specify a custom
|
||||
<code>llvm-config</code> you need to modify your <code>$PATH</code> (or
|
||||
<code>%PATH%</code> on windows), which will be searched for
|
||||
@@ -316,8 +264,9 @@ and <code>llvm-config-<i>$version</i></code>:
|
||||
<pre>
|
||||
PATH=/path/to/folder/with/llvm-config:$PATH meson build
|
||||
</pre>
|
||||
</dd>
|
||||
|
||||
<p>
|
||||
<dd><p>
|
||||
For selecting llvm-config for cross compiling a
|
||||
<a href="https://mesonbuild.com/Cross-compilation.html#defining-the-environment">"cross file"</a>
|
||||
should be used. It uses the same format as the native file above:
|
||||
@@ -325,96 +274,30 @@ should be used. It uses the same format as the native file above:
|
||||
|
||||
<p>cross-llvm.ini</p>
|
||||
<pre>
|
||||
[binaries]
|
||||
...
|
||||
llvm-config = '/usr/lib/llvm-config-32'
|
||||
cmake = '/usr/bin/cmake-for-my-arch'
|
||||
[binaries]
|
||||
...
|
||||
llvm-config = '/usr/lib/llvm-config-32'
|
||||
</pre>
|
||||
|
||||
<p>Obviously, only cmake or llvm-config is required.</p>
|
||||
|
||||
<p>Then configure meson:</p>
|
||||
<pre>
|
||||
meson builddir/ --cross-file cross-llvm.ini
|
||||
meson builddir/ --cross-file cross-llvm.ini
|
||||
</pre>
|
||||
|
||||
See the <a href="#cross-compilation">Cross Compilation</a> section for more information.
|
||||
</dd>
|
||||
|
||||
<p>On windows (and in other cases), using llvm-config or cmake may be
|
||||
either undesirable or impossible. Meson's solution for this is a
|
||||
<a href="https://mesonbuild.com/Wrap-dependency-system-manual.html">wrap</a>, in
|
||||
this case a "binary wrap". Follow the steps below:</p>
|
||||
<ul>
|
||||
<li>Install the binaries and headers into the <code>$mesa_src/subprojects/llvm</code></li>
|
||||
<li>Add a meson build.build file to that directory (more on that later)</li>
|
||||
</ul>
|
||||
|
||||
<p>The wrap file must define the following:</p>
|
||||
<ul>
|
||||
<li><code>dep_llvm</code>: a <code>declare_dependency()</code> object with include_directories, dependencies, and version set)</li>
|
||||
</ul>
|
||||
|
||||
<p>It may also define:</p>
|
||||
<ul>
|
||||
<li><code>irbuilder_h</code>: a <code>files()</code> object pointing to llvm/IR/IRBuilder.h (this is requred for SWR)</li>
|
||||
<li><code>has_rtti</code>: a <code>bool</code> that declares whether LLVM was built with RTTI. Defaults to true</li>
|
||||
</ul>
|
||||
|
||||
<p>such a meson.build file might look like:</p>
|
||||
<pre>
|
||||
project('llvm', ['cpp'])
|
||||
|
||||
cpp = meson.get_compiler('cpp')
|
||||
|
||||
_deps = []
|
||||
_search = join_paths(meson.current_source_dir(), 'lib')
|
||||
foreach d : ['libLLVMCodeGen', 'libLLVMScalarOpts', 'libLLVMAnalysis',
|
||||
'libLLVMTransformUtils', 'libLLVMCore', 'libLLVMX86CodeGen',
|
||||
'libLLVMSelectionDAG', 'libLLVMipo', 'libLLVMAsmPrinter',
|
||||
'libLLVMInstCombine', 'libLLVMInstrumentation', 'libLLVMMC',
|
||||
'libLLVMGlobalISel', 'libLLVMObjectYAML', 'libLLVMDebugInfoPDB',
|
||||
'libLLVMVectorize', 'libLLVMPasses', 'libLLVMSupport',
|
||||
'libLLVMLTO', 'libLLVMObject', 'libLLVMDebugInfoCodeView',
|
||||
'libLLVMDebugInfoDWARF', 'libLLVMOrcJIT', 'libLLVMProfileData',
|
||||
'libLLVMObjCARCOpts', 'libLLVMBitReader', 'libLLVMCoroutines',
|
||||
'libLLVMBitWriter', 'libLLVMRuntimeDyld', 'libLLVMMIRParser',
|
||||
'libLLVMX86Desc', 'libLLVMAsmParser', 'libLLVMTableGen',
|
||||
'libLLVMFuzzMutate', 'libLLVMLinker', 'libLLVMMCParser',
|
||||
'libLLVMExecutionEngine', 'libLLVMCoverage', 'libLLVMInterpreter',
|
||||
'libLLVMTarget', 'libLLVMX86AsmParser', 'libLLVMSymbolize',
|
||||
'libLLVMDebugInfoMSF', 'libLLVMMCJIT', 'libLLVMXRay',
|
||||
'libLLVMX86AsmPrinter', 'libLLVMX86Disassembler',
|
||||
'libLLVMMCDisassembler', 'libLLVMOption', 'libLLVMIRReader',
|
||||
'libLLVMLibDriver', 'libLLVMDlltoolDriver', 'libLLVMDemangle',
|
||||
'libLLVMBinaryFormat', 'libLLVMLineEditor',
|
||||
'libLLVMWindowsManifest', 'libLLVMX86Info', 'libLLVMX86Utils']
|
||||
_deps += cpp.find_library(d, dirs : _search)
|
||||
endforeach
|
||||
|
||||
dep_llvm = declare_dependency(
|
||||
include_directories : include_directories('include'),
|
||||
dependencies : _deps,
|
||||
version : '6.0.0',
|
||||
)
|
||||
|
||||
has_rtti = false
|
||||
irbuilder_h = files('include/llvm/IR/IRBuilder.h')
|
||||
</pre>
|
||||
|
||||
<p>It is very important that version is defined and is accurate, if it is not,
|
||||
workarounds for the wrong version of LLVM might be used resulting in build
|
||||
failures.</p>
|
||||
|
||||
<h3><code>PKG_CONFIG_PATH</code></h3>
|
||||
<p>The
|
||||
<dt><code>PKG_CONFIG_PATH</code></dt>
|
||||
<dd><p>The
|
||||
<code>pkg-config</code> utility is a hard requirement for configuring and
|
||||
building Mesa on Unix-like systems. It is used to search for external libraries
|
||||
on the system. This environment variable is used to control the search path for
|
||||
<code>pkg-config</code>. For instance, setting
|
||||
<code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for package
|
||||
metadata in <code>/usr/X11R6</code> before the standard directories.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Options</h3>
|
||||
<p>
|
||||
One of the oddities of meson is that some options are different when passed to
|
||||
the <code>meson</code> than to <code>meson configure</code>. These options are
|
||||
|
@@ -41,7 +41,8 @@ will be in constant rotation.
|
||||
<p>
|
||||
The way the release schedule works is explained
|
||||
<a href="releasing.html#schedule" target="_parent">here</a>.
|
||||
</p>
|
||||
</p
|
||||
>
|
||||
<p>
|
||||
Take a look <a href="submittingpatches.html#criteria" target="_parent">here</a>
|
||||
if you'd like to nominate a patch in the next stable release.
|
||||
@@ -59,48 +60,73 @@ if you'd like to nominate a patch in the next stable release.
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3">19.3</td>
|
||||
<td>2020-02-05</td>
|
||||
<td>19.3.4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td/>
|
||||
<td rowspan="3">19.1</td>
|
||||
<td>2019-08-20</td>
|
||||
<td>19.1.5</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2020-02-12</td>
|
||||
<td>19.3.5</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td/>
|
||||
<td>2019-09-03</td>
|
||||
<td>19.1.6</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2020-02-26</td>
|
||||
<td>19.3.6</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned 19.3 release</td>
|
||||
<td>2019-09-17</td>
|
||||
<td>19.1.7</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned 19.1.x release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">20.0</td>
|
||||
<td>2020-01-29</td>
|
||||
<td>20.0.0-rc1</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td/>
|
||||
<td rowspan="4">19.2</td>
|
||||
<td>2019-08-06</td>
|
||||
<td>19.2.0-rc1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2020-02-05</td>
|
||||
<td>20.0.0-rc2</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td/>
|
||||
<td>2019-08-13</td>
|
||||
<td>19.2.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2020-02-12</td>
|
||||
<td>20.0.0-rc3</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td/>
|
||||
<td>2019-08-20</td>
|
||||
<td>19.2.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2020-02-19</td>
|
||||
<td>20.0.0-rc4</td>
|
||||
<td>2019-08-27</td>
|
||||
<td>19.2.0-rc4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.3</td>
|
||||
<td>2019-10-15</td>
|
||||
<td>19.3.0-rc1</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Or 20.0.0 final</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-10-22</td>
|
||||
<td>19.3.0-rc2</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-10-29</td>
|
||||
<td>19.3.0-rc3</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-05</td>
|
||||
<td>19.3.0-rc4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@@ -26,7 +26,8 @@
|
||||
<li><a href="#prerelease">Pre-release announcement</a>
|
||||
<li><a href="#release">Making a new release</a>
|
||||
<li><a href="#announce">Announce the release</a>
|
||||
<li><a href="#gitlab">Update Gitlab Issues</a>
|
||||
<li><a href="#website">Update the mesa3d.org website</a>
|
||||
<li><a href="#bugzilla">Update Bugzilla</a>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -46,10 +47,10 @@ while the latter have a non-zero one.
|
||||
For example:
|
||||
</p>
|
||||
<pre>
|
||||
Mesa 10.1.0 - 10.1 branch, feature
|
||||
Mesa 10.1.4 - 10.1 branch, bugfix
|
||||
Mesa 12.0.0 - 12.0 branch, feature
|
||||
Mesa 12.0.2 - 12.0 branch, bugfix
|
||||
Mesa 10.1.0 - 10.1 branch, feature
|
||||
Mesa 10.1.4 - 10.1 branch, bugfix
|
||||
Mesa 12.0.0 - 12.0 branch, feature
|
||||
Mesa 12.0.2 - 12.0 branch, bugfix
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -183,27 +184,27 @@ This should be noted in the <a href="#prerelease">pre-announce</a> email.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git show b10859ec41d09c57663a258f43fe57c12332698e
|
||||
git show b10859ec41d09c57663a258f43fe57c12332698e
|
||||
|
||||
commit b10859ec41d09c57663a258f43fe57c12332698e
|
||||
Author: Jonas Pfeil <pfeiljonas@gmx.de>
|
||||
Date: Wed Mar 1 18:11:10 2017 +0100
|
||||
commit b10859ec41d09c57663a258f43fe57c12332698e
|
||||
Author: Jonas Pfeil <pfeiljonas@gmx.de>
|
||||
Date: Wed Mar 1 18:11:10 2017 +0100
|
||||
|
||||
ralloc: Make sure ralloc() allocations match malloc()'s alignment.
|
||||
ralloc: Make sure ralloc() allocations match malloc()'s alignment.
|
||||
|
||||
The header of ralloc needs to be aligned, because the compiler assumes
|
||||
...
|
||||
The header of ralloc needs to be aligned, because the compiler assumes
|
||||
...
|
||||
|
||||
(cherry picked from commit cd2b55e536dc806f9358f71db438dd9c246cdb14)
|
||||
(cherry picked from commit cd2b55e536dc806f9358f71db438dd9c246cdb14)
|
||||
|
||||
Squashed with commit:
|
||||
Squashed with commit:
|
||||
|
||||
ralloc: don't leave out the alignment factor
|
||||
ralloc: don't leave out the alignment factor
|
||||
|
||||
Experimentation shows that without alignment factor gcc and clang choose
|
||||
...
|
||||
Experimentation shows that without alignment factor gcc and clang choose
|
||||
...
|
||||
|
||||
(cherry picked from commit ff494fe999510ea40e3ed5827e7818550b6de126)
|
||||
(cherry picked from commit ff494fe999510ea40e3ed5827e7818550b6de126)
|
||||
</pre>
|
||||
|
||||
<h2>Regression/functionality testing</h2>
|
||||
@@ -236,8 +237,8 @@ A live branch, which contains the currently merge/rejected patches is available
|
||||
in the main repository under <code>staging/X.Y</code>. For example:
|
||||
</p>
|
||||
<pre>
|
||||
staging/18.1 - WIP branch for the 18.1 series
|
||||
staging/18.2 - WIP branch for the 18.2 series
|
||||
staging/18.1 - WIP branch for the 18.1 series
|
||||
staging/18.2 - WIP branch for the 18.2 series
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -271,15 +272,15 @@ Check if the version number is going to remain as, alternatively
|
||||
To setup the branchpoint:
|
||||
</p>
|
||||
<pre>
|
||||
git checkout master # make sure we're in master first
|
||||
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
|
||||
git checkout -b X.Y
|
||||
git checkout master
|
||||
$EDITOR VERSION # bump the version number
|
||||
git commit -as
|
||||
cp docs/relnotes/{X.Y,X.Y+1}.html # copy/create relnotes template
|
||||
git commit -as
|
||||
git push origin X.Y-branchpoint X.Y
|
||||
git checkout master # make sure we're in master first
|
||||
git tag -s X.Y-branchpoint -m "Mesa X.Y branchpoint"
|
||||
git checkout -b X.Y
|
||||
git checkout master
|
||||
$EDITOR VERSION # bump the version number
|
||||
git commit -as
|
||||
cp docs/relnotes/{X.Y,X.Y+1}.html # copy/create relnotes template
|
||||
git commit -as
|
||||
git push origin X.Y-branchpoint X.Y
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -482,50 +483,40 @@ So we do a quick 'touch test'
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
__glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
|
||||
__es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
|
||||
__es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"'
|
||||
test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH"
|
||||
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}"
|
||||
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
|
||||
export LIBGL_DEBUG=verbose
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
export GALLIUM_DRIVER=softpipe
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
# Smoke test DOTA2
|
||||
unset LD_LIBRARY_PATH
|
||||
test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld
|
||||
unset LIBGL_DRIVERS_PATH
|
||||
unset LIBGL_DEBUG
|
||||
unset LIBGL_ALWAYS_SOFTWARE
|
||||
unset GALLIUM_DRIVER
|
||||
export VK_ICD_FILENAMES=`pwd`/test/usr/local/share/vulkan/icd.d/intel_icd.x86_64.json
|
||||
steam steam://rungameid/570 -vconsole -vulkan
|
||||
unset VK_ICD_FILENAMES
|
||||
__glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
|
||||
__es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
|
||||
__es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"'
|
||||
test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH"
|
||||
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}"
|
||||
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
|
||||
export LIBGL_DEBUG=verbose
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
export GALLIUM_DRIVER=softpipe
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
# Smoke test DOTA2
|
||||
unset LD_LIBRARY_PATH
|
||||
test "x$__old_ld" != 'x' && export LD_LIBRARY_PATH="$__old_ld" && unset __old_ld
|
||||
unset LIBGL_DRIVERS_PATH
|
||||
unset LIBGL_DEBUG
|
||||
unset LIBGL_ALWAYS_SOFTWARE
|
||||
unset GALLIUM_DRIVER
|
||||
export VK_ICD_FILENAMES=`pwd`/test/usr/local/share/vulkan/icd.d/intel_icd.x86_64.json
|
||||
steam steam://rungameid/570 -vconsole -vulkan
|
||||
unset VK_ICD_FILENAMES
|
||||
</pre>
|
||||
|
||||
<h3>Create release notes for the new release</h3>
|
||||
|
||||
<p>
|
||||
The release notes are completely generated by the
|
||||
<code>bin/gen_release_notes.py</code> script. Simply run this script before
|
||||
bumping the version
|
||||
|
||||
The only thing left to do is add the sha256 sums.
|
||||
</p>
|
||||
|
||||
<h3>Update version in file VERSION</h3>
|
||||
|
||||
<p>
|
||||
@@ -533,12 +524,36 @@ Increment the version contained in the file VERSION at Mesa's top-level, then
|
||||
commit this change.
|
||||
</p>
|
||||
|
||||
<h3>Create release notes for the new release</h3>
|
||||
|
||||
<p>
|
||||
Create a new file docs/relnotes/X.Y.Z.html, (follow the style of the previous
|
||||
release notes). Note that the sha256sums section of the release notes should
|
||||
be empty (TBD) at this point.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Two scripts are available to help generate portions of the release notes:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
./bin/bugzilla_mesa.sh
|
||||
./bin/shortlog_mesa.sh
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The first script identifies commits that reference bugzilla bugs and obtains
|
||||
the descriptions of those bugs from bugzilla. The second script generates a
|
||||
log of all commits. In both cases, HTML-formatted lists are printed to stdout
|
||||
to be included in the release notes.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Commit these changes and push the branch.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git push origin HEAD
|
||||
git push origin HEAD
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -549,9 +564,9 @@ Start the release process.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# For the dist/distcheck, you may want to specify which LLVM to use:
|
||||
# export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
|
||||
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
|
||||
# For the dist/distcheck, you may want to specify which LLVM to use:
|
||||
# export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
|
||||
../relative/path/to/release.sh . # append --dist if you've already done distcheck above
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
@@ -572,18 +587,20 @@ Something like the following steps will do the trick:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git cherry-pick -x X.Y~1
|
||||
git cherry-pick -x X.Y
|
||||
git cherry-pick -x X.Y~1
|
||||
git cherry-pick -x X.Y
|
||||
</pre>
|
||||
|
||||
<p>Then run the <code>./bin/post_verison.py X.Y.Z</code>, where X.Y.Z is the
|
||||
version you just made. This will updated docs/relnotes.html and
|
||||
docs/index.html. Remove docs/release-calendar.html. Then commit and push:
|
||||
<p>
|
||||
Also, edit docs/relnotes.html to add a link to the new release notes,
|
||||
edit docs/index.html to add a news entry and a note in case of the
|
||||
last release in a series, and remove the version from
|
||||
docs/release-calendar.html. Then commit and push:
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
git commit -as -m "docs: update calendar, add news item and link release notes for X.Y.Z"
|
||||
git push origin master X.Y
|
||||
git commit -as -m "docs: update calendar, add news item and link release notes for X.Y.Z"
|
||||
git push origin master X.Y
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -599,7 +616,15 @@ series, if that is the case.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="gitlab">Update gitlab issues</h2>
|
||||
<h2 id="website">Update the mesa3d.org website</h2>
|
||||
|
||||
<p>
|
||||
As the hosting was moved to freedesktop, git hooks are deployed to update the
|
||||
website. Manually check that it is updated 5-10 minutes after the final <code>git push</code>
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="bugzilla">Update Bugzilla</h2>
|
||||
|
||||
<p>
|
||||
Parse through the bugreports as listed in the docs/relnotes/X.Y.Z.html
|
||||
|
@@ -21,252 +21,247 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/19.3.3.html">19.3.3 release notes</a></li><li><a href="relnotes/19.3.2.html">19.3.2 release notes</a></li><li><a href="relnotes/19.2.8.html">19.2.8 release notes</a></li><li><a href="relnotes/19.3.1.html">19.3.1 release notes</a></li><li><a href="relnotes/19.3.0.html">19.3.0 release notes</a></li><li><a href="relnotes/19.2.7.html">19.2.7 release notes</a></li><li><a href="relnotes/19.2.6.html">19.2.6 release notes</a></li><li><a href="relnotes/19.2.5.html">19.2.5 release notes</a></li><li><a href="relnotes/19.2.4.html">19.2.4 release notes</a></li><li><a href="relnotes/19.2.3.html">19.2.3 release notes</a></li><li><a href="relnotes/19.2.2.html">19.2.2 release notes</a></li><li><a href="relnotes/19.1.8.html">19.1.8 release notes</a>
|
||||
</li><li><a href="relnotes/19.2.1.html">19.2.1 release notes</a></li><li><a href="relnotes/19.2.0.html">19.2.0 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.7.html">19.1.7 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.6.html">19.1.6 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.5.html">19.1.5 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.4.html">19.1.4 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.3.html">19.1.3 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.2.html">19.1.2 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.8.html">19.0.8 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.1.html">19.1.1 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.7.html">19.0.7 release notes</a>
|
||||
</li><li><a href="relnotes/19.1.0.html">19.1.0 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.6.html">19.0.6 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.5.html">19.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.4.html">19.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.3.html">19.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.2.html">19.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.6.html">18.3.6 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.1.html">19.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.5.html">18.3.5 release notes</a>
|
||||
</li><li><a href="relnotes/19.0.0.html">19.0.0 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.4.html">18.3.4 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.3.html">18.3.3 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.2.html">18.3.2 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.8.html">18.2.8 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.7.html">18.2.7 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.1.html">18.3.1 release notes</a>
|
||||
</li><li><a href="relnotes/18.3.0.html">18.3.0 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.6.html">18.2.6 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.5.html">18.2.5 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.4.html">18.2.4 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.3.html">18.2.3 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.2.html">18.2.2 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.9.html">18.1.9 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.1.html">18.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/18.2.0.html">18.2.0 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.8.html">18.1.8 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.7.html">18.1.7 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.6.html">18.1.6 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.5.html">18.1.5 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.4.html">18.1.4 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.3.html">18.1.3 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.2.html">18.1.2 release notes</a>
|
||||
</li><li><a href="relnotes/18.0.5.html">18.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.1.html">18.1.1 release notes</a>
|
||||
</li><li><a href="relnotes/18.1.0.html">18.1.0 release notes</a>
|
||||
</li><li><a href="relnotes/18.0.4.html">18.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/18.0.3.html">18.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/18.0.2.html">18.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/18.0.1.html">18.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.9.html">17.3.9 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.8.html">17.3.8 release notes</a>
|
||||
</li><li><a href="relnotes/18.0.0.html">18.0.0 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.7.html">17.3.7 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.6.html">17.3.6 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.5.html">17.3.5 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.4.html">17.3.4 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.3.html">17.3.3 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.2.html">17.3.2 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.8.html">17.2.8 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.1.html">17.3.1 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.7.html">17.2.7 release notes</a>
|
||||
</li><li><a href="relnotes/17.3.0.html">17.3.0 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.6.html">17.2.6 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.5.html">17.2.5 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.4.html">17.2.4 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.3.html">17.2.3 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.2.html">17.2.2 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.10.html">17.1.10 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.1.html">17.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.9.html">17.1.9 release notes</a>
|
||||
</li><li><a href="relnotes/17.2.0.html">17.2.0 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.8.html">17.1.8 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.7.html">17.1.7 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.6.html">17.1.6 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.5.html">17.1.5 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.4.html">17.1.4 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.3.html">17.1.3 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.2.html">17.1.2 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.7.html">17.0.7 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.1.html">17.1.1 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.6.html">17.0.6 release notes</a>
|
||||
</li><li><a href="relnotes/17.1.0.html">17.1.0 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.5.html">17.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.4.html">17.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.3.html">17.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.2.html">17.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.6.html">13.0.6 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.1.html">17.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.5.html">13.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/17.0.0.html">17.0.0 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.4.html">13.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.6.html">12.0.6 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.3.html">13.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.5.html">12.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.2.html">13.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.1.html">13.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.4.html">12.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/13.0.0.html">13.0.0 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.3.html">12.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.2.html">12.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.1.html">12.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/12.0.0.html">12.0.0 release notes</a>
|
||||
</li><li><a href="relnotes/11.2.2.html">11.2.2 release notes</a>
|
||||
</li><li><a href="relnotes/11.1.4.html">11.1.4 release notes</a>
|
||||
</li><li><a href="relnotes/11.2.1.html">11.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/11.1.3.html">11.1.3 release notes</a>
|
||||
</li><li><a href="relnotes/11.2.0.html">11.2.0 release notes</a>
|
||||
</li><li><a href="relnotes/11.1.2.html">11.1.2 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.9.html">11.0.9 release notes</a>
|
||||
</li><li><a href="relnotes/11.1.1.html">11.1.1 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.8.html">11.0.8 release notes</a>
|
||||
</li><li><a href="relnotes/11.1.0.html">11.1.0 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.7.html">11.0.7 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.6.html">11.0.6 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.5.html">11.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.4.html">11.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.3.html">11.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.9.html">10.6.9 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.2.html">11.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.1.html">11.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.8.html">10.6.8 release notes</a>
|
||||
</li><li><a href="relnotes/11.0.0.html">11.0.0 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.7.html">10.6.7 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.6.html">10.6.6 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.5.html">10.6.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.4.html">10.6.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.3.html">10.6.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.2.html">10.6.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.9.html">10.5.9 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.1.html">10.6.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.8.html">10.5.8 release notes</a>
|
||||
</li><li><a href="relnotes/10.6.0.html">10.6.0 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.7.html">10.5.7 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.6.html">10.5.6 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.5.html">10.5.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.4.html">10.5.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.3.html">10.5.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.2.html">10.5.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.7.html">10.4.7 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.1.html">10.5.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.5.0.html">10.5.0 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.6.html">10.4.6 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.5.html">10.4.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.4.html">10.4.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.3.html">10.4.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.2.html">10.4.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.7.html">10.3.7 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.1.html">10.4.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.6.html">10.3.6 release notes</a>
|
||||
</li><li><a href="relnotes/10.4.html">10.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.5.html">10.3.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.4.html">10.3.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.3.html">10.3.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.2.html">10.3.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.1.html">10.3.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.9.html">10.2.9 release notes</a>
|
||||
</li><li><a href="relnotes/10.3.html">10.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.8.html">10.2.8 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.7.html">10.2.7 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.6.html">10.2.6 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.5.html">10.2.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.4.html">10.2.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.3.html">10.2.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.2.html">10.2.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.1.html">10.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.2.html">10.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.6.html">10.1.6 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.5.html">10.1.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.4.html">10.1.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.3.html">10.1.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.2.html">10.1.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.1.html">10.1.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.1.html">10.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.0.5.html">10.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/10.0.4.html">10.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/10.0.3.html">10.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/10.0.2.html">10.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/10.0.1.html">10.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/10.0.html">10.0 release notes</a>
|
||||
</li><li><a href="relnotes/9.2.5.html">9.2.5 release notes</a>
|
||||
</li><li><a href="relnotes/9.2.4.html">9.2.4 release notes</a>
|
||||
</li><li><a href="relnotes/9.2.3.html">9.2.3 release notes</a>
|
||||
</li><li><a href="relnotes/9.2.2.html">9.2.2 release notes</a>
|
||||
</li><li><a href="relnotes/9.2.1.html">9.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/9.2.html">9.2 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.7.html">9.1.7 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.6.html">9.1.6 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.5.html">9.1.5 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.4.html">9.1.4 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.3.html">9.1.3 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.2.html">9.1.2 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.1.html">9.1.1 release notes</a>
|
||||
</li><li><a href="relnotes/9.1.html">9.1 release notes</a>
|
||||
</li><li><a href="relnotes/9.0.3.html">9.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/9.0.2.html">9.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/9.0.1.html">9.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/9.0.html">9.0 release notes</a>
|
||||
</li><li><a href="relnotes/8.0.5.html">8.0.5 release notes</a>
|
||||
</li><li><a href="relnotes/8.0.4.html">8.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/8.0.3.html">8.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/8.0.2.html">8.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/8.0.1.html">8.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/8.0.html">8.0 release notes</a>
|
||||
</li><li><a href="relnotes/7.11.2.html">7.11.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.11.1.html">7.11.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.11.html">7.11 release notes</a>
|
||||
</li><li><a href="relnotes/7.10.3.html">7.10.3 release notes</a>
|
||||
</li><li><a href="relnotes/7.10.2.html">7.10.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.10.1.html">7.10.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.10.html">7.10 release notes</a>
|
||||
</li><li><a href="relnotes/7.9.2.html">7.9.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.9.1.html">7.9.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.9.html">7.9 release notes</a>
|
||||
</li><li><a href="relnotes/7.8.3.html">7.8.3 release notes</a>
|
||||
</li><li><a href="relnotes/7.8.2.html">7.8.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.8.1.html">7.8.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.8.html">7.8 release notes</a>
|
||||
</li><li><a href="relnotes/7.7.1.html">7.7.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.7.html">7.7 release notes</a>
|
||||
</li><li><a href="relnotes/7.6.1.html">7.6.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.6.html">7.6 release notes</a>
|
||||
</li><li><a href="relnotes/7.5.2.html">7.5.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.5.1.html">7.5.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.5.html">7.5 release notes</a>
|
||||
</li><li><a href="relnotes/7.4.4.html">7.4.4 release notes</a>
|
||||
</li><li><a href="relnotes/7.4.3.html">7.4.3 release notes</a>
|
||||
</li><li><a href="relnotes/7.4.2.html">7.4.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.4.1.html">7.4.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.4.html">7.4 release notes</a>
|
||||
</li><li><a href="relnotes/7.3.html">7.3 release notes</a>
|
||||
</li><li><a href="relnotes/7.2.html">7.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.1.html">7.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.0.4.html">7.0.4 release notes</a>
|
||||
</li><li><a href="relnotes/7.0.3.html">7.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/7.0.2.html">7.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/7.0.1.html">7.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/7.0.html">7.0 release notes</a>
|
||||
</li><li><a href="relnotes/6.5.3.html">6.5.3 release notes</a>
|
||||
</li><li><a href="relnotes/6.5.2.html">6.5.2 release notes</a>
|
||||
</li><li><a href="relnotes/6.5.1.html">6.5.1 release notes</a>
|
||||
</li><li><a href="relnotes/6.5.html">6.5 release notes</a>
|
||||
</li><li><a href="relnotes/6.4.2.html">6.4.2 release notes</a>
|
||||
</li><li><a href="relnotes/6.4.1.html">6.4.1 release notes</a>
|
||||
</li><li><a href="relnotes/6.4.html">6.4 release notes</a>
|
||||
</li></ul>
|
||||
<li><a href="relnotes/19.1.4.html">19.1.4 release notes</a>
|
||||
<li><a href="relnotes/19.1.3.html">19.1.3 release notes</a>
|
||||
<li><a href="relnotes/19.1.2.html">19.1.2 release notes</a>
|
||||
<li><a href="relnotes/19.0.8.html">19.0.8 release notes</a>
|
||||
<li><a href="relnotes/19.1.1.html">19.1.1 release notes</a>
|
||||
<li><a href="relnotes/19.0.7.html">19.0.7 release notes</a>
|
||||
<li><a href="relnotes/19.1.0.html">19.1.0 release notes</a>
|
||||
<li><a href="relnotes/19.0.6.html">19.0.6 release notes</a>
|
||||
<li><a href="relnotes/19.0.5.html">19.0.5 release notes</a>
|
||||
<li><a href="relnotes/19.0.4.html">19.0.4 release notes</a>
|
||||
<li><a href="relnotes/19.0.3.html">19.0.3 release notes</a>
|
||||
<li><a href="relnotes/19.0.2.html">19.0.2 release notes</a>
|
||||
<li><a href="relnotes/18.3.6.html">18.3.6 release notes</a>
|
||||
<li><a href="relnotes/19.0.1.html">19.0.1 release notes</a>
|
||||
<li><a href="relnotes/18.3.5.html">18.3.5 release notes</a>
|
||||
<li><a href="relnotes/19.0.0.html">19.0.0 release notes</a>
|
||||
<li><a href="relnotes/18.3.4.html">18.3.4 release notes</a>
|
||||
<li><a href="relnotes/18.3.3.html">18.3.3 release notes</a>
|
||||
<li><a href="relnotes/18.3.2.html">18.3.2 release notes</a>
|
||||
<li><a href="relnotes/18.2.8.html">18.2.8 release notes</a>
|
||||
<li><a href="relnotes/18.2.7.html">18.2.7 release notes</a>
|
||||
<li><a href="relnotes/18.3.1.html">18.3.1 release notes</a>
|
||||
<li><a href="relnotes/18.3.0.html">18.3.0 release notes</a>
|
||||
<li><a href="relnotes/18.2.6.html">18.2.6 release notes</a>
|
||||
<li><a href="relnotes/18.2.5.html">18.2.5 release notes</a>
|
||||
<li><a href="relnotes/18.2.4.html">18.2.4 release notes</a>
|
||||
<li><a href="relnotes/18.2.3.html">18.2.3 release notes</a>
|
||||
<li><a href="relnotes/18.2.2.html">18.2.2 release notes</a>
|
||||
<li><a href="relnotes/18.1.9.html">18.1.9 release notes</a>
|
||||
<li><a href="relnotes/18.2.1.html">18.2.1 release notes</a>
|
||||
<li><a href="relnotes/18.2.0.html">18.2.0 release notes</a>
|
||||
<li><a href="relnotes/18.1.8.html">18.1.8 release notes</a>
|
||||
<li><a href="relnotes/18.1.7.html">18.1.7 release notes</a>
|
||||
<li><a href="relnotes/18.1.6.html">18.1.6 release notes</a>
|
||||
<li><a href="relnotes/18.1.5.html">18.1.5 release notes</a>
|
||||
<li><a href="relnotes/18.1.4.html">18.1.4 release notes</a>
|
||||
<li><a href="relnotes/18.1.3.html">18.1.3 release notes</a>
|
||||
<li><a href="relnotes/18.1.2.html">18.1.2 release notes</a>
|
||||
<li><a href="relnotes/18.0.5.html">18.0.5 release notes</a>
|
||||
<li><a href="relnotes/18.1.1.html">18.1.1 release notes</a>
|
||||
<li><a href="relnotes/18.1.0.html">18.1.0 release notes</a>
|
||||
<li><a href="relnotes/18.0.4.html">18.0.4 release notes</a>
|
||||
<li><a href="relnotes/18.0.3.html">18.0.3 release notes</a>
|
||||
<li><a href="relnotes/18.0.2.html">18.0.2 release notes</a>
|
||||
<li><a href="relnotes/18.0.1.html">18.0.1 release notes</a>
|
||||
<li><a href="relnotes/17.3.9.html">17.3.9 release notes</a>
|
||||
<li><a href="relnotes/17.3.8.html">17.3.8 release notes</a>
|
||||
<li><a href="relnotes/18.0.0.html">18.0.0 release notes</a>
|
||||
<li><a href="relnotes/17.3.7.html">17.3.7 release notes</a>
|
||||
<li><a href="relnotes/17.3.6.html">17.3.6 release notes</a>
|
||||
<li><a href="relnotes/17.3.5.html">17.3.5 release notes</a>
|
||||
<li><a href="relnotes/17.3.4.html">17.3.4 release notes</a>
|
||||
<li><a href="relnotes/17.3.3.html">17.3.3 release notes</a>
|
||||
<li><a href="relnotes/17.3.2.html">17.3.2 release notes</a>
|
||||
<li><a href="relnotes/17.2.8.html">17.2.8 release notes</a>
|
||||
<li><a href="relnotes/17.3.1.html">17.3.1 release notes</a>
|
||||
<li><a href="relnotes/17.2.7.html">17.2.7 release notes</a>
|
||||
<li><a href="relnotes/17.3.0.html">17.3.0 release notes</a>
|
||||
<li><a href="relnotes/17.2.6.html">17.2.6 release notes</a>
|
||||
<li><a href="relnotes/17.2.5.html">17.2.5 release notes</a>
|
||||
<li><a href="relnotes/17.2.4.html">17.2.4 release notes</a>
|
||||
<li><a href="relnotes/17.2.3.html">17.2.3 release notes</a>
|
||||
<li><a href="relnotes/17.2.2.html">17.2.2 release notes</a>
|
||||
<li><a href="relnotes/17.1.10.html">17.1.10 release notes</a>
|
||||
<li><a href="relnotes/17.2.1.html">17.2.1 release notes</a>
|
||||
<li><a href="relnotes/17.1.9.html">17.1.9 release notes</a>
|
||||
<li><a href="relnotes/17.2.0.html">17.2.0 release notes</a>
|
||||
<li><a href="relnotes/17.1.8.html">17.1.8 release notes</a>
|
||||
<li><a href="relnotes/17.1.7.html">17.1.7 release notes</a>
|
||||
<li><a href="relnotes/17.1.6.html">17.1.6 release notes</a>
|
||||
<li><a href="relnotes/17.1.5.html">17.1.5 release notes</a>
|
||||
<li><a href="relnotes/17.1.4.html">17.1.4 release notes</a>
|
||||
<li><a href="relnotes/17.1.3.html">17.1.3 release notes</a>
|
||||
<li><a href="relnotes/17.1.2.html">17.1.2 release notes</a>
|
||||
<li><a href="relnotes/17.0.7.html">17.0.7 release notes</a>
|
||||
<li><a href="relnotes/17.1.1.html">17.1.1 release notes</a>
|
||||
<li><a href="relnotes/17.0.6.html">17.0.6 release notes</a>
|
||||
<li><a href="relnotes/17.1.0.html">17.1.0 release notes</a>
|
||||
<li><a href="relnotes/17.0.5.html">17.0.5 release notes</a>
|
||||
<li><a href="relnotes/17.0.4.html">17.0.4 release notes</a>
|
||||
<li><a href="relnotes/17.0.3.html">17.0.3 release notes</a>
|
||||
<li><a href="relnotes/17.0.2.html">17.0.2 release notes</a>
|
||||
<li><a href="relnotes/13.0.6.html">13.0.6 release notes</a>
|
||||
<li><a href="relnotes/17.0.1.html">17.0.1 release notes</a>
|
||||
<li><a href="relnotes/13.0.5.html">13.0.5 release notes</a>
|
||||
<li><a href="relnotes/17.0.0.html">17.0.0 release notes</a>
|
||||
<li><a href="relnotes/13.0.4.html">13.0.4 release notes</a>
|
||||
<li><a href="relnotes/12.0.6.html">12.0.6 release notes</a>
|
||||
<li><a href="relnotes/13.0.3.html">13.0.3 release notes</a>
|
||||
<li><a href="relnotes/12.0.5.html">12.0.5 release notes</a>
|
||||
<li><a href="relnotes/13.0.2.html">13.0.2 release notes</a>
|
||||
<li><a href="relnotes/13.0.1.html">13.0.1 release notes</a>
|
||||
<li><a href="relnotes/12.0.4.html">12.0.4 release notes</a>
|
||||
<li><a href="relnotes/13.0.0.html">13.0.0 release notes</a>
|
||||
<li><a href="relnotes/12.0.3.html">12.0.3 release notes</a>
|
||||
<li><a href="relnotes/12.0.2.html">12.0.2 release notes</a>
|
||||
<li><a href="relnotes/12.0.1.html">12.0.1 release notes</a>
|
||||
<li><a href="relnotes/12.0.0.html">12.0.0 release notes</a>
|
||||
<li><a href="relnotes/11.2.2.html">11.2.2 release notes</a>
|
||||
<li><a href="relnotes/11.1.4.html">11.1.4 release notes</a>
|
||||
<li><a href="relnotes/11.2.1.html">11.2.1 release notes</a>
|
||||
<li><a href="relnotes/11.1.3.html">11.1.3 release notes</a>
|
||||
<li><a href="relnotes/11.2.0.html">11.2.0 release notes</a>
|
||||
<li><a href="relnotes/11.1.2.html">11.1.2 release notes</a>
|
||||
<li><a href="relnotes/11.0.9.html">11.0.9 release notes</a>
|
||||
<li><a href="relnotes/11.1.1.html">11.1.1 release notes</a>
|
||||
<li><a href="relnotes/11.0.8.html">11.0.8 release notes</a>
|
||||
<li><a href="relnotes/11.1.0.html">11.1.0 release notes</a>
|
||||
<li><a href="relnotes/11.0.7.html">11.0.7 release notes</a>
|
||||
<li><a href="relnotes/11.0.6.html">11.0.6 release notes</a>
|
||||
<li><a href="relnotes/11.0.5.html">11.0.5 release notes</a>
|
||||
<li><a href="relnotes/11.0.4.html">11.0.4 release notes</a>
|
||||
<li><a href="relnotes/11.0.3.html">11.0.3 release notes</a>
|
||||
<li><a href="relnotes/10.6.9.html">10.6.9 release notes</a>
|
||||
<li><a href="relnotes/11.0.2.html">11.0.2 release notes</a>
|
||||
<li><a href="relnotes/11.0.1.html">11.0.1 release notes</a>
|
||||
<li><a href="relnotes/10.6.8.html">10.6.8 release notes</a>
|
||||
<li><a href="relnotes/11.0.0.html">11.0.0 release notes</a>
|
||||
<li><a href="relnotes/10.6.7.html">10.6.7 release notes</a>
|
||||
<li><a href="relnotes/10.6.6.html">10.6.6 release notes</a>
|
||||
<li><a href="relnotes/10.6.5.html">10.6.5 release notes</a>
|
||||
<li><a href="relnotes/10.6.4.html">10.6.4 release notes</a>
|
||||
<li><a href="relnotes/10.6.3.html">10.6.3 release notes</a>
|
||||
<li><a href="relnotes/10.6.2.html">10.6.2 release notes</a>
|
||||
<li><a href="relnotes/10.5.9.html">10.5.9 release notes</a>
|
||||
<li><a href="relnotes/10.6.1.html">10.6.1 release notes</a>
|
||||
<li><a href="relnotes/10.5.8.html">10.5.8 release notes</a>
|
||||
<li><a href="relnotes/10.6.0.html">10.6.0 release notes</a>
|
||||
<li><a href="relnotes/10.5.7.html">10.5.7 release notes</a>
|
||||
<li><a href="relnotes/10.5.6.html">10.5.6 release notes</a>
|
||||
<li><a href="relnotes/10.5.5.html">10.5.5 release notes</a>
|
||||
<li><a href="relnotes/10.5.4.html">10.5.4 release notes</a>
|
||||
<li><a href="relnotes/10.5.3.html">10.5.3 release notes</a>
|
||||
<li><a href="relnotes/10.5.2.html">10.5.2 release notes</a>
|
||||
<li><a href="relnotes/10.4.7.html">10.4.7 release notes</a>
|
||||
<li><a href="relnotes/10.5.1.html">10.5.1 release notes</a>
|
||||
<li><a href="relnotes/10.5.0.html">10.5.0 release notes</a>
|
||||
<li><a href="relnotes/10.4.6.html">10.4.6 release notes</a>
|
||||
<li><a href="relnotes/10.4.5.html">10.4.5 release notes</a>
|
||||
<li><a href="relnotes/10.4.4.html">10.4.4 release notes</a>
|
||||
<li><a href="relnotes/10.4.3.html">10.4.3 release notes</a>
|
||||
<li><a href="relnotes/10.4.2.html">10.4.2 release notes</a>
|
||||
<li><a href="relnotes/10.3.7.html">10.3.7 release notes</a>
|
||||
<li><a href="relnotes/10.4.1.html">10.4.1 release notes</a>
|
||||
<li><a href="relnotes/10.3.6.html">10.3.6 release notes</a>
|
||||
<li><a href="relnotes/10.4.html">10.4 release notes</a>
|
||||
<li><a href="relnotes/10.3.5.html">10.3.5 release notes</a>
|
||||
<li><a href="relnotes/10.3.4.html">10.3.4 release notes</a>
|
||||
<li><a href="relnotes/10.3.3.html">10.3.3 release notes</a>
|
||||
<li><a href="relnotes/10.3.2.html">10.3.2 release notes</a>
|
||||
<li><a href="relnotes/10.3.1.html">10.3.1 release notes</a>
|
||||
<li><a href="relnotes/10.2.9.html">10.2.9 release notes</a>
|
||||
<li><a href="relnotes/10.3.html">10.3 release notes</a>
|
||||
<li><a href="relnotes/10.2.8.html">10.2.8 release notes</a>
|
||||
<li><a href="relnotes/10.2.7.html">10.2.7 release notes</a>
|
||||
<li><a href="relnotes/10.2.6.html">10.2.6 release notes</a>
|
||||
<li><a href="relnotes/10.2.5.html">10.2.5 release notes</a>
|
||||
<li><a href="relnotes/10.2.4.html">10.2.4 release notes</a>
|
||||
<li><a href="relnotes/10.2.3.html">10.2.3 release notes</a>
|
||||
<li><a href="relnotes/10.2.2.html">10.2.2 release notes</a>
|
||||
<li><a href="relnotes/10.2.1.html">10.2.1 release notes</a>
|
||||
<li><a href="relnotes/10.2.html">10.2 release notes</a>
|
||||
<li><a href="relnotes/10.1.6.html">10.1.6 release notes</a>
|
||||
<li><a href="relnotes/10.1.5.html">10.1.5 release notes</a>
|
||||
<li><a href="relnotes/10.1.4.html">10.1.4 release notes</a>
|
||||
<li><a href="relnotes/10.1.3.html">10.1.3 release notes</a>
|
||||
<li><a href="relnotes/10.1.2.html">10.1.2 release notes</a>
|
||||
<li><a href="relnotes/10.1.1.html">10.1.1 release notes</a>
|
||||
<li><a href="relnotes/10.1.html">10.1 release notes</a>
|
||||
<li><a href="relnotes/10.0.5.html">10.0.5 release notes</a>
|
||||
<li><a href="relnotes/10.0.4.html">10.0.4 release notes</a>
|
||||
<li><a href="relnotes/10.0.3.html">10.0.3 release notes</a>
|
||||
<li><a href="relnotes/10.0.2.html">10.0.2 release notes</a>
|
||||
<li><a href="relnotes/10.0.1.html">10.0.1 release notes</a>
|
||||
<li><a href="relnotes/10.0.html">10.0 release notes</a>
|
||||
<li><a href="relnotes/9.2.5.html">9.2.5 release notes</a>
|
||||
<li><a href="relnotes/9.2.4.html">9.2.4 release notes</a>
|
||||
<li><a href="relnotes/9.2.3.html">9.2.3 release notes</a>
|
||||
<li><a href="relnotes/9.2.2.html">9.2.2 release notes</a>
|
||||
<li><a href="relnotes/9.2.1.html">9.2.1 release notes</a>
|
||||
<li><a href="relnotes/9.2.html">9.2 release notes</a>
|
||||
<li><a href="relnotes/9.1.7.html">9.1.7 release notes</a>
|
||||
<li><a href="relnotes/9.1.6.html">9.1.6 release notes</a>
|
||||
<li><a href="relnotes/9.1.5.html">9.1.5 release notes</a>
|
||||
<li><a href="relnotes/9.1.4.html">9.1.4 release notes</a>
|
||||
<li><a href="relnotes/9.1.3.html">9.1.3 release notes</a>
|
||||
<li><a href="relnotes/9.1.2.html">9.1.2 release notes</a>
|
||||
<li><a href="relnotes/9.1.1.html">9.1.1 release notes</a>
|
||||
<li><a href="relnotes/9.1.html">9.1 release notes</a>
|
||||
<li><a href="relnotes/9.0.3.html">9.0.3 release notes</a>
|
||||
<li><a href="relnotes/9.0.2.html">9.0.2 release notes</a>
|
||||
<li><a href="relnotes/9.0.1.html">9.0.1 release notes</a>
|
||||
<li><a href="relnotes/9.0.html">9.0 release notes</a>
|
||||
<li><a href="relnotes/8.0.5.html">8.0.5 release notes</a>
|
||||
<li><a href="relnotes/8.0.4.html">8.0.4 release notes</a>
|
||||
<li><a href="relnotes/8.0.3.html">8.0.3 release notes</a>
|
||||
<li><a href="relnotes/8.0.2.html">8.0.2 release notes</a>
|
||||
<li><a href="relnotes/8.0.1.html">8.0.1 release notes</a>
|
||||
<li><a href="relnotes/8.0.html">8.0 release notes</a>
|
||||
<li><a href="relnotes/7.11.2.html">7.11.2 release notes</a>
|
||||
<li><a href="relnotes/7.11.1.html">7.11.1 release notes</a>
|
||||
<li><a href="relnotes/7.11.html">7.11 release notes</a>
|
||||
<li><a href="relnotes/7.10.3.html">7.10.3 release notes</a>
|
||||
<li><a href="relnotes/7.10.2.html">7.10.2 release notes</a>
|
||||
<li><a href="relnotes/7.10.1.html">7.10.1 release notes</a>
|
||||
<li><a href="relnotes/7.10.html">7.10 release notes</a>
|
||||
<li><a href="relnotes/7.9.2.html">7.9.2 release notes</a>
|
||||
<li><a href="relnotes/7.9.1.html">7.9.1 release notes</a>
|
||||
<li><a href="relnotes/7.9.html">7.9 release notes</a>
|
||||
<li><a href="relnotes/7.8.3.html">7.8.3 release notes</a>
|
||||
<li><a href="relnotes/7.8.2.html">7.8.2 release notes</a>
|
||||
<li><a href="relnotes/7.8.1.html">7.8.1 release notes</a>
|
||||
<li><a href="relnotes/7.8.html">7.8 release notes</a>
|
||||
<li><a href="relnotes/7.7.1.html">7.7.1 release notes</a>
|
||||
<li><a href="relnotes/7.7.html">7.7 release notes</a>
|
||||
<li><a href="relnotes/7.6.1.html">7.6.1 release notes</a>
|
||||
<li><a href="relnotes/7.6.html">7.6 release notes</a>
|
||||
<li><a href="relnotes/7.5.2.html">7.5.2 release notes</a>
|
||||
<li><a href="relnotes/7.5.1.html">7.5.1 release notes</a>
|
||||
<li><a href="relnotes/7.5.html">7.5 release notes</a>
|
||||
<li><a href="relnotes/7.4.4.html">7.4.4 release notes</a>
|
||||
<li><a href="relnotes/7.4.3.html">7.4.3 release notes</a>
|
||||
<li><a href="relnotes/7.4.2.html">7.4.2 release notes</a>
|
||||
<li><a href="relnotes/7.4.1.html">7.4.1 release notes</a>
|
||||
<li><a href="relnotes/7.4.html">7.4 release notes</a>
|
||||
<li><a href="relnotes/7.3.html">7.3 release notes</a>
|
||||
<li><a href="relnotes/7.2.html">7.2 release notes</a>
|
||||
<li><a href="relnotes/7.1.html">7.1 release notes</a>
|
||||
<li><a href="relnotes/7.0.4.html">7.0.4 release notes</a>
|
||||
<li><a href="relnotes/7.0.3.html">7.0.3 release notes</a>
|
||||
<li><a href="relnotes/7.0.2.html">7.0.2 release notes</a>
|
||||
<li><a href="relnotes/7.0.1.html">7.0.1 release notes</a>
|
||||
<li><a href="relnotes/7.0.html">7.0 release notes</a>
|
||||
<li><a href="relnotes/6.5.3.html">6.5.3 release notes</a>
|
||||
<li><a href="relnotes/6.5.2.html">6.5.2 release notes</a>
|
||||
<li><a href="relnotes/6.5.1.html">6.5.1 release notes</a>
|
||||
<li><a href="relnotes/6.5.html">6.5 release notes</a>
|
||||
<li><a href="relnotes/6.4.2.html">6.4.2 release notes</a>
|
||||
<li><a href="relnotes/6.4.1.html">6.4.1 release notes</a>
|
||||
<li><a href="relnotes/6.4.html">6.4 release notes</a>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Versions of Mesa prior to 6.4 are summarized in the
|
||||
@@ -275,32 +270,32 @@ Versions of Mesa prior to 6.4 are summarized in the
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/6.3.2">6.3.2 release notes</a>
|
||||
</li><li><a href="relnotes/6.3.1">6.3.1 release notes</a>
|
||||
</li><li><a href="relnotes/6.3">6.3 release notes</a>
|
||||
</li><li><a href="relnotes/6.2.1">6.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/6.2">6.2 release notes</a>
|
||||
</li><li><a href="relnotes/6.1">6.1 release notes</a>
|
||||
</li><li><a href="relnotes/6.0.1">6.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/6.0">6.0 release notes</a>
|
||||
</li><li><a href="relnotes/5.1">5.1 release notes</a>
|
||||
</li><li><a href="relnotes/5.0.2">5.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/5.0.1">5.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/5.0">5.0 release notes</a>
|
||||
</li><li><a href="relnotes/4.1">4.1 release notes</a>
|
||||
</li><li><a href="relnotes/4.0.3">4.0.3 release notes</a>
|
||||
</li><li><a href="relnotes/4.0.2">4.0.2 release notes</a>
|
||||
</li><li><a href="relnotes/4.0.1">4.0.1 release notes</a>
|
||||
</li><li><a href="relnotes/4.0">4.0 release notes</a>
|
||||
</li><li><a href="relnotes/3.5">3.5 release notes</a>
|
||||
</li><li><a href="relnotes/3.4.2">3.4.2 release notes</a>
|
||||
</li><li><a href="relnotes/3.4.1">3.4.1 release notes</a>
|
||||
</li><li><a href="relnotes/3.4">3.4 release notes</a>
|
||||
</li><li><a href="relnotes/3.3">3.3 release notes</a>
|
||||
</li><li><a href="relnotes/3.2.1">3.2.1 release notes</a>
|
||||
</li><li><a href="relnotes/3.2">3.2 release notes</a>
|
||||
</li><li><a href="relnotes/3.1">3.1 release notes</a>
|
||||
</li></ul>
|
||||
<li><a href="relnotes/6.3.1">6.3.1 release notes</a>
|
||||
<li><a href="relnotes/6.3">6.3 release notes</a>
|
||||
<li><a href="relnotes/6.2.1">6.2.1 release notes</a>
|
||||
<li><a href="relnotes/6.2">6.2 release notes</a>
|
||||
<li><a href="relnotes/6.1">6.1 release notes</a>
|
||||
<li><a href="relnotes/6.0.1">6.0.1 release notes</a>
|
||||
<li><a href="relnotes/6.0">6.0 release notes</a>
|
||||
<li><a href="relnotes/5.1">5.1 release notes</a>
|
||||
<li><a href="relnotes/5.0.2">5.0.2 release notes</a>
|
||||
<li><a href="relnotes/5.0.1">5.0.1 release notes</a>
|
||||
<li><a href="relnotes/5.0">5.0 release notes</a>
|
||||
<li><a href="relnotes/4.1">4.1 release notes</a>
|
||||
<li><a href="relnotes/4.0.3">4.0.3 release notes</a>
|
||||
<li><a href="relnotes/4.0.2">4.0.2 release notes</a>
|
||||
<li><a href="relnotes/4.0.1">4.0.1 release notes</a>
|
||||
<li><a href="relnotes/4.0">4.0 release notes</a>
|
||||
<li><a href="relnotes/3.5">3.5 release notes</a>
|
||||
<li><a href="relnotes/3.4.2">3.4.2 release notes</a>
|
||||
<li><a href="relnotes/3.4.1">3.4.1 release notes</a>
|
||||
<li><a href="relnotes/3.4">3.4 release notes</a>
|
||||
<li><a href="relnotes/3.3">3.3 release notes</a>
|
||||
<li><a href="relnotes/3.2.1">3.2.1 release notes</a>
|
||||
<li><a href="relnotes/3.2">3.2 release notes</a>
|
||||
<li><a href="relnotes/3.1">3.1 release notes</a>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@@ -1,119 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 19.1.5 Release Notes / August 23, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.1.5 is a bug fix release which fixes bugs found since the 19.1.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.1.5 implements the OpenGL 4.5 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.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
7b54e14e35c7251b171b4cf9d84cbc1d760eafe00132117db193454999cd6eb4 mesa-19.1.5.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109630">Bug 109630</a> - vkQuake flickering geometry under Intel</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110395">Bug 110395</a> - Shadows are flickering in SuperTuxKart</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111113">Bug 111113</a> - ANGLE BlitFramebufferTest.MultisampleDepthClear/ES3_OpenGL fails on Intel Ubuntu19.04</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111267">Bug 111267</a> - [CM246] Flickering with multiple draw calls within the same graphics pipeline if a compute pipeline is present</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Bas Nieuwenhuizen (4):</p>
|
||||
<ul>
|
||||
<li>radv: Do non-uniform lowering before bool lowering.</li>
|
||||
<li>ac/nir: Use correct cast for readfirstlane and ptrs.</li>
|
||||
<li>radv: Avoid binning RAVEN hangs.</li>
|
||||
<li>radv: Avoid VEGA/RAVEN scissor bug in binning.</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>i965: Emit a dummy MEDIA_VFE_STATE before switching from GPGPU to 3D</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>util: fix mem leak of program path</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>gallium/dump: add missing query-type to short-list</li>
|
||||
<li>gallium/dump: add missing query-type to short-list</li>
|
||||
</ul>
|
||||
|
||||
<p>Greg V (2):</p>
|
||||
<ul>
|
||||
<li>anv: remove unused Linux-specific include</li>
|
||||
<li>intel/perf: use MAJOR_IN_SYSMACROS/MAJOR_IN_MKDEV</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>anv: Emit a dummy MEDIA_VFE_STATE before switching from GPGPU to 3D</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 19.1.4</li>
|
||||
<li>cherry-ignore: panfrost: Make ctx->job useful</li>
|
||||
<li>Update version to 19.1.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>radeonsi: disable SDMA image copies on dGPUs to fix corruption in games</li>
|
||||
<li>radeonsi: fix an assertion failure: assert(!res->b.is_shared)</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (1):</p>
|
||||
<ul>
|
||||
<li>meson: Test for program_invocation_name</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>i965/clear: clear_value better precision</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,132 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 19.1.6 Release Notes / September 3, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.1.6 is a bug fix release which fixes bugs found since the 19.1.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.1.6 implements the OpenGL 4.5 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.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
2a369b7b48545c6486e7e44913ad022daca097c8bd937bf30dcf3f17a94d3496 mesa-19.1.6.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104395">Bug 104395</a> - [CTS] GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels tests fail on 32bit Mesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111213">Bug 111213</a> - VA-API nouveau SIGSEGV and asserts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111241">Bug 111241</a> - Shadertoy shader causing hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111411">Bug 111411</a> - SPIR-V shader leads to GPU hang, sometimes making machine unstable</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Rodriguez (1):</p>
|
||||
<ul>
|
||||
<li>radv: additional query fixes</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Schürmann (1):</p>
|
||||
<ul>
|
||||
<li>nir/lcssa: handle deref instructions properly</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>nir/loop_unroll: Prepare loop for unrolling in wrapper_unroll</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>nir/algrbraic: Don't optimize open-coded bitfield reverse when lowering is enabled</li>
|
||||
<li>intel/compiler: Request bitfield_reverse lowering on pre-Gen7 hardware</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>gallium/vl: use compute preference for all multimedia, not just blit</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonas Ådahl (1):</p>
|
||||
<ul>
|
||||
<li>wayland/egl: Ensure correct buffer size when allocating</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (6):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 19.1.5</li>
|
||||
<li>cherry-ignore: add explicit 19.2 only nominations</li>
|
||||
<li>cherry-ignore: iris: Replace devinfo->gen with GEN_GEN</li>
|
||||
<li>cherry-ignore: iris: Update fast clear colors on Gen9 with direct immediate writes.</li>
|
||||
<li>cherry-ignore: iris: Avoid unnecessary resolves on transfer maps</li>
|
||||
<li>Update version to 19.1.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (6):</p>
|
||||
<ul>
|
||||
<li>iris: Fix broken aux.possible/sampler_usages bitmask handling</li>
|
||||
<li>iris: Drop copy format hacks from copy region based transfer path.</li>
|
||||
<li>iris: Fix large timeout handling in rel2abs()</li>
|
||||
<li>util: Add a _mesa_i64roundevenf() helper.</li>
|
||||
<li>mesa: Fix _mesa_float_to_unorm() on 32-bit systems.</li>
|
||||
<li>intel/compiler: Fix src0/desc setter ordering</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix scratch buffer WAVESIZE setting leading to corruption</li>
|
||||
</ul>
|
||||
|
||||
<p>Paulo Zanoni (1):</p>
|
||||
<ul>
|
||||
<li>intel/fs: grab fail_msg from v32 instead of v16 when v32->run_cs fails</li>
|
||||
</ul>
|
||||
|
||||
<p>Pierre-Eric Pelloux-Prayer (1):</p>
|
||||
<ul>
|
||||
<li>glsl: replace 'x + (-x)' with constant 0</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>egl: reset blob cache set/get functions on terminate</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,157 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 19.1.7 Release Notes / September 17, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.1.7 is a bug fix release which fixes bugs found since the 19.1.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.1.7 implements the OpenGL 4.5 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.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.1.7 implements the Vulkan 1.1 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e287920fdb38712a9fed448dc90b3ca95048c7face5db52e58361f8b6e0f3cd5 mesa-19.1.7.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110814">Bug 110814</a> - KWin compositor crashes on launch</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111069">Bug 111069</a> - Assertion fails in nir_opt_remove_phis.c during compilation of SPIR-V shader</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111271">Bug 111271</a> - Crash in eglMakeCurrent</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111401">Bug 111401</a> - Vulkan overlay layer - async compute not supported, making overlay disappear in Doom</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111405">Bug 111405</a> - Some infinite 'do{}while' loops lead mesa to an infinite compilation</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111467">Bug 111467</a> - WOLF RPG Editor + Gallium Nine Standalone: Rendering issue when using Iris driver</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111552">Bug 111552</a> - Geekbench 5.0 Vulkan compute benchmark fails on Anvil</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (1):</p>
|
||||
<ul>
|
||||
<li>glsl/nir: Avoid overflow when setting max_uniform_location</li>
|
||||
</ul>
|
||||
|
||||
<p>Connor Abbott (1):</p>
|
||||
<ul>
|
||||
<li>radv: Call nir_propagate_invariant()</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>tgsi_to_nir: Translate TGSI_INTERPOLATE_COLOR as INTERP_MODE_NONE</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (10):</p>
|
||||
<ul>
|
||||
<li>ttn: fix 64-bit shift on 32-bit `1`</li>
|
||||
<li>egl: fix deadlock in malloc error path</li>
|
||||
<li>util/os_file: fix double-close()</li>
|
||||
<li>anv: fix format string in error message</li>
|
||||
<li>nir: fix memleak in error path</li>
|
||||
<li>anv: add support for driconf</li>
|
||||
<li>wsi: add minImageCount override</li>
|
||||
<li>anv: add support for vk_x11_override_min_image_count</li>
|
||||
<li>amd: move adaptive sync to performance section, as it is defined in xmlpool</li>
|
||||
<li>radv: add support for vk_x11_override_min_image_count</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>gallium/auxiliary/indices: consistently apply start only to input</li>
|
||||
<li>util: fix SSE-version needed for double opcodes</li>
|
||||
</ul>
|
||||
|
||||
<p>Hal Gentz (1):</p>
|
||||
<ul>
|
||||
<li>glx: Fix SEGV due to dereferencing a NULL ptr from XCB-GLX.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (7):</p>
|
||||
<ul>
|
||||
<li>Revert "intel/fs: Move the scalar-region conversion to the generator."</li>
|
||||
<li>anv: Bump maxComputeWorkgroupSize</li>
|
||||
<li>nir: Don't infinitely recurse in lower_ssa_defs_to_regs_block</li>
|
||||
<li>nir: Add a block_is_unreachable helper</li>
|
||||
<li>nir/repair_ssa: Repair dominance for unreachable blocks</li>
|
||||
<li>nir/repair_ssa: Insert deref casts when needed</li>
|
||||
<li>nir/dead_cf: Repair SSA if the pass makes progress</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 19.1.6</li>
|
||||
<li>cherry-ignore: add explicit 19.2 only nominations</li>
|
||||
<li>Update version to 19.1.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>gallium: Fix util_format_get_depth_only</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>vulkan/overlay: bounce image back to present layout</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (3):</p>
|
||||
<ul>
|
||||
<li>android: radv: fix necessary dependecies</li>
|
||||
<li>android: amd/common: fix missing include path</li>
|
||||
<li>android: anv: libmesa_vulkan_common: add libmesa_util static dependency</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: fix allocating number of user sgprs if streamout is used</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>intel/dri: finish proper glthread</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,267 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 19.1.8 Release Notes / October 21, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.1.8 is a bug fix release which fixes bugs found since the 19.1.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.1.8 implements the OpenGL 4.5 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.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.1.8 implements the Vulkan 1.1 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
f0fe8289b7d147943bf2fc2147833254881577e8f9ed3d94ddb39e430e711725 mesa-19.1.8.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111236">Bug 111236</a> - VA-API radeonsi SIGSEGV __memmove_avx_unaligned</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111664">Bug 111664</a> - [Bisected] Segmentation fault on FS shader compilation (mat4x3 * mat4x3)</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/121">Issue #121</a> - Shared Memeory leakage in XCreateDrawable</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/795">Issue #795</a> - Xorg does not render with mesa 19.1.7</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/939">Issue #939</a> - Meson can't find 32-bit libXvMCW in non-standard path</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/944">Issue #944</a> - Mesa doesn't build with current Scons version (3.1.0)</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/1838">Issue #1838</a> - Mesa installs gl.pc and egl.pc even with libglvnd >= 1.2.0</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/1844">Issue #1844</a> - libXvMC-1.0.12 breaks mesa build</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/1869">Issue #1869</a> - X server does not start with Mesa 19.2.0</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/1872">Issue #1872</a> - [bisected] piglit spec.arb_texture_view.bug-layers-image causes gpu hangs on IVB</li>
|
||||
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/issues/1878">Issue #1878</a> - meson.build:1447:6: ERROR: Problem encountered: libdrm required for gallium video statetrackers when using x11</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Adam Jackson (1):</p>
|
||||
<ul>
|
||||
<li>docs: Update bug report URLs for the gitlab migration</li>
|
||||
</ul>
|
||||
|
||||
<p>Alan Coopersmith (5):</p>
|
||||
<ul>
|
||||
<li>c99_compat.h: Don't try to use 'restrict' in C++ code</li>
|
||||
<li>util: Make Solaris implemention of p_atomic_add work with gcc</li>
|
||||
<li>util: Workaround lack of flock on Solaris</li>
|
||||
<li>meson: recognize "sunos" as the system name for Solaris</li>
|
||||
<li>intel/common: include unistd.h for ioctl() prototype on Solaris</li>
|
||||
</ul>
|
||||
|
||||
<p>Andreas Gottschling (1):</p>
|
||||
<ul>
|
||||
<li>drisw: Fix shared memory leak on drawable resize</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (3):</p>
|
||||
<ul>
|
||||
<li>docs: Add the maximum implemented Vulkan API version in 19.1 rel notes</li>
|
||||
<li>docs/features: Update VK_KHR_display_swapchain status</li>
|
||||
<li>egl: Remove the 565 pbuffer-only EGL config under X11.</li>
|
||||
</ul>
|
||||
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>glsl: disallow incompatible matrices multiplication</li>
|
||||
</ul>
|
||||
|
||||
<p>Arcady Goldmints-Orlov (1):</p>
|
||||
<ul>
|
||||
<li>anv: fix descriptor limits on gen8</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<ul>
|
||||
<li>tu: Set up glsl types.</li>
|
||||
<li>radv: Add workaround for hang in The Surge 2.</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>st/nine: Ignore D3DSIO_RET if it is the last instruction in a shader</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (5):</p>
|
||||
<ul>
|
||||
<li>meson: fix logic for generating .pc files with old glvnd</li>
|
||||
<li>meson: Try finding libxvmcw via pkg-config before using find_library</li>
|
||||
<li>meson: Link xvmc with libxv</li>
|
||||
<li>meson: gallium media state trackers require libdrm with x11</li>
|
||||
<li>meson: Only error building gallium video without libdrm when the platform is drm</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (4):</p>
|
||||
<ul>
|
||||
<li>gl: drop incorrect pkg-config file for glvnd</li>
|
||||
<li>meson: re-add incorrect pkg-config files with GLVND for backward compatibility</li>
|
||||
<li>util/anon_file: add missing #include</li>
|
||||
<li>util/anon_file: const string param</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (1):</p>
|
||||
<ul>
|
||||
<li>glsl: correct bitcast-helpers</li>
|
||||
</ul>
|
||||
|
||||
<p>Greg V (1):</p>
|
||||
<ul>
|
||||
<li>util: add anon_file.h for all memfd/temp file usage</li>
|
||||
</ul>
|
||||
|
||||
<p>Haihao Xiang (1):</p>
|
||||
<ul>
|
||||
<li>i965: support AYUV/XYUV for external import only</li>
|
||||
</ul>
|
||||
|
||||
<p>Hal Gentz (1):</p>
|
||||
<ul>
|
||||
<li>gallium/osmesa: Fix the inability to set no context as current.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>nir/repair_ssa: Replace the unreachable check with the phi builder</li>
|
||||
<li>intel/fs: Fix fs_inst::flags_read for ANY/ALL predicates</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (11):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 19.1.7</li>
|
||||
<li>cherry-ignore: add explicit 19.2 only nominations</li>
|
||||
<li>cherry-ignore: add explicit 19.3 only nominations</li>
|
||||
<li>Revert "Revert "intel/fs: Move the scalar-region conversion to the generator.""</li>
|
||||
<li>cherry-ignore: Revert "gallium: remove PIPE_CAP_TEXTURE_SHADOW_MAP"</li>
|
||||
<li>bin/get-pick-list.sh: sha1 commits can be smaller than 8 chars</li>
|
||||
<li>cherry-ignore: nir/opt_large_constants: Handle store writemasks</li>
|
||||
<li>cherry-ignore: util: added missing headers in anon-file</li>
|
||||
<li>cherry-ignore: radv: Fix condition for skipping the continue CS.</li>
|
||||
<li>cherry-ignore: Revert "radv: disable viewport clamping even if FS doesn't write Z"</li>
|
||||
<li>Update version to 19.1.8</li>
|
||||
</ul>
|
||||
|
||||
<p>Ken Mays (1):</p>
|
||||
<ul>
|
||||
<li>haiku: fix Mesa build</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (4):</p>
|
||||
<ul>
|
||||
<li>iris: Initialize ice->state.prim_mode to an invalid value</li>
|
||||
<li>intel: Increase Gen11 compute shader scratch IDs to 64.</li>
|
||||
<li>iris: Disable CCS_E for 32-bit floating point textures.</li>
|
||||
<li>iris: Fix iris_rebind_buffer() for VBOs with non-zero offsets.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (5):</p>
|
||||
<ul>
|
||||
<li>anv: gem-stubs: return a valid fd got anv_gem_userptr()</li>
|
||||
<li>intel: use proper label for Comet Lake skus</li>
|
||||
<li>mesa: don't forget to clear _Layer field on texture unit</li>
|
||||
<li>intel: fix subslice computation from topology data</li>
|
||||
<li>intel/isl: Set null surface format to R32_UINT</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>gallium/vl: don't set PIPE_HANDLE_USAGE_EXPLICIT_FLUSH</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (1):</p>
|
||||
<ul>
|
||||
<li>util: Drop preprocessor guards for glibc-2.12</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix VAAPI segfault due to various bugs</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Zou (2):</p>
|
||||
<ul>
|
||||
<li>scons: add py3 support</li>
|
||||
<li>scons: For MinGW use -posix flag.</li>
|
||||
</ul>
|
||||
|
||||
<p>Paulo Zanoni (1):</p>
|
||||
<ul>
|
||||
<li>intel/fs: fix SHADER_OPCODE_CLUSTER_BROADCAST for SIMD32</li>
|
||||
</ul>
|
||||
|
||||
<p>Prodea Alexandru-Liviu (1):</p>
|
||||
<ul>
|
||||
<li>scons/MSYS2-MinGW-W64: Fix build options defaults Signed-off-by: Prodea Alexandru-Liviu <liviuprodea@yahoo.com> Reviewed-by: Jose Fonseca <jfonseca@vmware.com> Cc: <mesa-stable@lists.freedesktop.org></li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (2):</p>
|
||||
<ul>
|
||||
<li>radv: always emit a position export in gs copy shaders</li>
|
||||
<li>nir/opt_remove_phis: handle phis with no sources</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsálvez (1):</p>
|
||||
<ul>
|
||||
<li>intel/nir: do not apply the fsin and fcos trig workarounds for consts</li>
|
||||
</ul>
|
||||
|
||||
<p>Stephen Barber (1):</p>
|
||||
<ul>
|
||||
<li>nouveau: add idep_nir_headers as dep for libnouveau</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (3):</p>
|
||||
<ul>
|
||||
<li>iris: close screen fd on iris_destroy_screen</li>
|
||||
<li>egl: check for NULL value like eglGetSyncAttribKHR does</li>
|
||||
<li>util: fix os_create_anonymous_file on android</li>
|
||||
</ul>
|
||||
|
||||
<p>pal1000 (2):</p>
|
||||
<ul>
|
||||
<li>scons/windows: Support build with LLVM 9.</li>
|
||||
<li>scons: Fix MSYS2 Mingw-w64 build.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -14,7 +14,7 @@
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 19.2.0 Release Notes / 2019.09.25</h1>
|
||||
<h1>Mesa 19.2.0 Release Notes / TBD</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.2.0 is a new development release. People who are concerned
|
||||
@@ -37,7 +37,7 @@ depends on the particular driver being used.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
b060caa2a00f856431160ff7377d0e8f58f2aa48c16ee5a9e265ebdccb10852a mesa-19.2.0.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -66,6 +66,8 @@ depends on the particular driver being used.
|
||||
|
||||
<ul>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103674">Bug 103674</a> - u_queue.c:173:7: error: implicit declaration of function 'timespec_get' is invalid in C99</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104395">Bug 104395</a> - [CTS] GTF-GL46.gtf32.GL3Tests.packed_pixels.packed_pixels tests fail on 32bit Mesa</li>
|
||||
@@ -116,10 +118,13 @@ depends on the particular driver being used.
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=111734">Bug 111734</a> - Geometry shader with double interpolators fails in LLVM</li>
|
||||
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<p>Adam Jackson (1):</p>
|
||||
<ul>
|
||||
<li>docs: Update bug report URLs for the gitlab migration</li>
|
||||
@@ -439,6 +444,8 @@ depends on the particular driver being used.
|
||||
<li>travis: Fail build if any command in if statement fails.</li>
|
||||
</ul>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -36,7 +36,7 @@ depends on the particular driver being used.
|
||||
|
||||
<h2>SHA256 checksum</h2>
|
||||
<pre>
|
||||
7e4f0e2678bfcf3b94f533078b514f37943378a4a8604e477c888ec8a2904394 mesa-19.2.2.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -36,7 +36,7 @@ depends on the particular driver being used.
|
||||
|
||||
<h2>SHA256 checksum</h2>
|
||||
<pre>
|
||||
5ee6e42504fe41dcc9a6eba26982656a675b2550a640946f463927ed7f1c5047 mesa-19.2.3.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -36,7 +36,7 @@ depends on the particular driver being used.
|
||||
|
||||
<h2>SHA256 checksum</h2>
|
||||
<pre>
|
||||
9d7b24fa60c82db34788196450042a55ce6cb2d70c7a8d5c31401619b6907797 mesa-19.2.6.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -36,7 +36,7 @@ depends on the particular driver being used.
|
||||
|
||||
<h2>SHA256 checksum</h2>
|
||||
<pre>
|
||||
e3799fb7896fd9ed2f90f651fb907b95cdebfbd494968ff116e6bf1be143579e mesa-19.2.7.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -1,108 +0,0 @@
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 19.2.8 Release Notes / 2019-12-18</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.2.8 is a bug fix release which fixes bugs found since the 19.2.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.2.8 implements the OpenGL 4.5 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.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.2.8 implements the Vulkan 1.1 API, but the version reported by
|
||||
the apiVersion property of the VkPhysicalDeviceProperties struct
|
||||
depends on the particular driver being used.
|
||||
</p>
|
||||
|
||||
<h2>SHA256 checksum</h2>
|
||||
<pre>
|
||||
cffa8fa755c7422ce014c39ca0b770a092d9e0bbae537ceb2609c106916e5a57 mesa-19.2.8.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<ul>
|
||||
<li>None</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
<li>i965/iris: assert when destroy GL context with active query</li>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<p>Alyssa Rosenzweig (1):</p>
|
||||
<li> gallium/util: Support POLYGON in u_stream_outputs_for_vertices</li>
|
||||
<p></p>
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<li> amd/common: Always use addrlib for HTILE tc-compat.</li>
|
||||
<li> amd/common: Fix tcCompatible degradation on Stoney.</li>
|
||||
<p></p>
|
||||
<p>Dylan Baker (4):</p>
|
||||
<li> docs: Add SHA256 sums for 19.2.7</li>
|
||||
<li> meson/broadcom: libbroadcom_cle needs expat headers</li>
|
||||
<li> meson/broadcom: libbroadcom_cle also needs zlib</li>
|
||||
<li> cherry-ignore: Update for 19.2.8</li>
|
||||
<p></p>
|
||||
<p>Gert Wollny (1):</p>
|
||||
<li> virgl: Increase the shader transfer buffer by doubling the size</li>
|
||||
<p></p>
|
||||
<p>Iván Briano (1):</p>
|
||||
<li> anv: Export filter_minmax support only when it's really supported</li>
|
||||
<p></p>
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<li> anv: Re-emit all compute state on pipeline switch</li>
|
||||
<li> anv: Don't leak when set_tiling fails</li>
|
||||
<p></p>
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<li> iris: Default to X-tiling for scanout buffers without modifiers</li>
|
||||
<p></p>
|
||||
<p>Lionel Landwerlin (7):</p>
|
||||
<li> intel/perf: fix invalid hw_id in query results</li>
|
||||
<li> intel/perf: set read buffer len to 0 to identify empty buffer</li>
|
||||
<li> intel/perf: take into account that reports read can be fairly old</li>
|
||||
<li> intel/perf: simplify the processing of OA reports</li>
|
||||
<li> intel/perf: fix improper pointer access</li>
|
||||
<li> anv: fix fence underlying primitive checks</li>
|
||||
<li> mesa: avoid triggering assert in implementation</li>
|
||||
<p></p>
|
||||
<p>Nanley Chery (2):</p>
|
||||
<li> gallium/dri2: Fix creation of multi-planar modifier images</li>
|
||||
<li> gallium: Store the image format in winsys_handle</li>
|
||||
<p></p>
|
||||
<p>Rob Clark (1):</p>
|
||||
<li> nir/lower_clip: Fix incorrect driver loc for clipdist outputs</li>
|
||||
<p></p>
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<li> glsl/nir: iterate the system values list when adding varyings</li>
|
||||
<p></p>
|
||||
<p></p>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user