Compare commits
52 Commits
mesa-19.3.
...
vtx-0-2-21
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2f09abce4 | ||
|
|
93320957f2 | ||
|
|
374a09c4f7 | ||
|
|
1302fd3b25 | ||
|
|
5198950cde | ||
|
|
88d66b7208 | ||
|
|
701208d259 | ||
|
|
dfd3c9c40f | ||
|
|
cef9471ab2 | ||
|
|
8d8bb0679c | ||
|
|
5affcd3cbb | ||
|
|
86ac3e3c2d | ||
|
|
5c2d467e6d | ||
|
|
c00a1c4622 | ||
|
|
dad38213e7 | ||
|
|
9cbad64314 | ||
|
|
f0bf8c0ed1 | ||
|
|
6b692dc06c | ||
|
|
be3c25458b | ||
|
|
a384b0c5eb | ||
|
|
acfa4d46a4 | ||
|
|
df3b1eb5bc | ||
|
|
34a9e4adaf | ||
|
|
34f6df8b6d | ||
|
|
5fc6940aca | ||
|
|
c9c27a6efd | ||
|
|
79a49e30a1 | ||
|
|
f1582dbe52 | ||
|
|
4fc77f884c | ||
|
|
398f8d10a2 | ||
|
|
5b9ad341a0 | ||
|
|
fcd68a2b30 | ||
|
|
f1bbe8d0a5 | ||
|
|
3c0cfda46b | ||
|
|
5d80efc35e | ||
|
|
e01f56b3a8 | ||
|
|
30cd200068 | ||
|
|
e55c545d4a | ||
|
|
b101554d16 | ||
|
|
1b8c209523 | ||
|
|
d46adad5cd | ||
|
|
bfc37379cc | ||
|
|
0c390fec04 | ||
|
|
d5c9fd383b | ||
|
|
8ae69294ad | ||
|
|
46330d3aa7 | ||
|
|
c91f7ad52b | ||
|
|
5b40d6924c | ||
|
|
27b4c2d675 | ||
|
|
051a8141d1 | ||
|
|
9b6d6988c4 | ||
|
|
967fa00a7f |
@@ -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')
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
((nil . ((show-trailing-whitespace . t)))
|
|
||||||
(prog-mode
|
|
||||||
(indent-tabs-mode . nil)
|
|
||||||
(tab-width . 8)
|
|
||||||
(c-basic-offset . 3)
|
|
||||||
(c-file-style . "stroustrup")
|
|
||||||
(fill-column . 78)
|
|
||||||
(eval . (progn
|
|
||||||
(c-set-offset 'case-label '0)
|
|
||||||
(c-set-offset 'innamespace '0)
|
|
||||||
(c-set-offset 'inline-open '0)))
|
|
||||||
(whitespace-style face indentation)
|
|
||||||
(whitespace-line-column . 79)
|
|
||||||
(eval ignore-errors
|
|
||||||
(require 'whitespace)
|
|
||||||
(whitespace-mode 1)))
|
|
||||||
(makefile-mode (indent-tabs-mode . t))
|
|
||||||
)
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
# To use this config on you editor, follow the instructions at:
|
|
||||||
# http://editorconfig.org
|
|
||||||
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
charset = utf-8
|
|
||||||
insert_final_newline = true
|
|
||||||
tab_width = 8
|
|
||||||
|
|
||||||
[*.{c,h,cpp,hpp,cc,hh}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 3
|
|
||||||
max_line_length = 78
|
|
||||||
|
|
||||||
[{Makefile*,*.mk}]
|
|
||||||
indent_style = tab
|
|
||||||
|
|
||||||
[{*.py,SCons*}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.pl]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
|
|
||||||
[*.m4]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.yml]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
|
|
||||||
[*.patch]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
[{meson.build,meson_options.txt}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +0,0 @@
|
|||||||
*.pyc
|
|
||||||
*.pyo
|
|
||||||
*.out
|
|
||||||
build
|
|
||||||
532
.gitlab-ci.yml
532
.gitlab-ci.yml
@@ -1,532 +0,0 @@
|
|||||||
# 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.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
# recommended except for ephemeral images during development: Replacing
|
|
||||||
# an image after a significant amount of time might pull in newer
|
|
||||||
# versions of gcc/clang or other packages, which might break the build
|
|
||||||
# with older commits using the same tag.
|
|
||||||
#
|
|
||||||
# After merging a change resulting in generating a new image to the
|
|
||||||
# main repository, it's recommended to remove the image from the source
|
|
||||||
# repository's container registry, so that the image from the main
|
|
||||||
# repository's registry will be used there as well.
|
|
||||||
variables:
|
|
||||||
UPSTREAM_REPO: mesa/mesa
|
|
||||||
DEBIAN_TAG: "2019-10-29"
|
|
||||||
DEBIAN_ARM64_TAG: "arm64v8-2019-10-23"
|
|
||||||
STRETCH_TAG: "2019-09-18"
|
|
||||||
DEBIAN_VERSION: buster-slim
|
|
||||||
STRETCH_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
|
|
||||||
file: '/templates/debian.yml'
|
|
||||||
|
|
||||||
include:
|
|
||||||
- local: '.gitlab-ci/lava-gitlab-ci.yml'
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- container
|
|
||||||
- build
|
|
||||||
- test
|
|
||||||
|
|
||||||
|
|
||||||
# When to automatically run the CI
|
|
||||||
.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/**/*
|
|
||||||
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.
|
|
||||||
|
|
||||||
.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
|
|
||||||
variables:
|
|
||||||
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
|
|
||||||
cache:
|
|
||||||
key: ${CI_JOB_NAME}
|
|
||||||
paths:
|
|
||||||
- ccache
|
|
||||||
variables:
|
|
||||||
CCACHE_COMPILERCHECK: "content"
|
|
||||||
# Use ccache transparently, and print stats before/after
|
|
||||||
before_script:
|
|
||||||
- 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
|
|
||||||
script:
|
|
||||||
- .gitlab-ci/meson-build.sh
|
|
||||||
|
|
||||||
.scons-build:
|
|
||||||
extends:
|
|
||||||
- .build-linux
|
|
||||||
- .use-debian-10:amd64
|
|
||||||
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"
|
|
||||||
|
|
||||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
|
||||||
# gallium drivers combined.
|
|
||||||
# Start this early so that it doesn't limit the total run time.
|
|
||||||
#
|
|
||||||
# We also stick the glvnd build here, since we want non-glvnd in
|
|
||||||
# meson-main for actual driver CI.
|
|
||||||
meson-swr-glvnd:
|
|
||||||
extends: .meson-build
|
|
||||||
variables:
|
|
||||||
UNWIND: "true"
|
|
||||||
DRI_LOADERS: >
|
|
||||||
-D glvnd=true
|
|
||||||
-D egl=true
|
|
||||||
GALLIUM_ST: >
|
|
||||||
-D dri3=true
|
|
||||||
-D gallium-vdpau=false
|
|
||||||
-D gallium-xvmc=false
|
|
||||||
-D gallium-omx=disabled
|
|
||||||
-D gallium-va=false
|
|
||||||
-D gallium-xa=false
|
|
||||||
-D gallium-nine=false
|
|
||||||
-D gallium-opencl=disabled
|
|
||||||
GALLIUM_DRIVERS: "swr,iris"
|
|
||||||
LLVM_VERSION: "6.0"
|
|
||||||
|
|
||||||
meson-clang:
|
|
||||||
extends: .meson-build
|
|
||||||
variables:
|
|
||||||
UNWIND: "true"
|
|
||||||
DRI_DRIVERS: "auto"
|
|
||||||
GALLIUM_DRIVERS: "auto"
|
|
||||||
VULKAN_DRIVERS: intel,amd,freedreno
|
|
||||||
CC: "ccache clang-8"
|
|
||||||
CXX: "ccache clang++-8"
|
|
||||||
|
|
||||||
.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
|
|
||||||
|
|
||||||
meson-vulkan:
|
|
||||||
extends: .meson-build
|
|
||||||
variables:
|
|
||||||
UNWIND: "false"
|
|
||||||
DRI_LOADERS: >
|
|
||||||
-D glx=disabled
|
|
||||||
-D gbm=false
|
|
||||||
-D egl=false
|
|
||||||
-D platforms=x11,wayland,drm
|
|
||||||
-D osmesa=none
|
|
||||||
GALLIUM_ST: >
|
|
||||||
-D dri3=true
|
|
||||||
-D gallium-vdpau=false
|
|
||||||
-D gallium-xvmc=false
|
|
||||||
-D gallium-omx=disabled
|
|
||||||
-D gallium-va=false
|
|
||||||
-D gallium-xa=false
|
|
||||||
-D gallium-nine=false
|
|
||||||
-D gallium-opencl=disabled
|
|
||||||
-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
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
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
|
|
||||||
|
|
||||||
scons:
|
|
||||||
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-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
|
|
||||||
variables:
|
|
||||||
GIT_STRATEGY: none # testing doesn't build anything from source
|
|
||||||
|
|
||||||
.deqp-test:
|
|
||||||
extends:
|
|
||||||
- .test
|
|
||||||
- .use-debian-10:amd64
|
|
||||||
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
|
|
||||||
@@ -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,84 +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_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_STMMAC_ETH=y
|
|
||||||
CONFIG_TYPEC_FUSB302=y
|
|
||||||
CONFIG_TYPEC=y
|
|
||||||
CONFIG_TYPEC_TCPM=y
|
|
||||||
|
|
||||||
CONFIG_ARCH_SUNXI=n
|
|
||||||
CONFIG_ARCH_ALPINE=n
|
|
||||||
CONFIG_ARCH_BCM2835=n
|
|
||||||
CONFIG_ARCH_BCM_IPROC=n
|
|
||||||
CONFIG_ARCH_BERLIN=n
|
|
||||||
CONFIG_ARCH_BRCMSTB=n
|
|
||||||
CONFIG_ARCH_EXYNOS=n
|
|
||||||
CONFIG_ARCH_K3=n
|
|
||||||
CONFIG_ARCH_LAYERSCAPE=n
|
|
||||||
CONFIG_ARCH_LG1K=n
|
|
||||||
CONFIG_ARCH_HISI=n
|
|
||||||
CONFIG_ARCH_MEDIATEK=n
|
|
||||||
CONFIG_ARCH_MVEBU=n
|
|
||||||
CONFIG_ARCH_QCOM=n
|
|
||||||
CONFIG_ARCH_SEATTLE=n
|
|
||||||
CONFIG_ARCH_SYNQUACER=n
|
|
||||||
CONFIG_ARCH_RENESAS=n
|
|
||||||
CONFIG_ARCH_R8A774A1=n
|
|
||||||
CONFIG_ARCH_R8A774C0=n
|
|
||||||
CONFIG_ARCH_R8A7795=n
|
|
||||||
CONFIG_ARCH_R8A7796=n
|
|
||||||
CONFIG_ARCH_R8A77965=n
|
|
||||||
CONFIG_ARCH_R8A77970=n
|
|
||||||
CONFIG_ARCH_R8A77980=n
|
|
||||||
CONFIG_ARCH_R8A77990=n
|
|
||||||
CONFIG_ARCH_R8A77995=n
|
|
||||||
CONFIG_ARCH_STRATIX10=n
|
|
||||||
CONFIG_ARCH_TEGRA=n
|
|
||||||
CONFIG_ARCH_SPRD=n
|
|
||||||
CONFIG_ARCH_THUNDER=n
|
|
||||||
CONFIG_ARCH_THUNDER2=n
|
|
||||||
CONFIG_ARCH_UNIPHIER=n
|
|
||||||
CONFIG_ARCH_VEXPRESS=n
|
|
||||||
CONFIG_ARCH_XGENE=n
|
|
||||||
CONFIG_ARCH_ZX=n
|
|
||||||
CONFIG_ARCH_ZYNQMP=n
|
|
||||||
|
|
||||||
CONFIG_ACPI=n
|
|
||||||
|
|
||||||
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=y
|
|
||||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
|
|
||||||
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
|
||||||
@@ -1,185 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
apt-get -y install --no-install-recommends initramfs-tools libpng16-16 strace libsensors5 libexpat1 libdrm2
|
|
||||||
passwd root -d
|
|
||||||
chsh -s /bin/sh
|
|
||||||
ln -s /bin/sh /init
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Strip the image to a small minimal system without removing the debian
|
|
||||||
# toolchain.
|
|
||||||
|
|
||||||
# Copy timezone file and remove tzdata package
|
|
||||||
rm -rf /etc/localtime
|
|
||||||
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
|
||||||
|
|
||||||
UNNEEDED_PACKAGES="libfdisk1
|
|
||||||
tzdata
|
|
||||||
diffutils"
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Removing unused packages
|
|
||||||
for PACKAGE in ${UNNEEDED_PACKAGES}
|
|
||||||
do
|
|
||||||
echo ${PACKAGE}
|
|
||||||
if ! apt-get remove --purge --yes "${PACKAGE}"
|
|
||||||
then
|
|
||||||
echo "WARNING: ${PACKAGE} isn't installed"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
apt-get autoremove --yes || true
|
|
||||||
|
|
||||||
# Dropping logs
|
|
||||||
rm -rf /var/log/*
|
|
||||||
|
|
||||||
# Dropping documentation, localization, i18n files, etc
|
|
||||||
rm -rf /usr/share/doc/*
|
|
||||||
rm -rf /usr/share/locale/*
|
|
||||||
rm -rf /usr/share/man
|
|
||||||
rm -rf /usr/share/i18n/*
|
|
||||||
rm -rf /usr/share/info/*
|
|
||||||
rm -rf /usr/share/lintian/*
|
|
||||||
rm -rf /usr/share/common-licenses/*
|
|
||||||
rm -rf /usr/share/mime/*
|
|
||||||
|
|
||||||
# Dropping reportbug scripts
|
|
||||||
rm -rf /usr/share/bug
|
|
||||||
|
|
||||||
# Drop udev hwdb not required on a stripped system
|
|
||||||
rm -rf /lib/udev/hwdb.bin /lib/udev/hwdb.d/*
|
|
||||||
|
|
||||||
# Drop all gconv conversions && binaries
|
|
||||||
rm -rf usr/bin/iconv
|
|
||||||
rm -rf usr/sbin/iconvconfig
|
|
||||||
rm -rf usr/lib/*/gconv/
|
|
||||||
|
|
||||||
# Remove libusb database
|
|
||||||
rm -rf usr/sbin/update-usbids
|
|
||||||
rm -rf var/lib/usbutils/usb.ids
|
|
||||||
rm -rf usr/share/misc/usb.ids
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Crush into a minimal production image to be deployed via some type of image
|
|
||||||
# updating system.
|
|
||||||
# IMPORTANT: The Debian system is not longer functional at this point,
|
|
||||||
# for example, apt and dpkg will stop working
|
|
||||||
|
|
||||||
UNNEEDED_PACKAGES="apt libapt-pkg5.0 "\
|
|
||||||
"ncurses-bin ncurses-base libncursesw5 libncurses5 "\
|
|
||||||
"perl-base "\
|
|
||||||
"debconf libdebconfclient0 "\
|
|
||||||
"e2fsprogs e2fslibs libfdisk1 "\
|
|
||||||
"insserv "\
|
|
||||||
"udev "\
|
|
||||||
"init-system-helpers "\
|
|
||||||
"bash "\
|
|
||||||
"cpio "\
|
|
||||||
"passwd "\
|
|
||||||
"libsemanage1 libsemanage-common "\
|
|
||||||
"libsepol1 "\
|
|
||||||
"gzip "\
|
|
||||||
"gnupg "\
|
|
||||||
"gpgv "\
|
|
||||||
"hostname "\
|
|
||||||
"adduser "\
|
|
||||||
"debian-archive-keyring "\
|
|
||||||
"libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libegl-mesa0 libgles2 "\
|
|
||||||
"libllvm7 "\
|
|
||||||
"libx11-data libthai-data "\
|
|
||||||
"systemd dbus "\
|
|
||||||
|
|
||||||
# Removing unneeded packages
|
|
||||||
for PACKAGE in ${UNNEEDED_PACKAGES}
|
|
||||||
do
|
|
||||||
echo "Forcing removal of ${PACKAGE}"
|
|
||||||
if ! dpkg --purge --force-remove-essential --force-depends "${PACKAGE}"
|
|
||||||
then
|
|
||||||
echo "WARNING: ${PACKAGE} isn't installed"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Show what's left package-wise before dropping dpkg itself
|
|
||||||
COLUMNS=300 dpkg-query -W --showformat='${Installed-Size;10}\t${Package}\n' | sort -k1,1n
|
|
||||||
|
|
||||||
# Drop dpkg
|
|
||||||
dpkg --purge --force-remove-essential --force-depends dpkg
|
|
||||||
|
|
||||||
# No apt or dpkg, no need for its configuration archives
|
|
||||||
rm -rf etc/apt
|
|
||||||
rm -rf etc/dpkg
|
|
||||||
|
|
||||||
# Drop directories not part of ostree
|
|
||||||
# Note that /var needs to exist as ostree bind mounts the deployment /var over
|
|
||||||
# it
|
|
||||||
rm -rf var/* opt srv share
|
|
||||||
|
|
||||||
# ca-certificates are in /etc drop the source
|
|
||||||
rm -rf usr/share/ca-certificates
|
|
||||||
|
|
||||||
# No bash, no need for completions
|
|
||||||
rm -rf usr/share/bash-completion
|
|
||||||
|
|
||||||
# No zsh, no need for comletions
|
|
||||||
rm -rf usr/share/zsh/vendor-completions
|
|
||||||
|
|
||||||
# drop gcc-6 python helpers
|
|
||||||
rm -rf usr/share/gcc-6
|
|
||||||
|
|
||||||
# Drop sysvinit leftovers
|
|
||||||
rm -rf etc/init.d
|
|
||||||
rm -rf etc/rc[0-6S].d
|
|
||||||
|
|
||||||
# Drop upstart helpers
|
|
||||||
rm -rf etc/init
|
|
||||||
|
|
||||||
# Various xtables helpers
|
|
||||||
rm -rf usr/lib/xtables
|
|
||||||
|
|
||||||
# Drop all locales
|
|
||||||
# TODO: only remaining locale is actually "C". Should we really remove it?
|
|
||||||
rm -rf usr/lib/locale/*
|
|
||||||
|
|
||||||
# partition helpers
|
|
||||||
rm usr/sbin/*fdisk
|
|
||||||
|
|
||||||
# local compiler
|
|
||||||
rm usr/bin/localedef
|
|
||||||
|
|
||||||
# Systemd dns resolver
|
|
||||||
find usr etc -name '*systemd-resolve*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# Systemd network configuration
|
|
||||||
find usr etc -name '*networkd*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# systemd ntp client
|
|
||||||
find usr etc -name '*timesyncd*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# systemd hw database manager
|
|
||||||
find usr etc -name '*systemd-hwdb*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# No need for fuse
|
|
||||||
find usr etc -name '*fuse*' -prune -exec rm -r {} \;
|
|
||||||
|
|
||||||
# lsb init function leftovers
|
|
||||||
rm -rf usr/lib/lsb
|
|
||||||
|
|
||||||
# Only needed when adding libraries
|
|
||||||
rm usr/sbin/ldconfig*
|
|
||||||
|
|
||||||
# Games, unused
|
|
||||||
rmdir usr/games
|
|
||||||
|
|
||||||
# Remove pam module to authenticate against a DB
|
|
||||||
# plus libdb-5.3.so that is only used by this pam module
|
|
||||||
rm usr/lib/*/security/pam_userdb.so
|
|
||||||
rm usr/lib/*/libdb-5.3.so
|
|
||||||
|
|
||||||
# remove NSS support for nis, nisplus and hesiod
|
|
||||||
rm usr/lib/*/libnss_hesiod*
|
|
||||||
rm usr/lib/*/libnss_nis*
|
|
||||||
|
|
||||||
rm bin/tar
|
|
||||||
@@ -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
|
|
||||||
@@ -1,285 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
CROSS_ARCHITECTURES="i386"
|
|
||||||
for arch in $CROSS_ARCHITECTURES; do
|
|
||||||
dpkg --add-architecture $arch
|
|
||||||
done
|
|
||||||
|
|
||||||
apt-get install -y \
|
|
||||||
ca-certificates \
|
|
||||||
wget \
|
|
||||||
unzip
|
|
||||||
|
|
||||||
sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
|
|
||||||
echo 'deb https://deb.debian.org/debian buster-backports main' >/etc/apt/sources.list.d/backports.list
|
|
||||||
|
|
||||||
apt-get update
|
|
||||||
|
|
||||||
# Use newer packages from backports by default
|
|
||||||
cat >/etc/apt/preferences <<EOF
|
|
||||||
Package: *
|
|
||||||
Pin: release a=buster-backports
|
|
||||||
Pin-Priority: 500
|
|
||||||
EOF
|
|
||||||
|
|
||||||
apt-get dist-upgrade -y
|
|
||||||
|
|
||||||
apt-get install -y --no-remove \
|
|
||||||
llvm-6.0-dev \
|
|
||||||
libclang-6.0-dev \
|
|
||||||
llvm-7-dev \
|
|
||||||
libclang-7-dev \
|
|
||||||
llvm-8-dev \
|
|
||||||
libclang-8-dev \
|
|
||||||
g++ \
|
|
||||||
clang-8 \
|
|
||||||
git \
|
|
||||||
bzip2 \
|
|
||||||
zlib1g-dev \
|
|
||||||
pkg-config \
|
|
||||||
libxrender-dev \
|
|
||||||
libxdamage-dev \
|
|
||||||
libxxf86vm-dev \
|
|
||||||
gcc \
|
|
||||||
git \
|
|
||||||
libepoxy-dev \
|
|
||||||
libegl1-mesa-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libclc-dev \
|
|
||||||
libxvmc-dev \
|
|
||||||
libomxil-bellagio-dev \
|
|
||||||
xz-utils \
|
|
||||||
libexpat1-dev \
|
|
||||||
libx11-xcb-dev \
|
|
||||||
libelf-dev \
|
|
||||||
libunwind-dev \
|
|
||||||
libglvnd-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgles2-mesa-dev \
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
# dependencies where we want a specific version
|
|
||||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
|
||||||
export XCB_RELEASES=https://xcb.freedesktop.org/dist
|
|
||||||
export WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
|
||||||
|
|
||||||
export XORGMACROS_VERSION=util-macros-1.19.0
|
|
||||||
export GLPROTO_VERSION=glproto-1.4.17
|
|
||||||
export DRI2PROTO_VERSION=dri2proto-2.8
|
|
||||||
export LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
|
||||||
export LIBDRM_VERSION=libdrm-2.4.100
|
|
||||||
export XCBPROTO_VERSION=xcb-proto-1.13
|
|
||||||
export RANDRPROTO_VERSION=randrproto-1.5.0
|
|
||||||
export LIBXRANDR_VERSION=libXrandr-1.5.0
|
|
||||||
export LIBXCB_VERSION=libxcb-1.13
|
|
||||||
export LIBXSHMFENCE_VERSION=libxshmfence-1.3
|
|
||||||
export LIBVDPAU_VERSION=libvdpau-1.1
|
|
||||||
export LIBVA_VERSION=libva-1.7.0
|
|
||||||
export LIBWAYLAND_VERSION=wayland-1.15.0
|
|
||||||
export WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.12
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
|
|
||||||
tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2
|
|
||||||
cd $XORGMACROS_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $XORGMACROS_VERSION
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
|
|
||||||
tar -xvf $GLPROTO_VERSION.tar.bz2 && rm $GLPROTO_VERSION.tar.bz2
|
|
||||||
cd $GLPROTO_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $GLPROTO_VERSION
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
|
|
||||||
tar -xvf $DRI2PROTO_VERSION.tar.bz2 && rm $DRI2PROTO_VERSION.tar.bz2
|
|
||||||
cd $DRI2PROTO_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $DRI2PROTO_VERSION
|
|
||||||
|
|
||||||
wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
|
|
||||||
tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2
|
|
||||||
cd $XCBPROTO_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $XCBPROTO_VERSION
|
|
||||||
|
|
||||||
wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2
|
|
||||||
cd $LIBXCB_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $LIBXCB_VERSION
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBPCIACCESS_VERSION.tar.bz2 && rm $LIBPCIACCESS_VERSION.tar.bz2
|
|
||||||
cd $LIBPCIACCESS_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $LIBPCIACCESS_VERSION
|
|
||||||
|
|
||||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
|
|
||||||
cd $LIBDRM_VERSION; ./configure --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api; make install; cd ..
|
|
||||||
rm -rf $LIBDRM_VERSION
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
|
|
||||||
tar -xvf $RANDRPROTO_VERSION.tar.bz2 && rm $RANDRPROTO_VERSION.tar.bz2
|
|
||||||
cd $RANDRPROTO_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $RANDRPROTO_VERSION
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBXRANDR_VERSION.tar.bz2 && rm $LIBXRANDR_VERSION.tar.bz2
|
|
||||||
cd $LIBXRANDR_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $LIBXRANDR_VERSION
|
|
||||||
|
|
||||||
wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBXSHMFENCE_VERSION.tar.bz2 && rm $LIBXSHMFENCE_VERSION.tar.bz2
|
|
||||||
cd $LIBXSHMFENCE_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $LIBXSHMFENCE_VERSION
|
|
||||||
|
|
||||||
wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBVDPAU_VERSION.tar.bz2 && rm $LIBVDPAU_VERSION.tar.bz2
|
|
||||||
cd $LIBVDPAU_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $LIBVDPAU_VERSION
|
|
||||||
|
|
||||||
wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
|
|
||||||
tar -xvf $LIBVA_VERSION.tar.bz2 && rm $LIBVA_VERSION.tar.bz2
|
|
||||||
cd $LIBVA_VERSION; ./configure --disable-wayland --disable-dummy-driver; make install; cd ..
|
|
||||||
rm -rf $LIBVA_VERSION
|
|
||||||
|
|
||||||
wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
|
|
||||||
tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz
|
|
||||||
cd $LIBWAYLAND_VERSION; ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation; make install; cd ..
|
|
||||||
rm -rf $LIBWAYLAND_VERSION
|
|
||||||
|
|
||||||
wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
|
|
||||||
tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
|
||||||
cd $WAYLAND_PROTOCOLS_VERSION; ./configure; make install; cd ..
|
|
||||||
rm -rf $WAYLAND_PROTOCOLS_VERSION
|
|
||||||
|
|
||||||
pushd /usr/local
|
|
||||||
git clone https://gitlab.freedesktop.org/mesa/shader-db.git --depth 1
|
|
||||||
rm -rf shader-db/.git
|
|
||||||
cd shader-db
|
|
||||||
make
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Use ccache to speed up builds
|
|
||||||
apt-get install -y --no-remove ccache
|
|
||||||
|
|
||||||
# We need xmllint to validate the XML files in Mesa
|
|
||||||
apt-get install -y --no-remove libxml2-utils
|
|
||||||
|
|
||||||
|
|
||||||
# Generate cross build files for Meson
|
|
||||||
for arch in $CROSS_ARCHITECTURES; do
|
|
||||||
cross_file="/cross_file-$arch.txt"
|
|
||||||
/usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
|
|
||||||
# Explicitly set ccache path for cross compilers
|
|
||||||
sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file"
|
|
||||||
if [ "$arch" = "i386" ]; then
|
|
||||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
|
||||||
sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
|
|
||||||
# Don't need wrapper for i386 executables
|
|
||||||
sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
############### Build dEQP
|
|
||||||
git config --global user.email "mesa@example.com"
|
|
||||||
git config --global user.name "Mesa CI"
|
|
||||||
# XXX: Use --depth 1 once we can drop the cherry-picks.
|
|
||||||
git clone \
|
|
||||||
https://github.com/KhronosGroup/VK-GL-CTS.git \
|
|
||||||
-b opengl-es-cts-3.2.5.1 \
|
|
||||||
/VK-GL-CTS
|
|
||||||
cd /VK-GL-CTS
|
|
||||||
# Fix surfaceless build
|
|
||||||
git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
|
|
||||||
git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
|
|
||||||
|
|
||||||
# surfaceless links against libkms and such despite not using it.
|
|
||||||
sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
|
|
||||||
sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
|
|
||||||
sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
|
|
||||||
|
|
||||||
python3 external/fetch_sources.py
|
|
||||||
|
|
||||||
mkdir -p /deqp
|
|
||||||
cd /deqp
|
|
||||||
cmake -G Ninja \
|
|
||||||
-DDEQP_TARGET=surfaceless \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
/VK-GL-CTS
|
|
||||||
ninja
|
|
||||||
|
|
||||||
# Copy out the mustpass lists we want from a bunch of other junk.
|
|
||||||
mkdir /deqp/mustpass
|
|
||||||
for gles in gles2 gles3 gles31; do
|
|
||||||
cp \
|
|
||||||
/deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
|
|
||||||
/deqp/mustpass/$gles-master.txt
|
|
||||||
done
|
|
||||||
|
|
||||||
# Remove the rest of the build products that we don't need.
|
|
||||||
rm -rf /deqp/external
|
|
||||||
rm -rf /deqp/modules/internal
|
|
||||||
rm -rf /deqp/executor
|
|
||||||
rm -rf /deqp/execserver
|
|
||||||
rm -rf /deqp/modules/egl
|
|
||||||
rm -rf /deqp/framework
|
|
||||||
du -sh *
|
|
||||||
rm -rf /VK-GL-CTS
|
|
||||||
|
|
||||||
############### Uninstall the build software
|
|
||||||
|
|
||||||
apt-get purge -y \
|
|
||||||
wget \
|
|
||||||
unzip \
|
|
||||||
cmake \
|
|
||||||
git \
|
|
||||||
libgles2-mesa-dev \
|
|
||||||
libgbm-dev
|
|
||||||
|
|
||||||
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
|
|
||||||
490
.mailmap
490
.mailmap
@@ -1,490 +0,0 @@
|
|||||||
Aapo Tahkola <aet@rasterburn.org> <aapo@aapo-desktop.(none)>
|
|
||||||
|
|
||||||
Adam Jackson <ajax@redhat.com> <ajax@benzedrine.nwnk.net>
|
|
||||||
Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org>
|
|
||||||
|
|
||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
||||||
Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
|
|
||||||
|
|
||||||
Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org>
|
|
||||||
Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@gmail.com>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@linux.ie>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@nx6125b.(none)>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@panoply-rh.(none)>
|
|
||||||
Dave Airlie <airlied@redhat.com> <airlied@ppcg5.localdomain>
|
|
||||||
|
|
||||||
Alan Coopersmith <alan.coopersmith@oracle.com> <alan.coopersmith@sun.com>
|
|
||||||
|
|
||||||
Alan Hourihane <alanh@vmware.com> <alanh@tungstengraphics.com>
|
|
||||||
Alan Hourihane <alanh@vmware.com> <alanh@fairlite.demon.co.uk>
|
|
||||||
Alan Hourihane <alanh@vmware.com> <alanh@jetpack.(none)>
|
|
||||||
|
|
||||||
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>
|
|
||||||
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alexander.deucher@amd.com>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <agd5f@yahoo.com>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.com>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)>
|
|
||||||
Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)>
|
|
||||||
|
|
||||||
Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com>
|
|
||||||
|
|
||||||
Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com>
|
|
||||||
|
|
||||||
Andre Heider <a.heider@gmail.com>
|
|
||||||
Andreas Heider <andreas@heider.io>
|
|
||||||
|
|
||||||
Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com>
|
|
||||||
|
|
||||||
Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com>
|
|
||||||
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)>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@iinet.net.au>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <darktama@nisroch.keine.ath.cx>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb-at-gmail.com>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@gmail.com>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@localhost.localdomain>
|
|
||||||
Ben Skeggs <bskeggs@redhat.com> <skeggsb@nisroch.keine.ath.cx>
|
|
||||||
|
|
||||||
Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net>
|
|
||||||
|
|
||||||
Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com>
|
|
||||||
|
|
||||||
Boris Peterbarg <reist@users.sourceforge.net> reist <reist>
|
|
||||||
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com>
|
|
||||||
Brian Paul <brianp@vmware.com> <brian.paul@tungstengraphics.com>
|
|
||||||
Brian Paul <brianp@vmware.com> <brian.e.paul@gmail.com>
|
|
||||||
Brian Paul <brianp@vmware.com> <brianp@kemper.freedesktop.org>
|
|
||||||
Brian Paul <brianp@vmware.com> brian <brian@cvp965.(none)>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@i915.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@nostromo.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@poulsbo.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@ps3.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brianp@vmware.com>
|
|
||||||
Brian Paul <brianp@vmware.com> Brian <brian@yutani.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> root <brian.paul@tungstengraphics.com>
|
|
||||||
Brian Paul <brianp@vmware.com> root <root@i915.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net>
|
|
||||||
Brian Paul <brianp@vmware.com> root <root@i965.localnet.net>
|
|
||||||
|
|
||||||
Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com>
|
|
||||||
|
|
||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de>
|
|
||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)>
|
|
||||||
Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de>
|
|
||||||
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad@kiwitree.net>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad@chad-versace.us>
|
|
||||||
Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad.versace@intel.com>
|
|
||||||
Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com>
|
|
||||||
|
|
||||||
Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com>
|
|
||||||
Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com>
|
|
||||||
|
|
||||||
Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org>
|
|
||||||
|
|
||||||
Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com>
|
|
||||||
Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com>
|
|
||||||
Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de>
|
|
||||||
|
|
||||||
Christoph Brill <egore911@egore911.de> Christoph Bill <egore@gmx.de>
|
|
||||||
Christoph Brill <egore911@egore911.de> <egore@gmx.de>
|
|
||||||
|
|
||||||
Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at>
|
|
||||||
|
|
||||||
Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com>
|
|
||||||
|
|
||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sf.net>
|
|
||||||
Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net>
|
|
||||||
|
|
||||||
Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com>
|
|
||||||
Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com>
|
|
||||||
|
|
||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com>
|
|
||||||
Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com>
|
|
||||||
|
|
||||||
Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com>
|
|
||||||
|
|
||||||
Daniel Skinner <sio@users.sourceforge.net> sio <sio>
|
|
||||||
|
|
||||||
Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org>
|
|
||||||
|
|
||||||
David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net>
|
|
||||||
David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net>
|
|
||||||
David Miller <davem@davemloft.net> davem69 <davem69>
|
|
||||||
|
|
||||||
David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz>
|
|
||||||
David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com>
|
|
||||||
|
|
||||||
David Reveman <reveman@chromium.org> <c99drn@cs.umu.se>
|
|
||||||
|
|
||||||
Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de>
|
|
||||||
|
|
||||||
Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com>
|
|
||||||
|
|
||||||
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>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliko@collabora.com>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.co.uk>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliikov@collabora.com>
|
|
||||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@gmail.com>
|
|
||||||
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>
|
|
||||||
|
|
||||||
Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm>
|
|
||||||
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>
|
|
||||||
|
|
||||||
Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl>
|
|
||||||
|
|
||||||
Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com>
|
|
||||||
|
|
||||||
Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com>
|
|
||||||
|
|
||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org>
|
|
||||||
Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com>
|
|
||||||
|
|
||||||
Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com>
|
|
||||||
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>
|
|
||||||
|
|
||||||
James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com>
|
|
||||||
|
|
||||||
Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu>
|
|
||||||
|
|
||||||
Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com>
|
|
||||||
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local>
|
|
||||||
Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
|
||||||
|
|
||||||
Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu>
|
|
||||||
|
|
||||||
Jerome Glisse <jglisse@redhat.com> <glisse@freedesktop.org>
|
|
||||||
Jerome Glisse <jglisse@redhat.com> <glisse@kemper.freedesktop.org>
|
|
||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@barney.(none)>
|
|
||||||
Jerome Glisse <jglisse@redhat.com> John Doe <glisse@localhost.localdomain>
|
|
||||||
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.lan>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.(none)>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-desktop.localdomain>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-t61.(none)>
|
|
||||||
Jesse Barnes <jesse.barnes@intel.com> <jbarnes@virtuousgeek.org>
|
|
||||||
|
|
||||||
Joakim Sindholt <bacn@zhasha.com> <opensource@zhasha.com>
|
|
||||||
Joakim Sindholt <bacn@zhasha.com> <zhasha@gallium-dev.(none)>
|
|
||||||
|
|
||||||
Jochen Gerlach <jtg@users.sourceforge.net> jtg <jtg>
|
|
||||||
|
|
||||||
Joel Bosveld <joel.bosveld@gmail.com> <Joel.Bosveld@gmail.com>
|
|
||||||
|
|
||||||
Jonathan Adamczewski <jadamcze@utas.edu.au> <jadamcze@utas.edu.a>
|
|
||||||
|
|
||||||
Jon Turney <jon.turney@dronecode.org.uk> Jon TURNEY <jon.turney@dronecode.org.uk>
|
|
||||||
|
|
||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jfonseca@vmware.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> Jose Fonseca <jrfonseca@tungstengraphics.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@pegasus.(none)>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jfonseca@titan.(none)>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jose.r.fonseca@gmail.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <jrfonseca@tungstengraphics.com>
|
|
||||||
José Fonseca <jfonseca@vmware.com> <j_r_fonseca@yahoo.co.uk>
|
|
||||||
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <jouk@hrem.nano.tudelft.nl>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <joukj@hrem.stm.tudelft.nl>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> joukj <joukj@tarantella.(none)>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.nano.tudelft.nl>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.(none)>
|
|
||||||
Jouk Jansen <joukj@hrem.nano.tudelft.nl> J.Jansen <joukj@tarantella.nano.tudelft.nl>
|
|
||||||
|
|
||||||
Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com>
|
|
||||||
|
|
||||||
Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr>
|
|
||||||
|
|
||||||
Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com>
|
|
||||||
|
|
||||||
Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com>
|
|
||||||
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> Karl Schultze <k.w.schultz@comcast.net>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> unknown <kwschult@.na.qualcomm.com>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com>
|
|
||||||
Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org>
|
|
||||||
|
|
||||||
Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2>
|
|
||||||
|
|
||||||
Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com>
|
|
||||||
Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com>
|
|
||||||
|
|
||||||
Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com>
|
|
||||||
Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)>
|
|
||||||
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <krh@temari.boston.redhat.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@chromium.org>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@google.com>
|
|
||||||
Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@gmail.com>
|
|
||||||
|
|
||||||
Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io>
|
|
||||||
|
|
||||||
Li Peng <peng.li@intel.com> <peng.li@linux.intel.com>
|
|
||||||
|
|
||||||
Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de>
|
|
||||||
|
|
||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl>
|
|
||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <m.b.lankhorst@gmail.com>
|
|
||||||
Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.com>
|
|
||||||
|
|
||||||
Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)>
|
|
||||||
|
|
||||||
Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com>
|
|
||||||
|
|
||||||
Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de>
|
|
||||||
Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de>
|
|
||||||
|
|
||||||
Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.com>
|
|
||||||
|
|
||||||
Marek Olšák <maraeo@gmail.com> <marek.olsak@amd.com>
|
|
||||||
|
|
||||||
Mario Kleiner <mario.kleiner.de@gmail.com> kleinerm <mario.kleiner@tuebingen.mpg.de>
|
|
||||||
Mario Kleiner <mario.kleiner.de@gmail.com> <mario.kleiner@tuebingen.mpg.de>
|
|
||||||
|
|
||||||
Mark Mueller <markkmueller@gmail.com> <MarkKMueller@gmail.com>
|
|
||||||
|
|
||||||
Marta Lofstedt <marta.lofstedt@intel.com> <marta.lofstedt@linux.intel.com>
|
|
||||||
|
|
||||||
Martin Peres <martin.peres@linux.intel.com> <martin.peres@labri.fr>
|
|
||||||
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <frohlich8@users.sourceforge.net>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de>
|
|
||||||
Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de>
|
|
||||||
|
|
||||||
Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk>
|
|
||||||
|
|
||||||
Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com>
|
|
||||||
|
|
||||||
Micah Fedke <micah.fedke@collabora.co.uk> <M.Fedke@Astronautics.com>
|
|
||||||
|
|
||||||
Michal Krol <michal@vmware.com> <michal@tungstengraphics.com>
|
|
||||||
Michal Krol <michal@vmware.com> Michal Krol <michal@ubuntu-vbox.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> Michal Krol <mjkrol@gmail.org>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@capacitor.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@michal-laptop.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@quad.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@transistor.(none)>
|
|
||||||
Michal Krol <michal@vmware.com> Michal <michal@tungstengraphics.com>
|
|
||||||
Michal Krol <michal@vmware.com> michal <michal@wmvare.com>
|
|
||||||
|
|
||||||
Michel Dänzer <michel@daenzer.net> <michel.daenzer@amd.com>
|
|
||||||
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>
|
|
||||||
|
|
||||||
Mike Stroyan <mike@lunarg.com> <mike@LunarG.com>
|
|
||||||
|
|
||||||
Nian Wu <nian.wu@intel.com> <nian@graphics.(none)>
|
|
||||||
Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com>
|
|
||||||
|
|
||||||
Nick Bowler <nbowler@draconx.ca>
|
|
||||||
|
|
||||||
Nick Sarnie <commendsarnex@gmail.com>
|
|
||||||
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com>
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com>
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net>
|
|
||||||
Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de>
|
|
||||||
|
|
||||||
Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net>
|
|
||||||
Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com>
|
|
||||||
|
|
||||||
nobled <nobled@dreamwidth.org> <nobled2@nobled2-karmic.(none)>
|
|
||||||
|
|
||||||
Oliver McFadden <oliver.mcfadden@linux.intel.com> <z3ro.geek@gmail.com>
|
|
||||||
|
|
||||||
Owain Ainsworth <zerooa@googlemail.com> Owain G. Ainsworth <oga@openbsd.org>
|
|
||||||
|
|
||||||
Owen W. Taylor <otaylor@fishsoup.net> Owen Taylor <otaylor@snell.localdomain>
|
|
||||||
|
|
||||||
Patrice Mandin <patmandin@gmail.com> <patrice@manoir.racoon.city>
|
|
||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@caramail.com>
|
|
||||||
Patrice Mandin <patmandin@gmail.com> <pmandin@freedesktop.org>
|
|
||||||
|
|
||||||
Pauli Nieminen <pauli.nieminen@linux.intel.com> <suokkos@gmail.com>
|
|
||||||
|
|
||||||
Paulo Zanoni <paulo.r.zanoni@intel.com> Paulo Zanoni <pzanoni@mandriva.com>
|
|
||||||
|
|
||||||
Paul Seidler <sepek@exherbo.org> Paul Seidler <pl.seidler@googlemail.com>
|
|
||||||
|
|
||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <ppaalanen@gmail.com>
|
|
||||||
Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi>
|
|
||||||
|
|
||||||
Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au>
|
|
||||||
|
|
||||||
Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com>
|
|
||||||
|
|
||||||
Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de>
|
|
||||||
|
|
||||||
Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net>
|
|
||||||
|
|
||||||
RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com>
|
|
||||||
|
|
||||||
Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com>
|
|
||||||
# The next ones are not 100% sure
|
|
||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)>
|
|
||||||
Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop.(none)>
|
|
||||||
Richard Li <richardradeon@gmail.com> root <root@richard-desktop.(none)>
|
|
||||||
|
|
||||||
Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com>
|
|
||||||
|
|
||||||
Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org>
|
|
||||||
Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com>
|
|
||||||
|
|
||||||
Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com>
|
|
||||||
|
|
||||||
Robert Ellison <papillo@vmware.com> <papillo@i965-laptop.(none)>
|
|
||||||
Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com>
|
|
||||||
|
|
||||||
Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com>
|
|
||||||
|
|
||||||
Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch>
|
|
||||||
Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com>
|
|
||||||
|
|
||||||
Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl>
|
|
||||||
|
|
||||||
Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk>
|
|
||||||
|
|
||||||
Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com>
|
|
||||||
|
|
||||||
Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org>
|
|
||||||
|
|
||||||
Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com>
|
|
||||||
|
|
||||||
Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org>
|
|
||||||
|
|
||||||
Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net>
|
|
||||||
Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net>
|
|
||||||
|
|
||||||
Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com>
|
|
||||||
|
|
||||||
Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de>
|
|
||||||
|
|
||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr>
|
|
||||||
Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com>
|
|
||||||
|
|
||||||
Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco>
|
|
||||||
|
|
||||||
Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com>
|
|
||||||
Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com>
|
|
||||||
|
|
||||||
Thierry Reding <treding@nvidia.com> <thierry@gilfi.de>
|
|
||||||
Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de>
|
|
||||||
|
|
||||||
Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com>
|
|
||||||
|
|
||||||
Thomas Balling Sørensen <tball@io.dk> <tball@tball-laptop.(none)>
|
|
||||||
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas <thellstrom@vmware.com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thellstrom-at-vmware-dot-com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas@tungstengraphics.com>
|
|
||||||
Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellström <thomas@tungstengraphics.com>
|
|
||||||
|
|
||||||
Thomas Tanner <tanner@gmx.net> tanner <tanner>
|
|
||||||
|
|
||||||
Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org>
|
|
||||||
|
|
||||||
Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au>
|
|
||||||
Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au>
|
|
||||||
|
|
||||||
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>
|
|
||||||
Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com>
|
|
||||||
|
|
||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org>
|
|
||||||
Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi>
|
|
||||||
|
|
||||||
Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com>
|
|
||||||
|
|
||||||
Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com>
|
|
||||||
|
|
||||||
Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com>
|
|
||||||
|
|
||||||
Zack Rusin <zackr@vmware.com> <zack@kde.org>
|
|
||||||
Zack Rusin <zackr@vmware.com> <zack@pixel.(none)>
|
|
||||||
Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com>
|
|
||||||
|
|
||||||
Zhang <zxpmyth@yahoo.com.cn> zhang <zxpmyth@yahoo.com.cn>
|
|
||||||
63
.travis.yml
63
.travis.yml
@@ -1,63 +0,0 @@
|
|||||||
language: c
|
|
||||||
|
|
||||||
os: osx
|
|
||||||
|
|
||||||
cache:
|
|
||||||
ccache: true
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# Set PATH for homebrew pip3 installs
|
|
||||||
- PATH="$HOME/Library/Python/3.6/bin:${PATH}"
|
|
||||||
# Set PKG_CONFIG_PATH for keg-only expat
|
|
||||||
- PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
|
|
||||||
# Set PATH for keg-only gettext
|
|
||||||
- PATH="/usr/local/opt/gettext/bin:${PATH}"
|
|
||||||
|
|
||||||
# Install xquartz for prereqs ...
|
|
||||||
- XQUARTZ_VERSION="2.7.11"
|
|
||||||
- wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
|
|
||||||
- hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
|
|
||||||
- sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
|
|
||||||
- hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
|
|
||||||
# ... and set paths
|
|
||||||
- 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
|
|
||||||
|
|
||||||
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
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
# Mesa 3-D graphics library
|
|
||||||
#
|
|
||||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
|
|
||||||
# Copyright (C) 2010-2011 LunarG Inc.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
ifeq ($(LOCAL_IS_HOST_MODULE),true)
|
|
||||||
LOCAL_CFLAGS += -D_GNU_SOURCE
|
|
||||||
endif
|
|
||||||
|
|
||||||
LOCAL_C_INCLUDES += \
|
|
||||||
$(MESA_TOP)/src \
|
|
||||||
$(MESA_TOP)/include
|
|
||||||
|
|
||||||
MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-Wno-error \
|
|
||||||
-Werror=incompatible-pointer-types \
|
|
||||||
-Wno-unused-parameter \
|
|
||||||
-Wno-pointer-arith \
|
|
||||||
-Wno-missing-field-initializers \
|
|
||||||
-Wno-initializer-overrides \
|
|
||||||
-Wno-mismatched-tags \
|
|
||||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
|
||||||
-DPACKAGE_BUGREPORT=\"https://gitlab.freedesktop.org/mesa/mesa/issues\"
|
|
||||||
|
|
||||||
# XXX: The following __STDC_*_MACROS defines should not be needed.
|
|
||||||
# It's likely due to a bug elsewhere, but let's temporarily add them
|
|
||||||
# here to fix the radeonsi build.
|
|
||||||
LOCAL_CFLAGS += \
|
|
||||||
-DANDROID_API_LEVEL=$(PLATFORM_SDK_VERSION) \
|
|
||||||
-DENABLE_SHADER_CACHE \
|
|
||||||
-D__STDC_CONSTANT_MACROS \
|
|
||||||
-D__STDC_LIMIT_MACROS \
|
|
||||||
-DHAVE___BUILTIN_EXPECT \
|
|
||||||
-DHAVE___BUILTIN_FFS \
|
|
||||||
-DHAVE___BUILTIN_FFSLL \
|
|
||||||
-DHAVE_DLFCN_H \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_UNUSED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_FORMAT \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_PACKED \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_ALIAS \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_NORETURN \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL \
|
|
||||||
-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT \
|
|
||||||
-DHAVE___BUILTIN_CTZ \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNT \
|
|
||||||
-DHAVE___BUILTIN_POPCOUNTLL \
|
|
||||||
-DHAVE___BUILTIN_CLZ \
|
|
||||||
-DHAVE___BUILTIN_CLZLL \
|
|
||||||
-DHAVE___BUILTIN_UNREACHABLE \
|
|
||||||
-DHAVE_PTHREAD=1 \
|
|
||||||
-DHAVE_DLADDR \
|
|
||||||
-DHAVE_DL_ITERATE_PHDR \
|
|
||||||
-DHAVE_LINUX_FUTEX_H \
|
|
||||||
-DHAVE_ENDIAN_H \
|
|
||||||
-DHAVE_ZLIB \
|
|
||||||
-DMAJOR_IN_SYSMACROS \
|
|
||||||
-DVK_USE_PLATFORM_ANDROID_KHR \
|
|
||||||
-fvisibility=hidden \
|
|
||||||
-fno-math-errno \
|
|
||||||
-fno-trapping-math \
|
|
||||||
-Wno-sign-compare
|
|
||||||
|
|
||||||
LOCAL_CPPFLAGS += \
|
|
||||||
-D__STDC_CONSTANT_MACROS \
|
|
||||||
-D__STDC_FORMAT_MACROS \
|
|
||||||
-D__STDC_LIMIT_MACROS \
|
|
||||||
-Wno-error=non-virtual-dtor \
|
|
||||||
-Wno-non-virtual-dtor
|
|
||||||
|
|
||||||
# mesa requires at least c99 compiler
|
|
||||||
LOCAL_CONLYFLAGS += \
|
|
||||||
-std=c99
|
|
||||||
|
|
||||||
# c11 timespec_get is part of bionic as well
|
|
||||||
# https://android-review.googlesource.com/c/718518
|
|
||||||
# This means releases from P and earlier won't need this
|
|
||||||
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 += \
|
|
||||||
-DUSE_X86_ASM
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
|
||||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
|
||||||
endif
|
|
||||||
LOCAL_CFLAGS_arm64 += -DUSE_AARCH64_ASM
|
|
||||||
|
|
||||||
ifneq ($(LOCAL_IS_HOST_MODULE),true)
|
|
||||||
LOCAL_CFLAGS += -DHAVE_LIBDRM
|
|
||||||
LOCAL_SHARED_LIBRARIES += libdrm
|
|
||||||
endif
|
|
||||||
|
|
||||||
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
|
||||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
|
|
||||||
LOCAL_PROPRIETARY_MODULE := true
|
|
||||||
|
|
||||||
# uncomment to keep the debug symbols
|
|
||||||
#LOCAL_STRIP_MODULE := false
|
|
||||||
|
|
||||||
ifeq ($(strip $(LOCAL_MODULE_TAGS)),)
|
|
||||||
LOCAL_MODULE_TAGS := optional
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Quiet down the build system and remove any .h files from the sources
|
|
||||||
LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
|
|
||||||
123
Android.mk
123
Android.mk
@@ -1,123 +0,0 @@
|
|||||||
# Mesa 3-D graphics library
|
|
||||||
#
|
|
||||||
# Copyright (C) 2010-2011 Chia-I Wu <olvaffe@gmail.com>
|
|
||||||
# Copyright (C) 2010-2011 LunarG Inc.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
|
||||||
#
|
|
||||||
# classic drivers: i915 i965
|
|
||||||
# gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv iris lima
|
|
||||||
#
|
|
||||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
|
||||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
|
||||||
|
|
||||||
MESA_TOP := $(call my-dir)
|
|
||||||
|
|
||||||
MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
|
|
||||||
ifneq ($(filter 2 4, $(MESA_ANDROID_MAJOR_VERSION)),)
|
|
||||||
$(error "Android 4.4 and earlier not supported")
|
|
||||||
endif
|
|
||||||
|
|
||||||
MESA_DRI_MODULE_REL_PATH := dri
|
|
||||||
MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH)
|
|
||||||
MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH)
|
|
||||||
MESA_DRI_LDFLAGS := -Wl,--build-id=sha1
|
|
||||||
|
|
||||||
MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk
|
|
||||||
MESA_PYTHON2 := python
|
|
||||||
|
|
||||||
# Lists to convert driver names to boolean variables
|
|
||||||
# in form of <driver name>.<boolean make variable>
|
|
||||||
classic_drivers := i915.HAVE_I915_DRI i965.HAVE_I965_DRI
|
|
||||||
gallium_drivers := \
|
|
||||||
swrast.HAVE_GALLIUM_SOFTPIPE \
|
|
||||||
freedreno.HAVE_GALLIUM_FREEDRENO \
|
|
||||||
i915g.HAVE_GALLIUM_I915 \
|
|
||||||
nouveau.HAVE_GALLIUM_NOUVEAU \
|
|
||||||
kmsro.HAVE_GALLIUM_KMSRO \
|
|
||||||
r300g.HAVE_GALLIUM_R300 \
|
|
||||||
r600g.HAVE_GALLIUM_R600 \
|
|
||||||
radeonsi.HAVE_GALLIUM_RADEONSI \
|
|
||||||
vmwgfx.HAVE_GALLIUM_VMWGFX \
|
|
||||||
vc4.HAVE_GALLIUM_VC4 \
|
|
||||||
virgl.HAVE_GALLIUM_VIRGL \
|
|
||||||
etnaviv.HAVE_GALLIUM_ETNAVIV \
|
|
||||||
iris.HAVE_GALLIUM_IRIS \
|
|
||||||
lima.HAVE_GALLIUM_LIMA
|
|
||||||
|
|
||||||
ifeq ($(BOARD_GPU_DRIVERS),all)
|
|
||||||
MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers)))
|
|
||||||
MESA_BUILD_GALLIUM := $(filter HAVE_%, $(subst ., , $(gallium_drivers)))
|
|
||||||
else
|
|
||||||
# Warn if we have any invalid driver names
|
|
||||||
$(foreach d, $(BOARD_GPU_DRIVERS), \
|
|
||||||
$(if $(findstring $(d).,$(classic_drivers) $(gallium_drivers)), \
|
|
||||||
, \
|
|
||||||
$(warning invalid GPU driver: $(d)) \
|
|
||||||
) \
|
|
||||||
)
|
|
||||||
MESA_BUILD_CLASSIC := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(classic_drivers)))))
|
|
||||||
MESA_BUILD_GALLIUM := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(gallium_drivers)))))
|
|
||||||
endif
|
|
||||||
ifeq ($(filter x86%,$(TARGET_ARCH)),)
|
|
||||||
MESA_BUILD_CLASSIC :=
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
|
||||||
|
|
||||||
# host and target must be the same arch to generate matypes.h
|
|
||||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
|
|
||||||
MESA_ENABLE_ASM := true
|
|
||||||
else
|
|
||||||
MESA_ENABLE_ASM := false
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
|
|
||||||
MESA_ENABLE_LLVM := true
|
|
||||||
endif
|
|
||||||
|
|
||||||
define mesa-build-with-llvm
|
|
||||||
$(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5 6 7), \
|
|
||||||
$(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \
|
|
||||||
$(eval LOCAL_CFLAGS += -DLLVM_AVAILABLE -DMESA_LLVM_VERSION_STRING=\"3.9\") \
|
|
||||||
$(eval LOCAL_SHARED_LIBRARIES += libLLVM)
|
|
||||||
endef
|
|
||||||
|
|
||||||
# add subdirectories
|
|
||||||
SUBDIRS := \
|
|
||||||
src/freedreno \
|
|
||||||
src/gbm \
|
|
||||||
src/loader \
|
|
||||||
src/mapi \
|
|
||||||
src/compiler \
|
|
||||||
src/mesa \
|
|
||||||
src/util \
|
|
||||||
src/egl \
|
|
||||||
src/amd \
|
|
||||||
src/broadcom \
|
|
||||||
src/intel \
|
|
||||||
src/mesa/drivers/dri \
|
|
||||||
src/vulkan \
|
|
||||||
src/panfrost \
|
|
||||||
|
|
||||||
INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))
|
|
||||||
INC_DIRS += $(call all-named-subdir-makefiles,src/gallium)
|
|
||||||
include $(INC_DIRS)
|
|
||||||
16
CleanSpec.mk
16
CleanSpec.mk
@@ -1,16 +0,0 @@
|
|||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates)
|
|
||||||
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/i9?5_dri_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libglapi_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/mesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/glsl_compiler_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
|
||||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
|
|
||||||
1082
Make-config
Normal file
1082
Make-config
Normal file
File diff suppressed because it is too large
Load Diff
108
Makefile.DJ
Normal file
108
Makefile.DJ
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 4.0
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999 Brian Paul All Rights Reserved.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# BRIAN PAUL 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.
|
||||||
|
|
||||||
|
# DOS/DJGPP makefile v1.4 for Mesa
|
||||||
|
#
|
||||||
|
# Copyright (C) 2002 - Borca Daniel
|
||||||
|
# Email : dborca@users.sourceforge.net
|
||||||
|
# Web : http://www.geocities.com/dborca
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Available options:
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# CPU optimize for the given processor.
|
||||||
|
# default = pentium
|
||||||
|
# GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
|
||||||
|
# or `mesa'.
|
||||||
|
# default = mesa
|
||||||
|
# GLIDE path to Glide3 SDK; used with FX.
|
||||||
|
# default = $(TOP)/glide3
|
||||||
|
# FX=1 build for 3dfx Glide3. Note that this disables
|
||||||
|
# compilation of most DMesa code and requires fxMesa.
|
||||||
|
# As a consequence, you'll need the DJGPP Glide3
|
||||||
|
# library to build any application.
|
||||||
|
# default = no
|
||||||
|
# MATROX=1 build for Matrox Millennium I (MGA2064W) cards.
|
||||||
|
# This is experimental and not intensively tested.
|
||||||
|
# default = no
|
||||||
|
# HAVE_X86=1 optimize for i386.
|
||||||
|
# default = no
|
||||||
|
# HAVE_MMX=1 allow MMX specializations, provided your assembler
|
||||||
|
# supports MMX instruction set. However, the true CPU
|
||||||
|
# capabilities are checked at run-time to avoid crashes.
|
||||||
|
# default = no
|
||||||
|
# HAVE_SSE=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
# HAVE_3DNOW=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
#
|
||||||
|
# Targets:
|
||||||
|
# all: build everything
|
||||||
|
# libgl: build GL
|
||||||
|
# libglu: build GLU
|
||||||
|
# libglut: build GLUT
|
||||||
|
# clean: remove object files
|
||||||
|
# realclean: remove all generated files
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY : all libgl libglu libglut clean realclean
|
||||||
|
|
||||||
|
CPU ?= pentium
|
||||||
|
|
||||||
|
GLU ?= mesa
|
||||||
|
|
||||||
|
CFLAGS = -Wall -W -pedantic
|
||||||
|
CFLAGS += -O2 -ffast-math -mcpu=$(CPU)
|
||||||
|
|
||||||
|
export CFLAGS
|
||||||
|
|
||||||
|
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
|
||||||
|
UNLINK = del $(subst /,\,$(1))
|
||||||
|
else
|
||||||
|
UNLINK = $(RM) $(1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: libgl libglu libglut
|
||||||
|
|
||||||
|
libgl: lib
|
||||||
|
$(MAKE) -f Makefile.DJ -C src/mesa
|
||||||
|
libglu: lib
|
||||||
|
$(MAKE) -f Makefile.DJ -C src/glu/$(GLU)
|
||||||
|
libglut: lib
|
||||||
|
$(MAKE) -f Makefile.DJ -C src/glut/dos
|
||||||
|
|
||||||
|
lib:
|
||||||
|
mkdir lib
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/mesa
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/glu/mesa
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/glu/sgi
|
||||||
|
$(MAKE) -f Makefile.DJ clean -C src/glut/dos
|
||||||
|
|
||||||
|
realclean: clean
|
||||||
|
-$(call UNLINK,lib/*.a)
|
||||||
|
-$(call UNLINK,lib/*.dxe)
|
||||||
671
Makefile.X11
Normal file
671
Makefile.X11
Normal file
@@ -0,0 +1,671 @@
|
|||||||
|
# $Id: Makefile.X11,v 1.90 2003/10/03 14:03:14 brianp Exp $
|
||||||
|
|
||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 5.1
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# BRIAN PAUL 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.
|
||||||
|
|
||||||
|
|
||||||
|
# Top-level makefile for Mesa
|
||||||
|
# To add a new configuration for your system add it to the list below
|
||||||
|
# then update the Make-config file.
|
||||||
|
|
||||||
|
SHELL = /bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
@echo "Type one of the following:"
|
||||||
|
@echo " make aix for IBM RS/6000 with AIX"
|
||||||
|
@echo " make aix-sl for IBM RS/6000, make shared libs"
|
||||||
|
@echo " make beos-r4 for BeOS R4"
|
||||||
|
@echo " make cygnus for Win95/NT using Cygnus-Win32"
|
||||||
|
@echo " make cygnus-linux for Win95/NT using Cygnus-Win32 under Linux"
|
||||||
|
@echo " make darwin for Darwin - Mac OS X"
|
||||||
|
@echo " make freebsd for FreeBSD systems with GCC"
|
||||||
|
@echo " make freebsd-386 for FreeBSD systems with GCC, w/ Intel assembly"
|
||||||
|
@echo " make gcc-sl for a generic system with GCC for shared libs"
|
||||||
|
@echo " make hpux9 for HP systems with HPUX 9.x"
|
||||||
|
@echo " make hpux9-sl for HP systems with HPUX 9.x, make shared libs"
|
||||||
|
@echo " make hpux9-gcc for HP systems with HPUX 9.x using GCC"
|
||||||
|
@echo " make hpux9-gcc-sl for HP systems with HPUX 9.x, GCC, make shared libs"
|
||||||
|
@echo " make hpux10 for HP systems with HPUX 10.x and 11.x"
|
||||||
|
@echo " make hpux10-sl for HP systems with HPUX 10.x and 11.x, shared libs"
|
||||||
|
@echo " make hpux10-gcc for HP systems with HPUX 10.x w/ GCC"
|
||||||
|
@echo " make hpux10-gcc-sl for HP systems with HPUX 10.x w/ GCC, shared libs"
|
||||||
|
@echo " make irix6-o32 for SGI systems with IRIX 6.x, make o32-bit libs"
|
||||||
|
@echo " make irix6-o32-dso for SGI systems with IRIX 6.x, make o32-bit DSOs"
|
||||||
|
@echo " make irix6-n32 for SGI systems with IRIX 6.x, make n32-bit libs"
|
||||||
|
@echo " make irix6-n32-dso for SGI systems with IRIX 6.x, make n32-bit DSOs"
|
||||||
|
@echo " make irix6-gcc-n32-sl for SGI systems with IRIX 6.x, GCC, make n32 DSOs"
|
||||||
|
@echo " make irix6-64 for SGI systems with IRIX 6.x, make 64-bit libs"
|
||||||
|
@echo " make irix6-64-dso for SGI systems with IRIX 6.x, make 64-bit DSOs"
|
||||||
|
|
||||||
|
@echo " make linux for Linux"
|
||||||
|
@echo " make linux-x86 for Linux with x86 optimizations"
|
||||||
|
@echo " make linux-ggi for Linux with libggi driver"
|
||||||
|
@echo " make linux-x86-ggi for Linux with libggi driver and x86 optimizations"
|
||||||
|
@echo " make linux-glide for Linux with 3Dfx Glide driver"
|
||||||
|
@echo " make linux-x86-glide for Linux with 3Dfx Glide driver and x86 opts"
|
||||||
|
@echo " make linux-alpha for Linux with Alpha optimizations"
|
||||||
|
@echo " make linux-alpha-static for Linux with Alpha opts, make static libs"
|
||||||
|
@echo " make linux-ppc for Linux with PowerPC opts"
|
||||||
|
@echo " make linux-ppc-static for Linux with PowerPC opts, make static libs"
|
||||||
|
@echo " make linux-sparc for Linux with Sparc optimzations"
|
||||||
|
@echo " make linux-sparc5 for Linux with Sparc5 optimizations"
|
||||||
|
@echo " make linux-sparc-ultra for Linux with UltraSparc optimizations"
|
||||||
|
@echo " make linux-osmesa16 for 16-bit/channel OSMesa"
|
||||||
|
@echo " make linux-osmesa32 for 32-bit/channel OSMesa"
|
||||||
|
@echo " make linux-solo for Linux standalone with dri drivers"
|
||||||
|
@echo " make linux-icc for Linux with the Intel C/C++ compiler"
|
||||||
|
@echo " make lynxos for LynxOS systems with GCC"
|
||||||
|
@echo " make mklinux for Linux on Power Macintosh"
|
||||||
|
@echo " make netbsd for NetBSD 1.0 systems with GCC"
|
||||||
|
@echo " make openbsd for OpenBSD systems"
|
||||||
|
@echo " make openstep for OpenStep/MacOSX Server systems"
|
||||||
|
@echo " make osf1 for DEC Alpha systems with OSF/1"
|
||||||
|
@echo " make qnx for QNX V4 systems with Watcom compiler"
|
||||||
|
@echo " make solaris-x86 for PCs with Solaris"
|
||||||
|
@echo " make solaris-x86-gcc for PCs with Solaris using GCC"
|
||||||
|
@echo " make sunos4 for Suns with SunOS 4.x"
|
||||||
|
@echo " make sunos4-sl for Suns with SunOS 4.x, make shared libs"
|
||||||
|
@echo " make sunos4-gcc for Suns with SunOS 4.x and GCC"
|
||||||
|
@echo " make sunos4-gcc-sl for Suns with SunOS 4.x, GCC, make shared libs"
|
||||||
|
@echo " make sunos5 for Suns with SunOS 5.x"
|
||||||
|
@echo " make sunos5-smp for Suns with SunOS 5.x, SMP optimization"
|
||||||
|
@echo " make sunos5-gcc for Suns with SunOS 5.x and GCC"
|
||||||
|
@echo " make ultrix-gcc for DEC systems with Ultrix and GCC"
|
||||||
|
@echo " make unixware for PCs running UnixWare"
|
||||||
|
@echo " make unixware-shared for PCs running UnixWare, shared libs"
|
||||||
|
@echo " make clean remove .o files"
|
||||||
|
@echo " make realclean remove .o, library and executable files"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# XXX we may have to split up this group of targets into those that
|
||||||
|
# have a C++ compiler and those that don't for the SI-GLU library.
|
||||||
|
|
||||||
|
aix aix-sl darwin freebsd freebsd-386 gcc-sl \
|
||||||
|
hpux9 hpux9-sl hpux9-gcc hpux9-gcc-sl \
|
||||||
|
hpux10 hpux10-sl hpux10-gcc hpux10-gcc-sl \
|
||||||
|
linux linux-debug \
|
||||||
|
linux-x86 linux-x86-sse linux-icc linux-x86-static linux-x86-debug \
|
||||||
|
linux-glide linux-x86-glide linux-glide-debug \
|
||||||
|
linux-alpha-static linux-alpha \
|
||||||
|
linux-ppc-static linux-ppc \
|
||||||
|
linux-sparc linux-sparc5 linux-sparc-ultra \
|
||||||
|
mklinux netbsd osf1 openbsd qnx \
|
||||||
|
solaris-x86 solaris-x86-gcc \
|
||||||
|
sunos4 sunos4-sl sunos4-gcc sunos4-gcc-sl sunos4-gcc-x11r6-sl \
|
||||||
|
sunos5 sunos5-smp sunos5-gcc \
|
||||||
|
ultrix-gcc unixware:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
gcc-mesa-sl:
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
irix6-o32 irix6-o32-dso irix6-n32 irix6-n32-dso irix6-gcc-n32-sl:
|
||||||
|
-mkdir lib32
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
irix6-64 irix6-64-dso:
|
||||||
|
-mkdir lib64
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
|
||||||
|
beos-r4:
|
||||||
|
-mkdir lib
|
||||||
|
-rm src/mesa/depend
|
||||||
|
touch src/mesa/depend
|
||||||
|
-rm src/glu/sgi/depend
|
||||||
|
touch src/glu/sgi/depend
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src/glut/beos ] ; then cd src/glut/beos ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d src/glut/beos ] ; then cp src/glut/beos/obj*/libglut.so lib ; fi
|
||||||
|
if [ -d progs/beos ] ; then cd progs/beos ; $(MAKE) ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.BeOS-R4 $@ ; fi
|
||||||
|
|
||||||
|
cygnus cygnus-linux:
|
||||||
|
-mkdir lib
|
||||||
|
touch src/depend
|
||||||
|
touch src-glu/depend
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
openstep:
|
||||||
|
-mkdir lib
|
||||||
|
cd src/mesa ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
cd src/glu/sgi ; $(MAKE) -f Makefile.X11 "MYCC=${CC}" $@
|
||||||
|
|
||||||
|
linux-ggi linux-x86-ggi:
|
||||||
|
-mkdir lib
|
||||||
|
touch src/depend
|
||||||
|
touch src/glu/sgi/depend
|
||||||
|
if [ -d src/glut/glx ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if [ -d src/glw ] ; then touch src/glw/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/sgi ] ; then cd src/glu/sgi ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/glx ] ; then cd src/glut/glx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d ggi/demos ] ; then cd ggi/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glw ] ; then cd src/glw; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
# if you change GGI_DEST please change it in ggimesa.conf, too.
|
||||||
|
DESTDIR=/usr/local
|
||||||
|
GGI_DEST=lib/ggi/mesa
|
||||||
|
|
||||||
|
linux-ggi-install linux-x86-ggi-install:
|
||||||
|
install -d $(DESTDIR)/$(GGI_DEST)/default $(DESTDIR)/$(GGI_DEST)/display $(DESTDIR)/etc/ggi
|
||||||
|
install -m 0755 src/GGI/default/*.so $(DESTDIR)/$(GGI_DEST)/default
|
||||||
|
install -m 0755 src/GGI/display/*.so $(DESTDIR)/$(GGI_DEST)/display
|
||||||
|
install -m 0644 src/GGI/ggimesa.conf $(DESTDIR)/etc/ggi
|
||||||
|
# if [ -z "`grep ggimesa $(DESTDIR)/etc/ggi/libggi.conf`" ]; then \
|
||||||
|
# echo ".include $(DESTDIR)/etc/ggi/ggimesa.conf" >> $(DESTDIR)/etc/ggi/libggi.conf ; \
|
||||||
|
# fi
|
||||||
|
|
||||||
|
linux-osmesa16 linux-osmesa32:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src ] ; then touch src/depend ; fi
|
||||||
|
if [ -d src ] ; then cd src ; $(MAKE) -f Makefile.OSMesa16 $@ ; fi
|
||||||
|
|
||||||
|
linux-solo:
|
||||||
|
-mkdir lib
|
||||||
|
if [ -d src/mesa ] ; then touch src/mesa/depend ; fi
|
||||||
|
if [ -d src/glx/mini ] ; then touch src/glx/mini/depend ; fi
|
||||||
|
if [ -d src/glu/mini ] ; then touch src/glu/mini/depend ; fi
|
||||||
|
if [ -d src/glut/mini ] ; then touch src/glut/mini/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r200 ] ; then touch src/mesa/drivers/dri/r200/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r128 ] ; then touch src/mesa/drivers/dri/r128/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/radeon ] ; then touch src/mesa/drivers/dri/radeon/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/mga ] ; then touch src/mesa/drivers/dri/mga/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i810 ] ; then touch src/mesa/drivers/dri/i810/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i830 ] ; then touch src/mesa/drivers/dri/i830/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/sis ] ; then touch src/mesa/drivers/dri/sis/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/gamma ] ; then touch src/mesa/drivers/dri/gamma/depend ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/fb ] ; then touch src/mesa/drivers/dri/fb/depend ; fi
|
||||||
|
if [ -d src/glut/mini ] ; then touch src/glut/mini/depend ; fi
|
||||||
|
if [ -d progs/miniglx ] ; then touch progs/miniglx/depend ; fi
|
||||||
|
if [ -d progs/tests ] ; then touch progs/tests/depend ; fi
|
||||||
|
if [ -d src/mesa ] ; then cd src/mesa ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r200 ] ; then cd src/mesa/drivers/dri/r200 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/r128 ] ; then cd src/mesa/drivers/dri/r128 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/radeon ] ; then cd src/mesa/drivers/dri/radeon ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/mga ] ; then cd src/mesa/drivers/dri/mga ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i810 ] ; then cd src/mesa/drivers/dri/i810 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/i830 ] ; then cd src/mesa/drivers/dri/i830 ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/sis ] ; then cd src/mesa/drivers/dri/sis ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/gamma ] ; then cd src/mesa/drivers/dri/gamma ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/mesa/drivers/dri/fb ] ; then cd src/mesa/drivers/dri/fb ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glx/mini ] ; then cd src/glx/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glu/mini ] ; then cd src/glu/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d src/glut/mini ] ; then cd src/glut/mini ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/miniglx ] ; then cd progs/miniglx ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/tests ] ; then cd progs/tests ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/demos ] ; then cd progs/demos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/xdemos ] ; then cd progs/xdemos ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/samples ] ; then cd progs/samples ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
if [ -d progs/redbook ] ; then cd progs/redbook ; $(MAKE) -f Makefile.X11 $@ ; fi
|
||||||
|
|
||||||
|
# Remove .o files, emacs backup files, etc.
|
||||||
|
clean:
|
||||||
|
if ! [ -f src/mesa/depend ] ; then touch src/mesa/depend ; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/r200/depend ]; then touch src/mesa/drivers/dri/r200/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/r128/depend ]; then touch src/mesa/drivers/dri/r128/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/radeon/depend ]; then touch src/mesa/drivers/dri/radeon/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/mga/depend ]; then touch src/mesa/drivers/dri/mga/depend; fi
|
||||||
|
if ! [ -f src/mesa/drivers/dri/fb/depend ]; then touch src/mesa/drivers/dri/fb/depend; fi
|
||||||
|
if ! [ -f src/glu/mesa/depend ] ; then touch src/glu/mesa/depend ; fi
|
||||||
|
if ! [ -f src/glu/sgi/depend ] ; then touch src/glu/sgi/depend ; fi
|
||||||
|
if ! [ -f src/glu/mini/depend ] ; then touch src/glu/mini/depend ; fi
|
||||||
|
if ! [ -f src/glut/glx/depend ] ; then touch src/glut/glx/depend ; fi
|
||||||
|
if ! [ -f src/glut/mini/depend ] ; then touch src/glut/mini/depend ; fi
|
||||||
|
if ! [ -f src/glx/mini/depend ] ; then touch src/glx/mini/depend ; fi
|
||||||
|
if ! [ -f progs/tests/depend ] ; then touch progs/tests/depend ; fi
|
||||||
|
if ! [ -f progs/miniglx/depend ] ; then touch progs/miniglx/depend ; fi
|
||||||
|
-rm -f include/GL/*~
|
||||||
|
cd src/mesa && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/r200 && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/r128 && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/radeon && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/mga && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/mesa/drivers/dri/fb && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glu/mesa && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glu/sgi && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glu/mini && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glut/glx && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glut/mini && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glw && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd src/glx/mini && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/demos && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/redbook && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/xdemos && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/samples && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/tests && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
cd progs/miniglx && $(MAKE) -f Makefile.X11 $@ || true
|
||||||
|
if [ -f src/mesa/depend ] ; then rm src/mesa/depend ; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/r200/depend ]; then rm -f src/mesa/drivers/dri/r200/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/r128/depend ]; then rm -f src/mesa/drivers/dri/r128/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/radeon/depend ]; then rm -f src/mesa/drivers/dri/radeon/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/mga/depend ]; then rm -f src/mesa/drivers/dri/mga/depend; fi
|
||||||
|
if [ -f src/mesa/drivers/dri/fb/depend ]; then rm -f src/mesa/drivers/dri/fb/depend; fi
|
||||||
|
if [ -f src/glu/mesa/depend ] ; then rm -f src/glu/mesa/depend ; fi
|
||||||
|
if [ -f src/glu/sgi/depend ] ; then rm -f src/glu/sgi/depend ; fi
|
||||||
|
if [ -f src/glu/mini/depend ] ; then rm -f src/glu/mini/depend ; fi
|
||||||
|
if [ -f src/glut/glx/depend ] ; then rm -f src/glut/glx/depend ; fi
|
||||||
|
if [ -f src/glut/mini/depend ] ; then rm -f src/glut/mini/depend ; fi
|
||||||
|
if [ -f src/glx/mini/depend ] ; then rm -f src/glx/mini/depend ; fi
|
||||||
|
if [ -f progs/tests/depend ] ; then rm -f progs/tests/depend ; fi
|
||||||
|
if [ -f progs/miniglx/depend ] ; then rm -f progs/miniglx/depend ; fi
|
||||||
|
|
||||||
|
# Remove everything that can be remade
|
||||||
|
realclean: clean
|
||||||
|
-rm -fr lib lib32 lib64
|
||||||
|
cd progs/demos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd progs/xdemos && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd progs/redbook && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
cd progs/samples && $(MAKE) -f Makefile.X11 realclean || true
|
||||||
|
|
||||||
|
# Remove everything not in CVS
|
||||||
|
cvsclean: realclean
|
||||||
|
-rm -f acinclude.m4 aclocal.m4
|
||||||
|
-rm -f conf.h conf.h.in config.guess config.log config.status
|
||||||
|
-rm -f config.sub configure
|
||||||
|
-rm -f install-sh libtool ltmain.sh Makefile.in
|
||||||
|
-rm -f missing mkinstalldirs stamp-h stamp-h.in
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DIRECTORY = Mesa-5.1
|
||||||
|
LIB_NAME = MesaLib-5.1
|
||||||
|
DEMO_NAME = MesaDemos-5.1
|
||||||
|
GLU_NAME = MesaGLU-5.1
|
||||||
|
GLUT_NAME = GLUT-3.7
|
||||||
|
|
||||||
|
|
||||||
|
LIB_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/docs/*.html \
|
||||||
|
$(DIRECTORY)/docs/COPYING \
|
||||||
|
$(DIRECTORY)/docs/INSTALL.GNU \
|
||||||
|
$(DIRECTORY)/docs/README.* \
|
||||||
|
$(DIRECTORY)/docs/RELNOTES* \
|
||||||
|
$(DIRECTORY)/docs/VERSIONS \
|
||||||
|
$(DIRECTORY)/docs/*.spec \
|
||||||
|
$(DIRECTORY)/bin/README \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/descrip.mms \
|
||||||
|
$(DIRECTORY)/mms-config \
|
||||||
|
$(DIRECTORY)/xlib.opt \
|
||||||
|
$(DIRECTORY)/include/GL/internal/glcore.h \
|
||||||
|
$(DIRECTORY)/include/GL/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/GL/Makefile.am \
|
||||||
|
$(DIRECTORY)/include/GL/dmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/amesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/fxmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/ggimesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl.h \
|
||||||
|
$(DIRECTORY)/include/GL/glext.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glx.h \
|
||||||
|
$(DIRECTORY)/include/GL/glxext.h \
|
||||||
|
$(DIRECTORY)/include/GL/glx_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/mesa_wgl.h \
|
||||||
|
$(DIRECTORY)/include/GL/mglmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/osmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/svgamesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/ugl*.h \
|
||||||
|
$(DIRECTORY)/include/GL/vms_x_fix.h \
|
||||||
|
$(DIRECTORY)/include/GL/wmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/xmesa.h \
|
||||||
|
$(DIRECTORY)/include/GL/xmesa_x.h \
|
||||||
|
$(DIRECTORY)/include/GL/xmesa_xf86.h \
|
||||||
|
$(DIRECTORY)/include/GLView.h \
|
||||||
|
$(DIRECTORY)/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/mesa/mesa.conf \
|
||||||
|
$(DIRECTORY)/src/mesa/*.def \
|
||||||
|
$(DIRECTORY)/src/mesa/depend \
|
||||||
|
$(DIRECTORY)/src/mesa/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/array_cache/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/array_cache/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/math/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/math/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/swrast_setup/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl/Makefile* \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/tornado/*.c \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/tornado/*.cdf \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/man3/*.3 \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windml/man3/*.html \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/dos/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/dos/mga/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/beos/*.cpp \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/*.def \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/X86/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/X86/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/glide/X86/*.[Shc] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/*.c \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/sparc/*.[chS] \
|
||||||
|
$(DIRECTORY)/src/mesa/sparc/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/sparc/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/svga/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/svga/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windows/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/windows/*.def \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/x11/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/x11/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/drivers/x11/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/mesa/x86/*.S \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.X11 \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.win \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.DJ \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/glu.def \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/dummy.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/mesaglu.opt \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/gluos.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/README \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/alg-outline \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/libtess_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/libutil_la_SOURCES \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/Makefile.am \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/Makefile.in \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/README[12] \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.def \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glw/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glw/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glw/README \
|
||||||
|
$(DIRECTORY)/progs/util/README \
|
||||||
|
$(DIRECTORY)/progs/util/Makefile.am \
|
||||||
|
$(DIRECTORY)/progs/util/Makefile.in \
|
||||||
|
$(DIRECTORY)/progs/util/*.[ch] \
|
||||||
|
$(DIRECTORY)/progs/util/sampleMakefile \
|
||||||
|
$(DIRECTORY)/vms/analyze_map.com \
|
||||||
|
$(DIRECTORY)/vms/xlib.opt \
|
||||||
|
$(DIRECTORY)/vms/xlib_share.opt
|
||||||
|
|
||||||
|
|
||||||
|
DEMO_FILES = \
|
||||||
|
$(DIRECTORY)/include/GL/glut.h \
|
||||||
|
$(DIRECTORY)/include/GL/glutf90.h \
|
||||||
|
$(DIRECTORY)/src/glut/glx/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glut/glx/depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*def \
|
||||||
|
$(DIRECTORY)/src/glut/glx/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glut/glx/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glut/glx.dos/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glut/glx.dos/Makefile.DJ \
|
||||||
|
$(DIRECTORY)/src/glut/glx.dos/PC_HW/*.[chS] \
|
||||||
|
$(DIRECTORY)/progs/images/* \
|
||||||
|
$(DIRECTORY)/progs/demos/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/demos/descrip.mms \
|
||||||
|
$(DIRECTORY)/progs/demos/*.[ch] \
|
||||||
|
$(DIRECTORY)/progs/demos/*.cxx \
|
||||||
|
$(DIRECTORY)/progs/demos/*.dat \
|
||||||
|
$(DIRECTORY)/progs/demos/README \
|
||||||
|
$(DIRECTORY)/progs/xdemos/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/xdemos/descrip.mms \
|
||||||
|
$(DIRECTORY)/progs/xdemos/*.[chf] \
|
||||||
|
$(DIRECTORY)/progs/redbook/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/redbook/README \
|
||||||
|
$(DIRECTORY)/progs/redbook/*.[ch] \
|
||||||
|
$(DIRECTORY)/progs/samples/Makefile* \
|
||||||
|
$(DIRECTORY)/progs/samples/README \
|
||||||
|
$(DIRECTORY)/progs/samples/*.c \
|
||||||
|
$(DIRECTORY)/progs/windml/Makefile.ugl \
|
||||||
|
$(DIRECTORY)/progs/windml/*.c \
|
||||||
|
$(DIRECTORY)/progs/windml/*.bmp \
|
||||||
|
$(DIRECTORY)/progs/ggi/*.c
|
||||||
|
|
||||||
|
SI_GLU_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/Makefile.X11 \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/include/gluos.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbstess/*.h \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libnurbs/nurbstess/*.cc \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/README \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/alg-outline \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \
|
||||||
|
$(DIRECTORY)/src/glu/sgi/libutil/*.[ch]
|
||||||
|
|
||||||
|
GLU_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/gl.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glext.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu_mangle.h \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/README[12] \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.def \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/depend \
|
||||||
|
$(DIRECTORY)/src/glu/mesa/*.[ch]
|
||||||
|
|
||||||
|
GLUT_FILES = \
|
||||||
|
$(DIRECTORY)/Makefile* \
|
||||||
|
$(DIRECTORY)/Make-config \
|
||||||
|
$(DIRECTORY)/bin/mklib* \
|
||||||
|
$(DIRECTORY)/include/GL/gl.h \
|
||||||
|
$(DIRECTORY)/include/GL/gl_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glext.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu.h \
|
||||||
|
$(DIRECTORY)/include/GL/glu_mangle.h \
|
||||||
|
$(DIRECTORY)/include/GL/glut.h \
|
||||||
|
$(DIRECTORY)/include/GL/glutf90.h \
|
||||||
|
$(DIRECTORY)/src/glut/glx/Makefile* \
|
||||||
|
$(DIRECTORY)/src/glut/glx/depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*def \
|
||||||
|
$(DIRECTORY)/src/glut/glx/descrip.mms \
|
||||||
|
$(DIRECTORY)/src/glut/glx/mms_depend \
|
||||||
|
$(DIRECTORY)/src/glut/glx/*.[ch]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
lib_gz:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||||
|
gzip $(LIB_NAME).tar ; \
|
||||||
|
mv $(LIB_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_gz:
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||||
|
gzip $(DEMO_NAME).tar ; \
|
||||||
|
mv $(DEMO_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
lib_bz2:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(LIB_NAME).tar $(LIB_FILES) ; \
|
||||||
|
bzip2 $(LIB_NAME).tar ; \
|
||||||
|
mv $(LIB_NAME).tar.bz2 $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_bz2:
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(DEMO_NAME).tar $(DEMO_FILES) ; \
|
||||||
|
bzip2 $(DEMO_NAME).tar ; \
|
||||||
|
mv $(DEMO_NAME).tar.bz2 $(DIRECTORY)
|
||||||
|
|
||||||
|
lib_zip:
|
||||||
|
-rm $(LIB_NAME).zip ; \
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
zip -r $(LIB_NAME).zip $(LIB_FILES) ; \
|
||||||
|
mv $(LIB_NAME).zip $(DIRECTORY)
|
||||||
|
|
||||||
|
demo_zip:
|
||||||
|
-rm $(DEMO_NAME).zip ; \
|
||||||
|
cd .. ; \
|
||||||
|
zip -r $(DEMO_NAME).zip $(DEMO_FILES) ; \
|
||||||
|
mv $(DEMO_NAME).zip $(DIRECTORY)
|
||||||
|
|
||||||
|
md5:
|
||||||
|
@-md5sum $(LIB_NAME).tar.gz
|
||||||
|
@-md5sum $(LIB_NAME).tar.bz2
|
||||||
|
@-md5sum $(LIB_NAME).zip
|
||||||
|
@-md5sum $(DEMO_NAME).tar.gz
|
||||||
|
@-md5sum $(DEMO_NAME).tar.bz2
|
||||||
|
@-md5sum $(DEMO_NAME).zip
|
||||||
|
|
||||||
|
# Everything for new Mesa release:
|
||||||
|
tarballs: lib_gz demo_gz lib_bz2 demo_bz2 lib_zip demo_zip md5
|
||||||
|
|
||||||
|
|
||||||
|
# not used
|
||||||
|
glu_gz:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(GLU_NAME).tar $(GLU_FILES) ; \
|
||||||
|
gzip $(GLU_NAME).tar ; \
|
||||||
|
mv $(GLU_NAME).tar.gz $(DIRECTORY)
|
||||||
|
|
||||||
|
glut_gz:
|
||||||
|
cp Makefile.X11 Makefile ; \
|
||||||
|
cd .. ; \
|
||||||
|
tar -cvf $(GLUT_NAME).tar $(GLUT_FILES) ; \
|
||||||
|
gzip $(GLUT_NAME).tar ; \
|
||||||
|
mv $(GLUT_NAME).tar.gz $(DIRECTORY)
|
||||||
91
Makefile.mgw
Normal file
91
Makefile.mgw
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# Mesa 3-D graphics library
|
||||||
|
# Version: 4.0
|
||||||
|
#
|
||||||
|
# Copyright (C) 1999 Brian Paul All Rights Reserved.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# BRIAN PAUL 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.
|
||||||
|
|
||||||
|
# MinGW makefile v1.0 for Mesa
|
||||||
|
#
|
||||||
|
# Copyright (C) 2002 - Borca Daniel
|
||||||
|
# Email : dborca@users.sourceforge.net
|
||||||
|
# Web : http://www.geocities.com/dborca
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Available options:
|
||||||
|
#
|
||||||
|
# Environment variables:
|
||||||
|
# CPU optimize for the given processor.
|
||||||
|
# default = pentium
|
||||||
|
# GLIDE path to Glide3 SDK; used with FX.
|
||||||
|
# default = $(TOP)/glide3
|
||||||
|
# FX=1 build for 3dfx Glide3. Note that this disables
|
||||||
|
# compilation of most WMesa code and requires fxMesa.
|
||||||
|
# As a consequence, you'll need the Win32 Glide3
|
||||||
|
# library to build any application.
|
||||||
|
# default = no
|
||||||
|
# HAVE_X86=1 optimize for i386.
|
||||||
|
# default = no
|
||||||
|
# HAVE_MMX=1 allow MMX specializations, provided your assembler
|
||||||
|
# supports MMX instruction set. However, the true CPU
|
||||||
|
# capabilities are checked at run-time to avoid crashes.
|
||||||
|
# default = no
|
||||||
|
# HAVE_SSE=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
# HAVE_3DNOW=1 (see HAVE_MMX)
|
||||||
|
# default = no
|
||||||
|
#
|
||||||
|
# Targets:
|
||||||
|
# all: build everything
|
||||||
|
# libgl: build GL
|
||||||
|
# clean: remove object files
|
||||||
|
# realclean: remove all generated files
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY : all libgl clean realclean
|
||||||
|
|
||||||
|
CPU ?= pentium
|
||||||
|
|
||||||
|
CFLAGS = -Wall -W -pedantic
|
||||||
|
CFLAGS += -O2 -ffast-math -mcpu=$(CPU)
|
||||||
|
|
||||||
|
export CFLAGS
|
||||||
|
|
||||||
|
ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),)
|
||||||
|
UNLINK = del $(subst /,\,$(1))
|
||||||
|
else
|
||||||
|
UNLINK = $(RM) $(1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: libgl
|
||||||
|
|
||||||
|
libgl: lib
|
||||||
|
$(MAKE) -f Makefile.mgw -C src/mesa
|
||||||
|
|
||||||
|
lib:
|
||||||
|
mkdir lib
|
||||||
|
|
||||||
|
clean:
|
||||||
|
$(MAKE) -f Makefile.mgw clean -C src/mesa
|
||||||
|
|
||||||
|
realclean: clean
|
||||||
|
-$(call UNLINK,lib/*.a)
|
||||||
|
-$(call UNLINK,lib/*.dll)
|
||||||
179
Mesa.dsw
Normal file
179
Mesa.dsw
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||||
|
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "array_cache"=".\SRC\MESA\array_cache\array_cache.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "gdi"=".\src\mesa\drivers\windows\gdi\gdi.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name array_cache
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name main
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name math
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name swrast_setup
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name swrast
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name tnl
|
||||||
|
End Project Dependency
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name glapi
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "glapi"=".\SRC\MESA\glapi\glapi.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "glu"=".\src\glu\sgi\glu.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name gdi
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "glut"=".\src\glut\glx\glut.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name glu
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "main"=".\SRC\MESA\main\main.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "math"=".\SRC\MESA\math\math.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "osmesa"=".\SRC\MESA\DRIVERS\osmesa\osmesa.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
Begin Project Dependency
|
||||||
|
Project_Dep_Name gdi
|
||||||
|
End Project Dependency
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "swrast"=".\SRC\MESA\swrast\swrast.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "swrast_setup"=".\SRC\MESA\swrast_setup\swrast_setup.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Project: "tnl"=".\SRC\MESA\tnl\tnl.dsp" - Package Owner=<4>
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<4>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
Global:
|
||||||
|
|
||||||
|
Package=<5>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
Package=<3>
|
||||||
|
{{{
|
||||||
|
}}}
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
60
README.rst
60
README.rst
@@ -1,60 +0,0 @@
|
|||||||
`Mesa <https://mesa3d.org>`_ - The 3D Graphics Library
|
|
||||||
======================================================
|
|
||||||
|
|
||||||
|
|
||||||
Source
|
|
||||||
------
|
|
||||||
|
|
||||||
This repository lives at https://gitlab.freedesktop.org/mesa/mesa.
|
|
||||||
Other repositories are likely forks, and code found there is not supported.
|
|
||||||
|
|
||||||
|
|
||||||
Build & install
|
|
||||||
---------------
|
|
||||||
|
|
||||||
You can find more information in our documentation (`docs/install.html
|
|
||||||
<https://mesa3d.org/install.html>`_), but the recommended way is to use
|
|
||||||
Meson (`docs/meson.html <https://mesa3d.org/meson.html>`_):
|
|
||||||
|
|
||||||
.. code-block:: sh
|
|
||||||
|
|
||||||
$ mkdir build
|
|
||||||
$ cd build
|
|
||||||
$ meson ..
|
|
||||||
$ sudo ninja install
|
|
||||||
|
|
||||||
|
|
||||||
Support
|
|
||||||
-------
|
|
||||||
|
|
||||||
Many Mesa devs hang on IRC; if you're not sure which channel is
|
|
||||||
appropriate, you should ask your question on `Freenode's #dri-devel
|
|
||||||
<irc://chat.freenode.net#dri-devel>`_, someone will redirect you if
|
|
||||||
necessary.
|
|
||||||
Remember that not everyone is in the same timezone as you, so it might
|
|
||||||
take a while before someone qualified sees your question.
|
|
||||||
To figure out who you're talking to, or which nick to ping for your
|
|
||||||
question, check out `Who's Who on IRC
|
|
||||||
<https://dri.freedesktop.org/wiki/WhosWho/>`_.
|
|
||||||
|
|
||||||
The next best option is to ask your question in an email to the
|
|
||||||
mailing lists: `mesa-dev\@lists.freedesktop.org
|
|
||||||
<https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_
|
|
||||||
|
|
||||||
|
|
||||||
Bug reports
|
|
||||||
-----------
|
|
||||||
|
|
||||||
If you think something isn't working properly, please file a bug report
|
|
||||||
(`docs/bugs.html <https://mesa3d.org/bugs.html>`_).
|
|
||||||
|
|
||||||
|
|
||||||
Contributing
|
|
||||||
------------
|
|
||||||
|
|
||||||
Contributions are welcome, and step-by-step instructions can be found in our
|
|
||||||
documentation (`docs/submittingpatches.html
|
|
||||||
<https://mesa3d.org/submittingpatches.html>`_).
|
|
||||||
|
|
||||||
Note that Mesa uses email mailing-lists for patches submission, review and
|
|
||||||
discussions.
|
|
||||||
120
REVIEWERS
120
REVIEWERS
@@ -1,120 +0,0 @@
|
|||||||
Overview:
|
|
||||||
|
|
||||||
This file is similar in syntax (or more precisly a subset) of what is
|
|
||||||
used by the MAINTAINERS file in the linux kernel.
|
|
||||||
The purpose is not exactly the same the MAINTAINERS file in the linux
|
|
||||||
kernel, as there are not official/formal maintainers of different
|
|
||||||
subsystems in mesa, but is meant to give an idea of who to CC for
|
|
||||||
various patches for review.
|
|
||||||
|
|
||||||
Descriptions of section entries:
|
|
||||||
|
|
||||||
R: Designated reviewer: FullName <address@domain>
|
|
||||||
These reviewers should be CCed on patches.
|
|
||||||
F: Files and directories with wildcard patterns.
|
|
||||||
A trailing slash includes all files and subdirectory files.
|
|
||||||
F: drivers/net/ all files in and below drivers/net
|
|
||||||
F: drivers/net/* all files in drivers/net, but not below
|
|
||||||
F: */net/* all files in "any top level directory"/net
|
|
||||||
One pattern per line. Multiple F: lines acceptable.
|
|
||||||
|
|
||||||
Maintainers List (try to look for most precise areas first)
|
|
||||||
|
|
||||||
Note: this is an opt-in system, I have not tried to add anyone who hasn't
|
|
||||||
either asked me or sent a patch to add themselves.
|
|
||||||
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
NIR
|
|
||||||
R: Jason Ekstrand <jason@jlekstrand.net>
|
|
||||||
F: src/compiler/nir/
|
|
||||||
|
|
||||||
DOCUMENTATION
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
F: docs/
|
|
||||||
F: doxygen/
|
|
||||||
|
|
||||||
COMPATIBILITY HEADERS
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
F: include/c99*
|
|
||||||
|
|
||||||
DRI LOADER
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
F: src/loader/
|
|
||||||
|
|
||||||
EGL
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
F: src/egl/
|
|
||||||
F: include/EGL/
|
|
||||||
|
|
||||||
HAIKU
|
|
||||||
R: Alexander von Gluck IV <kallisti5@unixzen.com>
|
|
||||||
F: include/HaikuGL/
|
|
||||||
F: src/egl/drivers/haiku/
|
|
||||||
F: src/gallium/state_trackers/hgl/
|
|
||||||
F: src/gallium/targets/haiku-softpipe/
|
|
||||||
F: src/gallium/winsys/sw/hgl/
|
|
||||||
F: src/hgl/
|
|
||||||
|
|
||||||
GALLIUM LOADER
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
F: src/gallium/auxiliary/pipe-loader/
|
|
||||||
F: src/gallium/auxiliary/target-helpers/
|
|
||||||
|
|
||||||
GALLIUM TARGETS
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
F: src/gallium/targets/
|
|
||||||
|
|
||||||
SCONS BUILD
|
|
||||||
F: scons/
|
|
||||||
F: */SConscript*
|
|
||||||
F: */Makefile.sources
|
|
||||||
|
|
||||||
ANDROID BUILD
|
|
||||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
|
||||||
R: Rob Herring <robh@kernel.org>
|
|
||||||
F: CleanSpec.mk
|
|
||||||
F: */Android.*mk
|
|
||||||
F: */Makefile.sources
|
|
||||||
|
|
||||||
MESON BUILD
|
|
||||||
R: Dylan Baker <dylan@pnwbakers.com>
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
F: */meson.build
|
|
||||||
F: meson.build
|
|
||||||
F: meson_options.txt
|
|
||||||
|
|
||||||
ANDROID EGL SUPPORT
|
|
||||||
R: Rob Herring <robh@kernel.org>
|
|
||||||
R: Tomasz Figa <tfiga@chromium.org>
|
|
||||||
F: src/egl/drivers/dri2/platform_android.c
|
|
||||||
|
|
||||||
WAYLAND EGL SUPPORT
|
|
||||||
R: Daniel Stone <daniels@collabora.com>
|
|
||||||
F: src/egl/wayland/*
|
|
||||||
F: src/egl/drivers/dri2/platform_wayland.c
|
|
||||||
|
|
||||||
FREEDRENO
|
|
||||||
R: Rob Clark <robclark@freedesktop.org>
|
|
||||||
F: src/gallium/drivers/freedreno/
|
|
||||||
|
|
||||||
GLX
|
|
||||||
R: Adam Jackson <ajax@redhat.com>
|
|
||||||
F: src/glx/
|
|
||||||
|
|
||||||
VULKAN
|
|
||||||
R: Eric Engestrom <eric@engestrom.ch>
|
|
||||||
F: src/vulkan/
|
|
||||||
F: include/vulkan/
|
|
||||||
|
|
||||||
VMWARE DRIVER
|
|
||||||
R: Brian Paul <brianp@vmware.com>
|
|
||||||
R: Charmaine Lee <charmainel@vmware.com>
|
|
||||||
F: src/gallium/drivers/svga/
|
|
||||||
|
|
||||||
VMWARE WINSYS CODE
|
|
||||||
R: Thomas Hellstrom <thellstrom@vmware.com>
|
|
||||||
R: Deepak Rawat <drawat@vmware.com>
|
|
||||||
F: src/gallium/winsys/svga/
|
|
||||||
187
SConstruct
187
SConstruct
@@ -1,187 +0,0 @@
|
|||||||
#######################################################################
|
|
||||||
# Top-level SConstruct
|
|
||||||
#
|
|
||||||
# For example, invoke scons as
|
|
||||||
#
|
|
||||||
# scons build=debug llvm=yes machine=x86
|
|
||||||
#
|
|
||||||
# to set configuration variables. Or you can write those options to a file
|
|
||||||
# named config.py:
|
|
||||||
#
|
|
||||||
# # config.py
|
|
||||||
# build='debug'
|
|
||||||
# llvm=True
|
|
||||||
# machine='x86'
|
|
||||||
#
|
|
||||||
# Invoke
|
|
||||||
#
|
|
||||||
# scons -h
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
import SCons.Util
|
|
||||||
|
|
||||||
import common
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Minimal scons version
|
|
||||||
|
|
||||||
EnsureSConsVersion(2, 4)
|
|
||||||
EnsurePythonVersion(2, 7)
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Configuration options
|
|
||||||
|
|
||||||
opts = Variables('config.py')
|
|
||||||
common.AddOptions(opts)
|
|
||||||
|
|
||||||
env = Environment(
|
|
||||||
options = opts,
|
|
||||||
tools = ['gallium'],
|
|
||||||
toolpath = ['#scons'],
|
|
||||||
ENV = os.environ,
|
|
||||||
)
|
|
||||||
|
|
||||||
# XXX: This creates a many problems as it saves...
|
|
||||||
#opts.Save('config.py', env)
|
|
||||||
|
|
||||||
# Backwards compatability with old target configuration variable
|
|
||||||
try:
|
|
||||||
targets = ARGUMENTS['targets']
|
|
||||||
except KeyError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
targets = targets.split(',')
|
|
||||||
print('scons: warning: targets option is deprecated; pass the targets on their own such as')
|
|
||||||
print()
|
|
||||||
print(' scons %s' % ' '.join(targets))
|
|
||||||
print()
|
|
||||||
COMMAND_LINE_TARGETS.append(targets)
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
with open("VERSION") as f:
|
|
||||||
mesa_version = f.read().strip()
|
|
||||||
env.Append(CPPDEFINES = [
|
|
||||||
('PACKAGE_VERSION', '\\"%s\\"' % mesa_version),
|
|
||||||
('PACKAGE_BUGREPORT', '\\"https://gitlab.freedesktop.org/mesa/mesa/issues\\"'),
|
|
||||||
])
|
|
||||||
|
|
||||||
# Includes
|
|
||||||
env.Prepend(CPPPATH = [
|
|
||||||
'#/include',
|
|
||||||
])
|
|
||||||
env.Append(CPPPATH = [
|
|
||||||
'#/src/gallium/include',
|
|
||||||
'#/src/gallium/auxiliary',
|
|
||||||
'#/src/gallium/drivers',
|
|
||||||
'#/src/gallium/winsys',
|
|
||||||
])
|
|
||||||
|
|
||||||
# for debugging
|
|
||||||
#print env.Dump()
|
|
||||||
|
|
||||||
|
|
||||||
# Add a check target for running tests
|
|
||||||
check = env.Alias('check')
|
|
||||||
env.AlwaysBuild(check)
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Invoke host SConscripts
|
|
||||||
#
|
|
||||||
# For things that are meant to be run on the native host build machine, instead
|
|
||||||
# of the target machine.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Create host environent
|
|
||||||
if env['crosscompile'] and not env['embedded']:
|
|
||||||
host_env = Environment(
|
|
||||||
options = opts,
|
|
||||||
# no tool used
|
|
||||||
tools = [],
|
|
||||||
toolpath = ['#scons'],
|
|
||||||
ENV = os.environ,
|
|
||||||
)
|
|
||||||
|
|
||||||
# Override options
|
|
||||||
host_env['platform'] = common.host_platform
|
|
||||||
host_env['machine'] = common.host_machine
|
|
||||||
host_env['toolchain'] = 'default'
|
|
||||||
host_env['llvm'] = False
|
|
||||||
|
|
||||||
host_env.Tool('gallium')
|
|
||||||
|
|
||||||
host_env['hostonly'] = True
|
|
||||||
assert host_env['crosscompile'] == False
|
|
||||||
|
|
||||||
target_env = env
|
|
||||||
env = host_env
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
SConscript(
|
|
||||||
'src/SConscript',
|
|
||||||
variant_dir = host_env['build_dir'],
|
|
||||||
duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
|
||||||
)
|
|
||||||
|
|
||||||
env = target_env
|
|
||||||
|
|
||||||
Export('env')
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Invoke SConscripts
|
|
||||||
|
|
||||||
# TODO: Build several variants at the same time?
|
|
||||||
# http://www.scons.org/wiki/SimultaneousVariantBuilds
|
|
||||||
|
|
||||||
SConscript(
|
|
||||||
'src/SConscript',
|
|
||||||
variant_dir = env['build_dir'],
|
|
||||||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# List all aliases
|
|
||||||
|
|
||||||
try:
|
|
||||||
from SCons.Node.Alias import default_ans
|
|
||||||
except ImportError:
|
|
||||||
pass
|
|
||||||
else:
|
|
||||||
aliases = sorted(default_ans.keys())
|
|
||||||
env.Help('\n')
|
|
||||||
env.Help('Recognized targets:\n')
|
|
||||||
for alias in aliases:
|
|
||||||
env.Help(' %s\n' % alias)
|
|
||||||
73
appveyor.yml
73
appveyor.yml
@@ -1,73 +0,0 @@
|
|||||||
# http://www.appveyor.com/docs/appveyor-yml
|
|
||||||
#
|
|
||||||
# To setup AppVeyor for your own personal repositories do the following:
|
|
||||||
# - Sign up
|
|
||||||
# - Add a new project
|
|
||||||
# - Select Git and fill in the Git clone URL
|
|
||||||
# - Setup a Git hook as explained in
|
|
||||||
# https://github.com/appveyor/webhooks#installing-git-hook
|
|
||||||
# - Check 'Settings > General > Skip branches without appveyor.yml'
|
|
||||||
# - Check 'Settings > General > Rolling builds'
|
|
||||||
# - Setup the global or project notifications to your liking
|
|
||||||
#
|
|
||||||
# Note that kicking (or restarting) a build via the web UI will not work, as it
|
|
||||||
# will fail to find appveyor.yml . The Git hook is the most practical way to
|
|
||||||
# kick a build.
|
|
||||||
#
|
|
||||||
# See also:
|
|
||||||
# - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file
|
|
||||||
# - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml
|
|
||||||
|
|
||||||
version: '{build}'
|
|
||||||
|
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- /^travis.*$/
|
|
||||||
|
|
||||||
# Don't download the full Mesa history to speed up cloning. However the clone
|
|
||||||
# depth must not be too small, otherwise builds might fail when lots of patches
|
|
||||||
# are committed in succession, because the desired commit is not found on the
|
|
||||||
# truncated history.
|
|
||||||
#
|
|
||||||
# See also:
|
|
||||||
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
|
|
||||||
clone_depth: 100
|
|
||||||
|
|
||||||
# https://www.appveyor.com/docs/build-cache/
|
|
||||||
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
|
|
||||||
|
|
||||||
init:
|
|
||||||
# Appveyor defaults core.autocrlf to input instead of the default (true), but
|
|
||||||
# that can hide problems processing CRLF text on Windows
|
|
||||||
- git config --global core.autocrlf true
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
build_script:
|
|
||||||
- cmd: .appveyor\appveyor_msvc.bat build_script
|
|
||||||
|
|
||||||
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
|
|
||||||
# doing so would cause the notification settings to be replicated across all
|
|
||||||
# repos, which is most likely undesired. So it's better to rely on the
|
|
||||||
# Appveyor global/project notification settings.
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
# This is reverted shortly after landing
|
|
||||||
4432a2d14d80081d062f7939a950d65ea3a16eed
|
|
||||||
|
|
||||||
# These were manually backported
|
|
||||||
21be5c8edd3ad156f6cbfbceb96e7939716d9f2c
|
|
||||||
4b392ced2d744fccffe95490ff57e6b41033c266
|
|
||||||
b6905438514ae4de0b7f85c861e3d811ddaadda9
|
|
||||||
|
|
||||||
# This isn't worth the effort to backport, as it only affects build with
|
|
||||||
# asserts enable, which hopefully wont happen in a stable branch.
|
|
||||||
937b9055698be0dfdb7d2e0673a989e2ecc05912
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[*.sh]
|
|
||||||
indent_style = tab
|
|
||||||
@@ -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
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates which fix commits that have been
|
|
||||||
# previously cherry-picked to a stable branch.
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-extra-pick-list.sh
|
|
||||||
# $ bin/get-extra-pick-list.sh > picklist
|
|
||||||
# $ bin/get-extra-pick-list.sh | tee picklist
|
|
||||||
|
|
||||||
# Use the last branchpoint as our limit for the search
|
|
||||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
|
||||||
|
|
||||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
|
||||||
git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
|
||||||
grep "cherry picked from commit" |\
|
|
||||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
|
||||||
|
|
||||||
# For each cherry-picked commit...
|
|
||||||
cat already_picked | cut -c -8 |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# ... check if it's referenced (fixed by another) patch
|
|
||||||
git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\
|
|
||||||
cut -c -8 |\
|
|
||||||
while read candidate
|
|
||||||
do
|
|
||||||
# And flag up if it hasn't landed in branch yet.
|
|
||||||
if grep -q ^$candidate already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
# Or if it isn't in the ignore list.
|
|
||||||
if [ -f bin/.cherry-ignore ] ; then
|
|
||||||
if grep -q ^$candidate bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
printf "Commit \"%s\" references %s\n" \
|
|
||||||
"`git log -n1 --pretty=oneline $candidate`" \
|
|
||||||
"$sha"
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Script for generating a list of candidates for cherry-picking to a stable branch
|
|
||||||
#
|
|
||||||
# Usage examples:
|
|
||||||
#
|
|
||||||
# $ bin/get-pick-list.sh
|
|
||||||
# $ bin/get-pick-list.sh > picklist
|
|
||||||
# $ bin/get-pick-list.sh | tee picklist
|
|
||||||
#
|
|
||||||
# The output is as follows:
|
|
||||||
# [nomination_type] commit_sha commit summary
|
|
||||||
|
|
||||||
is_stable_nomination()
|
|
||||||
{
|
|
||||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_typod_nomination()
|
|
||||||
{
|
|
||||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
|
||||||
}
|
|
||||||
|
|
||||||
fixes=
|
|
||||||
|
|
||||||
# Helper to handle various mistypos of the fixes tag.
|
|
||||||
# The tag string itself is passed as argument and normalised within.
|
|
||||||
#
|
|
||||||
# Resulting string in the global variable "fixes" and contains entries
|
|
||||||
# in the form "fixes:$sha"
|
|
||||||
is_sha_nomination()
|
|
||||||
{
|
|
||||||
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
|
|
||||||
sed -e 's/'"$2"'/\nfixes:/Ig' | \
|
|
||||||
grep -Eo 'fixes:[a-f0-9]{4,40}'`
|
|
||||||
|
|
||||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
|
||||||
if test $fixes_count -eq 0; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Throw a warning for each invalid sha
|
|
||||||
while test $fixes_count -gt 0; do
|
|
||||||
# Treat only the current line
|
|
||||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
|
||||||
fixes_count=$(($fixes_count-1))
|
|
||||||
if ! git show $id >/dev/null 2>&1; then
|
|
||||||
echo WARNING: Commit $1 lists invalid sha $id
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# Checks if at least one of offending commits, listed in the global
|
|
||||||
# "fixes", is in branch.
|
|
||||||
sha_in_range()
|
|
||||||
{
|
|
||||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
|
||||||
while test $fixes_count -gt 0; do
|
|
||||||
# Treat only the current line
|
|
||||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
|
||||||
fixes_count=$(($fixes_count-1))
|
|
||||||
|
|
||||||
# Be that cherry-picked ...
|
|
||||||
# ... or landed before the branchpoint.
|
|
||||||
if grep -q ^$id already_picked ||
|
|
||||||
grep -q ^$id already_landed ; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
is_fixes_nomination()
|
|
||||||
{
|
|
||||||
is_sha_nomination "$1" "fixes:[[:space:]]*"
|
|
||||||
if test $? -eq 0; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
is_sha_nomination "$1" "fixes[[:space:]]\+"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_brokenby_nomination()
|
|
||||||
{
|
|
||||||
is_sha_nomination "$1" "broken by"
|
|
||||||
}
|
|
||||||
|
|
||||||
is_revert_nomination()
|
|
||||||
{
|
|
||||||
is_sha_nomination "$1" "This reverts commit "
|
|
||||||
}
|
|
||||||
|
|
||||||
# Use the last branchpoint as our limit for the search
|
|
||||||
latest_branchpoint=`git merge-base upstream/master HEAD`
|
|
||||||
|
|
||||||
# List all the commits between day 1 and the branch point...
|
|
||||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
|
||||||
|
|
||||||
# ... and the ones cherry-picked.
|
|
||||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
|
||||||
grep "cherry picked from commit" |\
|
|
||||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
|
||||||
|
|
||||||
# Grep for potential candidates
|
|
||||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..upstream/master |\
|
|
||||||
while read sha
|
|
||||||
do
|
|
||||||
# Check to see whether the patch is on the ignore list.
|
|
||||||
if test -f bin/.cherry-ignore; then
|
|
||||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check to see if it has already been picked over.
|
|
||||||
if grep -q ^$sha already_picked ; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
if is_fixes_nomination "$sha"; then
|
|
||||||
tag=fixes
|
|
||||||
elif is_brokenby_nomination "$sha"; then
|
|
||||||
tag=brokenby
|
|
||||||
elif is_revert_nomination "$sha"; then
|
|
||||||
tag=revert
|
|
||||||
elif is_stable_nomination "$sha"; then
|
|
||||||
tag=stable
|
|
||||||
elif is_typod_nomination "$sha"; then
|
|
||||||
tag=typod
|
|
||||||
else
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$tag" in
|
|
||||||
fixes | brokenby | revert )
|
|
||||||
if ! sha_in_range; then
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
printf "[ %8s ] " "$tag"
|
|
||||||
git --no-pager show --no-patch --pretty=oneline $sha
|
|
||||||
done
|
|
||||||
|
|
||||||
rm -f already_picked
|
|
||||||
rm -f already_landed
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
"""
|
|
||||||
Generate the contents of the git_sha1.h file.
|
|
||||||
The output of this script goes to stdout.
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def get_git_sha1():
|
|
||||||
"""Try to get the git SHA1 with git rev-parse."""
|
|
||||||
git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git')
|
|
||||||
try:
|
|
||||||
git_sha1 = subprocess.check_output([
|
|
||||||
'git',
|
|
||||||
'--git-dir=' + git_dir,
|
|
||||||
'rev-parse',
|
|
||||||
'HEAD',
|
|
||||||
], stderr=open(os.devnull, 'w')).decode("ascii")
|
|
||||||
except:
|
|
||||||
# don't print anything if it fails
|
|
||||||
git_sha1 = ''
|
|
||||||
return git_sha1
|
|
||||||
|
|
||||||
def write_if_different(contents):
|
|
||||||
"""
|
|
||||||
Avoid touching the output file if it doesn't need modifications
|
|
||||||
Useful to avoid triggering rebuilds when nothing has changed.
|
|
||||||
"""
|
|
||||||
if os.path.isfile(args.output):
|
|
||||||
with open(args.output, 'r') as file:
|
|
||||||
if file.read() == contents:
|
|
||||||
return
|
|
||||||
with open(args.output, 'w') as file:
|
|
||||||
file.write(contents)
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('--output', help='File to write the #define in',
|
|
||||||
required=True)
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10]
|
|
||||||
if git_sha1:
|
|
||||||
write_if_different('#define MESA_GIT_SHA1 " (git-' + git_sha1 + ')"')
|
|
||||||
else:
|
|
||||||
write_if_different('#define MESA_GIT_SHA1 ""')
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
# encoding=utf-8
|
|
||||||
# Copyright © 2017-2018 Intel Corporation
|
|
||||||
|
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
"""Script to install megadriver symlinks for meson."""
|
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument('megadriver')
|
|
||||||
parser.add_argument('libdir')
|
|
||||||
parser.add_argument('drivers', nargs='+')
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
if os.path.isabs(args.libdir):
|
|
||||||
destdir = os.environ.get('DESTDIR')
|
|
||||||
if destdir:
|
|
||||||
to = os.path.join(destdir, args.libdir[1:])
|
|
||||||
else:
|
|
||||||
to = args.libdir
|
|
||||||
else:
|
|
||||||
to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir)
|
|
||||||
|
|
||||||
master = os.path.join(to, os.path.basename(args.megadriver))
|
|
||||||
|
|
||||||
if not os.path.exists(to):
|
|
||||||
if os.path.lexists(to):
|
|
||||||
os.unlink(to)
|
|
||||||
os.makedirs(to)
|
|
||||||
|
|
||||||
for driver in args.drivers:
|
|
||||||
abs_driver = os.path.join(to, driver)
|
|
||||||
|
|
||||||
if os.path.lexists(abs_driver):
|
|
||||||
os.unlink(abs_driver)
|
|
||||||
print('installing {} to {}'.format(args.megadriver, abs_driver))
|
|
||||||
os.link(master, abs_driver)
|
|
||||||
|
|
||||||
try:
|
|
||||||
ret = os.getcwd()
|
|
||||||
os.chdir(to)
|
|
||||||
|
|
||||||
name, ext = os.path.splitext(driver)
|
|
||||||
while ext != '.so':
|
|
||||||
if os.path.lexists(name):
|
|
||||||
os.unlink(name)
|
|
||||||
os.symlink(driver, name)
|
|
||||||
name, ext = os.path.splitext(name)
|
|
||||||
finally:
|
|
||||||
os.chdir(ret)
|
|
||||||
|
|
||||||
# Remove meson-created master .so and symlinks
|
|
||||||
os.unlink(master)
|
|
||||||
name, ext = os.path.splitext(master)
|
|
||||||
while ext != '.so':
|
|
||||||
if os.path.lexists(name):
|
|
||||||
os.unlink(name)
|
|
||||||
name, ext = os.path.splitext(name)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@@ -1,88 +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.
|
|
||||||
|
|
||||||
"""This script reads a meson build directory and gives back the command line it
|
|
||||||
was configured with.
|
|
||||||
|
|
||||||
This only works for meson 0.49.0 and newer.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import ast
|
|
||||||
import configparser
|
|
||||||
import pathlib
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def parse_args() -> argparse.Namespace:
|
|
||||||
"""Parse arguments."""
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument(
|
|
||||||
'build_dir',
|
|
||||||
help='Path the meson build directory')
|
|
||||||
args = parser.parse_args()
|
|
||||||
return args
|
|
||||||
|
|
||||||
|
|
||||||
def load_config(path: pathlib.Path) -> configparser.ConfigParser:
|
|
||||||
"""Load config file."""
|
|
||||||
conf = configparser.ConfigParser()
|
|
||||||
with path.open() as f:
|
|
||||||
conf.read_file(f)
|
|
||||||
return conf
|
|
||||||
|
|
||||||
|
|
||||||
def build_cmd(conf: configparser.ConfigParser) -> str:
|
|
||||||
"""Rebuild the command line."""
|
|
||||||
args = []
|
|
||||||
for k, v in conf['options'].items():
|
|
||||||
if ' ' in v:
|
|
||||||
args.append(f'-D{k}="{v}"')
|
|
||||||
else:
|
|
||||||
args.append(f'-D{k}={v}')
|
|
||||||
|
|
||||||
cf = conf['properties'].get('cross_file')
|
|
||||||
if cf:
|
|
||||||
args.append('--cross-file={}'.format(cf))
|
|
||||||
nf = conf['properties'].get('native_file')
|
|
||||||
if nf:
|
|
||||||
# this will be in the form "['str', 'str']", so use ast.literal_eval to
|
|
||||||
# convert it to a list of strings.
|
|
||||||
nf = ast.literal_eval(nf)
|
|
||||||
args.extend(['--native-file={}'.format(f) for f in nf])
|
|
||||||
return ' '.join(args)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
args = parse_args()
|
|
||||||
path = pathlib.Path(args.build_dir, 'meson-private', 'cmd_line.txt')
|
|
||||||
if not path.exists():
|
|
||||||
print('Cannot find the necessary file to rebuild command line. '
|
|
||||||
'Is your meson version >= 0.49.0?', file=sys.stderr)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
conf = load_config(path)
|
|
||||||
cmd = build_cmd(conf)
|
|
||||||
print(cmd)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
from os import get_terminal_size
|
|
||||||
from textwrap import wrap
|
|
||||||
from mesonbuild import coredata
|
|
||||||
from mesonbuild import optinterpreter
|
|
||||||
|
|
||||||
(COLUMNS, _) = get_terminal_size()
|
|
||||||
|
|
||||||
def describe_option(option_name: str, option_default_value: str,
|
|
||||||
option_type: str, option_message: str) -> None:
|
|
||||||
print('name: ' + option_name)
|
|
||||||
print('default: ' + option_default_value)
|
|
||||||
print('type: ' + option_type)
|
|
||||||
for line in wrap(option_message, width=COLUMNS - 9):
|
|
||||||
print(' ' + line)
|
|
||||||
print('---')
|
|
||||||
|
|
||||||
oi = optinterpreter.OptionInterpreter('')
|
|
||||||
oi.process('meson_options.txt')
|
|
||||||
|
|
||||||
for (name, value) in oi.options.items():
|
|
||||||
if isinstance(value, coredata.UserStringOption):
|
|
||||||
describe_option(name,
|
|
||||||
value.value,
|
|
||||||
'string',
|
|
||||||
"You can type what you want, but make sure it makes sense")
|
|
||||||
elif isinstance(value, coredata.UserBooleanOption):
|
|
||||||
describe_option(name,
|
|
||||||
'true' if value.value else 'false',
|
|
||||||
'boolean',
|
|
||||||
"You can set it to 'true' or 'false'")
|
|
||||||
elif isinstance(value, coredata.UserIntegerOption):
|
|
||||||
describe_option(name,
|
|
||||||
str(value.value),
|
|
||||||
'integer',
|
|
||||||
"You can set it to any integer value between '{}' and '{}'".format(value.min_value, value.max_value))
|
|
||||||
elif isinstance(value, coredata.UserUmaskOption):
|
|
||||||
describe_option(name,
|
|
||||||
str(value.value),
|
|
||||||
'umask',
|
|
||||||
"You can set it to 'preserve' or a value between '0000' and '0777'")
|
|
||||||
elif isinstance(value, coredata.UserComboOption):
|
|
||||||
choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
|
|
||||||
describe_option(name,
|
|
||||||
value.value,
|
|
||||||
'combo',
|
|
||||||
"You can set it to any one of those values: " + choices)
|
|
||||||
elif isinstance(value, coredata.UserArrayOption):
|
|
||||||
choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']'
|
|
||||||
value = '[' + ', '.join(["'" + v + "'" for v in value.value]) + ']'
|
|
||||||
describe_option(name,
|
|
||||||
value,
|
|
||||||
'array',
|
|
||||||
"You can set it to one or more of those values: " + choices)
|
|
||||||
elif isinstance(value, coredata.UserFeatureOption):
|
|
||||||
describe_option(name,
|
|
||||||
value.value,
|
|
||||||
'feature',
|
|
||||||
"You can set it to 'auto', 'enabled', or 'disabled'")
|
|
||||||
else:
|
|
||||||
print(name + ' is an option of a type unknown to this script')
|
|
||||||
print('---')
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# Copyright © 2017 Eric Engestrom
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
git_sha1_gen_py = files('git_sha1_gen.py')
|
|
||||||
symbols_check = find_program('symbols-check.py')
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# encoding=utf-8
|
|
||||||
# Copyright © 2017 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 __future__ import print_function
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
filename = os.path.join(os.environ['MESON_SOURCE_ROOT'], 'VERSION')
|
|
||||||
with open(filename) as f:
|
|
||||||
version = f.read().strip()
|
|
||||||
print(version, end='')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
331
bin/mklib
Executable file
331
bin/mklib
Executable file
@@ -0,0 +1,331 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Make a shared library.
|
||||||
|
# Basically do a switch/case depending on the OS and make a shared
|
||||||
|
# lib conforming to that OS.
|
||||||
|
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# mklib [options] objects ...
|
||||||
|
# Options:
|
||||||
|
# -o LIBRARY specifies the name of resulting library ("GL" for example)
|
||||||
|
# -major N specifies major version number (default is 1)
|
||||||
|
# -minor N specifies minor version number (default is 0)
|
||||||
|
# -patch N specifies patch version number (default is 0)
|
||||||
|
# -lLIBRARY specifies a dependency on LIBRARY
|
||||||
|
# -LDIR search in DIR for library dependencies
|
||||||
|
# -cplusplus link with C++ runtime
|
||||||
|
# -static make a static library (default is dynamic/shared)
|
||||||
|
# -install DIR move resulting library files to DIR
|
||||||
|
# -arch ARCH override using `uname` to determine architecture
|
||||||
|
# -archopt OPT specify an extra achitecture-specific option OPT
|
||||||
|
#
|
||||||
|
# The library name should just be "GL" or "GLU", etc. The 'lib' prefix
|
||||||
|
# will be added here if needed, as well as the ".so" or ".a" suffix, etc.
|
||||||
|
#
|
||||||
|
# objects should be: foo.o bar.o etc.o
|
||||||
|
#
|
||||||
|
# Environment variables recognized:
|
||||||
|
# CC C compiler command
|
||||||
|
# CXX C++ compiler command
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Option defaults
|
||||||
|
#
|
||||||
|
LIBNAME=""
|
||||||
|
MAJOR=1
|
||||||
|
MINOR=0
|
||||||
|
PATCH=0
|
||||||
|
DEPS=""
|
||||||
|
CPLUSPLUS=0
|
||||||
|
STATIC=0
|
||||||
|
INSTALLDIR="."
|
||||||
|
ARCH="auto"
|
||||||
|
ARCHOPT=""
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Parse arguments
|
||||||
|
#
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
'-o') shift 1; LIBNAME=$1;;
|
||||||
|
'-major') shift 1; MAJOR=$1;;
|
||||||
|
'-minor') shift 1; MINOR=$1;;
|
||||||
|
'-patch') shift 1; PATCH=$1;;
|
||||||
|
-l*) DEPS="$DEPS $1";;
|
||||||
|
-L*) DEPS="$DEPS $1";;
|
||||||
|
'-cplusplus') CPLUSPLUS=1;;
|
||||||
|
'-static') STATIC=1;;
|
||||||
|
'-install') shift 1; INSTALLDIR=$1;;
|
||||||
|
'-arch') shift 1; ARCH=$1;;
|
||||||
|
'-archopt') shift 1; ARCHOPT=$1;;
|
||||||
|
-*) echo "mklib: Unknown option: " $1 ; exit 1;;
|
||||||
|
*) break
|
||||||
|
esac
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
|
OBJECTS=$@
|
||||||
|
|
||||||
|
if [ ${ARCH} = "auto" ] ; then
|
||||||
|
ARCH=`uname`
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Error checking
|
||||||
|
#
|
||||||
|
if [ "x${LIBNAME}" = "x" ] ; then
|
||||||
|
echo "mklib: Error: no library name specified"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "x${OBJECTS}" = "x" ] ; then
|
||||||
|
echo "mklib: Error: no object files specified"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Debugging info
|
||||||
|
#
|
||||||
|
if [ ] ; then
|
||||||
|
echo "-----------------"
|
||||||
|
echo ARCH is $ARCH
|
||||||
|
echo LIBNAME is $LIBNAME
|
||||||
|
echo MAJOR is $MAJOR
|
||||||
|
echo MINOR is $MINOR
|
||||||
|
echo PATCH is $PATCH
|
||||||
|
echo DEPS are $DEPS
|
||||||
|
echo "-----------------"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# OK, make the library now
|
||||||
|
#
|
||||||
|
case $ARCH in
|
||||||
|
|
||||||
|
'Linux')
|
||||||
|
LIBNAME="lib${LIBNAME}" # prefix with "lib"
|
||||||
|
OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}"
|
||||||
|
VERSION="${MAJOR}.${MINOR}.${PATCH}"
|
||||||
|
|
||||||
|
echo "mklib: Making Linux shared library: " ${LIBNAME}.so.${VERSION}
|
||||||
|
|
||||||
|
if [ $CPLUSPLUS = 1 ] ; then
|
||||||
|
LINK="g++"
|
||||||
|
else
|
||||||
|
LINK="gcc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# rm any old libs
|
||||||
|
rm -f ${LIBNAME}.so.${VERSION}
|
||||||
|
rm -f ${LIBNAME}.so.${MAJOR}
|
||||||
|
rm -f ${LIBNAME}.so
|
||||||
|
|
||||||
|
# make lib
|
||||||
|
${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS}
|
||||||
|
# make usual symlinks
|
||||||
|
ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR}
|
||||||
|
ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so
|
||||||
|
# finish up
|
||||||
|
FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'SunOS')
|
||||||
|
LIBNAME="lib${LIBNAME}.so"
|
||||||
|
echo "mklib: Making SunOS shared library: " ${LIBNAME}
|
||||||
|
OPTS="-G"
|
||||||
|
if [ $CPLUSPLUS = 1 ] ; then
|
||||||
|
# link for C++
|
||||||
|
if [ "x${CXX}" = "xg++" ] ; then
|
||||||
|
LINK="g++"
|
||||||
|
elif [ "x${CXX}" = "xCC" ] ; then
|
||||||
|
LINK="CC"
|
||||||
|
elif [ `which c++` ] ; then
|
||||||
|
LINK="c++"
|
||||||
|
elif [ `type g++` ] ; then
|
||||||
|
LINK="g++"
|
||||||
|
else
|
||||||
|
echo "mklib: warning: can't find C++ comiler, trying CC."
|
||||||
|
LINK="CC"
|
||||||
|
fi
|
||||||
|
elif [ "x${CC}" = "xgcc" ] ; then
|
||||||
|
# use gcc for linking
|
||||||
|
LINK="gcc"
|
||||||
|
else
|
||||||
|
# use native Sun linker
|
||||||
|
LINK="ld"
|
||||||
|
fi
|
||||||
|
echo "mklib: linker is " ${LINK}
|
||||||
|
rm -f ${LIBNAME}
|
||||||
|
${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'FreeBSD')
|
||||||
|
SHLIB="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
|
||||||
|
STLIB="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making FreeBSD shared library: " ${SHLIB}
|
||||||
|
rm -f ${SHLIB} ${STLIB}
|
||||||
|
ar cq ${STLIB} ${OBJECTS}
|
||||||
|
ranlib ${STLIB}
|
||||||
|
ld -Bshareable -o ${SHLIB} ${OBJECTS}
|
||||||
|
# XXX make lib${LIBNAME}.so.${MAJOR} symlink?
|
||||||
|
FINAL_LIBS="${SHLIB} ${STLIB}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'OpenBSD')
|
||||||
|
LIBNAME="lib${LIBNAME}"
|
||||||
|
VERSION="${MAJOR}.${MINOR}"
|
||||||
|
echo "Building OpenBSD PIC library: " ${LIBNAME}
|
||||||
|
rm -f ${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}
|
||||||
|
ar cq ${LIBNAME}_pic.a ${OBJECTS}
|
||||||
|
ranlib ${LIBNAME}_pic.a
|
||||||
|
ld -x -Bshareable -Bforcearchive -o ${LIBNAME}.so.${VERSION} ${LIBNAME}_pic.a
|
||||||
|
ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so
|
||||||
|
FINAL_LIBS="${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION} ${LIBNAME}.so"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'NetBSD')
|
||||||
|
LIBNAME="lib${LIBNAME}"
|
||||||
|
echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
|
||||||
|
VERSION="${MAJOR}.${MINOR}"
|
||||||
|
rm -f ${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}
|
||||||
|
ar cq ${LIBNAME}_pic.a ${OBJECTS}
|
||||||
|
ranlib ${LIBNAME}_pic.a
|
||||||
|
ld -x -Bshareable -Bforcearchive -o ${LIBNAME}.so.${VERSION} ${LIBNAME}_pic.a
|
||||||
|
FINAL_LIBS="${LIBNAME}_pic.a ${LIBNAME}.so.${VERSION}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'IRIX')
|
||||||
|
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
|
||||||
|
if [ $ARCHOPTS = "64" ] ; then
|
||||||
|
# 64-bit ABI
|
||||||
|
OPTS="-64 -shared -all"
|
||||||
|
echo "mklib: Making IRIX 64-bit shared library: " ${LIBNAME}
|
||||||
|
elif [ $ARCHOPTS = "o32" ] ; then
|
||||||
|
# old 32-bit ABI
|
||||||
|
OPTS="-32 -shared -all"
|
||||||
|
echo "mklib: Making IRIX o32-bit shared library: " ${LIBNAME}
|
||||||
|
else
|
||||||
|
# new 32-bit ABI
|
||||||
|
OPTS="-n32 -shared -all"
|
||||||
|
echo "mklib: Making IRIX n32-bit shared library: " ${LIBNAME}
|
||||||
|
fi
|
||||||
|
ld ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS="${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'IRIX64')
|
||||||
|
LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
|
||||||
|
echo "mklib: Making IRIX64 library: " ${LIBNAME}
|
||||||
|
# 64-bit ABI
|
||||||
|
OPTS="-64 -shared -all"
|
||||||
|
ld ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS="${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'linux-cygwin')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making linux-cygwin library: " ${LIBNAME}
|
||||||
|
gnuwin32ar ruv ${LIBNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'HPUX')
|
||||||
|
RUNLIB="lib${LIBNAME}.${MAJOR}"
|
||||||
|
DEVLIB="lib${LIBNAME}.sl"
|
||||||
|
echo "mklib: Making HPUX library: " ${RUNLIB} ${DEVLIB}
|
||||||
|
ld -b -o ${RUNLIB} +b ${RUNLIB} ${OBJECTS} ${DEPS}
|
||||||
|
ln -s ${RUNLIB} ${DEVLIB}
|
||||||
|
FINAL_LIBS="{RUNLIB} ${DEVLIB}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'OpenSTEP')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making OpenSTEP static library: " ${LIBNAME}
|
||||||
|
libtool -static -o ${LIBNAME} - ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'OSF1')
|
||||||
|
VERSION="${MAJOR}.${MINOR}"
|
||||||
|
LIBNAME="lib${LIBNAME}.so"
|
||||||
|
ARNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making OSF/1 library: " ${LIBNAME}
|
||||||
|
rm -f ${LIBNAME}.${VERSION}
|
||||||
|
ld -o ${LIBNAME}.${VERSION} -shared -no_archive -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS}
|
||||||
|
ln -sf ${LIBNAME}.${VERSION} ${LIBNAME}
|
||||||
|
|
||||||
|
# also make static lib
|
||||||
|
rm -f ${ARNAME}
|
||||||
|
ar clqz ${ARNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS="${ARNAME} ${LIBNAME} ${LIBNAME}.${VERSION}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'Darwin')
|
||||||
|
VERSION="${MAJOR}.${MINOR}.${TINY}"
|
||||||
|
LIBNAME="lib${LIBNAME}.dylib"
|
||||||
|
ARNAME="lib${LIBNAME}.dylib.a"
|
||||||
|
echo "mklib: Making Darwin libraries: " ${LIBNAME} ${ARNAME}
|
||||||
|
FLAGS="-dynamiclib -multiply_defined suppress"
|
||||||
|
cc ${FLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
# also make regular .a files,
|
||||||
|
# provided by Danek Duvall (duvall@dhduvall.student.princeton.edu)
|
||||||
|
ar ruv ${ARNAME} ${OBJECTS}
|
||||||
|
ranlib ${ARNAME}
|
||||||
|
FINAL_LIBS="${ARNAME} ${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
'LynxOS')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making LynxOS library: " ${LIBNAME}
|
||||||
|
ar ru ${LIBNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'BeOS')
|
||||||
|
LIBNAME="lib${LIBNAME}.so"
|
||||||
|
echo "mklib: Making BeOS shared library: " ${LIBNAME}
|
||||||
|
gcc -nostart -Xlinker -soname=${LIBNAME} -L/Be/develop/lib/x86 ${OBJECTS} -lbe -o ${LIBNAME}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'QNX')
|
||||||
|
LIBNAME="lib${LIBNAME}.a"
|
||||||
|
echo "mklib: Making QNX library: " ${LIBNAME}
|
||||||
|
wlib ${LIBNAME} ${OBJECTS}
|
||||||
|
FINAL_LIBS=${LIBNAME}
|
||||||
|
;;
|
||||||
|
|
||||||
|
'example')
|
||||||
|
# If you're adding support for a new architecture, you can
|
||||||
|
# start with this:
|
||||||
|
LIBNAME="lib${LIBNAME}.so" # prefix with "lib"
|
||||||
|
echo "mklib: Making library for example arch: " ${LIBNAME}
|
||||||
|
ld -o ${LIBNAME} ${OBJECTS} ${DEPS}
|
||||||
|
FINAL_LIBS="${LIBNAME}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "mklib: WARNING: making library for unknown platform!"
|
||||||
|
echo "mklib: WARNING: this may not work!"
|
||||||
|
echo "mklib: WARNING: please update the bin/mklib script!"
|
||||||
|
# XXX this is a total hack for Mesa - remove someday
|
||||||
|
# fall-back to an old mklib.* script
|
||||||
|
${MAKELIB} "lib${LIBNAME}.a" ${MAJOR} ${MINOR} ${PATCH} ${OBJECTS}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Put library files into installation directory if specified.
|
||||||
|
#
|
||||||
|
if [ ${INSTALLDIR} != "." ] ; then
|
||||||
|
echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
|
||||||
|
mv ${FINAL_LIBS} ${INSTALLDIR}/
|
||||||
|
fi
|
||||||
153
bin/mklib.aix
Executable file
153
bin/mklib.aix
Executable file
@@ -0,0 +1,153 @@
|
|||||||
|
#!/bin/ksh
|
||||||
|
|
||||||
|
# Make an AIX shared library (tricky!!!)
|
||||||
|
# Based on a script from Athanasios G. Gaitatzes (gaitat@vnet.ibm.com)
|
||||||
|
# Improved by Greg Thompson <gregt@visix.com> -gt
|
||||||
|
|
||||||
|
#--identification------------------------------------------------------
|
||||||
|
|
||||||
|
# $Id: mklib.aix,v 1.2 1999/09/15 15:10:20 brianp Exp $
|
||||||
|
|
||||||
|
# $Log: mklib.aix,v $
|
||||||
|
# Revision 1.2 1999/09/15 15:10:20 brianp
|
||||||
|
# added third, tiny version number to arguments
|
||||||
|
#
|
||||||
|
# Revision 1.1 1999/08/19 13:52:56 brianp
|
||||||
|
# initial check-in (post-crash)
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#--common--------------------------------------------------------------
|
||||||
|
|
||||||
|
LIBRARY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MAJOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MINOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
TINY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
OBJECTS=$*
|
||||||
|
|
||||||
|
#--platform------------------------------------------------------------
|
||||||
|
|
||||||
|
# BASENAME = LIBRARY without .a suffix
|
||||||
|
BASENAME=`echo ${LIBRARY} | sed "s/\.a//g"`
|
||||||
|
|
||||||
|
# Name of exports file
|
||||||
|
EXPFILE=${BASENAME}.exp
|
||||||
|
|
||||||
|
# Name of temporary shared lib file
|
||||||
|
OFILE=shr.o
|
||||||
|
####OFILE=${BASENAME}.o
|
||||||
|
|
||||||
|
|
||||||
|
# Remove any old files from previous make
|
||||||
|
rm -f ${LIBRARY} ${EXPFILE} ${OFILE}
|
||||||
|
|
||||||
|
# Pick a way to use nm -gt
|
||||||
|
NM=${NM-/bin/nm -eC}
|
||||||
|
|
||||||
|
# Determine which version of AIX this is
|
||||||
|
AIXVERSION=`uname -v`
|
||||||
|
|
||||||
|
# Pick a way to tell the linker there's no entrypoint -gt
|
||||||
|
case ${AIXVERSION}
|
||||||
|
{
|
||||||
|
3*)
|
||||||
|
ENTRY='-e _nostart'
|
||||||
|
;;
|
||||||
|
4*)
|
||||||
|
ENTRY=-bnoentry
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Error in mklib.aix!"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Other libraries which we may be dependent on. Since we make the libraries
|
||||||
|
# in the order libGL.a, libaGLU.a, libglut.a just depends on its predecessor.
|
||||||
|
# modified to make otherlibs in the form of -lfoo -gt
|
||||||
|
OTHERLIBS=`ls ../lib/*.a | sed "s/..\/lib\/lib/-l/g" | sed "s/\.a//g"`
|
||||||
|
|
||||||
|
##echo OTHERLIBS are ${OTHERLIBS}
|
||||||
|
|
||||||
|
|
||||||
|
# Make exports (.exp) file header
|
||||||
|
echo "#! ${LIBRARY}" > ${EXPFILE}
|
||||||
|
|
||||||
|
# Append list of exported symbols to exports file -gt
|
||||||
|
case ${AIXVERSION}
|
||||||
|
{
|
||||||
|
3*)
|
||||||
|
${NM} ${OBJECTS} | awk -F'|' '{
|
||||||
|
if ($3 != "extern" || substr($7,1,1) == " ") continue
|
||||||
|
sub (" *", "", $1); sub (" *", "", $7)
|
||||||
|
if ( (($7 == ".text") || ($7 == ".data") || ($7 == ".bss")) \
|
||||||
|
&& ( substr($1,1,1) != ".")) {
|
||||||
|
if (substr ($1, 1, 7) != "__sinit" &&
|
||||||
|
substr ($1, 1, 7) != "__sterm") {
|
||||||
|
if (substr ($1, 1, 5) == "__tf1")
|
||||||
|
print (substr ($1, 7))
|
||||||
|
else if (substr ($1, 1, 5) == "__tf9")
|
||||||
|
print (substr ($1, 15))
|
||||||
|
else
|
||||||
|
print $1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' | sort -u >> ${EXPFILE}
|
||||||
|
;;
|
||||||
|
|
||||||
|
4*)
|
||||||
|
${NM} ${OBJECTS} | awk '{
|
||||||
|
if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \
|
||||||
|
&& ( substr($1,1,1) != ".")) {
|
||||||
|
if (substr ($1, 1, 7) != "__sinit" &&
|
||||||
|
substr ($1, 1, 7) != "__sterm") {
|
||||||
|
if (substr ($1, 1, 5) == "__tf1")
|
||||||
|
print (substr ($1, 7))
|
||||||
|
else if (substr ($1, 1, 5) == "__tf9")
|
||||||
|
print (substr ($1, 15))
|
||||||
|
else
|
||||||
|
print $1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}' | sort -u >> ${EXPFILE}
|
||||||
|
;;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# This next line is a hack to allow full compatibility with IBM's OpenGL
|
||||||
|
# libraries. IBM mistakenly exports glLoadIdentity from the libGLU.a
|
||||||
|
# library. We have to do the same thing. Problem reported by Yemi Adesanya
|
||||||
|
# (adesanya@afsmail.cern.ch) and Patrick Brown (pbrown@austin.ibm.com)
|
||||||
|
if [ "${BASENAME}" = libGLU ] ; then
|
||||||
|
echo "glLoadIdentity" >> ${EXPFILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Make the shared lib file
|
||||||
|
cc -o ${OFILE} ${OBJECTS} -L../lib ${OTHERLIBS} -lX11 -lXext -lXmu -lXi -lm -lc -bE:${EXPFILE} -bM:SRE ${ENTRY}
|
||||||
|
|
||||||
|
|
||||||
|
# Make the .a file
|
||||||
|
ar ruv ${LIBRARY} ${OFILE}
|
||||||
|
|
||||||
|
# Put exports file in Mesa lib directory
|
||||||
|
mv ${EXPFILE} ../lib
|
||||||
|
|
||||||
|
# Remove OFILE
|
||||||
|
rm -f ${OFILE}
|
||||||
|
|
||||||
|
|
||||||
|
#NOTES
|
||||||
|
# AIX 4.x /usr/bin/nm -B patch from ssclift@mach.me.queensu.ca (Simon Clift)
|
||||||
|
# Robustified symbol extraction for AIX 3 and 4
|
||||||
|
# Greg Thompson <gregt@visix.com>
|
||||||
|
|
||||||
38
bin/mklib.ar-ruv
Executable file
38
bin/mklib.ar-ruv
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Make a standard Unix .a library file with 'ar ruv'
|
||||||
|
|
||||||
|
#--identification------------------------------------------------------
|
||||||
|
|
||||||
|
# $Id: mklib.ar-ruv,v 1.2 1999/09/15 15:10:20 brianp Exp $
|
||||||
|
|
||||||
|
# $Log: mklib.ar-ruv,v $
|
||||||
|
# Revision 1.2 1999/09/15 15:10:20 brianp
|
||||||
|
# added third, tiny version number to arguments
|
||||||
|
#
|
||||||
|
# Revision 1.1 1999/08/19 13:52:57 brianp
|
||||||
|
# initial check-in (post-crash)
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#--common--------------------------------------------------------------
|
||||||
|
|
||||||
|
LIBRARY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MAJOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
MINOR=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
TINY=$1
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
OBJECTS=$*
|
||||||
|
|
||||||
|
#--platform-------------------------------------------------------------
|
||||||
|
|
||||||
|
#ar ruv $LIBRARY $OBJECTS
|
||||||
|
ar ru $LIBRARY $OBJECTS
|
||||||
|
|
||||||
@@ -1,251 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
#
|
|
||||||
# Copyright 2012 VMware Inc
|
|
||||||
# Copyright 2008-2009 Jose Fonseca
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
"""Perf annotate for JIT code.
|
|
||||||
|
|
||||||
Linux `perf annotate` does not work with JIT code. This script takes the data
|
|
||||||
produced by `perf script` command, plus the diassemblies outputed by gallivm
|
|
||||||
into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`.
|
|
||||||
|
|
||||||
See docs/llvmpipe.html for usage instructions.
|
|
||||||
|
|
||||||
The `perf script` output parser was derived from the gprof2dot.py script.
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import os.path
|
|
||||||
import re
|
|
||||||
import optparse
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
|
|
||||||
class Parser:
|
|
||||||
"""Parser interface."""
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def parse(self):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
|
|
||||||
class LineParser(Parser):
|
|
||||||
"""Base class for parsers that read line-based formats."""
|
|
||||||
|
|
||||||
def __init__(self, file):
|
|
||||||
Parser.__init__(self)
|
|
||||||
self._file = file
|
|
||||||
self.__line = None
|
|
||||||
self.__eof = False
|
|
||||||
self.line_no = 0
|
|
||||||
|
|
||||||
def readline(self):
|
|
||||||
line = self._file.readline()
|
|
||||||
if not line:
|
|
||||||
self.__line = ''
|
|
||||||
self.__eof = True
|
|
||||||
else:
|
|
||||||
self.line_no += 1
|
|
||||||
self.__line = line.rstrip('\r\n')
|
|
||||||
|
|
||||||
def lookahead(self):
|
|
||||||
assert self.__line is not None
|
|
||||||
return self.__line
|
|
||||||
|
|
||||||
def consume(self):
|
|
||||||
assert self.__line is not None
|
|
||||||
line = self.__line
|
|
||||||
self.readline()
|
|
||||||
return line
|
|
||||||
|
|
||||||
def eof(self):
|
|
||||||
assert self.__line is not None
|
|
||||||
return self.__eof
|
|
||||||
|
|
||||||
|
|
||||||
mapFile = None
|
|
||||||
|
|
||||||
def lookupMap(filename, matchSymbol):
|
|
||||||
global mapFile
|
|
||||||
mapFile = filename
|
|
||||||
stream = open(filename, 'rt')
|
|
||||||
for line in stream:
|
|
||||||
start, length, symbol = line.split()
|
|
||||||
|
|
||||||
start = int(start, 16)
|
|
||||||
length = int(length,16)
|
|
||||||
|
|
||||||
if symbol == matchSymbol:
|
|
||||||
return start
|
|
||||||
|
|
||||||
return None
|
|
||||||
|
|
||||||
def lookupAsm(filename, desiredFunction):
|
|
||||||
stream = open(filename + '.asm', 'rt')
|
|
||||||
while stream.readline() != desiredFunction + ':\n':
|
|
||||||
pass
|
|
||||||
|
|
||||||
asm = []
|
|
||||||
line = stream.readline().strip()
|
|
||||||
while line:
|
|
||||||
addr, instr = line.split(':', 1)
|
|
||||||
addr = int(addr)
|
|
||||||
asm.append((addr, instr))
|
|
||||||
line = stream.readline().strip()
|
|
||||||
|
|
||||||
return asm
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
samples = {}
|
|
||||||
|
|
||||||
|
|
||||||
class PerfParser(LineParser):
|
|
||||||
"""Parser for linux perf callgraph output.
|
|
||||||
|
|
||||||
It expects output generated with
|
|
||||||
|
|
||||||
perf record -g
|
|
||||||
perf script
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, infile, symbol):
|
|
||||||
LineParser.__init__(self, infile)
|
|
||||||
self.symbol = symbol
|
|
||||||
|
|
||||||
def readline(self):
|
|
||||||
# Override LineParser.readline to ignore comment lines
|
|
||||||
while True:
|
|
||||||
LineParser.readline(self)
|
|
||||||
if self.eof() or not self.lookahead().startswith('#'):
|
|
||||||
break
|
|
||||||
|
|
||||||
def parse(self):
|
|
||||||
# read lookahead
|
|
||||||
self.readline()
|
|
||||||
|
|
||||||
while not self.eof():
|
|
||||||
self.parse_event()
|
|
||||||
|
|
||||||
asm = lookupAsm(mapFile, self.symbol)
|
|
||||||
|
|
||||||
addresses = samples.keys()
|
|
||||||
addresses.sort()
|
|
||||||
total_samples = 0
|
|
||||||
|
|
||||||
sys.stdout.write('%s:\n' % self.symbol)
|
|
||||||
for address, instr in asm:
|
|
||||||
try:
|
|
||||||
sample = samples.pop(address)
|
|
||||||
except KeyError:
|
|
||||||
sys.stdout.write(6*' ')
|
|
||||||
else:
|
|
||||||
sys.stdout.write('%6u' % (sample))
|
|
||||||
total_samples += sample
|
|
||||||
sys.stdout.write('%6u: %s\n' % (address, instr))
|
|
||||||
print 'total:', total_samples
|
|
||||||
assert len(samples) == 0
|
|
||||||
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
def parse_event(self):
|
|
||||||
if self.eof():
|
|
||||||
return
|
|
||||||
|
|
||||||
line = self.consume()
|
|
||||||
assert line
|
|
||||||
|
|
||||||
callchain = self.parse_callchain()
|
|
||||||
if not callchain:
|
|
||||||
return
|
|
||||||
|
|
||||||
def parse_callchain(self):
|
|
||||||
callchain = []
|
|
||||||
while self.lookahead():
|
|
||||||
function = self.parse_call(len(callchain) == 0)
|
|
||||||
if function is None:
|
|
||||||
break
|
|
||||||
callchain.append(function)
|
|
||||||
if self.lookahead() == '':
|
|
||||||
self.consume()
|
|
||||||
return callchain
|
|
||||||
|
|
||||||
call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$')
|
|
||||||
|
|
||||||
def parse_call(self, first):
|
|
||||||
line = self.consume()
|
|
||||||
mo = self.call_re.match(line)
|
|
||||||
assert mo
|
|
||||||
if not mo:
|
|
||||||
return None
|
|
||||||
|
|
||||||
if not first:
|
|
||||||
return None
|
|
||||||
|
|
||||||
function_name = mo.group('symbol')
|
|
||||||
if not function_name:
|
|
||||||
function_name = mo.group('address')
|
|
||||||
|
|
||||||
module = mo.group('module')
|
|
||||||
|
|
||||||
function_id = function_name + ':' + module
|
|
||||||
|
|
||||||
address = mo.group('address')
|
|
||||||
address = int(address, 16)
|
|
||||||
|
|
||||||
if function_name != self.symbol:
|
|
||||||
return None
|
|
||||||
|
|
||||||
start_address = lookupMap(module, function_name)
|
|
||||||
address -= start_address
|
|
||||||
|
|
||||||
#print function_name, module, address
|
|
||||||
|
|
||||||
samples[address] = samples.get(address, 0) + 1
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
"""Main program."""
|
|
||||||
|
|
||||||
optparser = optparse.OptionParser(
|
|
||||||
usage="\n\t%prog [options] symbol_name")
|
|
||||||
(options, args) = optparser.parse_args(sys.argv[1:])
|
|
||||||
if len(args) != 1:
|
|
||||||
optparser.error('wrong number of arguments')
|
|
||||||
|
|
||||||
symbol = args[0]
|
|
||||||
|
|
||||||
p = subprocess.Popen(['perf', 'script'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
|
||||||
parser = PerfParser(p.stdout, symbol)
|
|
||||||
parser.parse()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
||||||
|
|
||||||
# vim: set sw=4 et:
|
|
||||||
@@ -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()
|
|
||||||
@@ -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()
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
radeon_drm_winsys_create;
|
|
||||||
};
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
VERSION_1 {
|
|
||||||
global:
|
|
||||||
main;
|
|
||||||
local:
|
|
||||||
*;
|
|
||||||
};
|
|
||||||
124
common.py
124
common.py
@@ -1,124 +0,0 @@
|
|||||||
#######################################################################
|
|
||||||
# Common SCons code
|
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import re
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
import platform as _platform
|
|
||||||
|
|
||||||
import SCons.Script.SConscript
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Defaults
|
|
||||||
|
|
||||||
host_platform = _platform.system().lower()
|
|
||||||
if host_platform.startswith('cygwin'):
|
|
||||||
host_platform = 'cygwin'
|
|
||||||
# MSYS2 default platform selection.
|
|
||||||
if host_platform.startswith('mingw'):
|
|
||||||
host_platform = 'windows'
|
|
||||||
|
|
||||||
# Search sys.argv[] for a "platform=foo" argument since we don't have
|
|
||||||
# an 'env' variable at this point.
|
|
||||||
if 'platform' in SCons.Script.ARGUMENTS:
|
|
||||||
target_platform = SCons.Script.ARGUMENTS['platform']
|
|
||||||
else:
|
|
||||||
target_platform = host_platform
|
|
||||||
|
|
||||||
_machine_map = {
|
|
||||||
'x86': 'x86',
|
|
||||||
'i386': 'x86',
|
|
||||||
'i486': 'x86',
|
|
||||||
'i586': 'x86',
|
|
||||||
'i686': 'x86',
|
|
||||||
'BePC': 'x86',
|
|
||||||
'Intel': 'x86',
|
|
||||||
'ppc': 'ppc',
|
|
||||||
'BeBox': 'ppc',
|
|
||||||
'BeMac': 'ppc',
|
|
||||||
'AMD64': 'x86_64',
|
|
||||||
'x86_64': 'x86_64',
|
|
||||||
'sparc': 'sparc',
|
|
||||||
'sun4u': 'sparc',
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# find host_machine value
|
|
||||||
if 'PROCESSOR_ARCHITECTURE' in os.environ:
|
|
||||||
host_machine = os.environ['PROCESSOR_ARCHITECTURE']
|
|
||||||
else:
|
|
||||||
host_machine = _platform.machine()
|
|
||||||
host_machine = _machine_map.get(host_machine, 'generic')
|
|
||||||
# MSYS2 default machine selection.
|
|
||||||
if _platform.system().lower().startswith('mingw') and 'MSYSTEM' in os.environ:
|
|
||||||
if os.environ['MSYSTEM'] == 'MINGW32':
|
|
||||||
host_machine = 'x86'
|
|
||||||
if os.environ['MSYSTEM'] == 'MINGW64':
|
|
||||||
host_machine = 'x86_64'
|
|
||||||
|
|
||||||
default_machine = host_machine
|
|
||||||
default_toolchain = 'default'
|
|
||||||
# MSYS2 default toolchain selection.
|
|
||||||
if _platform.system().lower().startswith('mingw'):
|
|
||||||
default_toolchain = 'mingw'
|
|
||||||
|
|
||||||
if target_platform == 'windows' and host_platform != 'windows':
|
|
||||||
default_machine = 'x86'
|
|
||||||
default_toolchain = 'crossmingw'
|
|
||||||
|
|
||||||
|
|
||||||
# find default_llvm value
|
|
||||||
if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ:
|
|
||||||
default_llvm = 'yes'
|
|
||||||
else:
|
|
||||||
default_llvm = 'no'
|
|
||||||
try:
|
|
||||||
if target_platform != 'windows' and \
|
|
||||||
subprocess.call(['llvm-config', '--version'],
|
|
||||||
stdout=subprocess.PIPE) == 0:
|
|
||||||
default_llvm = 'yes'
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
# Common options
|
|
||||||
|
|
||||||
def AddOptions(opts):
|
|
||||||
try:
|
|
||||||
from SCons.Variables.BoolVariable import BoolVariable as BoolOption
|
|
||||||
except ImportError:
|
|
||||||
from SCons.Options.BoolOption import BoolOption
|
|
||||||
try:
|
|
||||||
from SCons.Variables.EnumVariable import EnumVariable as EnumOption
|
|
||||||
except ImportError:
|
|
||||||
from SCons.Options.EnumOption import EnumOption
|
|
||||||
opts.Add(EnumOption('build', 'build type', 'debug',
|
|
||||||
allowed_values=('debug', 'checked', 'profile',
|
|
||||||
'release')))
|
|
||||||
opts.Add(BoolOption('verbose', 'verbose output', 'no'))
|
|
||||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code',
|
|
||||||
default_machine,
|
|
||||||
allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
|
|
||||||
opts.Add(EnumOption('platform', 'target platform', host_platform,
|
|
||||||
allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku',
|
|
||||||
'linux', 'sunos', 'windows')))
|
|
||||||
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
|
|
||||||
opts.Add(BoolOption('analyze',
|
|
||||||
'enable static code analysis where available', 'no'))
|
|
||||||
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'))
|
|
||||||
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
|
|
||||||
opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
|
|
||||||
opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
|
|
||||||
if host_platform == 'windows':
|
|
||||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
|
||||||
opts.Add('MSVC_USE_SCRIPT', 'Microsoft Visual C/C++ vcvarsall script', True)
|
|
||||||
21
descrip.mms
Normal file
21
descrip.mms
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Makefile for Mesa for VMS
|
||||||
|
# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl
|
||||||
|
|
||||||
|
macro :
|
||||||
|
@ macro=""
|
||||||
|
.ifdef NOSHARE
|
||||||
|
.else
|
||||||
|
@ if f$getsyi("HW_MODEL") .ge. 1024 then macro= "/MACRO=(SHARE=1)"
|
||||||
|
.endif
|
||||||
|
$(MMS)$(MMSQUALIFIERS)'macro' all
|
||||||
|
|
||||||
|
all :
|
||||||
|
if f$search("lib.dir") .eqs. "" then create/directory [.lib]
|
||||||
|
set default [.src]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
|
set default [-.progs.demos]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
|
set default [-.xdemos]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
|
set default [-.tests]
|
||||||
|
$(MMS)$(MMSQUALIFIERS)
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
Known issues in the ARB_color_buffer_float implementation:
|
|
||||||
- Rendering to multiple render targets, some fixed-point, some floating-point, with FIXED_ONLY fragment clamping and polygon smooth enabled may write incorrect values to the fixed point buffers (depends on spec interpretation)
|
|
||||||
- For fragment programs with ARB_fog_* options, colors are clamped before fog application regardless of the fragment clamping setting (this depends on spec interpretation)
|
|
||||||
|
|
||||||
490
docs/COPYING
Normal file
490
docs/COPYING
Normal file
@@ -0,0 +1,490 @@
|
|||||||
|
|
||||||
|
Some parts of Mesa are copyrighted under the GNU LGPL. See the
|
||||||
|
Mesa/docs/COPYRIGHT file for details.
|
||||||
|
|
||||||
|
The following is the standard GNU copyright file.
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||||
|
675 Mass Ave, Cambridge, MA 02139, USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the library GPL. It is
|
||||||
|
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
Licenses are intended to guarantee your freedom to share and change
|
||||||
|
free software--to make sure the software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Library General Public License, applies to some
|
||||||
|
specially designated Free Software Foundation software, and to any
|
||||||
|
other libraries whose authors decide to use it. You can use it for
|
||||||
|
your libraries, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if
|
||||||
|
you distribute copies of the library, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis
|
||||||
|
or for a fee, you must give the recipients all the rights that we gave
|
||||||
|
you. You must make sure that they, too, receive or can get the source
|
||||||
|
code. If you link a program with the library, you must provide
|
||||||
|
complete object files to the recipients so that they can relink them
|
||||||
|
with the library, after making changes to the library and recompiling
|
||||||
|
it. And you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
Our method of protecting your rights has two steps: (1) copyright
|
||||||
|
the library, and (2) offer you this license which gives you legal
|
||||||
|
permission to copy, distribute and/or modify the library.
|
||||||
|
|
||||||
|
Also, for each distributor's protection, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
library. If the library is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original
|
||||||
|
version, so that any problems introduced by others will not reflect on
|
||||||
|
the original authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that companies distributing free
|
||||||
|
software will individually obtain patent licenses, thus in effect
|
||||||
|
transforming the program into proprietary software. To prevent this,
|
||||||
|
we have made it clear that any patent must be licensed for everyone's
|
||||||
|
free use or not licensed at all.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the ordinary
|
||||||
|
GNU General Public License, which was designed for utility programs. This
|
||||||
|
license, the GNU Library General Public License, applies to certain
|
||||||
|
designated libraries. This license is quite different from the ordinary
|
||||||
|
one; be sure to read it in full, and don't assume that anything in it is
|
||||||
|
the same as in the ordinary license.
|
||||||
|
|
||||||
|
The reason we have a separate public license for some libraries is that
|
||||||
|
they blur the distinction we usually make between modifying or adding to a
|
||||||
|
program and simply using it. Linking a program with a library, without
|
||||||
|
changing the library, is in some sense simply using the library, and is
|
||||||
|
analogous to running a utility program or application program. However, in
|
||||||
|
a textual and legal sense, the linked executable is a combined work, a
|
||||||
|
derivative of the original library, and the ordinary General Public License
|
||||||
|
treats it as such.
|
||||||
|
|
||||||
|
Because of this blurred distinction, using the ordinary General
|
||||||
|
Public License for libraries did not effectively promote software
|
||||||
|
sharing, because most developers did not use the libraries. We
|
||||||
|
concluded that weaker conditions might promote sharing better.
|
||||||
|
|
||||||
|
However, unrestricted linking of non-free programs would deprive the
|
||||||
|
users of those programs of all benefit from the free status of the
|
||||||
|
libraries themselves. This Library General Public License is intended to
|
||||||
|
permit developers of non-free programs to use free libraries, while
|
||||||
|
preserving your freedom as a user of such programs to change the free
|
||||||
|
libraries that are incorporated in them. (We have not seen how to achieve
|
||||||
|
this as regards changes in header files, but we have achieved it as regards
|
||||||
|
changes in the actual functions of the Library.) The hope is that this
|
||||||
|
will lead to faster development of free libraries.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow. Pay close attention to the difference between a
|
||||||
|
"work based on the library" and a "work that uses the library". The
|
||||||
|
former contains code derived from the library, while the latter only
|
||||||
|
works together with the library.
|
||||||
|
|
||||||
|
Note that it is possible for a library to be covered by the ordinary
|
||||||
|
General Public License rather than by this special one.
|
||||||
|
|
||||||
|
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library which
|
||||||
|
contains a notice placed by the copyright holder or other authorized
|
||||||
|
party saying it may be distributed under the terms of this Library
|
||||||
|
General Public License (also called "this License"). Each licensee is
|
||||||
|
addressed as "you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data
|
||||||
|
prepared so as to be conveniently linked with application programs
|
||||||
|
(which use some of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work
|
||||||
|
which has been distributed under these terms. A "work based on the
|
||||||
|
Library" means either the Library or any derivative work under
|
||||||
|
copyright law: that is to say, a work containing the Library or a
|
||||||
|
portion of it, either verbatim or with modifications and/or translated
|
||||||
|
straightforwardly into another language. (Hereinafter, translation is
|
||||||
|
included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For a library, complete source code means
|
||||||
|
all the source code for all modules it contains, plus any associated
|
||||||
|
interface definition files, plus the scripts used to control compilation
|
||||||
|
and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running a program using the Library is not restricted, and output from
|
||||||
|
such a program is covered only if its contents constitute a work based
|
||||||
|
on the Library (independent of the use of the Library in a tool for
|
||||||
|
writing it). Whether that is true depends on what the Library does
|
||||||
|
and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's
|
||||||
|
complete source code as you receive it, in any medium, provided that
|
||||||
|
you conspicuously and appropriately publish on each copy an
|
||||||
|
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||||
|
all the notices that refer to this License and to the absence of any
|
||||||
|
warranty; and distribute a copy of this License along with the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy,
|
||||||
|
and you may at your option offer warranty protection in exchange for a
|
||||||
|
fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion
|
||||||
|
of it, thus forming a work based on the Library, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no
|
||||||
|
charge to all third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a
|
||||||
|
table of data to be supplied by an application program that uses
|
||||||
|
the facility, other than as an argument passed when the facility
|
||||||
|
is invoked, then you must make a good faith effort to ensure that,
|
||||||
|
in the event an application does not supply such function or
|
||||||
|
table, the facility still operates, and performs whatever part of
|
||||||
|
its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has
|
||||||
|
a purpose that is entirely well-defined independent of the
|
||||||
|
application. Therefore, Subsection 2d requires that any
|
||||||
|
application-supplied function or table used by this function must
|
||||||
|
be optional: if the application does not supply it, the square
|
||||||
|
root function must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Library,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Library, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library
|
||||||
|
with the Library (or with a work based on the Library) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||||
|
License instead of this License to a given copy of the Library. To do
|
||||||
|
this, you must alter all the notices that refer to this License, so
|
||||||
|
that they refer to the ordinary GNU General Public License, version 2,
|
||||||
|
instead of to this License. (If a newer version than version 2 of the
|
||||||
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
|
that version instead if you wish.) Do not make any other change in
|
||||||
|
these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for
|
||||||
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
|
subsequent copies and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of
|
||||||
|
the Library into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or
|
||||||
|
derivative of it, under Section 2) in object code or executable form
|
||||||
|
under the terms of Sections 1 and 2 above provided that you accompany
|
||||||
|
it with the complete corresponding machine-readable source code, which
|
||||||
|
must be distributed under the terms of Sections 1 and 2 above on a
|
||||||
|
medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place satisfies the requirement to
|
||||||
|
distribute the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the
|
||||||
|
Library, but is designed to work with the Library by being compiled or
|
||||||
|
linked with it, is called a "work that uses the Library". Such a
|
||||||
|
work, in isolation, is not a derivative work of the Library, and
|
||||||
|
therefore falls outside the scope of this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library
|
||||||
|
creates an executable that is a derivative of the Library (because it
|
||||||
|
contains portions of the Library), rather than a "work that uses the
|
||||||
|
library". The executable is therefore covered by this License.
|
||||||
|
Section 6 states terms for distribution of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file
|
||||||
|
that is part of the Library, the object code for the work may be a
|
||||||
|
derivative work of the Library even though the source code is not.
|
||||||
|
Whether this is true is especially significant if the work can be
|
||||||
|
linked without the Library, or if the work is itself a library. The
|
||||||
|
threshold for this to be true is not precisely defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data
|
||||||
|
structure layouts and accessors, and small macros and small inline
|
||||||
|
functions (ten lines or less in length), then the use of the object
|
||||||
|
file is unrestricted, regardless of whether it is legally a derivative
|
||||||
|
work. (Executables containing this object code plus portions of the
|
||||||
|
Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may
|
||||||
|
distribute the object code for the work under the terms of Section 6.
|
||||||
|
Any executables containing that work also fall under Section 6,
|
||||||
|
whether or not they are linked directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also compile or
|
||||||
|
link a "work that uses the Library" with the Library to produce a
|
||||||
|
work containing portions of the Library, and distribute that work
|
||||||
|
under terms of your choice, provided that the terms permit
|
||||||
|
modification of the work for the customer's own use and reverse
|
||||||
|
engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the
|
||||||
|
Library is used in it and that the Library and its use are covered by
|
||||||
|
this License. You must supply a copy of this License. If the work
|
||||||
|
during execution displays copyright notices, you must include the
|
||||||
|
copyright notice for the Library among them, as well as a reference
|
||||||
|
directing the user to the copy of this License. Also, you must do one
|
||||||
|
of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding
|
||||||
|
machine-readable source code for the Library including whatever
|
||||||
|
changes were used in the work (which must be distributed under
|
||||||
|
Sections 1 and 2 above); and, if the work is an executable linked
|
||||||
|
with the Library, with the complete machine-readable "work that
|
||||||
|
uses the Library", as object code and/or source code, so that the
|
||||||
|
user can modify the Library and then relink to produce a modified
|
||||||
|
executable containing the modified Library. (It is understood
|
||||||
|
that the user who changes the contents of definitions files in the
|
||||||
|
Library will not necessarily be able to recompile the application
|
||||||
|
to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Accompany the work with a written offer, valid for at
|
||||||
|
least three years, to give the same user the materials
|
||||||
|
specified in Subsection 6a, above, for a charge no more
|
||||||
|
than the cost of performing this distribution.
|
||||||
|
|
||||||
|
c) If distribution of the work is made by offering access to copy
|
||||||
|
from a designated place, offer equivalent access to copy the above
|
||||||
|
specified materials from the same place.
|
||||||
|
|
||||||
|
d) Verify that the user has already received a copy of these
|
||||||
|
materials or that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the
|
||||||
|
Library" must include any data and utility programs needed for
|
||||||
|
reproducing the executable from it. However, as a special exception,
|
||||||
|
the source code distributed need not include anything that is normally
|
||||||
|
distributed (in either source or binary form) with the major
|
||||||
|
components (compiler, kernel, and so on) of the operating system on
|
||||||
|
which the executable runs, unless that component itself accompanies
|
||||||
|
the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license
|
||||||
|
restrictions of other proprietary libraries that do not normally
|
||||||
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
|
use both them and the Library together in an executable that you
|
||||||
|
distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the
|
||||||
|
Library side-by-side in a single library together with other library
|
||||||
|
facilities not covered by this License, and distribute such a combined
|
||||||
|
library, provided that the separate distribution of the work based on
|
||||||
|
the Library and of the other library facilities is otherwise
|
||||||
|
permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work
|
||||||
|
based on the Library, uncombined with any other library
|
||||||
|
facilities. This must be distributed under the terms of the
|
||||||
|
Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact
|
||||||
|
that part of it is a work based on the Library, and explaining
|
||||||
|
where to find the accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute
|
||||||
|
the Library except as expressly provided under this License. Any
|
||||||
|
attempt otherwise to copy, modify, sublicense, link with, or
|
||||||
|
distribute the Library is void, and will automatically terminate your
|
||||||
|
rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Library or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Library (or any work based on the
|
||||||
|
Library), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the
|
||||||
|
Library), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute, link with or modify the Library
|
||||||
|
subject to these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Library at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Library by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Library under this License may add
|
||||||
|
an explicit geographical distribution limitation excluding those countries,
|
||||||
|
so that distribution is permitted only in or among countries not thus
|
||||||
|
excluded. In such case, this License incorporates the limitation as if
|
||||||
|
written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new
|
||||||
|
versions of the Library General Public License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present version,
|
||||||
|
but may differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library
|
||||||
|
specifies a version number of this License which applies to it and
|
||||||
|
"any later version", you have the option of following the terms and
|
||||||
|
conditions either of that version or of any later version published by
|
||||||
|
the Free Software Foundation. If the Library does not specify a
|
||||||
|
license version number, you may choose any version ever published by
|
||||||
|
the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
|
programs whose distribution conditions are incompatible with these,
|
||||||
|
write to the author to ask for permission. For software which is
|
||||||
|
copyrighted by the Free Software Foundation, write to the Free
|
||||||
|
Software Foundation; we sometimes make exceptions for this. Our
|
||||||
|
decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||||
|
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||||
|
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||||
|
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||||
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||||
|
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||||
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||||
|
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||||
|
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||||
|
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
Appendix: How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest
|
||||||
|
possible use to the public, we recommend making it free software that
|
||||||
|
everyone can redistribute and change. You can do so by permitting
|
||||||
|
redistribution under these terms (or, alternatively, under the terms of the
|
||||||
|
ordinary General Public License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library. It is
|
||||||
|
safest to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least the
|
||||||
|
"copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the library's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||||
|
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1990
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
||||||
|
|
||||||
182
docs/INSTALL.GNU
Normal file
182
docs/INSTALL.GNU
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
These are generic installation instructions.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, a file
|
||||||
|
`config.cache' that saves the results of its tests to speed up
|
||||||
|
reconfiguring, and a file `config.log' containing compiler output
|
||||||
|
(useful mainly for debugging `configure').
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If at some point `config.cache'
|
||||||
|
contains results you don't want to keep, you may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.in' is used to create `configure' by a program
|
||||||
|
called `autoconf'. You only need `configure.in' if you want to change
|
||||||
|
it or regenerate `configure' using a newer version of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system. If you're
|
||||||
|
using `csh' on an old version of System V, you might need to type
|
||||||
|
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||||
|
`configure' itself.
|
||||||
|
|
||||||
|
Running `configure' takes awhile. While running, it prints some
|
||||||
|
messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
5. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the `configure' script does not know about. You can give `configure'
|
||||||
|
initial values for variables by setting them in the environment. Using
|
||||||
|
a Bourne-compatible shell, you can do that on the command line like
|
||||||
|
this:
|
||||||
|
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
|
||||||
|
|
||||||
|
Or on systems that have the `env' program, you can do it like this:
|
||||||
|
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you must use a version of `make' that
|
||||||
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
|
If you have to use a `make' that does not supports the `VPATH'
|
||||||
|
variable, you have to compile the package for one architecture at a time
|
||||||
|
in the source code directory. After you have installed the package for
|
||||||
|
one architecture, use `make distclean' before reconfiguring for another
|
||||||
|
architecture.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' will install the package's files in
|
||||||
|
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||||
|
installation prefix other than `/usr/local' by giving `configure' the
|
||||||
|
option `--prefix=PATH'.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||||
|
PATH as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files will still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=PATH' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them.
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' can not figure out
|
||||||
|
automatically, but needs to determine by the type of host the package
|
||||||
|
will run on. Usually `configure' can figure that out, but if it prints
|
||||||
|
a message saying it can not guess the host type, give it the
|
||||||
|
`--host=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name with three fields:
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the host type.
|
||||||
|
|
||||||
|
If you are building compiler tools for cross-compiling, you can also
|
||||||
|
use the `--target=TYPE' option to select the type of system they will
|
||||||
|
produce code for and the `--build=TYPE' option to select the type of
|
||||||
|
system on which you are compiling the package.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share,
|
||||||
|
you can create a site shell script called `config.site' that gives
|
||||||
|
default values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Operation Controls
|
||||||
|
==================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Use and save the results of the tests in FILE instead of
|
||||||
|
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
|
||||||
|
debugging `configure'.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
Print a summary of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options.
|
||||||
@@ -8,12 +8,13 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
|
||||||
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete. Effectively superseded by ARB_vertex_buffer_object.
|
Shipping (Mesa 4.0.4 and later. Only implemented in particular
|
||||||
|
XFree86/DRI drivers.)
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
@@ -47,7 +48,7 @@ Issues
|
|||||||
|
|
||||||
New Procedures and Functions
|
New Procedures and Functions
|
||||||
|
|
||||||
unsigned int glXGetAGPOffsetMESA( const void *pointer )
|
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
|
||||||
|
|
||||||
New Tokens
|
New Tokens
|
||||||
|
|
||||||
@@ -66,7 +67,7 @@ Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors)
|
|||||||
On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
|
On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV
|
||||||
and freed with glXFreeMemoryNV. Sometimes it's useful to know where a
|
and freed with glXFreeMemoryNV. Sometimes it's useful to know where a
|
||||||
block of AGP memory is located with respect to the start of the AGP
|
block of AGP memory is located with respect to the start of the AGP
|
||||||
aperture. The function
|
aperature. The function
|
||||||
|
|
||||||
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
|
GLuint glXGetAGPOffsetMESA( const GLvoid *pointer )
|
||||||
|
|
||||||
@@ -91,4 +92,3 @@ Revision History
|
|||||||
|
|
||||||
20 September 2002 - Initial draft
|
20 September 2002 - Initial draft
|
||||||
2 October 2002 - finished GLX chapter 3 additions
|
2 October 2002 - finished GLX chapter 3 additions
|
||||||
27 July 2004 - use unsigned int instead of GLuint, void instead of GLvoid
|
|
||||||
88
docs/MESA_copy_sub_buffer.spec
Normal file
88
docs/MESA_copy_sub_buffer.spec
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
Name
|
||||||
|
|
||||||
|
MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
Name Strings
|
||||||
|
|
||||||
|
GLX_MESA_copy_sub_buffer
|
||||||
|
|
||||||
|
Contact
|
||||||
|
|
||||||
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Shipping since Mesa 2.6 in February, 1998.
|
||||||
|
|
||||||
|
Version
|
||||||
|
|
||||||
|
Last Modified Date: 8 June 2000
|
||||||
|
|
||||||
|
Number
|
||||||
|
|
||||||
|
215
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
|
||||||
|
OpenGL 1.0 or later is required.
|
||||||
|
GLX 1.0 or later is required.
|
||||||
|
|
||||||
|
Overview
|
||||||
|
|
||||||
|
The glxCopySubBufferMESA() function copies a rectangular region
|
||||||
|
of the back color buffer to the front color buffer. This can be
|
||||||
|
used to quickly repaint 3D windows in response to expose events
|
||||||
|
when the back color buffer cannot be damaged by other windows.
|
||||||
|
|
||||||
|
IP Status
|
||||||
|
|
||||||
|
Open-source; freely implementable.
|
||||||
|
|
||||||
|
Issues
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
New Procedures and Functions
|
||||||
|
|
||||||
|
void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
|
||||||
|
int x, int y, int width, int height );
|
||||||
|
|
||||||
|
New Tokens
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
||||||
|
|
||||||
|
Add to section 3.3.10 Double Buffering:
|
||||||
|
|
||||||
|
The function
|
||||||
|
|
||||||
|
void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable,
|
||||||
|
int x, int y, int width, int height );
|
||||||
|
|
||||||
|
may be used to copy a rectangular region of the back color buffer to
|
||||||
|
the front color buffer. This can be used to quickly repaint 3D windows
|
||||||
|
in response to expose events when the back color buffer cannot be
|
||||||
|
damaged by other windows.
|
||||||
|
|
||||||
|
<x> and <y> indicates the lower-left corner of the region to copy and
|
||||||
|
<width> and <height> indicate the size in pixels. Coordinate (0,0)
|
||||||
|
corresponds to the lower-left pixel of the window, like glReadPixels.
|
||||||
|
|
||||||
|
GLX Protocol
|
||||||
|
|
||||||
|
None at this time. The extension is implemented in terms of ordinary
|
||||||
|
Xlib protocol inside of Mesa.
|
||||||
|
|
||||||
|
Errors
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
New State
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Revision History
|
||||||
|
|
||||||
|
8 June 2000 - initial specification
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
|
||||||
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
@@ -48,7 +48,7 @@ IP Status
|
|||||||
|
|
||||||
Issues
|
Issues
|
||||||
|
|
||||||
1. Should we also define UNPACK_INVERT_MESA for glDrawPixels, etc?
|
1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc?
|
||||||
|
|
||||||
Resolved: No, we're only concerned with pixel packing. There are other
|
Resolved: No, we're only concerned with pixel packing. There are other
|
||||||
solutions for inverting images when using glDrawPixels (negative Y pixel
|
solutions for inverting images when using glDrawPixels (negative Y pixel
|
||||||
@@ -17,6 +17,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_packed_depth_stencil.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -8,16 +8,17 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian @ tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
XXX - Not complete yet!!!
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
Last Modified Date: July 20, 2003
|
Last Modified Date: July 20, 2003
|
||||||
Author Revision: 1.0
|
Author Revision: 1.0
|
||||||
|
$Date: 2003/09/23 14:46:11 $ $Revision: 1.3 $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -133,7 +134,7 @@ New Tokens
|
|||||||
GetFloatv and GetIntegerv:
|
GetFloatv and GetIntegerv:
|
||||||
|
|
||||||
FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0
|
FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0
|
||||||
VERTEX_PROGRAM_POSITION_MESA 0x8bb5
|
VERTEX_PROGRAM_POSITION_MESA 0x8bb4
|
||||||
|
|
||||||
Accepted by the <pname> parameter of GetPointerv:
|
Accepted by the <pname> parameter of GetPointerv:
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -31,12 +31,12 @@ Overview
|
|||||||
|
|
||||||
Mesa's implementation of GLX is entirely implemented on the client side.
|
Mesa's implementation of GLX is entirely implemented on the client side.
|
||||||
Therefore, Mesa cannot immediately detect when an X window or pixmap is
|
Therefore, Mesa cannot immediately detect when an X window or pixmap is
|
||||||
destroyed in order to free any ancillary data associated with the window
|
destroyed in order to free any ancilliary data associated with the window
|
||||||
or pixmap.
|
or pixmap.
|
||||||
|
|
||||||
The glxMesaReleaseBuffers() function can be used to explicitly indicate
|
The glxMesaReleaseBuffers() function can be used to explicitly indicate
|
||||||
when the back color buffer, depth buffer, stencil buffer, and/or accumu-
|
when the back color buffer, depth buffer, stencil buffer, and/or accum-
|
||||||
lation buffer associated with a drawable can be freed.
|
ulation buffer associated with a drawable can be freed.
|
||||||
|
|
||||||
IP Status
|
IP Status
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors)
|
|||||||
|
|
||||||
Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
|
Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
|
||||||
|
|
||||||
causes all software ancillary buffers (back buffer, depth, stencil,
|
causes all software ancilliary buffers (back buffer, depth, stencil,
|
||||||
accum, etc) associated with the named drawable to be immediately
|
accum, etc) associated with the named drawable to be immediately
|
||||||
deallocated. True is returned if <d> is a valid Mesa GLX drawable,
|
deallocated. True is returned if <d> is a valid Mesa GLX drawable,
|
||||||
else False is returned. After calling glXReleaseBuffersMESA, the
|
else False is returned. After calling glXReleaseBuffersMESA, the
|
||||||
@@ -8,14 +8,15 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, brianp 'at' mesa3d.org
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
Shipping (since Mesa version 2.2)
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_resize_buffers.spec,v 1.2 2000/04/04 23:29:32 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -35,7 +36,7 @@ Overview
|
|||||||
|
|
||||||
Mesa's glViewport command queries the current window size and updates
|
Mesa's glViewport command queries the current window size and updates
|
||||||
its internal data structors accordingly. This normally works fine
|
its internal data structors accordingly. This normally works fine
|
||||||
since most applications call glViewport in response to window size
|
since most applications call glViewport in responce to window size
|
||||||
changes.
|
changes.
|
||||||
|
|
||||||
In some situations, however, the application may not call glViewport
|
In some situations, however, the application may not call glViewport
|
||||||
@@ -65,7 +66,7 @@ Additions to the AGL/GLX/WGL Specifications
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
INVALID_OPERATION is generated if glResizeBuffersMESA is called between
|
INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen
|
||||||
Begin and End.
|
Begin and End.
|
||||||
|
|
||||||
New State
|
New State
|
||||||
@@ -8,11 +8,11 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul (brian.paul 'at' tungstengraphics.com)
|
Brian Paul (brian 'at' mesa3d.org)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
Obsolete.
|
Shipping since Mesa 2.6 in February, 1998.
|
||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
@@ -16,6 +16,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_sprite_point.spec,v 1.2 2003/09/19 14:58:21 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ Issues
|
|||||||
|
|
||||||
New Procedures and Functions
|
New Procedures and Functions
|
||||||
|
|
||||||
int glXSwapIntervalMESA(unsigned int interval)
|
int glXSwapIntervalMESA(int interval)
|
||||||
int glXGetSwapIntervalMESA(void)
|
int glXGetSwapIntervalMESA(void)
|
||||||
|
|
||||||
New Tokens
|
New Tokens
|
||||||
@@ -88,8 +88,8 @@ Additions to the GLX 1.3 Specification
|
|||||||
this is typically the time required to display both the even and odd
|
this is typically the time required to display both the even and odd
|
||||||
fields of a frame of video data.
|
fields of a frame of video data.
|
||||||
|
|
||||||
If <interval> is set to a value of 0, buffer swaps are not synchro-
|
If <interval> is set to a value of 0, buffer swaps are not synchron-
|
||||||
nized to a video frame. The <interval> value is silently clamped to
|
ized to a video frame. The <interval> value is silently clamped to
|
||||||
the maximum implementation-dependent value supported before being
|
the maximum implementation-dependent value supported before being
|
||||||
stored.
|
stored.
|
||||||
|
|
||||||
@@ -103,8 +103,11 @@ Additions to the GLX 1.3 Specification
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
|
glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter <interval> is
|
||||||
|
less than zero.
|
||||||
|
|
||||||
glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
|
glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current
|
||||||
GLXContext or if the current context is not a direct rendering context.
|
GLXContext.
|
||||||
|
|
||||||
GLX Protocol
|
GLX Protocol
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ Dependencies
|
|||||||
|
|
||||||
Overview
|
Overview
|
||||||
|
|
||||||
This extension allows an application to determine what portion of the
|
This extension allows an application to deterine what portion of the
|
||||||
swap period has elapsed since the last swap operation completed. The
|
swap period has elapsed since the last swap operation completed. The
|
||||||
"usage" value is a floating point value on the range [0,max] which is
|
"usage" value is a floating point value on the range [0,max] which is
|
||||||
calculated as follows:
|
calculated as follows:
|
||||||
@@ -59,7 +59,7 @@ Overview
|
|||||||
is taken from the completion of one swap to the issuance of the next.
|
is taken from the completion of one swap to the issuance of the next.
|
||||||
This representation may not be as useful as measuring between
|
This representation may not be as useful as measuring between
|
||||||
completions, as a significant amount of time may pass between the
|
completions, as a significant amount of time may pass between the
|
||||||
issuance of a swap and the swap actually occurring.
|
issuance of a swap and the swap actually occuring.
|
||||||
|
|
||||||
There is also a mechanism to determine whether a frame swap was
|
There is also a mechanism to determine whether a frame swap was
|
||||||
missed.
|
missed.
|
||||||
@@ -110,7 +110,7 @@ Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests)
|
|||||||
Additions to the GLX 1.3 Specification
|
Additions to the GLX 1.3 Specification
|
||||||
|
|
||||||
The frame usage is measured as the percentage of the swap period elapsed
|
The frame usage is measured as the percentage of the swap period elapsed
|
||||||
between two buffer-swap operations being committed. In unextended GLX the
|
between two buffer-swap operations being commited. In unextened GLX the
|
||||||
swap period is the vertical refresh time. If SGI_swap_control or
|
swap period is the vertical refresh time. If SGI_swap_control or
|
||||||
MESA_swap_control are supported, the swap period is the vertical refresh
|
MESA_swap_control are supported, the swap period is the vertical refresh
|
||||||
time multiplied by the swap interval (or one if the swap interval is set
|
time multiplied by the swap interval (or one if the swap interval is set
|
||||||
@@ -119,7 +119,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
If OML_sync_control is supported, the swap period is the vertical
|
If OML_sync_control is supported, the swap period is the vertical
|
||||||
refresh time multiplied by the divisor parameter to
|
refresh time multiplied by the divisor parameter to
|
||||||
glXSwapBuffersMscOML. The frame usage in this case is less than 1.0 if
|
glXSwapBuffersMscOML. The frame usage in this case is less than 1.0 if
|
||||||
the swap is committed before target_msc, and is greater than or equal to
|
the swap is commited before target_msc, and is greater than or equal to
|
||||||
1.0 otherwise. The actual usage value is based on the divisor and is
|
1.0 otherwise. The actual usage value is based on the divisor and is
|
||||||
never less than 0.0.
|
never less than 0.0.
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
|
|
||||||
The current missed frame count and total number of swaps since
|
The current missed frame count and total number of swaps since
|
||||||
the last call to glXBeginFrameTrackingMESA can be obtained by
|
the last call to glXBeginFrameTrackingMESA can be obtained by
|
||||||
calling the following function:
|
callling the following function:
|
||||||
|
|
||||||
int glXQueryFrameTrackingMESA(Display *dpy,
|
int glXQueryFrameTrackingMESA(Display *dpy,
|
||||||
GLXDrawable drawable,
|
GLXDrawable drawable,
|
||||||
@@ -152,7 +152,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
float *lastMissedUsage)
|
float *lastMissedUsage)
|
||||||
|
|
||||||
The location pointed to by <swapCount> will be updated with the
|
The location pointed to by <swapCount> will be updated with the
|
||||||
number of swaps that have been committed. This value may not match the
|
number of swaps that have been commited. This value may not match the
|
||||||
number of swaps that have been requested since swaps may be
|
number of swaps that have been requested since swaps may be
|
||||||
queued by the implementation. This function can be called at any
|
queued by the implementation. This function can be called at any
|
||||||
time and does not synchronize to vertical blank.
|
time and does not synchronize to vertical blank.
|
||||||
@@ -171,7 +171,7 @@ Additions to the GLX 1.3 Specification
|
|||||||
application can call glXQueryFrameTrackingMESA for a final swap and
|
application can call glXQueryFrameTrackingMESA for a final swap and
|
||||||
missed frame count.
|
missed frame count.
|
||||||
|
|
||||||
If these functions are successful, zero is returned. If the context
|
If these functions are succesful, zero is returned. If the context
|
||||||
associated with dpy and drawable is not a direct context,
|
associated with dpy and drawable is not a direct context,
|
||||||
GLX_BAD_CONTEXT is returned.
|
GLX_BAD_CONTEXT is returned.
|
||||||
|
|
||||||
@@ -4,7 +4,7 @@ Name
|
|||||||
|
|
||||||
Name Strings
|
Name Strings
|
||||||
|
|
||||||
GL_MESA_trace
|
GL_MESA_TRACE
|
||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
@@ -17,6 +17,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_trace.spec,v 1.3 2003/09/19 14:58:21 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, brian.paul 'at' tungstengraphics.com
|
Brian Paul, brianp 'at' mesa3d.org
|
||||||
|
|
||||||
Status
|
Status
|
||||||
|
|
||||||
@@ -16,6 +16,7 @@ Status
|
|||||||
|
|
||||||
Version
|
Version
|
||||||
|
|
||||||
|
$Id: MESA_window_pos.spec,v 1.3 2000/04/04 23:29:32 brianp Exp $
|
||||||
|
|
||||||
Number
|
Number
|
||||||
|
|
||||||
@@ -88,7 +89,7 @@ Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation)
|
|||||||
WindosPos4MESA takes four values indicating x, y, z, and w.
|
WindosPos4MESA takes four values indicating x, y, z, and w.
|
||||||
WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
|
WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only
|
||||||
x, y, and z with w implicitly set to 1 (or only x and y with z
|
x, y, and z with w implicitly set to 1 (or only x and y with z
|
||||||
implicitly set to 0 and w implicitly set to 1).
|
implicititly set to 0 and w implicitly set to 1).
|
||||||
|
|
||||||
WindowPosMESA operates like RasterPos except that the current modelview
|
WindowPosMESA operates like RasterPos except that the current modelview
|
||||||
matrix, projection matrix and viewport parameters are ignored and the
|
matrix, projection matrix and viewport parameters are ignored and the
|
||||||
@@ -108,7 +109,7 @@ GLX Protocol
|
|||||||
|
|
||||||
Errors
|
Errors
|
||||||
|
|
||||||
INVALID_OPERATION is generated if WindowPosMESA is called between
|
INVALID_OPERATION is generated if WindowPosMESA is called betweeen
|
||||||
Begin and End.
|
Begin and End.
|
||||||
|
|
||||||
New State
|
New State
|
||||||
@@ -8,7 +8,7 @@ Name Strings
|
|||||||
|
|
||||||
Contact
|
Contact
|
||||||
|
|
||||||
Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com)
|
Brian Paul, Tungsten Graphics, Inc. (brian 'at' tungstengraphics.com)
|
||||||
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com)
|
||||||
|
|
||||||
Status
|
Status
|
||||||
@@ -26,7 +26,7 @@ Number
|
|||||||
Dependencies
|
Dependencies
|
||||||
|
|
||||||
OpenGL 1.0 or later is required
|
OpenGL 1.0 or later is required
|
||||||
This extension is written against the OpenGL 1.4 Specification.
|
This extensions is written against the OpenGL 1.4 Specification.
|
||||||
NV_texture_rectangle effects the definition of this extension.
|
NV_texture_rectangle effects the definition of this extension.
|
||||||
|
|
||||||
Overview
|
Overview
|
||||||
@@ -75,14 +75,14 @@ Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation)
|
|||||||
|
|
||||||
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
||||||
|
|
||||||
In section 3.6.4, Rasterization of Pixel Rectangles, on page 101,
|
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
||||||
add the following to Table 3.8 (Packed pixel formats):
|
add the following to Table 3.8 (Packed pixel formats):
|
||||||
|
|
||||||
type Parameter GL Data Number of Matching
|
type Parameter GL Data Number of Matching
|
||||||
Token Name Type Components Pixel Formats
|
Token Name Type Components Pixel Formats
|
||||||
-------------- ------- ---------- -------------
|
-------------- ------- ---------- -------------
|
||||||
UNSIGNED_SHORT_8_8_MESA ushort 2 YCBCR_MESA
|
UNSIGNED_SHORT_8_8_MESA ushort 3 YCBCR_422_MESA
|
||||||
UNSIGNED_SHORT_8_8_REV_MESA ushort 2 YCBCR_MESA
|
UNSIGNED_SHORT_8_8_REV_MESA ushort 3 YCBCR_422_MESA
|
||||||
|
|
||||||
|
|
||||||
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
||||||
@@ -103,13 +103,13 @@ Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization)
|
|||||||
+-------------------------------+-------------------------------+
|
+-------------------------------+-------------------------------+
|
||||||
|
|
||||||
|
|
||||||
In section 3.6.4, Rasterization of Pixel Rectangles, on page 104,
|
In section 3.6.4, Rasterization of Pixel Rectangles, on page 102,
|
||||||
add the following to Table 3.12 (Packed pixel field assignments):
|
add the following to Table 3.12 (Packed pixel fiedl assignments):
|
||||||
|
|
||||||
First Second Third Fourth
|
First Second Third Fourth
|
||||||
Format Element Element Element Element
|
Format Element Element Element Element
|
||||||
------ ------- ------- ------- -------
|
------ ------- ------- ------- -------
|
||||||
YCBCR_MESA luminance chroma
|
YCBCR_422_MESA luminance chroma
|
||||||
|
|
||||||
|
|
||||||
In section 3.8.1, Texture Image Specification, on page 125, add
|
In section 3.8.1, Texture Image Specification, on page 125, add
|
||||||
@@ -201,4 +201,3 @@ Revision History
|
|||||||
3 September 2003 - further clarify when YCbCr->RGB conversion takes place
|
3 September 2003 - further clarify when YCbCr->RGB conversion takes place
|
||||||
19 September 2003 - a few more updates prior to submitting to extension
|
19 September 2003 - a few more updates prior to submitting to extension
|
||||||
registry.
|
registry.
|
||||||
3 April 2004 - fix assorted inaccuracies
|
|
||||||
547
docs/MiniGLX.html
Normal file
547
docs/MiniGLX.html
Normal file
@@ -0,0 +1,547 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Mini GLX Specification</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>
|
||||||
|
<center>Mini GLX Specification</center>
|
||||||
|
</h1>
|
||||||
|
<h2>
|
||||||
|
<center>Tungsten Graphics, Inc.<br>
|
||||||
|
<br>
|
||||||
|
January 20, 2003<br>
|
||||||
|
<br>
|
||||||
|
</center>
|
||||||
|
</h2>
|
||||||
|
<p> Copyright © 2002-2003 by Tungsten Graphics, Inc., Cedar Park,
|
||||||
|
Texas. All Rights Reserved. <br>
|
||||||
|
<br>
|
||||||
|
Permission is granted to make and distribute verbatim copies of this
|
||||||
|
document provided the copyright notice and this permission notice are
|
||||||
|
preserved on all copies.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>1. Introduction</h1>
|
||||||
|
<p>The Mini GLX interface facilitates OpenGL rendering on embedded
|
||||||
|
devices. The interface is a subset of the GLX interface, plus a minimal
|
||||||
|
set of Xlib-like functions.</p>
|
||||||
|
<p>Programs written to the Mini GLX specification should run unchanged
|
||||||
|
on systems with the X Window System and the GLX extension. The intention
|
||||||
|
is to allow flexibility for prototyping and testing.</p>
|
||||||
|
<p>This document serves as both the reference guide and programming
|
||||||
|
guide for Mini GLX.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>2. Mini GLX Concepts</h1>
|
||||||
|
<p>The OpenGL specification does not describe how OpenGL rendering
|
||||||
|
contexts and drawing surfaces (i.e. the frame buffer) are created and
|
||||||
|
managed. Rather, this is handled by an OpenGL window system interface,
|
||||||
|
such as Mini GLX.</p>
|
||||||
|
<p>There are three main datatypes or resources managed by Mini GLX. The
|
||||||
|
resources and their corresponding GLX or Xlib data types are:</p>
|
||||||
|
<table cellspacing="10" align="center">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><u>Resource</u></td>
|
||||||
|
<td><u>Data type</u></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>pixel formats</td>
|
||||||
|
<td>X Visual and XVisualInfo</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>drawing surfaces</td>
|
||||||
|
<td>X Window or GLXDrawable</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>rendering contexts</td>
|
||||||
|
<td>GLXContext</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p>Pixel formats or X Visuals describe the per-pixel attributes of the
|
||||||
|
frame buffer. For example, bits per color component, Z buffer size,
|
||||||
|
stencil size, TrueColor vs PseudoColor, etc.</p>
|
||||||
|
<p>Drawing surfaces or X Windows typically describe a spatial
|
||||||
|
allocation of the frame buffer (i.e. the position and size of a
|
||||||
|
rectangular region of pixels). Since MiniGLX doesn't really support a
|
||||||
|
window system, the window is effectively the entire frame buffer.</p>
|
||||||
|
<p>A rendering context represents the current OpenGL state such as
|
||||||
|
current drawing color, line width, blending mode, texture parameters,
|
||||||
|
etc. Several rendering contexts can be created but only one can be in
|
||||||
|
use at any given time.</p>
|
||||||
|
<p>The Mini GLX interface provides all the functions needed for
|
||||||
|
choosing pixel formats, create drawing surfaces, creating rendering
|
||||||
|
contexts and binding rendering contexts to drawing surfaces.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>3. Using Mini GLX</h1>
|
||||||
|
<p>To use the Mini GLX interface in your application, include the
|
||||||
|
GL/miniglx.h header file at compile time:</p>
|
||||||
|
<blockquote><code> #include <GL/miniglx.h><br>
|
||||||
|
</code></blockquote>
|
||||||
|
<code></code>Applications should link with libGL.so (i.e. <code>gcc
|
||||||
|
myprogram.o -lGL -o myprogram</code>). libGL.so implements the
|
||||||
|
MiniGLX API functions and, in turn, loads a hardware-specific device
|
||||||
|
driver (such as <code>radeon_dri.so</code>) at runtime. The
|
||||||
|
environment variable <code>LIBGL_DRIVERS_PATH</code> should name the
|
||||||
|
directory where these modules are located.<br>
|
||||||
|
<br>
|
||||||
|
Prior to running a MiniGXL application, the following kernel modules
|
||||||
|
must be installed:<br>
|
||||||
|
<br>
|
||||||
|
<div style="margin-left: 40px;"> agpgart.o<br>
|
||||||
|
radeonfb.o (assuming Radeon hardware)<br>
|
||||||
|
radeon.o (assuming Radeon hardware)<br>
|
||||||
|
</div>
|
||||||
|
<code></code> <br>
|
||||||
|
Finally, MiniGLX reads a configuration file (by default,<code>
|
||||||
|
/etc/miniglx.conf</code>) to determine basic configuration information.
|
||||||
|
The configuration file may also be located in the directory
|
||||||
|
specified by the <code>MINIGLX_CONF</code> environment variable).<br>
|
||||||
|
<br>
|
||||||
|
The remainder of this section describes the MiniGLX API functions.<br>
|
||||||
|
<br>
|
||||||
|
<h2>3.1 Initialization</h2>
|
||||||
|
<p>The XOpenDisplay function is used to initialize the graphics system:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>Display *XOpenDisplay(const char *displayname)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The <code>displayName</code> parameter is currently ignored in Mini
|
||||||
|
GLX. It is recommended that <code>NULL</code> be passed as the<code>displayName</code>
|
||||||
|
parameter.</p>
|
||||||
|
<p>If XOpenDisplay is able to initialize the graphics system a pointer
|
||||||
|
to a Display will be returned. Otherwise, NULL will be returned.</p>
|
||||||
|
<h2>3.2 Choosing a Visual</h2>
|
||||||
|
<p>A visual (i.e. pixel format) must be chosen before a drawing surface
|
||||||
|
or rendering context can be created. This is done with the
|
||||||
|
glXChooseVisual function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>XVisualInfo *glXChooseVisual(Display *dpy, int screen, const int *attribList)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>dpy</code> is a pointer to the display returned by
|
||||||
|
XOpenDisplay. </p>
|
||||||
|
<p><code>screen</code> is currently ignored by Mini GLX and should be
|
||||||
|
zero. </p>
|
||||||
|
<p><code>attribList</code> is a list of GLX attributes which describe
|
||||||
|
the desired pixel format. It is terminated by the token <code>None</code>.
|
||||||
|
The attributes are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>GLX_USE_GL</code></dt>
|
||||||
|
<dd>This attribute should always be present in order to maintain
|
||||||
|
compatibility with GLX.</dd>
|
||||||
|
<dt><code>GLX_RGBA</code></dt>
|
||||||
|
<dd>If present, only RGBA pixel formats will be considered.
|
||||||
|
Otherwise, only color index formats are considered.</dd>
|
||||||
|
<dt><code>GLX_DOUBLEBUFFER</code></dt>
|
||||||
|
<dd>if present, only double-buffered pixel formats will be chosen.</dd>
|
||||||
|
<dt><code>GLX_RED_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per red pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_GREEN_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per green pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_BLUE_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per blue pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_ALPHA_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per alpha pixel component that is acceptable.</dd>
|
||||||
|
<dt><code>GLX_STENCIL_SIZE n</code></dt>
|
||||||
|
<dd>Must be followed by a non-negative integer indicating the
|
||||||
|
minimum number of bits per stencil value that is acceptable.</dd>
|
||||||
|
<dt><code>None</code></dt>
|
||||||
|
<dd>This token is used to terminate the attribute list.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p>glXChooseVisual will return a pointer to an XVisualInfo object which
|
||||||
|
most closely matches the requirements of the attribute list. If there
|
||||||
|
is no visual which matches the request, NULL will be returned.</p>
|
||||||
|
<p>Note that visuals with accumulation buffers and depth buffers are
|
||||||
|
not available.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.3 Creating a Drawing Surface</h2>
|
||||||
|
<p>Drawing surfaces are created as X windows. For Mini GLX,
|
||||||
|
windows are <i>full-screen</i>; they cover the entire frame buffer.
|
||||||
|
Also, Mini GLX imposes a limit of one window. A second window
|
||||||
|
cannot be created until the first one is destroyed.</p>
|
||||||
|
<h3>3.3.1 Window Creation</h3>
|
||||||
|
<p>The XCreateWindow function is used to create a drawing surface:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>Window XCreateWindow( Display *display,<br> Window parent,<br> int x, int y,<br> unsigned int width, unsigned int height,<br> unsigned int borderWidth,<br> int depth,<br> unsigned int class,<br> Visual *visual,<br> unsigned long valuemask,<br> XSetWindowAttributes *attributes )<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>display</code></dt>
|
||||||
|
<dd>A Display pointer, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>parent</code></dt>
|
||||||
|
<dd>The parent window for the new window. For Mini GLX, this
|
||||||
|
should be<code>RootWindow(dpy, 0)</code>.</dd>
|
||||||
|
<dt><code>x, y</code></dt>
|
||||||
|
<dd>The position of the window. For Mini GLX, both values should
|
||||||
|
be zero.</dd>
|
||||||
|
<dt><code>width, height</code></dt>
|
||||||
|
<dd>The size of the window. For Mini GLX, this specifies the
|
||||||
|
desired screen size such as 1024, 768 or 1280, 1024.</dd>
|
||||||
|
<dt><code>borderWidth</code></dt>
|
||||||
|
<dd>This parameter should be zero.</dd>
|
||||||
|
<dt><code>depth</code></dt>
|
||||||
|
<dd>The pixel depth for the window. For Mini GLX this should be
|
||||||
|
the depth found in the XVisualInfo object returned by <code>glxChooseVisual</code>.</dd>
|
||||||
|
<dt><code>class</code></dt>
|
||||||
|
<dd>The window class. For Mini GLX this value should be <code>InputOutput</code>.</dd>
|
||||||
|
<dt><code>visual</code></dt>
|
||||||
|
<dd>This parameter should be the <code>visual</code> field of the <code>XVisualInfo</code>
|
||||||
|
object returned by <code>glxChooseVisual</code>.</dd>
|
||||||
|
<dt><code>valuemask</code></dt>
|
||||||
|
<dd>This parameter indicates which fields of the <code>XSetWindowAttributes</code>
|
||||||
|
are to be used. For Mini GLX this is typically the bitmask<code>CWBackPixel
|
||||||
|
| CWBorderPixel | CWColormap</code>.</dd>
|
||||||
|
<dt><code>attributes</code></dt>
|
||||||
|
<dd>Initial window attributes. Of the fields in the <code>XSetWindowAttributes</code>
|
||||||
|
structure, the<code>background_pixel</code>, <code>border_pixel</code>
|
||||||
|
and <code>colormap</code> fields should be set. See the discussion
|
||||||
|
below regarding colormaps.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>XCreateWindow</code> will return a window handle if it succeeds
|
||||||
|
or zero if it fails.</p>
|
||||||
|
<h3>3.3.2 Window Mapping</h3>
|
||||||
|
<p>To display the window the XMapWindow function must be called:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XMapWindow(Display *dpy, Window w)</pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>This function does nothing in Mini GLX but is required for Xlib/GLX
|
||||||
|
compatibility</p>
|
||||||
|
<h3>3.3.3 Colormaps<br>
|
||||||
|
</h3>
|
||||||
|
<p>Xlib requires specification of a colormap when creating a window.
|
||||||
|
For purposes of interoperability, Mini GLX requires this as well,
|
||||||
|
though the colormap is not actually used. The XCreateColormap
|
||||||
|
function is used to create a colormap:</p>
|
||||||
|
<blockquote><code>Colormap XCreateColormap(Display *dpy, Window window,
|
||||||
|
Visual *visual, int alloc)</code><br>
|
||||||
|
<code></code></blockquote>
|
||||||
|
<p>The parameters are as follows:<br>
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>window</code></dt>
|
||||||
|
<dd> This parameter is ignored by Mini GLX but should be the value
|
||||||
|
returned by the <code>RootWindow(dpy, 0)</code> macro.<br>
|
||||||
|
</dd>
|
||||||
|
<dt><code>visual</code></dt>
|
||||||
|
<dd>This parameter is ignored by Mini GLX but should be the visual
|
||||||
|
field of the XVisualInfo object returned by glXChooseVisual. </dd>
|
||||||
|
<dt><code>alloc</code></dt>
|
||||||
|
<dd>This parameter is ignored by Mini GLX but should be set to <code>AllocNone</code>.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<br>
|
||||||
|
<h2>3.4 Creating a Rendering Context</h2>
|
||||||
|
<p>An OpenGL rendering context is created with the <code>glXCreateContext</code>
|
||||||
|
function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>GLXContext glXCreateContext(Display *dpy, XVisualInfo *visInfo, GLXContext shareList, Bool direct)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>visInfo</code></dt>
|
||||||
|
<dd>The visual as returned by glXChooseVisual.</dd>
|
||||||
|
<dt><code>shareList</code></dt>
|
||||||
|
<dd>If non-zero, texture objects and display lists are shared with
|
||||||
|
the named rendering context. If zero, texture objects and display lists
|
||||||
|
will (initially) be private to this context. They may be shared when a
|
||||||
|
subsequent context is created.</dd>
|
||||||
|
<dt><code>direct</code></dt>
|
||||||
|
<dd>Specifies whether direct or indirect rendering is desired. For
|
||||||
|
Mini GLX this value is ignored but it should be set to <code>True</code>.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>glXCreateContext</code> will return a GLXContext handle if it
|
||||||
|
succeeds or zero if it fails due to invalid parameter or insufficient
|
||||||
|
resources.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.5 Binding a Rendering Context</h2>
|
||||||
|
<p>The final step before beginning OpenGL rendering is to bind (i.e.
|
||||||
|
activate) a rendering context and drawing surface with the
|
||||||
|
glXMakeCurrent function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>drawable</code></dt>
|
||||||
|
<dd>The window or drawable to bind to the rendering context. This
|
||||||
|
should be the value returned by XCreateWindow.</dd>
|
||||||
|
<dt><code>ctx</code></dt>
|
||||||
|
<dd>The rendering context to bind, as returned by glXCreateContext.</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p>If glXMakeCurrent succeeds True is returned. Otherwise False is
|
||||||
|
returned to indicate an invalid display, window or context parameter.</p>
|
||||||
|
<p>After the rendering context has been bound to the drawing surface
|
||||||
|
OpenGL rendering can begin.</p>
|
||||||
|
<p>The current rendering context may be unbound by calling
|
||||||
|
glXMakeCurrent with the window and context parameters set to zero.</p>
|
||||||
|
<p>An application may create any number of rendering contexts and bind
|
||||||
|
them as needed. Note that binding a rendering context is generally not a
|
||||||
|
light-weight operation. Most simple OpenGL applications create
|
||||||
|
only one rendering context.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.6 Color Buffer Swapping</h2>
|
||||||
|
<p>A double buffered window has two color buffers: a front buffer and a
|
||||||
|
back buffer. Normally, rendering is directed to the back buffer while
|
||||||
|
the front buffer is displayed. When rendering of a frame is finished
|
||||||
|
the front and back buffers are swapped to provide the illusion of
|
||||||
|
instanteous screen updates.</p>
|
||||||
|
<p>The color buffers for a particular window (i.e. drawable) may be
|
||||||
|
swapped with the glXSwapBuffers command:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void glXSwapBuffers(Display *dpy, GLXDrawable drawable)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
Any pending rendering commands will be completed before the buffer swap
|
||||||
|
takes place.<br>
|
||||||
|
<br>
|
||||||
|
Calling glXSwapBuffers on a window which is single-buffered has no
|
||||||
|
effect.<br>
|
||||||
|
<br>
|
||||||
|
<h2>3.7 Releasing Resources</h2>
|
||||||
|
<h3>3.7.1 Releasing Rendering Contexts</h3>
|
||||||
|
<p>A rendering context may be destroyed by calling glXDestroyContext:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void glXDestroyContext(Display *dpy, GLXContext ctx)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.2 Releasing Windows</h3>
|
||||||
|
<p>A window may be destroyed by calling XDestroyWindow:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XDestroyWindow(Display *dpy, Window window)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.3 Releasing Visuals</h3>
|
||||||
|
<p>An XVisualInfo object may be freed by calling XFree:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XFree(void *data)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.4 Releasing Colormaps</h3>
|
||||||
|
<p>A colormap may be freed by calling XFreeColormap:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XFreeColormap(Display *dpy, Colormap colormap)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.7.4 Releasing Display Resources</h3>
|
||||||
|
<p>When the application is about to exit, the resources associated with
|
||||||
|
the graphics system can be released by calling XCloseDisplay:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void XCloseDisplay(Display *dpy)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The display handle becomes invalid at this point.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.8 Query Functions</h2>
|
||||||
|
<h3>3.8.1 Querying Available Visuals</h3>
|
||||||
|
A list of all available visuals can be obtained with the XGetVisualInfo
|
||||||
|
function:<br>
|
||||||
|
<br>
|
||||||
|
<div style="margin-left: 40px;"><code>XVisualInfo
|
||||||
|
*XGetVisualInfo(Display *dpy, long vinfo_mask, XVisualInfo
|
||||||
|
*vinfo_template, int *nitems_return)<br>
|
||||||
|
</code></div>
|
||||||
|
<br>
|
||||||
|
The parameters are as follows:<br>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>vinfo_mask</code></dt>
|
||||||
|
<dd>A bitmask indicating which fields of the vinfo_template are to
|
||||||
|
be matched. The value must be VisualScreenMask.</dd>
|
||||||
|
<dt><code>vinfo_template</code></dt>
|
||||||
|
<dd>A template whose fields indicate which visual attributes must
|
||||||
|
be matched by the results. The screen field of this structure must
|
||||||
|
be zero.</dd>
|
||||||
|
<dt><code>nitems_return</code></dt>
|
||||||
|
<dd>Returns the number of visuals returned. </dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
The return value is the address of an array of all available visuals.<br>
|
||||||
|
<br>
|
||||||
|
An example of using XGetVisualInfo to get all available visuals follows:<br>
|
||||||
|
<br>
|
||||||
|
<div style="margin-left: 40px;"><code>XVisualInfo visTemplate, *results;</code><br>
|
||||||
|
<code>int numVisuals;</code><br>
|
||||||
|
<code>Display *dpy = XOpenDisplay(NULL);</code><br>
|
||||||
|
<code>visTemplate.screen = 0;</code><br>
|
||||||
|
<code>results = XGetVisualInfo(dpy, VisualScreenMask, &visTemplate,
|
||||||
|
&numVisuals);</code><br>
|
||||||
|
<code></code></div>
|
||||||
|
<br>
|
||||||
|
<h3>3.8.2 Querying Visual Attributes</h3>
|
||||||
|
<p>The GLX attributes of an X visual may be queried with the
|
||||||
|
glXGetConfig function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, int *value)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>The parameters are as follows:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>dpy</code></dt>
|
||||||
|
<dd>The display handle, as returned by XOpenDisplay.</dd>
|
||||||
|
<dt><code>vis</code></dt>
|
||||||
|
<dd>The visual, as returned by glXChooseVisual.</dd>
|
||||||
|
<dt><code>attribute</code></dt>
|
||||||
|
<dd>The attribute to query. The attributes are listed below.</dd>
|
||||||
|
<dt><code>value</code></dt>
|
||||||
|
<dd>Pointer to an integer in which the result of the query will be
|
||||||
|
stored. </dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<p>The return value will be zero if no error occurs.<code>
|
||||||
|
GLX_INVALID_ATTRIBUTE</code> will be returned if the attribute
|
||||||
|
parameter is invalid.<code> GLX_BAD_VISUAL</code> will be returned
|
||||||
|
if the XVisualInfo parameter is invalid.</p>
|
||||||
|
<p>The following attributes may be queried:</p>
|
||||||
|
<blockquote>
|
||||||
|
<dl>
|
||||||
|
<dt><code>GLX_USE_GL</code></dt>
|
||||||
|
<dd>The result will be <code>True</code> or <code>False</code> to
|
||||||
|
indicate if OpenGL rendering is supported with the visual. Mini GLX
|
||||||
|
always return <code>True</code>.</dd>
|
||||||
|
<dt><code>GLX_RGBA</code></dt>
|
||||||
|
<dd>The result will be <code>True</code> for RGBA visuals or <code>False</code>
|
||||||
|
for color index visuals.</dd>
|
||||||
|
<dt><code>GLX_DOUBLEBUFFER</code></dt>
|
||||||
|
<dd>The result will be <code>True</code> if the visual has two
|
||||||
|
color buffers or <code>False</code> if the visual has one color buffer.</dd>
|
||||||
|
<dt><code>GLX_RED_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of red bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_GREEN_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of green bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_BLUE_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of blue bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_ALPHA_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of alpha bits per pixel.</dd>
|
||||||
|
<dt><code>GLX_DEPTH_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of bits per Z value.</dd>
|
||||||
|
<dt><code>GLX_STENCIL_SIZE</code></dt>
|
||||||
|
<dd>The result will be the number of bits per stencil value.<br>
|
||||||
|
<br>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</blockquote>
|
||||||
|
<h3>3.8.3 Querying the Current Rendering Context</h3>
|
||||||
|
<p>The current rendering context can be queried with
|
||||||
|
glXGetCurrentContext: </p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>GLXContext glXGetCurrentContext(void)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>Zero will be returned if no context is currently bound.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h3>3.8.4 Querying the Current Drawable</h3>
|
||||||
|
<p>The current drawable (i.e. window or drawing surface) can be queried
|
||||||
|
with glXGetCurrentDrawable:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>GLXDrawable glXGetCurrentDrawable(void)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>Zero will be returned if no drawable is currently bound.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h3>3.8.5 Function Address Queries</h3>
|
||||||
|
<p>The glXGetProcAddress function will return the address of any
|
||||||
|
available OpenGL or Mini GLX function:</p>
|
||||||
|
<blockquote>
|
||||||
|
<pre>void *glXGetProcAddress(const GLubyte *procName)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p>If <code>procName</code> is a valid function name, a pointer to that
|
||||||
|
function will be returned. Otherwise, NULL will be returned.</p>
|
||||||
|
<p>The purpose of glXGetProcAddress is to facilitate using future
|
||||||
|
extensions to OpenGL or Mini GLX. If a future version of the library
|
||||||
|
adds new extension functions they'll be accessible via
|
||||||
|
glXGetProcAddress. The alternative is to hard-code calls to the new
|
||||||
|
functions in the application but doing so will prevent linking the
|
||||||
|
application with older versions of the library.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h2>3.9 Versioning</h2>
|
||||||
|
The Mini GLX version can be queried at run time with glXQueryVersion:
|
||||||
|
<blockquote>
|
||||||
|
<pre>Bool glXQueryVersion(Display *dpy, int *major, int *minor)<br></pre>
|
||||||
|
</blockquote>
|
||||||
|
<p><code>major</code> will be set to the major version number and<code>minor</code>
|
||||||
|
will be set to the minor version number.<code>True</code> will be
|
||||||
|
returned if the function succeeds. <code>False</code> will be returned
|
||||||
|
if the function fails due to invalid parameters. The <code>dpy</code>
|
||||||
|
argument is currently ignored, but should be the value returned by
|
||||||
|
XOpenDisplay.</p>
|
||||||
|
<p>At compile time, the Mini GLX interface version can be tested with
|
||||||
|
the MINI_GLX_VERSION_1_<i>x</i> preprocessor tokens. For example, if
|
||||||
|
version 1.0 of Mini GLX is supported, then<code> MINI_GLX_VERSION_1_0</code>
|
||||||
|
will be defined. If version 1.1 of Mini GLX is supported, then<code>
|
||||||
|
MINI_GLX_VERSION_1_1</code> will be defined.</p>
|
||||||
|
<p>At the time of writing the current Mini GLX version is 1.0.<br>
|
||||||
|
<br>
|
||||||
|
</p>
|
||||||
|
<h1>4.0 Interoperability with GLX and Xlib</h1>
|
||||||
|
While Mini GLX strives to be compatible with GLX and Xlib there are
|
||||||
|
some unavoidable differences which must be taken into consideration.<br>
|
||||||
|
<h2>4.1 Public vs Private Structures</h2>
|
||||||
|
The structure of many X data types is public. For example, the <code>Display</code>
|
||||||
|
data type is defined as a structure in /usr/include/X11/Xlib.h and
|
||||||
|
programmers may access any fields of that structure at will. Mini
|
||||||
|
GLX also defines a Display data type but its fields are hidden and not
|
||||||
|
visiblein <code>miniglx.h</code>. Duplicating the Xlib
|
||||||
|
declaration for the <code>Display</code> data type in minigl.h would
|
||||||
|
require defining a large number of other superfluous Xlib datatypes.<br>
|
||||||
|
<br>
|
||||||
|
Mini GLX users are discouraged from directly accessing the fields of
|
||||||
|
Xlib data types to maximize portability - though this is unavoidable to
|
||||||
|
some extent. For example, the <code>XVisualInfo</code> and <code>XSetWindowAtttributes</code>
|
||||||
|
data types must be completely public.
|
||||||
|
<h2>4.2 Macros</h2>
|
||||||
|
In some cases, Xlib defines macros which are meant to be used instead
|
||||||
|
of direct structure accesses. For example, the <code>RootWindow(dpy,
|
||||||
|
screen)</code> macro returns the root window for a given screen on a
|
||||||
|
given display. Unfortunately, macros do nothing to aid in ABI
|
||||||
|
compatibility since they are resolved at compile time instead of at
|
||||||
|
link/run time.<br>
|
||||||
|
<br>
|
||||||
|
Mini GLX also defines a <code>RootWindow</code> macro since it's
|
||||||
|
essential for creating windows. But the implementation of this
|
||||||
|
macro by Xlib and Mini GLX is completely different.<br>
|
||||||
|
<h2>4.3 Summary</h2>
|
||||||
|
Because Xlib and Mini GLX define data types and macros differently,
|
||||||
|
Mini GLX applications must be recompiled when retargeting Mini GLX or
|
||||||
|
native Xlib/GLX. That is, applications can't simply be re-linked
|
||||||
|
because of ABI incompatibilities.<br>
|
||||||
|
<br>
|
||||||
|
Nevertheless, the fact that Mini GLX programs can be recompiled for
|
||||||
|
Xlib and GLX increases portability and flexibility for testing and
|
||||||
|
prototyping.<br>
|
||||||
|
<br>
|
||||||
|
<h1>5.0 Example Program</h1>
|
||||||
|
<p>This section shows an example program which uses the Mini GLX
|
||||||
|
interface. The program simply draws several frames of a rotating square.<br>
|
||||||
|
</p>
|
||||||
|
<p>The program may be compiled for use with Xlib/GLX or Mini GLX by
|
||||||
|
setting the <code>USE_MINIGLX</code> token to 0 or 1, respectively.
|
||||||
|
Note that the only difference is the header files which are
|
||||||
|
included.<br>
|
||||||
|
</p>
|
||||||
|
<p> </p>
|
||||||
|
<pre><code><br></code>#define USE_MINIGLX 1 /* 1 = use Mini GLX, 0 = use Xlib/GLX */<br><br>#include <stdio.h><br>#include <stdlib.h><br>#include <GL/gl.h><br><br>#if USE_MINIGLX<br>#include <GL/miniglx.h><br>#else<br>#include <GL/glx.h><br>#include <X11/Xlib.h><br>#endif<br><br><code>/*<br> * Create a simple double-buffered RGBA window.<br> */<br>static Window<br>MakeWindow(Display * dpy, unsigned int width, unsigned int height)<br>{<br> int visAttributes[] = {<br> GLX_RGBA,<br> GLX_RED_SIZE, 1,<br> GLX_GREEN_SIZE, 1,<br> GLX_BLUE_SIZE, 1,<br> GLX_DOUBLEBUFFER,<br> None<br> };<br> XSetWindowAttributes attr;<br> unsigned long attrMask;<br> Window root;<br> Window win;<br> GLXContext ctx;<br> XVisualInfo *visinfo;<br><br> root = RootWindow(dpy, 0);<br><br> /* Choose GLX visual / pixel format */<br> visinfo = glXChooseVisual(dpy, 0, visAttributes);<br> if (!visinfo) {<br> printf("Error: couldn't get an RGB, Double-buffered visual\n");<br> exit(1);<br> }<br><br> /* Create the window */<br> attr.background_pixel = 0;<br> attr.border_pixel = 0;<br> attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);<br> attrMask = CWBackPixel | CWBorderPixel | CWColormap;<br> win = XCreateWindow(dpy, root, 0, 0, width, height,<br> 0, visinfo->depth, InputOutput,<br> visinfo->visual, attrMask, &attr);<br> if (!win) {<br> printf("Error: XCreateWindow failed\n");<br> exit(1);<br> }<br><br> /* Display the window */<br> XMapWindow(dpy, win);<br><br> /* Create GLX rendering context */<br> ctx = glXCreateContext(dpy, visinfo, NULL, True);<br> if (!ctx) {<br> printf("Error: glXCreateContext failed\n");<br> exit(1);<br> }<br><br> /* Bind the rendering context and window */<br> glXMakeCurrent(dpy, win, ctx);<br><br> return win;<br>}<br><br><br>/*<br> * Draw a few frames of a rotating square.<br> */<br>static void<br>DrawFrames(Display * dpy, Window win)<br>{<br> int angle;<br> glShadeModel(GL_FLAT);<br> glClearColor(0.5, 0.5, 0.5, 1.0);<br> for (angle = 0; angle < 360; angle += 10) {<br> glClear(GL_COLOR_BUFFER_BIT);<br> glColor3f(1.0, 1.0, 0.0);<br> glPushMatrix();<br> glRotatef(angle, 0, 0, 1);<br> glRectf(-0.8, -0.8, 0.8, 0.8);<br> glPopMatrix();<br> glXSwapBuffers(dpy, win);<br> }<br>}<br><br><br>int<br>main(int argc, char *argv[])<br>{<br> Display *dpy;<br> Window win;<br><br> dpy = XOpenDisplay(NULL);<br> if (!dpy) {<br> printf("Error: XOpenDisplay failed\n");<br> return 1;<br> }<br><br> win = MakeWindow(dpy, 300, 300);<br><br> DrawFrames(dpy, win);<br><br> return 0;<br>}<br></code></pre>
|
||||||
|
<br>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
613
docs/README.3DFX
Normal file
613
docs/README.3DFX
Normal file
@@ -0,0 +1,613 @@
|
|||||||
|
|
||||||
|
3Dfx Glide device driver
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Info for Mesa 4.1
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The 3dfx Glide driver in Mesa is disabled by default. Not too many people
|
||||||
|
use this driver anymore and at some point down the road it will be dropped.
|
||||||
|
|
||||||
|
To use/enable the Glide driver either do this:
|
||||||
|
|
||||||
|
'./configure --with-glide=DIR' Where DIR is the location of Glide, like
|
||||||
|
/usr/ or /usr/local
|
||||||
|
|
||||||
|
OR
|
||||||
|
|
||||||
|
'make linux-x86-glide' If using the old-style Makefile system.
|
||||||
|
|
||||||
|
The rest of this file hasn't changed since Mesa 3.3. Some of it's out of
|
||||||
|
date, but some is still valid.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What do you need ?
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board
|
||||||
|
(Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.).
|
||||||
|
The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
|
||||||
|
under Linux (more information in the "Useful Glide Environment
|
||||||
|
Variables");
|
||||||
|
|
||||||
|
- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
|
||||||
|
The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
|
||||||
|
compatible with the Glide 2.x so it doesn't work with the current
|
||||||
|
version of the driver;
|
||||||
|
|
||||||
|
- A compiler supported by the Glide library (Micro$oft VC++ (tested),
|
||||||
|
Watcom (tested), GCC for Linux (tested), etc.);
|
||||||
|
|
||||||
|
- It's nice to have two monitors - one for your normal graphics
|
||||||
|
card and one for your 3Dfx card. If something goes wrong with
|
||||||
|
an application using the 3Dfx hardware you can still see your
|
||||||
|
normal screen in order to recover.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
----------
|
||||||
|
Windows 95 - David Bucciarelli
|
||||||
|
Windows NT - Henri Fousse
|
||||||
|
MS-DOS
|
||||||
|
Linux - Daryll Strauss, Brian Paul, David Bucciarelli
|
||||||
|
FreeBSD
|
||||||
|
BeOS - Duncan Wilcox
|
||||||
|
MacOS - Fazekas Miklos
|
||||||
|
|
||||||
|
|
||||||
|
What is able to do ?
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
- It is able accelerate points, lines and polygon with flat
|
||||||
|
shading, gouraud shading, Z-buffer, texture mapping, blending, fog and
|
||||||
|
antialiasing (when possible). There is also the support for rendering
|
||||||
|
in a window with a slow trick for the Voodoo Graphics (available only
|
||||||
|
for Linux) and at full speed with the Voodoo Rush chipset.
|
||||||
|
Under Linux is also possible to switch on-the-fly between the fullscreen
|
||||||
|
and in-window rendering hack.
|
||||||
|
There is also the support for using more than one Voodoo Graphics in the
|
||||||
|
some application/PC (you can create one context for each board and use
|
||||||
|
multiple video outputs for driving monitors, videoprojectors or HMDs).
|
||||||
|
The driver is able to fallback to pure software rendering when afeature
|
||||||
|
isn't supported by the Voodoo hardware (however software rendering is
|
||||||
|
very slow compared to hardware supported rendering)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
How to compile:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Linux:
|
||||||
|
------
|
||||||
|
Here are the basic steps for using the 3Dfx hardware with Mesa
|
||||||
|
on Linux:
|
||||||
|
|
||||||
|
- You'll need the Glide library and headers. Mesa expects:
|
||||||
|
/usr/local/glide/include/*.h // all the Glide headers
|
||||||
|
/usr/local/glide/lib/libglide2x.so
|
||||||
|
|
||||||
|
If your Glide libraries and headers are in a different directory
|
||||||
|
you'll have to modify the Mesa-config and mklib.glide files.
|
||||||
|
|
||||||
|
- Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives;
|
||||||
|
|
||||||
|
- If you're going to use a newer Mesa/Glide driver than v0.27 then
|
||||||
|
unpack the new driver archive over the Mesa directory.
|
||||||
|
|
||||||
|
- In the Mesa-3.1 directory type "make linux-glide"
|
||||||
|
|
||||||
|
- Compilation _should_ finish without errors;
|
||||||
|
|
||||||
|
- Set your LD_LIBRARY_PATH environment variable so that the
|
||||||
|
libglide2x.so and Mesa library files can be found. For example:
|
||||||
|
setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib"
|
||||||
|
|
||||||
|
- You'll have to run Glide-based programs as root or set the suid
|
||||||
|
bit on executables;
|
||||||
|
|
||||||
|
- Try a demo:
|
||||||
|
cd gdemos
|
||||||
|
su
|
||||||
|
setenv MESA_GLX_FX f
|
||||||
|
./gears (hit ESC to exit)
|
||||||
|
|
||||||
|
- You can find the demos especially designed for the Voodoo driver in
|
||||||
|
in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile
|
||||||
|
everything).
|
||||||
|
|
||||||
|
MacOS:
|
||||||
|
------
|
||||||
|
Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html
|
||||||
|
|
||||||
|
MS Windows:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
For the MSVC++:
|
||||||
|
- The glide2x.lib have to be in the default MSVC++ lib directory;
|
||||||
|
|
||||||
|
- The Glide headers have to be in the default MSVC++ include directory;
|
||||||
|
|
||||||
|
- You must have the vcvars32.bat script in your PATH;
|
||||||
|
|
||||||
|
- Go to the directory Mesa-3.1 and run the mesafx.bat;
|
||||||
|
|
||||||
|
- The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll},
|
||||||
|
Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and
|
||||||
|
Voodoo demos);
|
||||||
|
|
||||||
|
- At the end, you will be in the Mesa-3.1/3Dfx/demos directory;
|
||||||
|
|
||||||
|
- Try some demo (fire.exe, teapot.exe, etc.) in order to check if
|
||||||
|
everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between
|
||||||
|
the Voodoo screen and the windows desktop);
|
||||||
|
|
||||||
|
- Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the
|
||||||
|
some directory were you run your Mesa based applications.
|
||||||
|
|
||||||
|
- I think that you can easy change the Makefile.fx files in order
|
||||||
|
to work with other kind of compilers;
|
||||||
|
|
||||||
|
- To discover how open the 3Dfx screen, read the sources under
|
||||||
|
the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or
|
||||||
|
the Diego Picciani's wgl emulator.
|
||||||
|
|
||||||
|
NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the
|
||||||
|
SP3, you could have some problem (you can disable optimization in order
|
||||||
|
solve these kind of problems).
|
||||||
|
|
||||||
|
|
||||||
|
Doing more with Mesa & Linux Glide:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
The MESA_GLX_FX environment variable can be used to coax most
|
||||||
|
GLX-based programs into using Glide (and the __GLUT library
|
||||||
|
is GLX-based__).
|
||||||
|
|
||||||
|
Full-screen 3Dfx rendering:
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. Set the MESA_GLX_FX variable to "fullscreen":
|
||||||
|
|
||||||
|
ksh:
|
||||||
|
export MESA_GLX_FX = "fullscreen"
|
||||||
|
csh:
|
||||||
|
setenv MESA_GLX_FX fullscreen
|
||||||
|
|
||||||
|
2. As root, run a GLX-based program (any GLUT demo on Linux).
|
||||||
|
|
||||||
|
3. Be careful: once the 3Dfx screen appears you won't be able
|
||||||
|
to see the GLUT windows on your X display. This can make using
|
||||||
|
the mouse tricky! One solution is to hook up your 3Dfx card to
|
||||||
|
a second monitor. If you can do this then set these env vars
|
||||||
|
first:
|
||||||
|
|
||||||
|
setenv SST_VGA_PASS 1
|
||||||
|
setenv SST_NOSHUTDOWN
|
||||||
|
|
||||||
|
or for the Voodoo2:
|
||||||
|
|
||||||
|
setenv SSTV2_VGA_PASS 1
|
||||||
|
setenv SSTV2_NOSHUTDOWN
|
||||||
|
|
||||||
|
Rendering into an X window with the help of the Voodoo hardware:
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Start your X server in 16 bpp mode (XFree86: startx -- -bpp 16)
|
||||||
|
in order to have the best performance and the best visual
|
||||||
|
quality. However you can use any visual depth supported by X.
|
||||||
|
|
||||||
|
2. Set the following environment variables:
|
||||||
|
export MESA_GLX_FX="window" # to enable window rendering
|
||||||
|
export SST_VGA_PASS=1 # to stop video signal switching
|
||||||
|
export SST_NOSHUTDOWN=1 # to stop video signal switching
|
||||||
|
OR
|
||||||
|
setenv MESA_GLX_FX window
|
||||||
|
setenv SST_VGA_PASS 1
|
||||||
|
setenv SST_NOSHUTDOWN 1
|
||||||
|
|
||||||
|
(the Voodoo2 requires to use "SSTV2_" instead "SST_").
|
||||||
|
|
||||||
|
3. As root, try running a GLX-based program
|
||||||
|
|
||||||
|
How does it work? We use the 3Dfx hardware to do rendering then
|
||||||
|
copy the image from the 3Dfx frame buffer into an X window when
|
||||||
|
the SwapBuffers() function is called. The problem with this
|
||||||
|
idea is it's slow. The image must be copied from the 3Dfx frame
|
||||||
|
buffer to main memory then copied into the X window (and when the X
|
||||||
|
visual depth doesn't match the Voodoo framebufffer bit per pixel, it
|
||||||
|
is required also a pixel format translation).
|
||||||
|
|
||||||
|
NOTE: the in-window rendering feature only works with double-buffering.
|
||||||
|
|
||||||
|
|
||||||
|
On the fly switching between in window rendering and full screen rendering
|
||||||
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The Mesa 2.6 has introduced the capability of switching
|
||||||
|
on-the-fly between the fullscreen/fullspeed rendering and the in-window
|
||||||
|
hack and vice versa. The on-the-fly switching requires a direct support
|
||||||
|
by the application but it is really easy to add. You have to start
|
||||||
|
your X server in 16 bpp mode and to add the following lines to your
|
||||||
|
application:
|
||||||
|
|
||||||
|
#if defined(FX) && define(XMESA)
|
||||||
|
#include <GL/xmesa.h>
|
||||||
|
|
||||||
|
static int fullscreen=1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
/* In the GLUT keyboard event callback */
|
||||||
|
|
||||||
|
#if defined(FX) && !define(WIN32)
|
||||||
|
case ' ':
|
||||||
|
fullscreen=(!fullscreen);
|
||||||
|
XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
...
|
||||||
|
|
||||||
|
See the 3Dfx/demos/tunnel.c program
|
||||||
|
for an example. You have to set the -DXMESA flag in the Makefile's COPTS
|
||||||
|
to enable it.
|
||||||
|
|
||||||
|
Rendering into an X window with the X11 software driver:
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
Set the MESA_GLX_FX variable to "disable" your GLX-based program will use
|
||||||
|
the X11 software driver (the 3Dfx hardware isn't used at all).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Useful Glide Environment Variables:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
- To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable.
|
||||||
|
|
||||||
|
- To disable video signal switching:
|
||||||
|
setenv SST_VGA_PASS 1
|
||||||
|
setenv SST_NOSHUTDOWN
|
||||||
|
or for the Voodoo2:
|
||||||
|
setenv SSTV2_VGA_PASS 1
|
||||||
|
setenv SSTV2_NOSHUTDOWN
|
||||||
|
|
||||||
|
- To set the default screen refresh rate:
|
||||||
|
setenv SST_SCREENREFRESH=75
|
||||||
|
|
||||||
|
the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120.
|
||||||
|
|
||||||
|
- To force the Mesa library to swap buffers as fast as possible,
|
||||||
|
without any vertical blanking synchronization (useful for benchmarks):
|
||||||
|
setenv FX_GLIDE_SWAPINTERVAL 0
|
||||||
|
setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0
|
||||||
|
|
||||||
|
- You can slight improve the performances of your Voodoo1 board with
|
||||||
|
the following env. var.:
|
||||||
|
setenv SST_FASTMEM 1
|
||||||
|
setenv SST_PCIRD 1
|
||||||
|
setenv SST_GRXCLK 57
|
||||||
|
|
||||||
|
(don't use this setting with the Quantum3D 100SB or with any other
|
||||||
|
SLI configuration: it will hang everything !).
|
||||||
|
The following setting can be used with the Voodoo2:
|
||||||
|
setenv SSTV2_FASTMEM_RAS_READS=1
|
||||||
|
setenv SSTV2_FASTPCIRD=1
|
||||||
|
setenv SSTV2_GRXCLK=95
|
||||||
|
|
||||||
|
- The Quantum3D Obsidian3D-2 X-24 requires some special env. setting
|
||||||
|
in order to work under Linux:
|
||||||
|
|
||||||
|
export SSTV2_FT_CLKDEL=5
|
||||||
|
export SSTV2_TF0_CLKDEL=7
|
||||||
|
export SSTV2_TF1_CLKDEL=7
|
||||||
|
export SSTV2_TF2_CLKDEL=7
|
||||||
|
export SSTV2_SLIM_VIN_CLKDEL=3
|
||||||
|
export SSTV2_SLIM_VOUT_CLKDEL=2
|
||||||
|
export SSTV2_SLIS_VIN_CLKDEL=3
|
||||||
|
export SSTV2_SLIS_VOUT_CLKDEL=2
|
||||||
|
|
||||||
|
(Thanks to Phil Ross for this trick).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The Mesa/Voodoo Environment Variables:
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
- Only for Windows/Voodoo Rush users, if you define the
|
||||||
|
env. var. MESA_WGL_FX:
|
||||||
|
export MESA_WGL_FX=fullscreen
|
||||||
|
you will get fullscreen rendering;
|
||||||
|
|
||||||
|
- Only for Windows/Voodoo Rush users, if you define the
|
||||||
|
env. var. MESA_WGL_FX:
|
||||||
|
export MESA_WGL_FX=window
|
||||||
|
you will get window rendering (default value);
|
||||||
|
|
||||||
|
- Only for Linux users, you can find more informations about
|
||||||
|
the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide"
|
||||||
|
section;
|
||||||
|
|
||||||
|
- If you define the env. var. MESA_FX_SWAP_PENDING:
|
||||||
|
export MESA_FX_SWAP_PENDING=4
|
||||||
|
you will able to set the maximum number of swapbuffers
|
||||||
|
commands in the Voodoo FIFO after a swapbuffer (default value: 2);
|
||||||
|
|
||||||
|
- If you define the env. var. MESA_FX_INFO:
|
||||||
|
export MESA_FX_INFO=1
|
||||||
|
you will get some useful statistic.
|
||||||
|
|
||||||
|
- If you define the env. var. MESA_FX_NO_SIGNALS:
|
||||||
|
export MESA_FX_NO_SIGNALS=1
|
||||||
|
Mesa/FX will not install atexit() or signal() handlers.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Know BUGS and Problems:
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
- fog doesn't work in the right way when using the glDepthRange() function;
|
||||||
|
|
||||||
|
- Maximum texture size: 256x256 (this is an hardware limit);
|
||||||
|
|
||||||
|
- Texture border aren't yet supported;
|
||||||
|
|
||||||
|
- A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit);
|
||||||
|
|
||||||
|
- Use the glBindTexture extension (standard in OpenGL 1.1) for texture
|
||||||
|
mapping (the old way: glTexImage inside a display list, download
|
||||||
|
the texture map each time that you call the display list !!!);
|
||||||
|
|
||||||
|
- Stencil buffer and Accumulation buffer are emulated in software (they are not
|
||||||
|
directly supported by the Hardware);
|
||||||
|
|
||||||
|
- Color index mode not implemented (this is an hardware limit);
|
||||||
|
|
||||||
|
- Thre is an know bug in the Linux Glide library so the in-window-rendering hack
|
||||||
|
and any other operations that requires to read the Voodoo frame buffer
|
||||||
|
(like the accumulation buffer support) doesn't work on Voodoo SLI cards.
|
||||||
|
|
||||||
|
- The driver switch to pure software (_slow_) rendering when:
|
||||||
|
|
||||||
|
- Stencil enabled;
|
||||||
|
- Using the Accumulation buffer;
|
||||||
|
- Blend enabled and blend equation != GL_FUNC_ADD_EXT;
|
||||||
|
- Color logic operation enabled and color logic operation != GL_COPY;
|
||||||
|
- Using GL_SEPARATE_SPECULAR_COLOR;
|
||||||
|
- The four values of glColorMask() aren't the some;
|
||||||
|
- Texture 1D or 3D enabled;
|
||||||
|
- Texture function is GL_BLEND;
|
||||||
|
- Using the Multitexture extension with Voodoo cards with only one TMU;
|
||||||
|
- Using the Multitexture extension with Voodoo cards with more than
|
||||||
|
one TMU, and texture function isn't GL_MODULATE;
|
||||||
|
- Point size is != 1.0 or point params vector != (1.0,0.0,0.0);
|
||||||
|
- Line width != 1.0 or using stipple lines.
|
||||||
|
- Using polygon offset or stipple polygons;
|
||||||
|
|
||||||
|
NOTE: this is list is not yet complete.
|
||||||
|
|
||||||
|
|
||||||
|
Hints and Special Features:
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
- Under Linux and with a Voodoo Graphics board, you can use
|
||||||
|
XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to
|
||||||
|
switch on the fly between fullscreen rendering and the in-window-rendering
|
||||||
|
hack.
|
||||||
|
|
||||||
|
- The driver is able to use all the texture memory available: 2/4MB on
|
||||||
|
Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards.
|
||||||
|
|
||||||
|
- Trilinear filtering is fully supported on Voodoo boards with two TMUs
|
||||||
|
(high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is
|
||||||
|
available the driver fallback to bilinear filter also if you ask
|
||||||
|
for trilinear filtering.
|
||||||
|
|
||||||
|
- The Voodoo driver support multiple Voodoo Graphics boards in the
|
||||||
|
some PC. Using this feature, you can write applications that use
|
||||||
|
multiple monitors, videoprojectors or HMDs for the output. See
|
||||||
|
Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one
|
||||||
|
context for each board.
|
||||||
|
|
||||||
|
- The v0.19 introduces a new powerful texture memory manager: the
|
||||||
|
texture memory is used as a cache of the set of all defined texture
|
||||||
|
maps. You can now define several MBs of texture maps also with a 2MB
|
||||||
|
of texture memory (the texture memory manager will do automatically
|
||||||
|
all the swap out/swap in
|
||||||
|
texture memory work). The new texture memory manager has also
|
||||||
|
solved a lot of other bugs/no specs compliance/problems
|
||||||
|
related to the texture memory usage.
|
||||||
|
|
||||||
|
- Use triangles and quads strip: they are a LOT faster than sparse
|
||||||
|
triangles and quads.
|
||||||
|
|
||||||
|
- The Voodoo driver supports the GL_EXT_paletted_texture. it works
|
||||||
|
only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
|
||||||
|
is ignored because this is a limitation of the the current Glide
|
||||||
|
version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
|
||||||
|
a demo of this extension.
|
||||||
|
|
||||||
|
- The Voodoo driver directly supports 3Dfx Global Palette extension.
|
||||||
|
It was written for GLQuake and I think that it isn't a good idea
|
||||||
|
to use this extension for any other purpose (it is a trick). See
|
||||||
|
Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension.
|
||||||
|
|
||||||
|
- The Voodoo driver chooses the screen resolution according to the
|
||||||
|
requested window size. If you open a 640x480 window, you will get
|
||||||
|
a 640x480 screen resolution, if you open a 800x600 window, you
|
||||||
|
will get a 800x600 screen resolution, etc.
|
||||||
|
Most GLUT demos support the '-geometry' option, so you can choose
|
||||||
|
the screen resolution: 'tunnel -geometry 800x600'.
|
||||||
|
Clearly, you Voodoo board must have enough framebuffer RAM (otherwise
|
||||||
|
the window creation will fail).
|
||||||
|
|
||||||
|
- The glGetString(GL_RENDERER) returns more information
|
||||||
|
about the hardware configuration: "Mesa Glide <version>
|
||||||
|
<Voodoo_Graphics|Voodoo_Rush|UNKNOWN> <num> CARD/<num> FB/
|
||||||
|
<num> TM/<num> TMU/<NOSLI|SLI>"
|
||||||
|
where: <num> CARD is the card used for the current context,
|
||||||
|
<num> FB is the number of MB for the framebuffer,
|
||||||
|
<num> TM is the number of MB for the texture memory,
|
||||||
|
<num> TMU is the number of TMU. You can try to run
|
||||||
|
Mesa/demos/glinfo in order to have an example of the output.
|
||||||
|
|
||||||
|
Did you find a lot BUGs and problems ? Good, send me an email.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
----
|
||||||
|
|
||||||
|
For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO
|
||||||
|
available at http://www.gamers.org/dEngine/xf3D (it includes also
|
||||||
|
a lot of informations not strictly related to Linux, so it can be
|
||||||
|
useful also if you don't use Linux)
|
||||||
|
|
||||||
|
1. What is 3Dfx?
|
||||||
|
|
||||||
|
3Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics
|
||||||
|
chipset (and others) used in popular PC cards such as the Diamond Monster 3D
|
||||||
|
and the Orchid Righteous 3D (more informations at http://www.3dfx.com).
|
||||||
|
|
||||||
|
|
||||||
|
2. What is Glide?
|
||||||
|
|
||||||
|
Glide is a "thin" programming interface for the 3Dfx hardware. It was
|
||||||
|
originally written for Windows/Intel but has been ported to Linux/Intel
|
||||||
|
by Daryll Strauss.
|
||||||
|
|
||||||
|
3Dfx, Inc. should be applauded for allowing the Linux version of Glide
|
||||||
|
to be written.
|
||||||
|
|
||||||
|
You can directly program with the Glide library if you wish. You can
|
||||||
|
obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com
|
||||||
|
There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux
|
||||||
|
|
||||||
|
|
||||||
|
3. What is fxmesa?
|
||||||
|
|
||||||
|
"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library.
|
||||||
|
It was written by David Bucciarelli and others. It works on both Linux
|
||||||
|
and Windows. Basically, it allows you to write and run OpenGL-style programs
|
||||||
|
on the 3Dfx hardware.
|
||||||
|
|
||||||
|
|
||||||
|
4. What is GLQuake?
|
||||||
|
|
||||||
|
Quake is a very popular game from id software, Inc. See www.idsoftware.com
|
||||||
|
GLQuake is a version of Quake written for OpenGL. There is now a Linux
|
||||||
|
version of GLQuake with works with the Mesa/3Dfx/Glide combo.
|
||||||
|
|
||||||
|
Here's what you need to run GLQuake on Linux:
|
||||||
|
PC with 100MHz Pentium or better
|
||||||
|
a 3Dfx-based card
|
||||||
|
Mesa 3.1 libraries: libMesaGL.so libMesaGLU.so
|
||||||
|
Glide 2.4 libraries: libglide2x.so libtexus.so
|
||||||
|
GLQuake for Linux.
|
||||||
|
|
||||||
|
Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll,
|
||||||
|
you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory
|
||||||
|
in order to test 'MesaQuake'.
|
||||||
|
|
||||||
|
|
||||||
|
5. What is GLUT?
|
||||||
|
|
||||||
|
GLUT is Mark Kilgard's OpenGL Utility Toolkit. It provides an API for
|
||||||
|
writing portable OpenGL programs with support for multiple windows, pop-
|
||||||
|
up menus, event handling, etc.
|
||||||
|
|
||||||
|
Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd).
|
||||||
|
|
||||||
|
Every OpenGL programmer should check out GLUT.
|
||||||
|
|
||||||
|
GLUT on Linux uses GLX.
|
||||||
|
|
||||||
|
|
||||||
|
6. What is GLX?
|
||||||
|
|
||||||
|
GLX is the OpenGL extension to the X Window System. I defines both a
|
||||||
|
programming API (glX*() functions) and a network protocol. Mesa implements
|
||||||
|
an emulation of GLX on Linux. A real GLX implementation would requires
|
||||||
|
hooks into the X server. The 3Dfx hardware can be used with GLX-based
|
||||||
|
programs via the MESA_GLX_FX environment variable.
|
||||||
|
|
||||||
|
|
||||||
|
7. Is the Voodoo driver able to use the 4Mb texture memory of
|
||||||
|
the Pure3D boards ?
|
||||||
|
|
||||||
|
Yes, the Voodoo driver v0.20 includes the support for Voodoo
|
||||||
|
Graphics boards with more than 2Mb of texture memory.
|
||||||
|
|
||||||
|
|
||||||
|
8. Do the Voodoo driver support the Voodoo Rush under Windows ?
|
||||||
|
|
||||||
|
Yes, Diego Picciani has developed the support for the Voodoo
|
||||||
|
Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul
|
||||||
|
has a Monster3D, so the new versions of the Mesa/Voodoo sometime are
|
||||||
|
not tested with the Voodoo Rush.
|
||||||
|
|
||||||
|
|
||||||
|
9. Do the Voodoo driver support the Voodoo Rush under Linux ?
|
||||||
|
|
||||||
|
No because the Linux Glide doesn't (yet) support the Voodoo Rush.
|
||||||
|
|
||||||
|
|
||||||
|
10. Can I sell my Mesa/Voodoo based software and include
|
||||||
|
a binary copy of the Mesa in order to make the software
|
||||||
|
working out of the box ?
|
||||||
|
|
||||||
|
Yes.
|
||||||
|
|
||||||
|
|
||||||
|
11. Which is the best make target for compiling the Mesa for
|
||||||
|
Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ?
|
||||||
|
|
||||||
|
'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide'
|
||||||
|
for Voodoo2 boards because it doesn't include the '-fPIC'
|
||||||
|
option (4-5% faster).
|
||||||
|
|
||||||
|
|
||||||
|
12. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide'
|
||||||
|
for my applications/programs/demos ?
|
||||||
|
|
||||||
|
Yes, there is only one constrain: you can't run two Mesa applications
|
||||||
|
at the some time. This isn't a big issue with the today Voodoo Graphics.
|
||||||
|
|
||||||
|
|
||||||
|
Thanks to:
|
||||||
|
----------
|
||||||
|
|
||||||
|
Henri Fousse (he has written several parts of the v0.15 and the old GLUT
|
||||||
|
emulator for Win);
|
||||||
|
|
||||||
|
Diego Picciani (he has developed all the Voodoo Rush support and the wgl
|
||||||
|
emulator);
|
||||||
|
|
||||||
|
Daryll Strauss (for the Linux Glide and the first Linux support);
|
||||||
|
|
||||||
|
Brian Paul (of course);
|
||||||
|
|
||||||
|
Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports)
|
||||||
|
|
||||||
|
Bernd Kreimeier (for the Linux 3Dfx HOWTO and for pushing companies to offer
|
||||||
|
a better Linux support)
|
||||||
|
|
||||||
|
3Dfx and Quantum3D (for actively supporting Linux)
|
||||||
|
|
||||||
|
The most update places where find Mesa VooDoo driver related informations are
|
||||||
|
the Mesa mailing list and my driver WEB page
|
||||||
|
(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml)
|
||||||
|
|
||||||
|
|
||||||
|
David Bucciarelli (davibu@tin.it)
|
||||||
|
|
||||||
|
Humanware s.r.l.
|
||||||
|
Via XXIV Maggio 62
|
||||||
|
Pisa, Italy
|
||||||
|
Tel./Fax +39-50-554108
|
||||||
|
email: info.hmw@plus.it
|
||||||
|
www: www-hmw.caribel.pisa.it
|
||||||
181
docs/README.AMIWIN
Normal file
181
docs/README.AMIWIN
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
AMIGA AMIWIN PORT of MESA: THE OPENGL SOFTWARE EMULATION
|
||||||
|
========================================================
|
||||||
|
Port by Victor Ng-Thow-Hing (victorng@dgp.toronto.edu)
|
||||||
|
Original Author (Brian Paul (brianp@ssec.wisc.edu)
|
||||||
|
|
||||||
|
Dec.1 , 1995: Port of release Mesa 1.2.5
|
||||||
|
- Modifications made to minimize changes to Mesa distribution.
|
||||||
|
|
||||||
|
Nov.25, 1995: Port of release Mesa 1.2.4
|
||||||
|
|
||||||
|
|
||||||
|
HISTORY
|
||||||
|
=======
|
||||||
|
As a 3D graphics progammer, I was increasingly frustrated to see OpenGL
|
||||||
|
appearing on so many platforms EXCEPT the Amiga. Up to now, the task
|
||||||
|
of porting OpenGL directly from native Amiga drawing routines seemed like
|
||||||
|
a daunting task. However, two important events made this port possible.
|
||||||
|
|
||||||
|
First of all, Brian Paul wrote Mesa, the OpenGL software emulator that
|
||||||
|
can be found on many platforms - except the Amiga and Atari (who cares
|
||||||
|
about the latter!). This was pretty ironic considering that Mesa was
|
||||||
|
originally prototyped on an Amiga! The second great event was when
|
||||||
|
Holger Kruse developed AmiWin, the X11R6 server for the Amiga (definitely
|
||||||
|
register for this great piece of software) and released a development kit
|
||||||
|
so one could compile X programs with SAS/C.
|
||||||
|
|
||||||
|
Since Mesa had X routines as its primitive drawing operations, this made
|
||||||
|
a marriage of Mesa and Amiwin feasible. I copied over the sources from
|
||||||
|
an ftp site, played with the code, wrote some Smakefiles, and voila,
|
||||||
|
I had OpenGL programs displaying on my Amiga.
|
||||||
|
|
||||||
|
Although the speed is nothing to be impressed about, this port can be
|
||||||
|
potentially useful to those who want to quickly test their code in
|
||||||
|
wireframe or perhaps learn more about programming with the OpenGL API.
|
||||||
|
|
||||||
|
I hope Amiga developers will continue to write excellent software for
|
||||||
|
their machine, especially more X clients for Amiwin. If you have any
|
||||||
|
solutions so some of my problems in the porting notes, please send me
|
||||||
|
some email!
|
||||||
|
|
||||||
|
See you around,
|
||||||
|
Vic.
|
||||||
|
|
||||||
|
HOW TO CREATE THE LIBRARIES AND SAMPLE CODE
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
Just run the shell script mklib.amiwin in the mesa directory. This will
|
||||||
|
make all the libraries and copy them into the mesa/lib directory. If you
|
||||||
|
don't want to compile everything, just go to the desired directory and
|
||||||
|
type smake in that directory.
|
||||||
|
|
||||||
|
Change any of the variables in the smakefiles as necessary. You will REQUIRE
|
||||||
|
the Amiwin development kit to compile these libraries since you need X11.LIB
|
||||||
|
and the shareable X libraries. Some examples require the AmiTCP4.0
|
||||||
|
net.lib static link library and related header files for unix related
|
||||||
|
header files and functions like sleep().
|
||||||
|
|
||||||
|
HOW TO USE THE MESA LIBRARIES
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Study the Smakefiles in the demos, samples and book directories for the
|
||||||
|
proper SAS/C options and linkable libraries to use. Basically aux calls
|
||||||
|
require Mesaaux.LIB, gl calls require MesaGL.LIB, glu calls MesaGLU.LIB,
|
||||||
|
tk calls Mesatk.LIB. There is a preliminary port of MesaGLUT.LIB toolkit
|
||||||
|
available in the lib directory with the other Mesa libraries. However,
|
||||||
|
it seems to cause crashes on some of the sample code. Someone else may want
|
||||||
|
to attempt a more stable port.
|
||||||
|
|
||||||
|
PORTING NOTES TO AMIWIN
|
||||||
|
=======================
|
||||||
|
|
||||||
|
My strategy of porting was to leave as much of the code untouched as
|
||||||
|
possible. I surrounded any amiga specific changes with
|
||||||
|
#ifdef AMIWIN ... #endif or #ifndef AMIWIN ... #endif preprocessor
|
||||||
|
symbols. The code was ported on an Amiga 2000, with Fusion 40 accelerator
|
||||||
|
and a Picasso II graphics card. The SAS/C 6.56 compiler was used, with
|
||||||
|
the AmiWin 2.16 X development kit.
|
||||||
|
|
||||||
|
All compilations were done for a 68040 CPU with 68882 math coprocessor for
|
||||||
|
maximum speed. Please edit the smakefile for other compilers.
|
||||||
|
I wrote smakefiles for the directories I ported. I omitted the Windows
|
||||||
|
and Widgets directories. The former is for MS Windows and the latter
|
||||||
|
requires Motif, which is not easily available for the Amiga.
|
||||||
|
|
||||||
|
Here are the changes I did per directory:
|
||||||
|
|
||||||
|
* mesa
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added a mklib.amiwin shell script that will make all the libraries and
|
||||||
|
sample code for Mesa
|
||||||
|
- created this readme file: readme.AMIGA
|
||||||
|
|
||||||
|
* mesa/include
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- added the following to GL/xmesa.h
|
||||||
|
#ifdef AMIWIN
|
||||||
|
#include <pragmas/xlib_pragmas.h>
|
||||||
|
extern struct Library *XLibBase;
|
||||||
|
#endif
|
||||||
|
NET CHANGE: xmesa.h
|
||||||
|
|
||||||
|
* mesa/src
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, glx.c
|
||||||
|
This prevents undefined symbols errors during the linking phase for
|
||||||
|
X library calls
|
||||||
|
- created smakefile
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN includes from xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c,
|
||||||
|
glx.c since they are now defined in include/GL/xmesa.h
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/src-tk
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
private.h
|
||||||
|
- created smakefile
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN includes from private.h since it is now defined in
|
||||||
|
include/GL/xmesa.h
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/src-glu
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- created smakefile
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/src-aux
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
glaux.c
|
||||||
|
- created smakefile
|
||||||
|
NET CHANGE: glaux.c, smakefile
|
||||||
|
|
||||||
|
* mesa/demos
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
xdemo.c, glxdemo.c, offset.c
|
||||||
|
- created smakefile
|
||||||
|
- put #ifndef AMIWIN ... #endif around sleep() calls in xdemo.c since
|
||||||
|
they are not part of AmigaDOS.
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN defines from xdemo.c, glxdemo.c, offset.c since
|
||||||
|
already defined in include/GL/xmesa.h
|
||||||
|
- modified Smakefile to include header and includes from the AmiTCP4.0
|
||||||
|
net.lib linkable library to provide unix-compatible sys/time.h and
|
||||||
|
the sleep() function
|
||||||
|
- removed AMIWIN defines in xdemo.c since sleep() now defined
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/samples
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- added the necessary pragma calls for X functions to the following:
|
||||||
|
oglinfo.c
|
||||||
|
- created smakefile
|
||||||
|
- put #ifndef AMIWIN ... #endif around sleep() in blendxor.c
|
||||||
|
- removed olympic from smakefile targets since <sys/time.h> not defined
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- removed AMIWIN defines from oglinfo.c, since already defined in
|
||||||
|
include/GL/xmesa.h
|
||||||
|
- modified Smakefile to include header and includes from the AmiTCP4.0
|
||||||
|
net.lib linkable library to provide unix-compatible sys/time.h and
|
||||||
|
the sleep() function
|
||||||
|
- removed AMIWIN defines in blendxor.c for sleep()
|
||||||
|
- added AMIWIN defines around _MACHTEN_ in olympic.c since xrandom()
|
||||||
|
functions are not defined in any libraries
|
||||||
|
- added olympic back into the Smakefile targets
|
||||||
|
NET CHANGE: smakefile, olympic.c
|
||||||
|
|
||||||
|
* mesa/book
|
||||||
|
Nov. 25, 1995 v 1.2.4
|
||||||
|
- created smakefile
|
||||||
|
- removed accpersp and dof from smakefile targets since the SAS/C compile seems to
|
||||||
|
confuse the near,far variables with near/far memory models.
|
||||||
|
NET CHANGE: smakefile
|
||||||
|
|
||||||
|
* mesa/windows
|
||||||
|
Dec. 1, 1995 v 1.2.5
|
||||||
|
- Removed directory to save space since this is only needed for Windows based
|
||||||
|
machines.
|
||||||
114
docs/README.BEOS
Normal file
114
docs/README.BEOS
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
|
||||||
|
Mesa / BeOS Information
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Introduction
|
||||||
|
|
||||||
|
Mesa 4.1 features a driver for the BeOS. The driver implements
|
||||||
|
a clone of the BGLView class. This class, derived from BView, allows
|
||||||
|
OpenGL rendering into a BeOS window.
|
||||||
|
The 4.1 BeOS driver is an update of Brian Paul's BeOS driver released in Mesa 3.1.
|
||||||
|
|
||||||
|
Any application which uses the BGLView should be able to use Mesa
|
||||||
|
instead of Be's OpenGL without changing any code.
|
||||||
|
|
||||||
|
Since Be's OpenGL implementation (as of R5) is basically just the
|
||||||
|
SGI sample implementation, it's pretty slow. You'll see that Mesa
|
||||||
|
is considerably faster.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Source Code
|
||||||
|
|
||||||
|
The source code for the driver is in Mesa-4.1/src/BeOS/ directory.
|
||||||
|
It's not 100% finished at this time but many GLUT-based demos are
|
||||||
|
working. No optimizations have been made at this time.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Compiling
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
- gcc version 2.95.3 for BeOS
|
||||||
|
You can find it here: http://www.bebits.com/app/2157
|
||||||
|
|
||||||
|
Move to the Mesa-4.x src sub-directory and then type "make -f Makefile.BeOS-R5".
|
||||||
|
When it finishes the Mesa based libGL.so library for
|
||||||
|
BeOS will be in the Mesa-4.x/src/obj.{x86|ppc}/ directory.
|
||||||
|
|
||||||
|
To install it as Be's default libGL.so replacement, put it in your
|
||||||
|
/boot/home/config/lib/ directory. All your GL/GLUTapps will use
|
||||||
|
the Mesa based then.
|
||||||
|
|
||||||
|
By default, it build a non-debug version library.
|
||||||
|
The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
|
||||||
|
Sorry, Mesa don't have ppc (Altivec) optimizations yet.
|
||||||
|
|
||||||
|
|
||||||
|
* Example Programs
|
||||||
|
|
||||||
|
Look in the Mesa-4.x/BeOS/ directory for one or two BGLView demo
|
||||||
|
programs. They should have been compiled along with the Mesa
|
||||||
|
library.
|
||||||
|
|
||||||
|
|
||||||
|
* GLUT
|
||||||
|
|
||||||
|
A beta version of GLUT 3.7 port for BeOS can be found at
|
||||||
|
http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
|
||||||
|
|
||||||
|
There's is a 2.5 version in src-glut.beos/, too.
|
||||||
|
The original distribution can be obtained from
|
||||||
|
http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip
|
||||||
|
|
||||||
|
They are special version of GLUT adapted for the BeOS. I don't
|
||||||
|
believe Mark Kilgard's normal GLUT distribution includes BeOS
|
||||||
|
support.
|
||||||
|
|
||||||
|
|
||||||
|
* Special Features
|
||||||
|
|
||||||
|
Mesa's implementation of the BGLView class has an extra member
|
||||||
|
function: CopySubBufferMESA(). It basically works like SwapBuffers()
|
||||||
|
but it only copies a sub region from the back buffer to the front
|
||||||
|
buffer. This is a useful optimization for some applications.
|
||||||
|
If you use this method in your code be sure that you check at runtime
|
||||||
|
that you're actually using Mesa (with glGetString) so you don't
|
||||||
|
cause a fatal error when running with Be's OpenGL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Work Left To Do
|
||||||
|
|
||||||
|
BDirectWindow single buffering support is not implemented yet.
|
||||||
|
|
||||||
|
Color index mode is not implemented yet.
|
||||||
|
|
||||||
|
Reading pixels from the front buffer not implemented yet.
|
||||||
|
|
||||||
|
There is also a BGLScreen class in BeOS for full-screen OpenGL
|
||||||
|
rendering. This should also be implemented for Mesa.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* Old BeOS Driver
|
||||||
|
|
||||||
|
Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen
|
||||||
|
rendering interface, not BGLView. If you're interested in the older
|
||||||
|
driver you should get Mesa 2.6.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* BeOS and Glide
|
||||||
|
|
||||||
|
Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0
|
||||||
|
if interested. Ideally, the 3Dfx/Glide support should be updated to
|
||||||
|
work with the new Mesa 3.1 BGLView implementation.
|
||||||
|
|
||||||
|
The Glide library hasn't been updated for BeOS R4, to my knowledge, as
|
||||||
|
of February, 1999.
|
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------------------
|
||||||
|
$Id: README.BEOS,v 1.7 2002/09/19 16:19:44 brianp Exp $
|
||||||
124
docs/README.D3D
Normal file
124
docs/README.D3D
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
|
||||||
|
DirectX 6 Driver for Mesa 3.0
|
||||||
|
|
||||||
|
|
||||||
|
This software is distributed under the terms of the GNU Library
|
||||||
|
General Public License, see the LICENSE file for details.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
What do you need ?
|
||||||
|
------------------
|
||||||
|
|
||||||
|
- A PC with a DirectX 6 video driver installed.
|
||||||
|
|
||||||
|
- Mesa 3.0
|
||||||
|
|
||||||
|
- The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
|
||||||
|
The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not
|
||||||
|
compatible with the Glide 2.x so it doesn't work with the current
|
||||||
|
version of the driver;
|
||||||
|
|
||||||
|
- Visual C++ 5.0 is only compiler test but others should be ok with
|
||||||
|
changes to the makefiles (CFLAGS/LFLAGS).
|
||||||
|
|
||||||
|
- DirectX 6 SDK (was a MS download but not sure if still available).
|
||||||
|
|
||||||
|
- SoftIce or another debugger that will get DPF's is nice.
|
||||||
|
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
----------
|
||||||
|
Windows 95
|
||||||
|
Windows 98
|
||||||
|
Windows NT 5.0 (beta 2)
|
||||||
|
|
||||||
|
|
||||||
|
What is able to do ?
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
- the driver will try and use DirectX to rasterize the OpenGL primitives
|
||||||
|
that are sent to the driver. The driver will fall back to SW if the rendering
|
||||||
|
context is too big. The fallback to SW still uses DirectDraw. If the driver
|
||||||
|
fails to support and operation (accum, stencil, etc) then it will try and get
|
||||||
|
Mesa to render it in SW. DirectX 6 features that are unsupported by the
|
||||||
|
installed DirectX 6 driver will be mapped to some other best fit feature.
|
||||||
|
|
||||||
|
|
||||||
|
How to compile:
|
||||||
|
---------------
|
||||||
|
|
||||||
|
These instructions assume you have Visual C++ installed.
|
||||||
|
|
||||||
|
You might need to increase you enviroment space. You can do this by
|
||||||
|
adding the following statement to you config.sys.
|
||||||
|
|
||||||
|
shell=C:\COMMAND.COM C:\ /p /e:8198
|
||||||
|
|
||||||
|
Next setup you compiler enviroment by running vcvars32.bat in the Visual C++
|
||||||
|
'bin' directoy.
|
||||||
|
|
||||||
|
c:\DevStudio\VC\bin\vcvars32.bat
|
||||||
|
|
||||||
|
Modify the D3D makefile to point at your SDK install. Example has the SDK
|
||||||
|
installed on my 'f' drive in the root.
|
||||||
|
|
||||||
|
file: \Mesa-3.0\src\makefile.d3d
|
||||||
|
|
||||||
|
SDKROOT=f:\mssdk
|
||||||
|
|
||||||
|
Now you can simply make the project. If you look in the makefile you can see
|
||||||
|
I have some different targets like 'install'.
|
||||||
|
|
||||||
|
nmake /f makefile.d3d
|
||||||
|
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
----
|
||||||
|
|
||||||
|
1) I don't think the driver is using my DirectX driver.
|
||||||
|
|
||||||
|
This maybe true as the current version will only select the Primary D3D driver
|
||||||
|
installed. If you 3D card is the secondary (3dfx) then your out of luck for this
|
||||||
|
release.
|
||||||
|
|
||||||
|
2) The driver seems like its not HW accelerated.
|
||||||
|
|
||||||
|
If you have a video card with limited memory then you might want to try and
|
||||||
|
change your destop resolution to a low setting (640x480x16) so that the 3D part
|
||||||
|
of the card has more resources. Remeber the driver can't make the card better...
|
||||||
|
|
||||||
|
3) Nothing works.
|
||||||
|
|
||||||
|
Make sure you have a DirectX '6' driver installed. Check you driver docs for this
|
||||||
|
info or use the SDK info utilities.
|
||||||
|
The final 'dll' is named opengl32.dll and is either in the same directory as the
|
||||||
|
OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32).
|
||||||
|
Check your destop resolution. Most DirectX 6 drivers will only support 16bit and
|
||||||
|
32bit color depth. To find out for sure you can check the DirectX Info Viewer in
|
||||||
|
the SDK.
|
||||||
|
|
||||||
|
|
||||||
|
4) Rendering doesn't look right.
|
||||||
|
|
||||||
|
Sometimes this is because the card doesn't support a feature that that is required.
|
||||||
|
This is usually due to unsupported alpha functions (test/blend) or texture mapping.
|
||||||
|
Some cards suffer from too small of an alpha channel. The driver does its best to
|
||||||
|
fallback on unsupported features. This is not to say the driver may not have a bug(s).
|
||||||
|
|
||||||
|
5) Textures look bad.
|
||||||
|
|
||||||
|
No mipmapping in this release.
|
||||||
|
|
||||||
|
|
||||||
|
Thanks to:
|
||||||
|
----------
|
||||||
|
|
||||||
|
Brian Paul
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Leigh McRae (leigh@altsoftware.com)
|
||||||
|
February 9, 1999
|
||||||
|
|
||||||
226
docs/README.DJ
Normal file
226
docs/README.DJ
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
Mesa 5.1 DOS/DJGPP Port v1.4
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Description:
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Well, guess what... this is the DOS port of Mesa 5.1, for DJGPP fans... Whoa!
|
||||||
|
The driver has its origins in ddsample.c, written by Brian Paul and found by me
|
||||||
|
in Mesa 3.4.2.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Legal:
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
Mesa copyright applies, provided this package is used within Mesa. For anything
|
||||||
|
else, see GPL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Unzip and type:
|
||||||
|
|
||||||
|
make -f Makefile.DJ [OPTIONS...]
|
||||||
|
|
||||||
|
Available options:
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
CPU optimize for the given processor.
|
||||||
|
default = pentium
|
||||||
|
GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++)
|
||||||
|
or `mesa'.
|
||||||
|
default = mesa
|
||||||
|
GLIDE path to Glide3 SDK; used with FX.
|
||||||
|
default = $(TOP)/glide3
|
||||||
|
FX=1 build for 3dfx Glide3. Note that this disables
|
||||||
|
compilation of most DMesa code and requires fxMesa.
|
||||||
|
As a consequence, you'll need the DJGPP Glide3
|
||||||
|
library to build any application.
|
||||||
|
default = no
|
||||||
|
MATROX=1 build for Matrox Millennium I (MGA2064W) cards.
|
||||||
|
This is experimental and not intensively tested.
|
||||||
|
default = no
|
||||||
|
HAVE_X86=1 optimize for i386.
|
||||||
|
default = no
|
||||||
|
HAVE_MMX=1 allow MMX specializations, provided your assembler
|
||||||
|
supports MMX instruction set. However, the true CPU
|
||||||
|
capabilities are checked at run-time to avoid lockups.
|
||||||
|
default = no
|
||||||
|
HAVE_SSE=1 (see HAVE_MMX)
|
||||||
|
default = no
|
||||||
|
HAVE_3DNOW=1 (see HAVE_MMX)
|
||||||
|
default = no
|
||||||
|
|
||||||
|
Targets:
|
||||||
|
all: build everything
|
||||||
|
libgl: build GL
|
||||||
|
libglu: build GLU
|
||||||
|
libglut: build GLUT
|
||||||
|
clean: remove object files
|
||||||
|
realclean: remove all generated files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tested on:
|
||||||
|
CPU: AMD Athlon XP 1800+
|
||||||
|
Mainboard: EP-8KTA3 w/ 128 MB SDRAM
|
||||||
|
Video card: Voodoo5 5500 AGP w/ 64 MB SDRAM
|
||||||
|
DJGPP: djdev 2.04 + gcc v3.2.2 + make v3.80
|
||||||
|
OS: DOS and Win98SE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FAQ:
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
1. Compilation
|
||||||
|
|
||||||
|
Q) `make' barfs and exits because it cannot find some stupid file.
|
||||||
|
A) You need LFN support.
|
||||||
|
A) When compiling for Glide (FX=1), pay attention to Glide path.
|
||||||
|
|
||||||
|
Q) Libraries built OK, but linker complains about `vsnprintf' every time I
|
||||||
|
compile some demo.
|
||||||
|
A) Upgrade to DJGPP 2.04.
|
||||||
|
A) Add `vsnprintf.c' to the CORE_SOURCES in `src/Makefile.DJ' (untested!).
|
||||||
|
A) Patch `src/mesa/main/imports.c' with the following line:
|
||||||
|
#define vsnprintf(buf, max, fmt, arg) vsprintf(buf, fmt, arg)
|
||||||
|
This hack should be safe in 90% of the cases, but if anything goes wrong,
|
||||||
|
don't come back to me crying.
|
||||||
|
|
||||||
|
Q) `make' complains about DXE3 or something, yet it builds the libraries.
|
||||||
|
A) DXE3 refers to the DJGPP dynamic modules. You'll need either the latest
|
||||||
|
DJGPP distro, or download the separate package from my web page. Read the
|
||||||
|
DXE3 documentation on how to use them.
|
||||||
|
A) When compiling for Glide (FX=1), make sure `glide3x.dxe' can be found in
|
||||||
|
LD_LIBRARY_PATH (or top `lib' directory).
|
||||||
|
|
||||||
|
2. Using Mesa for DJGPP
|
||||||
|
|
||||||
|
Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much better...
|
||||||
|
A) Is that a question? If you have a 3dfx Voodoo Banshee or higher card,
|
||||||
|
you're lucky (check http://sourceforge.net/projects/glide for the DJGPP
|
||||||
|
port). If you have a Matrox Millennium I card, you just MIGHT be lucky...
|
||||||
|
If you haven't, sorry; everything is done in software. Suggestions?
|
||||||
|
|
||||||
|
Q) I tried to set refresh rate w/ DMesa, but without success.
|
||||||
|
A) Refresh rate control works only for VESA 3.0. If you were compiling for
|
||||||
|
Glide, see Glide info. If not, sorry!
|
||||||
|
|
||||||
|
Q) I made a simple application and it does nothing. It exits right away. Not
|
||||||
|
even a blank screen.
|
||||||
|
A) The pure software drivers (VESA/VGA) support only double-buffered modes.
|
||||||
|
A) Another weird "feature" is that buffer width must be multiple of 8 (I'm a
|
||||||
|
lazy programmer and I found that the easiest way to keep buffer handling
|
||||||
|
at peak performance ;-).
|
||||||
|
|
||||||
|
Q) The GLUT is incomplete.
|
||||||
|
A) See below.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
libGLUT (the toolkit):
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Well, this "skeletal" GLUT implementation was taken from AllegGL project and
|
||||||
|
heavily changed. Thanks should go to Bernhard Tschirren, Mark Kilgard, Brian
|
||||||
|
Paul and probably others (or probably not ;-). GLUT functionality will be
|
||||||
|
extended only on an "as needed" basis.
|
||||||
|
|
||||||
|
GLUT talks to hardware via PC_HW package which was put together from various
|
||||||
|
pieces I wrote long time ago. It consists from the keyboard, mouse and timer
|
||||||
|
drivers.
|
||||||
|
|
||||||
|
My keyboard driver used only scancodes; as GLUT requires ASCII values for keys,
|
||||||
|
I borrowed the translation tables (and maybe more) from Allegro -- many thanks
|
||||||
|
to Shawn Hargreaves et co. Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users)
|
||||||
|
will shut down the GLUT engine unconditionally: it will raise SIGINT, which in
|
||||||
|
turn will (hopefully) call the destructors, thus cleaning up your/my mess ;-)
|
||||||
|
NB: since the DJGPP guys ensured signal handlers won't go beyond program's
|
||||||
|
space (and since dynamic modules shall) the SIGINT can't be hooked (well, it
|
||||||
|
can, but it is useless), therefore you must live with the 'Exiting due to
|
||||||
|
signal SIGINT' message...
|
||||||
|
|
||||||
|
The mouse driver is far from complete (lack of drawing, etc), but is enough to
|
||||||
|
make almost all the demos work. Supports the CuteMouse WheelAPI.
|
||||||
|
|
||||||
|
The timer is pretty versatile for it supports multiple timers with different
|
||||||
|
frequencies. While not being the most accurate timer in the known universe, I
|
||||||
|
think it's OK. Take this example: you have timer A with a very high rate, and
|
||||||
|
then you have timer B with very low rate compared to A; now, A ticks OK, but
|
||||||
|
timer B will probably loose precision!
|
||||||
|
|
||||||
|
As an addition, stdout and stderr are redirected and dumped upon exit. This
|
||||||
|
means that `printf' can be safely called during graphics. A bit of a hack, I
|
||||||
|
know, because all messages come in bulk, but I think it's better than nothing.
|
||||||
|
"Borrowed" from LIBRHUTI (Robert Hoehne).
|
||||||
|
|
||||||
|
Window creating defaults: (0, 0, 300, 300), 16bpp. However, the video mode is
|
||||||
|
chosen in such a way that first window will fit. If you need high resolution
|
||||||
|
with small windows, set initial position far to the right (or way down); then
|
||||||
|
you can move them back to any position right before the main loop.
|
||||||
|
|
||||||
|
The following environment variables can customize GLUT behaviour:
|
||||||
|
GLUT_FPS - print frames/second statistics to stderr
|
||||||
|
DMESA_GLUT_REFRESH - set vertical screen refresh rate (VESA3)
|
||||||
|
DMESA_GLUT_BPP - set default bits per pixel (VGA needs 8)
|
||||||
|
DMESA_GLUT_ALPHA - set default alpha bits (8)
|
||||||
|
DMESA_GLUT_DEPTH - set default depth bits (16)
|
||||||
|
DMESA_GLUT_STENCIL - set default stencil bits (8)
|
||||||
|
DMESA_GLUT_ACCUM - set default accum bits (16)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
History:
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
v1.0 (mar-2002)
|
||||||
|
initial release
|
||||||
|
|
||||||
|
v1.1 (sep-2002)
|
||||||
|
+ added 3dfx Glide3 support
|
||||||
|
+ added refresh rate control
|
||||||
|
+ added fonts in GLUT
|
||||||
|
* lots of minor changes
|
||||||
|
|
||||||
|
v1.2 (nov-2002)
|
||||||
|
* synced w/ Mesa-4.1
|
||||||
|
- removed dmesadxe.h
|
||||||
|
|
||||||
|
v1.3 (mar-2003)
|
||||||
|
+ enabled OpenGL 1.4 support
|
||||||
|
+ added MMX clear/blit routines
|
||||||
|
+ enabled SGI's GLU compilation
|
||||||
|
+ added samples makefile
|
||||||
|
+ added new GLUT functions
|
||||||
|
+ added color-index modes
|
||||||
|
+ added Matrox Millennium MGA2064W driver
|
||||||
|
+ added 8bit FakeColor (thanks to Neil Funk)
|
||||||
|
+ added VGA support (to keep Ben Decker happy)
|
||||||
|
! fixed some compilation errors (reported by Chan Kar Heng)
|
||||||
|
* optimized driver for faster callback access... yeah, right :)
|
||||||
|
* overhauled virtual buffer and internal video drivers
|
||||||
|
* better fxMesa integration
|
||||||
|
* revamped GLUT
|
||||||
|
* switched to DXE3
|
||||||
|
|
||||||
|
v1.4 (oct-2003)
|
||||||
|
+ enabled GLUT fonts with DXE
|
||||||
|
+ truly added multi-window support in GLUT (for Adrian Woodward)
|
||||||
|
* accomodated makefiles with the new sourcetree
|
||||||
|
* fixed some ALPHA issues
|
||||||
|
x hacked and slashed the 3dfx driver (w/ help from Hiroshi Morii)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Contact:
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
Name: Borca Daniel
|
||||||
|
E-mail: dborca@users.sourceforge.net
|
||||||
|
WWW: http://www.geocities.com/dborca/
|
||||||
26
docs/README.GGI
Normal file
26
docs/README.GGI
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
GGIMesa for LibGGI 2.x
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
-------------
|
||||||
|
LibGGI 2.0 or greater
|
||||||
|
|
||||||
|
Installation:
|
||||||
|
-------------
|
||||||
|
To install GGIMesa, follow the instructions in INSTALL.GNU. If you
|
||||||
|
wish to install GGIGLUT as well, first install GGIMesa and then run
|
||||||
|
|
||||||
|
make
|
||||||
|
make install (must be root)
|
||||||
|
|
||||||
|
in ggi/ggiglut.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
------
|
||||||
|
|
||||||
|
* Set the environment variables GGIMESA_DEBUG and/or GGIGLUT_DEBUG
|
||||||
|
to 255 to see lots of debugging output.
|
||||||
|
|
||||||
|
* GGIGLUT contains support for all of the GLUT 3.6 API except for the
|
||||||
|
high-level primitive drawing functions, but many of the functions (in
|
||||||
|
particular the menu drawing functions) are just stubs.
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user