Compare commits
426 Commits
mesa-19.3.
...
19.1
Author | SHA1 | Date | |
---|---|---|---|
|
cc88eeb6ff | ||
|
5c6d266c59 | ||
|
6cffdfd192 | ||
|
dfcde49122 | ||
|
9c100e31a2 | ||
|
2fd001f21e | ||
|
13120904e4 | ||
|
740b0e9dc7 | ||
|
9eaa6998cc | ||
|
e56b3afd2d | ||
|
d169d0df0e | ||
|
3d763e801c | ||
|
9b75c1eaef | ||
|
7e3d942403 | ||
|
142e51da08 | ||
|
844c594837 | ||
|
9fc609585d | ||
|
ab1ae12790 | ||
|
9bc34d54db | ||
|
f7338bfe1f | ||
|
2d584d7386 | ||
|
2739dd9621 | ||
|
e53ca66c4a | ||
|
7c0ce1b35e | ||
|
09ba783aea | ||
|
70ef5d63f7 | ||
|
f041840367 | ||
|
4a50b8add1 | ||
|
b30a0afc0c | ||
|
8118131f37 | ||
|
950d167026 | ||
|
e37019723f | ||
|
450b808eea | ||
|
3b927c447f | ||
|
52dc974cd1 | ||
|
26ab4e1614 | ||
|
e5e81d6530 | ||
|
b13396622c | ||
|
bb22ac12d6 | ||
|
2963e9fa3d | ||
|
a74657d4aa | ||
|
3a0b77e3f7 | ||
|
ef35babd33 | ||
|
954ace9e3e | ||
|
4f48aaf50a | ||
|
d34ae3876a | ||
|
895f0a2ca2 | ||
|
9ee9251ef8 | ||
|
b977c7444c | ||
|
c94e5e3ee1 | ||
|
c140c260c1 | ||
|
34ee0eb6cc | ||
|
db6974fa2a | ||
|
9e754647ba | ||
|
0b8c7cf51c | ||
|
7e6dd1ce7a | ||
|
1ee0add2a5 | ||
|
3b0e591228 | ||
|
5936c8f4f4 | ||
|
8748747007 | ||
|
ac31da3529 | ||
|
97af29d6da | ||
|
81a4483465 | ||
|
00651091fa | ||
|
d11d2c6def | ||
|
44c38ecd27 | ||
|
3859e211db | ||
|
4d45999a24 | ||
|
b9d7244035 | ||
|
f632aac938 | ||
|
952502893a | ||
|
2959de1f92 | ||
|
30689e7da8 | ||
|
9556c5b1a2 | ||
|
83dadcfdc6 | ||
|
1f7629a760 | ||
|
5b85ecce0b | ||
|
c34a479cc3 | ||
|
51fc954c90 | ||
|
b4fd0bae5c | ||
|
05beca4dcf | ||
|
d77aa3cc1c | ||
|
ff8122d5a2 | ||
|
18005d8fd3 | ||
|
01d452de58 | ||
|
431f5a8a78 | ||
|
89d1ca343f | ||
|
a150bb7e03 | ||
|
4d5bcb4c33 | ||
|
2977a3e0e1 | ||
|
82edaa5a41 | ||
|
667920050a | ||
|
48f78dfce2 | ||
|
d74ccd46fa | ||
|
35d435235a | ||
|
29159cbf21 | ||
|
6a5c36715a | ||
|
3bd87314e2 | ||
|
5fcb149a46 | ||
|
524373ba99 | ||
|
4115781efa | ||
|
d16ab58f50 | ||
|
4ec2325dd0 | ||
|
85c8f88a49 | ||
|
d45f8ff429 | ||
|
52aea45dbc | ||
|
938adab8ea | ||
|
759afcacd9 | ||
|
48a671e269 | ||
|
6138702dec | ||
|
68bd0c7b9d | ||
|
915a272b5a | ||
|
e4df7ffc23 | ||
|
955c54cea0 | ||
|
c1959aa26d | ||
|
fc8e419619 | ||
|
1c9c540b2a | ||
|
5369eedf37 | ||
|
4d3dc92628 | ||
|
4f4a38289b | ||
|
8ad62264d1 | ||
|
c5a3f783d2 | ||
|
fb69feb0b5 | ||
|
61fb6bca53 | ||
|
ac0f71a4af | ||
|
41e8b0d027 | ||
|
ae2a676cd1 | ||
|
a384fe0ceb | ||
|
6c37279d09 | ||
|
9862fc4941 | ||
|
9c9b92c69a | ||
|
a8105085e9 | ||
|
3627595e3d | ||
|
c4ab0e18bb | ||
|
908d85ffce | ||
|
a9cbcf09be | ||
|
2f7b1159bd | ||
|
d38952ef0d | ||
|
945a217e94 | ||
|
f837d0a6a3 | ||
|
f0aa11b054 | ||
|
3a7d0d760f | ||
|
84e3025387 | ||
|
f70c6dda43 | ||
|
c9d9ad2e9f | ||
|
7fcb69a33c | ||
|
b84ffa028d | ||
|
53cc3e8f7e | ||
|
83815a97d5 | ||
|
59cb919ff2 | ||
|
8f3935b1ac | ||
|
b4f52b1567 | ||
|
a42361cdb2 | ||
|
f522c7ca9e | ||
|
ac7f03caed | ||
|
b1d66aa9ee | ||
|
d06ccdf9dd | ||
|
ad72ce1ad7 | ||
|
23eebaf2ec | ||
|
3ec136d583 | ||
|
8fbadb152c | ||
|
b1df082b00 | ||
|
66ee5bd082 | ||
|
7364cb04c5 | ||
|
83d17d5730 | ||
|
0801a8b906 | ||
|
e1fdca7492 | ||
|
57fc7a23e1 | ||
|
630a2e4d97 | ||
|
5f640b4692 | ||
|
645462fe85 | ||
|
e671e68238 | ||
|
b521c3c0c8 | ||
|
5c7cffe1d4 | ||
|
e2568bc6e4 | ||
|
7470b25b2b | ||
|
c45c624dce | ||
|
2098b48fa0 | ||
|
eb24e60cdc | ||
|
204a36f270 | ||
|
2329b87ff4 | ||
|
742f348d32 | ||
|
327a6b3a64 | ||
|
4bb56fdd46 | ||
|
61117d653e | ||
|
97cfb89b73 | ||
|
d4a64ad09b | ||
|
e9a284e8d0 | ||
|
dccd75b60c | ||
|
aff5714c65 | ||
|
9305d9b142 | ||
|
2570ee28f5 | ||
|
f8c0b90f99 | ||
|
43f62d2003 | ||
|
be12174820 | ||
|
3cd11985c0 | ||
|
87efbe488e | ||
|
e1800b20f4 | ||
|
33e57d0ace | ||
|
09a1b2bdba | ||
|
58e93aef96 | ||
|
f17ff71f49 | ||
|
d86b14ecbb | ||
|
900bcab48b | ||
|
0b1ee72bbc | ||
|
3dea2e2ffc | ||
|
1527d02acb | ||
|
d578b42e34 | ||
|
a612f0210a | ||
|
7a072f1f39 | ||
|
b685e303f7 | ||
|
b9b376b821 | ||
|
fde2473a06 | ||
|
b43e2d5a12 | ||
|
cffebf6f57 | ||
|
3a27a5b989 | ||
|
43682f0c6f | ||
|
6ba4ce97b7 | ||
|
f24507425b | ||
|
cad015acb5 | ||
|
2c1e3692b8 | ||
|
fa9ba5e19e | ||
|
6df891afa6 | ||
|
17dc693590 | ||
|
14a2fba722 | ||
|
e4b7aa9e74 | ||
|
24e7db0a36 | ||
|
28aec04659 | ||
|
0b540a702a | ||
|
afaec581a8 | ||
|
f5e70045e1 | ||
|
d76ab7d9fb | ||
|
8bc7397e02 | ||
|
83c4597f19 | ||
|
1e3b877903 | ||
|
87fc035c53 | ||
|
47d6b60127 | ||
|
fb2c5dd98f | ||
|
f6c032c615 | ||
|
e9e63bfba8 | ||
|
84f76533e4 | ||
|
e0d44fd4fe | ||
|
5666f3b891 | ||
|
e42399f4de | ||
|
fe1f7b538b | ||
|
eea0045458 | ||
|
77598ddfac | ||
|
50c3dcd2f8 | ||
|
202eb29e55 | ||
|
95cfcc3b43 | ||
|
cb3072488c | ||
|
3d0e6d3cff | ||
|
6dca27fce6 | ||
|
334f0d3ead | ||
|
515f4b2f20 | ||
|
05af010f77 | ||
|
5cfbe55184 | ||
|
d14939925e | ||
|
38dab50ec8 | ||
|
16ba6fecb2 | ||
|
1bcdc5b4a6 | ||
|
e17b17c2f5 | ||
|
ac3c9a4195 | ||
|
22b21623f3 | ||
|
f6c959afaa | ||
|
adbf808e0c | ||
|
d6b1b9158e | ||
|
211bedcf4d | ||
|
eef57b818b | ||
|
97b43a8160 | ||
|
421aa4d162 | ||
|
a0a6df95b4 | ||
|
6fbe0eea26 | ||
|
3e1c46f233 | ||
|
77962816a5 | ||
|
970cc023b0 | ||
|
2e83a64f64 | ||
|
f59881898f | ||
|
9171d2f19e | ||
|
e9660d3c3f | ||
|
0741463bb4 | ||
|
d54dc24d6d | ||
|
22eddd8b9d | ||
|
118c300536 | ||
|
ebd90fc7e0 | ||
|
25a34df614 | ||
|
c36e4bd7fa | ||
|
14d7fc09cc | ||
|
927ca86698 | ||
|
867223cee1 | ||
|
a5154fa69c | ||
|
3fdf2b9645 | ||
|
15f6bb5c6c | ||
|
72eb587b97 | ||
|
4de4c18841 | ||
|
47f1f4f9e5 | ||
|
db4850c631 | ||
|
1702733645 | ||
|
6f18adff0a | ||
|
eb1e6e6412 | ||
|
0f8193cb18 | ||
|
efc5518410 | ||
|
80965709d0 | ||
|
746025fd63 | ||
|
a48ef364e1 | ||
|
be69033241 | ||
|
582b691062 | ||
|
7e0b89caa9 | ||
|
90291b5db1 | ||
|
94e2228496 | ||
|
5eccd8fa5a | ||
|
2a5b4e2b9f | ||
|
1517811f4f | ||
|
0d2ea312b7 | ||
|
49c17e845a | ||
|
d058124201 | ||
|
d4797ff15e | ||
|
eb532d1ae7 | ||
|
a7a2d403fd | ||
|
84bd361217 | ||
|
c025240f6c | ||
|
3301eeee51 | ||
|
9f71165a1b | ||
|
7ca66dc06b | ||
|
6f44b7ebb0 | ||
|
28b72f5187 | ||
|
147d6693be | ||
|
1f40ef24cc | ||
|
90623adb16 | ||
|
971eeb93e6 | ||
|
a5c864f6f8 | ||
|
626ea69627 | ||
|
9d8f104f39 | ||
|
2a45ddd42d | ||
|
96fbd54398 | ||
|
60688cc393 | ||
|
38927a35a6 | ||
|
cf6472e780 | ||
|
5394f1578c | ||
|
51998d720b | ||
|
8773e20238 | ||
|
4524f09cc0 | ||
|
3fce389c8b | ||
|
a37f10af7b | ||
|
90d045f993 | ||
|
b2c5c16668 | ||
|
fecdcce09c | ||
|
a13bda4957 | ||
|
c2a945771c | ||
|
92f4a16af8 | ||
|
a19270007c | ||
|
4c7dfaba9c | ||
|
411114c45c | ||
|
dd9635c1d2 | ||
|
0dcba748f9 | ||
|
fe7c45b97e | ||
|
16eac8f754 | ||
|
4b3c805b88 | ||
|
87ac0bd86a | ||
|
74c5367612 | ||
|
95ffe6323e | ||
|
03fd344776 | ||
|
9037cf26bb | ||
|
b02c6e8ee7 | ||
|
e13c13f54c | ||
|
60d524fd39 | ||
|
ce2d68aace | ||
|
c1d83ae9fb | ||
|
1dd62eb6e2 | ||
|
ab75e1e289 | ||
|
2153c3ae8e | ||
|
04e9d7bf8f | ||
|
857210b0dd | ||
|
6bac1a041d | ||
|
2040f10cb0 | ||
|
260f517d54 | ||
|
b6778c9f52 | ||
|
5d05324e65 | ||
|
8dbdeb27f3 | ||
|
dab3945ff3 | ||
|
d08fde8e7a | ||
|
f69eb770cd | ||
|
5bed00cf0f | ||
|
b551be82a7 | ||
|
7fa89fd959 | ||
|
5fcfcdb162 | ||
|
d70d8b2ffa | ||
|
558a067d17 | ||
|
51354d2bf5 | ||
|
06bf5428cf | ||
|
75ea0eeed1 | ||
|
8cf49e1662 | ||
|
c03d9a7fa9 | ||
|
9b51dcf1e2 | ||
|
914ac06e32 | ||
|
e2654c2379 | ||
|
bb845df961 | ||
|
f7c0ca6d38 | ||
|
38fdfdaff1 | ||
|
87722e0c42 | ||
|
f0e147bd47 | ||
|
1fc65774e9 | ||
|
349153f097 | ||
|
f8ec40e28b | ||
|
5e75803339 | ||
|
f1ab22209e | ||
|
e0c082d6eb | ||
|
a97f44ac1f | ||
|
5d7d13d227 | ||
|
4a7b0cc5e4 | ||
|
d95797de61 | ||
|
424b60dc70 | ||
|
9d610c1cc3 | ||
|
f770e81ba7 | ||
|
faa7daa55e | ||
|
fd27561c9d | ||
|
5d72a334e8 | ||
|
825ca9e42e | ||
|
67f2be0fbf | ||
|
05faf6eb56 | ||
|
3495bdca13 | ||
|
f93e1f92c4 | ||
|
8c0b80e08a | ||
|
070d763d5d | ||
|
ed0d4eaa4c | ||
|
6e52daa18c |
@@ -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==1.0.7 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')
|
@@ -35,6 +35,6 @@ indent_size = 2
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[{meson.build,meson_options.txt}]
|
||||
[meson.build,meson_options.txt]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
*.dsp -crlf
|
||||
*.dsw -crlf
|
||||
*.sln -crlf
|
||||
*.vcproj -crlf
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,2 @@
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.out
|
||||
build
|
||||
|
544
.gitlab-ci.yml
544
.gitlab-ci.yml
@@ -1,5 +1,5 @@
|
||||
# This is the tag of the docker image used for the build jobs. If the
|
||||
# image doesn't exist yet, the containers stage generates it.
|
||||
# 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
|
||||
@@ -12,134 +12,60 @@
|
||||
# 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.
|
||||
#
|
||||
# The format of the tag is "%Y-%m-%d-${counter}" where ${counter} stays
|
||||
# at "01" unless you have multiple updates on the same day :)
|
||||
variables:
|
||||
UPSTREAM_REPO: mesa/mesa
|
||||
DEBIAN_TAG: "2019-10-29"
|
||||
DEBIAN_ARM64_TAG: "arm64v8-2019-10-23"
|
||||
STRETCH_TAG: "2019-09-18"
|
||||
DEBIAN_VERSION: buster-slim
|
||||
STRETCH_VERSION: stretch-slim
|
||||
DEBIAN_TAG: "2019-05-01"
|
||||
DEBIAN_VERSION: stretch-slim
|
||||
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
|
||||
DEBIAN_ARM64_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_ARM64_TAG"
|
||||
STRETCH_IMAGE: "$CI_REGISTRY_IMAGE/debian/$STRETCH_VERSION:$STRETCH_TAG"
|
||||
|
||||
include:
|
||||
- project: 'wayland/ci-templates'
|
||||
ref: 1f7f57c64ff4ebbf7292e3b7a13600518b8cb24c
|
||||
ref: c73dae8b84697ef18e2dbbf4fed7386d9652b0cd
|
||||
file: '/templates/debian.yml'
|
||||
|
||||
include:
|
||||
- local: '.gitlab-ci/lava-gitlab-ci.yml'
|
||||
|
||||
stages:
|
||||
- container
|
||||
- build
|
||||
- test
|
||||
- containers-build
|
||||
- build+test
|
||||
|
||||
|
||||
# When to automatically run the CI
|
||||
.ci-run-policy:
|
||||
.ci-run-policy: &ci-run-policy
|
||||
only:
|
||||
refs:
|
||||
- branches@mesa/mesa
|
||||
- merge_requests
|
||||
- /^ci([-/].*)?$/
|
||||
changes:
|
||||
- VERSION
|
||||
- bin/**/*
|
||||
# GitLab CI
|
||||
- .gitlab-ci.yml
|
||||
- .gitlab-ci/**/*
|
||||
# Meson
|
||||
- meson*
|
||||
- build-support/**/*
|
||||
- subprojects/**/*
|
||||
# SCons
|
||||
- SConstruct
|
||||
- scons/**/*
|
||||
- common.py
|
||||
# Source code
|
||||
- include/**/*
|
||||
- src/**/*
|
||||
- branches@mesa/mesa
|
||||
- merge_requests
|
||||
- /^ci([-/].*)?$/
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
|
||||
.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 normal CI native and cross-build docker images.
|
||||
# CONTAINERS
|
||||
|
||||
.container:
|
||||
stage: container
|
||||
extends:
|
||||
- .ci-run-policy
|
||||
variables:
|
||||
# no need to pull the whole repo to build the container image
|
||||
GIT_STRATEGY: none
|
||||
|
||||
debian-10:amd64:
|
||||
extends:
|
||||
- .debian@container-ifnot-exists
|
||||
- .container
|
||||
debian:
|
||||
extends: .debian@container-ifnot-exists
|
||||
stage: containers-build
|
||||
<<: *ci-run-policy
|
||||
variables:
|
||||
GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
|
||||
|
||||
.use-debian-10:amd64:
|
||||
image: $DEBIAN_IMAGE
|
||||
needs:
|
||||
- debian-10:amd64
|
||||
|
||||
debian-9:amd64:
|
||||
extends: debian-10:amd64
|
||||
variables:
|
||||
DEBIAN_TAG: $STRETCH_TAG
|
||||
DEBIAN_VERSION: $STRETCH_VERSION
|
||||
DEBIAN_IMAGE: $STRETCH_IMAGE
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/debian-stretch-install.sh'
|
||||
|
||||
.use-debian-9:amd64:
|
||||
image: $STRETCH_IMAGE
|
||||
needs:
|
||||
- debian-9:amd64
|
||||
|
||||
debian-10:arm64:
|
||||
extends:
|
||||
- .debian@container-ifnot-exists@arm64v8
|
||||
- .container
|
||||
variables:
|
||||
DEBIAN_TAG: "$DEBIAN_ARM64_TAG"
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/debian-arm64-install.sh'
|
||||
|
||||
|
||||
# BUILD
|
||||
|
||||
# Shared between windows and Linux
|
||||
.build-common:
|
||||
extends: .ci-run-policy
|
||||
stage: build
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- _build/meson-logs/*.txt
|
||||
# scons:
|
||||
- build/*/config.log
|
||||
- shader-db
|
||||
|
||||
# Just Linux
|
||||
.build-linux:
|
||||
extends: .build-common
|
||||
.build:
|
||||
<<: *ci-run-policy
|
||||
image: $DEBIAN_IMAGE
|
||||
stage: build+test
|
||||
cache:
|
||||
key: ${CI_JOB_NAME}
|
||||
paths:
|
||||
- ccache
|
||||
artifacts:
|
||||
when: on_failure
|
||||
untracked: true
|
||||
variables:
|
||||
CCACHE_COMPILERCHECK: "content"
|
||||
# Use ccache transparently, and print stats before/after
|
||||
@@ -147,126 +73,62 @@ debian-10:arm64:
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- export CCACHE_BASEDIR="$PWD"
|
||||
- export CCACHE_DIR="$PWD/ccache"
|
||||
- ccache --max-size=1500M
|
||||
- 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-debian-10:amd64
|
||||
extends: .build
|
||||
script:
|
||||
- .gitlab-ci/meson-build.sh
|
||||
# We need to control the version of llvm-config we're using, so we'll
|
||||
# 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;
|
||||
$LLVM_CONFIG --version;
|
||||
else
|
||||
touch native.file;
|
||||
fi
|
||||
- meson --version
|
||||
- meson _build
|
||||
--native-file=native.file
|
||||
-D buildtype=debug
|
||||
-D build-tests=true
|
||||
-D libunwind=${UNWIND}
|
||||
${DRI_LOADERS}
|
||||
-D dri-drivers=${DRI_DRIVERS:-[]}
|
||||
${GALLIUM_ST}
|
||||
-D gallium-drivers=${GALLIUM_DRIVERS:-[]}
|
||||
-D vulkan-drivers=${VULKAN_DRIVERS:-[]}
|
||||
-D I-love-half-baked-turnips=true
|
||||
- cd _build
|
||||
- meson configure
|
||||
- ninja -j4
|
||||
- LC_ALL=C.UTF-8 ninja test
|
||||
|
||||
.scons-build:
|
||||
extends:
|
||||
- .build-linux
|
||||
- .use-debian-10:amd64
|
||||
extends: .build
|
||||
variables:
|
||||
SCONSFLAGS: "-j4"
|
||||
script:
|
||||
- .gitlab-ci/scons-build.sh
|
||||
|
||||
meson-main:
|
||||
extends:
|
||||
- .meson-build
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glx=dri
|
||||
-D gbm=true
|
||||
-D egl=true
|
||||
-D platforms=x11,wayland,drm,surfaceless
|
||||
DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
|
||||
GALLIUM_ST: >
|
||||
-D dri3=true
|
||||
-D gallium-extra-hud=true
|
||||
-D gallium-vdpau=true
|
||||
-D gallium-xvmc=true
|
||||
-D gallium-omx=bellagio
|
||||
-D gallium-va=true
|
||||
-D gallium-xa=true
|
||||
-D gallium-nine=true
|
||||
-D gallium-opencl=disabled
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
|
||||
LLVM_VERSION: "7"
|
||||
EXTRA_OPTION: >
|
||||
-D osmesa=gallium
|
||||
-D tools=all
|
||||
MESON_SHADERDB: "true"
|
||||
BUILDTYPE: "debugoptimized"
|
||||
|
||||
.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
|
||||
image: $DEBIAN_ARM64_IMAGE
|
||||
variables:
|
||||
VULKAN_DRIVERS: freedreno
|
||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
|
||||
EXTRA_OPTION: >
|
||||
-D I-love-half-baked-turnips=true
|
||||
needs:
|
||||
- debian-10:arm64
|
||||
tags:
|
||||
- aarch64
|
||||
|
||||
meson-armhf:
|
||||
extends: .meson-arm
|
||||
variables:
|
||||
CROSS: armhf
|
||||
LLVM_VERSION: "7"
|
||||
|
||||
meson-arm64:
|
||||
extends:
|
||||
- .meson-arm
|
||||
- .ci-deqp-artifacts
|
||||
variables:
|
||||
BUILDTYPE: "debugoptimized"
|
||||
- if test -n "$LLVM_VERSION"; then
|
||||
export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
|
||||
fi
|
||||
- scons $SCONS_TARGET
|
||||
- eval $SCONS_CHECK_COMMAND
|
||||
|
||||
# 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.
|
||||
# We also put softpipe (and therefore gallium nine, which requires
|
||||
# it) here, since softpipe/llvmpipe can't be built alongside classic
|
||||
# swrast.
|
||||
#
|
||||
# Putting glvnd here is arbitrary, but we want it in one of the builds
|
||||
# for coverage.
|
||||
meson-swr-glvnd:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
@@ -281,9 +143,10 @@ meson-swr-glvnd:
|
||||
-D gallium-omx=disabled
|
||||
-D gallium-va=false
|
||||
-D gallium-xa=false
|
||||
-D gallium-nine=false
|
||||
-D gallium-nine=true
|
||||
-D gallium-opencl=disabled
|
||||
GALLIUM_DRIVERS: "swr,iris"
|
||||
-D osmesa=gallium
|
||||
GALLIUM_DRIVERS: "swr,swrast,iris"
|
||||
LLVM_VERSION: "6.0"
|
||||
|
||||
meson-clang:
|
||||
@@ -295,70 +158,11 @@ meson-clang:
|
||||
VULKAN_DRIVERS: intel,amd,freedreno
|
||||
CC: "ccache clang-8"
|
||||
CXX: "ccache clang++-8"
|
||||
|
||||
.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"
|
||||
|
||||
meson-clover:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D egl=false
|
||||
-D gbm=false
|
||||
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 gallium-opencl=icd
|
||||
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-debian-9:amd64
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D egl=false
|
||||
-D gbm=false
|
||||
-D platforms=drm,surfaceless
|
||||
GALLIUM_DRIVERS: "i915,r600"
|
||||
script:
|
||||
- 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
|
||||
- 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
|
||||
|
||||
meson-vulkan:
|
||||
extends: .meson-build
|
||||
@@ -379,154 +183,82 @@ 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: "8"
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-overlay-layer=true
|
||||
LLVM_VERSION: "7"
|
||||
|
||||
# While the main point of this build is testing the i386 cross build,
|
||||
# we also use this one to test some other options that are exclusive
|
||||
# with meson-main's choices (classic swrast and osmesa)
|
||||
meson-i386:
|
||||
extends: .meson-cross
|
||||
variables:
|
||||
CROSS: i386
|
||||
VULKAN_DRIVERS: intel
|
||||
DRI_DRIVERS: "swrast"
|
||||
GALLIUM_DRIVERS: "iris"
|
||||
EXTRA_OPTION: >
|
||||
-D vulkan-overlay-layer=true
|
||||
-D llvm=false
|
||||
-D osmesa=classic
|
||||
|
||||
meson-mingw32-x86_64:
|
||||
meson-main:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "false"
|
||||
DRI_DRIVERS: ""
|
||||
GALLIUM_DRIVERS: "swrast"
|
||||
EXTRA_OPTION: >
|
||||
-Dllvm=false
|
||||
-Dosmesa=gallium
|
||||
--cross-file=.gitlab-ci/x86_64-w64-mingw32
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glx=dri
|
||||
-D gbm=true
|
||||
-D egl=true
|
||||
-D platforms=x11,wayland,drm,surfaceless
|
||||
-D osmesa=classic
|
||||
DRI_DRIVERS: "i915,i965,r100,r200,swrast,nouveau"
|
||||
GALLIUM_ST: >
|
||||
-D dri3=true
|
||||
-D gallium-extra-hud=true
|
||||
-D gallium-vdpau=true
|
||||
-D gallium-xvmc=true
|
||||
-D gallium-omx=bellagio
|
||||
-D gallium-va=true
|
||||
-D gallium-xa=true
|
||||
-D gallium-nine=false
|
||||
-D gallium-opencl=disabled
|
||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,svga,v3d,vc4,virgl,etnaviv,panfrost,lima"
|
||||
LLVM_VERSION: "7"
|
||||
|
||||
scons:
|
||||
meson-clover-llvm:
|
||||
extends: .meson-build
|
||||
variables:
|
||||
UNWIND: "true"
|
||||
DRI_LOADERS: >
|
||||
-D glx=disabled
|
||||
-D egl=false
|
||||
-D gbm=false
|
||||
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 gallium-opencl=icd
|
||||
GALLIUM_DRIVERS: "r600,radeonsi"
|
||||
|
||||
meson-clover-llvm39:
|
||||
extends: meson-clover-llvm
|
||||
variables:
|
||||
GALLIUM_DRIVERS: "i915,r600"
|
||||
LLVM_VERSION: "3.9"
|
||||
|
||||
scons-nollvm:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
SCONS_TARGET: "llvm=0"
|
||||
SCONS_CHECK_COMMAND: "scons llvm=0 check"
|
||||
|
||||
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=6.0 .gitlab-ci/scons-build.sh
|
||||
- LLVM_VERSION=7 .gitlab-ci/scons-build.sh
|
||||
- LLVM_VERSION=8 .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-debian-9:amd64
|
||||
script:
|
||||
- LLVM_VERSION=3.9 .gitlab-ci/scons-build.sh
|
||||
- LLVM_VERSION=4.0 .gitlab-ci/scons-build.sh
|
||||
- LLVM_VERSION=5.0 .gitlab-ci/scons-build.sh
|
||||
|
||||
.test:
|
||||
extends: .ci-run-policy
|
||||
stage: test
|
||||
scons-swr:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
||||
SCONS_TARGET: "swr=1"
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
LLVM_VERSION: "6.0"
|
||||
|
||||
.deqp-test:
|
||||
extends:
|
||||
- .test
|
||||
- .use-debian-10:amd64
|
||||
scons-win64:
|
||||
extends: .scons-build
|
||||
variables:
|
||||
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
|
||||
- ./artifacts/deqp-runner.sh
|
||||
artifacts:
|
||||
when: on_failure
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||
paths:
|
||||
- results/
|
||||
dependencies:
|
||||
- meson-main
|
||||
needs:
|
||||
- meson-main
|
||||
- debian-10:amd64
|
||||
|
||||
test-llvmpipe-gles2:
|
||||
parallel: 4
|
||||
variables:
|
||||
DEQP_VER: gles2
|
||||
DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
|
||||
LIBGL_ALWAYS_SOFTWARE: "true"
|
||||
DEQP_RENDERER_MATCH: "llvmpipe"
|
||||
extends: .deqp-test
|
||||
|
||||
test-softpipe-gles2:
|
||||
extends: test-llvmpipe-gles2
|
||||
variables:
|
||||
DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
|
||||
DEQP_RENDERER_MATCH: "softpipe"
|
||||
GALLIUM_DRIVER: "softpipe"
|
||||
|
||||
# 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
|
||||
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
|
||||
|
||||
arm64_a630_gles2:
|
||||
extends: .deqp-test
|
||||
image: $DEBIAN_ARM64_IMAGE
|
||||
variables:
|
||||
DEQP_VER: gles2
|
||||
DEQP_RENDERER_MATCH: "FD630"
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
|
||||
DEQP_SKIPS: deqp-freedreno-a630-skips.txt
|
||||
NIR_VALIDATE: 0
|
||||
tags:
|
||||
- mesa-cheza
|
||||
dependencies:
|
||||
- meson-arm64
|
||||
needs:
|
||||
- meson-arm64
|
||||
- debian-10:arm64
|
||||
|
||||
arm64_a630_gles31:
|
||||
extends: arm64_a630_gles2
|
||||
parallel: 4
|
||||
variables:
|
||||
DEQP_VER: gles31
|
||||
|
||||
arm64_a630_gles3:
|
||||
parallel: 6
|
||||
extends: arm64_a630_gles2
|
||||
variables:
|
||||
DEQP_VER: gles3
|
||||
|
||||
arm64_a306_gles2:
|
||||
parallel: 4
|
||||
extends: arm64_a630_gles2
|
||||
variables:
|
||||
DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
|
||||
DEQP_SKIPS: deqp-default-skips.txt
|
||||
DEQP_RENDERER_MATCH: "FD307"
|
||||
tags:
|
||||
- db410c
|
||||
SCONS_TARGET: platform=windows machine=x86_64
|
||||
SCONS_CHECK_COMMAND: "true"
|
||||
|
@@ -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,46 +0,0 @@
|
||||
CONFIG_LOCALVERSION="ccu"
|
||||
|
||||
CONFIG_DEBUG_KERNEL=y
|
||||
|
||||
CONFIG_DEVFREQ_GOV_PERFORMANCE=y
|
||||
CONFIG_DEVFREQ_GOV_POWERSAVE=y
|
||||
CONFIG_DEVFREQ_GOV_USERSPACE=y
|
||||
CONFIG_DEVFREQ_GOV_PASSIVE=y
|
||||
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
|
||||
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM_ROCKCHIP=y
|
||||
CONFIG_DRM_PANFROST=y
|
||||
CONFIG_DRM_LIMA=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=y
|
||||
CONFIG_PWM_CROS_EC=y
|
||||
CONFIG_BACKLIGHT_PWM=y
|
||||
|
||||
CONFIG_ROCKCHIP_CDN_DP=n
|
||||
|
||||
CONFIG_SPI_ROCKCHIP=y
|
||||
CONFIG_PWM_ROCKCHIP=y
|
||||
CONFIG_PHY_ROCKCHIP_DP=y
|
||||
CONFIG_DWMAC_ROCKCHIP=y
|
||||
|
||||
CONFIG_MFD_RK808=y
|
||||
CONFIG_REGULATOR_RK808=y
|
||||
CONFIG_RTC_DRV_RK808=y
|
||||
CONFIG_COMMON_CLK_RK808=y
|
||||
|
||||
CONFIG_REGULATOR_FAN53555=y
|
||||
CONFIG_REGULATOR=y
|
||||
|
||||
CONFIG_REGULATOR_VCTRL=y
|
||||
|
||||
CONFIG_KASAN=n
|
||||
CONFIG_KASAN_INLINE=n
|
||||
CONFIG_STACKTRACE=n
|
||||
|
||||
CONFIG_TMPFS=y
|
||||
|
||||
CONFIG_PROVE_LOCKING=n
|
||||
CONFIG_DEBUG_LOCKDEP=n
|
||||
CONFIG_SOFTLOCKUP_DETECTOR=n
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=n
|
||||
|
@@ -1 +0,0 @@
|
||||
u_format_test
|
@@ -1,121 +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 \
|
||||
bzip2 \
|
||||
ccache \
|
||||
cmake \
|
||||
crossbuild-essential-armhf \
|
||||
curl \
|
||||
flex \
|
||||
g++ \
|
||||
gettext \
|
||||
git \
|
||||
libdrm-dev \
|
||||
libdrm-dev:armhf \
|
||||
libelf-dev \
|
||||
libelf-dev:armhf \
|
||||
libexpat1-dev \
|
||||
libexpat1-dev:armhf \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libpng-dev \
|
||||
libssl-dev \
|
||||
llvm-7-dev:armhf \
|
||||
llvm-8-dev \
|
||||
meson \
|
||||
ninja-build \
|
||||
pkg-config \
|
||||
procps \
|
||||
python \
|
||||
python3-mako \
|
||||
wget \
|
||||
zlib1g-dev
|
||||
|
||||
############### 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"
|
||||
|
||||
export LIBDRM_VERSION=libdrm-2.4.99
|
||||
|
||||
############### Build libdrm
|
||||
|
||||
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/ -Detnaviv=true; ninja -C build/ install; cd ..
|
||||
rm -rf $LIBDRM_VERSION
|
||||
|
||||
############### 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
|
||||
|
||||
# --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=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
|
||||
|
||||
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 \
|
||||
cmake \
|
||||
git \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
wget
|
||||
|
||||
apt-get autoremove -y --purge
|
@@ -5,40 +5,39 @@ 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 \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
wget \
|
||||
unzip
|
||||
gnupg \
|
||||
software-properties-common
|
||||
|
||||
curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
|
||||
add-apt-repository "deb https://apt.llvm.org/stretch/ llvm-toolchain-stretch-7 main"
|
||||
add-apt-repository "deb https://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main"
|
||||
|
||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
||||
echo 'deb https://deb.debian.org/debian 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
|
||||
|
||||
# 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 \
|
||||
apt-get install -y -t stretch-backports \
|
||||
llvm-3.4-dev \
|
||||
llvm-3.9-dev \
|
||||
libclang-3.9-dev \
|
||||
llvm-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 \
|
||||
git \
|
||||
libclang-7-dev
|
||||
|
||||
# Install remaining packages from Debian buster to get newer versions
|
||||
add-apt-repository "deb https://deb.debian.org/debian/ buster main"
|
||||
add-apt-repository "deb https://deb.debian.org/debian/ buster-updates main"
|
||||
apt-get update
|
||||
apt-get install -y \
|
||||
bzip2 \
|
||||
zlib1g-dev \
|
||||
pkg-config \
|
||||
@@ -46,10 +45,6 @@ apt-get install -y --no-remove \
|
||||
libxdamage-dev \
|
||||
libxxf86vm-dev \
|
||||
gcc \
|
||||
git \
|
||||
libepoxy-dev \
|
||||
libegl1-mesa-dev \
|
||||
libgbm-dev \
|
||||
libclc-dev \
|
||||
libxvmc-dev \
|
||||
libomxil-bellagio-dev \
|
||||
@@ -59,53 +54,24 @@ apt-get install -y --no-remove \
|
||||
libelf-dev \
|
||||
libunwind-dev \
|
||||
libglvnd-dev \
|
||||
libgtk-3-dev \
|
||||
libpng-dev \
|
||||
libgbm-dev \
|
||||
libgles2-mesa-dev \
|
||||
libvulkan-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 --no-remove \
|
||||
libdrm-dev:${arch} \
|
||||
libexpat1-dev:${arch} \
|
||||
libelf-dev:${arch} \
|
||||
crossbuild-essential-${arch}
|
||||
done
|
||||
# autotools build deps
|
||||
apt-get install -y \
|
||||
automake \
|
||||
libtool \
|
||||
bison \
|
||||
flex \
|
||||
gettext \
|
||||
make
|
||||
|
||||
# for 64bit windows cross-builds
|
||||
apt-get install -y --no-remove \
|
||||
mingw-w64 \
|
||||
libz-mingw-w64-dev \
|
||||
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
|
||||
|
||||
apt-get install -y \
|
||||
wine64 \
|
||||
mingw-w64
|
||||
|
||||
# dependencies where we want a specific version
|
||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||
@@ -116,16 +82,16 @@ 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.100
|
||||
export LIBDRM_VERSION=libdrm-2.4.97
|
||||
export XCBPROTO_VERSION=xcb-proto-1.13
|
||||
export RANDRPROTO_VERSION=randrproto-1.5.0
|
||||
export LIBXRANDR_VERSION=libXrandr-1.5.0
|
||||
export RANDRPROTO_VERSION=randrproto-1.3.0
|
||||
export LIBXRANDR_VERSION=libXrandr-1.3.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
|
||||
export WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
|
||||
|
||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
||||
@@ -197,89 +163,19 @@ tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.
|
||||
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 --no-remove ccache
|
||||
apt-get install -y 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
|
||||
|
||||
|
||||
############### 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 install -y libxml2-utils
|
||||
|
||||
# Remove unused packages
|
||||
apt-get purge -y \
|
||||
automake \
|
||||
libtool \
|
||||
make \
|
||||
curl \
|
||||
wget \
|
||||
unzip \
|
||||
cmake \
|
||||
git \
|
||||
libgles2-mesa-dev \
|
||||
libgbm-dev
|
||||
|
||||
gnupg \
|
||||
software-properties-common
|
||||
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,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,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,29 +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.*
|
||||
dEQP-GLES31.functional.primitive_bounding_box.*
|
||||
dEQP-GLES31.functional.layout_binding.ssbo.fragment_binding_array
|
||||
|
||||
# Seen a couple flakes on this one. Note that valgrind complains about
|
||||
# some things in deqp reference renderer on this one. Not sure if that
|
||||
# is a real problem or perhaps valgrind gets confused about unitialized
|
||||
# z24 channel in z24s8?? Let's just skip this one for now:
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8
|
||||
|
||||
# Two reports of spurious failures on unrelated MRs (2019-09-27, 2019-10-05)
|
||||
dEQP-GLES3.functional.texture.specification.texsubimage2d_pbo.r16ui_2d
|
||||
|
||||
# Layered rendering is sysmem only and needs working clears
|
||||
dEQP-GLES31.functional.geometry_shading.layered.*
|
||||
dEQP-GLES31.functional.geometry_shading.instanced.*layer.*
|
@@ -1,982 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_stencil_clear.stencil Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.stencil_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.stencil_scissored Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.stencil_scissored_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored_masked Fail
|
||||
dEQP-GLES2.functional.buffer.write.use.index_array.array Fail
|
||||
dEQP-GLES2.functional.buffer.write.use.index_array.element_array Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_float2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_float2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_float3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_float3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_float4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_float4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_float4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_short2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_short2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_6_short3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_6_short3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_short4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_short4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_short4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_2_byte2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_3_byte3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_3_byte3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_byte4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_4_byte4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_17_byte4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_byte4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_fixed2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_8_fixed2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_fixed3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_12_fixed3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_fixed4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_16_fixed4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.strides.buffer_0_32_fixed4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float2_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float2_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float3_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float3_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float4_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_float4_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short2_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short2_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short3_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short3_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short4_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_short4_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte2_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte2_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte3_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte3_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte4_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_byte4_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short2_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short3_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short4_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_short4_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte2_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte2_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte3_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte3_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte4_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_unsigned_byte4_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed2_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed2_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed3_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed3_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed4_normalized_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.normalize.user_ptr_0_0_fixed4_normalized_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_float4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_short4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_byte4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_short4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_unsigned_byte4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec3_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec3_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed2_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed3_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec4_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.output_types.user_ptr_0_0_fixed4_vec4_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_8_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_short2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_4_short2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_short2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_static_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_stream_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_0_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_2_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_17_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_static_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_stream_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.usages.buffer_0_32_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_float2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_float2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_2_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_17_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_32_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_2_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_17_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_1_32_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_2_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_17_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_2_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_17_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_2_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_17_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_32_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_2_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_17_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_17_32_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_2_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_17_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_byte2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_2_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_17_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_byte2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_8_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_4_32_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_fixed2_vec2_dynamic_draw_quads_1 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_8_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.offset.buffer_32_32_fixed2_vec2_dynamic_draw_quads_256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride8_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride8_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride8_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride8_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first6_offset16_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.float_first24_offset16_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride2_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride2_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride17_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride17_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride2_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride2_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride17_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride17_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset1_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset1_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride2_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride2_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride17_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride17_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride2_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride2_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride17_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride17_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset16_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset16_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride2_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride2_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride17_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride17_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride2_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride2_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride17_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride17_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first6_offset17_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.byte_first24_offset17_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride8_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride8_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride32_quads5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride8_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride8_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first6_offset16_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.single_attribute.first.fixed_first24_offset16_stride32_quads256 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.3 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.4 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.5 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.6 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.7 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.attribute_count.8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_user_ptr_user_ptr_buffer Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_user_ptr_buffer_user_ptr Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_user_ptr_buffer_buffer Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_user_ptr_user_ptr Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_user_ptr_buffer Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_buffer_user_ptr Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.storage.3_buffer_buffer_buffer Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_0_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_8_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_17_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_0_float2_32_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_0_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_8_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_17_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_8_float2_32_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_0_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_8_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_17_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_17_float2_32_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_0_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_8_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_17_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_0 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_8 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_17 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.stride.3_float2_32_float2_32_float2_32 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_fixed2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_byte2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_short2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_byte2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_fixed2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_byte2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_fixed2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_unsigned_byte2_vec2 Fail
|
||||
dEQP-GLES2.functional.vertex_arrays.multiple_attributes.input_types.3_unsigned_short2_vec2_unsigned_short2_vec2_unsigned_short2_vec2 Fail
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_width_height_max_cube_neg_z BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_tex2d BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_pos_x BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_pos_y BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_pos_z BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_neg_x BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_neg_y BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_invalid_border_cube_neg_z BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copyteximage2d_incomplete_framebuffer BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_invalid_target BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_level_tex2d BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_level_cube BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_level_max_tex2d BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_level_max_cube_pos BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_offset BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_offset_allowed BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_neg_wdt_hgt BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.copytexsubimage2d_incomplete_framebuffer BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.deletetextures_invalid_number BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.deletetextures_invalid_number_bind BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_invalid_target BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_npot_wdt_hgt BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_zero_level_array_compressed BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.generatemipmap_incomplete_cube BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.gentextures_invalid_size BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.pixelstorei_invalid_pname BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.pixelstorei_invalid_param BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_target BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_format BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_type BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_inequal_width_height_cube BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_neg_level_tex2d BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_neg_y BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_width_height_max_cube_neg_z BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_invalid_border BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_format_mismatch BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.teximage2d_type_format_mismatch BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_invalid_target BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_invalid_format BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_invalid_type BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_level_tex2d BadTerminatePass
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_level_cube BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_level_max_tex2d BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_level_max_cube BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_offset BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_offset_allowed BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_neg_wdt_hgt BadTerminate
|
||||
dEQP-GLES2.functional.negative_api.texture.texsubimage2d_type_format_mismatch BadTerminate
|
||||
dEQP-GLES2.functional.rasterization.primitives.triangles Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.triangle_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.triangle_fan Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.lines Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.line_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.line_loop Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.lines_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.line_strip_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.line_loop_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.primitives.points Fail
|
||||
dEQP-GLES2.functional.rasterization.fill_rules.basic_quad Fail
|
||||
dEQP-GLES2.functional.rasterization.fill_rules.basic_quad_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.fill_rules.clipped_full Fail
|
||||
dEQP-GLES2.functional.rasterization.fill_rules.clipped_partly Fail
|
||||
dEQP-GLES2.functional.rasterization.fill_rules.projected Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.front_triangles Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.front_triangles_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.front_triangle_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.front_triangle_strip_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.front_triangle_fan Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.front_triangle_fan_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.back_triangles Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.back_triangles_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.back_triangle_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.back_triangle_strip_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.back_triangle_fan Fail
|
||||
dEQP-GLES2.functional.rasterization.culling.back_triangle_fan_reverse Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.triangles Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.triangle_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.triangle_fan Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.lines Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.triangles Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.triangle_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.triangle_fan Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide Fail
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide Fail
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec2_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec3_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec3_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec3_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.sampler2D_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic.samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.float_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.float_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.initial.render.basic_array.float_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bool_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bool_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec2_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec2_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec2_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec3_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec3_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec3_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.sampler2D_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic.samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.int_ivec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.int_ivec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.bool_bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.bool_bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.bool_bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.basic_struct.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.float_vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.float_vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.float_vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.mat4_mat2_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.mat4_mat2_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.mat4_mat2_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.int_ivec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.int_ivec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.int_ivec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.bool_bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.bool_bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.bool_bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.struct_in_array.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.float_vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.float_vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.float_vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.mat4_mat2_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.mat4_mat2_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.mat4_mat2_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.int_ivec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.int_ivec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.int_ivec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.bool_bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.bool_bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.bool_bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.array_in_struct.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.float_vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.float_vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.float_vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.mat4_mat2_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.int_ivec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.int_ivec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.int_ivec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.bool_bvec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.bool_bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.bool_bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.nested_structs_arrays.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic.vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic.fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic.both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic_array.vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic_array.fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_basic_array.both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_nested_structs_arrays.vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_nested_structs_arrays.fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_pointer.render.multiple_nested_structs_arrays.both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.float_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.get_uniform.basic.float_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec3_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.sampler2D_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic.samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.float_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.float_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.float_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_array.vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.float_vec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.float_vec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.int_ivec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.int_ivec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.int_ivec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.bool_bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.bool_bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.bool_bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.basic_struct.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.float_vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.float_vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.float_vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.int_ivec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.int_ivec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.int_ivec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.bool_bvec4_vertex BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.bool_bvec4_fragment BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.bool_bvec4_both BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.struct_in_array.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.float_vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.float_vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.float_vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.int_ivec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.int_ivec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.int_ivec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.bool_bvec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.bool_bvec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.bool_bvec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.array_in_struct.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.float_vec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.float_vec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.float_vec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.int_ivec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.int_ivec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.int_ivec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.bool_bvec4_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.bool_bvec4_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.bool_bvec4_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_fragment BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.nested_structs_arrays.sampler2D_samplerCube_both BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.value.assigned.by_value.render.multiple_basic_array.vertex BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.40 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.41 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.42 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.43 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.44 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.45 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.46 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.47 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.48 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.49 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.50 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.51 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.52 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.53 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.54 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.55 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.88 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.89 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.90 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.91 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.92 BadTerminatePass
|
||||
dEQP-GLES2.functional.uniform_api.random.93 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.94 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.95 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.96 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.97 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.98 BadTerminate
|
||||
dEQP-GLES2.functional.uniform_api.random.99 BadTerminate
|
||||
dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_1 BadTerminate
|
||||
dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_2 BadTerminate
|
||||
dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_4 BadTerminate
|
||||
dEQP-GLES2.functional.read_pixels.rgba_ubyte_align_8 BadTerminate
|
||||
dEQP-GLES2.functional.depth_range.write.reverse Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_zero Fail
|
||||
dEQP-GLES2.functional.depth_range.write.one_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.write.0_8_to_third Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.compare.reverse Fail
|
||||
dEQP-GLES2.functional.depth_range.compare.half_to_zero Fail
|
||||
dEQP-GLES2.functional.depth_range.compare.one_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.compare.0_8_to_third Fail
|
||||
dEQP-GLES2.functional.depth_range.compare.half_to_half Fail
|
||||
dEQP-GLES2.functional.dither.disabled.gradient_white Fail
|
||||
dEQP-GLES2.functional.dither.disabled.gradient_red Fail
|
||||
dEQP-GLES2.functional.dither.disabled.gradient_green Fail
|
||||
dEQP-GLES2.functional.dither.disabled.gradient_blue Fail
|
||||
dEQP-GLES2.functional.dither.disabled.gradient_alpha Fail
|
||||
dEQP-GLES2.functional.dither.disabled.unicolored_quad_white Fail
|
||||
dEQP-GLES2.functional.dither.disabled.unicolored_quad_red Fail
|
||||
dEQP-GLES2.functional.dither.disabled.unicolored_quad_green Fail
|
||||
dEQP-GLES2.functional.dither.disabled.unicolored_quad_blue Fail
|
||||
dEQP-GLES2.functional.dither.disabled.unicolored_quad_alpha Fail
|
||||
dEQP-GLES2.functional.state_query.fbo.framebuffer_attachment_texture_cube_map_face BadTerminate
|
||||
dEQP-GLES2.functional.state_query.rbo.renderbuffer_size BadTerminate
|
||||
dEQP-GLES2.functional.state_query.rbo.renderbuffer_internal_format BadTerminate
|
||||
dEQP-GLES2.functional.state_query.rbo.renderbuffer_component_size_color BadTerminate
|
||||
dEQP-GLES2.functional.draw.draw_arrays.first.first_0 Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.first.first_1 Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.first.first_17 Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.points.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.points.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.points.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangles.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangles.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangles.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangle_fan.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangle_fan.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangle_fan.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangle_strip.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangle_strip.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.triangle_strip.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.lines.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.lines.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.lines.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.line_strip.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.line_strip.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.line_strip.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.line_loop.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.line_loop.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_arrays.line_loop.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.indices.user_ptr.index_byte Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.indices.user_ptr.index_short Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.indices.unaligned_user_ptr.index_short Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.indices.buffer.index_byte Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.indices.buffer.index_short Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.points.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.points.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.points.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangles.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangles.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangles.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangle_fan.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangle_fan.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangle_fan.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangle_strip.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangle_strip.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.triangle_strip.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.lines.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.lines.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.lines.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.line_strip.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.line_strip.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.line_strip.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.line_loop.single_attribute Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.line_loop.multiple_attributes Fail
|
||||
dEQP-GLES2.functional.draw.draw_elements.line_loop.default_attribute Fail
|
||||
dEQP-GLES2.functional.draw.random.0 Fail
|
||||
dEQP-GLES2.functional.draw.random.1 Fail
|
||||
dEQP-GLES2.functional.draw.random.2 Fail
|
||||
dEQP-GLES2.functional.draw.random.6 Fail
|
||||
dEQP-GLES2.functional.draw.random.8 Fail
|
||||
dEQP-GLES2.functional.draw.random.9 Fail
|
||||
dEQP-GLES2.functional.draw.random.10 Fail
|
||||
dEQP-GLES2.functional.draw.random.12 Fail
|
||||
dEQP-GLES2.functional.draw.random.14 Fail
|
||||
dEQP-GLES2.functional.draw.random.16 Fail
|
||||
dEQP-GLES2.functional.draw.random.17 Fail
|
||||
dEQP-GLES2.functional.draw.random.18 Fail
|
||||
dEQP-GLES2.functional.draw.random.20 Fail
|
||||
dEQP-GLES2.functional.draw.random.21 Fail
|
||||
dEQP-GLES2.functional.draw.random.25 Fail
|
||||
dEQP-GLES2.functional.draw.random.26 Fail
|
||||
dEQP-GLES2.functional.draw.random.28 Fail
|
||||
dEQP-GLES2.functional.draw.random.30 Fail
|
||||
dEQP-GLES2.functional.draw.random.31 Fail
|
||||
dEQP-GLES2.functional.draw.random.32 Fail
|
||||
dEQP-GLES2.functional.draw.random.33 Fail
|
||||
dEQP-GLES2.functional.draw.random.34 Fail
|
||||
dEQP-GLES2.functional.draw.random.36 Fail
|
||||
dEQP-GLES2.functional.draw.random.37 Fail
|
||||
dEQP-GLES2.functional.draw.random.39 Fail
|
||||
dEQP-GLES2.functional.draw.random.40 Fail
|
||||
dEQP-GLES2.functional.draw.random.41 Fail
|
||||
dEQP-GLES2.functional.draw.random.42 Fail
|
||||
dEQP-GLES2.functional.draw.random.43 Fail
|
||||
dEQP-GLES2.functional.draw.random.44 Fail
|
||||
dEQP-GLES2.functional.draw.random.45 Fail
|
||||
dEQP-GLES2.functional.draw.random.46 Fail
|
||||
dEQP-GLES2.functional.draw.random.47 Fail
|
||||
dEQP-GLES2.functional.draw.random.48 Fail
|
||||
dEQP-GLES2.functional.draw.random.49 Fail
|
||||
dEQP-GLES2.functional.draw.random.50 Fail
|
||||
dEQP-GLES2.functional.draw.random.51 Fail
|
||||
dEQP-GLES2.functional.draw.random.52 Fail
|
||||
dEQP-GLES2.functional.draw.random.56 Fail
|
||||
dEQP-GLES2.functional.draw.random.58 Fail
|
||||
dEQP-GLES2.functional.draw.random.61 Fail
|
||||
dEQP-GLES2.functional.draw.random.62 Fail
|
||||
dEQP-GLES2.functional.draw.random.63 Fail
|
||||
dEQP-GLES2.functional.draw.random.65 Fail
|
||||
dEQP-GLES2.functional.draw.random.67 Fail
|
||||
dEQP-GLES2.functional.draw.random.69 Fail
|
||||
dEQP-GLES2.functional.draw.random.70 Fail
|
||||
dEQP-GLES2.functional.draw.random.71 Fail
|
@@ -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
|
||||
|
||||
dEQP-GLES2.accuracy.texture.*
|
||||
dEQP-GLES2.functional.clipping.*
|
||||
dEQP-GLES2.functional.fbo.render.depth.*
|
||||
dEQP-GLES2.functional.fbo.render.*
|
||||
dEQP-GLES2.functional.fbo.completeness.*
|
||||
dEQP-GLES2.functional.fragment_ops.*
|
||||
dEQP-GLES2.functional.light_amount.*
|
||||
dEQP-GLES2.functional.polygon_offset.*
|
||||
dEQP-GLES2.functional.shaders.*
|
||||
dEQP-GLES2.functional.texture.*
|
@@ -1,124 +0,0 @@
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.depth.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.no_rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.rebind_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.no_rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.rebind_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.limits.points
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2d_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec3_bias
|
||||
dEQP-GLES2.functional.shaders.texture_functions.fragment.texture2dproj_vec4_bias
|
||||
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_linear_repeat_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_linear_repeat_rgba8888
|
||||
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.filtering.2d.linear_mipmap_linear_nearest_repeat_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_l8
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgb888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba4444
|
||||
dEQP-GLES2.functional.texture.filtering.2d.linear_mipmap_linear_nearest_repeat_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_linear_repeat_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_clamp_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_mirror_rgba8888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_etc1
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_l8
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgb888
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba4444
|
||||
dEQP-GLES2.functional.texture.filtering.2d.nearest_mipmap_linear_nearest_repeat_rgba8888
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_clamp
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_mirror
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.affine.nearest_linear_repeat
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_repeat_non_square
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_mirror_non_square
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_repeat_non_square
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_clamp
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_mirror
|
||||
dEQP-GLES2.functional.texture.mipmap.2d.projected.nearest_linear_repeat
|
||||
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.vertex.2d.filtering.linear_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.linear_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.filtering.nearest_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.clamp_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.mirror_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.2d.wrap.repeat_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.linear_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_linear_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.filtering.nearest_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.clamp_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.mirror_repeat
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_clamp
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_mirror
|
||||
dEQP-GLES2.functional.texture.vertex.cube.wrap.repeat_repeat
|
@@ -1,728 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_range.write.0_8_to_third Fail
|
||||
dEQP-GLES2.functional.depth_range.write.clamp_both Fail
|
||||
dEQP-GLES2.functional.depth_range.write.clamp_far Fail
|
||||
dEQP-GLES2.functional.depth_range.write.clamp_near Fail
|
||||
dEQP-GLES2.functional.depth_range.write.default Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_one Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_zero Fail
|
||||
dEQP-GLES2.functional.depth_range.write.one_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.write.one_to_one Fail
|
||||
dEQP-GLES2.functional.depth_range.write.reverse Fail
|
||||
dEQP-GLES2.functional.depth_range.write.third_to_0_8 Fail
|
||||
dEQP-GLES2.functional.depth_range.write.zero_to_half Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_scissored Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_scissored_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored_masked Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.add_dst_color_one_minus_src_color Fail
|
||||
dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_dst_alpha Fail
|
||||
dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_dst_color Fail
|
||||
dEQP-GLES2.functional.fragment_ops.blend.equation_src_func_dst_func.reverse_subtract_zero_one Fail
|
||||
dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_one_minus_src_alpha Fail
|
||||
dEQP-GLES2.functional.fragment_ops.blend.rgb_func_alpha_func.dst.one_minus_src_color_one_minus_src_color Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.11 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.12 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.13 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.14 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.15 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.16 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.17 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.18 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.19 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.20 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.21 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.22 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.23 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.24 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.2 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.3 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.4 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.5 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.6 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.both Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.11 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.13 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.15 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.17 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.18 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.19 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.20 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.22 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.26 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.39 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.42 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.44 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.47 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.48 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.57 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.60 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.61 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.64 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.68 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.72 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.75 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.77 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.79 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.8 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.93 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.98 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.0 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.11 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.19 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.24 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.25 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.32 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.37 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.3 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.45 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.48 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.53 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.56 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.63 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.65 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.66 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.67 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.68 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.6 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.72 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.75 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.81 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.87 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.94 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.96 Fail
|
||||
dEQP-GLES2.functional.polygon_offset.default_render_with_units Fail
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope Fail
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units Fail
|
||||
dEQP-GLES2.functional.shaders.scoping.valid.local_variable_hides_function_parameter_fragment Fail
|
||||
dEQP-GLES2.functional.shaders.scoping.valid.local_variable_hides_function_parameter_vertex Fail
|
@@ -1,63 +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
|
||||
|
||||
dEQP-GLES2.functional.fbo.render.depth.*
|
||||
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.clipping.triangle_vertex.clip_three.clip_pos_y_pos_z_and_neg_x_neg_y_pos_z_and_pos_x_pos_y_neg_z
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.*
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.*
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.tex2d_rgb
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.tex2d_rgba
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4
|
||||
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.stencil_clear.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.npot_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.npot_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.lifetime.attach.deleted_input.renderbuffer_framebuffer
|
||||
dEQP-GLES2.functional.lifetime.attach.deleted_output.renderbuffer_framebuffer
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_0_slope
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope
|
||||
dEQP-GLES2.functional.shaders.invariance.highp.loop_4
|
||||
dEQP-GLES2.functional.shaders.matrix.mul.dynamic_highp_mat4_vec4_vertex
|
||||
dEQP-GLES2.functional.shaders.matrix.mul.dynamic_highp_vec4_mat4_fragment
|
||||
dEQP-GLES2.functional.shaders.operator.common_functions.smoothstep.mediump_vec3_vertex
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.12
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.37
|
||||
dEQP-GLES2.functional.texture.units.2_units.mixed.1
|
||||
dEQP-GLES2.functional.texture.units.2_units.mixed.3
|
||||
dEQP-GLES2.functional.texture.units.2_units.only_2d.2
|
||||
dEQP-GLES2.functional.texture.units.4_units.mixed.5
|
||||
dEQP-GLES2.functional.texture.units.4_units.only_2d.0
|
||||
dEQP-GLES2.functional.texture.units.8_units.only_cube.2
|
||||
dEQP-GLES2.functional.texture.units.all_units.mixed.6
|
||||
dEQP-GLES2.functional.texture.units.all_units.only_cube.4
|
||||
dEQP-GLES2.functional.texture.units.all_units.only_cube.7
|
||||
dEQP-GLES2.functional.texture.units.all_units.only_cube.8
|
||||
|
@@ -1,722 +0,0 @@
|
||||
dEQP-GLES2.functional.depth_range.write.0_8_to_third Fail
|
||||
dEQP-GLES2.functional.depth_range.write.clamp_both Fail
|
||||
dEQP-GLES2.functional.depth_range.write.clamp_far Fail
|
||||
dEQP-GLES2.functional.depth_range.write.clamp_near Fail
|
||||
dEQP-GLES2.functional.depth_range.write.default Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_one Fail
|
||||
dEQP-GLES2.functional.depth_range.write.half_to_zero Fail
|
||||
dEQP-GLES2.functional.depth_range.write.one_to_half Fail
|
||||
dEQP-GLES2.functional.depth_range.write.one_to_one Fail
|
||||
dEQP-GLES2.functional.depth_range.write.reverse Fail
|
||||
dEQP-GLES2.functional.depth_range.write.third_to_0_8 Fail
|
||||
dEQP-GLES2.functional.depth_range.write.zero_to_half Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_scissored Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_scissored_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_masked Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored Fail
|
||||
dEQP-GLES2.functional.depth_stencil_clear.depth_stencil_scissored_masked Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb565_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgb5_a1_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_rbo_rgba4_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgba_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.no_rebind_tex2d_rgb_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb565_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgb5_a1_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_rbo_rgba4_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgba_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.tex2d_rgb_depth_component16 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.0 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.10 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.11 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.12 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.13 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.14 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.15 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.16 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.17 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.18 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.19 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.1 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.20 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.21 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.22 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.23 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.24 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.2 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.3 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.4 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.5 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.6 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.7 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.8 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.random.9 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.no_stencil_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_always_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_equal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_gequal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_greater_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_lequal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_less_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_never_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_always Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_equal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_gequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_greater Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_lequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_less Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_never Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_depth_notequal Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_depth_funcs.stencil_notequal_no_depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_wrap_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.decr_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_wrap_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.incr_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.invert_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.keep_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.replace_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_decr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_wrap_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_incr_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_invert_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_keep_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_replace_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_decr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_decr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_incr Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_incr_wrap Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_invert Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_keep Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_replace Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.stencil_ops.zero_zero_zero Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.both Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.depth Fail
|
||||
dEQP-GLES2.functional.fragment_ops.depth_stencil.write_mask.stencil Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.11 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.13 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.15 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.17 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.18 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.19 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.20 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.22 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.26 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.39 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.42 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.44 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.47 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.48 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.57 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.60 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.61 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.64 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.68 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.72 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.75 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.77 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.79 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.8 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.93 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.interaction.basic_shader.98 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.0 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.11 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.19 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.24 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.25 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.32 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.37 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.3 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.45 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.48 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.53 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.56 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.63 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.65 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.66 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.67 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.68 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.6 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.72 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.75 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.81 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.87 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.94 Fail
|
||||
dEQP-GLES2.functional.fragment_ops.random.96 Fail
|
||||
dEQP-GLES2.functional.polygon_offset.default_render_with_units Fail
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope Fail
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_render_with_units Fail
|
||||
dEQP-GLES2.functional.shaders.scoping.valid.local_variable_hides_function_parameter_fragment Fail
|
||||
dEQP-GLES2.functional.shaders.scoping.valid.local_variable_hides_function_parameter_vertex Fail
|
@@ -1,63 +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
|
||||
|
||||
dEQP-GLES2.functional.fbo.render.depth.*
|
||||
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.clipping.triangle_vertex.clip_three.clip_pos_y_pos_z_and_neg_x_neg_y_pos_z_and_pos_x_pos_y_neg_z
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.color.blend_npot_rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_depth_component16
|
||||
dEQP-GLES2.functional.fbo.render.color_clear.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.recreate_depthbuffer.*
|
||||
dEQP-GLES2.functional.fbo.render.recreate_stencilbuffer.*
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.rbo_rgba4
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.tex2d_rgb
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer_clear.tex2d_rgba
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1
|
||||
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4
|
||||
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.stencil_clear.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.npot_rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.npot_rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.rbo_rgb5_a1_stencil_index8
|
||||
dEQP-GLES2.functional.fbo.render.stencil.rbo_rgba4_stencil_index8
|
||||
dEQP-GLES2.functional.lifetime.attach.deleted_input.renderbuffer_framebuffer
|
||||
dEQP-GLES2.functional.lifetime.attach.deleted_output.renderbuffer_framebuffer
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_0_slope
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_factor_1_slope
|
||||
dEQP-GLES2.functional.shaders.invariance.highp.loop_4
|
||||
dEQP-GLES2.functional.shaders.matrix.mul.dynamic_highp_mat4_vec4_vertex
|
||||
dEQP-GLES2.functional.shaders.matrix.mul.dynamic_highp_vec4_mat4_fragment
|
||||
dEQP-GLES2.functional.shaders.operator.common_functions.smoothstep.mediump_vec3_vertex
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.12
|
||||
dEQP-GLES2.functional.shaders.random.all_features.fragment.37
|
||||
dEQP-GLES2.functional.texture.units.2_units.mixed.1
|
||||
dEQP-GLES2.functional.texture.units.2_units.mixed.3
|
||||
dEQP-GLES2.functional.texture.units.2_units.only_2d.2
|
||||
dEQP-GLES2.functional.texture.units.4_units.mixed.5
|
||||
dEQP-GLES2.functional.texture.units.4_units.only_2d.0
|
||||
dEQP-GLES2.functional.texture.units.8_units.only_cube.2
|
||||
dEQP-GLES2.functional.texture.units.all_units.mixed.6
|
||||
dEQP-GLES2.functional.texture.units.all_units.only_cube.4
|
||||
dEQP-GLES2.functional.texture.units.all_units.only_cube.7
|
||||
dEQP-GLES2.functional.texture.units.all_units.only_cube.8
|
||||
|
@@ -1,136 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
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-crashhandler=enable)
|
||||
|
||||
# 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-watchdog=enable)
|
||||
|
||||
if [ -z "$DEQP_VER" ]; then
|
||||
echo 'DEQP_VER must be set to something like "gles2" or "gles31" for the test run'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$DEQP_SKIPS" ]; then
|
||||
echo 'DEQP_SKIPS must be set to something like "deqp-default-skips.txt"'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 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
|
||||
|
||||
# the runner was failing to look for libkms in /usr/local/lib for some reason
|
||||
# I never figured out.
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
|
||||
|
||||
RESULTS=`pwd`/results
|
||||
mkdir -p $RESULTS
|
||||
|
||||
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).
|
||||
if [ -n "$CI_NODE_INDEX" ]; then
|
||||
sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt
|
||||
fi
|
||||
|
||||
if [ ! -s /tmp/case-list.txt ]; then
|
||||
echo "Caselist generation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cannot use tee because dash doesn't have pipefail
|
||||
touch /tmp/result.txt
|
||||
tail -f /tmp/result.txt &
|
||||
|
||||
./deqp-$DEQP_VER "${DEQP_OPTIONS[@]}" --deqp-log-filename=$RESULTS/results.qpa --deqp-caselist-file=/tmp/case-list.txt >> /tmp/result.txt
|
||||
DEQP_EXITCODE=$?
|
||||
|
||||
sed -ne \
|
||||
'/StatusCode="Fail"/{x;p}; s/#beginTestCaseResult //; T; h' \
|
||||
$RESULTS/results.qpa \
|
||||
> /tmp/unsorted-fails.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"`
|
||||
|
||||
echo "GL_RENDERER for this test run: $RENDERER"
|
||||
|
||||
if [ -n "$DEQP_RENDERER_MATCH" ]; then
|
||||
echo $RENDERER | grep -q $DEQP_RENDERER_MATCH > /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -q "dEQP-.*.info.version" /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.
|
||||
VERSION=`sed -n '/#beginTestCaseResult dEQP-.*.info.version/{n;n;n;p}' $RESULTS/results.qpa | sed -n -E "s|<Text>(.*)</Text>|\1|p"`
|
||||
echo "Driver version tested: $VERSION"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
sort /tmp/case-list.txt > /tmp/sorted-case-list.txt
|
||||
comm -12 /tmp/sorted-case-list.txt /tmp/expected-fails.txt > /tmp/expected-fails-in-caselist.txt
|
||||
comm -13 $RESULTS/fails.txt /tmp/expected-fails-in-caselist.txt > /tmp/new-passes.txt
|
||||
if [ -s /tmp/new-passes.txt ]; then
|
||||
echo "Unexpected passes, please update $DEQP_EXPECTED_FAILS (or add flaky tests to $DEQP_SKIPS):"
|
||||
cat /tmp/new-passes.txt
|
||||
exit 1
|
||||
else
|
||||
echo "No new passes"
|
||||
fi
|
@@ -1,445 +0,0 @@
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_center
|
||||
dEQP-GLES2.functional.clipping.point.wide_point_clip_viewport_corner
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES2.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||
dEQP-GLES2.functional.polygon_offset.default_displacement_with_units
|
||||
dEQP-GLES2.functional.polygon_offset.fixed16_displacement_with_units
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_loop_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.line_strip_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.basic.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_loop_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.line_strip_wide
|
||||
dEQP-GLES2.functional.rasterization.interpolation.projected.lines_wide
|
||||
dEQP-GLES2.functional.rasterization.limits.points
|
||||
dEQP-GLES2.functional.rasterization.primitives.points
|
||||
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_center
|
||||
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner
|
||||
dEQP-GLES3.functional.clipping.point.wide_point_clip
|
||||
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center
|
||||
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner
|
||||
dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_neg_y_neg_z_and_neg_x_neg_y_pos_z
|
||||
dEQP-GLES3.functional.clipping.triangle_vertex.clip_two.clip_pos_y_pos_z_and_neg_x_neg_y_neg_z
|
||||
dEQP-GLES3.functional.draw.random.124
|
||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth24_stencil8
|
||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8
|
||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component16
|
||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component24
|
||||
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f
|
||||
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8
|
||||
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f
|
||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_color
|
||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth
|
||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth_stencil
|
||||
dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil
|
||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_color
|
||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth
|
||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_depth_stencil
|
||||
dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth24_stencil8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth32f_stencil8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component24
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component32f
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r11f_g11f_b10f
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r16f
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.r8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rg16f
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rg8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb10_a2
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb565
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb5_a1
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgb8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgba4
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.rgba8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.srgb8_alpha8
|
||||
dEQP-GLES3.functional.fbo.msaa.2_samples.stencil_index8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth24_stencil8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth32f_stencil8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component16
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component24
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.depth_component32f
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.r11f_g11f_b10f
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.r16f
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.r8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rg16f
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rg8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb10_a2
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb565
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb5_a1
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgb8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgba4
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.rgba8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.srgb8_alpha8
|
||||
dEQP-GLES3.functional.fbo.msaa.4_samples.stencil_index8
|
||||
dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_alpha_to_coverage
|
||||
dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage
|
||||
dEQP-GLES3.functional.multisample.fbo_max_samples.proportionality_sample_coverage_inverted
|
||||
dEQP-GLES3.functional.multisample.fbo_max_samples.sample_coverage_invert
|
||||
dEQP-GLES3.functional.negative_api.buffer.blit_framebuffer_multisample
|
||||
dEQP-GLES3.functional.negative_api.buffer.read_pixels_fbo_format_mismatch
|
||||
dEQP-GLES3.functional.polygon_offset.default_displacement_with_units
|
||||
dEQP-GLES3.functional.polygon_offset.fixed16_displacement_with_units
|
||||
dEQP-GLES3.functional.polygon_offset.fixed24_displacement_with_units
|
||||
dEQP-GLES3.functional.polygon_offset.float32_displacement_with_units
|
||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.primitives.points
|
||||
dEQP-GLES3.functional.rasterization.fbo.texture_2d.interpolation.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.fbo.texture_2d.primitives.points
|
||||
dEQP-GLES3.functional.rasterization.interpolation.basic.line_loop_wide
|
||||
dEQP-GLES3.functional.rasterization.interpolation.basic.line_strip_wide
|
||||
dEQP-GLES3.functional.rasterization.interpolation.basic.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.interpolation.projected.line_loop_wide
|
||||
dEQP-GLES3.functional.rasterization.interpolation.projected.line_strip_wide
|
||||
dEQP-GLES3.functional.rasterization.interpolation.projected.lines_wide
|
||||
dEQP-GLES3.functional.rasterization.primitives.points
|
||||
dEQP-GLES3.functional.rasterizer_discard.basic.write_depth_points
|
||||
dEQP-GLES3.functional.rasterizer_discard.basic.write_stencil_points
|
||||
dEQP-GLES3.functional.rasterizer_discard.fbo.write_depth_points
|
||||
dEQP-GLES3.functional.rasterizer_discard.fbo.write_stencil_points
|
||||
dEQP-GLES3.functional.rasterizer_discard.scissor.write_depth_points
|
||||
dEQP-GLES3.functional.rasterizer_discard.scissor.write_stencil_points
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fastest.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa2.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.nicest.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdx.texture.msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fastest.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa2.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.nicest.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.dfdy.texture.msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fastest.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa2.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.nicest.fbo_msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.float_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec2_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec3_mediump
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_highp
|
||||
dEQP-GLES3.functional.shaders.derivate.fwidth.texture.msaa4.vec4_mediump
|
||||
dEQP-GLES3.functional.state_query.integers.max_samples_getfloat
|
||||
dEQP-GLES3.functional.state_query.integers.max_samples_getinteger64
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_linear_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_linear_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_linear_nearest_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_linear_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_mipmap_nearest_nearest_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.linear_nearest_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_linear_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_linear_linear_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.filtering.3d.combinations.nearest_mipmap_nearest_linear_repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.r11f_g11f_b10f_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb10_a2_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb565_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb5_a1_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgb9_e5_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba16f_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba4_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.rgba8_snorm_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb8_alpha8_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.formats.srgb_r8_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.128x32x64_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_linear_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_linear
|
||||
dEQP-GLES3.functional.texture.filtering.3d.sizes.63x63x63_nearest_mipmap_nearest
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_linear_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_linear_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_linear_nearest_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_mipmap_nearest_linear_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.linear_nearest_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_linear_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_mipmap_linear_linear_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.filtering.nearest_mipmap_nearest_linear_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.clamp_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.mirror_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_clamp_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_mirror_repeat
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_clamp
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_mirror
|
||||
dEQP-GLES3.functional.texture.vertex.3d.wrap.repeat_repeat_repeat
|
||||
dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_divisible
|
||||
dEQP-GLES3.functional.texture.wrap.astc_8x8.repeat_repeat_linear_not_divisible
|
||||
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
|
@@ -1,58 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import argparse
|
||||
|
||||
device_types = {
|
||||
"rk3288-veyron-jaq": {
|
||||
"gpu_version": "panfrost-t760",
|
||||
"boot_method": "depthcharge",
|
||||
"lava_device_type": "rk3288-veyron-jaq",
|
||||
"kernel_image_type": "",
|
||||
},
|
||||
"rk3399-gru-kevin": {
|
||||
"gpu_version": "panfrost-t860",
|
||||
"boot_method": "depthcharge",
|
||||
"lava_device_type": "rk3399-gru-kevin",
|
||||
"kernel_image_type": "",
|
||||
},
|
||||
"sun8i-h3-libretech-all-h3-cc": {
|
||||
"gpu_version": "lima",
|
||||
"boot_method": "u-boot",
|
||||
"lava_device_type": "sun8i-h3-libretech-all-h3-cc",
|
||||
"kernel_image_type": "type: zimage",
|
||||
},
|
||||
"meson-gxl-s905x-libretech-cc": {
|
||||
"gpu_version": "lima",
|
||||
"boot_method": "u-boot",
|
||||
"lava_device_type": "meson-gxl-s905x-libretech-cc",
|
||||
"kernel_image_type": "type: image",
|
||||
},
|
||||
}
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--template")
|
||||
parser.add_argument("--base-artifacts-url")
|
||||
parser.add_argument("--arch")
|
||||
parser.add_argument("--device-types", nargs="+")
|
||||
parser.add_argument("--kernel-image-name")
|
||||
args = parser.parse_args()
|
||||
|
||||
env = Environment(loader = FileSystemLoader('.'), trim_blocks=True, lstrip_blocks=True)
|
||||
template = env.get_template(args.template)
|
||||
|
||||
for device_type in args.device_types:
|
||||
values = {}
|
||||
values['base_artifacts_url'] = args.base_artifacts_url
|
||||
values['arch'] = args.arch
|
||||
values['device_type'] = device_type
|
||||
values['kernel_image_name'] = args.kernel_image_name
|
||||
values['lava_device_type'] = device_types[device_type]['lava_device_type']
|
||||
values['gpu_version'] = device_types[device_type]['gpu_version']
|
||||
values['boot_method'] = device_types[device_type]['boot_method']
|
||||
values['kernel_image_type'] = device_types[device_type]['kernel_image_type']
|
||||
|
||||
f = open('results/lava-deqp-%s.yml' % device_type, "w")
|
||||
f.write(template.render(values))
|
||||
f.close()
|
||||
|
@@ -1,187 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
############### Install packages for building
|
||||
dpkg --add-architecture ${DEBIAN_ARCH}
|
||||
echo 'deb-src https://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/deb-src.list
|
||||
apt-get update
|
||||
apt-get -y install ca-certificates
|
||||
apt-get -y install --no-install-recommends \
|
||||
crossbuild-essential-${DEBIAN_ARCH} \
|
||||
meson \
|
||||
g++ \
|
||||
git \
|
||||
ccache \
|
||||
pkg-config \
|
||||
python3-mako \
|
||||
python-numpy \
|
||||
python-six \
|
||||
python-mako \
|
||||
python3-pip \
|
||||
python3-setuptools \
|
||||
python3-six \
|
||||
python3-wheel \
|
||||
python3-jinja2 \
|
||||
bison \
|
||||
flex \
|
||||
gettext \
|
||||
cmake \
|
||||
bc \
|
||||
libssl-dev \
|
||||
lqa \
|
||||
csvkit \
|
||||
curl \
|
||||
unzip \
|
||||
wget \
|
||||
debootstrap \
|
||||
procps \
|
||||
qemu-user-static \
|
||||
cpio \
|
||||
clang-8 \
|
||||
llvm-8 \
|
||||
libclang-8-dev \
|
||||
llvm-8-dev \
|
||||
gdc-9 \
|
||||
lld-8 \
|
||||
nasm \
|
||||
libegl1-mesa-dev \
|
||||
\
|
||||
libdrm-dev:${DEBIAN_ARCH} \
|
||||
libx11-dev:${DEBIAN_ARCH} \
|
||||
libxxf86vm-dev:${DEBIAN_ARCH} \
|
||||
libexpat1-dev:${DEBIAN_ARCH} \
|
||||
libsensors-dev:${DEBIAN_ARCH} \
|
||||
libxfixes-dev:${DEBIAN_ARCH} \
|
||||
libxdamage-dev:${DEBIAN_ARCH} \
|
||||
libxext-dev:${DEBIAN_ARCH} \
|
||||
x11proto-dev:${DEBIAN_ARCH} \
|
||||
libx11-xcb-dev:${DEBIAN_ARCH} \
|
||||
libxcb-dri2-0-dev:${DEBIAN_ARCH} \
|
||||
libxcb-glx0-dev:${DEBIAN_ARCH} \
|
||||
libxcb-xfixes0-dev:${DEBIAN_ARCH} \
|
||||
libxcb-dri3-dev:${DEBIAN_ARCH} \
|
||||
libxcb-present-dev:${DEBIAN_ARCH} \
|
||||
libxcb-randr0-dev:${DEBIAN_ARCH} \
|
||||
libxcb-sync-dev:${DEBIAN_ARCH} \
|
||||
libxrandr-dev:${DEBIAN_ARCH} \
|
||||
libxshmfence-dev:${DEBIAN_ARCH} \
|
||||
libelf-dev:${DEBIAN_ARCH} \
|
||||
zlib1g-dev:${DEBIAN_ARCH} \
|
||||
libglvnd-core-dev:${DEBIAN_ARCH} \
|
||||
libgles2-mesa-dev:${DEBIAN_ARCH} \
|
||||
libegl1-mesa-dev:${DEBIAN_ARCH} \
|
||||
libpng-dev:${DEBIAN_ARCH}
|
||||
|
||||
|
||||
############### Install lavacli (remove after it's back into Debian testing)
|
||||
mkdir -p lavacli
|
||||
wget -qO- https://git.lavasoftware.org/lava/lavacli/-/archive/v0.9.8/lavacli-v0.9.8.tar.gz | tar -xz --strip-components=1 -C lavacli
|
||||
pushd lavacli
|
||||
python3 ./setup.py install
|
||||
popd
|
||||
|
||||
|
||||
############### Cross-build dEQP
|
||||
mkdir -p /artifacts/rootfs/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
|
||||
|
||||
cd /artifacts/rootfs/deqp
|
||||
cmake -G Ninja \
|
||||
-DDEQP_TARGET=surfaceless \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_C_COMPILER=${GCC_ARCH}-gcc \
|
||||
-DCMAKE_CXX_COMPILER=${GCC_ARCH}-g++ \
|
||||
/VK-GL-CTS
|
||||
ninja
|
||||
rm -rf /artifacts/rootfs/deqp/external
|
||||
rm -rf /artifacts/rootfs/deqp/modules/gles31
|
||||
rm -rf /artifacts/rootfs/deqp/modules/internal
|
||||
rm -rf /artifacts/rootfs/deqp/executor
|
||||
rm -rf /artifacts/rootfs/deqp/execserver
|
||||
rm -rf /artifacts/rootfs/deqp/modules/egl
|
||||
rm -rf /artifacts/rootfs/deqp/framework
|
||||
find . -name CMakeFiles | xargs rm -rf
|
||||
find . -name lib\*.a | xargs rm -rf
|
||||
du -sh *
|
||||
rm -rf /VK-GL-CTS-opengl-es-cts-3.2.5.0
|
||||
|
||||
|
||||
############### Cross-build Volt dEQP runner
|
||||
mkdir -p /battery
|
||||
cd /battery
|
||||
wget https://github.com/VoltLang/Battery/releases/download/v0.1.23/battery-0.1.23-x86_64-linux.tar.gz
|
||||
tar xzvf battery-0.1.23-x86_64-linux.tar.gz
|
||||
rm battery-0.1.23-x86_64-linux.tar.gz
|
||||
mv battery /usr/local/bin
|
||||
rm -rf /battery
|
||||
|
||||
mkdir -p /volt
|
||||
cd /volt
|
||||
mkdir -p Watt Volta dEQP
|
||||
wget -qO- https://github.com/VoltLang/Watt/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Watt
|
||||
wget -qO- https://github.com/VoltLang/Volta/archive/v0.1.3.tar.gz | tar -xz --strip-components=1 -C ./Volta
|
||||
wget -qO- https://github.com/Wallbraker/dEQP/archive/v0.1.4.tar.gz | tar -xz --strip-components=1 -C ./dEQP
|
||||
battery config --release --lto Volta Watt
|
||||
battery build
|
||||
battery config --arch ${VOLT_ARCH} --cmd-volta Volta/volta Volta/rt Watt dEQP
|
||||
battery build
|
||||
rm /usr/local/bin/battery
|
||||
cp dEQP/deqp /artifacts/rootfs/deqp/deqp-volt
|
||||
rm -rf /volt
|
||||
|
||||
|
||||
############### Remove LLVM now, so the container image is smaller
|
||||
apt-get -y remove \*llvm\*
|
||||
|
||||
|
||||
############### Cross-build kernel
|
||||
KERNEL_URL="https://gitlab.freedesktop.org/tomeu/linux/-/archive/panfrost-veyron-fix/linux-panfrost-veyron-fix.tar.gz"
|
||||
export ARCH=${KERNEL_ARCH}
|
||||
export CROSS_COMPILE="${GCC_ARCH}-"
|
||||
|
||||
mkdir -p /kernel
|
||||
wget -qO- ${KERNEL_URL} | tar -xz --strip-components=1 -C /kernel
|
||||
cd /kernel
|
||||
./scripts/kconfig/merge_config.sh ${DEFCONFIG} /tmp/clone/.gitlab-ci/${KERNEL_ARCH}.config
|
||||
make -j12 ${KERNEL_IMAGE_NAME} dtbs
|
||||
cp arch/${KERNEL_ARCH}/boot/${KERNEL_IMAGE_NAME} /artifacts/.
|
||||
cp ${DEVICE_TREES} /artifacts/.
|
||||
rm -rf /kernel
|
||||
|
||||
|
||||
############### Create rootfs
|
||||
cp /tmp/clone/.gitlab-ci/create-rootfs.sh /artifacts/rootfs/.
|
||||
mkdir -p /artifacts/rootfs/bin
|
||||
cp /usr/bin/qemu-aarch64-static /artifacts/rootfs/bin
|
||||
cp /usr/bin/qemu-arm-static /artifacts/rootfs/bin
|
||||
|
||||
set +e
|
||||
debootstrap --variant=minbase --arch=${DEBIAN_ARCH} testing /artifacts/rootfs/ http://deb.debian.org/debian
|
||||
cat /artifacts/rootfs/debootstrap/debootstrap.log
|
||||
set -e
|
||||
chroot /artifacts/rootfs sh /create-rootfs.sh
|
||||
|
||||
rm /artifacts/rootfs/bin/qemu-arm-static
|
||||
rm /artifacts/rootfs/bin/qemu-aarch64-static
|
||||
rm /artifacts/rootfs/create-rootfs.sh
|
||||
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
GPU_VERSION="$1"
|
||||
|
||||
DEQP_OPTIONS="--deqp-surface-width=256 --deqp-surface-height=256"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-log-images=disable"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-watchdog=enable"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-crashhandler=enable"
|
||||
DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer"
|
||||
|
||||
export LIBGL_DRIVERS_PATH=/mesa/lib/dri/
|
||||
export LD_LIBRARY_PATH=/mesa/lib/
|
||||
export MESA_GLES_VERSION_OVERRIDE=3.0
|
||||
|
||||
DEVFREQ_GOVERNOR=`echo /sys/devices/platform/*.gpu/devfreq/devfreq0/governor`
|
||||
echo performance > $DEVFREQ_GOVERNOR
|
||||
|
||||
cd /deqp/modules/gles2
|
||||
|
||||
# Generate test case list file
|
||||
./deqp-gles2 $DEQP_OPTIONS --deqp-runmode=stdout-caselist | grep "TEST: dEQP-GLES2" | cut -d ' ' -f 2 > /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/deqp-$GPU_VERSION-skips.txt
|
||||
|
||||
/deqp/deqp-volt --cts-build-dir=/deqp \
|
||||
--threads=8 \
|
||||
--test-names-file=/tmp/case-list.txt \
|
||||
--results-file=/tmp/results.txt \
|
||||
--no-passed-results \
|
||||
--regression-file=/deqp/deqp-$GPU_VERSION-fails.txt \
|
||||
--no-rerun-tests \
|
||||
--print-regression \
|
||||
--no-print-fail \
|
||||
--no-print-quality \
|
||||
--no-colour-term \
|
||||
$DEQP_OPTIONS
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Regressions detected"
|
||||
echo "deqp: fail"
|
||||
else
|
||||
echo "No regressions detected"
|
||||
echo "deqp: pass"
|
||||
fi
|
@@ -1,61 +0,0 @@
|
||||
job_name: mesa-deqp-{{ gpu_version }}
|
||||
device_type: {{ lava_device_type }}
|
||||
timeouts:
|
||||
job:
|
||||
minutes: 40
|
||||
action:
|
||||
minutes: 10
|
||||
actions:
|
||||
power-off:
|
||||
seconds: 30
|
||||
priority: 75
|
||||
visibility: public
|
||||
actions:
|
||||
- deploy:
|
||||
timeout:
|
||||
minutes: 10
|
||||
to: tftp
|
||||
kernel:
|
||||
url: {{ base_artifacts_url }}/{{ kernel_image_name }}
|
||||
{{ kernel_image_type }}
|
||||
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
|
||||
- echo 3 > /proc/sys/kernel/printk
|
||||
- sh /deqp/lava-deqp-runner.sh {{ gpu_version }}
|
||||
- cat /proc/loadavg
|
||||
parse:
|
||||
pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
|
||||
from: inline
|
||||
name: deqp
|
||||
path: inline/mesa-deqp.yaml
|
@@ -1,209 +0,0 @@
|
||||
variables:
|
||||
LAVA_DEBIAN_VERSION: testing-slim
|
||||
LAVA_IMAGE_TAG: "lava-2019-10-23-1"
|
||||
|
||||
include:
|
||||
- project: 'wayland/ci-templates'
|
||||
ref: 1f7f57c64ff4ebbf7292e3b7a13600518b8cb24c
|
||||
file: '/templates/debian.yml'
|
||||
|
||||
# When to automatically run the CI
|
||||
.ci-run-policy:
|
||||
only:
|
||||
- branches@mesa/mesa
|
||||
- merge_requests
|
||||
- /^ci([-/].*)?$/
|
||||
retry:
|
||||
max: 2
|
||||
when:
|
||||
- runner_system_failure
|
||||
|
||||
# Build Docker image with deqp, the rootfs and the build deps for Mesa
|
||||
.lava-container:
|
||||
extends:
|
||||
- .debian@container-ifnot-exists
|
||||
- .container
|
||||
variables:
|
||||
DEBIAN_TAG: '${DEBIAN_ARCH}-${LAVA_IMAGE_TAG}'
|
||||
DEBIAN_EXEC: 'DEBIAN_ARCH=${DEBIAN_ARCH}
|
||||
GCC_ARCH=${GCC_ARCH}
|
||||
KERNEL_ARCH=${KERNEL_ARCH}
|
||||
VOLT_ARCH=${VOLT_ARCH}
|
||||
DEFCONFIG=${DEFCONFIG}
|
||||
DEVICE_TREES="${DEVICE_TREES}"
|
||||
KERNEL_IMAGE_NAME=${KERNEL_IMAGE_NAME}
|
||||
bash .gitlab-ci/lava-debian-install.sh'
|
||||
DEBIAN_VERSION: ${LAVA_DEBIAN_VERSION}
|
||||
|
||||
lava-container:armhf:
|
||||
extends: .lava-container
|
||||
variables:
|
||||
DEBIAN_ARCH: "armhf"
|
||||
GCC_ARCH: "arm-linux-gnueabihf"
|
||||
KERNEL_ARCH: "arm"
|
||||
VOLT_ARCH: "armhf"
|
||||
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"
|
||||
|
||||
lava-container:arm64:
|
||||
extends: .lava-container
|
||||
variables:
|
||||
DEBIAN_ARCH: "arm64"
|
||||
GCC_ARCH: "aarch64-linux-gnu"
|
||||
KERNEL_ARCH: "arm64"
|
||||
VOLT_ARCH: "aarch64"
|
||||
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"
|
||||
KERNEL_IMAGE_NAME: "Image"
|
||||
|
||||
.lava-build:
|
||||
image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:$DEBIAN_ARCH-$LAVA_IMAGE_TAG
|
||||
extends:
|
||||
- .build-linux
|
||||
# Use ccache transparently, and print stats before/after
|
||||
before_script:
|
||||
- mkdir -p results mesa-build
|
||||
- mkdir -p ccache
|
||||
- export PATH="/usr/lib/ccache:$PATH"
|
||||
- export CCACHE_BASEDIR="$PWD"
|
||||
- export CCACHE_DIR="$PWD/ccache"
|
||||
- ccache --max-size=1500M
|
||||
- ccache --zero-stats || true
|
||||
- ccache --show-stats || true
|
||||
script:
|
||||
# Build Mesa
|
||||
- /usr/share/meson/debcrossgen --arch ${DEBIAN_ARCH} -o /tmp/cross_file.txt
|
||||
- meson . mesa-build
|
||||
--cross-file /tmp/cross_file.txt
|
||||
--libdir /artifacts/rootfs/mesa/lib/
|
||||
--buildtype debugoptimized
|
||||
-D gallium-drivers=kmsro,panfrost,lima
|
||||
-D dri-drivers=
|
||||
-D prefix=/artifacts/rootfs/mesa
|
||||
-D glx=disabled
|
||||
-D gbm=false
|
||||
-D egl=true
|
||||
-D platforms=surfaceless
|
||||
-D osmesa=none
|
||||
-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
|
||||
- ninja -C mesa-build -j4
|
||||
- ninja -C mesa-build install
|
||||
- find /artifacts/rootfs/mesa/lib -name \*.so -exec ${GCC_ARCH}-strip {} \;
|
||||
|
||||
- du -sh /artifacts/rootfs/mesa/*
|
||||
- rm -rf /artifacts/rootfs/mesa/include
|
||||
|
||||
# Pack rootfs
|
||||
- cp .gitlab-ci/lava-deqp-runner.sh /artifacts/rootfs/deqp/.
|
||||
- cp .gitlab-ci/deqp-*-fails.txt /artifacts/rootfs/deqp/.
|
||||
- cp .gitlab-ci/deqp-*-skips.txt /artifacts/rootfs/deqp/.
|
||||
- du -sh /artifacts/rootfs/deqp/*
|
||||
- find /artifacts/rootfs/ -type f -printf "%s\t%p\n" | sort -n
|
||||
- pushd /artifacts/rootfs/ ; find -H | cpio -H newc -v -o | gzip -c - > $CI_PROJECT_DIR/results/lava-rootfs-${DEBIAN_ARCH}.cpio.gz; popd
|
||||
|
||||
# Copy kernel and DT
|
||||
- cp /artifacts/${KERNEL_IMAGE_NAME} /artifacts/*.dtb $CI_PROJECT_DIR/results/.
|
||||
|
||||
# Generate LAVA job
|
||||
- cd $CI_PROJECT_DIR
|
||||
- .gitlab-ci/generate_lava.py
|
||||
--template .gitlab-ci/lava-deqp.yml.jinja2
|
||||
--arch ${DEBIAN_ARCH}
|
||||
--base-artifacts-url $CI_PROJECT_URL/-/jobs/$CI_JOB_ID/artifacts/raw/results
|
||||
--device-types ${DEVICE_TYPES}
|
||||
--kernel-image-name ${KERNEL_IMAGE_NAME}
|
||||
after_script:
|
||||
- export CCACHE_DIR="$PWD/ccache"
|
||||
- ccache --show-stats
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- results/
|
||||
|
||||
lava-build:armhf:
|
||||
extends: .lava-build
|
||||
needs: ["lava-container:armhf"]
|
||||
variables:
|
||||
DEBIAN_ARCH: "armhf"
|
||||
GCC_ARCH: "arm-linux-gnueabihf"
|
||||
DEVICE_TYPES: "rk3288-veyron-jaq sun8i-h3-libretech-all-h3-cc"
|
||||
KERNEL_IMAGE_NAME: "zImage"
|
||||
|
||||
lava-build:arm64:
|
||||
extends: .lava-build
|
||||
needs: ["lava-container:arm64"]
|
||||
variables:
|
||||
DEBIAN_ARCH: "arm64"
|
||||
GCC_ARCH: "aarch64-linux-gnu"
|
||||
DEVICE_TYPES: "rk3399-gru-kevin meson-gxl-s905x-libretech-cc"
|
||||
KERNEL_IMAGE_NAME: "Image"
|
||||
|
||||
.lava-test:
|
||||
extends:
|
||||
- .test
|
||||
script:
|
||||
- lava_job_id=`lavacli jobs submit $CI_PROJECT_DIR/results/lava-deqp-$DEVICE_TYPE.yml`
|
||||
- echo $lava_job_id
|
||||
- lavacli jobs logs $lava_job_id | grep -a -v "{'case':" | tee results/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:
|
||||
- results/
|
||||
|
||||
.lava-test:armhf:
|
||||
image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:armhf-$LAVA_IMAGE_TAG
|
||||
extends: .lava-test
|
||||
needs:
|
||||
- lava-container:armhf
|
||||
- lava-build:armhf
|
||||
dependencies:
|
||||
- lava-build:armhf
|
||||
|
||||
.lava-test:arm64:
|
||||
image: $CI_REGISTRY_IMAGE/debian/$LAVA_DEBIAN_VERSION:arm64-$LAVA_IMAGE_TAG
|
||||
extends: .lava-test
|
||||
needs:
|
||||
- lava-container:arm64
|
||||
- lava-build:arm64
|
||||
dependencies:
|
||||
- lava-build:arm64
|
||||
|
||||
panfrost-t760-test:armhf:
|
||||
extends: .lava-test:armhf
|
||||
variables:
|
||||
DEVICE_TYPE: rk3288-veyron-jaq
|
||||
tags:
|
||||
- lava-rk3288-veyron-jaq
|
||||
|
||||
panfrost-t860-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: rk3399-gru-kevin
|
||||
tags:
|
||||
- lava-rk3399-gru-kevin
|
||||
|
||||
lima-test:armhf:
|
||||
extends: .lava-test:armhf
|
||||
variables:
|
||||
DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
|
||||
tags:
|
||||
- lava-sun8i-h3-libretech-all-h3-cc
|
||||
|
||||
lima-test:arm64:
|
||||
extends: .lava-test:arm64
|
||||
variables:
|
||||
DEVICE_TYPE: meson-gxl-s905x-libretech-cc
|
||||
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
|
@@ -1,89 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
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.
|
||||
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"} \
|
||||
-D prefix=`pwd`/install \
|
||||
-D libdir=lib \
|
||||
-D buildtype=${BUILDTYPE:-debug} \
|
||||
-D build-tests=true \
|
||||
-D libunwind=${UNWIND} \
|
||||
${DRI_LOADERS} \
|
||||
-D dri-drivers=${DRI_DRIVERS:-[]} \
|
||||
${GALLIUM_ST} \
|
||||
-D gallium-drivers=${GALLIUM_DRIVERS:-[]} \
|
||||
-D vulkan-drivers=${VULKAN_DRIVERS:-[]} \
|
||||
-D I-love-half-baked-turnips=true \
|
||||
${EXTRA_OPTION}
|
||||
cd _build
|
||||
meson configure
|
||||
ninja -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"`
|
||||
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,17 +0,0 @@
|
||||
set -e
|
||||
set -v
|
||||
|
||||
ARTIFACTSDIR=`pwd`/shader-db
|
||||
mkdir -p $ARTIFACTSDIR
|
||||
export DRM_SHIM_DEBUG=true
|
||||
|
||||
LIBDIR=`pwd`/install/lib
|
||||
export LD_LIBRARY_PATH=$LIBDIR
|
||||
|
||||
cd /usr/local/shader-db
|
||||
|
||||
for driver in freedreno v3d; do
|
||||
env LD_PRELOAD=$LIBDIR/lib${driver}_noop_drm_shim.so \
|
||||
./run -j 4 ./shaders \
|
||||
> $ARTIFACTSDIR/${driver}-shader-db.txt
|
||||
done
|
@@ -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
|
16
.mailmap
16
.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)>
|
||||
@@ -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>
|
||||
|
41
.travis.yml
41
.travis.yml
@@ -9,22 +9,8 @@ env:
|
||||
global:
|
||||
- PKG_CONFIG_PATH=""
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- env:
|
||||
- BUILD=meson
|
||||
- env:
|
||||
- BUILD=scons
|
||||
|
||||
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;
|
||||
fi
|
||||
- if test "x$BUILD" = xscons; then
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install scons;
|
||||
fi
|
||||
|
||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja expat gettext
|
||||
# Set PATH for homebrew pip3 installs
|
||||
- PATH="$HOME/Library/Python/3.6/bin:${PATH}"
|
||||
# Set PKG_CONFIG_PATH for keg-only expat
|
||||
@@ -42,22 +28,13 @@ before_install:
|
||||
- PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
||||
|
||||
install:
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
pip3 install --user meson;
|
||||
pip3 install --user mako;
|
||||
fi
|
||||
- if test "x$BUILD" = xscons; then
|
||||
pip2 install --user mako;
|
||||
fi
|
||||
- pip3 install --user meson
|
||||
- pip3 install --user mako
|
||||
|
||||
script:
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
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;
|
||||
fi
|
||||
- meson _build
|
||||
-Dbuild-tests=true
|
||||
-Dplatforms=x11
|
||||
-Dgallium-drivers=swrast
|
||||
- ninja -C _build
|
||||
- ninja -C _build test
|
||||
|
@@ -98,11 +98,6 @@ ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),)
|
||||
LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
|
||||
endif
|
||||
|
||||
# Android's libc began supporting shm in Oreo
|
||||
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 += \
|
||||
|
14
Android.mk
14
Android.mk
@@ -95,9 +95,16 @@ 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
|
||||
|
||||
@@ -115,8 +122,7 @@ SUBDIRS := \
|
||||
src/broadcom \
|
||||
src/intel \
|
||||
src/mesa/drivers/dri \
|
||||
src/vulkan \
|
||||
src/panfrost \
|
||||
src/vulkan
|
||||
|
||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
|
||||
INC_DIRS += $(call all-named-subdir-makefiles,src/gallium)
|
||||
|
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:\Python37-x64;C:\Python37-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
|
||||
|
44
bin/.cherry-ignore
Normal file
44
bin/.cherry-ignore
Normal file
@@ -0,0 +1,44 @@
|
||||
# fixes: The following commits do not apply cleanly on 19.1 branch, as they
|
||||
# depend on other commits not present in the branch.
|
||||
20b00e1ff24f974bc99e7ca9a720518da0ce5b89 panfrost: Make ctx->job useful
|
||||
f6c44549ee2dd0f218deea1feba3965523609406 iris: Replace devinfo->gen with GEN_GEN
|
||||
1cd13ccee7bc2733e7a56284dc02bdb1b1c40081 iris: Update fast clear colors on Gen9 with direct immediate writes.
|
||||
270fe55256c78ede507d75d4665d73936ea7db31 nir/opt_large_constants: Handle store writemasks
|
||||
# fixes: The following commit depends on commits 77a1070d366a and df4c2ec5e19b
|
||||
# in order to compile, which did not land in the branch.
|
||||
2d799250346331a93b21678dc5605cff74dfa3a1 iris: Avoid unnecessary resolves on transfer maps
|
||||
# stable: Explicit 19.2 only nominations.
|
||||
e73d863a66caac796ed5fb543a77f0b892df8573 radv: allow to enable VK_AMD_shader_ballot only on GFX8+
|
||||
f202ac27a99caf9009aa9d60e2e0d7f3b528e99f radv: add a new debug option called RADV_DEBUG=noshaderballot
|
||||
a6ad9e8ccf970a0da68508eb2ce26b316045b9f0 radv: force enable VK_AMD_shader_ballot for Wolfenstein Youngblood
|
||||
0813c27d8d4a7e9372a8a86d970b598fc4e3bfd1 radv/gfx10: don't initialize VGT_INSTANCE_STEP_RATE_0
|
||||
a4e6e59db82e61b47ef905f28dde80ae36a67d35 radv/gfx10: do not use NGG with NAVI14
|
||||
fe0ec41c4d36fd5a82e7579d89e34cce7423c4e5 radv: Change memory type order for GPUs without dedicated VRAM
|
||||
28adf0d00c6b5506ed2206b950336bdc568d2247 radeonsi/gfx10: don't call gfx10_destroy_query with compute-only contexts
|
||||
d95afd8b9e7f9b3880813203292257bf0ed7babf radeonsi/gfx10: fix wave occupancy computations
|
||||
6d5f11ab345b05759c22acbcd2f79928311689e3 radv: store engine name
|
||||
04dc6074cf7f651b720868e0ba24362b585d1b31 driconfig: add a new engine name/version parameter
|
||||
0616b7ac90cf4f86bb409d34101e3a3cceac8cbe vulkan: add vk_x11_strict_image_count option
|
||||
83f195414a2e89bd9f549dacc04365f67e5bd110 radeonsi: add Navi12 PCI ID
|
||||
f833b4cada07b746a10ffa4d93fcd821920c3cb1 docs: Update to OpenGL 4.6 in the release notes
|
||||
68820007fddbb5b79f1b2b08e66ef14092053a95 radv: fix loading 64-bit GS inputs
|
||||
41b0e0d7e0f2353d337e68e8e439b5dfead880c4 docs: Add the maximum implemented Vulkan API version in 19.2 rel notes
|
||||
65b698136c5ef0ef1a15cb6fbff13cbc4ceb3881 amd: add more PCI IDs for Navi14
|
||||
48742de601a8afea1e5f99637f5823a97ca21915 ac/addrlib: fix chip identification for Vega10, Arcturus, Raven2, Renoir
|
||||
3c0938bece83cd37365c30c35d2d54927f3fe0cd radeonsi/gfx10: fix L2 cache rinse programming
|
||||
7d97013294816db46abb7d1e7c6871fe73dfac93 ac: fix incorrect vram_size reported by the kernel
|
||||
8cbe83445b2ec78fab1f303918c79268713500b5 ac: add radeon_info::tcc_harvested
|
||||
235ebe91633e7f47518118983e0e6f5c632b25a4 radeonsi/gfx10: fix corruption for chips with harvested TCCs
|
||||
b7c2f7c5a6b21bccb7847ab03b7fba5c770e131c ac: fix num_good_cu_per_sh for harvested chips
|
||||
# stable: Explicit 19.3 only nominations.
|
||||
66f2aa6ccd0b226eebe2c1a46281160b0a54d522 docs: Add the maximum implemented Vulkan API version in 19.3 rel notes
|
||||
# revert: The following commit was requested to be removed from stable branch by original author.
|
||||
dcc0e23438f3e5929c2ef74d57e8207be25ecb41 Revert "gallium: remove PIPE_CAP_TEXTURE_SHADOW_MAP"
|
||||
# fixes: The following commit was reverted later
|
||||
c73988300f943e185a50aaba015f2f114ffcb262 util: added missing headers in anon-file
|
||||
# fixes: The following commit depends on commit e1dc3ab75348 in order to
|
||||
# compile, which did not land in the branch.
|
||||
8ad3d8b178c0d8939db62ac2be9fdc98d127742d radv: Fix condition for skipping the continue CS.
|
||||
# revert: The following commit was explicitly requested to be removed from the
|
||||
# branch.
|
||||
43041627445540afda1a05d11861935963660344 Revert "radv: disable viewport clamping even if FS doesn't write Z"
|
35
bin/bugzilla_mesa.sh
Executable file
35
bin/bugzilla_mesa.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script is used to generate the list of fixed bugs that
|
||||
# appears in the release notes files, with HTML formatting.
|
||||
#
|
||||
# Note: This script could take a while until all details have
|
||||
# been fetched from bugzilla.
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3
|
||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 > bugfixes
|
||||
# $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes
|
||||
|
||||
|
||||
# regex pattern: trim before bug number
|
||||
trim_before='s/.*show_bug.cgi?id=\([0-9]*\).*/\1/'
|
||||
|
||||
# regex pattern: reconstruct the url
|
||||
use_after='s,^,https://bugs.freedesktop.org/show_bug.cgi?id=,'
|
||||
|
||||
echo "<ul>"
|
||||
echo ""
|
||||
|
||||
# extract fdo urls from commit log
|
||||
git log --pretty=medium $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before | sort -n -u | sed -e $use_after |\
|
||||
while read url
|
||||
do
|
||||
id=$(echo $url | cut -d'=' -f2)
|
||||
summary=$(wget --quiet -O - $url | grep -e '<title>.*</title>' | sed -e 's/ *<title>[0-9]\+ – \(.*\)<\/title>/\1/')
|
||||
echo "<li><a href=\"$url\">Bug $id</a> - $summary</li>"
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "</ul>"
|
@@ -1,272 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright © 2019 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# 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.
|
||||
|
||||
"""Generates release notes for a given version of mesa."""
|
||||
|
||||
import asyncio
|
||||
import datetime
|
||||
import os
|
||||
import pathlib
|
||||
import sys
|
||||
import textwrap
|
||||
import typing
|
||||
import urllib.parse
|
||||
|
||||
import aiohttp
|
||||
from mako.template import Template
|
||||
from mako import exceptions
|
||||
|
||||
|
||||
CURRENT_GL_VERSION = '4.6'
|
||||
CURRENT_VK_VERSION = '1.1'
|
||||
|
||||
TEMPLATE = Template(textwrap.dedent("""\
|
||||
<%!
|
||||
import html
|
||||
%>
|
||||
<!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 ${next_version} Release Notes / ${today}</h1>
|
||||
|
||||
<p>
|
||||
%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 ${version[:-1]}1.
|
||||
%else:
|
||||
Mesa ${next_version} is a bug fix release which fixes bugs found since the ${version} release.
|
||||
%endif
|
||||
</p>
|
||||
<p>
|
||||
Mesa ${next_version} implements the OpenGL ${gl_version} 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 ${gl_version}. OpenGL
|
||||
${gl_version} is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
<p>
|
||||
Mesa ${next_version} implements the Vulkan ${vk_version} 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>
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<ul>
|
||||
%for f in features:
|
||||
<li>${html.escape(f)}</li>
|
||||
%endfor
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
%for b in bugs:
|
||||
<li>${html.escape(b)}</li>
|
||||
%endfor
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
%for c, author in changes:
|
||||
%if author:
|
||||
<p>${html.escape(c)}</p>
|
||||
%else:
|
||||
<li>${html.escape(c)}</li>
|
||||
%endif
|
||||
%endfor
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
"""))
|
||||
|
||||
|
||||
async def gather_commits(version: str) -> str:
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'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}"
|
||||
return out.decode().strip()
|
||||
|
||||
|
||||
async def gather_bugs(version: str) -> typing.List[str]:
|
||||
commits = await gather_commits(version)
|
||||
|
||||
issues: typing.List[str] = []
|
||||
for commit in commits.split('\n'):
|
||||
sha, message = commit.split(maxsplit=1)
|
||||
p = await asyncio.create_subprocess_exec(
|
||||
'git', 'log', '--max-count', '1', r'--format=%b', sha,
|
||||
stdout=asyncio.subprocess.PIPE)
|
||||
_out, _ = await p.communicate()
|
||||
out = _out.decode().split('\n')
|
||||
for line in reversed(out):
|
||||
if line.startswith('Closes:'):
|
||||
bug = line.lstrip('Closes:').strip()
|
||||
break
|
||||
else:
|
||||
raise Exception('No closes found?')
|
||||
if bug.startswith('h'):
|
||||
# This means we have a bug in the form "Closes: https://..."
|
||||
issues.append(os.path.basename(urllib.parse.urlparse(bug).path))
|
||||
else:
|
||||
issues.append(bug.lstrip('#'))
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
async with aiohttp.ClientSession(loop=loop) as session:
|
||||
results = await asyncio.gather(*[get_bug(session, i) for i in issues])
|
||||
typing.cast(typing.Tuple[str, ...], results)
|
||||
return list(results)
|
||||
|
||||
|
||||
async def get_bug(session: aiohttp.ClientSession, bug_id: str) -> str:
|
||||
"""Query gitlab to get the name of the issue that was closed."""
|
||||
# Mesa's gitlab id is 176,
|
||||
url = 'https://gitlab.freedesktop.org/api/v4/projects/176/issues'
|
||||
params = {'iids[]': bug_id}
|
||||
async with session.get(url, params=params) as response:
|
||||
content = await response.json()
|
||||
return content[0]['title']
|
||||
|
||||
|
||||
async def get_shortlog(version: str) -> str:
|
||||
"""Call git shortlog."""
|
||||
p = await asyncio.create_subprocess_exec('git', 'shortlog', f'mesa-{version}..',
|
||||
stdout=asyncio.subprocess.PIPE)
|
||||
out, _ = await p.communicate()
|
||||
assert p.returncode == 0, 'error getting shortlog'
|
||||
assert out is not None, 'just for mypy'
|
||||
return out.decode()
|
||||
|
||||
|
||||
def walk_shortlog(log: str) -> typing.Generator[typing.Tuple[str, bool], None, None]:
|
||||
for l in log.split('\n'):
|
||||
if l.startswith(' '): # this means we have a patch description
|
||||
yield l, False
|
||||
else:
|
||||
yield l, True
|
||||
|
||||
|
||||
def calculate_next_version(version: str, is_point: bool) -> str:
|
||||
"""Calculate the version about to be released."""
|
||||
if '-' in version:
|
||||
version = version.split('-')[0]
|
||||
if is_point:
|
||||
base = version.split('.')
|
||||
base[2] = str(int(base[2]) + 1)
|
||||
return '.'.join(base)
|
||||
return version
|
||||
|
||||
|
||||
def calculate_previous_version(version: str, is_point: bool) -> str:
|
||||
"""Calculate the previous version to compare to.
|
||||
|
||||
In the case of -rc to final that verison is the previous .0 release,
|
||||
(19.3.0 in the case of 20.0.0, for example). for point releases that is
|
||||
the last point release. This value will be the same as the input value
|
||||
for a point release, but different for a major release.
|
||||
"""
|
||||
if '-' in version:
|
||||
version = version.split('-')[0]
|
||||
if is_point:
|
||||
return version
|
||||
base = version.split('.')
|
||||
if base[1] == '0':
|
||||
base[0] = str(int(base[0]) - 1)
|
||||
base[1] = '3'
|
||||
else:
|
||||
base[1] = str(int(base[1]) - 1)
|
||||
return '.'.join(base)
|
||||
|
||||
|
||||
def get_features(is_point_release: bool) -> typing.Generator[str, None, None]:
|
||||
p = pathlib.Path(__file__).parent.parent / 'docs' / 'relnotes' / 'new_features.txt'
|
||||
if p.exists():
|
||||
if is_point_release:
|
||||
print("WARNING: new features being introduced in a point release", file=sys.stderr)
|
||||
with p.open('rt') as f:
|
||||
for line in f:
|
||||
yield line
|
||||
else:
|
||||
yield "None"
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
v = pathlib.Path(__file__).parent.parent / 'VERSION'
|
||||
with v.open('rt') as f:
|
||||
raw_version = f.read().strip()
|
||||
is_point_release = '-rc' not in raw_version
|
||||
assert '-devel' not in raw_version, 'Do not run this script on -devel'
|
||||
version = raw_version.split('-')[0]
|
||||
previous_version = calculate_previous_version(version, is_point_release)
|
||||
next_version = calculate_next_version(version, is_point_release)
|
||||
|
||||
shortlog, bugs = await asyncio.gather(
|
||||
get_shortlog(previous_version),
|
||||
gather_bugs(previous_version),
|
||||
)
|
||||
|
||||
final = pathlib.Path(__file__).parent.parent / 'docs' / 'relnotes' / f'{next_version}.html'
|
||||
with final.open('wt') as f:
|
||||
try:
|
||||
f.write(TEMPLATE.render(
|
||||
bugfix=is_point_release,
|
||||
bugs=bugs,
|
||||
changes=walk_shortlog(shortlog),
|
||||
features=get_features(is_point_release),
|
||||
gl_version=CURRENT_GL_VERSION,
|
||||
next_version=next_version,
|
||||
today=datetime.date.today(),
|
||||
version=previous_version,
|
||||
vk_version=CURRENT_VK_VERSION,
|
||||
))
|
||||
except:
|
||||
print(exceptions.text_error_template().render())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
loop = asyncio.get_event_loop()
|
||||
loop.run_until_complete(main())
|
@@ -1,62 +0,0 @@
|
||||
# Copyright © 2019 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# 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.
|
||||
|
||||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
|
||||
from .gen_release_notes import *
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'current, is_point, expected',
|
||||
[
|
||||
('19.2.0', True, '19.2.1'),
|
||||
('19.3.6', True, '19.3.7'),
|
||||
('20.0.0-rc4', False, '20.0.0'),
|
||||
])
|
||||
def test_next_version(current: str, is_point: bool, expected: str) -> None:
|
||||
assert calculate_next_version(current, is_point) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'current, is_point, expected',
|
||||
[
|
||||
('19.3.6', True, '19.3.6'),
|
||||
('20.0.0-rc4', False, '19.3.0'),
|
||||
])
|
||||
def test_previous_version(current: str, is_point: bool, expected: str) -> None:
|
||||
assert calculate_previous_version(current, is_point) == expected
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_shortlog():
|
||||
# Certainly not perfect, but it's something
|
||||
version = '19.2.0'
|
||||
out = await get_shortlog(version)
|
||||
assert out
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_gather_commits():
|
||||
# Certainly not perfect, but it's something
|
||||
version = '19.2.0'
|
||||
out = await gather_commits(version)
|
||||
assert out
|
@@ -143,7 +143,7 @@ do
|
||||
esac
|
||||
|
||||
printf "[ %8s ] " "$tag"
|
||||
git --no-pager show --no-patch --pretty=oneline $sha
|
||||
git --no-pager show --no-patch --oneline $sha
|
||||
done
|
||||
|
||||
rm -f already_picked
|
||||
|
@@ -19,4 +19,3 @@
|
||||
# SOFTWARE.
|
||||
|
||||
git_sha1_gen_py = files('git_sha1_gen.py')
|
||||
symbols_check = find_program('symbols-check.py')
|
||||
|
@@ -1,117 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright © 2019 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# 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.
|
||||
|
||||
"""Update the main page, release notes, and calendar."""
|
||||
|
||||
import argparse
|
||||
import calendar
|
||||
import datetime
|
||||
import pathlib
|
||||
from lxml import (
|
||||
etree,
|
||||
html,
|
||||
)
|
||||
|
||||
|
||||
def calculate_previous_version(version: str, is_point: bool) -> str:
|
||||
"""Calculate the previous version to compare to.
|
||||
|
||||
In the case of -rc to final that verison is the previous .0 release,
|
||||
(19.3.0 in the case of 20.0.0, for example). for point releases that is
|
||||
the last point release. This value will be the same as the input value
|
||||
for a poiont release, but different for a major release.
|
||||
"""
|
||||
if '-' in version:
|
||||
version = version.split('-')[0]
|
||||
if is_point:
|
||||
return version
|
||||
base = version.split('.')
|
||||
if base[1] == '0':
|
||||
base[0] = str(int(base[0]) - 1)
|
||||
base[1] = '3'
|
||||
else:
|
||||
base[1] = str(int(base[1]) - 1)
|
||||
return '.'.join(base)
|
||||
|
||||
|
||||
def is_point_release(version: str) -> bool:
|
||||
return not version.endswith('.0')
|
||||
|
||||
|
||||
def update_index(is_point: bool, version: str, previous_version: str) -> None:
|
||||
p = pathlib.Path(__file__).parent.parent / 'docs' / 'index.html'
|
||||
with p.open('rt') as f:
|
||||
tree = html.parse(f)
|
||||
|
||||
news = tree.xpath('.//h1')[0]
|
||||
|
||||
date = datetime.date.today()
|
||||
month = calendar.month_name[date.month]
|
||||
header = etree.Element('h2')
|
||||
header.text = f"{month} {date.day}, {date.year}"
|
||||
|
||||
body = etree.Element('p')
|
||||
a = etree.SubElement(
|
||||
body, 'a', attrib={'href': f'relnotes/{previous_version}.html'})
|
||||
a.text = f"Mesa {previous_version}"
|
||||
if is_point:
|
||||
a.tail = " is released. This is a bug fix release."
|
||||
else:
|
||||
a.tail = (" is released. This is a new development release. "
|
||||
"See the release notes for mor information about this release.")
|
||||
|
||||
root = news.getparent()
|
||||
index = root.index(news) + 1
|
||||
root.insert(index, body)
|
||||
root.insert(index, header)
|
||||
|
||||
tree.write(p.as_posix(), method='html')
|
||||
|
||||
|
||||
def update_release_notes(previous_version: str) -> None:
|
||||
p = pathlib.Path(__file__).parent.parent / 'docs' / 'relnotes.html'
|
||||
with p.open('rt') as f:
|
||||
tree = html.parse(f)
|
||||
|
||||
li = etree.Element('li')
|
||||
a = etree.SubElement(li, 'a', href=f'relnotes/{previous_version}.html')
|
||||
a.text = f'{previous_version} release notes'
|
||||
|
||||
ul = tree.xpath('.//ul')[0]
|
||||
ul.insert(0, li)
|
||||
|
||||
tree.write(p.as_posix(), method='html')
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('version', help="The released version.")
|
||||
args = parser.parse_args()
|
||||
|
||||
is_point = is_point_release(args.version)
|
||||
previous_version = calculate_previous_version(args.version, is_point)
|
||||
|
||||
update_index(is_point, args.version, previous_version)
|
||||
update_release_notes(previous_version)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
29
bin/shortlog_mesa.sh
Executable file
29
bin/shortlog_mesa.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script is used to generate the list of changes that
|
||||
# appears in the release notes files, with HTML formatting.
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3
|
||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 > changes
|
||||
# $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes
|
||||
|
||||
|
||||
in_log=0
|
||||
|
||||
git shortlog $* | while read l
|
||||
do
|
||||
if [ $in_log -eq 0 ]; then
|
||||
echo '<p>'$l'</p>'
|
||||
echo '<ul>'
|
||||
in_log=1
|
||||
elif echo "$l" | egrep -q '^$' ; then
|
||||
echo '</ul>'
|
||||
echo
|
||||
in_log=0
|
||||
else
|
||||
mesg=$(echo $l | sed 's/ (cherry picked from commit [0-9a-f]\+)//;s/\&/&/g;s/</\</g;s/>/\>/g')
|
||||
echo ' <li>'${mesg}'</li>'
|
||||
fi
|
||||
done
|
@@ -1,134 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import platform
|
||||
import subprocess
|
||||
|
||||
# This list contains symbols that _might_ be exported for some platforms
|
||||
PLATFORM_SYMBOLS = [
|
||||
'__bss_end__',
|
||||
'__bss_start__',
|
||||
'__bss_start',
|
||||
'__end__',
|
||||
'_bss_end__',
|
||||
'_edata',
|
||||
'_end',
|
||||
'_fini',
|
||||
'_init',
|
||||
]
|
||||
|
||||
|
||||
def get_symbols(nm, lib):
|
||||
'''
|
||||
List all the (non platform-specific) symbols exported by the library
|
||||
'''
|
||||
symbols = []
|
||||
platform_name = platform.system()
|
||||
output = subprocess.check_output([nm, '-gP', lib],
|
||||
stderr=open(os.devnull, 'w')).decode("ascii")
|
||||
for line in output.splitlines():
|
||||
fields = line.split()
|
||||
if len(fields) == 2 or fields[1] == 'U':
|
||||
continue
|
||||
symbol_name = fields[0]
|
||||
if platform_name == 'Linux':
|
||||
if symbol_name in PLATFORM_SYMBOLS:
|
||||
continue
|
||||
elif platform_name == 'Darwin':
|
||||
assert symbol_name[0] == '_'
|
||||
symbol_name = symbol_name[1:]
|
||||
symbols.append(symbol_name)
|
||||
|
||||
return symbols
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--symbols-file',
|
||||
action='store',
|
||||
required=True,
|
||||
help='path to file containing symbols')
|
||||
parser.add_argument('--lib',
|
||||
action='store',
|
||||
required=True,
|
||||
help='path to library')
|
||||
parser.add_argument('--nm',
|
||||
action='store',
|
||||
required=True,
|
||||
help='path to binary (or name in $PATH)')
|
||||
args = parser.parse_args()
|
||||
|
||||
try:
|
||||
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
|
||||
exit(77)
|
||||
mandatory_symbols = []
|
||||
optional_symbols = []
|
||||
with open(args.symbols_file) as symbols_file:
|
||||
qualifier_optional = '(optional)'
|
||||
for line in symbols_file.readlines():
|
||||
|
||||
# Strip comments
|
||||
line = line.split('#')[0]
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
|
||||
# Line format:
|
||||
# [qualifier] symbol
|
||||
qualifier = None
|
||||
symbol = None
|
||||
|
||||
fields = line.split()
|
||||
if len(fields) == 1:
|
||||
symbol = fields[0]
|
||||
elif len(fields) == 2:
|
||||
qualifier = fields[0]
|
||||
symbol = fields[1]
|
||||
else:
|
||||
print(args.symbols_file + ': invalid format: ' + line)
|
||||
exit(1)
|
||||
|
||||
# The only supported qualifier is 'optional', which means the
|
||||
# symbol doesn't have to be exported by the library
|
||||
if qualifier and not qualifier == qualifier_optional:
|
||||
print(args.symbols_file + ': invalid qualifier: ' + qualifier)
|
||||
exit(1)
|
||||
|
||||
if qualifier == qualifier_optional:
|
||||
optional_symbols.append(symbol)
|
||||
else:
|
||||
mandatory_symbols.append(symbol)
|
||||
|
||||
unknown_symbols = []
|
||||
for symbol in lib_symbols:
|
||||
if symbol in mandatory_symbols:
|
||||
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 = [
|
||||
sym for sym in mandatory_symbols if sym not in lib_symbols
|
||||
]
|
||||
|
||||
for symbol in unknown_symbols:
|
||||
print(args.lib + ': unknown symbol exported: ' + symbol)
|
||||
|
||||
for symbol in missing_symbols:
|
||||
print(args.lib + ': missing symbol: ' + symbol)
|
||||
|
||||
if unknown_symbols or missing_symbols:
|
||||
exit(1)
|
||||
exit(0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@@ -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'))
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -48,16 +48,16 @@ start-up because of an extension string buffer-overflow problem.
|
||||
|
||||
<p>
|
||||
The problem is a modern OpenGL driver will return a very long string
|
||||
for the <code>glGetString(GL_EXTENSIONS)</code> query and if the application
|
||||
for the glGetString(GL_EXTENSIONS) query and if the application
|
||||
naively copies the string into a fixed-size buffer it can overflow the
|
||||
buffer and crash the application.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The work-around is to set the <code>MESA_EXTENSION_MAX_YEAR</code>
|
||||
environment variable to the approximate release year of the game.
|
||||
This will cause the <code>glGetString(GL_EXTENSIONS)</code> query to only report
|
||||
extensions older than the given year.
|
||||
The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable
|
||||
to the approximate release year of the game.
|
||||
This will cause the glGetString(GL_EXTENSIONS) query to only report extensions
|
||||
older than the given year.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@@ -2,19 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Report a Bug</title>
|
||||
<title>Mesa Bug Reporting</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Report a Bug</h1>
|
||||
<h1>Report a bug</h1>
|
||||
|
||||
<p>
|
||||
The Mesa bug database is hosted on
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -48,19 +48,19 @@ For example:
|
||||
}
|
||||
</pre>
|
||||
|
||||
<li>Put a space before/after operators. For example, <code>a = b + c;</code>
|
||||
and not <code>a=b+c;</code>
|
||||
<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
|
||||
and not <tt>a=b+c;</tt>
|
||||
|
||||
<li>This GNU indent command generally does the right thing for formatting:
|
||||
<pre>
|
||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
||||
</pre>
|
||||
|
||||
<li>
|
||||
<p>Use comments wherever you think it would be helpful for other developers.
|
||||
<li>Use comments wherever you think it would be helpful for other developers.
|
||||
Several specific cases and style examples follow. Note that we roughly
|
||||
follow <a href="http://www.doxygen.nl">Doxygen</a> conventions.
|
||||
</p>
|
||||
follow <a href="https://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
|
||||
<br>
|
||||
<br>
|
||||
Single-line comments:
|
||||
<pre>
|
||||
/* null-out pointer to prevent dangling reference below */
|
||||
@@ -120,21 +120,19 @@ the opening brace goes on the next line by itself (see above.)
|
||||
_mesa_foo_bar() - an internal non-static Mesa function
|
||||
</pre>
|
||||
|
||||
<li>Constants, macros and enum names are <code>ALL_UPPERCASE</code>, with _
|
||||
between words.
|
||||
<li>Mesa usually uses camel case for local variables (Ex:
|
||||
<code>localVarname</code>) while gallium typically uses underscores (Ex:
|
||||
<code>local_var_name</code>).
|
||||
<li>Constants, macros and enum names are ALL_UPPERCASE, with _ between
|
||||
words.
|
||||
<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
|
||||
while gallium typically uses underscores (Ex: "local_var_name").
|
||||
<li>Global variables are almost never used because Mesa should be thread-safe.
|
||||
|
||||
<li>Booleans. Places that are not directly visible to the GL API
|
||||
should prefer the use of <code>bool</code>, <code>true</code>, and
|
||||
<code>false</code> over <code>GLboolean</code>, <code>GL_TRUE</code>, and
|
||||
<code>GL_FALSE</code>. In C code, this may mean that
|
||||
<code>#include <stdbool.h></code> needs to be added. The
|
||||
<code>try_emit_*</code> methods in <code>src/mesa/program/ir_to_mesa.cpp</code>
|
||||
and <code>src/mesa/state_tracker/st_glsl_to_tgsi.cpp</code> can serve as
|
||||
examples.
|
||||
should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
|
||||
<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
|
||||
<tt>GL_FALSE</tt>. In C code, this may mean that
|
||||
<tt>#include <stdbool.h></tt> needs to be added. The
|
||||
<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
|
||||
src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
|
||||
|
||||
</ul>
|
||||
|
||||
|
@@ -2,19 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Conformance Testing</title>
|
||||
<title>Conformance</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Conformance Testing</h1>
|
||||
<h1>Conformance</h1>
|
||||
|
||||
<p>
|
||||
The SGI OpenGL conformance tests verify correct operation of OpenGL
|
||||
|
@@ -33,17 +33,18 @@
|
||||
<li><a href="index.html" target="_parent">News</a>
|
||||
<li><a href="developers.html" target="_parent">Developers</a>
|
||||
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
|
||||
<li><a href="license.html" target="_parent">License and Copyright</a>
|
||||
<li><a href="faq.html" target="_parent">Frequently Asked Questions</a>
|
||||
<li><a href="license.html" target="_parent">License & Copyright</a>
|
||||
<li><a href="faq.html" target="_parent">FAQ</a>
|
||||
<li><a href="relnotes.html" target="_parent">Release Notes</a>
|
||||
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
|
||||
<li><a href="conform.html" target="_parent">Conformance Testing</a>
|
||||
<li>more docs below...
|
||||
</ul>
|
||||
|
||||
<h2>Download and Install</h2>
|
||||
<h2>Download / Install</h2>
|
||||
<ul>
|
||||
<li><a href="download.html" target="_parent">Downloading and Unpacking</a>
|
||||
<li><a href="install.html" target="_parent">Compiling and Installing</a>
|
||||
<li><a href="download.html" target="_parent">Downloading / Unpacking</a>
|
||||
<li><a href="install.html" target="_parent">Compiling / Installing</a>
|
||||
<ul>
|
||||
<li><a href="meson.html" target="_parent">Meson</a></li>
|
||||
</ul>
|
||||
@@ -65,13 +66,13 @@
|
||||
<li><a href="egl.html" target="_parent">EGL</a>
|
||||
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
|
||||
<li><a href="envvars.html" target="_parent">Environment Variables</a>
|
||||
<li><a href="osmesa.html" target="_parent">Off-screen Rendering</a>
|
||||
<li><a href="osmesa.html" target="_parent">Off-Screen Rendering</a>
|
||||
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
|
||||
<li><a href="perf.html" target="_parent">Performance Tips</a>
|
||||
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
|
||||
<li><a href="llvmpipe.html" target="_parent">Gallium LLVMpipe Driver</a>
|
||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D Guest Driver</a>
|
||||
<li><a href="postprocess.html" target="_parent">Gallium Post-processing</a>
|
||||
<li><a href="llvmpipe.html" target="_parent">Gallium llvmpipe driver</a>
|
||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D guest driver</a>
|
||||
<li><a href="postprocess.html" target="_parent">Gallium post-processing</a>
|
||||
<li><a href="application-issues.html" target="_parent">Application Issues</a>
|
||||
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
|
||||
</ul>
|
||||
@@ -84,24 +85,24 @@
|
||||
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
|
||||
<li><a href="devinfo.html" target="_parent">Development Notes</a>
|
||||
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
|
||||
<li><a href="submittingpatches.html" target="_parent">Submitting Patches</a>
|
||||
<li><a href="releasing.html" target="_parent">Releasing Process</a>
|
||||
<li><a href="release-calendar.html" target="_parent">Release Calendar</a>
|
||||
<li><a href="submittingpatches.html" target="_parent">Submitting patches</a>
|
||||
<li><a href="releasing.html" target="_parent">Releasing process</a>
|
||||
<li><a href="release-calendar.html" target="_parent">Release calendar</a>
|
||||
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
|
||||
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
|
||||
</ul>
|
||||
|
||||
<h2>Links</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.opengl.org" target="_parent">OpenGL Website</a>
|
||||
<li><a href="https://dri.freedesktop.org" target="_parent">DRI Website</a>
|
||||
<li><a href="https://www.opengl.org" target="_parent">OpenGL website</a>
|
||||
<li><a href="https://dri.freedesktop.org" target="_parent">DRI website</a>
|
||||
<li><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
||||
<li><a href="https://planet.freedesktop.org" target="_parent">Developer Blogs</a>
|
||||
<li><a href="https://planet.freedesktop.org" target="_parent">Developer blogs</a>
|
||||
</ul>
|
||||
|
||||
<h2>Hosted by:</h2>
|
||||
<dl>
|
||||
<dd><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
||||
<dd><a href="https://freedesktop.org" target="_parent">freedesktop.org</a>
|
||||
</dl>
|
||||
|
||||
</body>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -20,9 +20,9 @@
|
||||
Normally Mesa (and OpenGL) records but does not notify the user of
|
||||
errors. It is up to the application to call
|
||||
<code>glGetError</code> to check for errors. Mesa supports an
|
||||
environment variable, <code>MESA_DEBUG</code>, to help with debugging. If
|
||||
<code>MESA_DEBUG</code> is defined, a message will be printed to stdout
|
||||
whenever an error occurs.
|
||||
environment variable, MESA_DEBUG, to help with debugging. If
|
||||
MESA_DEBUG is defined, a message will be printed to stdout whenever
|
||||
an error occurs.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -30,12 +30,12 @@
|
||||
(<code>--buildtype debug</code> for meson, <code>build=debug</code> for scons).
|
||||
</p>
|
||||
<p>
|
||||
In your debugger you can set a breakpoint in <code>_mesa_error()</code> to trap
|
||||
Mesa errors.
|
||||
In your debugger you can set a breakpoint in _mesa_error() to trap Mesa
|
||||
errors.
|
||||
</p>
|
||||
<p>
|
||||
There is a display list printing/debugging facility. See the end of
|
||||
<code>src/dlist.c</code> for details.
|
||||
src/dlist.c for details.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -29,8 +29,8 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
If <code>glext.h</code> doesn't define the extension, edit
|
||||
<code>include/GL/gl.h</code> and add code like this:
|
||||
If glext.h doesn't define the extension, edit include/GL/gl.h and add
|
||||
code like this:
|
||||
<pre>
|
||||
#ifndef GL_EXT_the_extension_name
|
||||
#define GL_EXT_the_extension_name 1
|
||||
@@ -41,18 +41,18 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
</pre>
|
||||
</li>
|
||||
<li>
|
||||
In the <code>src/mapi/glapi/gen/</code> directory, add the new extension
|
||||
functions and enums to the <code>gl_API.xml</code> file.
|
||||
In the src/mapi/glapi/gen/ directory, add the new extension functions and
|
||||
enums to the gl_API.xml file.
|
||||
Then, a bunch of source files must be regenerated by executing the
|
||||
corresponding Python scripts.
|
||||
</li>
|
||||
<li>
|
||||
Add a new entry to the <code>gl_extensions</code> struct in
|
||||
<code>mtypes.h</code> if the extension requires driver capabilities not
|
||||
already exposed by another extension.
|
||||
Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
|
||||
if the extension requires driver capabilities not already exposed by
|
||||
another extension.
|
||||
</li>
|
||||
<li>
|
||||
Add a new entry to the <code>src/mesa/main/extensions_table.h</code> file.
|
||||
Add a new entry to the src/mesa/main/extensions_table.h file.
|
||||
</li>
|
||||
<li>
|
||||
From this point, the best way to proceed is to find another extension,
|
||||
@@ -60,20 +60,18 @@ To add a new GL extension to Mesa you have to do at least the following.
|
||||
as an example.
|
||||
</li>
|
||||
<li>
|
||||
If the new extension adds new GL state, the functions in
|
||||
<code>get.c</code>, <code>enable.c</code> and <code>attrib.c</code>
|
||||
will most likely require new code.
|
||||
If the new extension adds new GL state, the functions in get.c, enable.c
|
||||
and attrib.c will most likely require new code.
|
||||
</li>
|
||||
<li>
|
||||
To determine if the new extension is active in the current context,
|
||||
use the auto-generated <code>_mesa_has_##name_str()</code> function
|
||||
defined in <code>src/mesa/main/extensions.h</code>.
|
||||
use the auto-generated _mesa_has_##name_str() function defined in
|
||||
src/mesa/main/extensions.h.
|
||||
</li>
|
||||
<li>
|
||||
The dispatch tests <code>check_table.cpp</code> and
|
||||
<code>dispatch_sanity.cpp</code> should be updated with details about
|
||||
the new extensions functions. These tests are run using
|
||||
<code>meson test</code>.
|
||||
The dispatch tests check_table.cpp and dispatch_sanity.cpp
|
||||
should be updated with details about the new extensions functions. These
|
||||
tests are run using 'meson test'
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
@@ -2,19 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>GL Dispatch</title>
|
||||
<title>GL Dispatch in Mesa</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>GL Dispatch</h1>
|
||||
<h1>GL Dispatch in Mesa</h1>
|
||||
|
||||
<p>Several factors combine to make efficient dispatch of OpenGL functions
|
||||
fairly complicated. This document attempts to explain some of the issues
|
||||
@@ -30,28 +30,28 @@ of the GL related state for the application. Every texture, every buffer
|
||||
object, every enable, and much, much more is stored in the context. Since
|
||||
an application can have more than one context, the context to be used is
|
||||
selected by a window-system dependent function such as
|
||||
<code>glXMakeContextCurrent</code>.</p>
|
||||
<tt>glXMakeContextCurrent</tt>.</p>
|
||||
|
||||
<p>In environments that implement OpenGL with X-Windows using GLX, every GL
|
||||
function, including the pointers returned by <code>glXGetProcAddress</code>, are
|
||||
function, including the pointers returned by <tt>glXGetProcAddress</tt>, are
|
||||
<em>context independent</em>. This means that no matter what context is
|
||||
currently active, the same <code>glVertex3fv</code> function is used.</p>
|
||||
currently active, the same <tt>glVertex3fv</tt> function is used.</p>
|
||||
|
||||
<p>This creates the first bit of dispatch complexity. An application can
|
||||
have two GL contexts. One context is a direct rendering context where
|
||||
function calls are routed directly to a driver loaded within the
|
||||
application's address space. The other context is an indirect rendering
|
||||
context where function calls are converted to GLX protocol and sent to a
|
||||
server. The same <code>glVertex3fv</code> has to do the right thing depending
|
||||
server. The same <tt>glVertex3fv</tt> has to do the right thing depending
|
||||
on which context is current.</p>
|
||||
|
||||
<p>Highly optimized drivers or GLX protocol implementations may want to
|
||||
change the behavior of GL functions depending on current state. For
|
||||
example, <code>glFogCoordf</code> may operate differently depending on whether
|
||||
example, <tt>glFogCoordf</tt> may operate differently depending on whether
|
||||
or not fog is enabled.</p>
|
||||
|
||||
<p>In multi-threaded environments, it is possible for each thread to have a
|
||||
different GL context current. This means that poor old <code>glVertex3fv</code>
|
||||
different GL context current. This means that poor old <tt>glVertex3fv</tt>
|
||||
has to know which GL context is current in the thread where it is being
|
||||
called.</p>
|
||||
|
||||
@@ -64,18 +64,18 @@ dispatch table stores pointers to functions that actually implement
|
||||
specific GL functions. Each time a new context is made current in a thread,
|
||||
these pointers a updated.</p>
|
||||
|
||||
<p>The implementation of functions such as <code>glVertex3fv</code> becomes
|
||||
<p>The implementation of functions such as <tt>glVertex3fv</tt> becomes
|
||||
conceptually simple:</p>
|
||||
|
||||
<ul>
|
||||
<li>Fetch the current dispatch table pointer.</li>
|
||||
<li>Fetch the pointer to the real <code>glVertex3fv</code> function from the
|
||||
<li>Fetch the pointer to the real <tt>glVertex3fv</tt> function from the
|
||||
table.</li>
|
||||
<li>Call the real function.</li>
|
||||
</ul>
|
||||
|
||||
<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>
|
||||
<tt>src/mesa/glapi/glapitemp.h</tt> contains code very similar to this.</p>
|
||||
|
||||
<blockquote>
|
||||
<table border="1">
|
||||
@@ -93,9 +93,9 @@ void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
|
||||
overhead that it adds to every GL function call.</p>
|
||||
|
||||
<p>In a multithreaded environment, a naive implementation of
|
||||
<code>GET_DISPATCH</code> involves a call to <code>pthread_getspecific</code> or a
|
||||
<tt>GET_DISPATCH</tt> involves a call to <tt>pthread_getspecific</tt> or a
|
||||
similar function. Mesa provides a wrapper function called
|
||||
<code>_glapi_get_dispatch</code> that is used by default.</p>
|
||||
<tt>_glapi_get_dispatch</tt> that is used by default.</p>
|
||||
|
||||
<h2>3. Optimizations</h2>
|
||||
|
||||
@@ -109,7 +109,7 @@ each can or cannot be used are listed.</p>
|
||||
<p>The vast majority of OpenGL applications use the API in a single threaded
|
||||
manner. That is, the application has only one thread that makes calls into
|
||||
the GL. In these cases, not only do the calls to
|
||||
<code>pthread_getspecific</code> hurt performance, but they are completely
|
||||
<tt>pthread_getspecific</tt> hurt performance, but they are completely
|
||||
unnecessary! It is possible to detect this common case and avoid these
|
||||
calls.</p>
|
||||
|
||||
@@ -118,15 +118,15 @@ of the executing thread. If the same thread ID is always seen, Mesa knows
|
||||
that the application is, from OpenGL's point of view, single threaded.</p>
|
||||
|
||||
<p>As long as an application is single threaded, Mesa stores a pointer to
|
||||
the dispatch table in a global variable called <code>_glapi_Dispatch</code>.
|
||||
the dispatch table in a global variable called <tt>_glapi_Dispatch</tt>.
|
||||
The pointer is also stored in a per-thread location via
|
||||
<code>pthread_setspecific</code>. When Mesa detects that an application has
|
||||
become multithreaded, <code>NULL</code> is stored in <code>_glapi_Dispatch</code>.</p>
|
||||
<tt>pthread_setspecific</tt>. When Mesa detects that an application has
|
||||
become multithreaded, <tt>NULL</tt> is stored in <tt>_glapi_Dispatch</tt>.</p>
|
||||
|
||||
<p>Using this simple mechanism the dispatch functions can detect the
|
||||
multithreaded case by comparing <code>_glapi_Dispatch</code> to <code>NULL</code>.
|
||||
The resulting implementation of <code>GET_DISPATCH</code> is slightly more
|
||||
complex, but it avoids the expensive <code>pthread_getspecific</code> call in
|
||||
multithreaded case by comparing <tt>_glapi_Dispatch</tt> to <tt>NULL</tt>.
|
||||
The resulting implementation of <tt>GET_DISPATCH</tt> is slightly more
|
||||
complex, but it avoids the expensive <tt>pthread_getspecific</tt> call in
|
||||
the common case.</p>
|
||||
|
||||
<blockquote>
|
||||
@@ -136,7 +136,7 @@ the common case.</p>
|
||||
(_glapi_Dispatch != NULL) \
|
||||
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
|
||||
</pre></td></tr>
|
||||
<tr><td>Improved <code>GET_DISPATCH</code> Implementation</td></tr></table>
|
||||
<tr><td>Improved <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<h3>3.2. ELF TLS</h3>
|
||||
@@ -144,14 +144,14 @@ the common case.</p>
|
||||
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
|
||||
of per-thread, global storage. Variables can be put in this area using some
|
||||
extensions to GCC. By storing the dispatch table pointer in this area, the
|
||||
expensive call to <code>pthread_getspecific</code> and the test of
|
||||
<code>_glapi_Dispatch</code> can be avoided.</p>
|
||||
expensive call to <tt>pthread_getspecific</tt> and the test of
|
||||
<tt>_glapi_Dispatch</tt> can be avoided.</p>
|
||||
|
||||
<p>The dispatch table pointer is stored in a new variable called
|
||||
<code>_glapi_tls_Dispatch</code>. A new variable name is used so that a single
|
||||
<tt>_glapi_tls_Dispatch</tt>. A new variable name is used so that a single
|
||||
libGL can implement both interfaces. This allows the libGL to operate with
|
||||
direct rendering drivers that use either interface. Once the pointer is
|
||||
properly declared, <code>GET_DISPACH</code> becomes a simple variable
|
||||
properly declared, <tt>GET_DISPACH</tt> becomes a simple variable
|
||||
reference.</p>
|
||||
|
||||
<blockquote>
|
||||
@@ -162,12 +162,12 @@ extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
||||
|
||||
#define GET_DISPATCH() _glapi_tls_Dispatch
|
||||
</pre></td></tr>
|
||||
<tr><td>TLS <code>GET_DISPATCH</code> Implementation</td></tr></table>
|
||||
<tr><td>TLS <tt>GET_DISPATCH</tt> 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
|
||||
as the default dispatch method.</p>
|
||||
<tt>GLX_USE_TLS</tt>. Any platform capable of using TLS should use this as
|
||||
the default dispatch method.</p>
|
||||
|
||||
<h3>3.3. Assembly Language Dispatch Stubs</h3>
|
||||
|
||||
@@ -185,13 +185,13 @@ ways that the dispatch table pointer can be accessed. There are four
|
||||
different methods that can be used:</p>
|
||||
|
||||
<ol>
|
||||
<li>Using <code>_glapi_Dispatch</code> directly in builds for non-multithreaded
|
||||
<li>Using <tt>_glapi_Dispatch</tt> directly in builds for non-multithreaded
|
||||
environments.</li>
|
||||
<li>Using <code>_glapi_Dispatch</code> and <code>_glapi_get_dispatch</code> in
|
||||
<li>Using <tt>_glapi_Dispatch</tt> and <tt>_glapi_get_dispatch</tt> in
|
||||
multithreaded environments.</li>
|
||||
<li>Using <code>_glapi_Dispatch</code> and <code>pthread_getspecific</code> in
|
||||
<li>Using <tt>_glapi_Dispatch</tt> and <tt>pthread_getspecific</tt> in
|
||||
multithreaded environments.</li>
|
||||
<li>Using <code>_glapi_tls_Dispatch</code> directly in TLS enabled
|
||||
<li>Using <tt>_glapi_tls_Dispatch</tt> directly in TLS enabled
|
||||
multithreaded environments.</li>
|
||||
</ol>
|
||||
|
||||
@@ -204,13 +204,13 @@ terribly relevant.</p>
|
||||
few preprocessor defines.</p>
|
||||
|
||||
<ul>
|
||||
<li>If <code>USE_ELF_TLS</code> is defined, method #3 is used.</li>
|
||||
<li>If <code>HAVE_PTHREAD</code> is defined, method #2 is used.</li>
|
||||
<li>If <tt>GLX_USE_TLS</tt> is defined, method #3 is used.</li>
|
||||
<li>If <tt>HAVE_PTHREAD</tt> is defined, method #2 is used.</li>
|
||||
<li>If none of the preceding are defined, method #1 is used.</li>
|
||||
</ul>
|
||||
|
||||
<p>Two different techniques are used to handle the various different cases.
|
||||
On x86 and SPARC, a macro called <code>GL_STUB</code> is used. In the preamble
|
||||
On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used. In the preamble
|
||||
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:
|
||||
@@ -220,7 +220,7 @@ then consists of a series of invocations of the macros such as:
|
||||
<tr><td><pre>
|
||||
GL_STUB(Color3fv, _gloffset_Color3fv)
|
||||
</pre></td></tr>
|
||||
<tr><td>SPARC Assembly Implementation of <code>glColor3fv</code></td></tr></table>
|
||||
<tr><td>SPARC Assembly Implementation of <tt>glColor3fv</tt></td></tr></table>
|
||||
</blockquote>
|
||||
|
||||
<p>The benefit of this technique is that changes to the calling pattern
|
||||
@@ -231,32 +231,32 @@ changed lines in the assembly code.</p>
|
||||
implementation does not change based on the parameters passed to the
|
||||
function. For example, since x86 passes all parameters on the stack, no
|
||||
additional code is needed to save and restore function parameters around a
|
||||
call to <code>pthread_getspecific</code>. Since x86-64 passes parameters in
|
||||
call to <tt>pthread_getspecific</tt>. Since x86-64 passes parameters in
|
||||
registers, varying amounts of code needs to be inserted around the call to
|
||||
<code>pthread_getspecific</code> to save and restore the GL function's
|
||||
<tt>pthread_getspecific</tt> to save and restore the GL function's
|
||||
parameters.</p>
|
||||
|
||||
<p>The other technique, used by platforms like x86-64 that cannot use the
|
||||
first technique, is to insert <code>#ifdef</code> within the assembly
|
||||
first technique, is to insert <tt>#ifdef</tt> within the assembly
|
||||
implementation of each function. This makes the assembly file considerably
|
||||
larger (e.g., 29,332 lines for <code>glapi_x86-64.S</code> versus 1,155 lines for
|
||||
<code>glapi_x86.S</code>) and causes simple changes to the function
|
||||
larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
|
||||
<tt>glapi_x86.S</tt>) and causes simple changes to the function
|
||||
implementation to generate many lines of diffs. Since the assembly files
|
||||
are typically generated by scripts (see <a href="#autogen">below</a>), this
|
||||
isn't a significant problem.</p>
|
||||
|
||||
<p>Once a new assembly file is created, it must be inserted in the build
|
||||
system. There are two steps to this. The file must first be added to
|
||||
<code>src/mesa/sources</code>. That gets the file built and linked. The second
|
||||
step is to add the correct <code>#ifdef</code> magic to
|
||||
<code>src/mesa/glapi/glapi_dispatch.c</code> to prevent the C version of the
|
||||
<tt>src/mesa/sources</tt>. That gets the file built and linked. The second
|
||||
step is to add the correct <tt>#ifdef</tt> magic to
|
||||
<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
|
||||
dispatch functions from being built.</p>
|
||||
|
||||
<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
|
||||
|
||||
<p>To implement <code>glXGetProcAddress</code>, Mesa stores a table that
|
||||
<p>To implement <tt>glXGetProcAddress</tt>, Mesa stores a table that
|
||||
associates function names with pointers to those functions. This table is
|
||||
stored in <code>src/mesa/glapi/glprocs.h</code>. For different reasons on
|
||||
stored in <tt>src/mesa/glapi/glprocs.h</tt>. For different reasons on
|
||||
different platforms, storing all of those pointers is inefficient. On most
|
||||
platforms, including all known platforms that support TLS, we can avoid this
|
||||
added overhead.</p>
|
||||
@@ -267,8 +267,8 @@ calculated by multiplying the size of the dispatch stub by the offset of the
|
||||
function in the table. This value is then added to the address of the first
|
||||
dispatch stub.</p>
|
||||
|
||||
<p>This path is activated by adding the correct <code>#ifdef</code> magic to
|
||||
<code>src/mesa/glapi/glapi.c</code> just before <code>glprocs.h</code> is
|
||||
<p>This path is activated by adding the correct <tt>#ifdef</tt> magic to
|
||||
<tt>src/mesa/glapi/glapi.c</tt> just before <tt>glprocs.h</tt> is
|
||||
included.</p>
|
||||
|
||||
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
|
||||
|
@@ -2,21 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Downloading and Unpacking</title>
|
||||
<title>Getting Mesa</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Downloading and Unpacking</h1>
|
||||
|
||||
<h2>Downloading</h2>
|
||||
<h1>Downloading</h1>
|
||||
|
||||
<p>
|
||||
Primary Mesa download site:
|
||||
@@ -27,23 +25,23 @@ or <a href="https://mesa.freedesktop.org/archive/">mesa.freedesktop.org</a>
|
||||
|
||||
<p>
|
||||
Starting with the first release of 2017, Mesa's version scheme is
|
||||
year-based. Filenames are in the form <code>mesa-Y.N.P.tar.gz</code>, where
|
||||
<code>Y</code> is the year (two digits), <code>N</code> is an incremental number
|
||||
(starting at 0) and <code>P</code> is the patch number (0 for the first
|
||||
year-based. Filenames are in the form <tt>mesa-Y.N.P.tar.gz</tt>, where
|
||||
<tt>Y</tt> is the year (two digits), <tt>N</tt> is an incremental number
|
||||
(starting at 0) and <tt>P</tt> is the patch number (0 for the first
|
||||
release, 1 for the first patch after that).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When a new release is coming, release candidates (betas) may be found
|
||||
in the same directory, and are recognisable by the
|
||||
<code>mesa-Y.N.P-<b>rc</b>X.tar.gz</code> filename.
|
||||
<tt>mesa-Y.N.P-<b>rc</b>X.tar.gz</tt> filename.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Unpacking</h2>
|
||||
<h1>Unpacking</h1>
|
||||
|
||||
<p>
|
||||
Mesa releases are available in two formats: <code>.tar.xz</code> and <code>.tar.gz</code>.
|
||||
Mesa releases are available in two formats: <tt>.tar.xz</tt> and <tt>.tar.gz</tt>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -58,7 +56,7 @@ To unpack the tarball:
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>Contents</h2>
|
||||
<h1>Contents</h1>
|
||||
|
||||
<p>
|
||||
Proceed to the <a href="install.html">compilation and installation
|
||||
@@ -66,7 +64,7 @@ instructions</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Demos, GLUT, and GLU</h2>
|
||||
<h1>Demos, GLUT, and GLU</h1>
|
||||
|
||||
<p>
|
||||
A package of SGI's GLU library is available
|
||||
|
@@ -2,19 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>EGL</title>
|
||||
<title>Mesa EGL</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>EGL</h1>
|
||||
<h1>Mesa EGL</h1>
|
||||
|
||||
<p>The current version of EGL in Mesa implements EGL 1.4. More information
|
||||
about EGL can be found at
|
||||
@@ -86,12 +86,14 @@ and <code>haiku</code>.
|
||||
The <code>android</code> platform can either be built as a system
|
||||
component, part of AOSP, using <code>Android.mk</code> files, or
|
||||
cross-compiled using appropriate options.
|
||||
The <code>haiku</code> platform can only be built with SCons or Meson.
|
||||
Unless for special needs, the build system should
|
||||
select the right platforms automatically.</p>
|
||||
|
||||
</dd>
|
||||
|
||||
<dt><code>-D gles1=true</code> and <code>-D gles2=true</code></dt>
|
||||
<dt><code>-D gles1=true</code></dt>
|
||||
<dt><code>-D gles2=true</code></dt>
|
||||
<dd>
|
||||
|
||||
<p>These options enable OpenGL ES support in OpenGL. The result is one big
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -25,206 +25,145 @@ sometimes be useful for debugging end-user issues.
|
||||
|
||||
<h2>LibGL environment variables</h2>
|
||||
|
||||
<dl>
|
||||
<dt><code>LIBGL_DEBUG</code></dt>
|
||||
<dd>If defined debug information will be printed to stderr.
|
||||
If set to <code>verbose</code> additional information will be
|
||||
printed.</dd>
|
||||
<dt><code>LIBGL_DRIVERS_PATH</code></dt>
|
||||
<dd>colon-separated list of paths to search for DRI drivers</dd>
|
||||
<dt><code>LIBGL_ALWAYS_INDIRECT</code></dt>
|
||||
<dd>if set to <code>true</code>, forces an indirect rendering
|
||||
context/connection.</dd>
|
||||
<dt><code>LIBGL_ALWAYS_SOFTWARE</code></dt>
|
||||
<dd>if set to <code>true</code>, always use software rendering</dd>
|
||||
<dt><code>LIBGL_NO_DRAWARRAYS</code></dt>
|
||||
<dd>if set to <code>true</code>, do not use DrawArrays GLX protocol
|
||||
(for debugging)</dd>
|
||||
<dt><code>LIBGL_SHOW_FPS</code></dt>
|
||||
<dd>print framerate to stdout based on the number of
|
||||
<code>glXSwapBuffers</code> calls per second.</dd>
|
||||
<dt><code>LIBGL_DRI3_DISABLE</code></dt>
|
||||
<dd>disable DRI3 if set to <code>true</code>.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
|
||||
If set to 'verbose' additional information will be printed.
|
||||
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
|
||||
<li>LIBGL_ALWAYS_INDIRECT - if set to `true`, forces an indirect rendering context/connection.
|
||||
<li>LIBGL_ALWAYS_SOFTWARE - if set to `true`, always use software rendering
|
||||
<li>LIBGL_NO_DRAWARRAYS - if set to `true`, do not use DrawArrays GLX protocol (for debugging)
|
||||
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
|
||||
calls per second.
|
||||
<li>LIBGL_DRI3_DISABLE - disable DRI3 if set to `true`.
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<h2>Core Mesa environment variables</h2>
|
||||
|
||||
<dl>
|
||||
<dt><code>MESA_NO_ASM</code></dt>
|
||||
<dd>if set, disables all assembly language optimizations</dd>
|
||||
<dt><code>MESA_NO_MMX</code></dt>
|
||||
<dd>if set, disables Intel MMX optimizations</dd>
|
||||
<dt><code>MESA_NO_3DNOW</code></dt>
|
||||
<dd>if set, disables AMD 3DNow! optimizations</dd>
|
||||
<dt><code>MESA_NO_SSE</code></dt>
|
||||
<dd>if set, disables Intel SSE optimizations</dd>
|
||||
<dt><code>MESA_NO_ERROR</code></dt>
|
||||
<dd>if set to 1, error checking is disabled as per <code>KHR_no_error</code>.
|
||||
This will result in undefined behaviour for invalid use of the api, but
|
||||
can reduce CPU use for apps that are known to be error free.</dd>
|
||||
<dt><code>MESA_DEBUG</code></dt>
|
||||
<dd>if set, error messages are printed to stderr. For example,
|
||||
if the application generates a <code>GL_INVALID_ENUM</code> error, a
|
||||
corresponding error message indicating where the error occurred, and
|
||||
possibly why, will be printed to stderr. For release builds,
|
||||
<code>MESA_DEBUG</code> defaults to off (no debug output).
|
||||
<code>MESA_DEBUG</code> accepts the following comma-separated list of
|
||||
named flags, which adds extra behaviour to just set
|
||||
<code>MESA_DEBUG=1</code>:
|
||||
<dl>
|
||||
<dt><code>silent</code></dt>
|
||||
<dd>turn off debug messages. Only useful for debug builds.</dd>
|
||||
<dt><code>flush</code></dt>
|
||||
<dd>flush after each drawing command</dd>
|
||||
<dt><code>incomplete_tex</code></dt>
|
||||
<dd>extra debug messages when a texture is incomplete</dd>
|
||||
<dt><code>incomplete_fbo</code></dt>
|
||||
<dd>extra debug messages when a fbo is incomplete</dd>
|
||||
<dt><code>context</code></dt>
|
||||
<dd>create a debug context (see <code>GLX_CONTEXT_DEBUG_BIT_ARB</code>)
|
||||
and print error and performance messages to stderr (or
|
||||
<code>MESA_LOG_FILE</code>).</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt><code>MESA_LOG_FILE</code></dt>
|
||||
<dd>specifies a file name for logging all errors, warnings,
|
||||
etc., rather than stderr</dd>
|
||||
<dt><code>MESA_TEX_PROG</code></dt>
|
||||
<dd>if set, implement conventional texture env modes with
|
||||
fragment programs (intended for developers only)</dd>
|
||||
<dt><code>MESA_TNL_PROG</code></dt>
|
||||
<dd>if set, implement conventional vertex transformation operations with
|
||||
vertex programs (intended for developers only). Setting this variable
|
||||
automatically sets the <code>MESA_TEX_PROG</code> variable as well.</dd>
|
||||
<dt><code>MESA_EXTENSION_OVERRIDE</code></dt>
|
||||
<dd>can be used to enable/disable extensions. A value such as
|
||||
<code>GL_EXT_foo -GL_EXT_bar</code> will enable the
|
||||
<code>GL_EXT_foo</code> extension and disable the
|
||||
<code>GL_EXT_bar</code> extension.</dd>
|
||||
<dt><code>MESA_EXTENSION_MAX_YEAR</code></dt>
|
||||
<dd>The <code>GL_EXTENSIONS</code> string returned by Mesa is sorted by
|
||||
extension year. If this variable is set to year X, only extensions
|
||||
defined on or before year X will be reported. This is to work-around a
|
||||
bug in some games where the extension string is copied into a fixed-size
|
||||
buffer without truncating. If the extension string is too long, the
|
||||
buffer overrun can cause the game to crash. This is a work-around for
|
||||
that.</dd>
|
||||
<dt><code>MESA_GL_VERSION_OVERRIDE</code></dt>
|
||||
<dd>changes the value returned by
|
||||
<code>glGetString(GL_VERSION)</code> and possibly the GL API type.
|
||||
<ul>
|
||||
<li>The format should be <code>MAJOR.MINOR[FC|COMPAT]</code>
|
||||
<li><code>FC</code> is an optional suffix that indicates a forward
|
||||
compatible context. This is only valid for versions >= 3.0.
|
||||
<li><code>COMPAT</code> is an optional suffix that indicates a
|
||||
compatibility context or <code>GL_ARB_compatibility</code> support.
|
||||
This is only valid for versions >= 3.1.
|
||||
<li>MESA_NO_ASM - if set, disables all assembly language optimizations
|
||||
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
|
||||
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
|
||||
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
|
||||
<li>MESA_NO_ERROR - if set to 1, error checking is disabled as per KHR_no_error.
|
||||
This will result in undefined behaviour for invalid use of the api, but
|
||||
can reduce CPU use for apps that are known to be error free.</li>
|
||||
<li>MESA_DEBUG - if set, error messages are printed to stderr. For example,
|
||||
if the application generates a GL_INVALID_ENUM error, a corresponding error
|
||||
message indicating where the error occurred, and possibly why, will be
|
||||
printed to stderr.<br>
|
||||
|
||||
For release builds, MESA_DEBUG defaults to off (no debug output).
|
||||
|
||||
MESA_DEBUG accepts the following comma-separated list of named
|
||||
flags, which adds extra behaviour to just set MESA_DEBUG=1:
|
||||
<ul>
|
||||
<li>silent - turn off debug messages. Only useful for debug builds.</li>
|
||||
<li>flush - flush after each drawing command</li>
|
||||
<li>incomplete_tex - extra debug messages when a texture is incomplete</li>
|
||||
<li>incomplete_fbo - extra debug messages when a fbo is incomplete</li>
|
||||
<li>context - create a debug context (see GLX_CONTEXT_DEBUG_BIT_ARB) and
|
||||
print error and performance messages to stderr (or MESA_LOG_FILE).</li>
|
||||
</ul>
|
||||
<li>MESA_LOG_FILE - specifies a file name for logging all errors, warnings,
|
||||
etc., rather than stderr
|
||||
<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
|
||||
fragment programs (intended for developers only)
|
||||
<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
|
||||
operations with vertex programs (intended for developers only).
|
||||
Setting this variable automatically sets the MESA_TEX_PROG variable as well.
|
||||
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
|
||||
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
|
||||
and disable the GL_EXT_bar extension.
|
||||
<li>MESA_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted
|
||||
by extension year.
|
||||
If this variable is set to year X, only extensions defined on or before year
|
||||
X will be reported.
|
||||
This is to work-around a bug in some games where the extension string is
|
||||
copied into a fixed-size buffer without truncating.
|
||||
If the extension string is too long, the buffer overrun can cause the game
|
||||
to crash.
|
||||
This is a work-around for that.
|
||||
<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
|
||||
glGetString(GL_VERSION) and possibly the GL API type.
|
||||
<ul>
|
||||
<li>The format should be MAJOR.MINOR[FC|COMPAT]
|
||||
<li>FC is an optional suffix that indicates a forward compatible
|
||||
context. This is only valid for versions >= 3.0.
|
||||
<li>COMPAT is an optional suffix that indicates a compatibility
|
||||
context or GL_ARB_compatibility support. This is only valid for
|
||||
versions >= 3.1.
|
||||
<li>GL versions <= 3.0 are set to a compatibility (non-Core)
|
||||
profile
|
||||
<li>GL versions = 3.1, depending on the driver, it may or may not
|
||||
have the <code>ARB_compatibility</code> extension enabled.
|
||||
have the ARB_compatibility extension enabled.
|
||||
<li>GL versions >= 3.2 are set to a Core profile
|
||||
<li>Examples:
|
||||
<dl>
|
||||
<dt><code>2.1</code></dt>
|
||||
<dd>select a compatibility (non-Core) profile with GL version 2.1.</dd>
|
||||
<dt><code>3.0</code></dt>
|
||||
<dd>select a compatibility (non-Core) profile with GL version 3.0.</dd>
|
||||
<dt><code>3.0FC</code></dt>
|
||||
<dd>select a Core+Forward Compatible profile with GL version 3.0.</dd>
|
||||
<dt><code>3.1</code></dt>
|
||||
<dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
|
||||
enabled per the driver default.</dd>
|
||||
<dt><code>3.1FC</code></dt>
|
||||
<dd>select GL version 3.1 with forward compatibility and
|
||||
<code>GL_ARB_compatibility</code> disabled.</dd>
|
||||
<dt><code>3.1COMPAT</code></dt>
|
||||
<dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
|
||||
enabled.</dd>
|
||||
<dt><code>X.Y</code></dt>
|
||||
<dd>override GL version to X.Y without changing the profile.</dd>
|
||||
<dt><code>X.YFC</code></dt>
|
||||
<dd>select a Core+Forward Compatible profile with GL version X.Y.</dd>
|
||||
<dt><code>X.YCOMPAT</code></dt>
|
||||
<dd>select a Compatibility profile with GL version X.Y.</dd>
|
||||
</dl>
|
||||
<li>Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, X.Y, X.YFC,
|
||||
X.YCOMPAT.
|
||||
<ul>
|
||||
<li>2.1 - select a compatibility (non-Core) profile with GL
|
||||
version 2.1.
|
||||
<li>3.0 - select a compatibility (non-Core) profile with GL
|
||||
version 3.0.
|
||||
<li>3.0FC - select a Core+Forward Compatible profile with GL
|
||||
version 3.0.
|
||||
<li>3.1 - select GL version 3.1 with GL_ARB_compatibility enabled
|
||||
per the driver default.
|
||||
<li>3.1FC - select GL version 3.1 with forward compatibility and
|
||||
GL_ARB_compatibility disabled.
|
||||
<li>3.1COMPAT - select GL version 3.1 with GL_ARB_compatibility
|
||||
enabled.
|
||||
<li>X.Y - override GL version to X.Y without changing the profile.
|
||||
<li>X.YFC - select a Core+Forward Compatible profile with GL
|
||||
version X.Y.
|
||||
<li>X.YCOMPAT - select a Compatibility profile with GL version
|
||||
X.Y.
|
||||
</ul>
|
||||
<li>Mesa may not really implement all the features of the given
|
||||
version. (for developers only)
|
||||
</ul>
|
||||
</dd>
|
||||
<dt><code>MESA_GLES_VERSION_OVERRIDE</code></dt>
|
||||
<dd>changes the value returned by <code>glGetString(GL_VERSION)</code>
|
||||
for OpenGL ES.
|
||||
<li>MESA_GLES_VERSION_OVERRIDE - changes the value returned by
|
||||
glGetString(GL_VERSION) for OpenGL ES.
|
||||
<ul>
|
||||
<li> The format should be <code>MAJOR.MINOR</code>
|
||||
<li> Examples: <code>2.0</code>, <code>3.0</code>, <code>3.1</code>
|
||||
<li> The format should be MAJOR.MINOR
|
||||
<li> Examples: 2.0, 3.0, 3.1
|
||||
<li> Mesa may not really implement all the features of the given version.
|
||||
(for developers only)
|
||||
</ul>
|
||||
</dd>
|
||||
<dt><code>MESA_GLSL_VERSION_OVERRIDE</code></dt>
|
||||
<dd>changes the value returned by
|
||||
<code>glGetString(GL_SHADING_LANGUAGE_VERSION)</code>.
|
||||
Valid values are integers, such as <code>130</code>. Mesa will not
|
||||
really implement all the features of the given language version if
|
||||
it's higher than what's normally reported. (for developers only)
|
||||
</dd>
|
||||
<dt><code>MESA_GLSL_CACHE_DISABLE</code></dt>
|
||||
<dd>if set to <code>true</code>, disables the GLSL shader cache</dd>
|
||||
<dt><code>MESA_GLSL_CACHE_MAX_SIZE</code></dt>
|
||||
<dd>if set, determines the maximum size of the on-disk cache of compiled GLSL
|
||||
programs. Should be set to a number optionally followed by <code>K</code>,
|
||||
<code>M</code>, or <code>G</code> to specify a size in kilobytes,
|
||||
megabytes, or gigabytes. By default, gigabytes will be assumed. And if
|
||||
unset, a maximum size of 1GB will be used. Note: A separate cache might
|
||||
be created for each architecture that Mesa is installed for on your
|
||||
system. For example under the default settings you may end up with a 1GB
|
||||
cache for x86_64 and another 1GB cache for i386.</dd>
|
||||
<dt><code>MESA_GLSL_CACHE_DIR</code></dt>
|
||||
<dd>if set, determines the directory to be used for the on-disk cache of
|
||||
compiled GLSL programs. If this variable is not set, then the cache will
|
||||
be stored in <code>$XDG_CACHE_HOME/mesa_shader_cache</code> (if that
|
||||
variable is set), or else within <code>.cache/mesa_shader_cache</code>
|
||||
within the user's home directory.
|
||||
</dd>
|
||||
<dt><code>MESA_GLSL</code></dt>
|
||||
<dd><a href="shading.html#envvars">shading language compiler options</a></dd>
|
||||
<dt><code>MESA_NO_MINMAX_CACHE</code></dt>
|
||||
<dd>when set, the minmax index cache is globally disabled.</dd>
|
||||
<dt><code>MESA_SHADER_CAPTURE_PATH</code></dt>
|
||||
<dd>see <a href="shading.html#capture">Capturing Shaders</a></dd>
|
||||
<dt><code>MESA_SHADER_DUMP_PATH</code> and <code>MESA_SHADER_READ_PATH</code></dt>
|
||||
<dd>see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></dd>
|
||||
<dt><code>MESA_VK_VERSION_OVERRIDE</code></dt>
|
||||
<dd>changes the Vulkan physical device version
|
||||
as returned in <code>VkPhysicalDeviceProperties::apiVersion</code>.
|
||||
<li>MESA_GLSL_VERSION_OVERRIDE - changes the value returned by
|
||||
glGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as
|
||||
"130". Mesa will not really implement all the features of the given language version
|
||||
if it's higher than what's normally reported. (for developers only)
|
||||
<li>MESA_GLSL_CACHE_DISABLE - if set to `true`, disables the GLSL shader cache
|
||||
<li>MESA_GLSL_CACHE_MAX_SIZE - if set, determines the maximum size of
|
||||
the on-disk cache of compiled GLSL programs. Should be set to a number
|
||||
optionally followed by 'K', 'M', or 'G' to specify a size in
|
||||
kilobytes, megabytes, or gigabytes. By default, gigabytes will be
|
||||
assumed. And if unset, a maximum size of 1GB will be used. Note: A separate
|
||||
cache might be created for each architecture that Mesa is installed for on
|
||||
your system. For example under the default settings you may end up with a 1GB
|
||||
cache for x86_64 and another 1GB cache for i386.
|
||||
<li>MESA_GLSL_CACHE_DIR - if set, determines the directory to be used
|
||||
for the on-disk cache of compiled GLSL programs. If this variable is
|
||||
not set, then the cache will be stored in $XDG_CACHE_HOME/mesa_shader_cache (if
|
||||
that variable is set), or else within .cache/mesa_shader_cache within the user's
|
||||
home directory.
|
||||
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
|
||||
<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
|
||||
<li>MESA_SHADER_CAPTURE_PATH - see <a href="shading.html#capture">Capturing Shaders</a></li>
|
||||
<li>MESA_SHADER_DUMP_PATH and MESA_SHADER_READ_PATH - see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></li>
|
||||
<li>MESA_VK_VERSION_OVERRIDE - changes the Vulkan physical device version
|
||||
as returned in VkPhysicalDeviceProperties::apiVersion.
|
||||
<ul>
|
||||
<li>The format should be <code>MAJOR.MINOR[.PATCH]</code></li>
|
||||
<li>The format should be MAJOR.MINOR[.PATCH]</li>
|
||||
<li>This will not let you force a version higher than the driver's
|
||||
instance version as advertised by
|
||||
<code>vkEnumerateInstanceVersion</code></li>
|
||||
instance versionas advertised by vkEnumerateInstanceVersion</li>
|
||||
<li>This can be very useful for debugging but some features may not be
|
||||
implemented correctly. (For developers only)</li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
<h2>NIR passes enviroment variables</h2>
|
||||
<p>
|
||||
The following are only applicable for drivers that uses NIR, as they
|
||||
modify the behaviour for the common NIR_PASS and NIR_PASS_V macros,
|
||||
that wrap calls to NIR lowering/optimizations.
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dt><code>NIR_PRINT</code></dt>
|
||||
<dd>If defined, the resulting NIR shader will be printed out at each succesful NIR lowering/optimization call.</dd>
|
||||
<dt><code>NIR_TEST_CLONE</code></dt>
|
||||
<dd>If defined, cloning a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
|
||||
<dt><code>NIR_TEST_SERIALIZE</code></dt>
|
||||
<dd>If defined, serialize and deserialize a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Mesa Xlib driver environment variables</h2>
|
||||
@@ -233,139 +172,80 @@ that wrap calls to NIR lowering/optimizations.
|
||||
The following are only applicable to the Mesa Xlib software driver.
|
||||
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
||||
</p>
|
||||
<dl>
|
||||
<dt><code>MESA_RGB_VISUAL</code></dt>
|
||||
<dd>specifies the X visual and depth for RGB mode</dd>
|
||||
<dt><code>MESA_CI_VISUAL</code></dt>
|
||||
<dd>specifies the X visual and depth for CI mode</dd>
|
||||
<dt><code>MESA_BACK_BUFFER</code></dt>
|
||||
<dd>specifies how to implement the back color buffer, either
|
||||
<code>pixmap</code> or <code>ximage</code></dd>
|
||||
<dt><code>MESA_GAMMA</code></dt>
|
||||
<dd>gamma correction coefficients for red, green, blue channels</dd>
|
||||
<dt><code>MESA_XSYNC</code></dt>
|
||||
<dd>enable synchronous X behavior (for debugging only)</dd>
|
||||
<dt><code>MESA_GLX_FORCE_CI</code></dt>
|
||||
<dd>if set, force GLX to treat 8bpp visuals as CI visuals</dd>
|
||||
<dt><code>MESA_GLX_FORCE_ALPHA</code></dt>
|
||||
<dd>if set, forces RGB windows to have an alpha channel.</dd>
|
||||
<dt><code>MESA_GLX_DEPTH_BITS</code></dt>
|
||||
<dd>specifies default number of bits for depth buffer.</dd>
|
||||
<dt><code>MESA_GLX_ALPHA_BITS</code></dt>
|
||||
<dd>specifies default number of bits for alpha channel.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode
|
||||
<li>MESA_CI_VISUAL - specifies the X visual and depth for CI mode
|
||||
<li>MESA_BACK_BUFFER - specifies how to implement the back color buffer,
|
||||
either "pixmap" or "ximage"
|
||||
<li>MESA_GAMMA - gamma correction coefficients for red, green, blue channels
|
||||
<li>MESA_XSYNC - enable synchronous X behavior (for debugging only)
|
||||
<li>MESA_GLX_FORCE_CI - if set, force GLX to treat 8bpp visuals as CI visuals
|
||||
<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
|
||||
<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
|
||||
<li>MESA_GLX_ALPHA_BITS - specifies default number of bits for alpha channel.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
|
||||
|
||||
<dl>
|
||||
<dt><code>INTEL_NO_HW</code></dt>
|
||||
<dd>if set to 1, prevents batches from being submitted to the hardware.
|
||||
This is useful for debugging hangs, etc.</dd>
|
||||
<dt><code>INTEL_DEBUG</code></dt>
|
||||
<dd>a comma-separated list of named flags, which do various things:
|
||||
<dl>
|
||||
<dt><code>ann</code></dt>
|
||||
<dd>annotate IR in assembly dumps</dd>
|
||||
<dt><code>aub</code></dt>
|
||||
<dd>dump batches into an AUB trace for use with simulation tools</dd>
|
||||
<dt><code>bat</code></dt>
|
||||
<dd>emit batch information</dd>
|
||||
<dt><code>blit</code></dt>
|
||||
<dd>emit messages about blit operations</dd>
|
||||
<dt><code>blorp</code></dt>
|
||||
<dd>emit messages about the blorp operations (blits & clears)</dd>
|
||||
<dt><code>buf</code></dt>
|
||||
<dd>emit messages about buffer objects</dd>
|
||||
<dt><code>clip</code></dt>
|
||||
<dd>emit messages about the clip unit (for old gens, includes the CLIP program)</dd>
|
||||
<dt><code>color</code></dt>
|
||||
<dd>use color in output</dd>
|
||||
<dt><code>cs</code></dt>
|
||||
<dd>dump shader assembly for compute shaders</dd>
|
||||
<dt><code>do32</code></dt>
|
||||
<dd>generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</dd>
|
||||
<dt><code>dri</code></dt>
|
||||
<dd>emit messages about the DRI interface</dd>
|
||||
<dt><code>fbo</code></dt>
|
||||
<dd>emit messages about framebuffers</dd>
|
||||
<dt><code>fs</code></dt>
|
||||
<dd>dump shader assembly for fragment shaders</dd>
|
||||
<dt><code>gs</code></dt>
|
||||
<dd>dump shader assembly for geometry shaders</dd>
|
||||
<dt><code>hex</code></dt>
|
||||
<dd>print instruction hex dump with the disassembly</dd>
|
||||
<dt><code>l3</code></dt>
|
||||
<dd>emit messages about the new L3 state during transitions</dd>
|
||||
<dt><code>miptree</code></dt>
|
||||
<dd>emit messages about miptrees</dd>
|
||||
<dt><code>no8</code></dt>
|
||||
<dd>don't generate SIMD8 fragment shader</dd>
|
||||
<dt><code>no16</code></dt>
|
||||
<dd>suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</dd>
|
||||
<dt><code>nocompact</code></dt>
|
||||
<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>
|
||||
<dd>dump shader assembly to files at each optimization pass and iteration that make progress</dd>
|
||||
<dt><code>perf</code></dt>
|
||||
<dd>emit messages about performance issues</dd>
|
||||
<dt><code>perfmon</code></dt>
|
||||
<dd>emit messages about <code>AMD_performance_monitor</code></dd>
|
||||
<dt><code>pix</code></dt>
|
||||
<dd>emit messages about pixel operations</dd>
|
||||
<dt><code>prim</code></dt>
|
||||
<dd>emit messages about drawing primitives</dd>
|
||||
<dt><code>reemit</code></dt>
|
||||
<dd>mark all state dirty on each draw call</dd>
|
||||
<dt><code>sf</code></dt>
|
||||
<dd>emit messages about the strips & fans unit (for old gens, includes the SF program)</dd>
|
||||
<dt><code>shader_time</code></dt>
|
||||
<dd>record how much GPU time is spent in each shader</dd>
|
||||
<dt><code>spill_fs</code></dt>
|
||||
<dd>force spilling of all registers in the scalar backend (useful to debug spilling code)</dd>
|
||||
<dt><code>spill_vec4</code></dt>
|
||||
<dd>force spilling of all registers in the vec4 backend (useful to debug spilling code)</dd>
|
||||
<dt><code>state</code></dt>
|
||||
<dd>emit messages about state flag tracking</dd>
|
||||
<dt><code>submit</code></dt>
|
||||
<dd>emit batchbuffer usage statistics</dd>
|
||||
<dt><code>sync</code></dt>
|
||||
<dd>after sending each batch, emit a message and wait for that batch to finish rendering</dd>
|
||||
<dt><code>tcs</code></dt>
|
||||
<dd>dump shader assembly for tessellation control shaders</dd>
|
||||
<dt><code>tes</code></dt>
|
||||
<dd>dump shader assembly for tessellation evaluation shaders</dd>
|
||||
<dt><code>tex</code></dt>
|
||||
<dd>emit messages about textures.</dd>
|
||||
<dt><code>urb</code></dt>
|
||||
<dd>emit messages about URB setup</dd>
|
||||
<dt><code>vert</code></dt>
|
||||
<dd>emit messages about vertex assembly</dd>
|
||||
<dt><code>vs</code></dt>
|
||||
<dd>dump shader assembly for vertex shaders</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt><code>INTEL_SCALAR_VS</code> (or <code>TCS</code>, <code>TES</code>,
|
||||
<code>GS</code>)</dt>
|
||||
<dd>force scalar/vec4 mode for a shader stage (Gen8-9 only)</dd>
|
||||
<dt><code>INTEL_PRECISE_TRIG</code></dt>
|
||||
<dd>if set to 1, true or yes, then the driver prefers accuracy over
|
||||
performance in trig functions.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>INTEL_NO_HW - if set to 1, prevents batches from being submitted to the hardware.
|
||||
This is useful for debugging hangs, etc.</li>
|
||||
<li>INTEL_DEBUG - a comma-separated list of named flags, which do various things:
|
||||
<ul>
|
||||
<li>ann - annotate IR in assembly dumps</li>
|
||||
<li>aub - dump batches into an AUB trace for use with simulation tools</li>
|
||||
<li>bat - emit batch information</li>
|
||||
<li>blit - emit messages about blit operations</li>
|
||||
<li>blorp - emit messages about the blorp operations (blits & clears)</li>
|
||||
<li>buf - emit messages about buffer objects</li>
|
||||
<li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li>
|
||||
<li>color - use color in output</li>
|
||||
<li>cs - dump shader assembly for compute shaders</li>
|
||||
<li>do32 - generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</li>
|
||||
<li>dri - emit messages about the DRI interface</li>
|
||||
<li>fbo - emit messages about framebuffers</li>
|
||||
<li>fs - dump shader assembly for fragment shaders</li>
|
||||
<li>gs - dump shader assembly for geometry shaders</li>
|
||||
<li>hex - print instruction hex dump with the disassembly</li>
|
||||
<li>l3 - emit messages about the new L3 state during transitions</li>
|
||||
<li>miptree - emit messages about miptrees</li>
|
||||
<li>no8 - don't generate SIMD8 fragment shader</li>
|
||||
<li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li>
|
||||
<li>nocompact - disable instruction compaction</li>
|
||||
<li>nodualobj - suppress generation of dual-object geometry shader code</li>
|
||||
<li>norbc - disable single sampled render buffer compression</li>
|
||||
<li>optimizer - dump shader assembly to files at each optimization pass and iteration that make progress</li>
|
||||
<li>perf - emit messages about performance issues</li>
|
||||
<li>perfmon - emit messages about AMD_performance_monitor</li>
|
||||
<li>pix - emit messages about pixel operations</li>
|
||||
<li>prim - emit messages about drawing primitives</li>
|
||||
<li>reemit - mark all state dirty on each draw call</li>
|
||||
<li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
|
||||
<li>shader_time - record how much GPU time is spent in each shader</li>
|
||||
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
|
||||
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
|
||||
<li>state - emit messages about state flag tracking</li>
|
||||
<li>submit - emit batchbuffer usage statistics</li>
|
||||
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
|
||||
<li>tcs - dump shader assembly for tessellation control shaders</li>
|
||||
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
|
||||
<li>tex - emit messages about textures.</li>
|
||||
<li>urb - emit messages about URB setup</li>
|
||||
<li>vert - emit messages about vertex assembly</li>
|
||||
<li>vs - dump shader assembly for vertex shaders</li>
|
||||
</ul>
|
||||
<li>INTEL_SCALAR_VS (or TCS, TES, GS) - force scalar/vec4 mode for a shader stage (Gen8-9 only)</li>
|
||||
<li>INTEL_PRECISE_TRIG - if set to 1, true or yes, then the driver prefers
|
||||
accuracy over performance in trig functions.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
|
||||
|
||||
<dl>
|
||||
<dt><code>RADEON_NO_TCL</code></dt>
|
||||
<dd>if set, disable hardware-accelerated Transform/Clip/Lighting.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>RADEON_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>EGL environment variables</h2>
|
||||
@@ -378,170 +258,122 @@ Mesa EGL supports different sets of environment variables. See the
|
||||
|
||||
<h2>Gallium environment variables</h2>
|
||||
|
||||
<dl>
|
||||
<dt><code>GALLIUM_HUD</code></dt>
|
||||
<dd>draws various information on the screen, like framerate,
|
||||
<ul>
|
||||
<li>GALLIUM_HUD - draws various information on the screen, like framerate,
|
||||
cpu load, driver statistics, performance counters, etc.
|
||||
Set <code>GALLIUM_HUD=help</code> and run e.g.
|
||||
<code>glxgears</code> for more info.</dd>
|
||||
<dt><code>GALLIUM_HUD_PERIOD</code></dt>
|
||||
<dd>sets the hud update rate in seconds (float). Use zero
|
||||
to update every frame. The default period is 1/2 second.</dd>
|
||||
<dt><code>GALLIUM_HUD_VISIBLE</code></dt>
|
||||
<dd>control default visibility, defaults to true.</dd>
|
||||
<dt><code>GALLIUM_HUD_TOGGLE_SIGNAL</code></dt>
|
||||
<dd>toggle visibility via user specified signal.
|
||||
Set GALLIUM_HUD=help and run e.g. glxgears for more info.
|
||||
<li>GALLIUM_HUD_PERIOD - sets the hud update rate in seconds (float). Use zero
|
||||
to update every frame. The default period is 1/2 second.
|
||||
<li>GALLIUM_HUD_VISIBLE - control default visibility, defaults to true.
|
||||
<li>GALLIUM_HUD_TOGGLE_SIGNAL - toggle visibility via user specified signal.
|
||||
Especially useful to toggle hud at specific points of application and
|
||||
disable for unencumbered viewing the rest of the time. For example, set
|
||||
<code>GALLIUM_HUD_VISIBLE</code> to <code>false</code> and
|
||||
<code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
|
||||
(<code>SIGUSR1</code>).
|
||||
Use <code>kill -10 <pid></code> to toggle the hud as desired.</dd>
|
||||
<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
|
||||
<dd>specifies a directory for writing the displayed hud values into files.</dd>
|
||||
<dt><code>GALLIUM_DRIVER</code></dt>
|
||||
<dd>useful in combination with <code>LIBGL_ALWAYS_SOFTWARE=true</code> for
|
||||
choosing one of the software renderers <code>softpipe</code>,
|
||||
<code>llvmpipe</code> or <code>swr</code>.</dd>
|
||||
<dt><code>GALLIUM_LOG_FILE</code></dt>
|
||||
<dd>specifies a file for logging all errors, warnings, etc.
|
||||
rather than stderr.</dd>
|
||||
<dt><code>GALLIUM_PRINT_OPTIONS</code></dt>
|
||||
<dd>if non-zero, print all the Gallium environment variables which are
|
||||
used, and their current values.</dd>
|
||||
<dt><code>GALLIUM_DUMP_CPU</code></dt>
|
||||
<dd>if non-zero, print information about the CPU on start-up</dd>
|
||||
<dt><code>TGSI_PRINT_SANITY</code></dt>
|
||||
<dd>if set, do extra sanity checking on TGSI shaders and
|
||||
print any errors to stderr.</dd>
|
||||
<dt><code>DRAW_FSE</code></dt>
|
||||
<dd>???</dd>
|
||||
<dt><code>DRAW_NO_FSE</code></dt>
|
||||
<dd>???</dd>
|
||||
<dt><code>DRAW_USE_LLVM</code></dt>
|
||||
<dd>if set to zero, the draw module will not use LLVM to execute
|
||||
shaders, vertex fetch, etc.</dd>
|
||||
<dt><code>ST_DEBUG</code></dt>
|
||||
<dd>controls debug output from the Mesa/Gallium state tracker.
|
||||
Setting to <code>tgsi</code>, for example, will print all the TGSI
|
||||
shaders. See <code>src/mesa/state_tracker/st_debug.c</code> for other
|
||||
options.</dd>
|
||||
</dl>
|
||||
GALLIUM_HUD_VISIBLE to false and GALLIUM_HUD_TOGGLE_SIGNAL to 10 (SIGUSR1).
|
||||
Use kill -10 <pid> to toggle the hud as desired.
|
||||
<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
|
||||
hud values into files.
|
||||
<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=true for
|
||||
choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
|
||||
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
|
||||
rather than stderr.
|
||||
<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
|
||||
variables which are used, and their current values.
|
||||
<li>GALLIUM_DUMP_CPU - if non-zero, print information about the CPU on start-up
|
||||
<li>TGSI_PRINT_SANITY - if set, do extra sanity checking on TGSI shaders and
|
||||
print any errors to stderr.
|
||||
<LI>DRAW_FSE - ???
|
||||
<LI>DRAW_NO_FSE - ???
|
||||
<li>DRAW_USE_LLVM - if set to zero, the draw module will not use LLVM to execute
|
||||
shaders, vertex fetch, etc.
|
||||
<li>ST_DEBUG - controls debug output from the Mesa/Gallium state tracker.
|
||||
Setting to "tgsi", for example, will print all the TGSI shaders.
|
||||
See src/mesa/state_tracker/st_debug.c for other options.
|
||||
</ul>
|
||||
|
||||
<h3>Clover state tracker environment variables</h3>
|
||||
|
||||
<dl>
|
||||
<dt><code>CLOVER_EXTRA_BUILD_OPTIONS</code></dt>
|
||||
<dd>allows specifying additional compiler and linker
|
||||
<ul>
|
||||
<li>CLOVER_EXTRA_BUILD_OPTIONS - allows specifying additional compiler and linker
|
||||
options. Specified options are appended after the options set by the OpenCL
|
||||
program in <code>clBuildProgram</code>.</dd>
|
||||
<dt><code>CLOVER_EXTRA_COMPILE_OPTIONS</code></dt>
|
||||
<dd>allows specifying additional compiler
|
||||
program in clBuildProgram.
|
||||
<li>CLOVER_EXTRA_COMPILE_OPTIONS - allows specifying additional compiler
|
||||
options. Specified options are appended after the options set by the OpenCL
|
||||
program in <code>clCompileProgram</code>.</dd>
|
||||
<dt><code>CLOVER_EXTRA_LINK_OPTIONS</code></dt>
|
||||
<dd>allows specifying additional linker
|
||||
program in clCompileProgram.
|
||||
<li>CLOVER_EXTRA_LINK_OPTIONS - allows specifying additional linker
|
||||
options. Specified options are appended after the options set by the OpenCL
|
||||
program in <code>clLinkProgram</code>.</dd>
|
||||
</dl>
|
||||
program in clLinkProgram.
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Softpipe driver environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>SOFTPIPE_DUMP_FS</code></dt>
|
||||
<dd>if set, the softpipe driver will print fragment shaders to stderr</dd>
|
||||
<dt><code>SOFTPIPE_DUMP_GS</code></dt>
|
||||
<dd>if set, the softpipe driver will print geometry shaders to stderr</dd>
|
||||
<dt><code>SOFTPIPE_NO_RAST</code></dt>
|
||||
<dd>if set, rasterization is no-op'd. For profiling purposes.</dd>
|
||||
<dt><code>SOFTPIPE_USE_LLVM</code></dt>
|
||||
<dd>if set, the softpipe driver will try to use LLVM JIT for
|
||||
vertex shading processing.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
|
||||
to stderr
|
||||
<li>SOFTPIPE_DUMP_GS - if set, the softpipe driver will print geometry shaders
|
||||
to stderr
|
||||
<li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd. For profiling purposes.
|
||||
<li>SOFTPIPE_USE_LLVM - if set, the softpipe driver will try to use LLVM JIT for
|
||||
vertex shading processing.
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>LLVMpipe driver environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>LP_NO_RAST</code></dt>
|
||||
<dd>if set LLVMpipe will no-op rasterization</dd>
|
||||
<dt><code>LP_DEBUG</code></dt>
|
||||
<dd>a comma-separated list of debug options is accepted. See the
|
||||
source code for details.</dd>
|
||||
<dt><code>LP_PERF</code></dt>
|
||||
<dd>a comma-separated list of options to selectively no-op various
|
||||
parts of the driver. See the source code for details.</dd>
|
||||
<dt><code>LP_NUM_THREADS</code></dt>
|
||||
<dd>an integer indicating how many threads to use for rendering.
|
||||
<ul>
|
||||
<li>LP_NO_RAST - if set LLVMpipe will no-op rasterization
|
||||
<li>LP_DEBUG - a comma-separated list of debug options is accepted. See the
|
||||
source code for details.
|
||||
<li>LP_PERF - a comma-separated list of options to selectively no-op various
|
||||
parts of the driver. See the source code for details.
|
||||
<li>LP_NUM_THREADS - an integer indicating how many threads to use for rendering.
|
||||
Zero turns off threading completely. The default value is the number of CPU
|
||||
cores present.</dd>
|
||||
</dl>
|
||||
cores present.
|
||||
</ul>
|
||||
|
||||
<h3>VMware SVGA driver environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>SVGA_FORCE_SWTNL</code></dt>
|
||||
<dd>force use of software vertex transformation</dd>
|
||||
<dt><code>SVGA_NO_SWTNL</code></dt>
|
||||
<dd>don't allow software vertex transformation fallbacks (will often result
|
||||
in incorrect rendering).</dd>
|
||||
<dt><code>SVGA_DEBUG</code></dt>
|
||||
<dd>for dumping shaders, constant buffers, etc. See the code for
|
||||
details.</dd>
|
||||
<dt><code>SVGA_EXTRA_LOGGING</code></dt>
|
||||
<dd>if set, enables extra logging to the <code>vmware.log</code> file,
|
||||
such as the OpenGL program's name and command line arguments.</dd>
|
||||
<dt><code>SVGA_NO_LOGGING</code></dt>
|
||||
<dd>if set, disables logging to the <code>vmware.log</code> file. This is
|
||||
useful when using Valgrind because it otherwise crashes when
|
||||
initializing the host log feature.</dd>
|
||||
</dl>
|
||||
<p>See the driver code for other, lesser-used variables.</p>
|
||||
<ul>
|
||||
<li>SVGA_FORCE_SWTNL - force use of software vertex transformation
|
||||
<li>SVGA_NO_SWTNL - don't allow software vertex transformation fallbacks
|
||||
(will often result in incorrect rendering).
|
||||
<li>SVGA_DEBUG - for dumping shaders, constant buffers, etc. See the code
|
||||
for details.
|
||||
<li>SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
|
||||
such as the OpenGL program's name and command line arguments.
|
||||
<li>SVGA_NO_LOGGING - if set, disables logging to the vmware.log file.
|
||||
This is useful when using Valgrind because it otherwise crashes when
|
||||
initializing the host log feature.
|
||||
<li>See the driver code for other, lesser-used variables.
|
||||
</ul>
|
||||
|
||||
<h3>WGL environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>WGL_SWAP_INTERVAL</code></dt>
|
||||
<dd>to set a swap interval, equivalent to calling
|
||||
<code>wglSwapIntervalEXT()</code> in an application. If this
|
||||
environment variable is set, application calls to
|
||||
<code>wglSwapIntervalEXT()</code> will have no effect.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>WGL_SWAP_INTERVAL - to set a swap interval, equivalent to calling
|
||||
wglSwapIntervalEXT() in an application. If this environment variable
|
||||
is set, application calls to wglSwapIntervalEXT() will have no effect.
|
||||
</ul>
|
||||
|
||||
<h3>VA-API state tracker environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>VAAPI_MPEG4_ENABLED</code></dt>
|
||||
<dd>enable MPEG4 for VA-API, disabled by default.</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>VAAPI_MPEG4_ENABLED - enable MPEG4 for VA-API, disabled by default.
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>VC4 driver environment variables</h3>
|
||||
<dl>
|
||||
<dt><code>VC4_DEBUG</code></dt>
|
||||
<dd>a comma-separated list of named flags, which do various things:
|
||||
<dl>
|
||||
<dt><code>cl</code></dt>
|
||||
<dd>dump command list during creation</dd>
|
||||
<dt><code>qpu</code></dt>
|
||||
<dd>dump generated QPU instructions</dd>
|
||||
<dt><code>qir</code></dt>
|
||||
<dd>dump QPU IR during program compile</dd>
|
||||
<dt><code>nir</code></dt>
|
||||
<dd>dump NIR during program compile</dd>
|
||||
<dt><code>tgsi</code></dt>
|
||||
<dd>dump TGSI during program compile</dd>
|
||||
<dt><code>shaderdb</code></dt>
|
||||
<dd>dump program compile information for shader-db analysis</dd>
|
||||
<dt><code>perf</code></dt>
|
||||
<dd>print during performance-related events</dd>
|
||||
<dt><code>norast</code></dt>
|
||||
<dd>skip actual hardware execution of commands</dd>
|
||||
<dt><code>always_flush</code></dt>
|
||||
<dd>flush after each draw call</dd>
|
||||
<dt><code>always_sync</code></dt>
|
||||
<dd>wait for finish after each flush</dd>
|
||||
<dt><code>dump</code></dt>
|
||||
<dd>write a GPU command stream trace file (VC4 simulator only)</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<ul>
|
||||
<li>VC4_DEBUG - a comma-separated list of named flags, which do various things:
|
||||
<ul>
|
||||
<li>cl - dump command list during creation</li>
|
||||
<li>qpu - dump generated QPU instructions</li>
|
||||
<li>qir - dump QPU IR during program compile</li>
|
||||
<li>nir - dump NIR during program compile</li>
|
||||
<li>tgsi - dump TGSI during program compile</li>
|
||||
<li>shaderdb - dump program compile information for shader-db analysis</li>
|
||||
<li>perf - print during performance-related events</li>
|
||||
<li>norast - skip actual hardware execution of commands</li>
|
||||
<li>always_flush - flush after each draw call</li>
|
||||
<li>always_sync - wait for finish after each flush</li>
|
||||
<li>dump - write a GPU command stream trace file (VC4 simulator only)</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
|
142
docs/faq.html
142
docs/faq.html
@@ -2,21 +2,23 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Frequently Asked Questions</title>
|
||||
<title>Mesa FAQ</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Frequently Asked Questions</h1>
|
||||
<h1>Mesa Frequently Asked Questions</h1>
|
||||
Last updated: 19 September 2018
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Index</h2>
|
||||
<ol>
|
||||
<li><a href="#part1">High-level Questions and Answers</a></li>
|
||||
@@ -24,10 +26,14 @@ Last updated: 19 September 2018
|
||||
<li><a href="#part3">Runtime / Rendering Problems</a></li>
|
||||
<li><a href="#part4">Developer Questions</a></li>
|
||||
</ol>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<h2 id="part1">1. High-level Questions and Answers</h2>
|
||||
|
||||
<h3>1.1 What is Mesa?</h3>
|
||||
|
||||
<h1 id="part1">1. High-level Questions and Answers</h1>
|
||||
|
||||
<h2>1.1 What is Mesa?</h2>
|
||||
<p>
|
||||
Mesa is an open-source implementation of the OpenGL specification.
|
||||
OpenGL is a programming library for writing interactive 3D applications.
|
||||
@@ -96,17 +102,17 @@ the Xlib API:
|
||||
<li>The GLX wire protocol is not supported and there's no OpenGL extension
|
||||
loaded by the X server.
|
||||
<li>There is no hardware acceleration.
|
||||
<li>The OpenGL library, <code>libGL.so</code>, contains everything (the
|
||||
programming API, the GLX functions and all the rendering code).
|
||||
<li>The OpenGL library, libGL.so, contains everything (the programming API,
|
||||
the GLX functions and all the rendering code).
|
||||
</ul>
|
||||
<p>
|
||||
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
|
||||
within the DRI (Direct Rendering Infrastructure):
|
||||
<ul>
|
||||
<li>The <code>libGL.so</code> library provides the GL and GLX API functions,
|
||||
a GLX protocol encoder, and a device driver loader.
|
||||
<li>The device driver modules (such as <code>r200_dri.so</code>) contain
|
||||
a built-in copy of the core Mesa code.
|
||||
<li>The libGL.so library provides the GL and GLX API functions, a GLX
|
||||
protocol encoder, and a device driver loader.
|
||||
<li>The device driver modules (such as r200_dri.so) contain a built-in
|
||||
copy of the core Mesa code.
|
||||
<li>The X server loads the GLX module.
|
||||
The GLX module decodes incoming GLX protocol and dispatches the commands
|
||||
to a rendering module.
|
||||
@@ -126,7 +132,7 @@ Just follow the Mesa <a href="install.html">compilation instructions</a>.
|
||||
|
||||
<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
|
||||
<p>
|
||||
Yes, SGI's <a href="http://web.archive.org/web/20171010115110_/http://oss.sgi.com/projects/ogl-sample/index.html">
|
||||
Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html">
|
||||
OpenGL Sample Implementation (SI)</a> is available.
|
||||
The SI was written during the time that OpenGL was originally designed.
|
||||
Unfortunately, development of the SI has stagnated.
|
||||
@@ -138,9 +144,8 @@ Mesa is much more up to date with modern features and extensions.
|
||||
an open-source implementation of OpenGL ES for mobile devices.
|
||||
|
||||
<p>
|
||||
<a href="http://web.archive.org/web/20130830162848/http://www.dsbox.com/minigl.html">miniGL</a>
|
||||
is a subset of OpenGL for PalmOS devices. The website is gone, but the source
|
||||
code can still be found on <a href="https://sourceforge.net/projects/minigl/">sourceforge.net</a>.
|
||||
<a href="http://www.dsbox.com/minigl.html">miniGL</a>
|
||||
is a subset of OpenGL for PalmOS devices.
|
||||
|
||||
<p>
|
||||
<a href="http://bellard.org/TinyGL/">TinyGL</a>
|
||||
@@ -170,16 +175,22 @@ popular and feature-complete.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="part2">2. Compilation and Installation Problems</h2>
|
||||
|
||||
<h3>2.1 What's the easiest way to install Mesa?</h3>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<h1 id="part2">2. Compilation and Installation Problems</h1>
|
||||
|
||||
|
||||
<h2>2.1 What's the easiest way to install Mesa?</h2>
|
||||
<p>
|
||||
If you're using a Linux-based system, your distro CD most likely already
|
||||
has Mesa packages (like RPM or DEB) which you can easily install.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h3>
|
||||
<h2>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h2>
|
||||
<p>
|
||||
You're application is written in IRIS GL, not OpenGL.
|
||||
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
|
||||
@@ -188,49 +199,38 @@ Mesa's not the solution.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>2.3 Where is the GLUT library?</h3>
|
||||
<h2>2.3 Where is the GLUT library?</h2>
|
||||
<p>
|
||||
GLUT (OpenGL Utility Toolkit) is no longer in the separate
|
||||
<code>MesaGLUT-x.y.z.tar.gz</code> file.
|
||||
GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file.
|
||||
If you don't already have GLUT installed, you should grab
|
||||
<a href="http://freeglut.sourceforge.net/">freeglut</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>2.4 Where is the GLw library?</h3>
|
||||
<h2>2.4 Where is the GLw library?</h2>
|
||||
<p>
|
||||
GLw (OpenGL widget library) is now available from a separate <a href="https://gitlab.freedesktop.org/mesa/glw">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
|
||||
GLw (OpenGL widget library) is now available from a separate <a href="https://cgit.freedesktop.org/mesa/glw/">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>2.5 What's the proper place for the libraries and headers?</h2>
|
||||
<p>
|
||||
On Linux-based systems you'll want to follow the
|
||||
<a href="https://www.khronos.org/registry/OpenGL/ABI/">Linux ABI</a> standard.
|
||||
<a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html">Linux ABI</a> standard.
|
||||
Basically you'll want the following:
|
||||
</p>
|
||||
<dl>
|
||||
<dt><code>/usr/include/GL/gl.h</code></dt>
|
||||
<dd>the main OpenGL header</dd>
|
||||
<dt><code>/usr/include/GL/glu.h</code></dt>
|
||||
<dd>the OpenGL GLU (utility) header</dd>
|
||||
<dt><code>/usr/include/GL/glx.h</code></dt>
|
||||
<dd>the OpenGL GLX header</dd>
|
||||
<dt><code>/usr/include/GL/glext.h</code></dt>
|
||||
<dd>the OpenGL extensions header</dd>
|
||||
<dt><code>/usr/include/GL/glxext.h</code></dt>
|
||||
<dd>the OpenGL GLX extensions header</dd>
|
||||
<dt><code>/usr/include/GL/osmesa.h</code></dt>
|
||||
<dd>the Mesa off-screen rendering header</dd>
|
||||
<dt><code>/usr/lib/libGL.so</code></dt>
|
||||
<dd>a symlink to <code>libGL.so.1</code></dd>
|
||||
<dt><code>/usr/lib/libGL.so.1</code></dt>
|
||||
<dd>a symlink to <code>libGL.so.1.xyz</code></dd>
|
||||
<dt><code>/usr/lib/libGL.so.xyz</code></dt>
|
||||
<dd>the actual OpenGL/Mesa library. xyz denotes the
|
||||
<ul>
|
||||
<li>/usr/include/GL/gl.h - the main OpenGL header
|
||||
</li><li>/usr/include/GL/glu.h - the OpenGL GLU (utility) header
|
||||
</li><li>/usr/include/GL/glx.h - the OpenGL GLX header
|
||||
</li><li>/usr/include/GL/glext.h - the OpenGL extensions header
|
||||
</li><li>/usr/include/GL/glxext.h - the OpenGL GLX extensions header
|
||||
</li><li>/usr/include/GL/osmesa.h - the Mesa off-screen rendering header
|
||||
</li><li>/usr/lib/libGL.so - a symlink to libGL.so.1
|
||||
</li><li>/usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz
|
||||
</li><li>/usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library. xyz denotes the
|
||||
Mesa version number.
|
||||
</dd>
|
||||
</dl>
|
||||
</li></ul>
|
||||
<p>
|
||||
When configuring Mesa, there are three meson options that affect the install
|
||||
location that you should take care with: <code>--prefix</code>,
|
||||
@@ -249,11 +249,13 @@ After determining the correct values for the install location, configure Mesa
|
||||
with <code>meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx</code>
|
||||
and then install with <code>sudo ninja install</code>.
|
||||
</p>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
<h2 id="part3">3. Runtime / Rendering Problems</h2>
|
||||
<h1 id="part3">3. Runtime / Rendering Problems</h1>
|
||||
|
||||
<h3>3.1 Rendering is slow / why isn't my graphics hardware being used?</h3>
|
||||
<h2>3.1 Rendering is slow / why isn't my graphics hardware being used?</h2>
|
||||
<p>
|
||||
If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
|
||||
(eg. classic swrast, softpipe or llvmpipe)
|
||||
@@ -274,57 +276,60 @@ If your DRI-based driver isn't working, go to the
|
||||
</p>
|
||||
|
||||
|
||||
<h3>3.2 I'm seeing errors in depth (Z) buffering. Why?</h3>
|
||||
<h2>3.2 I'm seeing errors in depth (Z) buffering. Why?</h2>
|
||||
<p>
|
||||
Make sure the ratio of the far to near clipping planes isn't too great.
|
||||
Look
|
||||
<a href="https://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm#0040">here</a>
|
||||
<a href="https://www.opengl.org/resources/faq/technical/depthbuffer.htm#0040">here</a>
|
||||
for details.
|
||||
</p>
|
||||
<p>
|
||||
Mesa uses a 16-bit depth buffer by default which is smaller and faster
|
||||
to clear than a 32-bit buffer but not as accurate.
|
||||
If you need a deeper you can modify the parameters to
|
||||
<code>glXChooseVisual</code> in your code.
|
||||
<code> glXChooseVisual</code> in your code.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>3.3 Why Isn't depth buffering working at all?</h3>
|
||||
<h2>3.3 Why Isn't depth buffering working at all?</h2>
|
||||
<p>
|
||||
Be sure you're requesting a depth buffered-visual. If you set the
|
||||
<code>MESA_DEBUG</code> environment variable it will warn you about trying
|
||||
to enable depth testing when you don't have a depth buffer.
|
||||
Be sure you're requesting a depth buffered-visual. If you set the MESA_DEBUG
|
||||
environment variable it will warn you about trying to enable depth testing
|
||||
when you don't have a depth buffer.
|
||||
</p>
|
||||
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
|
||||
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
|
||||
called with a non-zero value for <code>GLX_DEPTH_SIZE</code>.
|
||||
called with a non-zero value for GLX_DEPTH_SIZE.
|
||||
</p>
|
||||
<p>This discussion applies to stencil buffers, accumulation buffers and
|
||||
alpha channels too.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>3.4 Why does <code>glGetString()</code> always return <code>NULL</code>?</h3>
|
||||
<h2>3.4 Why does glGetString() always return NULL?</h2>
|
||||
<p>
|
||||
Be sure you have an active/current OpenGL rendering context before
|
||||
calling <code>glGetString</code>.
|
||||
calling glGetString.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>3.5 <code>GL_POINTS</code> and <code>GL_LINES</code> don't touch the
|
||||
right pixels</h3>
|
||||
<h2>3.5 GL_POINTS and GL_LINES don't touch the right pixels</h2>
|
||||
<p>
|
||||
If you're trying to draw a filled region by using <code>GL_POINTS</code> or
|
||||
<code>GL_LINES</code> and seeing holes or gaps it's because of a float-to-int
|
||||
rounding problem. But this is not a bug. See Appendix H of the OpenGL
|
||||
Programming Guide - "OpenGL Correctness Tips". Basically, applying a
|
||||
translation of (0.375, 0.375, 0.0) to your coordinates will fix the problem.
|
||||
If you're trying to draw a filled region by using GL_POINTS or GL_LINES
|
||||
and seeing holes or gaps it's because of a float-to-int rounding problem.
|
||||
But this is not a bug.
|
||||
See Appendix H of the OpenGL Programming Guide - "OpenGL Correctness Tips".
|
||||
Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates
|
||||
will fix the problem.
|
||||
</p>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<h2 id="part4">4. Developer Questions</h2>
|
||||
|
||||
<h3>4.1 How can I contribute?</h3>
|
||||
<h1 id="part4">4. Developer Questions</h1>
|
||||
|
||||
<h2>4.1 How can I contribute?</h2>
|
||||
<p>
|
||||
First, join the <a href="lists.html">mesa-dev mailing list</a>.
|
||||
That's where Mesa development is discussed.
|
||||
@@ -338,7 +343,7 @@ You should read it.
|
||||
extensions, writing hardware drivers (for the DRI), and code optimization.
|
||||
</p>
|
||||
|
||||
<h3>4.2 How do I write a new device driver?</h3>
|
||||
<h2>4.2 How do I write a new device driver?</h2>
|
||||
<p>
|
||||
Unfortunately, writing a device driver isn't easy.
|
||||
It requires detailed understanding of OpenGL, the Mesa code, and your
|
||||
@@ -362,8 +367,7 @@ the archives) is a good way to get information.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>4.3 Why isn't <code>GL_EXT_texture_compression_s3tc</code> implemented in
|
||||
Mesa?</h3>
|
||||
<h2>4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa?</h2>
|
||||
<p>
|
||||
Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
|
||||
support due to intellectual property (IP) and/or patent issues around the s3tc
|
||||
|
@@ -127,14 +127,14 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
- 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_gpu_shader_fp64 DONE (i965/gen7+, llvmpipe, softpipe)
|
||||
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+)
|
||||
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_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_transform_feedback2 DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||
|
||||
@@ -145,19 +145,19 @@ GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
GL_ARB_get_program_binary DONE (0 or 1 binary formats)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
|
||||
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
|
||||
|
||||
|
||||
GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
|
||||
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_shader_atomic_counters DONE (freedreno/a5xx+, i965, 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,21 +170,21 @@ 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_copy_image DONE (i965, nv50, softpipe, llvmpipe, swr)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe)
|
||||
GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe)
|
||||
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_storage_buffer_object 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, 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)
|
||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, llvmpipe)
|
||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_texture_view DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
@@ -209,31 +209,31 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
|
||||
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)
|
||||
|
||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi, r600
|
||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
||||
|
||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl)
|
||||
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, softpipe, virgl)
|
||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, r600, softpipe, virgl)
|
||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_cull_distance DONE (i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, r600, 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)
|
||||
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, virgl)
|
||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600, virgl)
|
||||
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, r600, virgl)
|
||||
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
||||
GL_KHR_robustness DONE (freedreno, i965)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
GL 4.6, GLSL 4.60
|
||||
|
||||
GL_ARB_gl_spirv DONE (i965/gen7+)
|
||||
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_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, radeonsi, softpipe, virgl)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_spirv_extensions DONE (i965/gen7+)
|
||||
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)
|
||||
@@ -244,15 +244,15 @@ 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_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, 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+, softpipe)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr)
|
||||
@@ -303,10 +303,10 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_fragment_shader_interlock DONE (i965)
|
||||
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_parallel_shader_compile DONE (all drivers)
|
||||
GL_ARB_post_depth_coverage DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_post_depth_coverage DONE (i965, nvc0)
|
||||
GL_ARB_robustness_isolation not started
|
||||
GL_ARB_sample_locations DONE (nvc0)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
||||
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)
|
||||
@@ -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_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+)
|
||||
VK_KHR_shader_subgroup_extended_types not started
|
||||
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 not started
|
||||
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
|
||||
|
@@ -8,13 +8,13 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Help Wanted</h1>
|
||||
<h1>Help Wanted / To-Do List</h1>
|
||||
|
||||
<p>
|
||||
We can always use more help with the Mesa project.
|
||||
@@ -32,8 +32,8 @@ Just applying patches, testing and reporting back is helpful.
|
||||
There are plenty of open bugs in the <a href="https://gitlab.freedesktop.org/mesa/mesa/issues">bug database</a>.
|
||||
<li>
|
||||
<b>Remove aliasing warnings.</b>
|
||||
Enable gcc's <code>-Wstrict-aliasing=2 -fstrict-aliasing</code> arguments, and
|
||||
track down aliasing issues in the code.
|
||||
Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
||||
issues in the code.
|
||||
<li>
|
||||
<b>Contribute more tests to
|
||||
<a href="https://piglit.freedesktop.org/">Piglit</a>.</b>
|
||||
@@ -48,8 +48,7 @@ You can find some further To-do lists here:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/features.txt">
|
||||
<code>features.txt</code></a> - Status of OpenGL 3.x / 4.x features in
|
||||
Mesa.</li>
|
||||
<b>features.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
@@ -57,9 +56,9 @@ You can find some further To-do lists here:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="https://dri.freedesktop.org/wiki/R600ToDo">
|
||||
<code>r600g</code></a> - Driver for ATI/AMD R600 - Northern Island.</li>
|
||||
<b>r600g</b></a> - Driver for ATI/AMD R600 - Northern Island.</li>
|
||||
<li><a href="https://dri.freedesktop.org/wiki/R300ToDo">
|
||||
<code>r300g</code></a> - Driver for ATI R300 - R500.</li>
|
||||
<b>r300g</b></a> - Driver for ATI R300 - R500.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
211
docs/index.html
211
docs/index.html
@@ -8,116 +8,13 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<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.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 23, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.3.html">Mesa 19.1.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 9, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.2.html">Mesa 19.1.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>June 26, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.0.8.html">Mesa 19.0.8</a> is released.
|
||||
This is an emergency bug fix release. Users of 19.0.7 should updated to 19.0.8
|
||||
or 19.1.1 immediately.
|
||||
</p>
|
||||
|
||||
<h2>June 25, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.1.html">Mesa 19.1.1</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>June 24, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.0.7.html">Mesa 19.0.7</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
NOTE: It is anticipated that 19.0.7 will be the final release in the
|
||||
19.0 series. Users of 19.0 are encouraged to migrate to the 19.1
|
||||
series in order to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>June 11, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.1.0.html">Mesa 19.1.0</a> is released.
|
||||
This is a new development release. See the release notes for more
|
||||
information about this release
|
||||
</p>
|
||||
<h2>June 5, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.0.6.html">Mesa 19.0.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>May 21, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.0.5.html">Mesa 19.0.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>May 9, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.0.4.html">Mesa 19.0.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>April 24, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/19.0.3.html">Mesa 19.0.3</a> is released.
|
||||
@@ -134,8 +31,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/18.3.6.html">Mesa 18.3.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 18.3.6 will be the final release in the
|
||||
18.3 series. Users of 18.3 are encouraged to migrate to the 19.0
|
||||
series in order to obtain future fixes.
|
||||
@@ -182,8 +78,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/18.2.8.html">Mesa 18.2.8</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 18.2.8 will be the final release in the
|
||||
18.2 series. Users of 18.2 are encouraged to migrate to the 18.3
|
||||
series in order to obtain future fixes.
|
||||
@@ -242,8 +137,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/18.1.9.html">Mesa 18.1.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 18.1.9 will be the final release in the
|
||||
18.1 series. Users of 18.1 are encouraged to migrate to the 18.2
|
||||
series in order to obtain future fixes.
|
||||
@@ -305,8 +199,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/18.0.5.html">Mesa 18.0.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 18.0.5 will be the final release in the
|
||||
18.0 series. Users of 18.0 are encouraged to migrate to the 18.1
|
||||
series in order to obtain future fixes.
|
||||
@@ -353,8 +246,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/17.3.9.html">Mesa 17.3.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 17.3.9 will be the final release in the
|
||||
17.3 series. Users of 17.3 are encouraged to migrate to the 18.0
|
||||
series in order to obtain future fixes.
|
||||
@@ -413,8 +305,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/17.2.8.html">Mesa 17.2.8</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 17.2.8 will be the final release in the
|
||||
17.2 series. Users of 17.2 are encouraged to migrate to the 17.3
|
||||
series in order to obtain future fixes.
|
||||
@@ -473,8 +364,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/17.1.10.html">Mesa 17.1.10</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 17.1.10 will be the final release in the
|
||||
17.1 series. Users of 17.1 are encouraged to migrate to the 17.2
|
||||
series in order to obtain future fixes.
|
||||
@@ -545,8 +435,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/17.0.7.html">Mesa 17.0.7</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 17.0.7 will be the final release in the 17.0
|
||||
series. Users of 17.0 are encouraged to migrate to the 17.1 series in order
|
||||
to obtain future fixes.
|
||||
@@ -595,8 +484,7 @@ This is a bug-fix release.
|
||||
<a href="relnotes/17.0.2.html">Mesa 17.0.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 13.0 and 17.0 branches, respectively.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 13.0.6 will be the final release in the 13.0
|
||||
series. Users of 13.0 are encouraged to migrate to the 17.0 series in order
|
||||
to obtain future fixes.
|
||||
@@ -631,8 +519,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/12.0.6.html">Mesa 12.0.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: This is an extra release for the 12.0 stable branch, as per developers'
|
||||
feedback. It is anticipated that 12.0.6 will be the final release in the 12.0
|
||||
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
||||
@@ -649,8 +536,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/12.0.5.html">Mesa 12.0.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 12.0.5 will be the final release in the 12.0
|
||||
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
||||
to obtain future fixes.
|
||||
@@ -712,8 +598,7 @@ about the release.
|
||||
<a href="relnotes/11.2.2.html">Mesa 11.2.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 11.1.4 will be the final release in the 11.1.4
|
||||
series. Users of 11.1 are encouraged to migrate to the 11.2 series in order
|
||||
to obtain future fixes.
|
||||
@@ -744,8 +629,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/11.0.9.html">Mesa 11.0.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 11.0.9 will be the final release in the 11.0
|
||||
series. Users of 11.0 are encouraged to migrate to the 11.1 series in order
|
||||
to obtain future fixes.
|
||||
@@ -809,8 +693,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/10.6.9.html">Mesa 10.6.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 10.6.9 will be the final release in the 10.6
|
||||
series. Users of 10.6 are encouraged to migrate to the 11.0 series in order
|
||||
to obtain future fixes.
|
||||
@@ -881,8 +764,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/10.5.9.html">Mesa 10.5.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 10.5.9 will be the final release in the 10.5
|
||||
series. Users of 10.5 are encouraged to migrate to the 10.6 series in order
|
||||
to obtain future fixes.
|
||||
@@ -992,8 +874,7 @@ This is a bug-fix release.
|
||||
and <a href="relnotes/10.4.2.html">Mesa 10.4.2</a> are released.
|
||||
|
||||
These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 10.3.7 will be the final release in the 10.3
|
||||
series. Users of 10.3 are encouraged to migrate to the 10.4 series in order
|
||||
to obtain future fixes.
|
||||
@@ -1044,8 +925,7 @@ This is a bug-fix release.
|
||||
and <a href="relnotes/10.3.1.html">Mesa 10.3.1</a> are released.
|
||||
|
||||
These are bug-fix releases from the 10.2 and 10.3 branches, respectively.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: It is anticipated that 10.2.9 will be the final release in the 10.2
|
||||
series. Users of 10.2 are encouraged to migrate to the 10.3 series in order
|
||||
to obtain future fixes.
|
||||
@@ -1157,8 +1037,7 @@ This is a bug-fix release.
|
||||
<p>
|
||||
<a href="relnotes/10.0.5.html">Mesa 10.0.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
NOTE: Since the 10.1.1 release is being released concurrently, it is
|
||||
anticipated that 10.0.5 will be the final release in the 10.0
|
||||
series. Users of 10.0 are encouraged to migrate to the 10.1 series in
|
||||
@@ -1637,9 +1516,9 @@ with a new test that does over 130 tests of the
|
||||
shading language and built-in functions.
|
||||
</p>
|
||||
|
||||
<h2>April 4, 2007</h2>
|
||||
<h2>April 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>
|
||||
|
||||
@@ -2037,7 +1916,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
|
||||
@@ -2090,7 +1969,7 @@ Mesa 5.0.2 has been released. This is a stable, bug-fix release.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>June 8, 2003</h2>
|
||||
<h2>June 2003</h2>
|
||||
|
||||
<p>
|
||||
Mesa's directory tree has been overhauled.
|
||||
@@ -2467,7 +2346,7 @@ Here's what's new:</p>
|
||||
|
||||
<h2>April 29, 2001</h2>
|
||||
<p>New Mesa website</p>
|
||||
<p>Mark Manning produced the new website. Thanks, Mark!</p>
|
||||
<p>Mark Manning produced the new website.<br>Thanks, Mark!</p>
|
||||
|
||||
|
||||
<h2>February 14, 2001</h2>
|
||||
@@ -2586,9 +2465,8 @@ just bug fixes.</p>
|
||||
</pre>
|
||||
|
||||
<p>Please report any problems with this release ASAP. Bugs should be filed on the
|
||||
Mesa3D website at sourceforge.
|
||||
</p>
|
||||
<p>After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.</p>
|
||||
Mesa3D website at sourceforge.<br>
|
||||
After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.</p>
|
||||
<p>-- Brian</p>
|
||||
|
||||
<h2>December 17, 1999</h2>
|
||||
@@ -2633,27 +2511,21 @@ ftp, and CVS services aren't fully restored yet. Please be patient.</p>
|
||||
<p>-Brian</p>
|
||||
|
||||
<h2>June 7, 1999</h2>
|
||||
<p>RPMS of the nVidia RIVA server can be found at
|
||||
<a href="ftp://ftp.mesa3d.org/mesa/misc/nVidia/">
|
||||
ftp://ftp.mesa3d.org/mesa/misc/nVidia/</a>.</p>
|
||||
<p>RPMS of the nVidia RIVA server can be found at <code>ftp://ftp.mesa3d.org/mesa/misc/nVidia/</code>.</p>
|
||||
|
||||
<h2>June 2, 1999</h2>
|
||||
<p><a href="https://www.nvidia.com/">nVidia</a> has released some Linux binaries for
|
||||
xfree86 3.3.3.1, along with the <b>full source</b>, which includes GLX acceleration
|
||||
based on Mesa 3.0. They can be downloaded from
|
||||
<a href="https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html">
|
||||
https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</a>.</p>
|
||||
based on Mesa 3.0. They can be downloaded from <code>https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</code>.</p>
|
||||
|
||||
<h2>May 24, 1999</h2>
|
||||
<p>Beta 2 of Mesa 3.1 has been make available at
|
||||
<a href="ftp://ftp.mesa3d.org/mesa/beta/">ftp://ftp.mesa3d.org/mesa/beta/</a>. If you are into the
|
||||
quake scene, you may want to try this out, as it contains some optimizations
|
||||
specifically in the Q3A rendering path.
|
||||
<p>Beta 2 of Mesa 3.1 has been make available at <code>ftp://ftp.mesa3d.org/mesa/beta/</code>.
|
||||
If you are into the 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>
|
||||
has posted their lowlevel design documents at <code>http://www.precisioninsight.com</code>.</p>
|
||||
|
||||
<h2>May 13, 1999</h2>
|
||||
<pre>May 1999 - John Carmack of id Software, Inc. has made a donation of
|
||||
@@ -2679,11 +2551,11 @@ grateful.
|
||||
|
||||
<h2>May 1, 1999</h2>
|
||||
<p>John Carmack made an interesting .plan update yesterday:</p>
|
||||
<pre>
|
||||
I put together a document on optimizing OpenGL drivers for Q3 that should be helpful to the various Linux 3D teams.
|
||||
|
||||
http://www.quake3arena.com/news/glopt.html
|
||||
</pre>
|
||||
<blockquote>
|
||||
<i>"I put together a document on optimizing OpenGL drivers for Q3 that
|
||||
should be helpful to the various Linux 3D teams.</i><br>
|
||||
http://www.quake3arena.com/news/glopt.html"
|
||||
</blockquote>
|
||||
|
||||
<h2>April 7, 1999</h2>
|
||||
<p>Updated the Mesa contributors section and added links to RPM Mesa packages.</p>
|
||||
@@ -2691,14 +2563,13 @@ 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>
|
||||
<a href="https://www.sgi.com/software/opensource/glx/">GLX source code</a>.</p>
|
||||
|
||||
<h2>January 22, 1999</h2>
|
||||
<p><a href="https://www.mesa3d.org">www.mesa3d.org</a> established</p>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -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>
|
||||
@@ -30,23 +31,26 @@
|
||||
</ol>
|
||||
|
||||
|
||||
<h2 id="prereq-general">1. Prerequisites for building</h2>
|
||||
<h1 id="prereq-general">1. Prerequisites for building</h1>
|
||||
|
||||
<h3>1.1 General</h3>
|
||||
<h2>1.1 General</h2>
|
||||
|
||||
<h4>Build system</h4>
|
||||
<p>
|
||||
Build system.
|
||||
</p>
|
||||
|
||||
<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
|
||||
willing to maintain support for other compiler get in touch.
|
||||
@@ -59,7 +63,14 @@ willing to maintain support for other compiler get in touch.
|
||||
</ul>
|
||||
|
||||
|
||||
<h4>Third party/extra tools.</h4>
|
||||
<p>
|
||||
Third party/extra tools.
|
||||
<br>
|
||||
<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.
|
||||
@@ -70,14 +81,14 @@ When building with meson 3.5 or newer is required.
|
||||
Python Mako module is required. Version 0.8.0 or later should work.
|
||||
</li>
|
||||
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
|
||||
<p>
|
||||
<div>
|
||||
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:
|
||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
||||
For MSVC on Windows, install
|
||||
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
||||
</p>
|
||||
</div>
|
||||
</ul>
|
||||
<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
|
||||
|
||||
@@ -103,13 +114,11 @@ the packaging tool used by your distro.
|
||||
... # others
|
||||
</pre>
|
||||
|
||||
<h2 id="meson">2. Building with meson</h2>
|
||||
|
||||
<p><string>Meson &6t;= 0.46.0 is required</string></p>
|
||||
<h1 id="meson">2. Building with meson</h1>
|
||||
|
||||
<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>
|
||||
@@ -120,34 +129,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>
|
||||
|
||||
<p>On windows you can also use the visual studio backend</p>
|
||||
<pre>
|
||||
meson builddir --backend=vs
|
||||
cd builddir
|
||||
msbuild mesa.sln /m
|
||||
</pre>
|
||||
<h1 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h1>
|
||||
|
||||
<p>
|
||||
Please read the <a href="meson.html">detailed meson instructions</a>
|
||||
for more information
|
||||
Autoconf support was removed in Mesa 19.1.0. Please use meson instead.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<h2 id="scons">3. Building with SCons (Windows/Linux)</h2>
|
||||
<h1 id="scons">4. Building with SCons (Windows/Linux)</h1>
|
||||
|
||||
<p>
|
||||
To build Mesa with SCons on Linux or Windows do
|
||||
@@ -183,7 +178,7 @@ Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
||||
|
||||
|
||||
|
||||
<h2 id="android">4. Building with AOSP (Android)</h2>
|
||||
<h1 id="android">5. Building with AOSP (Android)</h1>
|
||||
|
||||
<p>
|
||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
||||
@@ -202,7 +197,7 @@ Android-x86 and/or other resources.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="libs">5. Library Information</h2>
|
||||
<h1 id="libs">6. Library Information</h1>
|
||||
|
||||
<p>
|
||||
When compilation has finished, look in the top-level <code>lib/</code>
|
||||
@@ -219,8 +214,9 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> lib
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
<b>libGL</b> is the main OpenGL library (i.e. Mesa), while <b>libOSMesa</b>
|
||||
is the OSMesa (Off-Screen) interface library.
|
||||
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
|
||||
<br>
|
||||
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -239,7 +235,7 @@ versions of libGL and device drivers.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="pkg-config">6. Building OpenGL programs with pkg-config</h2>
|
||||
<h1 id="pkg-config">7. Building OpenGL programs with pkg-config</h1>
|
||||
|
||||
<p>
|
||||
Running <code>ninja install</code> will install package configuration files
|
||||
@@ -258,6 +254,8 @@ For example, compiling and linking a GLUT application can be done with:
|
||||
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
|
||||
</pre>
|
||||
|
||||
<br>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -2,13 +2,13 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Introduction</title>
|
||||
<title>Mesa Introduction</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -50,7 +50,7 @@ systems.
|
||||
|
||||
|
||||
|
||||
<h2>Project History</h2>
|
||||
<h1>Project History</h1>
|
||||
|
||||
<p>
|
||||
The Mesa project was originally started by Brian Paul.
|
||||
@@ -185,7 +185,7 @@ of the OpenGL, OpenGL ES and Vulkan specifications.
|
||||
|
||||
|
||||
|
||||
<h2>Major Versions</h2>
|
||||
<h1>Major Versions</h1>
|
||||
|
||||
<p>
|
||||
This is a summary of the major versions of Mesa.
|
||||
@@ -194,7 +194,7 @@ of the OpenGL specification is implemented.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 12.x features</h3>
|
||||
<h2>Version 12.x features</h2>
|
||||
<p>
|
||||
Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
|
||||
support OpenGL 4.3.
|
||||
@@ -204,21 +204,21 @@ Initial support for Vulkan is also included.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 11.x features</h3>
|
||||
<h2>Version 11.x features</h2>
|
||||
<p>
|
||||
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
|
||||
support OpenGL 4.1.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 10.x features</h3>
|
||||
<h2>Version 10.x features</h2>
|
||||
<p>
|
||||
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
|
||||
support OpenGL 3.3.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 9.x features</h3>
|
||||
<h2>Version 9.x features</h2>
|
||||
<p>
|
||||
Version 9.x of Mesa implements the OpenGL 3.1 API.
|
||||
While the driver for Intel Sandy Bridge and Ivy Bridge is the only
|
||||
@@ -233,7 +233,7 @@ tracker for OpenCL.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 8.x features</h3>
|
||||
<h2>Version 8.x features</h2>
|
||||
<p>
|
||||
Version 8.x of Mesa implements the OpenGL 3.0 API.
|
||||
The developers at Intel deserve a lot of credit for implementing most
|
||||
@@ -242,14 +242,14 @@ the i965 driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 7.x features</h3>
|
||||
<h2>Version 7.x features</h2>
|
||||
<p>
|
||||
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
|
||||
of OpenGL 2.x is the OpenGL Shading Language.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Version 6.x features</h3>
|
||||
<h2>Version 6.x features</h2>
|
||||
<p>
|
||||
Version 6.x of Mesa implements the OpenGL 1.5 API with the following
|
||||
extensions incorporated as standard features:
|
||||
@@ -289,7 +289,7 @@ OpenGL specification</a> for more details.
|
||||
|
||||
|
||||
|
||||
<h3>Version 5.x features</h3>
|
||||
<h2>Version 5.x features</h2>
|
||||
<p>
|
||||
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
|
||||
extensions incorporated as standard features:
|
||||
@@ -315,7 +315,7 @@ extensions incorporated as standard features:
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Version 4.x features</h3>
|
||||
<h2>Version 4.x features</h2>
|
||||
|
||||
<p>
|
||||
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
|
||||
@@ -334,7 +334,7 @@ extensions incorporated as standard features:
|
||||
<li>GL_ARB_transpose_matrix
|
||||
</ul>
|
||||
|
||||
<h3>Version 3.x features</h3>
|
||||
<h2>Version 3.x features</h2>
|
||||
|
||||
<p>
|
||||
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
|
||||
@@ -350,7 +350,7 @@ features:
|
||||
</ul>
|
||||
|
||||
|
||||
<h3>Version 2.x features</h3>
|
||||
<h2>Version 2.x features</h2>
|
||||
<p>
|
||||
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
|
||||
features.
|
||||
|
@@ -2,21 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>License and Copyright</title>
|
||||
<title>License / Copyright Information</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>License and Copyright</h1>
|
||||
|
||||
<h2>Disclaimer</h2>
|
||||
<h1>Disclaimer</h1>
|
||||
|
||||
<p>
|
||||
Mesa is a 3-D graphics library with an API which is very similar to
|
||||
@@ -34,7 +32,7 @@ vendor.
|
||||
<p>
|
||||
Please do not refer to the library as <em>MesaGL</em> (for legal
|
||||
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
|
||||
library</em>.
|
||||
library</em>. <br>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -44,7 +42,7 @@ library</em>.
|
||||
|
||||
|
||||
|
||||
<h2>License / Copyright Information</h2>
|
||||
<h1>License / Copyright Information</h1>
|
||||
|
||||
<p>
|
||||
The Mesa distribution consists of several components. Different copyrights
|
||||
@@ -84,7 +82,7 @@ SOFTWARE.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>Attention, Contributors</h2>
|
||||
<h1>Attention, Contributors</h1>
|
||||
|
||||
<p>
|
||||
When contributing to the Mesa project you must agree to the licensing terms
|
||||
@@ -94,7 +92,7 @@ and their respective licenses.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Mesa Component Licenses</h2>
|
||||
<h1>Mesa Component Licenses</h1>
|
||||
|
||||
<pre>
|
||||
Component Location License
|
||||
|
@@ -2,13 +2,13 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mailing Lists</title>
|
||||
<title>Mesa Mailing Lists</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -68,14 +68,14 @@ kernels, see the
|
||||
</p>
|
||||
|
||||
|
||||
<h2>IRC</h2>
|
||||
<h1>IRC</h1>
|
||||
|
||||
<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
|
||||
on <a href="https://webchat.freenode.net/">irc.freenode.net</a>
|
||||
</p>
|
||||
|
||||
|
||||
<h2>OpenGL Forums</h2>
|
||||
<h1>OpenGL Forums</h1>
|
||||
|
||||
<p>
|
||||
Here are some other OpenGL-related forums you might find useful:
|
||||
|
@@ -2,21 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Gallium LLVMpipe Driver</title>
|
||||
<title>llvmpipe</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Gallium LLVMpipe Driver</h1>
|
||||
|
||||
<h2>Introduction</h2>
|
||||
<h1>Introduction</h1>
|
||||
|
||||
<p>
|
||||
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
|
||||
@@ -30,7 +28,7 @@ It's the fastest software rasterizer for Mesa.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>Requirements</h2>
|
||||
<h1>Requirements</h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@@ -47,7 +45,7 @@ It's the fastest software rasterizer for Mesa.
|
||||
built with LLVM version 4.0 or later.
|
||||
</p>
|
||||
<p>
|
||||
See <code>/proc/cpuinfo</code> to know what your CPU supports.
|
||||
See /proc/cpuinfo to know what your CPU supports.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
@@ -73,9 +71,8 @@ It's the fastest software rasterizer for Mesa.
|
||||
|
||||
<p>
|
||||
For Windows you will need to build LLVM from source with MSVC or MINGW
|
||||
(either natively or through cross compilers) and CMake, and set the
|
||||
<code>LLVM</code> environment variable to the directory you installed
|
||||
it to.
|
||||
(either natively or through cross compilers) and CMake, and set the LLVM
|
||||
environment variable to the directory you installed it to.
|
||||
|
||||
LLVM will be statically linked, so when building on MSVC it needs to be
|
||||
built with a matching CRT as Mesa, and you'll need to pass
|
||||
@@ -104,8 +101,8 @@ It's the fastest software rasterizer for Mesa.
|
||||
</table>
|
||||
|
||||
<p>
|
||||
You can build only the x86 target by passing
|
||||
<code>-DLLVM_TARGETS_TO_BUILD=X86</code> to cmake.
|
||||
You can build only the x86 target by passing -DLLVM_TARGETS_TO_BUILD=X86
|
||||
to cmake.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
@@ -115,7 +112,7 @@ It's the fastest software rasterizer for Mesa.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Building</h2>
|
||||
<h1>Building</h1>
|
||||
|
||||
To build everything on Linux invoke scons as:
|
||||
|
||||
@@ -140,12 +137,11 @@ For Windows the procedure is similar except the target:
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>Using</h2>
|
||||
<h1>Using</h1>
|
||||
|
||||
<h3>Linux</h3>
|
||||
<h2>Linux</h2>
|
||||
|
||||
<p>On Linux, building will create a drop-in alternative for
|
||||
<code>libGL.so</code> into</p>
|
||||
<p>On Linux, building will create a drop-in alternative for libGL.so into</p>
|
||||
|
||||
<pre>
|
||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
||||
@@ -155,15 +151,13 @@ or
|
||||
lib/gallium/libGL.so
|
||||
</pre>
|
||||
|
||||
<p>To use it set the <code>LD_LIBRARY_PATH</code> environment variable
|
||||
accordingly.</p>
|
||||
<p>To use it set the LD_LIBRARY_PATH environment variable accordingly.</p>
|
||||
|
||||
<p>For performance evaluation pass <code>build=release</code> to scons,
|
||||
and use the corresponding lib directory without the <code>-debug</code>
|
||||
suffix.</p>
|
||||
<p>For performance evaluation pass build=release to scons, and use the corresponding
|
||||
lib directory without the "-debug" suffix.</p>
|
||||
|
||||
|
||||
<h3>Windows</h3>
|
||||
<h2>Windows</h2>
|
||||
|
||||
<p>
|
||||
On Windows, building will create
|
||||
@@ -181,9 +175,7 @@ any OpenGL drivers):
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><p>copy <code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
|
||||
to <code>C:\Windows\SysWOW64\mesadrv.dll</code>
|
||||
</p></li>
|
||||
<li><p>copy build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll to C:\Windows\SysWOW64\mesadrv.dll</p></li>
|
||||
<li><p>load this registry settings:</p>
|
||||
<pre>REGEDIT4
|
||||
|
||||
@@ -200,7 +192,7 @@ any OpenGL drivers):
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Profiling</h2>
|
||||
<h1>Profiling</h1>
|
||||
|
||||
<p>
|
||||
To profile llvmpipe you should build as
|
||||
@@ -214,7 +206,7 @@ This will ensure that frame pointers are used both in C and JIT functions, and
|
||||
that no tail call optimizations are done by gcc.
|
||||
</p>
|
||||
|
||||
<h3>Linux perf integration</h3>
|
||||
<h2>Linux perf integration</h2>
|
||||
|
||||
<p>
|
||||
On Linux, it is possible to have symbol resolution of JIT code with <a href="https://perf.wiki.kernel.org/">Linux perf</a>:
|
||||
@@ -226,28 +218,27 @@ On Linux, it is possible to have symbol resolution of JIT code with <a href="htt
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
When run inside Linux perf, llvmpipe will create a
|
||||
<code>/tmp/perf-XXXXX.map</code> file with symbol address table. It also
|
||||
dumps assembly code to <code>/tmp/perf-XXXXX.map.asm</code>, which can be
|
||||
used by the <code>bin/perf-annotate-jit.py</code> script to produce
|
||||
disassembly of the generated code annotated with the samples.
|
||||
When run inside Linux perf, llvmpipe will create a /tmp/perf-XXXXX.map file with
|
||||
symbol address table. It also dumps assembly code to /tmp/perf-XXXXX.map.asm,
|
||||
which can be used by the bin/perf-annotate-jit.py script to produce disassembly of
|
||||
the generated code annotated with the samples.
|
||||
</p>
|
||||
|
||||
<p>You can obtain a call graph via
|
||||
<a href="https://github.com/jrfonseca/gprof2dot#linux-perf">Gprof2Dot</a>.</p>
|
||||
|
||||
|
||||
<h2>Unit testing</h2>
|
||||
<h1>Unit testing</h1>
|
||||
|
||||
<p>
|
||||
Building will also create several unit tests in
|
||||
<code>build/linux-???-debug/gallium/drivers/llvmpipe</code>:
|
||||
build/linux-???-debug/gallium/drivers/llvmpipe:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li> <code>lp_test_blend</code>: blending
|
||||
<li> <code>lp_test_conv</code>: SIMD vector conversion
|
||||
<li> <code>lp_test_format</code>: pixel unpacking/packing
|
||||
<li> lp_test_blend: blending
|
||||
<li> lp_test_conv: SIMD vector conversion
|
||||
<li> lp_test_format: pixel unpacking/packing
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
@@ -259,31 +250,29 @@ for later analysis, e.g.:
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>Development Notes</h2>
|
||||
<h1>Development Notes</h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
When looking at this code for the first time, start in lp_state_fs.c, and
|
||||
then skim through the <code>lp_bld_*</code> functions called there, and
|
||||
the comments at the top of the <code>lp_bld_*.c</code> functions.
|
||||
then skim through the lp_bld_* functions called there, and the comments
|
||||
at the top of the lp_bld_*.c functions.
|
||||
</li>
|
||||
<li>
|
||||
The driver-independent parts of the LLVM / Gallium code are found in
|
||||
<code>src/gallium/auxiliary/gallivm/</code>. The filenames and function
|
||||
prefixes need to be renamed from <code>lp_bld_</code> to something else
|
||||
though.
|
||||
src/gallium/auxiliary/gallivm/. The filenames and function prefixes
|
||||
need to be renamed from "lp_bld_" to something else though.
|
||||
</li>
|
||||
<li>
|
||||
We use LLVM-C bindings for now. They are not documented, but follow the C++
|
||||
interfaces very closely, and appear to be complete enough for code
|
||||
generation. See
|
||||
<a href="https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html">
|
||||
this stand-alone example</a>. See the <code>llvm-c/Core.h</code> file for
|
||||
reference.
|
||||
this stand-alone example</a>. See the llvm-c/Core.h file for reference.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="recommended_reading">Recommended Reading</h2>
|
||||
<h1 id="recommended_reading">Recommended Reading</h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
|
@@ -43,8 +43,13 @@ iframe {
|
||||
|
||||
.header {
|
||||
background: url('gears.png') 15px no-repeat, black url('gears.png') right no-repeat;
|
||||
padding: 1.75rem;
|
||||
padding: 2em;
|
||||
display: flex;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.header h1 {
|
||||
color: white;
|
||||
font: x-large sans-serif;
|
||||
margin: auto;
|
||||
}
|
||||
|
174
docs/meson.html
174
docs/meson.html
@@ -2,19 +2,19 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Compilation and Installation Using Meson</title>
|
||||
<title>Compilation and Installation using Meson</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Compilation and Installation Using Meson</h1>
|
||||
<h1>Compilation and Installation using Meson</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="#intro">Introduction</a></li>
|
||||
@@ -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>
|
||||
@@ -48,6 +44,8 @@ or
|
||||
sudo dnf install meson # Fedora
|
||||
</pre>
|
||||
|
||||
<p><strong>Mesa requires Meson >= 0.45.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,29 +153,6 @@ 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>
|
||||
|
||||
<dl>
|
||||
@@ -272,7 +224,7 @@ 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>
|
||||
|
||||
@@ -281,20 +233,6 @@ the popular compilers, a complete list is available
|
||||
dependency interface.
|
||||
</p></dd>
|
||||
|
||||
<dd><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.
|
||||
|
||||
There is also a <pre>-Dcmake_module_path</pre> option in this meson version,
|
||||
which points to the root of an alternative installation (the prefix). For
|
||||
example:
|
||||
<pre>
|
||||
meson builddir -Dcmake_module_path=/home/user/mycmake/prefix
|
||||
</pre>
|
||||
</p></dd>
|
||||
|
||||
<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>,
|
||||
@@ -316,18 +254,6 @@ Then configure meson:
|
||||
</pre>
|
||||
</dd>
|
||||
|
||||
<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
|
||||
<code>llvm-config</code>, <code>llvm-config<i>$version</i></code>,
|
||||
and <code>llvm-config-<i>$version</i></code>:
|
||||
</p>
|
||||
<pre>
|
||||
PATH=/path/to/folder/with/llvm-config:$PATH meson build
|
||||
</pre>
|
||||
</dd>
|
||||
|
||||
<dd><p>
|
||||
For selecting llvm-config for cross compiling a
|
||||
<a href="https://mesonbuild.com/Cross-compilation.html#defining-the-environment">"cross file"</a>
|
||||
@@ -339,11 +265,8 @@ should be used. It uses the same format as the native file above:
|
||||
[binaries]
|
||||
...
|
||||
llvm-config = '/usr/lib/llvm-config-32'
|
||||
cmake = '/usr/bin/cmake-for-my-arch'
|
||||
</pre>
|
||||
|
||||
<p>Obviously, only cmake or llvm-config is required.</p>
|
||||
|
||||
<p>Then configure meson:</p>
|
||||
<pre>
|
||||
meson builddir/ --cross-file cross-llvm.ini
|
||||
@@ -352,73 +275,12 @@ should be used. It uses the same format as the native file above:
|
||||
See the <a href="#cross-compilation">Cross Compilation</a> section for more information.
|
||||
</dd>
|
||||
|
||||
<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>
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<dd><p>
|
||||
For older versions of meson <code>$PATH</code> (or <code>%PATH%</code> on
|
||||
windows) will be searched for llvm-config (and llvm-config$version and
|
||||
llvm-config-$version), you can override this environment variable to control
|
||||
the search: <code>PATH=/path/with/llvm-config:$PATH meson build</code>.
|
||||
</p></dd>
|
||||
|
||||
<dt><code>PKG_CONFIG_PATH</code></dt>
|
||||
<dd><p>The
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -45,13 +45,13 @@ The OSMesa interface may be used with any of three software renderers:
|
||||
There are several examples of OSMesa in the mesa/demos repository.
|
||||
</p>
|
||||
|
||||
<h2>Building OSMesa</h2>
|
||||
<h1>Building OSMesa</h1>
|
||||
|
||||
<p>
|
||||
Configure and build Mesa with something like:
|
||||
|
||||
<pre>
|
||||
meson builddir -Dosmesa=gallium -Dgallium-drivers=swrast -Ddri-drivers=[] -Dvulkan-drivers=[] -Dprefix=$PWD/builddir/install
|
||||
meson builddir -Dosmesa=gallium -Dgallium-drivers=swrast -Ddri-drivers= -Dvulkan-drivers= -Dprefix=$PWD/builddir/install
|
||||
ninja -C builddir install
|
||||
</pre>
|
||||
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -55,6 +55,10 @@ Numbers higher than 8 see minimizing gains.
|
||||
<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -22,8 +22,9 @@ In general, precompiled Mesa libraries are not available.
|
||||
<p>
|
||||
Some Linux distributions closely follow the latest Mesa releases. On others one
|
||||
has to use unofficial channels.
|
||||
<br>
|
||||
There are some general directions:
|
||||
</p>
|
||||
<p>There are some general directions:</p>
|
||||
<ul>
|
||||
<li>Debian/Ubuntu based distros - PPA: xorg-edgers, oibaf and padoka</li>
|
||||
<li>Fedora - Corp: erp and che</li>
|
||||
|
@@ -2,53 +2,42 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Release Calendar</title>
|
||||
<title>Release calendar</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Release Calendar</h1>
|
||||
|
||||
<h2>Overview</h2>
|
||||
<h1>Overview</h1>
|
||||
|
||||
<p>
|
||||
Mesa provides feature/development and stable releases.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The table below lists the date and release manager that is expected to do the
|
||||
specific release.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Regular updates will ensure that the schedule for the current and the next two
|
||||
feature releases are shown in the table.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In order to keep the whole releasing team up to date with the tools used, best
|
||||
practices and other details, the member in charge of the next feature release
|
||||
will be in constant rotation.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The way the release schedule works is explained
|
||||
<a href="releasing.html#schedule" target="_parent">here</a>.
|
||||
</p
|
||||
>
|
||||
<p>
|
||||
<br>
|
||||
Regular updates will ensure that the schedule for the current and the
|
||||
next two feature releases are shown in the table.
|
||||
<br>
|
||||
In order to keep the whole releasing team up to date with the tools
|
||||
used, best practices and other details, the member in charge of the
|
||||
next feature release will be in constant rotation.
|
||||
<br>
|
||||
The way the release schedule works is
|
||||
explained <a href="releasing.html#schedule" target="_parent">here</a>.
|
||||
<br>
|
||||
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.
|
||||
</p>
|
||||
|
||||
<h2 id="calendar">Calendar</h2>
|
||||
<h1 id="calendar">Calendar</h1>
|
||||
|
||||
<table border="1">
|
||||
|
||||
@@ -60,43 +49,95 @@ if you'd like to nominate a patch in the next stable release.
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3">19.2</td>
|
||||
<td>2019-11-06</td>
|
||||
<td>19.2.3</td>
|
||||
<td rowspan="3">19.0</td>
|
||||
<td>2019-05-07</td>
|
||||
<td>19.0.4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-20</td>
|
||||
<td>19.2.4</td>
|
||||
<td>2019-05-21</td>
|
||||
<td>19.0.5</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-12-04</td>
|
||||
<td>19.2.5</td>
|
||||
<td>2019-06-04</td>
|
||||
<td>19.0.6</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned 19.2.x release</td>
|
||||
<td>Last planned 19.0.x release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.1</td>
|
||||
<td>2019-04-30</td>
|
||||
<td>19.1.0-rc1</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-07</td>
|
||||
<td>19.1.0-rc2</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-14</td>
|
||||
<td>19.1.0-rc3</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-21</td>
|
||||
<td>19.1.0-rc4</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>2019-08-13</td>
|
||||
<td>19.2.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-20</td>
|
||||
<td>19.2.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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-30</td>
|
||||
<td>2019-10-15</td>
|
||||
<td>19.3.0-rc1</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-06</td>
|
||||
<td>2019-10-22</td>
|
||||
<td>19.3.0-rc2</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-13</td>
|
||||
<td>2019-10-29</td>
|
||||
<td>19.3.0-rc3</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-20</td>
|
||||
<td>2019-11-05</td>
|
||||
<td>19.3.0-rc4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
|
@@ -2,20 +2,20 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Releasing Process</title>
|
||||
<title>Releasing process</title>
|
||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
|
||||
<h1>Releasing Process</h1>
|
||||
<h1>Releasing process</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="#overview">Overview</a>
|
||||
@@ -26,18 +26,17 @@
|
||||
<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>
|
||||
|
||||
|
||||
<h2 id="overview">Overview</h2>
|
||||
<h1 id="overview">Overview</h1>
|
||||
|
||||
<p>
|
||||
This document uses the convention X.Y.Z for the release number with X.Y being
|
||||
the stable branch name.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<br>
|
||||
Mesa provides feature and bugfix releases. Former use zero as patch version (Z),
|
||||
while the latter have a non-zero one.
|
||||
</p>
|
||||
@@ -53,14 +52,12 @@ For example:
|
||||
</pre>
|
||||
|
||||
|
||||
<h2 id="schedule">Release schedule</h2>
|
||||
<h1 id="schedule">Release schedule</h1>
|
||||
|
||||
<p>
|
||||
Releases should happen on Wednesdays. Delays can occur although those
|
||||
should be kept to a minimum.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<br>
|
||||
See our <a href="release-calendar.html" target="_parent">calendar</a>
|
||||
for information about how the release schedule is planned, and the
|
||||
date and other details for individual releases.
|
||||
@@ -88,14 +85,10 @@ approximately 48 hours before the actual release.
|
||||
|
||||
<p>
|
||||
Note: There is one or two releases overlap when changing branches. For example:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<br>
|
||||
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
|
||||
time (or shortly after) 13.0.1 is out.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<br>
|
||||
This also involves that, as a final release may be delayed due to the
|
||||
need of additional candidates to solve some blocking regression(s),
|
||||
the release manager might have to update
|
||||
@@ -104,7 +97,7 @@ additional bug fix releases of the current stable branch.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="pickntest">Cherry-picking and testing</h2>
|
||||
<h1 id="pickntest">Cherry-picking and testing</h1>
|
||||
|
||||
<p>
|
||||
Commits nominated for the active branch are picked as based on the
|
||||
@@ -121,7 +114,7 @@ a casual search for terms such as regression, fix, broken and similar.
|
||||
|
||||
<p>
|
||||
Maintainer is also responsible for testing in various possible permutations of
|
||||
the meson and scons build.
|
||||
the autoconf and scons build.
|
||||
</p>
|
||||
|
||||
<h2>Cherry-picking and build/check testing</h2>
|
||||
@@ -174,8 +167,9 @@ good contact point.
|
||||
|
||||
<p>
|
||||
<strong>Note:</strong> If a patch in the current queue needs any additional
|
||||
fix(es), then they should be squashed together. The commit messages and the
|
||||
"<code>cherry picked from</code>"-tags must be preserved.
|
||||
fix(es), then they should be squashed together.
|
||||
<br>
|
||||
The commit messages and the <code>cherry picked from</code> tags must be preserved.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -229,7 +223,7 @@ system and making some every day's use until the release may be a good
|
||||
idea too.
|
||||
</p>
|
||||
|
||||
<h2 id="stagingbranch">Staging branch</h2>
|
||||
<h1 id="stagingbranch">Staging branch</h1>
|
||||
|
||||
<p>
|
||||
A live branch, which contains the currently merge/rejected patches is available
|
||||
@@ -249,7 +243,7 @@ Notes:
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 id="branch">Making a branchpoint</h2>
|
||||
<h1 id="branch">Making a branchpoint</h1>
|
||||
|
||||
<p>
|
||||
A branchpoint is made such that new development can continue in parallel to
|
||||
@@ -258,8 +252,9 @@ stabilisation and bugfixing.
|
||||
|
||||
<p>
|
||||
Note: Before doing a branch ensure that basic build and <code>meson test</code>
|
||||
testing is done and there are little to-no issues. Ideally all of those should
|
||||
be tackled already.
|
||||
testing is done and there are little to-no issues.
|
||||
<br>
|
||||
Ideally all of those should be tackled already.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -298,15 +293,14 @@ Proceed to <a href="#release">release</a> -rc1.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="prerelease">Pre-release announcement</h2>
|
||||
<h1 id="prerelease">Pre-release announcement</h1>
|
||||
|
||||
<p>
|
||||
It comes shortly after outstanding patches in the respective branch are pushed.
|
||||
Developers can check, in brief, what's the status of their patches. They,
|
||||
alongside very early testers, are strongly encouraged to test the branch and
|
||||
report any regressions.
|
||||
</p>
|
||||
<p>
|
||||
<br>
|
||||
It is followed by a brief period (normally 24 or 48 hours) before the actual
|
||||
release is made.
|
||||
</p>
|
||||
@@ -336,8 +330,10 @@ Barring reported regressions or objections from developers.
|
||||
<p>
|
||||
Patch does not fit the
|
||||
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> and
|
||||
is followed by a brief information. The release maintainer is human so if you
|
||||
believe you've spotted a mistake do let them know.
|
||||
is followed by a brief information.
|
||||
<br>
|
||||
The release maintainer is human so if you believe you've spotted a mistake do
|
||||
let them know.
|
||||
</p>
|
||||
|
||||
<h2>Format/template</h2>
|
||||
@@ -449,7 +445,7 @@ Reason: The patch was reverted shortly after it was merged.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2 id="release">Making a new release</h2>
|
||||
<h1 id="release">Making a new release</h1>
|
||||
|
||||
<p>
|
||||
These are the instructions for making a new Mesa release.
|
||||
@@ -511,21 +507,11 @@ So we do a quick 'touch test'
|
||||
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
|
||||
export VK_ICD_FILENAMES=`pwd`/src/intel/vulkan/dev_icd.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
|
||||
<pre>bin/gen_release_notes.py</pre> 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,6 +519,30 @@ 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>
|
||||
@@ -576,9 +586,11 @@ Something like the following steps will do the trick:
|
||||
git cherry-pick -x X.Y
|
||||
</pre>
|
||||
|
||||
<p>Then run the <pre>./bin/post_verison.py X.Y.Z</pre>, 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>
|
||||
@@ -587,7 +599,7 @@ docs/index.html. Remove docs/release-calendar.html. Then commit and push:
|
||||
</pre>
|
||||
|
||||
|
||||
<h2 id="announce">Announce the release</h2>
|
||||
<h1 id="announce">Announce the release</h1>
|
||||
|
||||
<p>
|
||||
Use the generated template during the releasing process.
|
||||
@@ -599,12 +611,22 @@ series, if that is the case.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="gitlab">Update gitlab issues</h2>
|
||||
<h1 id="website">Update the mesa3d.org website</h1>
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
<h1 id="bugzilla">Update Bugzilla</h1>
|
||||
|
||||
<p>
|
||||
Parse through the bugreports as listed in the docs/relnotes/X.Y.Z.html
|
||||
document. If there's outstanding action, close the bug referencing the commit
|
||||
ID which addresses the bug and mention the Mesa version that has the fix.
|
||||
document.
|
||||
<br>
|
||||
If there's outstanding action, close the bug referencing the commit ID which
|
||||
addresses the bug and mention the Mesa version that has the fix.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="contents.html"></iframe>
|
||||
@@ -21,252 +21,237 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<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.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 +260,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>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
The Mesa 3D Graphics Library
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user