Compare commits
94 Commits
chadv/revi
...
mesa-19.1.
Author | SHA1 | Date | |
---|---|---|---|
|
9d8f104f39 | ||
|
2a45ddd42d | ||
|
96fbd54398 | ||
|
60688cc393 | ||
|
38927a35a6 | ||
|
cf6472e780 | ||
|
5394f1578c | ||
|
51998d720b | ||
|
8773e20238 | ||
|
4524f09cc0 | ||
|
3fce389c8b | ||
|
a37f10af7b | ||
|
90d045f993 | ||
|
b2c5c16668 | ||
|
fecdcce09c | ||
|
a13bda4957 | ||
|
c2a945771c | ||
|
92f4a16af8 | ||
|
a19270007c | ||
|
4c7dfaba9c | ||
|
411114c45c | ||
|
dd9635c1d2 | ||
|
0dcba748f9 | ||
|
fe7c45b97e | ||
|
16eac8f754 | ||
|
4b3c805b88 | ||
|
87ac0bd86a | ||
|
74c5367612 | ||
|
95ffe6323e | ||
|
03fd344776 | ||
|
9037cf26bb | ||
|
b02c6e8ee7 | ||
|
e13c13f54c | ||
|
60d524fd39 | ||
|
ce2d68aace | ||
|
c1d83ae9fb | ||
|
1dd62eb6e2 | ||
|
ab75e1e289 | ||
|
2153c3ae8e | ||
|
04e9d7bf8f | ||
|
857210b0dd | ||
|
6bac1a041d | ||
|
2040f10cb0 | ||
|
260f517d54 | ||
|
b6778c9f52 | ||
|
5d05324e65 | ||
|
8dbdeb27f3 | ||
|
dab3945ff3 | ||
|
d08fde8e7a | ||
|
f69eb770cd | ||
|
5bed00cf0f | ||
|
b551be82a7 | ||
|
7fa89fd959 | ||
|
5fcfcdb162 | ||
|
d70d8b2ffa | ||
|
558a067d17 | ||
|
51354d2bf5 | ||
|
06bf5428cf | ||
|
75ea0eeed1 | ||
|
8cf49e1662 | ||
|
c03d9a7fa9 | ||
|
9b51dcf1e2 | ||
|
914ac06e32 | ||
|
e2654c2379 | ||
|
bb845df961 | ||
|
f7c0ca6d38 | ||
|
38fdfdaff1 | ||
|
87722e0c42 | ||
|
f0e147bd47 | ||
|
1fc65774e9 | ||
|
349153f097 | ||
|
f8ec40e28b | ||
|
5e75803339 | ||
|
f1ab22209e | ||
|
e0c082d6eb | ||
|
a97f44ac1f | ||
|
5d7d13d227 | ||
|
4a7b0cc5e4 | ||
|
d95797de61 | ||
|
424b60dc70 | ||
|
9d610c1cc3 | ||
|
f770e81ba7 | ||
|
faa7daa55e | ||
|
fd27561c9d | ||
|
5d72a334e8 | ||
|
825ca9e42e | ||
|
67f2be0fbf | ||
|
05faf6eb56 | ||
|
3495bdca13 | ||
|
f93e1f92c4 | ||
|
8c0b80e08a | ||
|
070d763d5d | ||
|
ed0d4eaa4c | ||
|
6e52daa18c |
@@ -35,6 +35,6 @@ indent_size = 2
|
|||||||
[*.patch]
|
[*.patch]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[{meson.build,meson_options.txt}]
|
[meson.build,meson_options.txt]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,2 @@
|
|||||||
*.pyc
|
*.pyc
|
||||||
*.pyo
|
*.pyo
|
||||||
*.out
|
|
||||||
build
|
|
||||||
|
180
.gitlab-ci.yml
180
.gitlab-ci.yml
@@ -12,9 +12,12 @@
|
|||||||
# main repository, it's recommended to remove the image from the source
|
# 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 container registry, so that the image from the main
|
||||||
# repository's registry will be used there as well.
|
# repository's registry will be used there as well.
|
||||||
|
#
|
||||||
|
# The format of the tag is "%Y-%m-%d-${counter}" where ${counter} stays
|
||||||
|
# at "01" unless you have multiple updates on the same day :)
|
||||||
variables:
|
variables:
|
||||||
UPSTREAM_REPO: mesa/mesa
|
UPSTREAM_REPO: mesa/mesa
|
||||||
DEBIAN_TAG: "2019-07-11"
|
DEBIAN_TAG: "2019-05-01"
|
||||||
DEBIAN_VERSION: stretch-slim
|
DEBIAN_VERSION: stretch-slim
|
||||||
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
|
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
|
||||||
|
|
||||||
@@ -79,7 +82,31 @@ debian:
|
|||||||
.meson-build:
|
.meson-build:
|
||||||
extends: .build
|
extends: .build
|
||||||
script:
|
script:
|
||||||
- .gitlab-ci/meson-build.sh
|
# We need to control the version of llvm-config we're using, so we'll
|
||||||
|
# generate a native file to do so. This requires meson >=0.49
|
||||||
|
- if test -n "$LLVM_VERSION"; then
|
||||||
|
LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
|
||||||
|
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file;
|
||||||
|
$LLVM_CONFIG --version;
|
||||||
|
else
|
||||||
|
touch native.file;
|
||||||
|
fi
|
||||||
|
- meson --version
|
||||||
|
- meson _build
|
||||||
|
--native-file=native.file
|
||||||
|
-D buildtype=debug
|
||||||
|
-D build-tests=true
|
||||||
|
-D libunwind=${UNWIND}
|
||||||
|
${DRI_LOADERS}
|
||||||
|
-D dri-drivers=${DRI_DRIVERS:-[]}
|
||||||
|
${GALLIUM_ST}
|
||||||
|
-D gallium-drivers=${GALLIUM_DRIVERS:-[]}
|
||||||
|
-D vulkan-drivers=${VULKAN_DRIVERS:-[]}
|
||||||
|
-D I-love-half-baked-turnips=true
|
||||||
|
- cd _build
|
||||||
|
- meson configure
|
||||||
|
- ninja -j4
|
||||||
|
- LC_ALL=C.UTF-8 ninja test
|
||||||
|
|
||||||
.scons-build:
|
.scons-build:
|
||||||
extends: .build
|
extends: .build
|
||||||
@@ -137,18 +164,27 @@ meson-clang:
|
|||||||
# clang++ breaks if it picks up the GCC 8 directory without libstdc++.so
|
# clang++ breaks if it picks up the GCC 8 directory without libstdc++.so
|
||||||
- apt-get remove -y libgcc-8-dev
|
- apt-get remove -y libgcc-8-dev
|
||||||
|
|
||||||
scons-swr:
|
meson-vulkan:
|
||||||
extends: .scons-build
|
extends: .meson-build
|
||||||
variables:
|
variables:
|
||||||
SCONS_TARGET: "swr=1"
|
UNWIND: "false"
|
||||||
SCONS_CHECK_COMMAND: "true"
|
DRI_LOADERS: >
|
||||||
LLVM_VERSION: "6.0"
|
-D glx=disabled
|
||||||
|
-D gbm=false
|
||||||
scons-win64:
|
-D egl=false
|
||||||
extends: .scons-build
|
-D platforms=x11,wayland,drm
|
||||||
variables:
|
-D osmesa=none
|
||||||
SCONS_TARGET: platform=windows machine=x86_64
|
GALLIUM_ST: >
|
||||||
SCONS_CHECK_COMMAND: "true"
|
-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
|
||||||
|
VULKAN_DRIVERS: intel,amd,freedreno
|
||||||
|
LLVM_VERSION: "7"
|
||||||
|
|
||||||
meson-main:
|
meson-main:
|
||||||
extends: .meson-build
|
extends: .meson-build
|
||||||
@@ -173,10 +209,8 @@ meson-main:
|
|||||||
-D gallium-opencl=disabled
|
-D gallium-opencl=disabled
|
||||||
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,svga,v3d,vc4,virgl,etnaviv,panfrost,lima"
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,svga,v3d,vc4,virgl,etnaviv,panfrost,lima"
|
||||||
LLVM_VERSION: "7"
|
LLVM_VERSION: "7"
|
||||||
EXTRA_OPTION: >
|
|
||||||
-D tools=all
|
|
||||||
|
|
||||||
meson-clover:
|
meson-clover-llvm:
|
||||||
extends: .meson-build
|
extends: .meson-build
|
||||||
variables:
|
variables:
|
||||||
UNWIND: "true"
|
UNWIND: "true"
|
||||||
@@ -193,104 +227,13 @@ meson-clover:
|
|||||||
-D gallium-xa=false
|
-D gallium-xa=false
|
||||||
-D gallium-nine=false
|
-D gallium-nine=false
|
||||||
-D gallium-opencl=icd
|
-D gallium-opencl=icd
|
||||||
script:
|
GALLIUM_DRIVERS: "r600,radeonsi"
|
||||||
- export GALLIUM_DRIVERS="r600,radeonsi"
|
|
||||||
- .gitlab-ci/meson-build.sh
|
|
||||||
- LLVM_VERSION=7 .gitlab-ci/meson-build.sh
|
|
||||||
- export GALLIUM_DRIVERS="i915,r600"
|
|
||||||
- LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh
|
|
||||||
- LLVM_VERSION=4.0 .gitlab-ci/meson-build.sh
|
|
||||||
- LLVM_VERSION=5.0 .gitlab-ci/meson-build.sh
|
|
||||||
- LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh
|
|
||||||
|
|
||||||
meson-vulkan:
|
meson-clover-llvm39:
|
||||||
extends: .meson-build
|
extends: meson-clover-llvm
|
||||||
variables:
|
variables:
|
||||||
UNWIND: "false"
|
GALLIUM_DRIVERS: "i915,r600"
|
||||||
DRI_LOADERS: >
|
LLVM_VERSION: "3.9"
|
||||||
-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
|
|
||||||
VULKAN_DRIVERS: intel,amd,freedreno
|
|
||||||
LLVM_VERSION: "7"
|
|
||||||
EXTRA_OPTION: >
|
|
||||||
-D vulkan-overlay-layer=true
|
|
||||||
|
|
||||||
.meson-cross:
|
|
||||||
extends: .meson-build
|
|
||||||
variables:
|
|
||||||
UNWIND: "false"
|
|
||||||
DRI_LOADERS: >
|
|
||||||
-D glx=disabled
|
|
||||||
-D gbm=false
|
|
||||||
-D egl=false
|
|
||||||
-D platforms=surfaceless
|
|
||||||
-D osmesa=none
|
|
||||||
GALLIUM_ST: >
|
|
||||||
-D dri3=false
|
|
||||||
-D gallium-vdpau=false
|
|
||||||
-D gallium-xvmc=false
|
|
||||||
-D gallium-omx=disabled
|
|
||||||
-D gallium-va=false
|
|
||||||
-D gallium-xa=false
|
|
||||||
-D gallium-nine=false
|
|
||||||
-D llvm=false
|
|
||||||
CROSS: >
|
|
||||||
--libdir lib
|
|
||||||
--cross /tmp/cross_file.txt
|
|
||||||
|
|
||||||
script:
|
|
||||||
- /usr/share/meson/debcrossgen --arch ${ARCH} -o /tmp/cross_file.txt
|
|
||||||
# Work around a bug in debcrossgen that should be fixed in the next release
|
|
||||||
- sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" /tmp/cross_file.txt
|
|
||||||
- .gitlab-ci/meson-build.sh
|
|
||||||
|
|
||||||
meson-armhf:
|
|
||||||
extends: .meson-cross
|
|
||||||
variables:
|
|
||||||
ARCH: armhf
|
|
||||||
VULKAN_DRIVERS: freedreno
|
|
||||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
|
|
||||||
# Disable the tests since we're cross compiling.
|
|
||||||
EXTRA_OPTION: >
|
|
||||||
-D build-tests=false
|
|
||||||
-D I-love-half-baked-turnips=true
|
|
||||||
-D vulkan-overlay-layer=true
|
|
||||||
|
|
||||||
meson-arm64:
|
|
||||||
extends: .meson-cross
|
|
||||||
variables:
|
|
||||||
ARCH: arm64
|
|
||||||
VULKAN_DRIVERS: freedreno
|
|
||||||
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
|
|
||||||
# Disable the tests since we're cross compiling.
|
|
||||||
EXTRA_OPTION: >
|
|
||||||
-D build-tests=false
|
|
||||||
-D I-love-half-baked-turnips=true
|
|
||||||
-D vulkan-overlay-layer=true
|
|
||||||
|
|
||||||
meson-i386:
|
|
||||||
extends: .meson-cross
|
|
||||||
variables:
|
|
||||||
ARCH: i386
|
|
||||||
VULKAN_DRIVERS: intel
|
|
||||||
GALLIUM_DRIVERS: "swrast"
|
|
||||||
# Disable i386 tests, because u_format_tests gets precision
|
|
||||||
# failures in dxtn unpacking
|
|
||||||
EXTRA_OPTION: >
|
|
||||||
-D build-tests=false
|
|
||||||
-D vulkan-overlay-layer=true
|
|
||||||
|
|
||||||
scons-nollvm:
|
scons-nollvm:
|
||||||
extends: .scons-build
|
extends: .scons-build
|
||||||
@@ -306,3 +249,16 @@ scons-llvm:
|
|||||||
LLVM_VERSION: "3.4"
|
LLVM_VERSION: "3.4"
|
||||||
# LLVM 3.4 packages were built with an old libstdc++ ABI
|
# LLVM 3.4 packages were built with an old libstdc++ ABI
|
||||||
CXX: "g++ -D_GLIBCXX_USE_CXX11_ABI=0"
|
CXX: "g++ -D_GLIBCXX_USE_CXX11_ABI=0"
|
||||||
|
|
||||||
|
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"
|
||||||
|
@@ -5,17 +5,11 @@ set -o xtrace
|
|||||||
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
CROSS_ARCHITECTURES="armhf arm64 i386"
|
|
||||||
for arch in $CROSS_ARCHITECTURES; do
|
|
||||||
dpkg --add-architecture $arch
|
|
||||||
done
|
|
||||||
|
|
||||||
apt-get install -y \
|
apt-get install -y \
|
||||||
apt-transport-https \
|
apt-transport-https \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
wget \
|
wget \
|
||||||
unzip \
|
|
||||||
gnupg \
|
gnupg \
|
||||||
software-properties-common
|
software-properties-common
|
||||||
|
|
||||||
@@ -32,18 +26,12 @@ apt-get install -y -t stretch-backports \
|
|||||||
llvm-3.4-dev \
|
llvm-3.4-dev \
|
||||||
llvm-3.9-dev \
|
llvm-3.9-dev \
|
||||||
libclang-3.9-dev \
|
libclang-3.9-dev \
|
||||||
llvm-4.0-dev \
|
|
||||||
libclang-4.0-dev \
|
|
||||||
llvm-5.0-dev \
|
llvm-5.0-dev \
|
||||||
libclang-5.0-dev \
|
|
||||||
llvm-6.0-dev \
|
llvm-6.0-dev \
|
||||||
libclang-6.0-dev \
|
|
||||||
llvm-7-dev \
|
llvm-7-dev \
|
||||||
libclang-7-dev \
|
|
||||||
llvm-8-dev \
|
|
||||||
libclang-8-dev \
|
|
||||||
g++ \
|
g++ \
|
||||||
clang-8
|
clang-8 \
|
||||||
|
libclang-7-dev
|
||||||
|
|
||||||
# Install remaining packages from Debian buster to get newer versions
|
# Install remaining packages from Debian buster to get newer versions
|
||||||
add-apt-repository "deb https://deb.debian.org/debian/ buster main"
|
add-apt-repository "deb https://deb.debian.org/debian/ buster main"
|
||||||
@@ -80,31 +68,10 @@ apt-get install -y \
|
|||||||
gettext \
|
gettext \
|
||||||
make
|
make
|
||||||
|
|
||||||
# Cross-build Mesa deps
|
|
||||||
for arch in $CROSS_ARCHITECTURES; do
|
|
||||||
apt-get install -y \
|
|
||||||
libdrm-dev:${arch} \
|
|
||||||
libexpat1-dev:${arch} \
|
|
||||||
libelf-dev:${arch}
|
|
||||||
done
|
|
||||||
apt-get install -y \
|
|
||||||
dpkg-dev \
|
|
||||||
gcc-aarch64-linux-gnu \
|
|
||||||
g++-aarch64-linux-gnu \
|
|
||||||
gcc-arm-linux-gnueabihf \
|
|
||||||
g++-arm-linux-gnueabihf \
|
|
||||||
gcc-i686-linux-gnu \
|
|
||||||
g++-i686-linux-gnu
|
|
||||||
|
|
||||||
# for 64bit windows cross-builds
|
# for 64bit windows cross-builds
|
||||||
apt-get install -y mingw-w64
|
apt-get install -y \
|
||||||
|
wine64 \
|
||||||
# for the vulkan overlay layer
|
mingw-w64
|
||||||
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
|
# dependencies where we want a specific version
|
||||||
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||||
@@ -115,7 +82,7 @@ export XORGMACROS_VERSION=util-macros-1.19.0
|
|||||||
export GLPROTO_VERSION=glproto-1.4.17
|
export GLPROTO_VERSION=glproto-1.4.17
|
||||||
export DRI2PROTO_VERSION=dri2proto-2.8
|
export DRI2PROTO_VERSION=dri2proto-2.8
|
||||||
export LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
export LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
||||||
export LIBDRM_VERSION=libdrm-2.4.99
|
export LIBDRM_VERSION=libdrm-2.4.97
|
||||||
export XCBPROTO_VERSION=xcb-proto-1.13
|
export XCBPROTO_VERSION=xcb-proto-1.13
|
||||||
export RANDRPROTO_VERSION=randrproto-1.3.0
|
export RANDRPROTO_VERSION=randrproto-1.3.0
|
||||||
export LIBXRANDR_VERSION=libXrandr-1.3.0
|
export LIBXRANDR_VERSION=libXrandr-1.3.0
|
||||||
@@ -206,8 +173,8 @@ apt-get install -y libxml2-utils
|
|||||||
apt-get purge -y \
|
apt-get purge -y \
|
||||||
automake \
|
automake \
|
||||||
libtool \
|
libtool \
|
||||||
|
make \
|
||||||
curl \
|
curl \
|
||||||
unzip \
|
|
||||||
wget \
|
wget \
|
||||||
gnupg \
|
gnupg \
|
||||||
software-properties-common
|
software-properties-common
|
||||||
|
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
set -o xtrace
|
|
||||||
|
|
||||||
# We need to control the version of llvm-config we're using, so we'll
|
|
||||||
# generate a native file to do so. This requires meson >=0.49
|
|
||||||
if test -n "$LLVM_VERSION"; then
|
|
||||||
LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
|
||||||
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
|
|
||||||
$LLVM_CONFIG --version
|
|
||||||
else
|
|
||||||
rm -f native.file
|
|
||||||
touch native.file
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf _build
|
|
||||||
meson _build --native-file=native.file \
|
|
||||||
${CROSS} \
|
|
||||||
-D buildtype=debug \
|
|
||||||
-D build-tests=true \
|
|
||||||
-D libunwind=${UNWIND} \
|
|
||||||
${DRI_LOADERS} \
|
|
||||||
-D dri-drivers=${DRI_DRIVERS:-[]} \
|
|
||||||
${GALLIUM_ST} \
|
|
||||||
-D gallium-drivers=${GALLIUM_DRIVERS:-[]} \
|
|
||||||
-D vulkan-drivers=${VULKAN_DRIVERS:-[]} \
|
|
||||||
-D I-love-half-baked-turnips=true \
|
|
||||||
${EXTRA_OPTION}
|
|
||||||
cd _build
|
|
||||||
meson configure
|
|
||||||
ninja -j4
|
|
||||||
LC_ALL=C.UTF-8 ninja test
|
|
||||||
DESTDIR=$PWD/../install ninja install
|
|
@@ -98,14 +98,12 @@ ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),)
|
|||||||
LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
|
LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Android's libc began supporting shm in Oreo
|
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
||||||
ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
|
|
||||||
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
ifeq ($(TARGET_ARCH),x86)
|
||||||
LOCAL_CFLAGS += \
|
LOCAL_CFLAGS += \
|
||||||
-DUSE_X86_ASM
|
-DUSE_X86_ASM
|
||||||
|
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
||||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
||||||
|
@@ -83,6 +83,13 @@ endif
|
|||||||
|
|
||||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
$(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)),)
|
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
|
||||||
MESA_ENABLE_LLVM := true
|
MESA_ENABLE_LLVM := true
|
||||||
endif
|
endif
|
||||||
|
@@ -19,4 +19,3 @@
|
|||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
git_sha1_gen_py = files('git_sha1_gen.py')
|
git_sha1_gen_py = files('git_sha1_gen.py')
|
||||||
symbols_check = find_program('symbols-check.py')
|
|
||||||
|
@@ -1,115 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import subprocess
|
|
||||||
import os
|
|
||||||
|
|
||||||
# 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 = []
|
|
||||||
output = subprocess.check_output([nm, '--format=bsd', '-D', '--defined-only', lib],
|
|
||||||
stderr=open(os.devnull, 'w')).decode("ascii")
|
|
||||||
for line in output.splitlines():
|
|
||||||
(_, _, symbol_name) = line.split()
|
|
||||||
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()
|
|
||||||
|
|
||||||
lib_symbols = get_symbols(args.nm, args.lib)
|
|
||||||
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 in PLATFORM_SYMBOLS:
|
|
||||||
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()
|
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -48,16 +48,16 @@ start-up because of an extension string buffer-overflow problem.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
The problem is a modern OpenGL driver will return a very long string
|
The problem is a modern OpenGL driver will return a very long string
|
||||||
for the <code>glGetString(GL_EXTENSIONS)</code> query and if the application
|
for the glGetString(GL_EXTENSIONS) query and if the application
|
||||||
naively copies the string into a fixed-size buffer it can overflow the
|
naively copies the string into a fixed-size buffer it can overflow the
|
||||||
buffer and crash the application.
|
buffer and crash the application.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The work-around is to set the <code>MESA_EXTENSION_MAX_YEAR</code>
|
The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable
|
||||||
environment variable to the approximate release year of the game.
|
to the approximate release year of the game.
|
||||||
This will cause the <code>glGetString(GL_EXTENSIONS)</code> query to only report
|
This will cause the glGetString(GL_EXTENSIONS) query to only report extensions
|
||||||
extensions older than the given year.
|
older than the given year.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@@ -2,19 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Report a Bug</title>
|
<title>Mesa Bug Reporting</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Report a Bug</h1>
|
<h1>Report a bug</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Mesa bug database is hosted on
|
The Mesa bug database is hosted on
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -48,19 +48,19 @@ For example:
|
|||||||
}
|
}
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<li>Put a space before/after operators. For example, <code>a = b + c;</code>
|
<li>Put a space before/after operators. For example, <tt>a = b + c;</tt>
|
||||||
and not <code>a=b+c;</code>
|
and not <tt>a=b+c;</tt>
|
||||||
|
|
||||||
<li>This GNU indent command generally does the right thing for formatting:
|
<li>This GNU indent command generally does the right thing for formatting:
|
||||||
<pre>
|
<pre>
|
||||||
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<li>
|
<li>Use comments wherever you think it would be helpful for other developers.
|
||||||
<p>Use comments wherever you think it would be helpful for other developers.
|
|
||||||
Several specific cases and style examples follow. Note that we roughly
|
Several specific cases and style examples follow. Note that we roughly
|
||||||
follow <a href="http://www.doxygen.nl">Doxygen</a> conventions.
|
follow <a href="https://www.stack.nl/~dimitri/doxygen/">Doxygen</a> conventions.
|
||||||
</p>
|
<br>
|
||||||
|
<br>
|
||||||
Single-line comments:
|
Single-line comments:
|
||||||
<pre>
|
<pre>
|
||||||
/* null-out pointer to prevent dangling reference below */
|
/* null-out pointer to prevent dangling reference below */
|
||||||
@@ -120,21 +120,19 @@ the opening brace goes on the next line by itself (see above.)
|
|||||||
_mesa_foo_bar() - an internal non-static Mesa function
|
_mesa_foo_bar() - an internal non-static Mesa function
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<li>Constants, macros and enum names are <code>ALL_UPPERCASE</code>, with _
|
<li>Constants, macros and enum names are ALL_UPPERCASE, with _ between
|
||||||
between words.
|
words.
|
||||||
<li>Mesa usually uses camel case for local variables (Ex:
|
<li>Mesa usually uses camel case for local variables (Ex: "localVarname")
|
||||||
<code>localVarname</code>) while gallium typically uses underscores (Ex:
|
while gallium typically uses underscores (Ex: "local_var_name").
|
||||||
<code>local_var_name</code>).
|
|
||||||
<li>Global variables are almost never used because Mesa should be thread-safe.
|
<li>Global variables are almost never used because Mesa should be thread-safe.
|
||||||
|
|
||||||
<li>Booleans. Places that are not directly visible to the GL API
|
<li>Booleans. Places that are not directly visible to the GL API
|
||||||
should prefer the use of <code>bool</code>, <code>true</code>, and
|
should prefer the use of <tt>bool</tt>, <tt>true</tt>, and
|
||||||
<code>false</code> over <code>GLboolean</code>, <code>GL_TRUE</code>, and
|
<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
|
||||||
<code>GL_FALSE</code>. In C code, this may mean that
|
<tt>GL_FALSE</tt>. In C code, this may mean that
|
||||||
<code>#include <stdbool.h></code> needs to be added. The
|
<tt>#include <stdbool.h></tt> needs to be added. The
|
||||||
<code>try_emit_*</code> methods in <code>src/mesa/program/ir_to_mesa.cpp</code>
|
<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
|
||||||
and <code>src/mesa/state_tracker/st_glsl_to_tgsi.cpp</code> can serve as
|
src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as examples.
|
||||||
examples.
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@@ -2,19 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Conformance Testing</title>
|
<title>Conformance</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Conformance Testing</h1>
|
<h1>Conformance</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The SGI OpenGL conformance tests verify correct operation of OpenGL
|
The SGI OpenGL conformance tests verify correct operation of OpenGL
|
||||||
|
@@ -33,17 +33,18 @@
|
|||||||
<li><a href="index.html" target="_parent">News</a>
|
<li><a href="index.html" target="_parent">News</a>
|
||||||
<li><a href="developers.html" target="_parent">Developers</a>
|
<li><a href="developers.html" target="_parent">Developers</a>
|
||||||
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
|
<li><a href="systems.html" target="_parent">Platforms and Drivers</a>
|
||||||
<li><a href="license.html" target="_parent">License and Copyright</a>
|
<li><a href="license.html" target="_parent">License & Copyright</a>
|
||||||
<li><a href="faq.html" target="_parent">Frequently Asked Questions</a>
|
<li><a href="faq.html" target="_parent">FAQ</a>
|
||||||
<li><a href="relnotes.html" target="_parent">Release Notes</a>
|
<li><a href="relnotes.html" target="_parent">Release Notes</a>
|
||||||
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
|
<li><a href="thanks.html" target="_parent">Acknowledgements</a>
|
||||||
<li><a href="conform.html" target="_parent">Conformance Testing</a>
|
<li><a href="conform.html" target="_parent">Conformance Testing</a>
|
||||||
|
<li>more docs below...
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Download and Install</h2>
|
<h2>Download / Install</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="download.html" target="_parent">Downloading and Unpacking</a>
|
<li><a href="download.html" target="_parent">Downloading / Unpacking</a>
|
||||||
<li><a href="install.html" target="_parent">Compiling and Installing</a>
|
<li><a href="install.html" target="_parent">Compiling / Installing</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="meson.html" target="_parent">Meson</a></li>
|
<li><a href="meson.html" target="_parent">Meson</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -65,13 +66,13 @@
|
|||||||
<li><a href="egl.html" target="_parent">EGL</a>
|
<li><a href="egl.html" target="_parent">EGL</a>
|
||||||
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
|
<li><a href="opengles.html" target="_parent">OpenGL ES</a>
|
||||||
<li><a href="envvars.html" target="_parent">Environment Variables</a>
|
<li><a href="envvars.html" target="_parent">Environment Variables</a>
|
||||||
<li><a href="osmesa.html" target="_parent">Off-screen Rendering</a>
|
<li><a href="osmesa.html" target="_parent">Off-Screen Rendering</a>
|
||||||
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
|
<li><a href="debugging.html" target="_parent">Debugging Tips</a>
|
||||||
<li><a href="perf.html" target="_parent">Performance Tips</a>
|
<li><a href="perf.html" target="_parent">Performance Tips</a>
|
||||||
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
|
<li><a href="extensions.html" target="_parent">Mesa Extensions</a>
|
||||||
<li><a href="llvmpipe.html" target="_parent">Gallium LLVMpipe Driver</a>
|
<li><a href="llvmpipe.html" target="_parent">Gallium llvmpipe driver</a>
|
||||||
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D Guest Driver</a>
|
<li><a href="vmware-guest.html" target="_parent">VMware SVGA3D guest driver</a>
|
||||||
<li><a href="postprocess.html" target="_parent">Gallium Post-processing</a>
|
<li><a href="postprocess.html" target="_parent">Gallium post-processing</a>
|
||||||
<li><a href="application-issues.html" target="_parent">Application Issues</a>
|
<li><a href="application-issues.html" target="_parent">Application Issues</a>
|
||||||
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
|
<li><a href="viewperf.html" target="_parent">Viewperf Issues</a>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -84,24 +85,24 @@
|
|||||||
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
|
<li><a href="helpwanted.html" target="_parent">Help Wanted</a>
|
||||||
<li><a href="devinfo.html" target="_parent">Development Notes</a>
|
<li><a href="devinfo.html" target="_parent">Development Notes</a>
|
||||||
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
|
<li><a href="codingstyle.html" target="_parent">Coding Style</a>
|
||||||
<li><a href="submittingpatches.html" target="_parent">Submitting Patches</a>
|
<li><a href="submittingpatches.html" target="_parent">Submitting patches</a>
|
||||||
<li><a href="releasing.html" target="_parent">Releasing Process</a>
|
<li><a href="releasing.html" target="_parent">Releasing process</a>
|
||||||
<li><a href="release-calendar.html" target="_parent">Release Calendar</a>
|
<li><a href="release-calendar.html" target="_parent">Release calendar</a>
|
||||||
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
|
<li><a href="sourcedocs.html" target="_parent">Source Documentation</a>
|
||||||
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
|
<li><a href="dispatch.html" target="_parent">GL Dispatch</a>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Links</h2>
|
<h2>Links</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://www.opengl.org" target="_parent">OpenGL Website</a>
|
<li><a href="https://www.opengl.org" target="_parent">OpenGL website</a>
|
||||||
<li><a href="https://dri.freedesktop.org" target="_parent">DRI Website</a>
|
<li><a href="https://dri.freedesktop.org" target="_parent">DRI website</a>
|
||||||
<li><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
<li><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
||||||
<li><a href="https://planet.freedesktop.org" target="_parent">Developer Blogs</a>
|
<li><a href="https://planet.freedesktop.org" target="_parent">Developer blogs</a>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>Hosted by:</h2>
|
<h2>Hosted by:</h2>
|
||||||
<dl>
|
<dl>
|
||||||
<dd><a href="https://www.freedesktop.org" target="_parent">freedesktop.org</a>
|
<dd><a href="https://freedesktop.org" target="_parent">freedesktop.org</a>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -20,9 +20,9 @@
|
|||||||
Normally Mesa (and OpenGL) records but does not notify the user of
|
Normally Mesa (and OpenGL) records but does not notify the user of
|
||||||
errors. It is up to the application to call
|
errors. It is up to the application to call
|
||||||
<code>glGetError</code> to check for errors. Mesa supports an
|
<code>glGetError</code> to check for errors. Mesa supports an
|
||||||
environment variable, <code>MESA_DEBUG</code>, to help with debugging. If
|
environment variable, MESA_DEBUG, to help with debugging. If
|
||||||
<code>MESA_DEBUG</code> is defined, a message will be printed to stdout
|
MESA_DEBUG is defined, a message will be printed to stdout whenever
|
||||||
whenever an error occurs.
|
an error occurs.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -30,12 +30,12 @@
|
|||||||
(<code>--buildtype debug</code> for meson, <code>build=debug</code> for scons).
|
(<code>--buildtype debug</code> for meson, <code>build=debug</code> for scons).
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
In your debugger you can set a breakpoint in <code>_mesa_error()</code> to trap
|
In your debugger you can set a breakpoint in _mesa_error() to trap Mesa
|
||||||
Mesa errors.
|
errors.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
There is a display list printing/debugging facility. See the end of
|
There is a display list printing/debugging facility. See the end of
|
||||||
<code>src/dlist.c</code> for details.
|
src/dlist.c for details.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -29,8 +29,8 @@ To add a new GL extension to Mesa you have to do at least the following.
|
|||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
If <code>glext.h</code> doesn't define the extension, edit
|
If glext.h doesn't define the extension, edit include/GL/gl.h and add
|
||||||
<code>include/GL/gl.h</code> and add code like this:
|
code like this:
|
||||||
<pre>
|
<pre>
|
||||||
#ifndef GL_EXT_the_extension_name
|
#ifndef GL_EXT_the_extension_name
|
||||||
#define GL_EXT_the_extension_name 1
|
#define GL_EXT_the_extension_name 1
|
||||||
@@ -41,18 +41,18 @@ To add a new GL extension to Mesa you have to do at least the following.
|
|||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
In the <code>src/mapi/glapi/gen/</code> directory, add the new extension
|
In the src/mapi/glapi/gen/ directory, add the new extension functions and
|
||||||
functions and enums to the <code>gl_API.xml</code> file.
|
enums to the gl_API.xml file.
|
||||||
Then, a bunch of source files must be regenerated by executing the
|
Then, a bunch of source files must be regenerated by executing the
|
||||||
corresponding Python scripts.
|
corresponding Python scripts.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Add a new entry to the <code>gl_extensions</code> struct in
|
Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
|
||||||
<code>mtypes.h</code> if the extension requires driver capabilities not
|
if the extension requires driver capabilities not already exposed by
|
||||||
already exposed by another extension.
|
another extension.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Add a new entry to the <code>src/mesa/main/extensions_table.h</code> file.
|
Add a new entry to the src/mesa/main/extensions_table.h file.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
From this point, the best way to proceed is to find another extension,
|
From this point, the best way to proceed is to find another extension,
|
||||||
@@ -60,20 +60,18 @@ To add a new GL extension to Mesa you have to do at least the following.
|
|||||||
as an example.
|
as an example.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
If the new extension adds new GL state, the functions in
|
If the new extension adds new GL state, the functions in get.c, enable.c
|
||||||
<code>get.c</code>, <code>enable.c</code> and <code>attrib.c</code>
|
and attrib.c will most likely require new code.
|
||||||
will most likely require new code.
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
To determine if the new extension is active in the current context,
|
To determine if the new extension is active in the current context,
|
||||||
use the auto-generated <code>_mesa_has_##name_str()</code> function
|
use the auto-generated _mesa_has_##name_str() function defined in
|
||||||
defined in <code>src/mesa/main/extensions.h</code>.
|
src/mesa/main/extensions.h.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
The dispatch tests <code>check_table.cpp</code> and
|
The dispatch tests check_table.cpp and dispatch_sanity.cpp
|
||||||
<code>dispatch_sanity.cpp</code> should be updated with details about
|
should be updated with details about the new extensions functions. These
|
||||||
the new extensions functions. These tests are run using
|
tests are run using 'meson test'
|
||||||
<code>meson test</code>.
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
@@ -2,19 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>GL Dispatch</title>
|
<title>GL Dispatch in Mesa</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>GL Dispatch</h1>
|
<h1>GL Dispatch in Mesa</h1>
|
||||||
|
|
||||||
<p>Several factors combine to make efficient dispatch of OpenGL functions
|
<p>Several factors combine to make efficient dispatch of OpenGL functions
|
||||||
fairly complicated. This document attempts to explain some of the issues
|
fairly complicated. This document attempts to explain some of the issues
|
||||||
@@ -30,28 +30,28 @@ of the GL related state for the application. Every texture, every buffer
|
|||||||
object, every enable, and much, much more is stored in the context. Since
|
object, every enable, and much, much more is stored in the context. Since
|
||||||
an application can have more than one context, the context to be used is
|
an application can have more than one context, the context to be used is
|
||||||
selected by a window-system dependent function such as
|
selected by a window-system dependent function such as
|
||||||
<code>glXMakeContextCurrent</code>.</p>
|
<tt>glXMakeContextCurrent</tt>.</p>
|
||||||
|
|
||||||
<p>In environments that implement OpenGL with X-Windows using GLX, every GL
|
<p>In environments that implement OpenGL with X-Windows using GLX, every GL
|
||||||
function, including the pointers returned by <code>glXGetProcAddress</code>, are
|
function, including the pointers returned by <tt>glXGetProcAddress</tt>, are
|
||||||
<em>context independent</em>. This means that no matter what context is
|
<em>context independent</em>. This means that no matter what context is
|
||||||
currently active, the same <code>glVertex3fv</code> function is used.</p>
|
currently active, the same <tt>glVertex3fv</tt> function is used.</p>
|
||||||
|
|
||||||
<p>This creates the first bit of dispatch complexity. An application can
|
<p>This creates the first bit of dispatch complexity. An application can
|
||||||
have two GL contexts. One context is a direct rendering context where
|
have two GL contexts. One context is a direct rendering context where
|
||||||
function calls are routed directly to a driver loaded within the
|
function calls are routed directly to a driver loaded within the
|
||||||
application's address space. The other context is an indirect rendering
|
application's address space. The other context is an indirect rendering
|
||||||
context where function calls are converted to GLX protocol and sent to a
|
context where function calls are converted to GLX protocol and sent to a
|
||||||
server. The same <code>glVertex3fv</code> has to do the right thing depending
|
server. The same <tt>glVertex3fv</tt> has to do the right thing depending
|
||||||
on which context is current.</p>
|
on which context is current.</p>
|
||||||
|
|
||||||
<p>Highly optimized drivers or GLX protocol implementations may want to
|
<p>Highly optimized drivers or GLX protocol implementations may want to
|
||||||
change the behavior of GL functions depending on current state. For
|
change the behavior of GL functions depending on current state. For
|
||||||
example, <code>glFogCoordf</code> may operate differently depending on whether
|
example, <tt>glFogCoordf</tt> may operate differently depending on whether
|
||||||
or not fog is enabled.</p>
|
or not fog is enabled.</p>
|
||||||
|
|
||||||
<p>In multi-threaded environments, it is possible for each thread to have a
|
<p>In multi-threaded environments, it is possible for each thread to have a
|
||||||
different GL context current. This means that poor old <code>glVertex3fv</code>
|
different GL context current. This means that poor old <tt>glVertex3fv</tt>
|
||||||
has to know which GL context is current in the thread where it is being
|
has to know which GL context is current in the thread where it is being
|
||||||
called.</p>
|
called.</p>
|
||||||
|
|
||||||
@@ -64,18 +64,18 @@ dispatch table stores pointers to functions that actually implement
|
|||||||
specific GL functions. Each time a new context is made current in a thread,
|
specific GL functions. Each time a new context is made current in a thread,
|
||||||
these pointers a updated.</p>
|
these pointers a updated.</p>
|
||||||
|
|
||||||
<p>The implementation of functions such as <code>glVertex3fv</code> becomes
|
<p>The implementation of functions such as <tt>glVertex3fv</tt> becomes
|
||||||
conceptually simple:</p>
|
conceptually simple:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Fetch the current dispatch table pointer.</li>
|
<li>Fetch the current dispatch table pointer.</li>
|
||||||
<li>Fetch the pointer to the real <code>glVertex3fv</code> function from the
|
<li>Fetch the pointer to the real <tt>glVertex3fv</tt> function from the
|
||||||
table.</li>
|
table.</li>
|
||||||
<li>Call the real function.</li>
|
<li>Call the real function.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>This can be implemented in just a few lines of C code. The file
|
<p>This can be implemented in just a few lines of C code. The file
|
||||||
<code>src/mesa/glapi/glapitemp.h</code> contains code very similar to this.</p>
|
<tt>src/mesa/glapi/glapitemp.h</tt> contains code very similar to this.</p>
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border="1">
|
<table border="1">
|
||||||
@@ -93,9 +93,9 @@ void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
|
|||||||
overhead that it adds to every GL function call.</p>
|
overhead that it adds to every GL function call.</p>
|
||||||
|
|
||||||
<p>In a multithreaded environment, a naive implementation of
|
<p>In a multithreaded environment, a naive implementation of
|
||||||
<code>GET_DISPATCH</code> involves a call to <code>pthread_getspecific</code> or a
|
<tt>GET_DISPATCH</tt> involves a call to <tt>pthread_getspecific</tt> or a
|
||||||
similar function. Mesa provides a wrapper function called
|
similar function. Mesa provides a wrapper function called
|
||||||
<code>_glapi_get_dispatch</code> that is used by default.</p>
|
<tt>_glapi_get_dispatch</tt> that is used by default.</p>
|
||||||
|
|
||||||
<h2>3. Optimizations</h2>
|
<h2>3. Optimizations</h2>
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ each can or cannot be used are listed.</p>
|
|||||||
<p>The vast majority of OpenGL applications use the API in a single threaded
|
<p>The vast majority of OpenGL applications use the API in a single threaded
|
||||||
manner. That is, the application has only one thread that makes calls into
|
manner. That is, the application has only one thread that makes calls into
|
||||||
the GL. In these cases, not only do the calls to
|
the GL. In these cases, not only do the calls to
|
||||||
<code>pthread_getspecific</code> hurt performance, but they are completely
|
<tt>pthread_getspecific</tt> hurt performance, but they are completely
|
||||||
unnecessary! It is possible to detect this common case and avoid these
|
unnecessary! It is possible to detect this common case and avoid these
|
||||||
calls.</p>
|
calls.</p>
|
||||||
|
|
||||||
@@ -118,15 +118,15 @@ of the executing thread. If the same thread ID is always seen, Mesa knows
|
|||||||
that the application is, from OpenGL's point of view, single threaded.</p>
|
that the application is, from OpenGL's point of view, single threaded.</p>
|
||||||
|
|
||||||
<p>As long as an application is single threaded, Mesa stores a pointer to
|
<p>As long as an application is single threaded, Mesa stores a pointer to
|
||||||
the dispatch table in a global variable called <code>_glapi_Dispatch</code>.
|
the dispatch table in a global variable called <tt>_glapi_Dispatch</tt>.
|
||||||
The pointer is also stored in a per-thread location via
|
The pointer is also stored in a per-thread location via
|
||||||
<code>pthread_setspecific</code>. When Mesa detects that an application has
|
<tt>pthread_setspecific</tt>. When Mesa detects that an application has
|
||||||
become multithreaded, <code>NULL</code> is stored in <code>_glapi_Dispatch</code>.</p>
|
become multithreaded, <tt>NULL</tt> is stored in <tt>_glapi_Dispatch</tt>.</p>
|
||||||
|
|
||||||
<p>Using this simple mechanism the dispatch functions can detect the
|
<p>Using this simple mechanism the dispatch functions can detect the
|
||||||
multithreaded case by comparing <code>_glapi_Dispatch</code> to <code>NULL</code>.
|
multithreaded case by comparing <tt>_glapi_Dispatch</tt> to <tt>NULL</tt>.
|
||||||
The resulting implementation of <code>GET_DISPATCH</code> is slightly more
|
The resulting implementation of <tt>GET_DISPATCH</tt> is slightly more
|
||||||
complex, but it avoids the expensive <code>pthread_getspecific</code> call in
|
complex, but it avoids the expensive <tt>pthread_getspecific</tt> call in
|
||||||
the common case.</p>
|
the common case.</p>
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
@@ -136,7 +136,7 @@ the common case.</p>
|
|||||||
(_glapi_Dispatch != NULL) \
|
(_glapi_Dispatch != NULL) \
|
||||||
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
|
? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
|
||||||
</pre></td></tr>
|
</pre></td></tr>
|
||||||
<tr><td>Improved <code>GET_DISPATCH</code> Implementation</td></tr></table>
|
<tr><td>Improved <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h3>3.2. ELF TLS</h3>
|
<h3>3.2. ELF TLS</h3>
|
||||||
@@ -144,14 +144,14 @@ the common case.</p>
|
|||||||
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
|
<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
|
||||||
of per-thread, global storage. Variables can be put in this area using some
|
of per-thread, global storage. Variables can be put in this area using some
|
||||||
extensions to GCC. By storing the dispatch table pointer in this area, the
|
extensions to GCC. By storing the dispatch table pointer in this area, the
|
||||||
expensive call to <code>pthread_getspecific</code> and the test of
|
expensive call to <tt>pthread_getspecific</tt> and the test of
|
||||||
<code>_glapi_Dispatch</code> can be avoided.</p>
|
<tt>_glapi_Dispatch</tt> can be avoided.</p>
|
||||||
|
|
||||||
<p>The dispatch table pointer is stored in a new variable called
|
<p>The dispatch table pointer is stored in a new variable called
|
||||||
<code>_glapi_tls_Dispatch</code>. A new variable name is used so that a single
|
<tt>_glapi_tls_Dispatch</tt>. A new variable name is used so that a single
|
||||||
libGL can implement both interfaces. This allows the libGL to operate with
|
libGL can implement both interfaces. This allows the libGL to operate with
|
||||||
direct rendering drivers that use either interface. Once the pointer is
|
direct rendering drivers that use either interface. Once the pointer is
|
||||||
properly declared, <code>GET_DISPACH</code> becomes a simple variable
|
properly declared, <tt>GET_DISPACH</tt> becomes a simple variable
|
||||||
reference.</p>
|
reference.</p>
|
||||||
|
|
||||||
<blockquote>
|
<blockquote>
|
||||||
@@ -162,11 +162,11 @@ extern __thread struct _glapi_table *_glapi_tls_Dispatch
|
|||||||
|
|
||||||
#define GET_DISPATCH() _glapi_tls_Dispatch
|
#define GET_DISPATCH() _glapi_tls_Dispatch
|
||||||
</pre></td></tr>
|
</pre></td></tr>
|
||||||
<tr><td>TLS <code>GET_DISPATCH</code> Implementation</td></tr></table>
|
<tr><td>TLS <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<p>Use of this path is controlled by the preprocessor define
|
<p>Use of this path is controlled by the preprocessor define
|
||||||
<code>GLX_USE_TLS</code>. Any platform capable of using TLS should use this as
|
<tt>GLX_USE_TLS</tt>. Any platform capable of using TLS should use this as
|
||||||
the default dispatch method.</p>
|
the default dispatch method.</p>
|
||||||
|
|
||||||
<h3>3.3. Assembly Language Dispatch Stubs</h3>
|
<h3>3.3. Assembly Language Dispatch Stubs</h3>
|
||||||
@@ -185,13 +185,13 @@ ways that the dispatch table pointer can be accessed. There are four
|
|||||||
different methods that can be used:</p>
|
different methods that can be used:</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>Using <code>_glapi_Dispatch</code> directly in builds for non-multithreaded
|
<li>Using <tt>_glapi_Dispatch</tt> directly in builds for non-multithreaded
|
||||||
environments.</li>
|
environments.</li>
|
||||||
<li>Using <code>_glapi_Dispatch</code> and <code>_glapi_get_dispatch</code> in
|
<li>Using <tt>_glapi_Dispatch</tt> and <tt>_glapi_get_dispatch</tt> in
|
||||||
multithreaded environments.</li>
|
multithreaded environments.</li>
|
||||||
<li>Using <code>_glapi_Dispatch</code> and <code>pthread_getspecific</code> in
|
<li>Using <tt>_glapi_Dispatch</tt> and <tt>pthread_getspecific</tt> in
|
||||||
multithreaded environments.</li>
|
multithreaded environments.</li>
|
||||||
<li>Using <code>_glapi_tls_Dispatch</code> directly in TLS enabled
|
<li>Using <tt>_glapi_tls_Dispatch</tt> directly in TLS enabled
|
||||||
multithreaded environments.</li>
|
multithreaded environments.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
@@ -204,13 +204,13 @@ terribly relevant.</p>
|
|||||||
few preprocessor defines.</p>
|
few preprocessor defines.</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>If <code>GLX_USE_TLS</code> is defined, method #3 is used.</li>
|
<li>If <tt>GLX_USE_TLS</tt> is defined, method #3 is used.</li>
|
||||||
<li>If <code>HAVE_PTHREAD</code> is defined, method #2 is used.</li>
|
<li>If <tt>HAVE_PTHREAD</tt> is defined, method #2 is used.</li>
|
||||||
<li>If none of the preceding are defined, method #1 is used.</li>
|
<li>If none of the preceding are defined, method #1 is used.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>Two different techniques are used to handle the various different cases.
|
<p>Two different techniques are used to handle the various different cases.
|
||||||
On x86 and SPARC, a macro called <code>GL_STUB</code> is used. In the preamble
|
On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used. In the preamble
|
||||||
of the assembly source file different implementations of the macro are
|
of the assembly source file different implementations of the macro are
|
||||||
selected based on the defined preprocessor variables. The assembly code
|
selected based on the defined preprocessor variables. The assembly code
|
||||||
then consists of a series of invocations of the macros such as:
|
then consists of a series of invocations of the macros such as:
|
||||||
@@ -220,7 +220,7 @@ then consists of a series of invocations of the macros such as:
|
|||||||
<tr><td><pre>
|
<tr><td><pre>
|
||||||
GL_STUB(Color3fv, _gloffset_Color3fv)
|
GL_STUB(Color3fv, _gloffset_Color3fv)
|
||||||
</pre></td></tr>
|
</pre></td></tr>
|
||||||
<tr><td>SPARC Assembly Implementation of <code>glColor3fv</code></td></tr></table>
|
<tr><td>SPARC Assembly Implementation of <tt>glColor3fv</tt></td></tr></table>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<p>The benefit of this technique is that changes to the calling pattern
|
<p>The benefit of this technique is that changes to the calling pattern
|
||||||
@@ -231,32 +231,32 @@ changed lines in the assembly code.</p>
|
|||||||
implementation does not change based on the parameters passed to the
|
implementation does not change based on the parameters passed to the
|
||||||
function. For example, since x86 passes all parameters on the stack, no
|
function. For example, since x86 passes all parameters on the stack, no
|
||||||
additional code is needed to save and restore function parameters around a
|
additional code is needed to save and restore function parameters around a
|
||||||
call to <code>pthread_getspecific</code>. Since x86-64 passes parameters in
|
call to <tt>pthread_getspecific</tt>. Since x86-64 passes parameters in
|
||||||
registers, varying amounts of code needs to be inserted around the call to
|
registers, varying amounts of code needs to be inserted around the call to
|
||||||
<code>pthread_getspecific</code> to save and restore the GL function's
|
<tt>pthread_getspecific</tt> to save and restore the GL function's
|
||||||
parameters.</p>
|
parameters.</p>
|
||||||
|
|
||||||
<p>The other technique, used by platforms like x86-64 that cannot use the
|
<p>The other technique, used by platforms like x86-64 that cannot use the
|
||||||
first technique, is to insert <code>#ifdef</code> within the assembly
|
first technique, is to insert <tt>#ifdef</tt> within the assembly
|
||||||
implementation of each function. This makes the assembly file considerably
|
implementation of each function. This makes the assembly file considerably
|
||||||
larger (e.g., 29,332 lines for <code>glapi_x86-64.S</code> versus 1,155 lines for
|
larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
|
||||||
<code>glapi_x86.S</code>) and causes simple changes to the function
|
<tt>glapi_x86.S</tt>) and causes simple changes to the function
|
||||||
implementation to generate many lines of diffs. Since the assembly files
|
implementation to generate many lines of diffs. Since the assembly files
|
||||||
are typically generated by scripts (see <a href="#autogen">below</a>), this
|
are typically generated by scripts (see <a href="#autogen">below</a>), this
|
||||||
isn't a significant problem.</p>
|
isn't a significant problem.</p>
|
||||||
|
|
||||||
<p>Once a new assembly file is created, it must be inserted in the build
|
<p>Once a new assembly file is created, it must be inserted in the build
|
||||||
system. There are two steps to this. The file must first be added to
|
system. There are two steps to this. The file must first be added to
|
||||||
<code>src/mesa/sources</code>. That gets the file built and linked. The second
|
<tt>src/mesa/sources</tt>. That gets the file built and linked. The second
|
||||||
step is to add the correct <code>#ifdef</code> magic to
|
step is to add the correct <tt>#ifdef</tt> magic to
|
||||||
<code>src/mesa/glapi/glapi_dispatch.c</code> to prevent the C version of the
|
<tt>src/mesa/glapi/glapi_dispatch.c</tt> to prevent the C version of the
|
||||||
dispatch functions from being built.</p>
|
dispatch functions from being built.</p>
|
||||||
|
|
||||||
<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
|
<h3 id="fixedsize">3.4. Fixed-Length Dispatch Stubs</h3>
|
||||||
|
|
||||||
<p>To implement <code>glXGetProcAddress</code>, Mesa stores a table that
|
<p>To implement <tt>glXGetProcAddress</tt>, Mesa stores a table that
|
||||||
associates function names with pointers to those functions. This table is
|
associates function names with pointers to those functions. This table is
|
||||||
stored in <code>src/mesa/glapi/glprocs.h</code>. For different reasons on
|
stored in <tt>src/mesa/glapi/glprocs.h</tt>. For different reasons on
|
||||||
different platforms, storing all of those pointers is inefficient. On most
|
different platforms, storing all of those pointers is inefficient. On most
|
||||||
platforms, including all known platforms that support TLS, we can avoid this
|
platforms, including all known platforms that support TLS, we can avoid this
|
||||||
added overhead.</p>
|
added overhead.</p>
|
||||||
@@ -267,8 +267,8 @@ calculated by multiplying the size of the dispatch stub by the offset of the
|
|||||||
function in the table. This value is then added to the address of the first
|
function in the table. This value is then added to the address of the first
|
||||||
dispatch stub.</p>
|
dispatch stub.</p>
|
||||||
|
|
||||||
<p>This path is activated by adding the correct <code>#ifdef</code> magic to
|
<p>This path is activated by adding the correct <tt>#ifdef</tt> magic to
|
||||||
<code>src/mesa/glapi/glapi.c</code> just before <code>glprocs.h</code> is
|
<tt>src/mesa/glapi/glapi.c</tt> just before <tt>glprocs.h</tt> is
|
||||||
included.</p>
|
included.</p>
|
||||||
|
|
||||||
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
|
<h2 id="autogen">4. Automatic Generation of Dispatch Stubs</h2>
|
||||||
|
@@ -2,21 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Downloading and Unpacking</title>
|
<title>Getting Mesa</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Downloading and Unpacking</h1>
|
<h1>Downloading</h1>
|
||||||
|
|
||||||
<h2>Downloading</h2>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Primary Mesa download site:
|
Primary Mesa download site:
|
||||||
@@ -27,23 +25,23 @@ or <a href="https://mesa.freedesktop.org/archive/">mesa.freedesktop.org</a>
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Starting with the first release of 2017, Mesa's version scheme is
|
Starting with the first release of 2017, Mesa's version scheme is
|
||||||
year-based. Filenames are in the form <code>mesa-Y.N.P.tar.gz</code>, where
|
year-based. Filenames are in the form <tt>mesa-Y.N.P.tar.gz</tt>, where
|
||||||
<code>Y</code> is the year (two digits), <code>N</code> is an incremental number
|
<tt>Y</tt> is the year (two digits), <tt>N</tt> is an incremental number
|
||||||
(starting at 0) and <code>P</code> is the patch number (0 for the first
|
(starting at 0) and <tt>P</tt> is the patch number (0 for the first
|
||||||
release, 1 for the first patch after that).
|
release, 1 for the first patch after that).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When a new release is coming, release candidates (betas) may be found
|
When a new release is coming, release candidates (betas) may be found
|
||||||
in the same directory, and are recognisable by the
|
in the same directory, and are recognisable by the
|
||||||
<code>mesa-Y.N.P-<b>rc</b>X.tar.gz</code> filename.
|
<tt>mesa-Y.N.P-<b>rc</b>X.tar.gz</tt> filename.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Unpacking</h2>
|
<h1>Unpacking</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mesa releases are available in two formats: <code>.tar.xz</code> and <code>.tar.gz</code>.
|
Mesa releases are available in two formats: <tt>.tar.xz</tt> and <tt>.tar.gz</tt>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -58,7 +56,7 @@ To unpack the tarball:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2>Contents</h2>
|
<h1>Contents</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Proceed to the <a href="install.html">compilation and installation
|
Proceed to the <a href="install.html">compilation and installation
|
||||||
@@ -66,7 +64,7 @@ instructions</a>.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Demos, GLUT, and GLU</h2>
|
<h1>Demos, GLUT, and GLU</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A package of SGI's GLU library is available
|
A package of SGI's GLU library is available
|
||||||
|
@@ -2,19 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>EGL</title>
|
<title>Mesa EGL</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>EGL</h1>
|
<h1>Mesa EGL</h1>
|
||||||
|
|
||||||
<p>The current version of EGL in Mesa implements EGL 1.4. More information
|
<p>The current version of EGL in Mesa implements EGL 1.4. More information
|
||||||
about EGL can be found at
|
about EGL can be found at
|
||||||
@@ -86,12 +86,14 @@ and <code>haiku</code>.
|
|||||||
The <code>android</code> platform can either be built as a system
|
The <code>android</code> platform can either be built as a system
|
||||||
component, part of AOSP, using <code>Android.mk</code> files, or
|
component, part of AOSP, using <code>Android.mk</code> files, or
|
||||||
cross-compiled using appropriate options.
|
cross-compiled using appropriate options.
|
||||||
|
The <code>haiku</code> platform can only be built with SCons or Meson.
|
||||||
Unless for special needs, the build system should
|
Unless for special needs, the build system should
|
||||||
select the right platforms automatically.</p>
|
select the right platforms automatically.</p>
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt><code>-D gles1=true</code> and <code>-D gles2=true</code></dt>
|
<dt><code>-D gles1=true</code></dt>
|
||||||
|
<dt><code>-D gles2=true</code></dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<p>These options enable OpenGL ES support in OpenGL. The result is one big
|
<p>These options enable OpenGL ES support in OpenGL. The result is one big
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -25,206 +25,145 @@ sometimes be useful for debugging end-user issues.
|
|||||||
|
|
||||||
<h2>LibGL environment variables</h2>
|
<h2>LibGL environment variables</h2>
|
||||||
|
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>LIBGL_DEBUG</code></dt>
|
<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
|
||||||
<dd>If defined debug information will be printed to stderr.
|
If set to 'verbose' additional information will be printed.
|
||||||
If set to <code>verbose</code> additional information will be
|
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
|
||||||
printed.</dd>
|
<li>LIBGL_ALWAYS_INDIRECT - if set to `true`, forces an indirect rendering context/connection.
|
||||||
<dt><code>LIBGL_DRIVERS_PATH</code></dt>
|
<li>LIBGL_ALWAYS_SOFTWARE - if set to `true`, always use software rendering
|
||||||
<dd>colon-separated list of paths to search for DRI drivers</dd>
|
<li>LIBGL_NO_DRAWARRAYS - if set to `true`, do not use DrawArrays GLX protocol (for debugging)
|
||||||
<dt><code>LIBGL_ALWAYS_INDIRECT</code></dt>
|
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
|
||||||
<dd>if set to <code>true</code>, forces an indirect rendering
|
calls per second.
|
||||||
context/connection.</dd>
|
<li>LIBGL_DRI3_DISABLE - disable DRI3 if set to `true`.
|
||||||
<dt><code>LIBGL_ALWAYS_SOFTWARE</code></dt>
|
</ul>
|
||||||
<dd>if set to <code>true</code>, always use software rendering</dd>
|
|
||||||
<dt><code>LIBGL_NO_DRAWARRAYS</code></dt>
|
|
||||||
<dd>if set to <code>true</code>, do not use DrawArrays GLX protocol
|
|
||||||
(for debugging)</dd>
|
|
||||||
<dt><code>LIBGL_SHOW_FPS</code></dt>
|
|
||||||
<dd>print framerate to stdout based on the number of
|
|
||||||
<code>glXSwapBuffers</code> calls per second.</dd>
|
|
||||||
<dt><code>LIBGL_DRI3_DISABLE</code></dt>
|
|
||||||
<dd>disable DRI3 if set to <code>true</code>.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h2>Core Mesa environment variables</h2>
|
<h2>Core Mesa environment variables</h2>
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt><code>MESA_NO_ASM</code></dt>
|
|
||||||
<dd>if set, disables all assembly language optimizations</dd>
|
|
||||||
<dt><code>MESA_NO_MMX</code></dt>
|
|
||||||
<dd>if set, disables Intel MMX optimizations</dd>
|
|
||||||
<dt><code>MESA_NO_3DNOW</code></dt>
|
|
||||||
<dd>if set, disables AMD 3DNow! optimizations</dd>
|
|
||||||
<dt><code>MESA_NO_SSE</code></dt>
|
|
||||||
<dd>if set, disables Intel SSE optimizations</dd>
|
|
||||||
<dt><code>MESA_NO_ERROR</code></dt>
|
|
||||||
<dd>if set to 1, error checking is disabled as per <code>KHR_no_error</code>.
|
|
||||||
This will result in undefined behaviour for invalid use of the api, but
|
|
||||||
can reduce CPU use for apps that are known to be error free.</dd>
|
|
||||||
<dt><code>MESA_DEBUG</code></dt>
|
|
||||||
<dd>if set, error messages are printed to stderr. For example,
|
|
||||||
if the application generates a <code>GL_INVALID_ENUM</code> error, a
|
|
||||||
corresponding error message indicating where the error occurred, and
|
|
||||||
possibly why, will be printed to stderr. For release builds,
|
|
||||||
<code>MESA_DEBUG</code> defaults to off (no debug output).
|
|
||||||
<code>MESA_DEBUG</code> accepts the following comma-separated list of
|
|
||||||
named flags, which adds extra behaviour to just set
|
|
||||||
<code>MESA_DEBUG=1</code>:
|
|
||||||
<dl>
|
|
||||||
<dt><code>silent</code></dt>
|
|
||||||
<dd>turn off debug messages. Only useful for debug builds.</dd>
|
|
||||||
<dt><code>flush</code></dt>
|
|
||||||
<dd>flush after each drawing command</dd>
|
|
||||||
<dt><code>incomplete_tex</code></dt>
|
|
||||||
<dd>extra debug messages when a texture is incomplete</dd>
|
|
||||||
<dt><code>incomplete_fbo</code></dt>
|
|
||||||
<dd>extra debug messages when a fbo is incomplete</dd>
|
|
||||||
<dt><code>context</code></dt>
|
|
||||||
<dd>create a debug context (see <code>GLX_CONTEXT_DEBUG_BIT_ARB</code>)
|
|
||||||
and print error and performance messages to stderr (or
|
|
||||||
<code>MESA_LOG_FILE</code>).</dd>
|
|
||||||
</dl>
|
|
||||||
</dd>
|
|
||||||
<dt><code>MESA_LOG_FILE</code></dt>
|
|
||||||
<dd>specifies a file name for logging all errors, warnings,
|
|
||||||
etc., rather than stderr</dd>
|
|
||||||
<dt><code>MESA_TEX_PROG</code></dt>
|
|
||||||
<dd>if set, implement conventional texture env modes with
|
|
||||||
fragment programs (intended for developers only)</dd>
|
|
||||||
<dt><code>MESA_TNL_PROG</code></dt>
|
|
||||||
<dd>if set, implement conventional vertex transformation operations with
|
|
||||||
vertex programs (intended for developers only). Setting this variable
|
|
||||||
automatically sets the <code>MESA_TEX_PROG</code> variable as well.</dd>
|
|
||||||
<dt><code>MESA_EXTENSION_OVERRIDE</code></dt>
|
|
||||||
<dd>can be used to enable/disable extensions. A value such as
|
|
||||||
<code>GL_EXT_foo -GL_EXT_bar</code> will enable the
|
|
||||||
<code>GL_EXT_foo</code> extension and disable the
|
|
||||||
<code>GL_EXT_bar</code> extension.</dd>
|
|
||||||
<dt><code>MESA_EXTENSION_MAX_YEAR</code></dt>
|
|
||||||
<dd>The <code>GL_EXTENSIONS</code> string returned by Mesa is sorted by
|
|
||||||
extension year. If this variable is set to year X, only extensions
|
|
||||||
defined on or before year X will be reported. This is to work-around a
|
|
||||||
bug in some games where the extension string is copied into a fixed-size
|
|
||||||
buffer without truncating. If the extension string is too long, the
|
|
||||||
buffer overrun can cause the game to crash. This is a work-around for
|
|
||||||
that.</dd>
|
|
||||||
<dt><code>MESA_GL_VERSION_OVERRIDE</code></dt>
|
|
||||||
<dd>changes the value returned by
|
|
||||||
<code>glGetString(GL_VERSION)</code> and possibly the GL API type.
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>The format should be <code>MAJOR.MINOR[FC|COMPAT]</code>
|
<li>MESA_NO_ASM - if set, disables all assembly language optimizations
|
||||||
<li><code>FC</code> is an optional suffix that indicates a forward
|
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
|
||||||
compatible context. This is only valid for versions >= 3.0.
|
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
|
||||||
<li><code>COMPAT</code> is an optional suffix that indicates a
|
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
|
||||||
compatibility context or <code>GL_ARB_compatibility</code> support.
|
<li>MESA_NO_ERROR - if set to 1, error checking is disabled as per KHR_no_error.
|
||||||
This is only valid for versions >= 3.1.
|
This will result in undefined behaviour for invalid use of the api, but
|
||||||
|
can reduce CPU use for apps that are known to be error free.</li>
|
||||||
|
<li>MESA_DEBUG - if set, error messages are printed to stderr. For example,
|
||||||
|
if the application generates a GL_INVALID_ENUM error, a corresponding error
|
||||||
|
message indicating where the error occurred, and possibly why, will be
|
||||||
|
printed to stderr.<br>
|
||||||
|
|
||||||
|
For release builds, MESA_DEBUG defaults to off (no debug output).
|
||||||
|
|
||||||
|
MESA_DEBUG accepts the following comma-separated list of named
|
||||||
|
flags, which adds extra behaviour to just set MESA_DEBUG=1:
|
||||||
|
<ul>
|
||||||
|
<li>silent - turn off debug messages. Only useful for debug builds.</li>
|
||||||
|
<li>flush - flush after each drawing command</li>
|
||||||
|
<li>incomplete_tex - extra debug messages when a texture is incomplete</li>
|
||||||
|
<li>incomplete_fbo - extra debug messages when a fbo is incomplete</li>
|
||||||
|
<li>context - create a debug context (see GLX_CONTEXT_DEBUG_BIT_ARB) and
|
||||||
|
print error and performance messages to stderr (or MESA_LOG_FILE).</li>
|
||||||
|
</ul>
|
||||||
|
<li>MESA_LOG_FILE - specifies a file name for logging all errors, warnings,
|
||||||
|
etc., rather than stderr
|
||||||
|
<li>MESA_TEX_PROG - if set, implement conventional texture env modes with
|
||||||
|
fragment programs (intended for developers only)
|
||||||
|
<li>MESA_TNL_PROG - if set, implement conventional vertex transformation
|
||||||
|
operations with vertex programs (intended for developers only).
|
||||||
|
Setting this variable automatically sets the MESA_TEX_PROG variable as well.
|
||||||
|
<li>MESA_EXTENSION_OVERRIDE - can be used to enable/disable extensions.
|
||||||
|
A value such as "GL_EXT_foo -GL_EXT_bar" will enable the GL_EXT_foo extension
|
||||||
|
and disable the GL_EXT_bar extension.
|
||||||
|
<li>MESA_EXTENSION_MAX_YEAR - The GL_EXTENSIONS string returned by Mesa is sorted
|
||||||
|
by extension year.
|
||||||
|
If this variable is set to year X, only extensions defined on or before year
|
||||||
|
X will be reported.
|
||||||
|
This is to work-around a bug in some games where the extension string is
|
||||||
|
copied into a fixed-size buffer without truncating.
|
||||||
|
If the extension string is too long, the buffer overrun can cause the game
|
||||||
|
to crash.
|
||||||
|
This is a work-around for that.
|
||||||
|
<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
|
||||||
|
glGetString(GL_VERSION) and possibly the GL API type.
|
||||||
|
<ul>
|
||||||
|
<li>The format should be MAJOR.MINOR[FC|COMPAT]
|
||||||
|
<li>FC is an optional suffix that indicates a forward compatible
|
||||||
|
context. This is only valid for versions >= 3.0.
|
||||||
|
<li>COMPAT is an optional suffix that indicates a compatibility
|
||||||
|
context or GL_ARB_compatibility support. This is only valid for
|
||||||
|
versions >= 3.1.
|
||||||
<li>GL versions <= 3.0 are set to a compatibility (non-Core)
|
<li>GL versions <= 3.0 are set to a compatibility (non-Core)
|
||||||
profile
|
profile
|
||||||
<li>GL versions = 3.1, depending on the driver, it may or may not
|
<li>GL versions = 3.1, depending on the driver, it may or may not
|
||||||
have the <code>ARB_compatibility</code> extension enabled.
|
have the ARB_compatibility extension enabled.
|
||||||
<li>GL versions >= 3.2 are set to a Core profile
|
<li>GL versions >= 3.2 are set to a Core profile
|
||||||
<li>Examples:
|
<li>Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, X.Y, X.YFC,
|
||||||
<dl>
|
X.YCOMPAT.
|
||||||
<dt><code>2.1</code></dt>
|
<ul>
|
||||||
<dd>select a compatibility (non-Core) profile with GL version 2.1.</dd>
|
<li>2.1 - select a compatibility (non-Core) profile with GL
|
||||||
<dt><code>3.0</code></dt>
|
version 2.1.
|
||||||
<dd>select a compatibility (non-Core) profile with GL version 3.0.</dd>
|
<li>3.0 - select a compatibility (non-Core) profile with GL
|
||||||
<dt><code>3.0FC</code></dt>
|
version 3.0.
|
||||||
<dd>select a Core+Forward Compatible profile with GL version 3.0.</dd>
|
<li>3.0FC - select a Core+Forward Compatible profile with GL
|
||||||
<dt><code>3.1</code></dt>
|
version 3.0.
|
||||||
<dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
|
<li>3.1 - select GL version 3.1 with GL_ARB_compatibility enabled
|
||||||
enabled per the driver default.</dd>
|
per the driver default.
|
||||||
<dt><code>3.1FC</code></dt>
|
<li>3.1FC - select GL version 3.1 with forward compatibility and
|
||||||
<dd>select GL version 3.1 with forward compatibility and
|
GL_ARB_compatibility disabled.
|
||||||
<code>GL_ARB_compatibility</code> disabled.</dd>
|
<li>3.1COMPAT - select GL version 3.1 with GL_ARB_compatibility
|
||||||
<dt><code>3.1COMPAT</code></dt>
|
enabled.
|
||||||
<dd>select GL version 3.1 with <code>GL_ARB_compatibility</code>
|
<li>X.Y - override GL version to X.Y without changing the profile.
|
||||||
enabled.</dd>
|
<li>X.YFC - select a Core+Forward Compatible profile with GL
|
||||||
<dt><code>X.Y</code></dt>
|
version X.Y.
|
||||||
<dd>override GL version to X.Y without changing the profile.</dd>
|
<li>X.YCOMPAT - select a Compatibility profile with GL version
|
||||||
<dt><code>X.YFC</code></dt>
|
X.Y.
|
||||||
<dd>select a Core+Forward Compatible profile with GL version X.Y.</dd>
|
</ul>
|
||||||
<dt><code>X.YCOMPAT</code></dt>
|
|
||||||
<dd>select a Compatibility profile with GL version X.Y.</dd>
|
|
||||||
</dl>
|
|
||||||
<li>Mesa may not really implement all the features of the given
|
<li>Mesa may not really implement all the features of the given
|
||||||
version. (for developers only)
|
version. (for developers only)
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
<li>MESA_GLES_VERSION_OVERRIDE - changes the value returned by
|
||||||
<dt><code>MESA_GLES_VERSION_OVERRIDE</code></dt>
|
glGetString(GL_VERSION) for OpenGL ES.
|
||||||
<dd>changes the value returned by <code>glGetString(GL_VERSION)</code>
|
|
||||||
for OpenGL ES.
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> The format should be <code>MAJOR.MINOR</code>
|
<li> The format should be MAJOR.MINOR
|
||||||
<li> Examples: <code>2.0</code>, <code>3.0</code>, <code>3.1</code>
|
<li> Examples: 2.0, 3.0, 3.1
|
||||||
<li> Mesa may not really implement all the features of the given version.
|
<li> Mesa may not really implement all the features of the given version.
|
||||||
(for developers only)
|
(for developers only)
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
<li>MESA_GLSL_VERSION_OVERRIDE - changes the value returned by
|
||||||
<dt><code>MESA_GLSL_VERSION_OVERRIDE</code></dt>
|
glGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as
|
||||||
<dd>changes the value returned by
|
"130". Mesa will not really implement all the features of the given language version
|
||||||
<code>glGetString(GL_SHADING_LANGUAGE_VERSION)</code>.
|
if it's higher than what's normally reported. (for developers only)
|
||||||
Valid values are integers, such as <code>130</code>. Mesa will not
|
<li>MESA_GLSL_CACHE_DISABLE - if set to `true`, disables the GLSL shader cache
|
||||||
really implement all the features of the given language version if
|
<li>MESA_GLSL_CACHE_MAX_SIZE - if set, determines the maximum size of
|
||||||
it's higher than what's normally reported. (for developers only)
|
the on-disk cache of compiled GLSL programs. Should be set to a number
|
||||||
</dd>
|
optionally followed by 'K', 'M', or 'G' to specify a size in
|
||||||
<dt><code>MESA_GLSL_CACHE_DISABLE</code></dt>
|
kilobytes, megabytes, or gigabytes. By default, gigabytes will be
|
||||||
<dd>if set to <code>true</code>, disables the GLSL shader cache</dd>
|
assumed. And if unset, a maximum size of 1GB will be used. Note: A separate
|
||||||
<dt><code>MESA_GLSL_CACHE_MAX_SIZE</code></dt>
|
cache might be created for each architecture that Mesa is installed for on
|
||||||
<dd>if set, determines the maximum size of the on-disk cache of compiled GLSL
|
your system. For example under the default settings you may end up with a 1GB
|
||||||
programs. Should be set to a number optionally followed by <code>K</code>,
|
cache for x86_64 and another 1GB cache for i386.
|
||||||
<code>M</code>, or <code>G</code> to specify a size in kilobytes,
|
<li>MESA_GLSL_CACHE_DIR - if set, determines the directory to be used
|
||||||
megabytes, or gigabytes. By default, gigabytes will be assumed. And if
|
for the on-disk cache of compiled GLSL programs. If this variable is
|
||||||
unset, a maximum size of 1GB will be used. Note: A separate cache might
|
not set, then the cache will be stored in $XDG_CACHE_HOME/mesa_shader_cache (if
|
||||||
be created for each architecture that Mesa is installed for on your
|
that variable is set), or else within .cache/mesa_shader_cache within the user's
|
||||||
system. For example under the default settings you may end up with a 1GB
|
home directory.
|
||||||
cache for x86_64 and another 1GB cache for i386.</dd>
|
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
|
||||||
<dt><code>MESA_GLSL_CACHE_DIR</code></dt>
|
<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
|
||||||
<dd>if set, determines the directory to be used for the on-disk cache of
|
<li>MESA_SHADER_CAPTURE_PATH - see <a href="shading.html#capture">Capturing Shaders</a></li>
|
||||||
compiled GLSL programs. If this variable is not set, then the cache will
|
<li>MESA_SHADER_DUMP_PATH and MESA_SHADER_READ_PATH - see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></li>
|
||||||
be stored in <code>$XDG_CACHE_HOME/mesa_shader_cache</code> (if that
|
<li>MESA_VK_VERSION_OVERRIDE - changes the Vulkan physical device version
|
||||||
variable is set), or else within <code>.cache/mesa_shader_cache</code>
|
as returned in VkPhysicalDeviceProperties::apiVersion.
|
||||||
within the user's home directory.
|
|
||||||
</dd>
|
|
||||||
<dt><code>MESA_GLSL</code></dt>
|
|
||||||
<dd><a href="shading.html#envvars">shading language compiler options</a></dd>
|
|
||||||
<dt><code>MESA_NO_MINMAX_CACHE</code></dt>
|
|
||||||
<dd>when set, the minmax index cache is globally disabled.</dd>
|
|
||||||
<dt><code>MESA_SHADER_CAPTURE_PATH</code></dt>
|
|
||||||
<dd>see <a href="shading.html#capture">Capturing Shaders</a></dd>
|
|
||||||
<dt><code>MESA_SHADER_DUMP_PATH</code> and <code>MESA_SHADER_READ_PATH</code></dt>
|
|
||||||
<dd>see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></dd>
|
|
||||||
<dt><code>MESA_VK_VERSION_OVERRIDE</code></dt>
|
|
||||||
<dd>changes the Vulkan physical device version
|
|
||||||
as returned in <code>VkPhysicalDeviceProperties::apiVersion</code>.
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>The format should be <code>MAJOR.MINOR[.PATCH]</code></li>
|
<li>The format should be MAJOR.MINOR[.PATCH]</li>
|
||||||
<li>This will not let you force a version higher than the driver's
|
<li>This will not let you force a version higher than the driver's
|
||||||
instance version as advertised by
|
instance versionas advertised by vkEnumerateInstanceVersion</li>
|
||||||
<code>vkEnumerateInstanceVersion</code></li>
|
|
||||||
<li>This can be very useful for debugging but some features may not be
|
<li>This can be very useful for debugging but some features may not be
|
||||||
implemented correctly. (For developers only)</li>
|
implemented correctly. (For developers only)</li>
|
||||||
</ul>
|
</ul>
|
||||||
</dd>
|
</li>
|
||||||
</dl>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2>NIR passes enviroment variables</h2>
|
|
||||||
<p>
|
|
||||||
The following are only applicable for drivers that uses NIR, as they
|
|
||||||
modify the behaviour for the common NIR_PASS and NIR_PASS_V macros,
|
|
||||||
that wrap calls to NIR lowering/optimizations.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<dl>
|
|
||||||
<dt><code>NIR_PRINT</code></dt>
|
|
||||||
<dd>If defined, the resulting NIR shader will be printed out at each succesful NIR lowering/optimization call.</dd>
|
|
||||||
<dt><code>NIR_TEST_CLONE</code></dt>
|
|
||||||
<dd>If defined, cloning a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
|
|
||||||
<dt><code>NIR_TEST_SERIALIZE</code></dt>
|
|
||||||
<dd>If defined, serialize and deserialize a NIR shader would be tested at each succesful NIR lowering/optimization call.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Mesa Xlib driver environment variables</h2>
|
<h2>Mesa Xlib driver environment variables</h2>
|
||||||
@@ -233,137 +172,80 @@ that wrap calls to NIR lowering/optimizations.
|
|||||||
The following are only applicable to the Mesa Xlib software driver.
|
The following are only applicable to the Mesa Xlib software driver.
|
||||||
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
||||||
</p>
|
</p>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>MESA_RGB_VISUAL</code></dt>
|
<li>MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode
|
||||||
<dd>specifies the X visual and depth for RGB mode</dd>
|
<li>MESA_CI_VISUAL - specifies the X visual and depth for CI mode
|
||||||
<dt><code>MESA_CI_VISUAL</code></dt>
|
<li>MESA_BACK_BUFFER - specifies how to implement the back color buffer,
|
||||||
<dd>specifies the X visual and depth for CI mode</dd>
|
either "pixmap" or "ximage"
|
||||||
<dt><code>MESA_BACK_BUFFER</code></dt>
|
<li>MESA_GAMMA - gamma correction coefficients for red, green, blue channels
|
||||||
<dd>specifies how to implement the back color buffer, either
|
<li>MESA_XSYNC - enable synchronous X behavior (for debugging only)
|
||||||
<code>pixmap</code> or <code>ximage</code></dd>
|
<li>MESA_GLX_FORCE_CI - if set, force GLX to treat 8bpp visuals as CI visuals
|
||||||
<dt><code>MESA_GAMMA</code></dt>
|
<li>MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel.
|
||||||
<dd>gamma correction coefficients for red, green, blue channels</dd>
|
<li>MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer.
|
||||||
<dt><code>MESA_XSYNC</code></dt>
|
<li>MESA_GLX_ALPHA_BITS - specifies default number of bits for alpha channel.
|
||||||
<dd>enable synchronous X behavior (for debugging only)</dd>
|
</ul>
|
||||||
<dt><code>MESA_GLX_FORCE_CI</code></dt>
|
|
||||||
<dd>if set, force GLX to treat 8bpp visuals as CI visuals</dd>
|
|
||||||
<dt><code>MESA_GLX_FORCE_ALPHA</code></dt>
|
|
||||||
<dd>if set, forces RGB windows to have an alpha channel.</dd>
|
|
||||||
<dt><code>MESA_GLX_DEPTH_BITS</code></dt>
|
|
||||||
<dd>specifies default number of bits for depth buffer.</dd>
|
|
||||||
<dt><code>MESA_GLX_ALPHA_BITS</code></dt>
|
|
||||||
<dd>specifies default number of bits for alpha channel.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
|
<h2>i945/i965 driver environment variables (non-Gallium)</h2>
|
||||||
|
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>INTEL_NO_HW</code></dt>
|
<li>INTEL_NO_HW - if set to 1, prevents batches from being submitted to the hardware.
|
||||||
<dd>if set to 1, prevents batches from being submitted to the hardware.
|
This is useful for debugging hangs, etc.</li>
|
||||||
This is useful for debugging hangs, etc.</dd>
|
<li>INTEL_DEBUG - a comma-separated list of named flags, which do various things:
|
||||||
<dt><code>INTEL_DEBUG</code></dt>
|
<ul>
|
||||||
<dd>a comma-separated list of named flags, which do various things:
|
<li>ann - annotate IR in assembly dumps</li>
|
||||||
<dl>
|
<li>aub - dump batches into an AUB trace for use with simulation tools</li>
|
||||||
<dt><code>ann</code></dt>
|
<li>bat - emit batch information</li>
|
||||||
<dd>annotate IR in assembly dumps</dd>
|
<li>blit - emit messages about blit operations</li>
|
||||||
<dt><code>aub</code></dt>
|
<li>blorp - emit messages about the blorp operations (blits & clears)</li>
|
||||||
<dd>dump batches into an AUB trace for use with simulation tools</dd>
|
<li>buf - emit messages about buffer objects</li>
|
||||||
<dt><code>bat</code></dt>
|
<li>clip - emit messages about the clip unit (for old gens, includes the CLIP program)</li>
|
||||||
<dd>emit batch information</dd>
|
<li>color - use color in output</li>
|
||||||
<dt><code>blit</code></dt>
|
<li>cs - dump shader assembly for compute shaders</li>
|
||||||
<dd>emit messages about blit operations</dd>
|
<li>do32 - generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</li>
|
||||||
<dt><code>blorp</code></dt>
|
<li>dri - emit messages about the DRI interface</li>
|
||||||
<dd>emit messages about the blorp operations (blits & clears)</dd>
|
<li>fbo - emit messages about framebuffers</li>
|
||||||
<dt><code>buf</code></dt>
|
<li>fs - dump shader assembly for fragment shaders</li>
|
||||||
<dd>emit messages about buffer objects</dd>
|
<li>gs - dump shader assembly for geometry shaders</li>
|
||||||
<dt><code>clip</code></dt>
|
<li>hex - print instruction hex dump with the disassembly</li>
|
||||||
<dd>emit messages about the clip unit (for old gens, includes the CLIP program)</dd>
|
<li>l3 - emit messages about the new L3 state during transitions</li>
|
||||||
<dt><code>color</code></dt>
|
<li>miptree - emit messages about miptrees</li>
|
||||||
<dd>use color in output</dd>
|
<li>no8 - don't generate SIMD8 fragment shader</li>
|
||||||
<dt><code>cs</code></dt>
|
<li>no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</li>
|
||||||
<dd>dump shader assembly for compute shaders</dd>
|
<li>nocompact - disable instruction compaction</li>
|
||||||
<dt><code>do32</code></dt>
|
<li>nodualobj - suppress generation of dual-object geometry shader code</li>
|
||||||
<dd>generate compute shader SIMD32 programs even if workgroup size doesn't exceed the SIMD16 limit</dd>
|
<li>norbc - disable single sampled render buffer compression</li>
|
||||||
<dt><code>dri</code></dt>
|
<li>optimizer - dump shader assembly to files at each optimization pass and iteration that make progress</li>
|
||||||
<dd>emit messages about the DRI interface</dd>
|
<li>perf - emit messages about performance issues</li>
|
||||||
<dt><code>fbo</code></dt>
|
<li>perfmon - emit messages about AMD_performance_monitor</li>
|
||||||
<dd>emit messages about framebuffers</dd>
|
<li>pix - emit messages about pixel operations</li>
|
||||||
<dt><code>fs</code></dt>
|
<li>prim - emit messages about drawing primitives</li>
|
||||||
<dd>dump shader assembly for fragment shaders</dd>
|
<li>reemit - mark all state dirty on each draw call</li>
|
||||||
<dt><code>gs</code></dt>
|
<li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
|
||||||
<dd>dump shader assembly for geometry shaders</dd>
|
<li>shader_time - record how much GPU time is spent in each shader</li>
|
||||||
<dt><code>hex</code></dt>
|
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
|
||||||
<dd>print instruction hex dump with the disassembly</dd>
|
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
|
||||||
<dt><code>l3</code></dt>
|
<li>state - emit messages about state flag tracking</li>
|
||||||
<dd>emit messages about the new L3 state during transitions</dd>
|
<li>submit - emit batchbuffer usage statistics</li>
|
||||||
<dt><code>miptree</code></dt>
|
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
|
||||||
<dd>emit messages about miptrees</dd>
|
<li>tcs - dump shader assembly for tessellation control shaders</li>
|
||||||
<dt><code>no8</code></dt>
|
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
|
||||||
<dd>don't generate SIMD8 fragment shader</dd>
|
<li>tex - emit messages about textures.</li>
|
||||||
<dt><code>no16</code></dt>
|
<li>urb - emit messages about URB setup</li>
|
||||||
<dd>suppress generation of 16-wide fragment shaders. useful for debugging broken shaders</dd>
|
<li>vert - emit messages about vertex assembly</li>
|
||||||
<dt><code>nocompact</code></dt>
|
<li>vs - dump shader assembly for vertex shaders</li>
|
||||||
<dd>disable instruction compaction</dd>
|
</ul>
|
||||||
<dt><code>nodualobj</code></dt>
|
<li>INTEL_SCALAR_VS (or TCS, TES, GS) - force scalar/vec4 mode for a shader stage (Gen8-9 only)</li>
|
||||||
<dd>suppress generation of dual-object geometry shader code</dd>
|
<li>INTEL_PRECISE_TRIG - if set to 1, true or yes, then the driver prefers
|
||||||
<dt><code>norbc</code></dt>
|
accuracy over performance in trig functions.</li>
|
||||||
<dd>disable single sampled render buffer compression</dd>
|
</ul>
|
||||||
<dt><code>optimizer</code></dt>
|
|
||||||
<dd>dump shader assembly to files at each optimization pass and iteration that make progress</dd>
|
|
||||||
<dt><code>perf</code></dt>
|
|
||||||
<dd>emit messages about performance issues</dd>
|
|
||||||
<dt><code>perfmon</code></dt>
|
|
||||||
<dd>emit messages about <code>AMD_performance_monitor</code></dd>
|
|
||||||
<dt><code>pix</code></dt>
|
|
||||||
<dd>emit messages about pixel operations</dd>
|
|
||||||
<dt><code>prim</code></dt>
|
|
||||||
<dd>emit messages about drawing primitives</dd>
|
|
||||||
<dt><code>reemit</code></dt>
|
|
||||||
<dd>mark all state dirty on each draw call</dd>
|
|
||||||
<dt><code>sf</code></dt>
|
|
||||||
<dd>emit messages about the strips & fans unit (for old gens, includes the SF program)</dd>
|
|
||||||
<dt><code>shader_time</code></dt>
|
|
||||||
<dd>record how much GPU time is spent in each shader</dd>
|
|
||||||
<dt><code>spill_fs</code></dt>
|
|
||||||
<dd>force spilling of all registers in the scalar backend (useful to debug spilling code)</dd>
|
|
||||||
<dt><code>spill_vec4</code></dt>
|
|
||||||
<dd>force spilling of all registers in the vec4 backend (useful to debug spilling code)</dd>
|
|
||||||
<dt><code>state</code></dt>
|
|
||||||
<dd>emit messages about state flag tracking</dd>
|
|
||||||
<dt><code>submit</code></dt>
|
|
||||||
<dd>emit batchbuffer usage statistics</dd>
|
|
||||||
<dt><code>sync</code></dt>
|
|
||||||
<dd>after sending each batch, emit a message and wait for that batch to finish rendering</dd>
|
|
||||||
<dt><code>tcs</code></dt>
|
|
||||||
<dd>dump shader assembly for tessellation control shaders</dd>
|
|
||||||
<dt><code>tes</code></dt>
|
|
||||||
<dd>dump shader assembly for tessellation evaluation shaders</dd>
|
|
||||||
<dt><code>tex</code></dt>
|
|
||||||
<dd>emit messages about textures.</dd>
|
|
||||||
<dt><code>urb</code></dt>
|
|
||||||
<dd>emit messages about URB setup</dd>
|
|
||||||
<dt><code>vert</code></dt>
|
|
||||||
<dd>emit messages about vertex assembly</dd>
|
|
||||||
<dt><code>vs</code></dt>
|
|
||||||
<dd>dump shader assembly for vertex shaders</dd>
|
|
||||||
</dl>
|
|
||||||
</dd>
|
|
||||||
<dt><code>INTEL_SCALAR_VS</code> (or <code>TCS</code>, <code>TES</code>,
|
|
||||||
<code>GS</code>)</dt>
|
|
||||||
<dd>force scalar/vec4 mode for a shader stage (Gen8-9 only)</dd>
|
|
||||||
<dt><code>INTEL_PRECISE_TRIG</code></dt>
|
|
||||||
<dd>if set to 1, true or yes, then the driver prefers accuracy over
|
|
||||||
performance in trig functions.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
|
<h2>Radeon driver environment variables (radeon, r200, and r300g)</h2>
|
||||||
|
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>RADEON_NO_TCL</code></dt>
|
<li>RADEON_NO_TCL - if set, disable hardware-accelerated Transform/Clip/Lighting.
|
||||||
<dd>if set, disable hardware-accelerated Transform/Clip/Lighting.</dd>
|
</ul>
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>EGL environment variables</h2>
|
<h2>EGL environment variables</h2>
|
||||||
@@ -376,170 +258,122 @@ Mesa EGL supports different sets of environment variables. See the
|
|||||||
|
|
||||||
<h2>Gallium environment variables</h2>
|
<h2>Gallium environment variables</h2>
|
||||||
|
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>GALLIUM_HUD</code></dt>
|
<li>GALLIUM_HUD - draws various information on the screen, like framerate,
|
||||||
<dd>draws various information on the screen, like framerate,
|
|
||||||
cpu load, driver statistics, performance counters, etc.
|
cpu load, driver statistics, performance counters, etc.
|
||||||
Set <code>GALLIUM_HUD=help</code> and run e.g.
|
Set GALLIUM_HUD=help and run e.g. glxgears for more info.
|
||||||
<code>glxgears</code> for more info.</dd>
|
<li>GALLIUM_HUD_PERIOD - sets the hud update rate in seconds (float). Use zero
|
||||||
<dt><code>GALLIUM_HUD_PERIOD</code></dt>
|
to update every frame. The default period is 1/2 second.
|
||||||
<dd>sets the hud update rate in seconds (float). Use zero
|
<li>GALLIUM_HUD_VISIBLE - control default visibility, defaults to true.
|
||||||
to update every frame. The default period is 1/2 second.</dd>
|
<li>GALLIUM_HUD_TOGGLE_SIGNAL - toggle visibility via user specified signal.
|
||||||
<dt><code>GALLIUM_HUD_VISIBLE</code></dt>
|
|
||||||
<dd>control default visibility, defaults to true.</dd>
|
|
||||||
<dt><code>GALLIUM_HUD_TOGGLE_SIGNAL</code></dt>
|
|
||||||
<dd>toggle visibility via user specified signal.
|
|
||||||
Especially useful to toggle hud at specific points of application and
|
Especially useful to toggle hud at specific points of application and
|
||||||
disable for unencumbered viewing the rest of the time. For example, set
|
disable for unencumbered viewing the rest of the time. For example, set
|
||||||
<code>GALLIUM_HUD_VISIBLE</code> to <code>false</code> and
|
GALLIUM_HUD_VISIBLE to false and GALLIUM_HUD_TOGGLE_SIGNAL to 10 (SIGUSR1).
|
||||||
<code>GALLIUM_HUD_TOGGLE_SIGNAL</code> to <code>10</code>
|
Use kill -10 <pid> to toggle the hud as desired.
|
||||||
(<code>SIGUSR1</code>).
|
<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
|
||||||
Use <code>kill -10 <pid></code> to toggle the hud as desired.</dd>
|
hud values into files.
|
||||||
<dt><code>GALLIUM_HUD_DUMP_DIR</code></dt>
|
<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=true for
|
||||||
<dd>specifies a directory for writing the displayed hud values into files.</dd>
|
choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
|
||||||
<dt><code>GALLIUM_DRIVER</code></dt>
|
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
|
||||||
<dd>useful in combination with <code>LIBGL_ALWAYS_SOFTWARE=true</code> for
|
rather than stderr.
|
||||||
choosing one of the software renderers <code>softpipe</code>,
|
<li>GALLIUM_PRINT_OPTIONS - if non-zero, print all the Gallium environment
|
||||||
<code>llvmpipe</code> or <code>swr</code>.</dd>
|
variables which are used, and their current values.
|
||||||
<dt><code>GALLIUM_LOG_FILE</code></dt>
|
<li>GALLIUM_DUMP_CPU - if non-zero, print information about the CPU on start-up
|
||||||
<dd>specifies a file for logging all errors, warnings, etc.
|
<li>TGSI_PRINT_SANITY - if set, do extra sanity checking on TGSI shaders and
|
||||||
rather than stderr.</dd>
|
print any errors to stderr.
|
||||||
<dt><code>GALLIUM_PRINT_OPTIONS</code></dt>
|
<LI>DRAW_FSE - ???
|
||||||
<dd>if non-zero, print all the Gallium environment variables which are
|
<LI>DRAW_NO_FSE - ???
|
||||||
used, and their current values.</dd>
|
<li>DRAW_USE_LLVM - if set to zero, the draw module will not use LLVM to execute
|
||||||
<dt><code>GALLIUM_DUMP_CPU</code></dt>
|
shaders, vertex fetch, etc.
|
||||||
<dd>if non-zero, print information about the CPU on start-up</dd>
|
<li>ST_DEBUG - controls debug output from the Mesa/Gallium state tracker.
|
||||||
<dt><code>TGSI_PRINT_SANITY</code></dt>
|
Setting to "tgsi", for example, will print all the TGSI shaders.
|
||||||
<dd>if set, do extra sanity checking on TGSI shaders and
|
See src/mesa/state_tracker/st_debug.c for other options.
|
||||||
print any errors to stderr.</dd>
|
</ul>
|
||||||
<dt><code>DRAW_FSE</code></dt>
|
|
||||||
<dd>???</dd>
|
|
||||||
<dt><code>DRAW_NO_FSE</code></dt>
|
|
||||||
<dd>???</dd>
|
|
||||||
<dt><code>DRAW_USE_LLVM</code></dt>
|
|
||||||
<dd>if set to zero, the draw module will not use LLVM to execute
|
|
||||||
shaders, vertex fetch, etc.</dd>
|
|
||||||
<dt><code>ST_DEBUG</code></dt>
|
|
||||||
<dd>controls debug output from the Mesa/Gallium state tracker.
|
|
||||||
Setting to <code>tgsi</code>, for example, will print all the TGSI
|
|
||||||
shaders. See <code>src/mesa/state_tracker/st_debug.c</code> for other
|
|
||||||
options.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>Clover state tracker environment variables</h3>
|
<h3>Clover state tracker environment variables</h3>
|
||||||
|
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>CLOVER_EXTRA_BUILD_OPTIONS</code></dt>
|
<li>CLOVER_EXTRA_BUILD_OPTIONS - allows specifying additional compiler and linker
|
||||||
<dd>allows specifying additional compiler and linker
|
|
||||||
options. Specified options are appended after the options set by the OpenCL
|
options. Specified options are appended after the options set by the OpenCL
|
||||||
program in <code>clBuildProgram</code>.</dd>
|
program in clBuildProgram.
|
||||||
<dt><code>CLOVER_EXTRA_COMPILE_OPTIONS</code></dt>
|
<li>CLOVER_EXTRA_COMPILE_OPTIONS - allows specifying additional compiler
|
||||||
<dd>allows specifying additional compiler
|
|
||||||
options. Specified options are appended after the options set by the OpenCL
|
options. Specified options are appended after the options set by the OpenCL
|
||||||
program in <code>clCompileProgram</code>.</dd>
|
program in clCompileProgram.
|
||||||
<dt><code>CLOVER_EXTRA_LINK_OPTIONS</code></dt>
|
<li>CLOVER_EXTRA_LINK_OPTIONS - allows specifying additional linker
|
||||||
<dd>allows specifying additional linker
|
|
||||||
options. Specified options are appended after the options set by the OpenCL
|
options. Specified options are appended after the options set by the OpenCL
|
||||||
program in <code>clLinkProgram</code>.</dd>
|
program in clLinkProgram.
|
||||||
</dl>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h3>Softpipe driver environment variables</h3>
|
<h3>Softpipe driver environment variables</h3>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>SOFTPIPE_DUMP_FS</code></dt>
|
<li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders
|
||||||
<dd>if set, the softpipe driver will print fragment shaders to stderr</dd>
|
to stderr
|
||||||
<dt><code>SOFTPIPE_DUMP_GS</code></dt>
|
<li>SOFTPIPE_DUMP_GS - if set, the softpipe driver will print geometry shaders
|
||||||
<dd>if set, the softpipe driver will print geometry shaders to stderr</dd>
|
to stderr
|
||||||
<dt><code>SOFTPIPE_NO_RAST</code></dt>
|
<li>SOFTPIPE_NO_RAST - if set, rasterization is no-op'd. For profiling purposes.
|
||||||
<dd>if set, rasterization is no-op'd. For profiling purposes.</dd>
|
<li>SOFTPIPE_USE_LLVM - if set, the softpipe driver will try to use LLVM JIT for
|
||||||
<dt><code>SOFTPIPE_USE_LLVM</code></dt>
|
vertex shading processing.
|
||||||
<dd>if set, the softpipe driver will try to use LLVM JIT for
|
</ul>
|
||||||
vertex shading processing.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>LLVMpipe driver environment variables</h3>
|
<h3>LLVMpipe driver environment variables</h3>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>LP_NO_RAST</code></dt>
|
<li>LP_NO_RAST - if set LLVMpipe will no-op rasterization
|
||||||
<dd>if set LLVMpipe will no-op rasterization</dd>
|
<li>LP_DEBUG - a comma-separated list of debug options is accepted. See the
|
||||||
<dt><code>LP_DEBUG</code></dt>
|
source code for details.
|
||||||
<dd>a comma-separated list of debug options is accepted. See the
|
<li>LP_PERF - a comma-separated list of options to selectively no-op various
|
||||||
source code for details.</dd>
|
parts of the driver. See the source code for details.
|
||||||
<dt><code>LP_PERF</code></dt>
|
<li>LP_NUM_THREADS - an integer indicating how many threads to use for rendering.
|
||||||
<dd>a comma-separated list of options to selectively no-op various
|
|
||||||
parts of the driver. See the source code for details.</dd>
|
|
||||||
<dt><code>LP_NUM_THREADS</code></dt>
|
|
||||||
<dd>an integer indicating how many threads to use for rendering.
|
|
||||||
Zero turns off threading completely. The default value is the number of CPU
|
Zero turns off threading completely. The default value is the number of CPU
|
||||||
cores present.</dd>
|
cores present.
|
||||||
</dl>
|
</ul>
|
||||||
|
|
||||||
<h3>VMware SVGA driver environment variables</h3>
|
<h3>VMware SVGA driver environment variables</h3>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>SVGA_FORCE_SWTNL</code></dt>
|
<li>SVGA_FORCE_SWTNL - force use of software vertex transformation
|
||||||
<dd>force use of software vertex transformation</dd>
|
<li>SVGA_NO_SWTNL - don't allow software vertex transformation fallbacks
|
||||||
<dt><code>SVGA_NO_SWTNL</code></dt>
|
(will often result in incorrect rendering).
|
||||||
<dd>don't allow software vertex transformation fallbacks (will often result
|
<li>SVGA_DEBUG - for dumping shaders, constant buffers, etc. See the code
|
||||||
in incorrect rendering).</dd>
|
for details.
|
||||||
<dt><code>SVGA_DEBUG</code></dt>
|
<li>SVGA_EXTRA_LOGGING - if set, enables extra logging to the vmware.log file,
|
||||||
<dd>for dumping shaders, constant buffers, etc. See the code for
|
such as the OpenGL program's name and command line arguments.
|
||||||
details.</dd>
|
<li>SVGA_NO_LOGGING - if set, disables logging to the vmware.log file.
|
||||||
<dt><code>SVGA_EXTRA_LOGGING</code></dt>
|
This is useful when using Valgrind because it otherwise crashes when
|
||||||
<dd>if set, enables extra logging to the <code>vmware.log</code> file,
|
initializing the host log feature.
|
||||||
such as the OpenGL program's name and command line arguments.</dd>
|
<li>See the driver code for other, lesser-used variables.
|
||||||
<dt><code>SVGA_NO_LOGGING</code></dt>
|
</ul>
|
||||||
<dd>if set, disables logging to the <code>vmware.log</code> file. This is
|
|
||||||
useful when using Valgrind because it otherwise crashes when
|
|
||||||
initializing the host log feature.</dd>
|
|
||||||
</dl>
|
|
||||||
<p>See the driver code for other, lesser-used variables.</p>
|
|
||||||
|
|
||||||
<h3>WGL environment variables</h3>
|
<h3>WGL environment variables</h3>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>WGL_SWAP_INTERVAL</code></dt>
|
<li>WGL_SWAP_INTERVAL - to set a swap interval, equivalent to calling
|
||||||
<dd>to set a swap interval, equivalent to calling
|
wglSwapIntervalEXT() in an application. If this environment variable
|
||||||
<code>wglSwapIntervalEXT()</code> in an application. If this
|
is set, application calls to wglSwapIntervalEXT() will have no effect.
|
||||||
environment variable is set, application calls to
|
</ul>
|
||||||
<code>wglSwapIntervalEXT()</code> will have no effect.</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
<h3>VA-API state tracker environment variables</h3>
|
<h3>VA-API state tracker environment variables</h3>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>VAAPI_MPEG4_ENABLED</code></dt>
|
<li>VAAPI_MPEG4_ENABLED - enable MPEG4 for VA-API, disabled by default.
|
||||||
<dd>enable MPEG4 for VA-API, disabled by default.</dd>
|
</ul>
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>VC4 driver environment variables</h3>
|
<h3>VC4 driver environment variables</h3>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>VC4_DEBUG</code></dt>
|
<li>VC4_DEBUG - a comma-separated list of named flags, which do various things:
|
||||||
<dd>a comma-separated list of named flags, which do various things:
|
<ul>
|
||||||
<dl>
|
<li>cl - dump command list during creation</li>
|
||||||
<dt><code>cl</code></dt>
|
<li>qpu - dump generated QPU instructions</li>
|
||||||
<dd>dump command list during creation</dd>
|
<li>qir - dump QPU IR during program compile</li>
|
||||||
<dt><code>qpu</code></dt>
|
<li>nir - dump NIR during program compile</li>
|
||||||
<dd>dump generated QPU instructions</dd>
|
<li>tgsi - dump TGSI during program compile</li>
|
||||||
<dt><code>qir</code></dt>
|
<li>shaderdb - dump program compile information for shader-db analysis</li>
|
||||||
<dd>dump QPU IR during program compile</dd>
|
<li>perf - print during performance-related events</li>
|
||||||
<dt><code>nir</code></dt>
|
<li>norast - skip actual hardware execution of commands</li>
|
||||||
<dd>dump NIR during program compile</dd>
|
<li>always_flush - flush after each draw call</li>
|
||||||
<dt><code>tgsi</code></dt>
|
<li>always_sync - wait for finish after each flush</li>
|
||||||
<dd>dump TGSI during program compile</dd>
|
<li>dump - write a GPU command stream trace file (VC4 simulator only)</li>
|
||||||
<dt><code>shaderdb</code></dt>
|
</ul>
|
||||||
<dd>dump program compile information for shader-db analysis</dd>
|
</ul>
|
||||||
<dt><code>perf</code></dt>
|
|
||||||
<dd>print during performance-related events</dd>
|
|
||||||
<dt><code>norast</code></dt>
|
|
||||||
<dd>skip actual hardware execution of commands</dd>
|
|
||||||
<dt><code>always_flush</code></dt>
|
|
||||||
<dd>flush after each draw call</dd>
|
|
||||||
<dt><code>always_sync</code></dt>
|
|
||||||
<dd>wait for finish after each flush</dd>
|
|
||||||
<dt><code>dump</code></dt>
|
|
||||||
<dd>write a GPU command stream trace file (VC4 simulator only)</dd>
|
|
||||||
</dl>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
|
142
docs/faq.html
142
docs/faq.html
@@ -2,21 +2,23 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Frequently Asked Questions</title>
|
<title>Mesa FAQ</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Frequently Asked Questions</h1>
|
<h1>Mesa Frequently Asked Questions</h1>
|
||||||
Last updated: 19 September 2018
|
Last updated: 19 September 2018
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
<h2>Index</h2>
|
<h2>Index</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="#part1">High-level Questions and Answers</a></li>
|
<li><a href="#part1">High-level Questions and Answers</a></li>
|
||||||
@@ -24,10 +26,14 @@ Last updated: 19 September 2018
|
|||||||
<li><a href="#part3">Runtime / Rendering Problems</a></li>
|
<li><a href="#part3">Runtime / Rendering Problems</a></li>
|
||||||
<li><a href="#part4">Developer Questions</a></li>
|
<li><a href="#part4">Developer Questions</a></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
<h2 id="part1">1. High-level Questions and Answers</h2>
|
|
||||||
|
|
||||||
<h3>1.1 What is Mesa?</h3>
|
|
||||||
|
<h1 id="part1">1. High-level Questions and Answers</h1>
|
||||||
|
|
||||||
|
<h2>1.1 What is Mesa?</h2>
|
||||||
<p>
|
<p>
|
||||||
Mesa is an open-source implementation of the OpenGL specification.
|
Mesa is an open-source implementation of the OpenGL specification.
|
||||||
OpenGL is a programming library for writing interactive 3D applications.
|
OpenGL is a programming library for writing interactive 3D applications.
|
||||||
@@ -96,17 +102,17 @@ the Xlib API:
|
|||||||
<li>The GLX wire protocol is not supported and there's no OpenGL extension
|
<li>The GLX wire protocol is not supported and there's no OpenGL extension
|
||||||
loaded by the X server.
|
loaded by the X server.
|
||||||
<li>There is no hardware acceleration.
|
<li>There is no hardware acceleration.
|
||||||
<li>The OpenGL library, <code>libGL.so</code>, contains everything (the
|
<li>The OpenGL library, libGL.so, contains everything (the programming API,
|
||||||
programming API, the GLX functions and all the rendering code).
|
the GLX functions and all the rendering code).
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
|
Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
|
||||||
within the DRI (Direct Rendering Infrastructure):
|
within the DRI (Direct Rendering Infrastructure):
|
||||||
<ul>
|
<ul>
|
||||||
<li>The <code>libGL.so</code> library provides the GL and GLX API functions,
|
<li>The libGL.so library provides the GL and GLX API functions, a GLX
|
||||||
a GLX protocol encoder, and a device driver loader.
|
protocol encoder, and a device driver loader.
|
||||||
<li>The device driver modules (such as <code>r200_dri.so</code>) contain
|
<li>The device driver modules (such as r200_dri.so) contain a built-in
|
||||||
a built-in copy of the core Mesa code.
|
copy of the core Mesa code.
|
||||||
<li>The X server loads the GLX module.
|
<li>The X server loads the GLX module.
|
||||||
The GLX module decodes incoming GLX protocol and dispatches the commands
|
The GLX module decodes incoming GLX protocol and dispatches the commands
|
||||||
to a rendering module.
|
to a rendering module.
|
||||||
@@ -126,7 +132,7 @@ Just follow the Mesa <a href="install.html">compilation instructions</a>.
|
|||||||
|
|
||||||
<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
|
<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
|
||||||
<p>
|
<p>
|
||||||
Yes, SGI's <a href="http://web.archive.org/web/20171010115110_/http://oss.sgi.com/projects/ogl-sample/index.html">
|
Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html">
|
||||||
OpenGL Sample Implementation (SI)</a> is available.
|
OpenGL Sample Implementation (SI)</a> is available.
|
||||||
The SI was written during the time that OpenGL was originally designed.
|
The SI was written during the time that OpenGL was originally designed.
|
||||||
Unfortunately, development of the SI has stagnated.
|
Unfortunately, development of the SI has stagnated.
|
||||||
@@ -138,9 +144,8 @@ Mesa is much more up to date with modern features and extensions.
|
|||||||
an open-source implementation of OpenGL ES for mobile devices.
|
an open-source implementation of OpenGL ES for mobile devices.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="http://web.archive.org/web/20130830162848/http://www.dsbox.com/minigl.html">miniGL</a>
|
<a href="http://www.dsbox.com/minigl.html">miniGL</a>
|
||||||
is a subset of OpenGL for PalmOS devices. The website is gone, but the source
|
is a subset of OpenGL for PalmOS devices.
|
||||||
code can still be found on <a href="https://sourceforge.net/projects/minigl/">sourceforge.net</a>.
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<a href="http://bellard.org/TinyGL/">TinyGL</a>
|
<a href="http://bellard.org/TinyGL/">TinyGL</a>
|
||||||
@@ -170,16 +175,22 @@ popular and feature-complete.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="part2">2. Compilation and Installation Problems</h2>
|
|
||||||
|
|
||||||
<h3>2.1 What's the easiest way to install Mesa?</h3>
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
|
<h1 id="part2">2. Compilation and Installation Problems</h1>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>2.1 What's the easiest way to install Mesa?</h2>
|
||||||
<p>
|
<p>
|
||||||
If you're using a Linux-based system, your distro CD most likely already
|
If you're using a Linux-based system, your distro CD most likely already
|
||||||
has Mesa packages (like RPM or DEB) which you can easily install.
|
has Mesa packages (like RPM or DEB) which you can easily install.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h3>
|
<h2>2.2 I get undefined symbols such as bgnpolygon, v3f, etc...</h2>
|
||||||
<p>
|
<p>
|
||||||
You're application is written in IRIS GL, not OpenGL.
|
You're application is written in IRIS GL, not OpenGL.
|
||||||
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
|
IRIS GL was the predecessor to OpenGL and is a different thing (almost)
|
||||||
@@ -188,49 +199,38 @@ Mesa's not the solution.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>2.3 Where is the GLUT library?</h3>
|
<h2>2.3 Where is the GLUT library?</h2>
|
||||||
<p>
|
<p>
|
||||||
GLUT (OpenGL Utility Toolkit) is no longer in the separate
|
GLUT (OpenGL Utility Toolkit) is no longer in the separate MesaGLUT-x.y.z.tar.gz file.
|
||||||
<code>MesaGLUT-x.y.z.tar.gz</code> file.
|
|
||||||
If you don't already have GLUT installed, you should grab
|
If you don't already have GLUT installed, you should grab
|
||||||
<a href="http://freeglut.sourceforge.net/">freeglut</a>.
|
<a href="http://freeglut.sourceforge.net/">freeglut</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>2.4 Where is the GLw library?</h3>
|
<h2>2.4 Where is the GLw library?</h2>
|
||||||
<p>
|
<p>
|
||||||
GLw (OpenGL widget library) is now available from a separate <a href="https://gitlab.freedesktop.org/mesa/glw">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
|
GLw (OpenGL widget library) is now available from a separate <a href="https://cgit.freedesktop.org/mesa/glw/">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>2.5 What's the proper place for the libraries and headers?</h2>
|
<h2>2.5 What's the proper place for the libraries and headers?</h2>
|
||||||
<p>
|
<p>
|
||||||
On Linux-based systems you'll want to follow the
|
On Linux-based systems you'll want to follow the
|
||||||
<a href="https://www.khronos.org/registry/OpenGL/ABI/">Linux ABI</a> standard.
|
<a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html">Linux ABI</a> standard.
|
||||||
Basically you'll want the following:
|
Basically you'll want the following:
|
||||||
</p>
|
</p>
|
||||||
<dl>
|
<ul>
|
||||||
<dt><code>/usr/include/GL/gl.h</code></dt>
|
<li>/usr/include/GL/gl.h - the main OpenGL header
|
||||||
<dd>the main OpenGL header</dd>
|
</li><li>/usr/include/GL/glu.h - the OpenGL GLU (utility) header
|
||||||
<dt><code>/usr/include/GL/glu.h</code></dt>
|
</li><li>/usr/include/GL/glx.h - the OpenGL GLX header
|
||||||
<dd>the OpenGL GLU (utility) header</dd>
|
</li><li>/usr/include/GL/glext.h - the OpenGL extensions header
|
||||||
<dt><code>/usr/include/GL/glx.h</code></dt>
|
</li><li>/usr/include/GL/glxext.h - the OpenGL GLX extensions header
|
||||||
<dd>the OpenGL GLX header</dd>
|
</li><li>/usr/include/GL/osmesa.h - the Mesa off-screen rendering header
|
||||||
<dt><code>/usr/include/GL/glext.h</code></dt>
|
</li><li>/usr/lib/libGL.so - a symlink to libGL.so.1
|
||||||
<dd>the OpenGL extensions header</dd>
|
</li><li>/usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz
|
||||||
<dt><code>/usr/include/GL/glxext.h</code></dt>
|
</li><li>/usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library. xyz denotes the
|
||||||
<dd>the OpenGL GLX extensions header</dd>
|
|
||||||
<dt><code>/usr/include/GL/osmesa.h</code></dt>
|
|
||||||
<dd>the Mesa off-screen rendering header</dd>
|
|
||||||
<dt><code>/usr/lib/libGL.so</code></dt>
|
|
||||||
<dd>a symlink to <code>libGL.so.1</code></dd>
|
|
||||||
<dt><code>/usr/lib/libGL.so.1</code></dt>
|
|
||||||
<dd>a symlink to <code>libGL.so.1.xyz</code></dd>
|
|
||||||
<dt><code>/usr/lib/libGL.so.xyz</code></dt>
|
|
||||||
<dd>the actual OpenGL/Mesa library. xyz denotes the
|
|
||||||
Mesa version number.
|
Mesa version number.
|
||||||
</dd>
|
</li></ul>
|
||||||
</dl>
|
|
||||||
<p>
|
<p>
|
||||||
When configuring Mesa, there are three meson options that affect the install
|
When configuring Mesa, there are three meson options that affect the install
|
||||||
location that you should take care with: <code>--prefix</code>,
|
location that you should take care with: <code>--prefix</code>,
|
||||||
@@ -249,11 +249,13 @@ After determining the correct values for the install location, configure Mesa
|
|||||||
with <code>meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx</code>
|
with <code>meson configure --prefix=/usr --libdir=xxx -D dri-drivers-path=xxx</code>
|
||||||
and then install with <code>sudo ninja install</code>.
|
and then install with <code>sudo ninja install</code>.
|
||||||
</p>
|
</p>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="part3">3. Runtime / Rendering Problems</h2>
|
<h1 id="part3">3. Runtime / Rendering Problems</h1>
|
||||||
|
|
||||||
<h3>3.1 Rendering is slow / why isn't my graphics hardware being used?</h3>
|
<h2>3.1 Rendering is slow / why isn't my graphics hardware being used?</h2>
|
||||||
<p>
|
<p>
|
||||||
If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
|
If Mesa can't use its hardware accelerated drivers it falls back on one of its software renderers.
|
||||||
(eg. classic swrast, softpipe or llvmpipe)
|
(eg. classic swrast, softpipe or llvmpipe)
|
||||||
@@ -274,57 +276,60 @@ If your DRI-based driver isn't working, go to the
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>3.2 I'm seeing errors in depth (Z) buffering. Why?</h3>
|
<h2>3.2 I'm seeing errors in depth (Z) buffering. Why?</h2>
|
||||||
<p>
|
<p>
|
||||||
Make sure the ratio of the far to near clipping planes isn't too great.
|
Make sure the ratio of the far to near clipping planes isn't too great.
|
||||||
Look
|
Look
|
||||||
<a href="https://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm#0040">here</a>
|
<a href="https://www.opengl.org/resources/faq/technical/depthbuffer.htm#0040">here</a>
|
||||||
for details.
|
for details.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Mesa uses a 16-bit depth buffer by default which is smaller and faster
|
Mesa uses a 16-bit depth buffer by default which is smaller and faster
|
||||||
to clear than a 32-bit buffer but not as accurate.
|
to clear than a 32-bit buffer but not as accurate.
|
||||||
If you need a deeper you can modify the parameters to
|
If you need a deeper you can modify the parameters to
|
||||||
<code>glXChooseVisual</code> in your code.
|
<code> glXChooseVisual</code> in your code.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>3.3 Why Isn't depth buffering working at all?</h3>
|
<h2>3.3 Why Isn't depth buffering working at all?</h2>
|
||||||
<p>
|
<p>
|
||||||
Be sure you're requesting a depth buffered-visual. If you set the
|
Be sure you're requesting a depth buffered-visual. If you set the MESA_DEBUG
|
||||||
<code>MESA_DEBUG</code> environment variable it will warn you about trying
|
environment variable it will warn you about trying to enable depth testing
|
||||||
to enable depth testing when you don't have a depth buffer.
|
when you don't have a depth buffer.
|
||||||
</p>
|
</p>
|
||||||
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
|
<p>Specifically, make sure <code>glutInitDisplayMode</code> is being called
|
||||||
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
|
with <code>GLUT_DEPTH</code> or <code>glXChooseVisual</code> is being
|
||||||
called with a non-zero value for <code>GLX_DEPTH_SIZE</code>.
|
called with a non-zero value for GLX_DEPTH_SIZE.
|
||||||
</p>
|
</p>
|
||||||
<p>This discussion applies to stencil buffers, accumulation buffers and
|
<p>This discussion applies to stencil buffers, accumulation buffers and
|
||||||
alpha channels too.
|
alpha channels too.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>3.4 Why does <code>glGetString()</code> always return <code>NULL</code>?</h3>
|
<h2>3.4 Why does glGetString() always return NULL?</h2>
|
||||||
<p>
|
<p>
|
||||||
Be sure you have an active/current OpenGL rendering context before
|
Be sure you have an active/current OpenGL rendering context before
|
||||||
calling <code>glGetString</code>.
|
calling glGetString.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>3.5 <code>GL_POINTS</code> and <code>GL_LINES</code> don't touch the
|
<h2>3.5 GL_POINTS and GL_LINES don't touch the right pixels</h2>
|
||||||
right pixels</h3>
|
|
||||||
<p>
|
<p>
|
||||||
If you're trying to draw a filled region by using <code>GL_POINTS</code> or
|
If you're trying to draw a filled region by using GL_POINTS or GL_LINES
|
||||||
<code>GL_LINES</code> and seeing holes or gaps it's because of a float-to-int
|
and seeing holes or gaps it's because of a float-to-int rounding problem.
|
||||||
rounding problem. But this is not a bug. See Appendix H of the OpenGL
|
But this is not a bug.
|
||||||
Programming Guide - "OpenGL Correctness Tips". Basically, applying a
|
See Appendix H of the OpenGL Programming Guide - "OpenGL Correctness Tips".
|
||||||
translation of (0.375, 0.375, 0.0) to your coordinates will fix the problem.
|
Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates
|
||||||
|
will fix the problem.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
<h2 id="part4">4. Developer Questions</h2>
|
|
||||||
|
|
||||||
<h3>4.1 How can I contribute?</h3>
|
<h1 id="part4">4. Developer Questions</h1>
|
||||||
|
|
||||||
|
<h2>4.1 How can I contribute?</h2>
|
||||||
<p>
|
<p>
|
||||||
First, join the <a href="lists.html">mesa-dev mailing list</a>.
|
First, join the <a href="lists.html">mesa-dev mailing list</a>.
|
||||||
That's where Mesa development is discussed.
|
That's where Mesa development is discussed.
|
||||||
@@ -338,7 +343,7 @@ You should read it.
|
|||||||
extensions, writing hardware drivers (for the DRI), and code optimization.
|
extensions, writing hardware drivers (for the DRI), and code optimization.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>4.2 How do I write a new device driver?</h3>
|
<h2>4.2 How do I write a new device driver?</h2>
|
||||||
<p>
|
<p>
|
||||||
Unfortunately, writing a device driver isn't easy.
|
Unfortunately, writing a device driver isn't easy.
|
||||||
It requires detailed understanding of OpenGL, the Mesa code, and your
|
It requires detailed understanding of OpenGL, the Mesa code, and your
|
||||||
@@ -362,8 +367,7 @@ the archives) is a good way to get information.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>4.3 Why isn't <code>GL_EXT_texture_compression_s3tc</code> implemented in
|
<h2>4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa?</h2>
|
||||||
Mesa?</h3>
|
|
||||||
<p>
|
<p>
|
||||||
Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
|
Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
|
||||||
support due to intellectual property (IP) and/or patent issues around the s3tc
|
support due to intellectual property (IP) and/or patent issues around the s3tc
|
||||||
|
@@ -127,14 +127,14 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
|||||||
- Enhanced per-sample shading DONE ()
|
- Enhanced per-sample shading DONE ()
|
||||||
- Interpolation functions DONE (softpipe)
|
- Interpolation functions DONE (softpipe)
|
||||||
- New overload resolution rules DONE (softpipe)
|
- New overload resolution rules DONE (softpipe)
|
||||||
GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
GL_ARB_gpu_shader_fp64 DONE (i965/gen7+, llvmpipe, softpipe)
|
||||||
GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50)
|
GL_ARB_sample_shading DONE (freedreno/a6xx, i965/gen6+, nv50)
|
||||||
GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_shader_subroutine DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_tessellation_shader DONE (i965/gen7+)
|
GL_ARB_tessellation_shader DONE (i965/gen7+)
|
||||||
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
|
GL_ARB_texture_buffer_object_rgb32 DONE (freedreno, i965/gen6+, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe)
|
||||||
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_texture_gather DONE (freedreno, i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_texture_query_lod DONE (freedreno, i965, nv50, llvmpipe, softpipe)
|
||||||
GL_ARB_transform_feedback2 DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_transform_feedback2 DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||||
|
|
||||||
@@ -145,15 +145,15 @@ GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
|||||||
GL_ARB_get_program_binary DONE (0 or 1 binary formats)
|
GL_ARB_get_program_binary DONE (0 or 1 binary formats)
|
||||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||||
GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
|
GL_ARB_shader_precision DONE (i965/gen7+, all drivers that support GLSL 4.10)
|
||||||
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
GL_ARB_vertex_attrib_64bit DONE (i965/gen7+, llvmpipe, softpipe)
|
||||||
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_viewport_array DONE (i965, nv50, llvmpipe, softpipe)
|
||||||
|
|
||||||
|
|
||||||
GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
GL 4.2, GLSL 4.20 -- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||||
|
|
||||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965)
|
GL_ARB_texture_compression_bptc DONE (freedreno, i965)
|
||||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965, softpipe)
|
||||||
GL_ARB_texture_storage DONE (all drivers)
|
GL_ARB_texture_storage DONE (all drivers)
|
||||||
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||||
@@ -171,7 +171,7 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
|
|||||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||||
GL_ARB_clear_buffer_object DONE (all drivers)
|
GL_ARB_clear_buffer_object DONE (all drivers)
|
||||||
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe)
|
GL_ARB_compute_shader DONE (freedreno/a5xx+, i965, softpipe)
|
||||||
GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe, swr)
|
GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe)
|
||||||
GL_KHR_debug DONE (all drivers)
|
GL_KHR_debug DONE (all drivers)
|
||||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe)
|
GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe)
|
||||||
@@ -182,9 +182,9 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
|
|||||||
GL_ARB_program_interface_query DONE (all drivers)
|
GL_ARB_program_interface_query DONE (all drivers)
|
||||||
GL_ARB_robust_buffer_access_behavior DONE (i965)
|
GL_ARB_robust_buffer_access_behavior DONE (i965)
|
||||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, softpipe)
|
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965, softpipe)
|
||||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, llvmpipe, softpipe)
|
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965, softpipe)
|
||||||
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, llvmpipe, swr)
|
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, softpipe, llvmpipe)
|
||||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||||
GL_ARB_texture_view DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_texture_view DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||||
@@ -209,17 +209,17 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
|
|||||||
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
|
GL_ARB_texture_stencil8 DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
|
||||||
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
|
GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||||
|
|
||||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi, r600
|
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
||||||
|
|
||||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, softpipe, virgl)
|
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, r600, softpipe, virgl)
|
||||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_clip_control DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl)
|
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
|
||||||
GL_ARB_cull_distance DONE (i965, nv50, llvmpipe, softpipe, swr, virgl)
|
GL_ARB_cull_distance DONE (i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
|
||||||
GL_ARB_derivative_control DONE (i965, nv50, virgl)
|
GL_ARB_derivative_control DONE (i965, nv50, r600, virgl)
|
||||||
GL_ARB_direct_state_access DONE (all drivers)
|
GL_ARB_direct_state_access DONE (all drivers)
|
||||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
GL_ARB_get_texture_sub_image DONE (all drivers)
|
||||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, virgl)
|
GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600, virgl)
|
||||||
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, virgl)
|
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, r600, virgl)
|
||||||
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
||||||
GL_KHR_robustness DONE (freedreno, i965)
|
GL_KHR_robustness DONE (freedreno, i965)
|
||||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||||
@@ -230,7 +230,7 @@ GL 4.6, GLSL 4.60
|
|||||||
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, radeonsi, virgl)
|
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, radeonsi, virgl)
|
||||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||||
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
|
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
|
||||||
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, radeonsi, llvmpipe, softpipe, virgl)
|
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx+, i965/gen7+, nvc0, r600, radeonsi, softpipe, virgl)
|
||||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||||
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
||||||
GL_ARB_spirv_extensions in progress (Nicolai Hähnle, Ian Romanick)
|
GL_ARB_spirv_extensions in progress (Nicolai Hähnle, Ian Romanick)
|
||||||
@@ -249,10 +249,10 @@ GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl
|
|||||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
|
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
|
||||||
GL_ARB_program_interface_query DONE (all drivers)
|
GL_ARB_program_interface_query DONE (all drivers)
|
||||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
GL_ARB_shader_image_load_store DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||||
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
GL_ARB_shader_image_size DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+, llvmpipe, softpipe)
|
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx+, i965/gen7+, softpipe)
|
||||||
GL_ARB_shading_language_packing DONE (all drivers)
|
GL_ARB_shading_language_packing DONE (all drivers)
|
||||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||||
GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr)
|
GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr)
|
||||||
@@ -303,10 +303,10 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
|||||||
GL_ARB_fragment_shader_interlock DONE (i965)
|
GL_ARB_fragment_shader_interlock DONE (i965)
|
||||||
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
|
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
|
||||||
GL_ARB_parallel_shader_compile DONE (all drivers)
|
GL_ARB_parallel_shader_compile DONE (all drivers)
|
||||||
GL_ARB_post_depth_coverage DONE (i965, nvc0, radeonsi)
|
GL_ARB_post_depth_coverage DONE (i965, nvc0)
|
||||||
GL_ARB_robustness_isolation not started
|
GL_ARB_robustness_isolation not started
|
||||||
GL_ARB_sample_locations DONE (nvc0)
|
GL_ARB_sample_locations DONE (nvc0)
|
||||||
GL_ARB_seamless_cubemap_per_texture DONE (etnaviv/SEAMLESS_CUBE_MAP, freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
GL_ARB_seamless_cubemap_per_texture DONE (freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
||||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
||||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
|
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
|
||||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
|
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
|
||||||
|
@@ -8,13 +8,13 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Help Wanted</h1>
|
<h1>Help Wanted / To-Do List</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
We can always use more help with the Mesa project.
|
We can always use more help with the Mesa project.
|
||||||
@@ -32,8 +32,8 @@ Just applying patches, testing and reporting back is helpful.
|
|||||||
There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/describecomponents.cgi?product=Mesa">bug database</a>.
|
There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/describecomponents.cgi?product=Mesa">bug database</a>.
|
||||||
<li>
|
<li>
|
||||||
<b>Remove aliasing warnings.</b>
|
<b>Remove aliasing warnings.</b>
|
||||||
Enable gcc's <code>-Wstrict-aliasing=2 -fstrict-aliasing</code> arguments, and
|
Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
||||||
track down aliasing issues in the code.
|
issues in the code.
|
||||||
<li>
|
<li>
|
||||||
<b>Contribute more tests to
|
<b>Contribute more tests to
|
||||||
<a href="https://piglit.freedesktop.org/">Piglit</a>.</b>
|
<a href="https://piglit.freedesktop.org/">Piglit</a>.</b>
|
||||||
@@ -48,8 +48,7 @@ You can find some further To-do lists here:
|
|||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/features.txt">
|
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/features.txt">
|
||||||
<code>features.txt</code></a> - Status of OpenGL 3.x / 4.x features in
|
<b>features.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
|
||||||
Mesa.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -57,9 +56,9 @@ You can find some further To-do lists here:
|
|||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://dri.freedesktop.org/wiki/R600ToDo">
|
<li><a href="https://dri.freedesktop.org/wiki/R600ToDo">
|
||||||
<code>r600g</code></a> - Driver for ATI/AMD R600 - Northern Island.</li>
|
<b>r600g</b></a> - Driver for ATI/AMD R600 - Northern Island.</li>
|
||||||
<li><a href="https://dri.freedesktop.org/wiki/R300ToDo">
|
<li><a href="https://dri.freedesktop.org/wiki/R300ToDo">
|
||||||
<code>r300g</code></a> - Driver for ATI R300 - R500.</li>
|
<b>r300g</b></a> - Driver for ATI R300 - R500.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
159
docs/index.html
159
docs/index.html
@@ -8,74 +8,13 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>News</h1>
|
<h1>News</h1>
|
||||||
|
|
||||||
<h2>July 23, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.1.3.html">Mesa 19.1.3</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>July 9, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.1.2.html">Mesa 19.1.2</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>June 26, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.0.8.html">Mesa 19.0.8</a> is released.
|
|
||||||
This is an emergency bug fix release. Users of 19.0.7 should updated to 19.0.8
|
|
||||||
or 19.1.1 immediately.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>June 25, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.1.1.html">Mesa 19.1.1</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>June 24, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.0.7.html">Mesa 19.0.7</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 19.0.7 will be the final release in the
|
|
||||||
19.0 series. Users of 19.0 are encouraged to migrate to the 19.1
|
|
||||||
series in order to obtain future fixes.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>June 11, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.1.0.html">Mesa 19.1.0</a> is released.
|
|
||||||
This is a new development release. See the release notes for more
|
|
||||||
information about this release
|
|
||||||
</p>
|
|
||||||
<h2>June 5, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.0.6.html">Mesa 19.0.6</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>May 21, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.0.5.html">Mesa 19.0.5</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>May 9, 2019</h2>
|
|
||||||
<p>
|
|
||||||
<a href="relnotes/19.0.4.html">Mesa 19.0.4</a> is released.
|
|
||||||
This is a bug-fix release.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>April 24, 2019</h2>
|
<h2>April 24, 2019</h2>
|
||||||
<p>
|
<p>
|
||||||
<a href="relnotes/19.0.3.html">Mesa 19.0.3</a> is released.
|
<a href="relnotes/19.0.3.html">Mesa 19.0.3</a> is released.
|
||||||
@@ -92,8 +31,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/18.3.6.html">Mesa 18.3.6</a> is released.
|
<a href="relnotes/18.3.6.html">Mesa 18.3.6</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 18.3.6 will be the final release in the
|
NOTE: It is anticipated that 18.3.6 will be the final release in the
|
||||||
18.3 series. Users of 18.3 are encouraged to migrate to the 19.0
|
18.3 series. Users of 18.3 are encouraged to migrate to the 19.0
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -140,8 +78,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/18.2.8.html">Mesa 18.2.8</a> is released.
|
<a href="relnotes/18.2.8.html">Mesa 18.2.8</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 18.2.8 will be the final release in the
|
NOTE: It is anticipated that 18.2.8 will be the final release in the
|
||||||
18.2 series. Users of 18.2 are encouraged to migrate to the 18.3
|
18.2 series. Users of 18.2 are encouraged to migrate to the 18.3
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -200,8 +137,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/18.1.9.html">Mesa 18.1.9</a> is released.
|
<a href="relnotes/18.1.9.html">Mesa 18.1.9</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 18.1.9 will be the final release in the
|
NOTE: It is anticipated that 18.1.9 will be the final release in the
|
||||||
18.1 series. Users of 18.1 are encouraged to migrate to the 18.2
|
18.1 series. Users of 18.1 are encouraged to migrate to the 18.2
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -263,8 +199,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/18.0.5.html">Mesa 18.0.5</a> is released.
|
<a href="relnotes/18.0.5.html">Mesa 18.0.5</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 18.0.5 will be the final release in the
|
NOTE: It is anticipated that 18.0.5 will be the final release in the
|
||||||
18.0 series. Users of 18.0 are encouraged to migrate to the 18.1
|
18.0 series. Users of 18.0 are encouraged to migrate to the 18.1
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -311,8 +246,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/17.3.9.html">Mesa 17.3.9</a> is released.
|
<a href="relnotes/17.3.9.html">Mesa 17.3.9</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 17.3.9 will be the final release in the
|
NOTE: It is anticipated that 17.3.9 will be the final release in the
|
||||||
17.3 series. Users of 17.3 are encouraged to migrate to the 18.0
|
17.3 series. Users of 17.3 are encouraged to migrate to the 18.0
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -371,8 +305,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/17.2.8.html">Mesa 17.2.8</a> is released.
|
<a href="relnotes/17.2.8.html">Mesa 17.2.8</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 17.2.8 will be the final release in the
|
NOTE: It is anticipated that 17.2.8 will be the final release in the
|
||||||
17.2 series. Users of 17.2 are encouraged to migrate to the 17.3
|
17.2 series. Users of 17.2 are encouraged to migrate to the 17.3
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -431,8 +364,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/17.1.10.html">Mesa 17.1.10</a> is released.
|
<a href="relnotes/17.1.10.html">Mesa 17.1.10</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 17.1.10 will be the final release in the
|
NOTE: It is anticipated that 17.1.10 will be the final release in the
|
||||||
17.1 series. Users of 17.1 are encouraged to migrate to the 17.2
|
17.1 series. Users of 17.1 are encouraged to migrate to the 17.2
|
||||||
series in order to obtain future fixes.
|
series in order to obtain future fixes.
|
||||||
@@ -503,8 +435,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/17.0.7.html">Mesa 17.0.7</a> is released.
|
<a href="relnotes/17.0.7.html">Mesa 17.0.7</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 17.0.7 will be the final release in the 17.0
|
NOTE: It is anticipated that 17.0.7 will be the final release in the 17.0
|
||||||
series. Users of 17.0 are encouraged to migrate to the 17.1 series in order
|
series. Users of 17.0 are encouraged to migrate to the 17.1 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -553,8 +484,7 @@ This is a bug-fix release.
|
|||||||
<a href="relnotes/17.0.2.html">Mesa 17.0.2</a> are released.
|
<a href="relnotes/17.0.2.html">Mesa 17.0.2</a> are released.
|
||||||
|
|
||||||
These are bug-fix releases from the 13.0 and 17.0 branches, respectively.
|
These are bug-fix releases from the 13.0 and 17.0 branches, respectively.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 13.0.6 will be the final release in the 13.0
|
NOTE: It is anticipated that 13.0.6 will be the final release in the 13.0
|
||||||
series. Users of 13.0 are encouraged to migrate to the 17.0 series in order
|
series. Users of 13.0 are encouraged to migrate to the 17.0 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -589,8 +519,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/12.0.6.html">Mesa 12.0.6</a> is released.
|
<a href="relnotes/12.0.6.html">Mesa 12.0.6</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: This is an extra release for the 12.0 stable branch, as per developers'
|
NOTE: This is an extra release for the 12.0 stable branch, as per developers'
|
||||||
feedback. It is anticipated that 12.0.6 will be the final release in the 12.0
|
feedback. It is anticipated that 12.0.6 will be the final release in the 12.0
|
||||||
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
||||||
@@ -607,8 +536,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/12.0.5.html">Mesa 12.0.5</a> is released.
|
<a href="relnotes/12.0.5.html">Mesa 12.0.5</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 12.0.5 will be the final release in the 12.0
|
NOTE: It is anticipated that 12.0.5 will be the final release in the 12.0
|
||||||
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
series. Users of 12.0 are encouraged to migrate to the 13.0 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -670,8 +598,7 @@ about the release.
|
|||||||
<a href="relnotes/11.2.2.html">Mesa 11.2.2</a> are released.
|
<a href="relnotes/11.2.2.html">Mesa 11.2.2</a> are released.
|
||||||
|
|
||||||
These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
|
These are bug-fix releases from the 11.1 and 11.2 branches, respectively.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 11.1.4 will be the final release in the 11.1.4
|
NOTE: It is anticipated that 11.1.4 will be the final release in the 11.1.4
|
||||||
series. Users of 11.1 are encouraged to migrate to the 11.2 series in order
|
series. Users of 11.1 are encouraged to migrate to the 11.2 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -702,8 +629,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/11.0.9.html">Mesa 11.0.9</a> is released.
|
<a href="relnotes/11.0.9.html">Mesa 11.0.9</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 11.0.9 will be the final release in the 11.0
|
NOTE: It is anticipated that 11.0.9 will be the final release in the 11.0
|
||||||
series. Users of 11.0 are encouraged to migrate to the 11.1 series in order
|
series. Users of 11.0 are encouraged to migrate to the 11.1 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -767,8 +693,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/10.6.9.html">Mesa 10.6.9</a> is released.
|
<a href="relnotes/10.6.9.html">Mesa 10.6.9</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 10.6.9 will be the final release in the 10.6
|
NOTE: It is anticipated that 10.6.9 will be the final release in the 10.6
|
||||||
series. Users of 10.6 are encouraged to migrate to the 11.0 series in order
|
series. Users of 10.6 are encouraged to migrate to the 11.0 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -839,8 +764,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/10.5.9.html">Mesa 10.5.9</a> is released.
|
<a href="relnotes/10.5.9.html">Mesa 10.5.9</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 10.5.9 will be the final release in the 10.5
|
NOTE: It is anticipated that 10.5.9 will be the final release in the 10.5
|
||||||
series. Users of 10.5 are encouraged to migrate to the 10.6 series in order
|
series. Users of 10.5 are encouraged to migrate to the 10.6 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -950,8 +874,7 @@ This is a bug-fix release.
|
|||||||
and <a href="relnotes/10.4.2.html">Mesa 10.4.2</a> are released.
|
and <a href="relnotes/10.4.2.html">Mesa 10.4.2</a> are released.
|
||||||
|
|
||||||
These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
|
These are bug-fix releases from the 10.3 and 10.4 branches, respectively.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 10.3.7 will be the final release in the 10.3
|
NOTE: It is anticipated that 10.3.7 will be the final release in the 10.3
|
||||||
series. Users of 10.3 are encouraged to migrate to the 10.4 series in order
|
series. Users of 10.3 are encouraged to migrate to the 10.4 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -1002,8 +925,7 @@ This is a bug-fix release.
|
|||||||
and <a href="relnotes/10.3.1.html">Mesa 10.3.1</a> are released.
|
and <a href="relnotes/10.3.1.html">Mesa 10.3.1</a> are released.
|
||||||
|
|
||||||
These are bug-fix releases from the 10.2 and 10.3 branches, respectively.
|
These are bug-fix releases from the 10.2 and 10.3 branches, respectively.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: It is anticipated that 10.2.9 will be the final release in the 10.2
|
NOTE: It is anticipated that 10.2.9 will be the final release in the 10.2
|
||||||
series. Users of 10.2 are encouraged to migrate to the 10.3 series in order
|
series. Users of 10.2 are encouraged to migrate to the 10.3 series in order
|
||||||
to obtain future fixes.
|
to obtain future fixes.
|
||||||
@@ -1115,8 +1037,7 @@ This is a bug-fix release.
|
|||||||
<p>
|
<p>
|
||||||
<a href="relnotes/10.0.5.html">Mesa 10.0.5</a> is released.
|
<a href="relnotes/10.0.5.html">Mesa 10.0.5</a> is released.
|
||||||
This is a bug-fix release.
|
This is a bug-fix release.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
NOTE: Since the 10.1.1 release is being released concurrently, it is
|
NOTE: Since the 10.1.1 release is being released concurrently, it is
|
||||||
anticipated that 10.0.5 will be the final release in the 10.0
|
anticipated that 10.0.5 will be the final release in the 10.0
|
||||||
series. Users of 10.0 are encouraged to migrate to the 10.1 series in
|
series. Users of 10.0 are encouraged to migrate to the 10.1 series in
|
||||||
@@ -1595,7 +1516,7 @@ with a new test that does over 130 tests of the
|
|||||||
shading language and built-in functions.
|
shading language and built-in functions.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>April 4, 2007</h2>
|
<h2>April 2007</h2>
|
||||||
<p>
|
<p>
|
||||||
Thomas Hellström of Tungsten Graphics has written a whitepaper
|
Thomas Hellström of Tungsten Graphics has written a whitepaper
|
||||||
describing the new DRI memory management system.
|
describing the new DRI memory management system.
|
||||||
@@ -2048,7 +1969,7 @@ Mesa 5.0.2 has been released. This is a stable, bug-fix release.
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2>June 8, 2003</h2>
|
<h2>June 2003</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mesa's directory tree has been overhauled.
|
Mesa's directory tree has been overhauled.
|
||||||
@@ -2425,7 +2346,7 @@ Here's what's new:</p>
|
|||||||
|
|
||||||
<h2>April 29, 2001</h2>
|
<h2>April 29, 2001</h2>
|
||||||
<p>New Mesa website</p>
|
<p>New Mesa website</p>
|
||||||
<p>Mark Manning produced the new website. Thanks, Mark!</p>
|
<p>Mark Manning produced the new website.<br>Thanks, Mark!</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>February 14, 2001</h2>
|
<h2>February 14, 2001</h2>
|
||||||
@@ -2544,9 +2465,8 @@ just bug fixes.</p>
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>Please report any problems with this release ASAP. Bugs should be filed on the
|
<p>Please report any problems with this release ASAP. Bugs should be filed on the
|
||||||
Mesa3D website at sourceforge.
|
Mesa3D website at sourceforge.<br>
|
||||||
</p>
|
After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.</p>
|
||||||
<p>After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.</p>
|
|
||||||
<p>-- Brian</p>
|
<p>-- Brian</p>
|
||||||
|
|
||||||
<h2>December 17, 1999</h2>
|
<h2>December 17, 1999</h2>
|
||||||
@@ -2591,27 +2511,21 @@ ftp, and CVS services aren't fully restored yet. Please be patient.</p>
|
|||||||
<p>-Brian</p>
|
<p>-Brian</p>
|
||||||
|
|
||||||
<h2>June 7, 1999</h2>
|
<h2>June 7, 1999</h2>
|
||||||
<p>RPMS of the nVidia RIVA server can be found at
|
<p>RPMS of the nVidia RIVA server can be found at <code>ftp://ftp.mesa3d.org/mesa/misc/nVidia/</code>.</p>
|
||||||
<a href="ftp://ftp.mesa3d.org/mesa/misc/nVidia/">
|
|
||||||
ftp://ftp.mesa3d.org/mesa/misc/nVidia/</a>.</p>
|
|
||||||
|
|
||||||
<h2>June 2, 1999</h2>
|
<h2>June 2, 1999</h2>
|
||||||
<p><a href="https://www.nvidia.com/">nVidia</a> has released some Linux binaries for
|
<p><a href="https://www.nvidia.com/">nVidia</a> has released some Linux binaries for
|
||||||
xfree86 3.3.3.1, along with the <b>full source</b>, which includes GLX acceleration
|
xfree86 3.3.3.1, along with the <b>full source</b>, which includes GLX acceleration
|
||||||
based on Mesa 3.0. They can be downloaded from
|
based on Mesa 3.0. They can be downloaded from <code>https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</code>.</p>
|
||||||
<a href="https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html">
|
|
||||||
https://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html</a>.</p>
|
|
||||||
|
|
||||||
<h2>May 24, 1999</h2>
|
<h2>May 24, 1999</h2>
|
||||||
<p>Beta 2 of Mesa 3.1 has been make available at
|
<p>Beta 2 of Mesa 3.1 has been make available at <code>ftp://ftp.mesa3d.org/mesa/beta/</code>.
|
||||||
<a href="ftp://ftp.mesa3d.org/mesa/beta/">ftp://ftp.mesa3d.org/mesa/beta/</a>. If you are into the
|
If you are into the quake scene, you may want to try this out, as it contains some
|
||||||
quake scene, you may want to try this out, as it contains some optimizations
|
optimizations specifically in the Q3A rendering path.
|
||||||
specifically in the Q3A rendering path.
|
|
||||||
|
|
||||||
<h2>May 13, 1999</h2>
|
<h2>May 13, 1999</h2>
|
||||||
<p>For those interested in the integration of Mesa into XFree86 4.0, Precision Insight
|
<p>For those interested in the integration of Mesa into XFree86 4.0, Precision Insight
|
||||||
has posted their lowlevel design documents at
|
has posted their lowlevel design documents at <code>http://www.precisioninsight.com</code>.</p>
|
||||||
<a href="http://www.precisioninsight.com">www.precisioninsight.com</a>.</p>
|
|
||||||
|
|
||||||
<h2>May 13, 1999</h2>
|
<h2>May 13, 1999</h2>
|
||||||
<pre>May 1999 - John Carmack of id Software, Inc. has made a donation of
|
<pre>May 1999 - John Carmack of id Software, Inc. has made a donation of
|
||||||
@@ -2637,11 +2551,11 @@ grateful.
|
|||||||
|
|
||||||
<h2>May 1, 1999</h2>
|
<h2>May 1, 1999</h2>
|
||||||
<p>John Carmack made an interesting .plan update yesterday:</p>
|
<p>John Carmack made an interesting .plan update yesterday:</p>
|
||||||
<pre>
|
<blockquote>
|
||||||
I put together a document on optimizing OpenGL drivers for Q3 that should be helpful to the various Linux 3D teams.
|
<i>"I put together a document on optimizing OpenGL drivers for Q3 that
|
||||||
|
should be helpful to the various Linux 3D teams.</i><br>
|
||||||
http://www.quake3arena.com/news/glopt.html
|
http://www.quake3arena.com/news/glopt.html"
|
||||||
</pre>
|
</blockquote>
|
||||||
|
|
||||||
<h2>April 7, 1999</h2>
|
<h2>April 7, 1999</h2>
|
||||||
<p>Updated the Mesa contributors section and added links to RPM Mesa packages.</p>
|
<p>Updated the Mesa contributors section and added links to RPM Mesa packages.</p>
|
||||||
@@ -2651,8 +2565,7 @@ http://www.quake3arena.com/news/glopt.html
|
|||||||
|
|
||||||
<h2>February 16, 1999</h2>
|
<h2>February 16, 1999</h2>
|
||||||
<p><a href="https://www.sgi.com/">SGI</a> releases its
|
<p><a href="https://www.sgi.com/">SGI</a> releases its
|
||||||
<a href="http://web.archive.org/web/20040805154836/http://www.sgi.com/software/opensource/glx/download.html">GLX source code</a>.
|
<a href="https://www.sgi.com/software/opensource/glx/">GLX source code</a>.</p>
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2>January 22, 1999</h2>
|
<h2>January 22, 1999</h2>
|
||||||
<p><a href="https://www.mesa3d.org">www.mesa3d.org</a> established</p>
|
<p><a href="https://www.mesa3d.org">www.mesa3d.org</a> established</p>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -31,11 +31,13 @@
|
|||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="prereq-general">1. Prerequisites for building</h2>
|
<h1 id="prereq-general">1. Prerequisites for building</h1>
|
||||||
|
|
||||||
<h3>1.1 General</h3>
|
<h2>1.1 General</h2>
|
||||||
|
|
||||||
<h4>Build system</h4>
|
<p>
|
||||||
|
Build system.
|
||||||
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms.
|
<li><a href="https://mesonbuild.com">meson</a> is required when building on *nix platforms.
|
||||||
@@ -49,7 +51,6 @@ is used when when building ARC.
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h4>Compiler</h4>
|
|
||||||
<p>
|
<p>
|
||||||
The following compilers are known to work, if you know of others or you're
|
The following compilers are known to work, if you know of others or you're
|
||||||
willing to maintain support for other compiler get in touch.
|
willing to maintain support for other compiler get in touch.
|
||||||
@@ -62,8 +63,9 @@ willing to maintain support for other compiler get in touch.
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h4>Third party/extra tools.</h4>
|
|
||||||
<p>
|
<p>
|
||||||
|
Third party/extra tools.
|
||||||
|
<br>
|
||||||
<strong>Note</strong>: These should not be required, when building from a release tarball. If
|
<strong>Note</strong>: These should not be required, when building from a release tarball. If
|
||||||
you think you've spotted a bug let developers know by filing a
|
you think you've spotted a bug let developers know by filing a
|
||||||
<a href="bugs.html">bug report</a>.
|
<a href="bugs.html">bug report</a>.
|
||||||
@@ -79,14 +81,14 @@ When building with meson 3.5 or newer is required.
|
|||||||
Python Mako module is required. Version 0.8.0 or later should work.
|
Python Mako module is required. Version 0.8.0 or later should work.
|
||||||
</li>
|
</li>
|
||||||
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
|
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
|
||||||
<p>
|
<div>
|
||||||
On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
|
On Linux systems, flex and bison versions 2.5.35 and 2.4.1, respectively,
|
||||||
(or later) should work.
|
(or later) should work.
|
||||||
On Windows with MinGW, install flex and bison with:
|
On Windows with MinGW, install flex and bison with:
|
||||||
<pre>mingw-get install msys-flex msys-bison</pre>
|
<pre>mingw-get install msys-flex msys-bison</pre>
|
||||||
For MSVC on Windows, install
|
For MSVC on Windows, install
|
||||||
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
<a href="http://winflexbison.sourceforge.net/">Win flex-bison</a>.
|
||||||
</p>
|
</div>
|
||||||
</ul>
|
</ul>
|
||||||
<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
|
<p><strong>Note</strong>: Some versions can be buggy (eg. flex 2.6.2) so do try others if things fail.</p>
|
||||||
|
|
||||||
@@ -112,7 +114,7 @@ the packaging tool used by your distro.
|
|||||||
... # others
|
... # others
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<h2 id="meson">2. Building with meson</h2>
|
<h1 id="meson">2. Building with meson</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Meson is the latest build system in mesa, it is currently able to build for
|
Meson is the latest build system in mesa, it is currently able to build for
|
||||||
@@ -132,7 +134,7 @@ Please read the <a href="meson.html">detailed meson instructions</a>
|
|||||||
for more information
|
for more information
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h2>
|
<h1 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Autoconf support was removed in Mesa 19.1.0. Please use meson instead.
|
Autoconf support was removed in Mesa 19.1.0. Please use meson instead.
|
||||||
@@ -140,7 +142,7 @@ for more information
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="scons">4. Building with SCons (Windows/Linux)</h2>
|
<h1 id="scons">4. Building with SCons (Windows/Linux)</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To build Mesa with SCons on Linux or Windows do
|
To build Mesa with SCons on Linux or Windows do
|
||||||
@@ -176,7 +178,7 @@ Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2 id="android">5. Building with AOSP (Android)</h2>
|
<h1 id="android">5. Building with AOSP (Android)</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
Currently one can build Mesa for Android as part of the AOSP project, yet
|
||||||
@@ -195,7 +197,7 @@ Android-x86 and/or other resources.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="libs">6. Library Information</h2>
|
<h1 id="libs">6. Library Information</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When compilation has finished, look in the top-level <code>lib/</code>
|
When compilation has finished, look in the top-level <code>lib/</code>
|
||||||
@@ -212,8 +214,9 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> lib
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b>libGL</b> is the main OpenGL library (i.e. Mesa), while <b>libOSMesa</b>
|
<b>libGL</b> is the main OpenGL library (i.e. Mesa).
|
||||||
is the OSMesa (Off-Screen) interface library.
|
<br>
|
||||||
|
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -232,7 +235,7 @@ versions of libGL and device drivers.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="pkg-config">7. Building OpenGL programs with pkg-config</h2>
|
<h1 id="pkg-config">7. Building OpenGL programs with pkg-config</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Running <code>ninja install</code> will install package configuration files
|
Running <code>ninja install</code> will install package configuration files
|
||||||
@@ -251,6 +254,8 @@ For example, compiling and linking a GLUT application can be done with:
|
|||||||
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
|
gcc `pkg-config --cflags --libs glut` mydemo.c -o mydemo
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -2,13 +2,13 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Introduction</title>
|
<title>Mesa Introduction</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -50,7 +50,7 @@ systems.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Project History</h2>
|
<h1>Project History</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Mesa project was originally started by Brian Paul.
|
The Mesa project was originally started by Brian Paul.
|
||||||
@@ -185,7 +185,7 @@ of the OpenGL, OpenGL ES and Vulkan specifications.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Major Versions</h2>
|
<h1>Major Versions</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This is a summary of the major versions of Mesa.
|
This is a summary of the major versions of Mesa.
|
||||||
@@ -194,7 +194,7 @@ of the OpenGL specification is implemented.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 12.x features</h3>
|
<h2>Version 12.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
|
Version 12.x of Mesa implements the OpenGL 4.3 API, but not all drivers
|
||||||
support OpenGL 4.3.
|
support OpenGL 4.3.
|
||||||
@@ -204,21 +204,21 @@ Initial support for Vulkan is also included.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 11.x features</h3>
|
<h2>Version 11.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
|
Version 11.x of Mesa implements the OpenGL 4.1 API, but not all drivers
|
||||||
support OpenGL 4.1.
|
support OpenGL 4.1.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 10.x features</h3>
|
<h2>Version 10.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
|
Version 10.x of Mesa implements the OpenGL 3.3 API, but not all drivers
|
||||||
support OpenGL 3.3.
|
support OpenGL 3.3.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 9.x features</h3>
|
<h2>Version 9.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 9.x of Mesa implements the OpenGL 3.1 API.
|
Version 9.x of Mesa implements the OpenGL 3.1 API.
|
||||||
While the driver for Intel Sandy Bridge and Ivy Bridge is the only
|
While the driver for Intel Sandy Bridge and Ivy Bridge is the only
|
||||||
@@ -233,7 +233,7 @@ tracker for OpenCL.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 8.x features</h3>
|
<h2>Version 8.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 8.x of Mesa implements the OpenGL 3.0 API.
|
Version 8.x of Mesa implements the OpenGL 3.0 API.
|
||||||
The developers at Intel deserve a lot of credit for implementing most
|
The developers at Intel deserve a lot of credit for implementing most
|
||||||
@@ -242,14 +242,14 @@ the i965 driver.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 7.x features</h3>
|
<h2>Version 7.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
|
Version 7.x of Mesa implements the OpenGL 2.1 API. The main feature
|
||||||
of OpenGL 2.x is the OpenGL Shading Language.
|
of OpenGL 2.x is the OpenGL Shading Language.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 6.x features</h3>
|
<h2>Version 6.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 6.x of Mesa implements the OpenGL 1.5 API with the following
|
Version 6.x of Mesa implements the OpenGL 1.5 API with the following
|
||||||
extensions incorporated as standard features:
|
extensions incorporated as standard features:
|
||||||
@@ -289,7 +289,7 @@ OpenGL specification</a> for more details.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 5.x features</h3>
|
<h2>Version 5.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
|
Version 5.x of Mesa implements the OpenGL 1.4 API with the following
|
||||||
extensions incorporated as standard features:
|
extensions incorporated as standard features:
|
||||||
@@ -315,7 +315,7 @@ extensions incorporated as standard features:
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 4.x features</h3>
|
<h2>Version 4.x features</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
|
Version 4.x of Mesa implements the OpenGL 1.3 API with the following
|
||||||
@@ -334,7 +334,7 @@ extensions incorporated as standard features:
|
|||||||
<li>GL_ARB_transpose_matrix
|
<li>GL_ARB_transpose_matrix
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Version 3.x features</h3>
|
<h2>Version 3.x features</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
|
Version 3.x of Mesa implements the OpenGL 1.2 API with the following
|
||||||
@@ -350,7 +350,7 @@ features:
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h3>Version 2.x features</h3>
|
<h2>Version 2.x features</h2>
|
||||||
<p>
|
<p>
|
||||||
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
|
Version 2.x of Mesa implements the OpenGL 1.1 API with the following
|
||||||
features.
|
features.
|
||||||
|
@@ -2,21 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>License and Copyright</title>
|
<title>License / Copyright Information</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>License and Copyright</h1>
|
<h1>Disclaimer</h1>
|
||||||
|
|
||||||
<h2>Disclaimer</h2>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mesa is a 3-D graphics library with an API which is very similar to
|
Mesa is a 3-D graphics library with an API which is very similar to
|
||||||
@@ -34,7 +32,7 @@ vendor.
|
|||||||
<p>
|
<p>
|
||||||
Please do not refer to the library as <em>MesaGL</em> (for legal
|
Please do not refer to the library as <em>MesaGL</em> (for legal
|
||||||
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
|
reasons). It's just <em>Mesa</em> or <em>The Mesa 3-D graphics
|
||||||
library</em>.
|
library</em>. <br>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -44,7 +42,7 @@ library</em>.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>License / Copyright Information</h2>
|
<h1>License / Copyright Information</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Mesa distribution consists of several components. Different copyrights
|
The Mesa distribution consists of several components. Different copyrights
|
||||||
@@ -84,7 +82,7 @@ SOFTWARE.
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2>Attention, Contributors</h2>
|
<h1>Attention, Contributors</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When contributing to the Mesa project you must agree to the licensing terms
|
When contributing to the Mesa project you must agree to the licensing terms
|
||||||
@@ -94,7 +92,7 @@ and their respective licenses.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Mesa Component Licenses</h2>
|
<h1>Mesa Component Licenses</h1>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
Component Location License
|
Component Location License
|
||||||
|
@@ -2,13 +2,13 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Mailing Lists</title>
|
<title>Mesa Mailing Lists</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -68,14 +68,14 @@ kernels, see the
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>IRC</h2>
|
<h1>IRC</h1>
|
||||||
|
|
||||||
<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
|
<p>join <a href="irc://chat.freenode.net#dri-devel">#dri-devel channel</a>
|
||||||
on <a href="https://webchat.freenode.net/">irc.freenode.net</a>
|
on <a href="https://webchat.freenode.net/">irc.freenode.net</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>OpenGL Forums</h2>
|
<h1>OpenGL Forums</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Here are some other OpenGL-related forums you might find useful:
|
Here are some other OpenGL-related forums you might find useful:
|
||||||
|
@@ -2,21 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Gallium LLVMpipe Driver</title>
|
<title>llvmpipe</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Gallium LLVMpipe Driver</h1>
|
<h1>Introduction</h1>
|
||||||
|
|
||||||
<h2>Introduction</h2>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
|
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
|
||||||
@@ -30,7 +28,7 @@ It's the fastest software rasterizer for Mesa.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Requirements</h2>
|
<h1>Requirements</h1>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@@ -47,7 +45,7 @@ It's the fastest software rasterizer for Mesa.
|
|||||||
built with LLVM version 4.0 or later.
|
built with LLVM version 4.0 or later.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
See <code>/proc/cpuinfo</code> to know what your CPU supports.
|
See /proc/cpuinfo to know what your CPU supports.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@@ -73,9 +71,8 @@ It's the fastest software rasterizer for Mesa.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
For Windows you will need to build LLVM from source with MSVC or MINGW
|
For Windows you will need to build LLVM from source with MSVC or MINGW
|
||||||
(either natively or through cross compilers) and CMake, and set the
|
(either natively or through cross compilers) and CMake, and set the LLVM
|
||||||
<code>LLVM</code> environment variable to the directory you installed
|
environment variable to the directory you installed it to.
|
||||||
it to.
|
|
||||||
|
|
||||||
LLVM will be statically linked, so when building on MSVC it needs to be
|
LLVM will be statically linked, so when building on MSVC it needs to be
|
||||||
built with a matching CRT as Mesa, and you'll need to pass
|
built with a matching CRT as Mesa, and you'll need to pass
|
||||||
@@ -104,8 +101,8 @@ It's the fastest software rasterizer for Mesa.
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
You can build only the x86 target by passing
|
You can build only the x86 target by passing -DLLVM_TARGETS_TO_BUILD=X86
|
||||||
<code>-DLLVM_TARGETS_TO_BUILD=X86</code> to cmake.
|
to cmake.
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
@@ -115,7 +112,7 @@ It's the fastest software rasterizer for Mesa.
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2>Building</h2>
|
<h1>Building</h1>
|
||||||
|
|
||||||
To build everything on Linux invoke scons as:
|
To build everything on Linux invoke scons as:
|
||||||
|
|
||||||
@@ -140,12 +137,11 @@ For Windows the procedure is similar except the target:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2>Using</h2>
|
<h1>Using</h1>
|
||||||
|
|
||||||
<h3>Linux</h3>
|
<h2>Linux</h2>
|
||||||
|
|
||||||
<p>On Linux, building will create a drop-in alternative for
|
<p>On Linux, building will create a drop-in alternative for libGL.so into</p>
|
||||||
<code>libGL.so</code> into</p>
|
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
build/foo/gallium/targets/libgl-xlib/libGL.so
|
build/foo/gallium/targets/libgl-xlib/libGL.so
|
||||||
@@ -155,15 +151,13 @@ or
|
|||||||
lib/gallium/libGL.so
|
lib/gallium/libGL.so
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>To use it set the <code>LD_LIBRARY_PATH</code> environment variable
|
<p>To use it set the LD_LIBRARY_PATH environment variable accordingly.</p>
|
||||||
accordingly.</p>
|
|
||||||
|
|
||||||
<p>For performance evaluation pass <code>build=release</code> to scons,
|
<p>For performance evaluation pass build=release to scons, and use the corresponding
|
||||||
and use the corresponding lib directory without the <code>-debug</code>
|
lib directory without the "-debug" suffix.</p>
|
||||||
suffix.</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Windows</h3>
|
<h2>Windows</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
On Windows, building will create
|
On Windows, building will create
|
||||||
@@ -181,9 +175,7 @@ any OpenGL drivers):
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>copy <code>build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll</code>
|
<li><p>copy build/windows-x86-debug/gallium/targets/libgl-gdi/opengl32.dll to C:\Windows\SysWOW64\mesadrv.dll</p></li>
|
||||||
to <code>C:\Windows\SysWOW64\mesadrv.dll</code>
|
|
||||||
</p></li>
|
|
||||||
<li><p>load this registry settings:</p>
|
<li><p>load this registry settings:</p>
|
||||||
<pre>REGEDIT4
|
<pre>REGEDIT4
|
||||||
|
|
||||||
@@ -200,7 +192,7 @@ any OpenGL drivers):
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2>Profiling</h2>
|
<h1>Profiling</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To profile llvmpipe you should build as
|
To profile llvmpipe you should build as
|
||||||
@@ -214,7 +206,7 @@ This will ensure that frame pointers are used both in C and JIT functions, and
|
|||||||
that no tail call optimizations are done by gcc.
|
that no tail call optimizations are done by gcc.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Linux perf integration</h3>
|
<h2>Linux perf integration</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
On Linux, it is possible to have symbol resolution of JIT code with <a href="https://perf.wiki.kernel.org/">Linux perf</a>:
|
On Linux, it is possible to have symbol resolution of JIT code with <a href="https://perf.wiki.kernel.org/">Linux perf</a>:
|
||||||
@@ -226,28 +218,27 @@ On Linux, it is possible to have symbol resolution of JIT code with <a href="htt
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
When run inside Linux perf, llvmpipe will create a
|
When run inside Linux perf, llvmpipe will create a /tmp/perf-XXXXX.map file with
|
||||||
<code>/tmp/perf-XXXXX.map</code> file with symbol address table. It also
|
symbol address table. It also dumps assembly code to /tmp/perf-XXXXX.map.asm,
|
||||||
dumps assembly code to <code>/tmp/perf-XXXXX.map.asm</code>, which can be
|
which can be used by the bin/perf-annotate-jit.py script to produce disassembly of
|
||||||
used by the <code>bin/perf-annotate-jit.py</code> script to produce
|
the generated code annotated with the samples.
|
||||||
disassembly of the generated code annotated with the samples.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>You can obtain a call graph via
|
<p>You can obtain a call graph via
|
||||||
<a href="https://github.com/jrfonseca/gprof2dot#linux-perf">Gprof2Dot</a>.</p>
|
<a href="https://github.com/jrfonseca/gprof2dot#linux-perf">Gprof2Dot</a>.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Unit testing</h2>
|
<h1>Unit testing</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Building will also create several unit tests in
|
Building will also create several unit tests in
|
||||||
<code>build/linux-???-debug/gallium/drivers/llvmpipe</code>:
|
build/linux-???-debug/gallium/drivers/llvmpipe:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li> <code>lp_test_blend</code>: blending
|
<li> lp_test_blend: blending
|
||||||
<li> <code>lp_test_conv</code>: SIMD vector conversion
|
<li> lp_test_conv: SIMD vector conversion
|
||||||
<li> <code>lp_test_format</code>: pixel unpacking/packing
|
<li> lp_test_format: pixel unpacking/packing
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -259,31 +250,29 @@ for later analysis, e.g.:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2>Development Notes</h2>
|
<h1>Development Notes</h1>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
When looking at this code for the first time, start in lp_state_fs.c, and
|
When looking at this code for the first time, start in lp_state_fs.c, and
|
||||||
then skim through the <code>lp_bld_*</code> functions called there, and
|
then skim through the lp_bld_* functions called there, and the comments
|
||||||
the comments at the top of the <code>lp_bld_*.c</code> functions.
|
at the top of the lp_bld_*.c functions.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
The driver-independent parts of the LLVM / Gallium code are found in
|
The driver-independent parts of the LLVM / Gallium code are found in
|
||||||
<code>src/gallium/auxiliary/gallivm/</code>. The filenames and function
|
src/gallium/auxiliary/gallivm/. The filenames and function prefixes
|
||||||
prefixes need to be renamed from <code>lp_bld_</code> to something else
|
need to be renamed from "lp_bld_" to something else though.
|
||||||
though.
|
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
We use LLVM-C bindings for now. They are not documented, but follow the C++
|
We use LLVM-C bindings for now. They are not documented, but follow the C++
|
||||||
interfaces very closely, and appear to be complete enough for code
|
interfaces very closely, and appear to be complete enough for code
|
||||||
generation. See
|
generation. See
|
||||||
<a href="https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html">
|
<a href="https://npcontemplation.blogspot.com/2008/06/secret-of-llvm-c-bindings.html">
|
||||||
this stand-alone example</a>. See the <code>llvm-c/Core.h</code> file for
|
this stand-alone example</a>. See the llvm-c/Core.h file for reference.
|
||||||
reference.
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2 id="recommended_reading">Recommended Reading</h2>
|
<h1 id="recommended_reading">Recommended Reading</h1>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@@ -43,8 +43,13 @@ iframe {
|
|||||||
|
|
||||||
.header {
|
.header {
|
||||||
background: url('gears.png') 15px no-repeat, black url('gears.png') right no-repeat;
|
background: url('gears.png') 15px no-repeat, black url('gears.png') right no-repeat;
|
||||||
padding: 1.75rem;
|
padding: 2em;
|
||||||
|
display: flex;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header h1 {
|
||||||
color: white;
|
color: white;
|
||||||
font: x-large sans-serif;
|
font: x-large sans-serif;
|
||||||
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
@@ -2,19 +2,19 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Compilation and Installation Using Meson</title>
|
<title>Compilation and Installation using Meson</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Compilation and Installation Using Meson</h1>
|
<h1>Compilation and Installation using Meson</h1>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#intro">Introduction</a></li>
|
<li><a href="#intro">Introduction</a></li>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -45,7 +45,7 @@ The OSMesa interface may be used with any of three software renderers:
|
|||||||
There are several examples of OSMesa in the mesa/demos repository.
|
There are several examples of OSMesa in the mesa/demos repository.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Building OSMesa</h2>
|
<h1>Building OSMesa</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Configure and build Mesa with something like:
|
Configure and build Mesa with something like:
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -55,6 +55,10 @@ Numbers higher than 8 see minimizing gains.
|
|||||||
<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
|
<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -22,8 +22,9 @@ In general, precompiled Mesa libraries are not available.
|
|||||||
<p>
|
<p>
|
||||||
Some Linux distributions closely follow the latest Mesa releases. On others one
|
Some Linux distributions closely follow the latest Mesa releases. On others one
|
||||||
has to use unofficial channels.
|
has to use unofficial channels.
|
||||||
|
<br>
|
||||||
|
There are some general directions:
|
||||||
</p>
|
</p>
|
||||||
<p>There are some general directions:</p>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Debian/Ubuntu based distros - PPA: xorg-edgers, oibaf and padoka</li>
|
<li>Debian/Ubuntu based distros - PPA: xorg-edgers, oibaf and padoka</li>
|
||||||
<li>Fedora - Corp: erp and che</li>
|
<li>Fedora - Corp: erp and che</li>
|
||||||
|
@@ -2,53 +2,42 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Release Calendar</title>
|
<title>Release calendar</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
<h1>Release Calendar</h1>
|
<h1>Overview</h1>
|
||||||
|
|
||||||
<h2>Overview</h2>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Mesa provides feature/development and stable releases.
|
Mesa provides feature/development and stable releases.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The table below lists the date and release manager that is expected to do the
|
The table below lists the date and release manager that is expected to do the
|
||||||
specific release.
|
specific release.
|
||||||
</p>
|
<br>
|
||||||
|
Regular updates will ensure that the schedule for the current and the
|
||||||
<p>
|
next two feature releases are shown in the table.
|
||||||
Regular updates will ensure that the schedule for the current and the next two
|
<br>
|
||||||
feature releases are shown in the table.
|
In order to keep the whole releasing team up to date with the tools
|
||||||
</p>
|
used, best practices and other details, the member in charge of the
|
||||||
|
next feature release will be in constant rotation.
|
||||||
<p>
|
<br>
|
||||||
In order to keep the whole releasing team up to date with the tools used, best
|
The way the release schedule works is
|
||||||
practices and other details, the member in charge of the next feature release
|
explained <a href="releasing.html#schedule" target="_parent">here</a>.
|
||||||
will be in constant rotation.
|
<br>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The way the release schedule works is explained
|
|
||||||
<a href="releasing.html#schedule" target="_parent">here</a>.
|
|
||||||
</p
|
|
||||||
>
|
|
||||||
<p>
|
|
||||||
Take a look <a href="submittingpatches.html#criteria" target="_parent">here</a>
|
Take a look <a href="submittingpatches.html#criteria" target="_parent">here</a>
|
||||||
if you'd like to nominate a patch in the next stable release.
|
if you'd like to nominate a patch in the next stable release.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="calendar">Calendar</h2>
|
<h1 id="calendar">Calendar</h1>
|
||||||
|
|
||||||
<table border="1">
|
<table border="1">
|
||||||
|
|
||||||
@@ -60,29 +49,48 @@ if you'd like to nominate a patch in the next stable release.
|
|||||||
<th>Notes</th>
|
<th>Notes</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td rowspan="3">19.0</td>
|
||||||
|
<td>2019-05-07</td>
|
||||||
|
<td>19.0.4</td>
|
||||||
|
<td>Dylan Baker</td>
|
||||||
|
<td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2019-05-21</td>
|
||||||
|
<td>19.0.5</td>
|
||||||
|
<td>Dylan Baker</td>
|
||||||
|
<td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>2019-06-04</td>
|
||||||
|
<td>19.0.6</td>
|
||||||
|
<td>Dylan Baker</td>
|
||||||
|
<td>Last planned 19.0.x release</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td rowspan="4">19.1</td>
|
<td rowspan="4">19.1</td>
|
||||||
<td>2019-08-06</td>
|
<td>2019-04-30</td>
|
||||||
<td>19.1.4</td>
|
<td>19.1.0-rc1</td>
|
||||||
<td>Juan A. Suarez</td>
|
<td>Juan A. Suarez</td>
|
||||||
<td>
|
<td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>2019-08-20</td>
|
<td>2019-05-07</td>
|
||||||
<td>19.1.5</td>
|
<td>19.1.0-rc2</td>
|
||||||
<td>Juan A. Suarez</td>
|
<td>Juan A. Suarez</td>
|
||||||
<td>
|
<td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>2019-09-03</td>
|
<td>2019-05-14</td>
|
||||||
<td>19.1.6</td>
|
<td>19.1.0-rc3</td>
|
||||||
<td>Juan A. Suarez</td>
|
<td>Juan A. Suarez</td>
|
||||||
<td>
|
<td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>2019-09-17</td>
|
<td>2019-05-21</td>
|
||||||
<td>19.1.7</td>
|
<td>19.1.0-rc4</td>
|
||||||
<td>Juan A. Suarez</td>
|
<td>Juan A. Suarez</td>
|
||||||
<td>Last planned 19.1.x release</td>
|
<td>Last planned RC/Final release</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td rowspan="4">19.2</td>
|
<td rowspan="4">19.2</td>
|
||||||
|
@@ -2,20 +2,20 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||||
<title>Releasing Process</title>
|
<title>Releasing process</title>
|
||||||
<link rel="stylesheet" type="text/css" href="mesa.css">
|
<link rel="stylesheet" type="text/css" href="mesa.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
|
|
||||||
|
|
||||||
<h1>Releasing Process</h1>
|
<h1>Releasing process</h1>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#overview">Overview</a>
|
<li><a href="#overview">Overview</a>
|
||||||
@@ -31,14 +31,12 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="overview">Overview</h2>
|
<h1 id="overview">Overview</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This document uses the convention X.Y.Z for the release number with X.Y being
|
This document uses the convention X.Y.Z for the release number with X.Y being
|
||||||
the stable branch name.
|
the stable branch name.
|
||||||
</p>
|
<br>
|
||||||
|
|
||||||
<p>
|
|
||||||
Mesa provides feature and bugfix releases. Former use zero as patch version (Z),
|
Mesa provides feature and bugfix releases. Former use zero as patch version (Z),
|
||||||
while the latter have a non-zero one.
|
while the latter have a non-zero one.
|
||||||
</p>
|
</p>
|
||||||
@@ -54,14 +52,12 @@ For example:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="schedule">Release schedule</h2>
|
<h1 id="schedule">Release schedule</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Releases should happen on Wednesdays. Delays can occur although those
|
Releases should happen on Wednesdays. Delays can occur although those
|
||||||
should be kept to a minimum.
|
should be kept to a minimum.
|
||||||
</p>
|
<br>
|
||||||
|
|
||||||
<p>
|
|
||||||
See our <a href="release-calendar.html" target="_parent">calendar</a>
|
See our <a href="release-calendar.html" target="_parent">calendar</a>
|
||||||
for information about how the release schedule is planned, and the
|
for information about how the release schedule is planned, and the
|
||||||
date and other details for individual releases.
|
date and other details for individual releases.
|
||||||
@@ -89,14 +85,10 @@ approximately 48 hours before the actual release.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Note: There is one or two releases overlap when changing branches. For example:
|
Note: There is one or two releases overlap when changing branches. For example:
|
||||||
</p>
|
<br>
|
||||||
|
|
||||||
<p>
|
|
||||||
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
|
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
|
||||||
time (or shortly after) 13.0.1 is out.
|
time (or shortly after) 13.0.1 is out.
|
||||||
</p>
|
<br>
|
||||||
|
|
||||||
<p>
|
|
||||||
This also involves that, as a final release may be delayed due to the
|
This also involves that, as a final release may be delayed due to the
|
||||||
need of additional candidates to solve some blocking regression(s),
|
need of additional candidates to solve some blocking regression(s),
|
||||||
the release manager might have to update
|
the release manager might have to update
|
||||||
@@ -105,7 +97,7 @@ additional bug fix releases of the current stable branch.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="pickntest">Cherry-picking and testing</h2>
|
<h1 id="pickntest">Cherry-picking and testing</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Commits nominated for the active branch are picked as based on the
|
Commits nominated for the active branch are picked as based on the
|
||||||
@@ -122,7 +114,7 @@ a casual search for terms such as regression, fix, broken and similar.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Maintainer is also responsible for testing in various possible permutations of
|
Maintainer is also responsible for testing in various possible permutations of
|
||||||
the meson and scons build.
|
the autoconf and scons build.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Cherry-picking and build/check testing</h2>
|
<h2>Cherry-picking and build/check testing</h2>
|
||||||
@@ -175,8 +167,9 @@ good contact point.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
<strong>Note:</strong> If a patch in the current queue needs any additional
|
<strong>Note:</strong> If a patch in the current queue needs any additional
|
||||||
fix(es), then they should be squashed together. The commit messages and the
|
fix(es), then they should be squashed together.
|
||||||
"<code>cherry picked from</code>"-tags must be preserved.
|
<br>
|
||||||
|
The commit messages and the <code>cherry picked from</code> tags must be preserved.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -230,7 +223,7 @@ system and making some every day's use until the release may be a good
|
|||||||
idea too.
|
idea too.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="stagingbranch">Staging branch</h2>
|
<h1 id="stagingbranch">Staging branch</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A live branch, which contains the currently merge/rejected patches is available
|
A live branch, which contains the currently merge/rejected patches is available
|
||||||
@@ -250,7 +243,7 @@ Notes:
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="branch">Making a branchpoint</h2>
|
<h1 id="branch">Making a branchpoint</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
A branchpoint is made such that new development can continue in parallel to
|
A branchpoint is made such that new development can continue in parallel to
|
||||||
@@ -259,8 +252,9 @@ stabilisation and bugfixing.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Note: Before doing a branch ensure that basic build and <code>meson test</code>
|
Note: Before doing a branch ensure that basic build and <code>meson test</code>
|
||||||
testing is done and there are little to-no issues. Ideally all of those should
|
testing is done and there are little to-no issues.
|
||||||
be tackled already.
|
<br>
|
||||||
|
Ideally all of those should be tackled already.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -299,15 +293,14 @@ Proceed to <a href="#release">release</a> -rc1.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="prerelease">Pre-release announcement</h2>
|
<h1 id="prerelease">Pre-release announcement</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
It comes shortly after outstanding patches in the respective branch are pushed.
|
It comes shortly after outstanding patches in the respective branch are pushed.
|
||||||
Developers can check, in brief, what's the status of their patches. They,
|
Developers can check, in brief, what's the status of their patches. They,
|
||||||
alongside very early testers, are strongly encouraged to test the branch and
|
alongside very early testers, are strongly encouraged to test the branch and
|
||||||
report any regressions.
|
report any regressions.
|
||||||
</p>
|
<br>
|
||||||
<p>
|
|
||||||
It is followed by a brief period (normally 24 or 48 hours) before the actual
|
It is followed by a brief period (normally 24 or 48 hours) before the actual
|
||||||
release is made.
|
release is made.
|
||||||
</p>
|
</p>
|
||||||
@@ -337,8 +330,10 @@ Barring reported regressions or objections from developers.
|
|||||||
<p>
|
<p>
|
||||||
Patch does not fit the
|
Patch does not fit the
|
||||||
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> and
|
<a href="submittingpatches.html#criteria" target="_parent">criteria</a> and
|
||||||
is followed by a brief information. The release maintainer is human so if you
|
is followed by a brief information.
|
||||||
believe you've spotted a mistake do let them know.
|
<br>
|
||||||
|
The release maintainer is human so if you believe you've spotted a mistake do
|
||||||
|
let them know.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Format/template</h2>
|
<h2>Format/template</h2>
|
||||||
@@ -450,7 +445,7 @@ Reason: The patch was reverted shortly after it was merged.
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="release">Making a new release</h2>
|
<h1 id="release">Making a new release</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
These are the instructions for making a new Mesa release.
|
These are the instructions for making a new Mesa release.
|
||||||
@@ -604,7 +599,7 @@ docs/release-calendar.html. Then commit and push:
|
|||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="announce">Announce the release</h2>
|
<h1 id="announce">Announce the release</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Use the generated template during the releasing process.
|
Use the generated template during the releasing process.
|
||||||
@@ -616,7 +611,7 @@ series, if that is the case.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="website">Update the mesa3d.org website</h2>
|
<h1 id="website">Update the mesa3d.org website</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
As the hosting was moved to freedesktop, git hooks are deployed to update the
|
As the hosting was moved to freedesktop, git hooks are deployed to update the
|
||||||
@@ -624,12 +619,14 @@ website. Manually check that it is updated 5-10 minutes after the final <code>gi
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="bugzilla">Update Bugzilla</h2>
|
<h1 id="bugzilla">Update Bugzilla</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Parse through the bugreports as listed in the docs/relnotes/X.Y.Z.html
|
Parse through the bugreports as listed in the docs/relnotes/X.Y.Z.html
|
||||||
document. If there's outstanding action, close the bug referencing the commit
|
document.
|
||||||
ID which addresses the bug and mention the Mesa version that has the fix.
|
<br>
|
||||||
|
If there's outstanding action, close the bug referencing the commit ID which
|
||||||
|
addresses the bug and mention the Mesa version that has the fix.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="contents.html"></iframe>
|
<iframe src="contents.html"></iframe>
|
||||||
@@ -21,15 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="relnotes/19.1.3.html">19.1.3 release notes</a>
|
|
||||||
<li><a href="relnotes/19.1.2.html">19.1.2 release notes</a>
|
|
||||||
<li><a href="relnotes/19.0.8.html">19.0.8 release notes</a>
|
|
||||||
<li><a href="relnotes/19.1.1.html">19.1.1 release notes</a>
|
|
||||||
<li><a href="relnotes/19.0.7.html">19.0.7 release notes</a>
|
|
||||||
<li><a href="relnotes/19.1.0.html">19.1.0 release notes</a>
|
|
||||||
<li><a href="relnotes/19.0.6.html">19.0.6 release notes</a>
|
|
||||||
<li><a href="relnotes/19.0.5.html">19.0.5 release notes</a>
|
|
||||||
<li><a href="relnotes/19.0.4.html">19.0.4 release notes</a>
|
|
||||||
<li><a href="relnotes/19.0.3.html">19.0.3 release notes</a>
|
<li><a href="relnotes/19.0.3.html">19.0.3 release notes</a>
|
||||||
<li><a href="relnotes/19.0.2.html">19.0.2 release notes</a>
|
<li><a href="relnotes/19.0.2.html">19.0.2 release notes</a>
|
||||||
<li><a href="relnotes/18.3.6.html">18.3.6 release notes</a>
|
<li><a href="relnotes/18.3.6.html">18.3.6 release notes</a>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
The Mesa 3D Graphics Library
|
<h1>The Mesa 3D Graphics Library</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<iframe src="../contents.html"></iframe>
|
<iframe src="../contents.html"></iframe>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user