Compare commits
374 Commits
mesa-20.0.
...
19.2
Author | SHA1 | Date | |
---|---|---|---|
|
02fcd9d803 | ||
|
34896d2299 | ||
|
1743dec475 | ||
|
6979d19fcb | ||
|
f42f9bbcd6 | ||
|
4244f4af88 | ||
|
ed9c1f7f42 | ||
|
5d2d6442ff | ||
|
e8913e62a6 | ||
|
448b90a4a0 | ||
|
06b97d1e34 | ||
|
9925871a1a | ||
|
325ef15f26 | ||
|
5e100b6ba7 | ||
|
47c8b41f8f | ||
|
af0d38bfde | ||
|
f3507690f8 | ||
|
96b8f42611 | ||
|
0a70ed2aa3 | ||
|
3742910ba2 | ||
|
21a4be582c | ||
|
272c4f2711 | ||
|
d4bb049e98 | ||
|
21df9767ad | ||
|
82177cdc1d | ||
|
e5b4f23475 | ||
|
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,203 +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.65
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texturecube_bias
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_linear
|
||||
dEQP-GLES2.functional.texture.mipmap.cube.basic.linear_nearest
|
||||
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,50 +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.clipping.triangle_vertex.clip_three.clip_neg_x_neg_z_and_pos_x_pos_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES2.functional.default_vertex_attrib.*
|
||||
dEQP-GLES2.functional.fbo.completeness.size.distinct
|
||||
dEQP-GLES2.functional.negative_api.shader.uniform_matrixfv_invalid_transpose
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed
|
||||
dEQP-GLES2.functional.shaders.builtin_variable.frontfacing
|
||||
dEQP-GLES2.functional.shaders.random.exponential.fragment.94
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.55
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.1
|
||||
dEQP-GLES2.functional.shaders.random.trigonometric.fragment.69
|
||||
|
||||
# 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>
|
||||
|
13646
.pick_status.json
13646
.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
|
||||
|
25
Android.mk
25
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.
|
||||
@@ -43,7 +43,6 @@ MESA_DRI_LDFLAGS := -Wl,--build-id=sha1
|
||||
|
||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
|
||||
MESA_PYTHON2 := python
|
||||
MESA_PYTHON3 := python3
|
||||
|
||||
# Lists to convert driver names to boolean variables
|
||||
# in form of <driver name>.<boolean make variable>
|
||||
@@ -62,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)))
|
||||
@@ -85,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
|
||||
|
51
bin/.cherry-ignore
Normal file
51
bin/.cherry-ignore
Normal file
@@ -0,0 +1,51 @@
|
||||
# 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
|
||||
937b9055698be0dfdb7d2e0673a989e2ecc05912
|
||||
21376cffb37018160ad3eef38b5a640ba1675a4f
|
||||
|
||||
# This is reverted shortly after it was landed
|
||||
4432a2d14d80081d062f7939a950d65ea3a16eed
|
||||
|
||||
# These aren't relevant for 19.2
|
||||
1a05811936dd8d0c3a367c6f00629624ef39d537
|
||||
911a8261419f48dcd756f78832fa5a5f4c5b8d93
|
||||
|
||||
# This was manually backported
|
||||
2afeed301010917c4eae55dcd2544f9d329df934
|
||||
4b392ced2d744fccffe95490ff57e6b41033c266
|
||||
|
||||
# This is not being backported to 19.2 due to causing build regressions for
|
||||
# downstream projects
|
||||
eaf43966027cf9654e91ca57aecc8f5a65b58f49
|
||||
|
||||
# Invalid sha warnings
|
||||
023282a4f667695ea1dbbe9fbe1cd3a9d550a426
|
||||
2fca325ea65f068043d4c18c9cd0fe7f25bde8f7
|
||||
7564c5fc6d79a2ddec49a19f67183fb3be799fe5
|
@@ -35,8 +35,8 @@ from mako.template import Template
|
||||
from mako import exceptions
|
||||
|
||||
|
||||
CURRENT_GL_VERSION = '4.6'
|
||||
CURRENT_VK_VERSION = '1.2'
|
||||
CURRENT_GL_VERSION = '4.5'
|
||||
CURRENT_VK_VERSION = '1.1'
|
||||
|
||||
TEMPLATE = Template(textwrap.dedent("""\
|
||||
<%!
|
||||
@@ -64,7 +64,7 @@ TEMPLATE = Template(textwrap.dedent("""\
|
||||
%if not bugfix:
|
||||
Mesa ${next_version} is a new development release. People who are concerned
|
||||
with stability and reliability should stick with a previous release or
|
||||
wait for Mesa ${next_version[:-1]}1.
|
||||
wait for Mesa ${version[:-1]}1.
|
||||
%else:
|
||||
Mesa ${next_version} is a bug fix release which fixes bugs found since the ${version} release.
|
||||
%endif
|
||||
@@ -125,7 +125,7 @@ TEMPLATE = Template(textwrap.dedent("""\
|
||||
|
||||
async def gather_commits(version: str) -> str:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'log', '--oneline', f'mesa-{version}..', '--grep', r'Closes: \(https\|#\).*',
|
||||
'git', 'log', f'mesa-{version}..', '--grep', r'Closes: \(https\|#\).*',
|
||||
stdout=asyncio.subprocess.PIPE)
|
||||
out, _ = await p.communicate()
|
||||
assert p.returncode == 0, f"git log didn't work: {version}"
|
||||
|
@@ -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>
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,94 +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.3.1 Release Notes / 2019-12-18</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.3.1 is a bug fix release which fixes bugs found since the 19.3.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.3.1 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.3.1 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>
|
||||
cd951db69c56a97ff0570a7ab2c0e39e6c5323f4cd8f4eb8274723e033beae59 mesa-19.3.1.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>
|
||||
<li>Visuals without alpha bits are not sRGB-capable</li>
|
||||
<li>radv secure compile feature breaks compilation of RADV on armhf EABI (19.3-rc1)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<li> amd/common: Fix tcCompatible degradation on Stoney.</li>
|
||||
<li> amd/common: Always use addrlib for HTILE tc-compat.</li>
|
||||
<p></p>
|
||||
<p>Dylan Baker (3):</p>
|
||||
<li> docs/19.3.0: Add SHA256 sums</li>
|
||||
<li> cherry-ignore: update for the 19.3.1 cycle</li>
|
||||
<li> docs: remove new_features.txt from stable branch</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>Kenneth Graunke (1):</p>
|
||||
<li> iris: Default to X-tiling for scanout buffers without modifiers</li>
|
||||
<p></p>
|
||||
<p>Lionel Landwerlin (2):</p>
|
||||
<li> anv: fix fence underlying primitive checks</li>
|
||||
<li> mesa: avoid triggering assert in implementation</li>
|
||||
<p></p>
|
||||
<p>Luis Mendes (1):</p>
|
||||
<li> radv: fix radv secure compile feature breaks compilation on armhf EABI and aarch64</li>
|
||||
<p></p>
|
||||
<p>Tapani Pälli (2):</p>
|
||||
<li> dri: add __DRI_IMAGE_FORMAT_SXRGB8</li>
|
||||
<li> i965: expose MESA_FORMAT_B8G8R8X8_SRGB visual</li>
|
||||
<p></p>
|
||||
<p></p>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,138 +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.3.2 Release Notes / 2020-01-09</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.3.2 is a bug fix release which fixes bugs found since the 19.3.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.3.2 implements the OpenGL 4.6 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.6. OpenGL
|
||||
4.6 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.3.2 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>
|
||||
4e3aee324616352bbc7f58d47ab573e10f68cc7719fd045bd6d3abcdd97ee1c1 mesa-19.3.2.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<ul>
|
||||
<li>None</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
<li>Rise of the Tomb Raider benchmark crash on Dell XPS 7390 2-in-1 w/ Iris Plus Graphics (Ice Lake 8x8 GT2)</li>
|
||||
<li>Raven Ridge (2400G): Resident Evil 2 crashes my machine</li>
|
||||
<li>Rocket League ingame artifacts</li>
|
||||
<li>[radv] SteamVR direct mode no longer works</li>
|
||||
<li>[RADV] [Navi] LOD artifacting in Halo - The Master Chief Collection (Halo Reach)</li>
|
||||
<li>[ANV] unused create parameters not properly ignored</li>
|
||||
<li>Blocky corruption in The Surge 2</li>
|
||||
<li>radeonsi: Floating point exception on R9 270 gpu for a set of traces</li>
|
||||
<li>[CTS] dEQP-VK.api.image_clearing.core.clear_color_image.2d.linear.single_layer.r32g32b32_* fail on GFX6-GFX8</li>
|
||||
<li>Vulkan: Please consider adding another sample count to sampledImageIntegerSampleCounts</li>
|
||||
<li>Navi10: Bitrate based encoding with VAAPI/RadeonSI unusable</li>
|
||||
<li>[GFX10] Glitch rendering Custom Avatars in Beat Saber</li>
|
||||
<li>intel/fs: Check for 16-bit immediates in fs_visitor::lower_mul_dword_inst is too strict</li>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<p>Andrii Simiklit (3):</p>
|
||||
<li> glsl: fix an incorrect max_array_access after optimization of ssbo/ubo</li>
|
||||
<li> glsl: fix a binding points assignment for ssbo/ubo arrays</li>
|
||||
<li> glsl/nir: do not change an element index to have correct block name</li>
|
||||
<p></p>
|
||||
<p>Bas Nieuwenhuizen (7):</p>
|
||||
<li> radv: Limit workgroup size to 1024.</li>
|
||||
<li> radv: Expose all sample counts for integer formats as well.</li>
|
||||
<li> amd/common: Handle alignment of 96-bit formats.</li>
|
||||
<li> nir: Add clone/hash/serialize support for non-uniform tex instructions.</li>
|
||||
<li> spirv: Fix glsl type assert in spir2nir.</li>
|
||||
<li> radv: Only use the gfx mipmap level offset/pitch for linear textures.</li>
|
||||
<li> radv: Emit a BATCH_BREAK when changing pixel shaders or CB_TARGET_MASK.</li>
|
||||
<p></p>
|
||||
<p>Caio Marcelo de Oliveira Filho (4):</p>
|
||||
<li> intel/fs: Lower 64-bit MOVs after lower_load_payload()</li>
|
||||
<li> intel/fs: Fix lowering of dword multiplication by 16-bit constant</li>
|
||||
<li> intel/vec4: Fix lowering of multiplication by 16-bit constant</li>
|
||||
<li> anv: Ignore some CreateInfo structs when rasterization is disabled</li>
|
||||
<p></p>
|
||||
<p>Christian Gmeiner (1):</p>
|
||||
<li> etnaviv: update resource status after flushing</li>
|
||||
<p></p>
|
||||
<p>Dylan Baker (2):</p>
|
||||
<li> dcos: add releanse notes for 19.3.1</li>
|
||||
<li> cherry-ignore: update for 19.3.2</li>
|
||||
<p></p>
|
||||
<p>Eric Engestrom (4):</p>
|
||||
<li> util/format: remove left-over util_format_description_table declaration</li>
|
||||
<li> amd: fix empty-body issues</li>
|
||||
<li> nine: fix empty-body-issues</li>
|
||||
<li> mesa: avoid returning a value in a void function</li>
|
||||
<p></p>
|
||||
<p>Gert Wollny (1):</p>
|
||||
<li> r600: Fix maximum line width</li>
|
||||
<p></p>
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<li> anv: Properly advertise sampledImageIntegerSampleCounts</li>
|
||||
<li> intel/nir: Add a memory barrier before barrier()</li>
|
||||
<p></p>
|
||||
<p>Lionel Landwerlin (2):</p>
|
||||
<li> loader: fix close on uninitialized file descriptor value</li>
|
||||
<li> anv: don't close invalid syncfd semaphore</li>
|
||||
<p></p>
|
||||
<p>Marek Olšák (2):</p>
|
||||
<li> winsys/radeon: initialize pte_fragment_size</li>
|
||||
<li> radeonsi: disable SDMA on gfx8 to fix corruption on RX 580</li>
|
||||
<p></p>
|
||||
<p>Pierre-Eric Pelloux-Prayer (2):</p>
|
||||
<li> radeon/vcn2: enable rate control for hevc encoding</li>
|
||||
<li> radeonsi: check ctx->sdma_cs before using it</li>
|
||||
<p></p>
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<li> radv/gfx10: fix the out-of-bounds check for vertex descriptors</li>
|
||||
<li> radv: return the correct pitch for linear mipmaps on GFX10</li>
|
||||
<p></p>
|
||||
<p>Timur Kristóf (1):</p>
|
||||
<li> aco: Fix uniform i2i64.</li>
|
||||
<p></p>
|
||||
<p>Yevhenii Kolesnikov (2):</p>
|
||||
<li> meta: Cleanup function for DrawTex</li>
|
||||
<li> main: allow external textures for BindImageTexture</li>
|
||||
<p></p>
|
||||
<p></p>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user