Compare commits
20 Commits
mesa-18.3.
...
chadv/wip/
Author | SHA1 | Date | |
---|---|---|---|
|
8cb2b5c37a | ||
|
6158e78240 | ||
|
c689a23c77 | ||
|
0cbe8ad97d | ||
|
f57e2bf44e | ||
|
3274c56585 | ||
|
0a957c2822 | ||
|
6ac5d83a6c | ||
|
53ba2797ee | ||
|
58cbc48eac | ||
|
c884f74c5f | ||
|
ca6dc3b7f4 | ||
|
f7f64ad0ac | ||
|
97636c85f9 | ||
|
f408dc0e46 | ||
|
15656ccb9e | ||
|
09a9aafa81 | ||
|
d346f5b8bd | ||
|
ab8ac2c3e9 | ||
|
d069832666 |
5
.mailmap
5
.mailmap
@@ -145,11 +145,6 @@ Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com>
|
||||
Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com>
|
||||
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliko@collabora.com>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.co.uk>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.veliikov@collabora.com>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@gmail.com>
|
||||
Emil Velikov <emil.l.velikov@gmail.com> <emmil.velikov@collabora.com>
|
||||
|
||||
Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org>
|
||||
|
||||
|
206
.travis.yml
206
.travis.yml
@@ -9,17 +9,15 @@ cache:
|
||||
|
||||
env:
|
||||
global:
|
||||
- XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
|
||||
- XCB_RELEASES=https://xcb.freedesktop.org/dist
|
||||
- WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
|
||||
- XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
|
||||
- XCB_RELEASES=http://xcb.freedesktop.org/dist
|
||||
- WAYLAND_RELEASES=http://wayland.freedesktop.org/releases
|
||||
- XORGMACROS_VERSION=util-macros-1.19.0
|
||||
- GLPROTO_VERSION=glproto-1.4.17
|
||||
- DRI2PROTO_VERSION=dri2proto-2.8
|
||||
- LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
||||
- LIBDRM_VERSION=libdrm-2.4.74
|
||||
- XCBPROTO_VERSION=xcb-proto-1.13
|
||||
- RANDRPROTO_VERSION=randrproto-1.3.0
|
||||
- LIBXRANDR_VERSION=libXrandr-1.3.0
|
||||
- LIBXCB_VERSION=libxcb-1.13
|
||||
- LIBXSHMFENCE_VERSION=libxshmfence-1.2
|
||||
- LIBVDPAU_VERSION=libvdpau-1.1
|
||||
@@ -35,33 +33,27 @@ matrix:
|
||||
- env:
|
||||
- LABEL="meson Vulkan"
|
||||
- BUILD=meson
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS="intel,amd"
|
||||
- LLVM_VERSION=6.0
|
||||
- MESON_OPTIONS="-Ddri-drivers=[] -Dgallium-drivers=[]"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-5.0
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="meson loaders/classic DRI"
|
||||
- BUILD=meson
|
||||
- DRI_DRIVERS="i915,i965,r100,r200,swrast,nouveau"
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS=""
|
||||
- MESON_OPTIONS="-Dvulkan-drivers=[] -Dgallium-drivers=[]"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
@@ -71,7 +63,6 @@ matrix:
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="make loaders/classic DRI"
|
||||
@@ -93,7 +84,6 @@ matrix:
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
||||
# gallium drivers combined.
|
||||
@@ -102,8 +92,10 @@ matrix:
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=4.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC="gcc-4.8"
|
||||
- OVERRIDE_CXX="g++-4.8"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
@@ -113,25 +105,25 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-4.0
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-4.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers RadeonSI"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -142,19 +134,19 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-5.0
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers Other"
|
||||
- BUILD=make
|
||||
@@ -182,12 +174,13 @@ matrix:
|
||||
- llvm-3.9-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-3.9"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
@@ -220,12 +213,13 @@ matrix:
|
||||
- libclang-3.9-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-4.0"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
@@ -255,12 +249,13 @@ matrix:
|
||||
- libclang-4.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-5.0"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
@@ -272,7 +267,7 @@ matrix:
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
@@ -290,12 +285,13 @@ matrix:
|
||||
- libclang-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-6.0"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
@@ -312,7 +308,7 @@ matrix:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
# llvm-6 depends on gcc-4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libclc-dev
|
||||
@@ -322,39 +318,7 @@ matrix:
|
||||
- libclang-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-7"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
# llvm-7 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
- clang-7
|
||||
- libclang-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
@@ -390,17 +354,17 @@ matrix:
|
||||
- libedit-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="make Vulkan"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -411,18 +375,18 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-5.0
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="scons"
|
||||
- BUILD=scons
|
||||
@@ -434,6 +398,7 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- scons
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
@@ -452,6 +417,7 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- scons
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- llvm-3.3-dev
|
||||
@@ -466,19 +432,22 @@ matrix:
|
||||
- BUILD=scons
|
||||
- SCONSFLAGS="-j4"
|
||||
- SCONS_TARGET="swr=1"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=4.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
# Keep it symmetrical to the make build. There's no actual SWR, yet.
|
||||
- SCONS_CHECK_COMMAND="true"
|
||||
- OVERRIDE_CC="gcc-4.8"
|
||||
- OVERRIDE_CXX="g++-4.8"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-4.0
|
||||
packages:
|
||||
- scons
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- llvm-4.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
@@ -495,6 +464,7 @@ matrix:
|
||||
- env:
|
||||
- LABEL="macOS meson"
|
||||
- BUILD=meson
|
||||
- MESON_OPTIONS="-Degl=false"
|
||||
os: osx
|
||||
|
||||
before_install:
|
||||
@@ -521,24 +491,13 @@ before_install:
|
||||
fi
|
||||
|
||||
install:
|
||||
- pip2 install --user mako
|
||||
|
||||
# Install a more modern meson from pip, since the version in the
|
||||
# ubuntu repos is often quite old. This requires python>=3.5, so
|
||||
# let's make it default
|
||||
# ubuntu repos is often quite old. Avoid >=0.45.0 as it needs python
|
||||
# 3.5+
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 10;
|
||||
pip3 install --user meson;
|
||||
pip3 install --user mako;
|
||||
fi
|
||||
|
||||
# Install autotools build dependencies
|
||||
- if test "x$BUILD" = xmake; then
|
||||
pip2 install --user mako;
|
||||
fi
|
||||
|
||||
# Install a more modern scons from pip.
|
||||
- if test "x$BUILD" = xscons; then
|
||||
pip2 install --user "scons>=2.4";
|
||||
pip2 install --user mako;
|
||||
pip3 install --user "meson<0.45.0";
|
||||
fi
|
||||
|
||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
||||
@@ -580,27 +539,19 @@ install:
|
||||
tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
|
||||
(cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
|
||||
tar -jxvf $LIBDRM_VERSION.tar.bz2
|
||||
(cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
|
||||
|
||||
wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
|
||||
tar -jxvf $RANDRPROTO_VERSION.tar.bz2
|
||||
(cd $RANDRPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
|
||||
tar -jxvf $LIBXRANDR_VERSION.tar.bz2
|
||||
(cd $LIBXRANDR_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
|
||||
tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
|
||||
(cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
|
||||
wget http://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
|
||||
tar -jxvf $LIBVDPAU_VERSION.tar.bz2
|
||||
(cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
|
||||
wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
|
||||
tar -jxvf $LIBVA_VERSION.tar.bz2
|
||||
(cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
|
||||
|
||||
@@ -623,34 +574,13 @@ install:
|
||||
"#ifndef _LINUX_MEMFD_H" \
|
||||
"#define _LINUX_MEMFD_H" \
|
||||
"" \
|
||||
"#define __NR_memfd_create 319" \
|
||||
"#define SYS_memfd_create __NR_memfd_create" \
|
||||
"" \
|
||||
"#define MFD_CLOEXEC 0x0001U" \
|
||||
"#define MFD_ALLOW_SEALING 0x0002U" \
|
||||
"" \
|
||||
"#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
|
||||
|
||||
# Generate this header, including the missing SYS_memfd_create
|
||||
# macro, which is not provided by the header in the Travis
|
||||
# instance
|
||||
mkdir -p sys
|
||||
printf "%s\n" \
|
||||
"#ifndef _SYSCALL_H" \
|
||||
"#define _SYSCALL_H 1" \
|
||||
"" \
|
||||
"#include <asm/unistd.h>" \
|
||||
"" \
|
||||
"#ifndef _LIBC" \
|
||||
"# include <bits/syscall.h>" \
|
||||
"#endif" \
|
||||
"" \
|
||||
"#ifndef __NR_memfd_create" \
|
||||
"# define __NR_memfd_create 319 /* Taken from <asm/unistd_64.h> */" \
|
||||
"#endif" \
|
||||
"" \
|
||||
"#ifndef SYS_memfd_create" \
|
||||
"# define SYS_memfd_create __NR_memfd_create" \
|
||||
"#endif" \
|
||||
"" \
|
||||
"#endif" > sys/syscall.h
|
||||
fi
|
||||
|
||||
script:
|
||||
@@ -684,14 +614,6 @@ script:
|
||||
- |
|
||||
if test "x$BUILD" = xmeson; then
|
||||
|
||||
if test "x$TRAVIS_OS_NAME" == xosx; then
|
||||
MESON_OPTIONS="-Degl=false"
|
||||
fi
|
||||
|
||||
if test "x$TRAVIS_OS_NAME" == xlinux; then
|
||||
MESON_OPTIONS="-Ddri-drivers=${DRI_DRIVERS:-[]} -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} -Dvulkan-drivers=${VULKAN_DRIVERS:-[]}"
|
||||
fi
|
||||
|
||||
# Travis CI has moved to LLVM 5.0, and meson is detecting
|
||||
# automatically the available version in /usr/local/bin based on
|
||||
# the PATH env variable order preference.
|
||||
|
@@ -52,7 +52,6 @@ LOCAL_CFLAGS += \
|
||||
-DHAVE___BUILTIN_EXPECT \
|
||||
-DHAVE___BUILTIN_FFS \
|
||||
-DHAVE___BUILTIN_FFSLL \
|
||||
-DHAVE_DLFCN_H \
|
||||
-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
|
||||
-DHAVE_FUNC_ATTRIBUTE_UNUSED \
|
||||
-DHAVE_FUNC_ATTRIBUTE_FORMAT \
|
||||
@@ -76,8 +75,6 @@ LOCAL_CFLAGS += \
|
||||
-DMAJOR_IN_SYSMACROS \
|
||||
-DVK_USE_PLATFORM_ANDROID_KHR \
|
||||
-fvisibility=hidden \
|
||||
-fno-math-errno \
|
||||
-fno-trapping-math \
|
||||
-Wno-sign-compare
|
||||
|
||||
LOCAL_CPPFLAGS += \
|
||||
@@ -91,13 +88,6 @@ LOCAL_CPPFLAGS += \
|
||||
LOCAL_CONLYFLAGS += \
|
||||
-std=c99
|
||||
|
||||
# c11 timespec_get is part of bionic as well
|
||||
# https://android-review.googlesource.com/c/718518
|
||||
# This means releases from P and earlier won't need this
|
||||
ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),)
|
||||
LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_CFLAGS += \
|
||||
|
@@ -10,7 +10,7 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/STATIC_LIBRARIES/libmesa_*_interm
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/i9?5_dri_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libglapi_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_intermediates)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/mesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/glsl_compiler_intermediates)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/mesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates)
|
||||
$(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates)
|
||||
|
10
PRESUBMIT.cfg
Normal file
10
PRESUBMIT.cfg
Normal file
@@ -0,0 +1,10 @@
|
||||
# This sample config file disables all of the ChromiumOS source style checks.
|
||||
# Comment out the disable-flags for any checks you want to leave enabled.
|
||||
|
||||
[Hook Overrides]
|
||||
stray_whitespace_check: false
|
||||
long_line_check: false
|
||||
cros_license_check: false
|
||||
tab_check: false
|
||||
bug_field_check: false
|
||||
test_field_check: false
|
@@ -27,13 +27,6 @@ import SCons.Util
|
||||
|
||||
import common
|
||||
|
||||
#######################################################################
|
||||
# Minimal scons version
|
||||
|
||||
EnsureSConsVersion(2, 4)
|
||||
EnsurePythonVersion(2, 7)
|
||||
|
||||
|
||||
#######################################################################
|
||||
# Configuration options
|
||||
|
||||
|
30
appveyor.yml
30
appveyor.yml
@@ -33,41 +33,31 @@ branches:
|
||||
# - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories
|
||||
clone_depth: 100
|
||||
|
||||
# https://www.appveyor.com/docs/build-cache/
|
||||
cache:
|
||||
- '%LOCALAPPDATA%\pip\Cache -> appveyor.yml'
|
||||
- win_flex_bison-2.5.15.zip
|
||||
- llvm-5.0.1-msvc2017-mtd.7z
|
||||
- win_flex_bison-2.5.9.zip
|
||||
- llvm-5.0.1-msvc2015-mtd.7z
|
||||
|
||||
os: Visual Studio 2017
|
||||
|
||||
init:
|
||||
# Appveyor defaults core.autocrlf to input instead of the default (true), but
|
||||
# that can hide problems processing CRLF text on Windows
|
||||
- git config --global core.autocrlf true
|
||||
os: Visual Studio 2015
|
||||
|
||||
environment:
|
||||
WINFLEXBISON_VERSION: 2.5.15
|
||||
LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z
|
||||
WINFLEXBISON_ARCHIVE: win_flex_bison-2.5.9.zip
|
||||
LLVM_ARCHIVE: llvm-5.0.1-msvc2015-mtd.7z
|
||||
|
||||
install:
|
||||
# Check git config
|
||||
- git config core.autocrlf
|
||||
# Check pip
|
||||
- python --version
|
||||
- python -m pip --version
|
||||
# Install Mako
|
||||
- python -m pip install Mako==1.0.7
|
||||
- python -m pip install Mako==1.0.6
|
||||
# Install pywin32 extensions, needed by SCons
|
||||
- python -m pip install pypiwin32
|
||||
# Install python wheels, necessary to install SCons via pip
|
||||
- python -m pip install wheel
|
||||
# Install SCons
|
||||
- python -m pip install scons==3.0.1
|
||||
- python -m pip install scons==2.5.1
|
||||
- scons --version
|
||||
# Install flex/bison
|
||||
- set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip
|
||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%"
|
||||
- if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://downloads.sourceforge.net/project/winflexbison/old_versions/%WINFLEXBISON_ARCHIVE%"
|
||||
- 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul
|
||||
- set Path=%CD%\winflexbison;%Path%
|
||||
- win_flex --version
|
||||
@@ -79,10 +69,10 @@ install:
|
||||
- set LLVM=%CD%\llvm
|
||||
|
||||
build_script:
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.0 llvm=1
|
||||
|
||||
after_build:
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check
|
||||
- scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.0 llvm=1 check
|
||||
|
||||
|
||||
# It's possible to setup notification here, as described in
|
||||
|
@@ -1,2 +0,0 @@
|
||||
# fixes: Commit was squashed into the respective offenders
|
||||
c02390f8fcd367c7350db568feabb2f062efca14 egl/wayland: rather obvious build fix
|
81
bin/get-fixes-pick-list.sh
Executable file
81
bin/get-fixes-pick-list.sh
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script for generating a list of candidates [referenced by a Fixes tag] for
|
||||
# cherry-picking to a stable branch
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/get-fixes-pick-list.sh
|
||||
# $ bin/get-fixes-pick-list.sh > picklist
|
||||
# $ bin/get-fixes-pick-list.sh | tee picklist
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
|
||||
# List all the commits between day 1 and the branch point...
|
||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
||||
|
||||
# ... and the ones cherry-picked.
|
||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits with Fixes tag
|
||||
git log --reverse --pretty=%H -i --grep="fixes:" $latest_branchpoint..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list ...
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
# Skip if it has been already cherry-picked.
|
||||
if grep -q ^$sha already_picked ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Place every "fixes:" tag on its own line and join with the next word
|
||||
# on its line or a later one.
|
||||
fixes=`git show --pretty=medium -s $sha | tr -d "\n" | sed -e 's/fixes:[[:space:]]*/\nfixes:/Ig' | grep "fixes:" | sed -e 's/\(fixes:[a-zA-Z0-9]*\).*$/\1/'`
|
||||
|
||||
# For each one try to extract the tag
|
||||
fixes_count=`echo "$fixes" | wc -l`
|
||||
warn=`(test $fixes_count -gt 1 && echo $fixes_count) || echo 0`
|
||||
while [ $fixes_count -gt 0 ] ; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
|
||||
# Bail out if we cannot find suitable id.
|
||||
# Any specific validation the $id is valid and not some junk, is
|
||||
# implied with the follow up code
|
||||
if [ "x$id" = x ] ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Check if the offending commit is in branch.
|
||||
|
||||
# Be that cherry-picked ...
|
||||
# ... or landed before the branchpoint.
|
||||
if grep -q ^$id already_picked ||
|
||||
grep -q ^$id already_landed ; then
|
||||
|
||||
printf "Commit \"%s\" fixes %s\n" \
|
||||
"`git log -n1 --pretty=oneline $sha`" \
|
||||
"$id"
|
||||
warn=$(($warn-1))
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
if [ $warn -gt 0 ] ; then
|
||||
printf "WARNING: Commit \"%s\" has more than one Fixes tag\n" \
|
||||
"`git log -n1 --pretty=oneline $sha`"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
rm -f already_picked
|
||||
rm -f already_landed
|
@@ -7,92 +7,21 @@
|
||||
# $ bin/get-pick-list.sh
|
||||
# $ bin/get-pick-list.sh > picklist
|
||||
# $ bin/get-pick-list.sh | tee picklist
|
||||
#
|
||||
# The output is as follows:
|
||||
# [nomination_type] commit_sha commit summary
|
||||
|
||||
is_stable_nomination()
|
||||
{
|
||||
git show --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
||||
}
|
||||
|
||||
is_typod_nomination()
|
||||
{
|
||||
git show --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
||||
}
|
||||
|
||||
# Helper to handle various mistypos of the fixes tag.
|
||||
# The tag string itself is passed as argument and normalised within.
|
||||
is_sha_nomination()
|
||||
{
|
||||
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
|
||||
sed -e 's/'"$2"'/\nfixes:/Ig' | \
|
||||
grep -Eo 'fixes:[a-f0-9]{8,40}'`
|
||||
|
||||
fixes_count=`echo "$fixes" | wc -l`
|
||||
if test $fixes_count -eq 0; then
|
||||
return 0
|
||||
fi
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
|
||||
# Bail out if we cannot find suitable id.
|
||||
# Any specific validation the $id is valid and not some junk, is
|
||||
# implied with the follow up code
|
||||
if test "x$id" = x; then
|
||||
continue
|
||||
fi
|
||||
|
||||
#Check if the offending commit is in branch.
|
||||
|
||||
# Be that cherry-picked ...
|
||||
# ... or landed before the branchpoint.
|
||||
if grep -q ^$id already_picked ||
|
||||
grep -q ^$id already_landed ; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
is_fixes_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "fixes:[[:space:]]*"
|
||||
if test $? -eq 0; then
|
||||
return 0
|
||||
fi
|
||||
is_sha_nomination "$1" "fixes[[:space:]]\+"
|
||||
}
|
||||
|
||||
is_brokenby_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "broken by"
|
||||
}
|
||||
|
||||
is_revert_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "This reverts commit "
|
||||
}
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
|
||||
# List all the commits between day 1 and the branch point...
|
||||
git log --reverse --pretty=%H $latest_branchpoint > already_landed
|
||||
|
||||
# ... and the ones cherry-picked.
|
||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
||||
git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for potential candidates
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..origin/master |\
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable' $latest_branchpoint..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
if test -f bin/.cherry-ignore; then
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
@@ -103,23 +32,7 @@ do
|
||||
continue
|
||||
fi
|
||||
|
||||
if is_stable_nomination "$sha"; then
|
||||
tag=stable
|
||||
elif is_typod_nomination "$sha"; then
|
||||
tag=typod
|
||||
elif is_fixes_nomination "$sha"; then
|
||||
tag=fixes
|
||||
elif is_brokenby_nomination "$sha"; then
|
||||
tag=brokenby
|
||||
elif is_revert_nomination "$sha"; then
|
||||
tag=revert
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
printf "[ %8s ] " "$tag"
|
||||
git --no-pager show --summary --oneline $sha
|
||||
git log -n1 --pretty=oneline $sha | cat
|
||||
done
|
||||
|
||||
rm -f already_picked
|
||||
rm -f already_landed
|
||||
|
42
bin/get-typod-pick-list.sh
Executable file
42
bin/get-typod-pick-list.sh
Executable file
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script for generating a list of candidates which have typos in the nomination line
|
||||
#
|
||||
# Usage examples:
|
||||
#
|
||||
# $ bin/get-typod-pick-list.sh
|
||||
# $ bin/get-typod-pick-list.sh > picklist
|
||||
# $ bin/get-typod-pick-list.sh | tee picklist
|
||||
|
||||
# NB:
|
||||
# This script intentionally _never_ checks for specific version tag
|
||||
# Should we consider folding it with the original get-pick-list.sh
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base origin/master HEAD`
|
||||
|
||||
# Grep for commits with "cherry picked from commit" in the commit message.
|
||||
git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
|
||||
grep "cherry picked from commit" |\
|
||||
sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked
|
||||
|
||||
# Grep for commits that were marked as a candidate for the stable tree.
|
||||
git log --reverse --pretty=%H -i --grep='^CC:.*mesa-dev' $latest_branchpoint..origin/master |\
|
||||
while read sha
|
||||
do
|
||||
# Check to see whether the patch is on the ignore list.
|
||||
if [ -f bin/.cherry-ignore ] ; then
|
||||
if grep -q ^$sha bin/.cherry-ignore ; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check to see if it has already been picked over.
|
||||
if grep -q ^$sha already_picked ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
git log -n1 --pretty=oneline $sha | cat
|
||||
done
|
||||
|
||||
rm -f already_picked
|
29
bin/git_sha1_gen.py
Normal file → Executable file
29
bin/git_sha1_gen.py
Normal file → Executable file
@@ -1,3 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Generate the contents of the git_sha1.h file.
|
||||
The output of this script goes to stdout.
|
||||
@@ -26,25 +28,22 @@ def get_git_sha1():
|
||||
git_sha1 = ''
|
||||
return git_sha1
|
||||
|
||||
def write_if_different(contents):
|
||||
"""
|
||||
Avoid touching the output file if it doesn't need modifications
|
||||
Useful to avoid triggering rebuilds when nothing has changed.
|
||||
"""
|
||||
if os.path.isfile(args.output):
|
||||
with open(args.output, 'r') as file:
|
||||
if file.read() == contents:
|
||||
return
|
||||
with open(args.output, 'w') as file:
|
||||
file.write(contents)
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--output', help='File to write the #define in',
|
||||
required=True)
|
||||
required=True)
|
||||
args = parser.parse_args()
|
||||
|
||||
git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10]
|
||||
if git_sha1:
|
||||
write_if_different('#define MESA_GIT_SHA1 " (git-' + git_sha1 + ')"')
|
||||
git_sha1_h_in_path = os.path.join(os.path.dirname(sys.argv[0]),
|
||||
'..', 'src', 'git_sha1.h.in')
|
||||
with open(git_sha1_h_in_path , 'r') as git_sha1_h_in:
|
||||
new_sha1 = git_sha1_h_in.read().replace('@VCS_TAG@', git_sha1)
|
||||
if os.path.isfile(args.output):
|
||||
with open(args.output, 'r') as git_sha1_h:
|
||||
if git_sha1_h.read() == new_sha1:
|
||||
quit()
|
||||
with open(args.output, 'w') as git_sha1_h:
|
||||
git_sha1_h.write(new_sha1)
|
||||
else:
|
||||
write_if_different('#define MESA_GIT_SHA1 ""')
|
||||
open(args.output, 'w').close()
|
||||
|
7
bin/install_megadrivers.py
Normal file → Executable file
7
bin/install_megadrivers.py
Normal file → Executable file
@@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding=utf-8
|
||||
# Copyright © 2017-2018 Intel Corporation
|
||||
|
||||
@@ -42,15 +43,13 @@ def main():
|
||||
master = os.path.join(to, os.path.basename(args.megadriver))
|
||||
|
||||
if not os.path.exists(to):
|
||||
if os.path.lexists(to):
|
||||
os.unlink(to)
|
||||
os.makedirs(to)
|
||||
shutil.copy(args.megadriver, master)
|
||||
|
||||
for driver in args.drivers:
|
||||
abs_driver = os.path.join(to, driver)
|
||||
|
||||
if os.path.lexists(abs_driver):
|
||||
if os.path.exists(abs_driver):
|
||||
os.unlink(abs_driver)
|
||||
print('installing {} to {}'.format(args.megadriver, abs_driver))
|
||||
os.link(master, abs_driver)
|
||||
@@ -61,7 +60,7 @@ def main():
|
||||
|
||||
name, ext = os.path.splitext(driver)
|
||||
while ext != '.so':
|
||||
if os.path.lexists(name):
|
||||
if os.path.exists(name):
|
||||
os.unlink(name)
|
||||
os.symlink(driver, name)
|
||||
name, ext = os.path.splitext(name)
|
||||
|
@@ -86,7 +86,7 @@ def AddOptions(opts):
|
||||
from SCons.Options.EnumOption import EnumOption
|
||||
opts.Add(EnumOption('build', 'build type', 'debug',
|
||||
allowed_values=('debug', 'checked', 'profile',
|
||||
'release')))
|
||||
'release', 'opt')))
|
||||
opts.Add(BoolOption('verbose', 'verbose output', 'no'))
|
||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code',
|
||||
default_machine,
|
||||
@@ -99,13 +99,17 @@ def AddOptions(opts):
|
||||
'enable static code analysis where available', 'no'))
|
||||
opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
|
||||
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
|
||||
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support',
|
||||
'no'))
|
||||
opts.Add(BoolOption('llvm', 'use LLVM', default_llvm))
|
||||
opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
|
||||
'no'))
|
||||
opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
|
||||
opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
|
||||
opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
|
||||
opts.Add(BoolOption('texture_float',
|
||||
'enable floating-point textures and renderbuffers',
|
||||
'no'))
|
||||
opts.Add(BoolOption('swr', 'Build OpenSWR', 'no'))
|
||||
if host_platform == 'windows':
|
||||
opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')
|
||||
opts.Add('MSVC_USE_SCRIPT', 'Microsoft Visual C/C++ vcvarsall script', True)
|
||||
|
138
configure.ac
138
configure.ac
@@ -74,10 +74,11 @@ AC_SUBST([OPENCL_VERSION])
|
||||
# in the first entry.
|
||||
LIBDRM_REQUIRED=2.4.75
|
||||
LIBDRM_RADEON_REQUIRED=2.4.71
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.95
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.91
|
||||
LIBDRM_INTEL_REQUIRED=2.4.75
|
||||
LIBDRM_NVVIEUX_REQUIRED=2.4.66
|
||||
LIBDRM_NOUVEAU_REQUIRED=2.4.66
|
||||
LIBDRM_FREEDRENO_REQUIRED=2.4.92
|
||||
LIBDRM_ETNAVIV_REQUIRED=2.4.89
|
||||
LIBDRM_VC4_REQUIRED=2.4.89
|
||||
|
||||
@@ -107,9 +108,9 @@ dnl LLVM versions
|
||||
LLVM_REQUIRED_GALLIUM=3.3.0
|
||||
LLVM_REQUIRED_OPENCL=3.9.0
|
||||
LLVM_REQUIRED_R600=3.9.0
|
||||
LLVM_REQUIRED_RADEONSI=6.0.0
|
||||
LLVM_REQUIRED_RADV=6.0.0
|
||||
LLVM_REQUIRED_SWR=6.0.0
|
||||
LLVM_REQUIRED_RADEONSI=5.0.0
|
||||
LLVM_REQUIRED_RADV=5.0.0
|
||||
LLVM_REQUIRED_SWR=4.0.0
|
||||
|
||||
dnl Check for progs
|
||||
AC_PROG_CPP
|
||||
@@ -124,8 +125,7 @@ AC_PROG_GREP
|
||||
AC_PROG_NM
|
||||
AM_PROG_AS
|
||||
AX_CHECK_GNU_MAKE
|
||||
AM_PATH_PYTHON([2.7],, [AM_PATH_PYTHON([3.4],, [:])])
|
||||
|
||||
AC_CHECK_PROGS([PYTHON2], [python2.7 python2 python])
|
||||
AC_PROG_SED
|
||||
AC_PROG_MKDIR_P
|
||||
|
||||
@@ -157,7 +157,7 @@ fi
|
||||
|
||||
AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
|
||||
|
||||
if test "$PYTHON" = ":"; then
|
||||
if test -z "$PYTHON2"; then
|
||||
if test ! -f "$srcdir/src/util/format_srgb.c"; then
|
||||
AC_MSG_ERROR([Python not found - unable to generate sources])
|
||||
fi
|
||||
@@ -295,12 +295,6 @@ esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_ANDROID, test "x$android" = xyes)
|
||||
|
||||
# Toggle Werror since at some point clang started treating unknown -W
|
||||
# flags as warnings, succeeding with the build, yet issuing an annoying
|
||||
# warning.
|
||||
save_CFLAGS="$CFLAGS"
|
||||
export CFLAGS="$CFLAGS -Werror"
|
||||
|
||||
dnl
|
||||
dnl Check compiler flags
|
||||
dnl
|
||||
@@ -308,19 +302,10 @@ AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=implicit-function-declaration], [CFLAGS="$CFLAGS -Werror=implicit-function-declaration"])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=missing-prototypes], [CFLAGS="$CFLAGS -Werror=missing-prototypes"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CFLAGS="$CFLAGS -Wmissing-prototypes"])
|
||||
dnl Dylan Baker: gcc and clang always accepr -Wno-*, hence check for the original warning, then set the no-* flag
|
||||
AX_CHECK_COMPILE_FLAG([-Wmissing-field-initializers], [CFLAGS="$CFLAGS -Wno-missing-field-initializers"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat-truncation], [CFLAGS="$CFLAGS -Wno-format-truncation"])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-math-errno], [CFLAGS="$CFLAGS -fno-math-errno"])
|
||||
|
||||
AX_CHECK_COMPILE_FLAG([-fno-trapping-math], [CFLAGS="$CFLAGS -fno-trapping-math"])
|
||||
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"])
|
||||
|
||||
CFLAGS="$save_CFLAGS"
|
||||
|
||||
# Toggle Werror since at some point clang started treating unknown -W
|
||||
# flags as warnings, succeeding with the build, yet issuing an annoying
|
||||
# warning.
|
||||
dnl
|
||||
dnl Check C++ compiler flags
|
||||
dnl
|
||||
@@ -329,8 +314,6 @@ AX_CHECK_COMPILE_FLAG([-Wall], [CXXFLAGS="$CXXFL
|
||||
AX_CHECK_COMPILE_FLAG([-fno-math-errno], [CXXFLAGS="$CXXFLAGS -fno-math-errno"])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-trapping-math], [CXXFLAGS="$CXXFLAGS -fno-trapping-math"])
|
||||
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wmissing-field-initializers], [CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat-truncation], [CXXFLAGS="$CXXFLAGS -Wno-format-truncation"])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
# Flags to help ensure that certain portions of the code -- and only those
|
||||
@@ -885,7 +868,6 @@ AC_HEADER_MAJOR
|
||||
AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
|
||||
AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
|
||||
AC_CHECK_HEADERS([endian.h])
|
||||
AC_CHECK_HEADER([dlfcn.h], [DEFINES="$DEFINES -DHAVE_DLFCN_H"])
|
||||
AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
|
||||
AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
|
||||
AC_CHECK_FUNC([timespec_get], [DEFINES="$DEFINES -DHAVE_TIMESPEC_GET"])
|
||||
@@ -978,22 +960,6 @@ if test "x$pthread_stubs_possible" = xyes; then
|
||||
PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4)
|
||||
fi
|
||||
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS"
|
||||
AC_MSG_CHECKING(whether pthread_setaffinity_np is supported)
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
#define _GNU_SOURCE
|
||||
#include <pthread.h>
|
||||
int main() {
|
||||
void *a = (void*) &pthread_setaffinity_np;
|
||||
long b = (long) a;
|
||||
return (int) b;
|
||||
}]])],
|
||||
[DEFINES="$DEFINES -DHAVE_PTHREAD_SETAFFINITY"];
|
||||
AC_MSG_RESULT([yes]),
|
||||
AC_MSG_RESULT([no]))
|
||||
LIBS="$save_LIBS"
|
||||
|
||||
dnl Check for futex for fast inline simple_mtx_t.
|
||||
AC_CHECK_HEADER([linux/futex.h], [DEFINES="$DEFINES -DHAVE_LINUX_FUTEX_H"])
|
||||
|
||||
@@ -1444,7 +1410,6 @@ AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
|
||||
"x$enable_gles1" = xyes -o \
|
||||
"x$enable_gles2" = xyes)
|
||||
AM_CONDITIONAL(NEED_KHRPLATFORM, test "x$enable_egl" = xyes -o \
|
||||
"x$enable_opengl" = xyes -o \
|
||||
"x$enable_gles1" = xyes -o \
|
||||
"x$enable_gles2" = xyes)
|
||||
|
||||
@@ -1533,15 +1498,15 @@ fi
|
||||
AC_ARG_WITH([gl-lib-name],
|
||||
[AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
|
||||
[specify GL library name @<:@default=GL@:>@])],
|
||||
[AC_MSG_ERROR([--with-gl-lib-name is no longer supported. Rename the library manually if needed.])],
|
||||
[])
|
||||
[GL_LIB=$withval],
|
||||
[GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
||||
AC_ARG_WITH([osmesa-lib-name],
|
||||
[AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
|
||||
[specify OSMesa library name @<:@default=OSMesa@:>@])],
|
||||
[AC_MSG_ERROR([--with-osmesa-lib-name is no longer supported. Rename the library manually if needed.])],
|
||||
[])
|
||||
GL_LIB="$DEFAULT_GL_LIB_NAME"
|
||||
OSMESA_LIB=OSMesa
|
||||
[OSMESA_LIB=$withval],
|
||||
[OSMESA_LIB=OSMesa])
|
||||
AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
|
||||
AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
|
||||
|
||||
dnl
|
||||
dnl Mangled Mesa support
|
||||
@@ -1553,9 +1518,6 @@ AC_ARG_ENABLE([mangling],
|
||||
[enable_mangling=no]
|
||||
)
|
||||
if test "x${enable_mangling}" = "xyes" ; then
|
||||
if test "x$enable_libglvnd" = xyes; then
|
||||
AC_MSG_ERROR([Conflicting options --enable-mangling and --enable-libglvnd.])
|
||||
fi
|
||||
DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
|
||||
GL_LIB="Mangled${GL_LIB}"
|
||||
OSMESA_LIB="Mangled${OSMESA_LIB}"
|
||||
@@ -1563,15 +1525,6 @@ fi
|
||||
AC_SUBST([GL_LIB])
|
||||
AC_SUBST([OSMESA_LIB])
|
||||
|
||||
dnl HACK when building glx + glvnd we ship gl.pc, despite that glvnd should do it
|
||||
dnl Thus we need to use GL as a DSO name.
|
||||
if test "x$enable_libglvnd" = xyes -a "x$enable_glx" != xno; then
|
||||
GL_PKGCONF_LIB="GL"
|
||||
else
|
||||
GL_PKGCONF_LIB="$GL_LIB"
|
||||
fi
|
||||
AC_SUBST([GL_PKGCONF_LIB])
|
||||
|
||||
# Check for libdrm
|
||||
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
|
||||
[have_libdrm=yes], [have_libdrm=no])
|
||||
@@ -1611,7 +1564,6 @@ AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = x
|
||||
AM_CONDITIONAL(HAVE_LMSENSORS, test "x$enable_lmsensors" = xyes )
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_EXTRA_HUD, test "x$enable_gallium_extra_hud" = xyes )
|
||||
AM_CONDITIONAL(HAVE_WINDOWSDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xwindows )
|
||||
AM_CONDITIONAL(HAVE_XLEASE, test "x$have_xlease" = xyes )
|
||||
|
||||
AC_ARG_ENABLE([shared-glapi],
|
||||
[AS_HELP_STRING([--enable-shared-glapi],
|
||||
@@ -1700,8 +1652,6 @@ xxlib | xgallium-xlib)
|
||||
xdri)
|
||||
# DRI-based GLX
|
||||
|
||||
require_dri_shared_libs_and_glapi "GLX"
|
||||
|
||||
# find the DRI deps for libGL
|
||||
dri_modules="x11 xext xdamage >= $XDAMAGE_REQUIRED xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
|
||||
|
||||
@@ -1725,7 +1675,11 @@ xdri)
|
||||
fi
|
||||
fi
|
||||
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
# add xf86vidmode if available
|
||||
PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
|
||||
if test "$HAVE_XF86VIDMODE" = yes ; then
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([DRIGL], [$dri_modules])
|
||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
|
||||
@@ -1738,6 +1692,10 @@ xdri)
|
||||
;;
|
||||
esac
|
||||
|
||||
# This is outside the case (above) so that it is invoked even for non-GLX
|
||||
# builds.
|
||||
AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
|
||||
|
||||
GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
@@ -1754,6 +1712,8 @@ AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
|
||||
AC_SUBST([GLESv2_LIB_DEPS])
|
||||
AC_SUBST([GLESv2_PC_LIB_PRIV])
|
||||
|
||||
AC_SUBST([HAVE_XF86VIDMODE])
|
||||
|
||||
dnl
|
||||
dnl More GLX setup
|
||||
dnl
|
||||
@@ -1844,10 +1804,6 @@ for plat in $platforms; do
|
||||
PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
|
||||
WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`,
|
||||
WAYLAND_SCANNER='')
|
||||
PKG_CHECK_EXISTS([wayland-scanner >= 1.15],
|
||||
AC_SUBST(SCANNER_ARG, 'private-code'),
|
||||
AC_SUBST(SCANNER_ARG, 'code'))
|
||||
|
||||
if test "x$WAYLAND_SCANNER" = x; then
|
||||
AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:])
|
||||
fi
|
||||
@@ -1913,45 +1869,12 @@ if test x"$enable_dri3" = xyes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if echo "$platforms" | grep -q 'x11' && echo "$platforms" | grep -q 'drm'; then
|
||||
have_xlease=yes
|
||||
else
|
||||
have_xlease=no
|
||||
fi
|
||||
|
||||
if test x"$have_xlease" = xyes; then
|
||||
randr_modules="x11-xcb xcb-randr"
|
||||
PKG_CHECK_MODULES([XCB_RANDR], [$randr_modules])
|
||||
xlib_randr_modules="xrandr"
|
||||
PKG_CHECK_MODULES([XLIB_RANDR], [$xlib_randr_modules])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$platforms" | grep -q 'x11')
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_WAYLAND, echo "$platforms" | grep -q 'wayland')
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_DRM, echo "$platforms" | grep -q 'drm')
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_SURFACELESS, echo "$platforms" | grep -q 'surfaceless')
|
||||
AM_CONDITIONAL(HAVE_PLATFORM_ANDROID, echo "$platforms" | grep -q 'android')
|
||||
|
||||
AC_ARG_ENABLE(xlib-lease,
|
||||
[AS_HELP_STRING([--enable-xlib-lease]
|
||||
[enable VK_acquire_xlib_display using X leases])],
|
||||
[enable_xlib_lease=$enableval], [enable_xlib_lease=auto])
|
||||
case "x$enable_xlib_lease" in
|
||||
xyes)
|
||||
;;
|
||||
xno)
|
||||
;;
|
||||
*)
|
||||
if echo "$platforms" | grep -q 'x11' && echo "$platforms" | grep -q 'drm'; then
|
||||
enable_xlib_lease=yes
|
||||
else
|
||||
enable_xlib_lease=no
|
||||
fi
|
||||
esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_XLIB_LEASE, test "x$enable_xlib_lease" = xyes)
|
||||
|
||||
dnl
|
||||
dnl More DRI setup
|
||||
dnl
|
||||
@@ -2290,13 +2213,13 @@ else
|
||||
have_vdpau_platform=no
|
||||
fi
|
||||
|
||||
if echo $platforms | egrep -q "x11|drm"; then
|
||||
if echo $platforms | grep -q "x11\|drm"; then
|
||||
have_omx_platform=yes
|
||||
else
|
||||
have_omx_platform=no
|
||||
fi
|
||||
|
||||
if echo $platforms | egrep -q "x11|drm|wayland"; then
|
||||
if echo $platforms | grep -q "x11\|drm\|wayland"; then
|
||||
have_va_platform=yes
|
||||
else
|
||||
have_va_platform=no
|
||||
@@ -2720,6 +2643,7 @@ if test -n "$with_gallium_drivers"; then
|
||||
;;
|
||||
xfreedreno)
|
||||
HAVE_GALLIUM_FREEDRENO=yes
|
||||
PKG_CHECK_MODULES([FREEDRENO], [libdrm >= $LIBDRM_FREEDRENO_REQUIRED libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
|
||||
require_libdrm "freedreno"
|
||||
;;
|
||||
xetnaviv)
|
||||
@@ -2834,8 +2758,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
fi
|
||||
|
||||
# XXX: Keep in sync with LLVM_REQUIRED_SWR
|
||||
AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x6.0.0 -a \
|
||||
"x$LLVM_VERSION" != x6.0.1)
|
||||
AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x4.0.0 -a \
|
||||
"x$LLVM_VERSION" != x4.0.1)
|
||||
|
||||
if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then
|
||||
llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
|
||||
@@ -3192,9 +3116,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/mesa/main/tests/Makefile
|
||||
src/mesa/state_tracker/tests/Makefile
|
||||
src/util/Makefile
|
||||
src/util/tests/fast_idiv_by_const/Makefile
|
||||
src/util/tests/hash_table/Makefile
|
||||
src/util/tests/set/Makefile
|
||||
src/util/tests/string_buffer/Makefile
|
||||
src/util/tests/vma/Makefile
|
||||
src/util/xmlpool/Makefile
|
||||
@@ -3364,7 +3286,7 @@ if test "x$enable_llvm" = xyes; then
|
||||
echo " LLVM_LDFLAGS: $LLVM_LDFLAGS"
|
||||
echo ""
|
||||
fi
|
||||
echo " PYTHON: $PYTHON"
|
||||
echo " PYTHON2: $PYTHON2"
|
||||
|
||||
echo ""
|
||||
echo " Run '${MAKE-make}' to build Mesa"
|
||||
|
@@ -94,13 +94,6 @@ Currently there's only one config file provided when dri drivers are
|
||||
enabled - it's <code>drirc</code>.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>--datadir=DIR</code></dt>
|
||||
<dd><p>This option specifies the directory where the data files will
|
||||
be installed. The default is <code>${prefix}/share</code>.
|
||||
Currently when dri drivers are enabled, <code>drirc.d/</code> is at
|
||||
this place.</p>
|
||||
</dd>
|
||||
|
||||
<dt><code>--enable-static, --disable-shared</code></dt>
|
||||
<dd><p>By default, Mesa
|
||||
will build shared libraries. Either of these options will force static
|
||||
|
@@ -102,9 +102,9 @@ In the past, GLUT, GLU and the Mesa demos were released in conjunction with
|
||||
Mesa releases. But since GLUT, GLU and the demos change infrequently, they
|
||||
were split off into their own git repositories:
|
||||
|
||||
<a href="https://gitlab.freedesktop.org/mesa/glut">GLUT</a>,
|
||||
<a href="https://gitlab.freedesktop.org/mesa/glu">GLU</a> and
|
||||
<a href="https://gitlab.freedesktop.org/mesa/demos">Demos</a>,
|
||||
<a href="https://cgit.freedesktop.org/mesa/glut/">GLUT</a>,
|
||||
<a href="https://cgit.freedesktop.org/mesa/glu/">GLU</a> and
|
||||
<a href="https://cgit.freedesktop.org/mesa/demos/">Demos</a>,
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
@@ -146,8 +146,8 @@ your system. For example under the default settings you may end up with a 1GB
|
||||
cache for x86_64 and another 1GB cache for i386.
|
||||
<li>MESA_GLSL_CACHE_DIR - if set, determines the directory to be used
|
||||
for the on-disk cache of compiled GLSL programs. If this variable is
|
||||
not set, then the cache will be stored in $XDG_CACHE_HOME/mesa_shader_cache (if
|
||||
that variable is set), or else within .cache/mesa_shader_cache within the user's
|
||||
not set, then the cache will be stored in $XDG_CACHE_HOME/mesa (if
|
||||
that variable is set), or else within .cache/mesa within the user's
|
||||
home directory.
|
||||
<li>MESA_GLSL - <a href="shading.html#envvars">shading language compiler options</a>
|
||||
<li>MESA_NO_MINMAX_CACHE - when set, the minmax index cache is globally disabled.
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
<center>
|
||||
<h1>Mesa Frequently Asked Questions</h1>
|
||||
Last updated: 19 September 2018
|
||||
Last updated: 9 October 2012
|
||||
</center>
|
||||
|
||||
<br>
|
||||
@@ -373,16 +373,18 @@ the archives) is a good way to get information.
|
||||
|
||||
<h2>4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa?</h2>
|
||||
<p>
|
||||
Oh but it is! Prior to 2nd October 2017, the Mesa project did not include s3tc
|
||||
support due to intellectual property (IP) and/or patent issues around the s3tc
|
||||
algorithm.
|
||||
The <a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt">specification for the extension</a>
|
||||
indicates that there are intellectual property (IP) and/or patent issues
|
||||
to be dealt with.
|
||||
</p>
|
||||
<p>We've been unsuccessful in getting a response from S3 (or whoever owns
|
||||
the IP nowadays) to indicate whether or not an open source project can
|
||||
implement the extension (specifically the compression/decompression
|
||||
algorithms).
|
||||
</p>
|
||||
<p>
|
||||
As of Mesa 17.3.0, Mesa now officially supports s3tc, as the patent has expired.
|
||||
</p>
|
||||
<p>
|
||||
In versions prior to this, a 3rd party <a href="https://dri.freedesktop.org/wiki/S3TC">
|
||||
plug-in library</a> was required.
|
||||
In the mean time, a 3rd party <a href="https://dri.freedesktop.org/wiki/S3TC">
|
||||
plug-in library</a> is available.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
@@ -63,9 +63,9 @@ GL 3.0, GLSL 1.30 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llv
|
||||
glVertexAttribI commands DONE
|
||||
Depth format cube textures DONE ()
|
||||
GLX_ARB_create_context (GLX 1.4 is required) DONE
|
||||
Multisample anti-aliasing DONE (freedreno/a5xx, freedreno (*), llvmpipe (*), softpipe (*), swr (*))
|
||||
Multisample anti-aliasing DONE (freedreno (*), llvmpipe (*), softpipe (*), swr (*))
|
||||
|
||||
(*) freedreno (a2xx-a4xx), llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
||||
(*) freedreno, llvmpipe, softpipe, and swr have fake Multisample anti-aliasing support
|
||||
|
||||
|
||||
GL 3.1, GLSL 1.40 --- all DONE: freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr, virgl
|
||||
@@ -90,7 +90,7 @@ GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi, llvmpipe, soft
|
||||
GL_ARB_fragment_coord_conventions (Frag shader coord) DONE (freedreno)
|
||||
GL_ARB_provoking_vertex (Provoking vertex) DONE (freedreno)
|
||||
GL_ARB_seamless_cube_map (Seamless cubemaps) DONE (freedreno)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE ()
|
||||
GL_ARB_depth_clamp (Frag depth clamp) DONE (freedreno)
|
||||
GL_ARB_sync (Fence objects) DONE (freedreno)
|
||||
GLX_ARB_create_context_profile DONE
|
||||
@@ -117,11 +117,11 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
GL_ARB_gpu_shader5 DONE (i965/gen7+)
|
||||
- 'precise' qualifier DONE
|
||||
- Dynamically uniform sampler array indices DONE (softpipe)
|
||||
- Dynamically uniform UBO array indices DONE (freedreno)
|
||||
- Dynamically uniform UBO array indices DONE ()
|
||||
- Implicit signed -> unsigned conversions DONE
|
||||
- Fused multiply-add DONE ()
|
||||
- Packing/bitfield/conversion functions DONE (freedreno, softpipe)
|
||||
- Enhanced textureGather DONE (freedreno, softpipe)
|
||||
- Packing/bitfield/conversion functions DONE (softpipe)
|
||||
- Enhanced textureGather DONE (softpipe)
|
||||
- Geometry shader instancing DONE (llvmpipe, softpipe)
|
||||
- Geometry shader multiple streams DONE ()
|
||||
- Enhanced per-sample shading DONE ()
|
||||
@@ -149,23 +149,23 @@ GL 4.1, GLSL 4.10 --- all DONE: i965/gen7+, nvc0, r600, radeonsi, virgl
|
||||
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
|
||||
|
||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965)
|
||||
GL_ARB_texture_compression_bptc DONE (freedreno, i965, virgl)
|
||||
GL_ARB_compressed_texture_pixel_storage DONE (all drivers)
|
||||
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx, i965, softpipe)
|
||||
GL_ARB_texture_storage DONE (all drivers)
|
||||
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback_instanced DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_base_instance DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_shader_image_load_store DONE (freedreno/a5xx, i965, softpipe)
|
||||
GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_internalformat_query DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_internalformat_query DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_map_buffer_alignment DONE (all drivers)
|
||||
|
||||
|
||||
GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
|
||||
GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
|
||||
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30)
|
||||
@@ -174,17 +174,17 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, r600, radeonsi, virgl
|
||||
GL_ARB_copy_image DONE (i965, nv50, softpipe, llvmpipe)
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_fragment_layer_viewport DONE (i965, nv50, llvmpipe, softpipe, virgl)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, softpipe)
|
||||
GL_ARB_internalformat_query2 DONE (all drivers)
|
||||
GL_ARB_invalidate_subdata DONE (all drivers)
|
||||
GL_ARB_multi_draw_indirect DONE (freedreno, i965, llvmpipe, softpipe, swr)
|
||||
GL_ARB_multi_draw_indirect DONE (freedreno, i965, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
GL_ARB_robust_buffer_access_behavior DONE (i965)
|
||||
GL_ARB_shader_image_size DONE (freedreno/a5xx, i965, softpipe)
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx, i965, softpipe)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, llvmpipe)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, i965/hsw+, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_texture_buffer_range DONE (freedreno, nv50, i965, llvmpipe, virgl)
|
||||
GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_texture_view DONE (freedreno, i965, nv50, llvmpipe, softpipe, swr)
|
||||
@@ -196,7 +196,7 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
|
||||
GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers)
|
||||
GL_ARB_buffer_storage DONE (freedreno, i965, nv50, llvmpipe, swr)
|
||||
GL_ARB_clear_texture DONE (i965, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe, virgl)
|
||||
GL_ARB_enhanced_layouts DONE (i965, nv50, llvmpipe, softpipe)
|
||||
- compile-time constant expressions DONE
|
||||
- explicit byte offsets for blocks DONE
|
||||
- forced alignment within blocks DONE
|
||||
@@ -211,15 +211,15 @@ GL 4.4, GLSL 4.40 -- all DONE: i965/gen8+, nvc0, r600, radeonsi
|
||||
|
||||
GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
||||
|
||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, r600, virgl)
|
||||
GL_ARB_ES3_1_compatibility DONE (i965/hsw+, r600)
|
||||
GL_ARB_clip_control DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr)
|
||||
GL_ARB_conditional_render_inverted DONE (freedreno, i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_cull_distance DONE (i965, nv50, r600, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_derivative_control DONE (i965, nv50, r600, virgl)
|
||||
GL_ARB_direct_state_access DONE (all drivers)
|
||||
GL_ARB_get_texture_sub_image DONE (all drivers)
|
||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600, virgl)
|
||||
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, r600, virgl)
|
||||
GL_ARB_shader_texture_image_samples DONE (i965, nv50, r600)
|
||||
GL_ARB_texture_barrier DONE (freedreno, i965, nv50, r600)
|
||||
GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful)
|
||||
GL_KHR_robustness DONE (i965)
|
||||
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)
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_polygon_offset_clamp DONE (freedreno, i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr, virgl)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx, i965/gen7+, nvc0, r600, radeonsi, softpipe, virgl)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (freedreno/a5xx, i965/gen7+, nvc0, r600, radeonsi, softpipe)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_spirv_extensions in progress (Nicolai Hähnle, Ian Romanick)
|
||||
@@ -241,11 +241,11 @@ GL 4.6, GLSL 4.60
|
||||
(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
|
||||
|
||||
These are the extensions cherry-picked to make GLES 3.1
|
||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl
|
||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi
|
||||
|
||||
GL_ARB_arrays_of_arrays DONE (all drivers that support GLSL 1.30)
|
||||
GL_ARB_compute_shader DONE (freedreno/a5xx, i965/gen7+, softpipe)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
|
||||
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, softpipe)
|
||||
GL_ARB_program_interface_query DONE (all drivers)
|
||||
@@ -255,12 +255,12 @@ GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl
|
||||
GL_ARB_shader_storage_buffer_object DONE (freedreno/a5xx, i965/gen7+, softpipe)
|
||||
GL_ARB_shading_language_packing DONE (all drivers)
|
||||
GL_ARB_separate_shader_objects DONE (all drivers)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (freedreno/a5xx, i965/gen7+, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_stencil_texturing DONE (freedreno, nv50, llvmpipe, softpipe, swr, virgl)
|
||||
GL_ARB_texture_multisample (Multisample textures) DONE (i965/gen7+, nv50, llvmpipe, softpipe, virgl)
|
||||
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
GL_ARB_vertex_attrib_binding DONE (all drivers)
|
||||
GS5 Enhanced textureGather DONE (freedreno, i965/gen7+)
|
||||
GS5 Packing/bitfield/conversion functions DONE (freedreno/a5xx, i965/gen6+)
|
||||
GS5 Enhanced textureGather DONE (freedreno, i965/gen7+,virgl)
|
||||
GS5 Packing/bitfield/conversion functions DONE (i965/gen6+,virgl)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
Additional functionality not covered above:
|
||||
@@ -269,28 +269,28 @@ GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, r600, radeonsi, virgl
|
||||
glGetBooleani_v - restrict to GLES enums
|
||||
gl_HelperInvocation support DONE (i965, r600)
|
||||
|
||||
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+, radeonsi, virgl
|
||||
GLES3.2, GLSL ES 3.2 -- all DONE: i965/gen9+
|
||||
|
||||
GL_EXT_color_buffer_float DONE (all drivers)
|
||||
GL_KHR_blend_equation_advanced DONE (i965, nvc0)
|
||||
GL_KHR_blend_equation_advanced DONE (i965, nvc0, radeonsi)
|
||||
GL_KHR_debug DONE (all drivers)
|
||||
GL_KHR_robustness DONE (i965, nvc0)
|
||||
GL_KHR_robustness DONE (i965, nvc0, radeonsi)
|
||||
GL_KHR_texture_compression_astc_ldr DONE (freedreno, i965/gen9+)
|
||||
GL_OES_copy_image DONE (all drivers)
|
||||
GL_OES_draw_buffers_indexed DONE (all drivers that support GL_ARB_draw_buffers_blend)
|
||||
GL_OES_draw_elements_base_vertex DONE (all drivers)
|
||||
GL_OES_geometry_shader DONE (i965/hsw+, nvc0)
|
||||
GL_OES_geometry_shader DONE (i965/hsw+, nvc0, radeonsi)
|
||||
GL_OES_gpu_shader5 DONE (all drivers that support GL_ARB_gpu_shader5)
|
||||
GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0)
|
||||
GL_OES_sample_shading DONE (i965, nvc0, r600)
|
||||
GL_OES_sample_variables DONE (i965, nvc0, r600)
|
||||
GL_OES_primitive_bounding_box DONE (i965/gen7+, nvc0, radeonsi)
|
||||
GL_OES_sample_shading DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_OES_sample_variables DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_OES_shader_image_atomic DONE (all drivers that support GL_ARB_shader_image_load_store)
|
||||
GL_OES_shader_io_blocks DONE (All drivers that support GLES 3.1)
|
||||
GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600)
|
||||
GL_OES_shader_multisample_interpolation DONE (i965, nvc0, r600, radeonsi)
|
||||
GL_OES_tessellation_shader DONE (all drivers that support GL_ARB_tessellation_shader)
|
||||
GL_OES_texture_border_clamp DONE (all drivers)
|
||||
GL_OES_texture_buffer DONE (freedreno, i965, nvc0)
|
||||
GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0)
|
||||
GL_OES_texture_buffer DONE (i965, nvc0, radeonsi)
|
||||
GL_OES_texture_cube_map_array DONE (i965/hsw+, nvc0, radeonsi)
|
||||
GL_OES_texture_stencil8 DONE (all drivers that support GL_ARB_texture_stencil8)
|
||||
GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample)
|
||||
|
||||
@@ -299,16 +299,16 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_bindless_texture DONE (nvc0, radeonsi)
|
||||
GL_ARB_cl_event not started
|
||||
GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
|
||||
GL_ARB_ES3_2_compatibility DONE (i965/gen8+, radeonsi, virgl)
|
||||
GL_ARB_ES3_2_compatibility DONE (i965/gen8+)
|
||||
GL_ARB_fragment_shader_interlock DONE (i965)
|
||||
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014
|
||||
GL_ARB_post_depth_coverage DONE (i965, nvc0)
|
||||
GL_ARB_robustness_isolation not started
|
||||
GL_ARB_sample_locations DONE (nvc0)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
|
||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi)
|
||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, r600, radeonsi, softpipe, llvmpipe, swr, virgl)
|
||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi)
|
||||
GL_ARB_sparse_buffer DONE (radeonsi/CIK+)
|
||||
@@ -319,18 +319,15 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_EXT_memory_object DONE (radeonsi)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi)
|
||||
GL_EXT_memory_object_win32 not started
|
||||
GL_EXT_render_snorm DONE (i965)
|
||||
GL_EXT_semaphore DONE (radeonsi)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi)
|
||||
GL_EXT_semaphore_win32 not started
|
||||
GL_EXT_texture_norm16 DONE (i965, r600, radeonsi, nvc0)
|
||||
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
|
||||
GL_KHR_texture_compression_astc_hdr DONE (i965/bxt)
|
||||
GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+, radeonsi)
|
||||
GL_KHR_texture_compression_astc_sliced_3d DONE (i965/gen9+)
|
||||
GL_OES_depth_texture_cube_map DONE (all drivers that support GLSL 1.30+)
|
||||
GL_OES_EGL_image DONE (all drivers)
|
||||
GL_OES_EGL_image_external DONE (all drivers)
|
||||
GL_OES_EGL_image_external_essl3 DONE (all drivers)
|
||||
GL_OES_EGL_image_external_essl3 not started
|
||||
GL_OES_required_internalformat DONE (all drivers)
|
||||
GL_OES_surfaceless_context DONE (all drivers)
|
||||
GL_OES_texture_compression_astc DONE (core only)
|
||||
@@ -338,69 +335,12 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_view DONE (i965/gen8+)
|
||||
GL_OES_texture_view not started - based on GL_ARB_texture_view
|
||||
GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
|
||||
GLX_ARB_context_flush_control not started
|
||||
GLX_ARB_robustness_application_isolation not started
|
||||
GLX_ARB_robustness_share_group_isolation not started
|
||||
|
||||
GL_EXT_direct_state_access subfeatures (in the spec order):
|
||||
GL 1.1: Client commands not started
|
||||
GL 1.0-1.3: Matrix and transpose matrix commands not started
|
||||
GL 1.1-1.2: Texture commands not started
|
||||
GL 1.2: 3D texture commands not started
|
||||
GL 1.2.1: Multitexture commands not started
|
||||
GL 1.2.1-3.0: Indexed texture commands not started
|
||||
GL 1.2.1-3.0: Indexed generic queries not started
|
||||
GL 1.2.1: EnableIndexed.. Get*Indexed not started
|
||||
GL_ARB_vertex_program not started
|
||||
GL 1.3: Compressed texture and multitexture commands not started
|
||||
GL 1.5: Buffer commands not started
|
||||
GL 2.0-2.1: Uniform and uniform matrix commands not started
|
||||
GL_EXT_texture_buffer_object not started
|
||||
GL_EXT_texture_integer not started
|
||||
GL_EXT_gpu_shader4 not started
|
||||
GL_EXT_gpu_program_parameters not started
|
||||
GL_NV_gpu_program4 n/a
|
||||
GL_NV_framebuffer_multisample_coverage n/a
|
||||
GL 3.0: Renderbuffer/framebuffer commands, Gen*Mipmap not started
|
||||
GL 3.0: CopyBuffer command not started
|
||||
GL_EXT_geometry_shader4 commands (expose in GL 3.2) not started
|
||||
GL_NV_explicit_multisample n/a
|
||||
GL 3.0: Vertex array/attrib/query/map commands not started
|
||||
Matrix GL tokens not started
|
||||
|
||||
GL_EXT_direct_state_access additions from other extensions (complete list):
|
||||
GL_AMD_framebuffer_sample_positions n/a
|
||||
GL_AMD_gpu_shader_int64 not started
|
||||
GL_ARB_bindless_texture not started
|
||||
GL_ARB_buffer_storage not started
|
||||
GL_ARB_clear_buffer_object not started
|
||||
GL_ARB_framebuffer_no_attachments not started
|
||||
GL_ARB_gpu_shader_fp64 not started
|
||||
GL_ARB_instanced_arrays not started
|
||||
GL_ARB_internalformat_query2 not started
|
||||
GL_ARB_sparse_texture n/a
|
||||
GL_ARB_sparse_buffer not started
|
||||
GL_ARB_texture_buffer_range not started
|
||||
GL_ARB_texture_storage not started
|
||||
GL_ARB_texture_storage_multisample not started
|
||||
GL_ARB_vertex_attrib_64bit not started
|
||||
GL_ARB_vertex_attrib_binding not started
|
||||
GL_EXT_buffer_storage not started
|
||||
GL_EXT_external_buffer not started
|
||||
GL_EXT_separate_shader_objects n/a
|
||||
GL_EXT_sparse_texture n/a
|
||||
GL_EXT_texture_storage n/a
|
||||
GL_EXT_vertex_attrib_64bit not started
|
||||
GL_EXT_EGL_image_storage n/a
|
||||
GL_NV_bindless_texture n/a
|
||||
GL_NV_gpu_shader5 n/a
|
||||
GL_NV_texture_multisample n/a
|
||||
GL_NV_vertex_buffer_unified_memory n/a
|
||||
GL_NVX_linked_gpu_multicast n/a
|
||||
GLX_NV_copy_buffer n/a
|
||||
|
||||
The following extensions are not part of any OpenGL or OpenGL ES version, and
|
||||
we DO NOT WANT implementations of these extensions for Mesa.
|
||||
|
||||
@@ -412,55 +352,39 @@ we DO NOT WANT implementations of these extensions for Mesa.
|
||||
|
||||
Vulkan 1.0 -- all DONE: anv, radv
|
||||
|
||||
Vulkan 1.1 -- all DONE: anv, radv
|
||||
|
||||
Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_16bit_storage in progress (Alejandro)
|
||||
VK_KHR_bind_memory2 DONE (anv, radv)
|
||||
VK_KHR_android_surface not started
|
||||
VK_KHR_dedicated_allocation DONE (anv, radv)
|
||||
VK_KHR_descriptor_update_template DONE (anv, radv)
|
||||
VK_KHR_device_group not started
|
||||
VK_KHR_device_group_creation not started
|
||||
VK_KHR_external_fence DONE (anv, radv)
|
||||
VK_KHR_external_fence_capabilities DONE (anv, radv)
|
||||
VK_KHR_display not started
|
||||
VK_KHR_display_swapchain not started
|
||||
VK_KHR_external_fence not started
|
||||
VK_KHR_external_fence_capabilities not started
|
||||
VK_KHR_external_fence_fd not started
|
||||
VK_KHR_external_fence_win32 not started
|
||||
VK_KHR_external_memory DONE (anv, radv)
|
||||
VK_KHR_external_memory_capabilities DONE (anv, radv)
|
||||
VK_KHR_external_semaphore DONE (anv, radv)
|
||||
VK_KHR_external_semaphore_capabilities DONE (anv, radv)
|
||||
VK_KHR_get_memory_requirements2 DONE (anv, radv)
|
||||
VK_KHR_get_physical_device_properties2 DONE (anv, radv)
|
||||
VK_KHR_maintenance1 DONE (anv, radv)
|
||||
VK_KHR_maintenance2 DONE (anv, radv)
|
||||
VK_KHR_maintenance3 DONE (anv, radv)
|
||||
VK_KHR_multiview DONE (anv, radv)
|
||||
VK_KHR_relaxed_block_layout DONE (anv, radv)
|
||||
VK_KHR_sampler_ycbcr_conversion DONE (anv)
|
||||
VK_KHR_shader_draw_parameters DONE (anv, radv)
|
||||
VK_KHR_storage_buffer_storage_class DONE (anv, radv)
|
||||
VK_KHR_variable_pointers DONE (anv, radv)
|
||||
|
||||
Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_8bit_storage DONE (anv)
|
||||
VK_KHR_android_surface not started
|
||||
VK_KHR_create_renderpass2 DONE (anv, radv)
|
||||
VK_KHR_display DONE (anv, radv)
|
||||
VK_KHR_display_swapchain DONE (anv, radv)
|
||||
VK_KHR_draw_indirect_count DONE (radv)
|
||||
VK_KHR_external_fence_fd DONE (anv, radv)
|
||||
VK_KHR_external_fence_win32 not started
|
||||
VK_KHR_external_memory_fd DONE (anv, radv)
|
||||
VK_KHR_external_memory_win32 not started
|
||||
VK_KHR_external_semaphore_fd DONE (anv, radv)
|
||||
VK_KHR_external_semaphore DONE (radv)
|
||||
VK_KHR_external_semaphore_capabilities DONE (radv)
|
||||
VK_KHR_external_semaphore_fd DONE (radv)
|
||||
VK_KHR_external_semaphore_win32 not started
|
||||
VK_KHR_get_display_properties2 DONE (anv, radv)
|
||||
VK_KHR_get_surface_capabilities2 DONE (anv, radv)
|
||||
VK_KHR_image_format_list DONE (anv, radv)
|
||||
VK_KHR_get_memory_requirements2 DONE (anv, radv)
|
||||
VK_KHR_get_physical_device_properties2 DONE (anv, radv)
|
||||
VK_KHR_get_surface_capabilities2 DONE (anv)
|
||||
VK_KHR_incremental_present DONE (anv, radv)
|
||||
VK_KHR_maintenance1 DONE (anv, radv)
|
||||
VK_KHR_mir_surface not started
|
||||
VK_KHR_push_descriptor DONE (anv, radv)
|
||||
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, radv)
|
||||
VK_KHR_shader_draw_parameters DONE (anv, radv)
|
||||
VK_KHR_shared_presentable_image not started
|
||||
VK_KHR_storage_buffer_storage_class DONE (anv, radv)
|
||||
VK_KHR_surface DONE (anv, radv)
|
||||
VK_KHR_swapchain DONE (anv, radv)
|
||||
VK_KHR_variable_pointers DONE (anv, radv)
|
||||
VK_KHR_wayland_surface DONE (anv, radv)
|
||||
VK_KHR_win32_keyed_mutex not started
|
||||
VK_KHR_win32_surface not started
|
||||
|
@@ -47,7 +47,7 @@ You can find some further To-do lists here:
|
||||
<b>Common To-Do lists:</b>
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/features.txt">
|
||||
<li><a href="https://cgit.freedesktop.org/mesa/mesa/tree/docs/features.txt">
|
||||
<b>features.txt</b></a> - Status of OpenGL 3.x / 4.x features in Mesa.</li>
|
||||
</ul>
|
||||
|
||||
|
@@ -15,85 +15,6 @@
|
||||
<div class="content">
|
||||
|
||||
<h1>News</h1>
|
||||
<h2>October 31, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.4.html">Mesa 18.2.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>October 19, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.3.html">Mesa 18.2.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>October 5, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.2.html">Mesa 18.2.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 24, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.9.html">Mesa 18.1.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
<br>
|
||||
NOTE: It is anticipated that 18.1.9 will be the final release in the
|
||||
18.1 series. Users of 18.1 are encouraged to migrate to the 18.2
|
||||
series in order to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>September 21, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.1.html">Mesa 18.2.1</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 7, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.8.html">Mesa 18.1.8</a> and
|
||||
<a href="relnotes/18.2.0.html">Mesa 18.2.0</a> are released.
|
||||
|
||||
These are, respectively, a bug-fix release from the 18.1 branch and a
|
||||
new development release. See the release notes for more information
|
||||
about the releases.
|
||||
</p>
|
||||
|
||||
<h2>August 24, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.7.html">Mesa 18.1.7</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 13, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.6.html">Mesa 18.1.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 27, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.5.html">Mesa 18.1.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 13, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.4.html">Mesa 18.1.4</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>June 29, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.3.html">Mesa 18.1.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>June 15, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.1.2.html">Mesa 18.1.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>June 3, 2018</h2>
|
||||
<p>
|
||||
|
@@ -57,7 +57,7 @@ willing to maintain support for other compiler get in touch.
|
||||
<ul>
|
||||
<li>GCC 4.2.0 or later (some parts of Mesa may require later versions)
|
||||
<li>clang - exact minimum requirement is currently unknown.
|
||||
<li>Microsoft Visual Studio 2015 or later is required, for building on Windows.
|
||||
<li>Microsoft Visual Studio 2013 Update 4 or later is required, for building on Windows.
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -72,10 +72,10 @@ you think you've spotted a bug let developers know by filing a
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.python.org/">Python</a> - Python is required.
|
||||
Version 2.7 or later should work.
|
||||
Version 2.6.4 or later should work.
|
||||
</li>
|
||||
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
|
||||
Python Mako module is required. Version 0.8.0 or later should work.
|
||||
Python Mako module is required. Version 0.3.4 or later should work.
|
||||
</li>
|
||||
<li>lex / yacc - for building the Mesa IR and GLSL compiler.
|
||||
<div>
|
||||
|
@@ -21,10 +21,10 @@
|
||||
<p><strong>The Meson build system is generally considered stable and ready
|
||||
for production</strong></p>
|
||||
|
||||
<p>The meson build is tested on Linux, macOS, Cygwin and Haiku, FreeBSD,
|
||||
DragonflyBSD, NetBSD, and should work on OpenBSD.</p>
|
||||
<p>The meson build is tested on on Linux, macOS, Cygwin and Haiku, it should
|
||||
work on FreeBSD, DragonflyBSD, NetBSD, and OpenBSD.</p>
|
||||
|
||||
<p><strong>Mesa requires Meson >= 0.45.0 to build.</strong>
|
||||
<p><strong>Mesa requires Meson >= 0.44.1 to build.</strong>
|
||||
|
||||
Some older versions of meson do not check that they are too old and will error
|
||||
out in odd ways.
|
||||
@@ -95,49 +95,41 @@ each configuration you want to build
|
||||
recommended in the documentation</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Autotools automatically updates translation files as part of the build process,
|
||||
meson does not do this. Instead if you want translated drirc files you will need
|
||||
to invoke non-default targets for ninja to update them:
|
||||
<code>ninja -C build/ xmlpool-pot xmlpool-update-po xmlpool-gmo</code>
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dt><code>Environment Variables</code></dt>
|
||||
<dd><p>Meson supports the standard CC and CXX environment variables for
|
||||
changing the default compiler, and CFLAGS, CXXFLAGS, and LDFLAGS for setting
|
||||
options to the compiler and linker during the initial configuration.
|
||||
options to the compiler and linker.
|
||||
|
||||
These arguments are consumed and stored by meson when it is initialized. To
|
||||
change these flags after the build is initialized (or when doing a first
|
||||
initialization), consider using <code>-D${lang}_args</code> and
|
||||
<code>-D${lang}_link_args</code> instead. Meson will never change compiler in a
|
||||
configured build directory.
|
||||
The default compilers depends on your operating system. Meson supports most of
|
||||
the popular compilers, a complete list is available
|
||||
<a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
|
||||
|
||||
These arguments are consumed and stored by meson when it is initialized or
|
||||
re-initialized. Therefore passing them to meson configure will not do anything,
|
||||
and passing them to ninja will only do something if ninja decides to
|
||||
re-initialize meson, for example, if a meson.build file has been changed.
|
||||
Changing these variables will not cause all targets to be rebuilt, so running
|
||||
ninja clean is recommended when changing CFLAGS or CXXFLAGS. Meson will never
|
||||
change compiler in a configured build directory.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
CC=clang CXX=clang++ meson build-clang
|
||||
ninja -C build-clang
|
||||
ninja -C build-clang clean
|
||||
meson configure build -Dc_args="-Wno-typedef-redefinition"
|
||||
ninja -C build-clang
|
||||
touch meson.build
|
||||
CFLAGS=-Wno-typedef-redefinition ninja -C build-clang
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The default compilers depends on your operating system. Meson supports most of
|
||||
the popular compilers, a complete list is available
|
||||
<a href="http://mesonbuild.com/Reference-tables.html#compiler-ids">here</a>.
|
||||
</p>
|
||||
|
||||
<p>Meson also honors <code>DESTDIR</code> for installs</p>
|
||||
</dd>
|
||||
|
||||
|
||||
<dt><code>LLVM</code></dt>
|
||||
<dd><p>Meson includes upstream logic to wrap llvm-config using its standard
|
||||
<dd><p>Meson includes upstream logic to wrap llvm-config using it's standard
|
||||
dependency interface. It will search <code>$PATH</code> (or <code>%PATH%</code> on windows) for
|
||||
llvm-config (and llvm-config$version and llvm-config-$version), so using an
|
||||
LLVM from a non-standard path is as easy as
|
||||
llvm-config, so using an LLVM from a non-standard path is as easy as
|
||||
<code>PATH=/path/with/llvm-config:$PATH meson build</code>.
|
||||
</p></dd>
|
||||
</dl>
|
||||
|
@@ -39,47 +39,59 @@ if you'd like to nominate a patch in the next stable release.
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3">18.2</td>
|
||||
<td>2018-11-14</td>
|
||||
<td>18.2.5</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-28</td>
|
||||
<td>18.2.6</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-12-12</td>
|
||||
<td>18.2.7</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned 18.2.x release</td>
|
||||
</tr>
|
||||
<td rowspan="4">18.3</td>
|
||||
<td>2018-10-31</td>
|
||||
<td>18.3.0-rc1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>2018-06-29</td>
|
||||
<td>18.1.3</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-07</td>
|
||||
<td>18.3.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td/>
|
||||
<td>2018-07-13</td>
|
||||
<td>18.1.4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-14</td>
|
||||
<td>18.3.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td/>
|
||||
<td>2018-07-27</td>
|
||||
<td>18.1.5</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-21</td>
|
||||
<td>18.3.0-rc4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Last planned RC/final release</td>
|
||||
<td>2018-08-10</td>
|
||||
<td>18.1.6</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-08-24</td>
|
||||
<td>18.1.7</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned 18.1.x release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">18.2</td>
|
||||
<td>2018-07-20</td>
|
||||
<td>18.2.0rc1</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-07-27</td>
|
||||
<td>18.2.0rc2</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-08-03</td>
|
||||
<td>18.2.0rc3</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-08-10</td>
|
||||
<td>18.2.0rc4</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@@ -21,7 +21,6 @@
|
||||
<li><a href="#overview">Overview</a>
|
||||
<li><a href="#schedule">Release schedule</a>
|
||||
<li><a href="#pickntest">Cherry-pick and test</a>
|
||||
<li><a href="#stagingbranch">Staging branch</a>
|
||||
<li><a href="#branch">Making a branchpoint</a>
|
||||
<li><a href="#prerelease">Pre-release announcement</a>
|
||||
<li><a href="#release">Making a new release</a>
|
||||
@@ -55,8 +54,8 @@ For example:
|
||||
<h1 id="schedule">Release schedule</h1>
|
||||
|
||||
<p>
|
||||
Releases should happen on Wednesdays. Delays can occur although those
|
||||
should be keep to a minimum.
|
||||
Releases should happen on Fridays. Delays can occur although those should be keep
|
||||
to a minimum.
|
||||
<br>
|
||||
See our <a href="release-calendar.html" target="_parent">calendar</a> for the
|
||||
date and other details for individual releases.
|
||||
@@ -210,25 +209,6 @@ system and making some every day's use until the release may be a good
|
||||
idea too.
|
||||
</p>
|
||||
|
||||
<h1 id="stagingbranch">Staging branch</h1>
|
||||
|
||||
<p>
|
||||
A live branch, which contains the currently merge/rejected patches is available
|
||||
in the main repository under <code>staging/X.Y</code>. For example:
|
||||
</p>
|
||||
<pre>
|
||||
staging/18.1 - WIP branch for the 18.1 series
|
||||
staging/18.2 - WIP branch for the 18.2 series
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Notes:
|
||||
</p>
|
||||
<ul>
|
||||
<li>People are encouraged to test the branch and report regressions.</li>
|
||||
<li>The branch history is not stable and it <strong>will</strong> be rebased,</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h1 id="branch">Making a branchpoint</h1>
|
||||
|
||||
@@ -512,10 +492,10 @@ Here is one solution that I've been using.
|
||||
# Drop LLVM_CONFIG, if applicable:
|
||||
# unset LLVM_CONFIG
|
||||
|
||||
__glxinfo_cmd='glxinfo 2>&1 | egrep -o "Mesa.*|Gallium.*|.*dri\.so"'
|
||||
__glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
|
||||
__es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
|
||||
__es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"'
|
||||
__glxinfo_cmd='glxinfo 2>&1 | egrep -o "Mesa.*|Gallium.*|.*dri\.so"'
|
||||
__glxgears_cmd='glxgears 2>&1 | grep -v "configuration file"'
|
||||
__es2info_cmd='es2_info 2>&1 | egrep "GL_VERSION|GL_RENDERER|.*dri\.so"'
|
||||
__es2gears_cmd='es2gears_x11 2>&1 | grep -v "configuration file"'
|
||||
test "x$LD_LIBRARY_PATH" != 'x' && __old_ld="$LD_LIBRARY_PATH"
|
||||
export LD_LIBRARY_PATH=`pwd`/test/usr/local/lib/:"${__old_ld}"
|
||||
export LIBGL_DRIVERS_PATH=`pwd`/test/usr/local/lib/dri/
|
||||
|
@@ -21,18 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/18.2.4.html">18.2.4 release notes</a>
|
||||
<li><a href="relnotes/18.2.3.html">18.2.3 release notes</a>
|
||||
<li><a href="relnotes/18.2.2.html">18.2.2 release notes</a>
|
||||
<li><a href="relnotes/18.1.9.html">18.1.9 release notes</a>
|
||||
<li><a href="relnotes/18.2.1.html">18.2.1 release notes</a>
|
||||
<li><a href="relnotes/18.2.0.html">18.2.0 release notes</a>
|
||||
<li><a href="relnotes/18.1.8.html">18.1.8 release notes</a>
|
||||
<li><a href="relnotes/18.1.7.html">18.1.7 release notes</a>
|
||||
<li><a href="relnotes/18.1.6.html">18.1.6 release notes</a>
|
||||
<li><a href="relnotes/18.1.5.html">18.1.5 release notes</a>
|
||||
<li><a href="relnotes/18.1.4.html">18.1.4 release notes</a>
|
||||
<li><a href="relnotes/18.1.3.html">18.1.3 release notes</a>
|
||||
<li><a href="relnotes/18.1.2.html">18.1.2 release notes</a>
|
||||
<li><a href="relnotes/18.0.5.html">18.0.5 release notes</a>
|
||||
<li><a href="relnotes/18.1.1.html">18.1.1 release notes</a>
|
||||
|
@@ -1,167 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.3 Release Notes / June 29 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.3 is a bug fix release which fixes bugs found since the 18.1.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.2 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
2a1e36280d01ad18ba6d5b3fbd653ceaa109eaa031b78eb5dfaa4df452742b66 mesa-18.1.3.tar.gz
|
||||
54f08deeda0cd2f818e8d40140040ed013de7852573002453b7f50da9ea738ce mesa-18.1.3.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105396">Bug 105396</a> - tc compatible htile sets depth of htiles of discarded fragments to 1.0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105399">Bug 105399</a> - [snb] GPU hang: after geometry shader emits no geometry, the program hangs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106756">Bug 106756</a> - Wine 3.9 crashes with DXVK on Just Cause 3 and Quantum Break on VEGA but works ON POLARIS</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106774">Bug 106774</a> - GLSL IR copy propagates loads of SSBOs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106903">Bug 106903</a> - radv: Fragment shader output goes to wrong attachments when render targets are sparse</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106907">Bug 106907</a> - Correct Transform Feedback Varyings information is expected after using ProgramBinary</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106912">Bug 106912</a> - radv: 16-bit depth buffer causes artifacts in Shadow Warrior 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106980">Bug 106980</a> - Basemark GPU vulkan benchmark fails.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965/gen6/gs: Handle case where a GS doesn't allocate VUE</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<ul>
|
||||
<li>radv: Fix output for sparse MRTs.</li>
|
||||
<li>ac/surface: Set compressZ for stencil-only surfaces.</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian Gmeiner (1):</p>
|
||||
<ul>
|
||||
<li>util/bitset: include util/macro.h</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>glsl: allow standalone semicolons outside main()</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (8):</p>
|
||||
<ul>
|
||||
<li>docs: Add release notes for 18.1.2</li>
|
||||
<li>cherry-ignore: Add 587e712eda95c31d88ea9d20e59ad0ae59afef4f</li>
|
||||
<li>meson: Fix auto option for va</li>
|
||||
<li>meson: Fix auto option for xvmc</li>
|
||||
<li>meson: Correct behavior of vdpau=auto</li>
|
||||
<li>cherry-ignore: Ignore cac7ab1192eefdd8d8b3f25053fb006b5c330eb8</li>
|
||||
<li>cherry-ignore: add a2f5292c82ad07731d633b36a663e46adc181db9</li>
|
||||
<li>VERSION: bump version to 18.1.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>configure: use compliant grep regex checks</li>
|
||||
<li>glsl/tests/glcpp: reinstate "error out if no tests found"</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (3):</p>
|
||||
<ul>
|
||||
<li>radv: fix reported number of available VGPRs</li>
|
||||
<li>radv: fix bitwise check</li>
|
||||
<li>meson: fix i965/anv/isl genX static lib names</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Don't copy propagate from SSBO or shared variables either</li>
|
||||
<li>glsl: Don't copy propagate elements from SSBO or shared variables either</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>nir: Handle call instructions in foreach_src</li>
|
||||
<li>nir/validate: Use the type from the tail of call parameter derefs</li>
|
||||
</ul>
|
||||
|
||||
<p>Lukas Rusak (2):</p>
|
||||
<ul>
|
||||
<li>meson: only build vl_winsys_dri.c when x11 platform is used</li>
|
||||
<li>meson: fix private libs when building without glx</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (5):</p>
|
||||
<ul>
|
||||
<li>radeonsi/gfx9: fix si_get_buffer_from_descriptors for 48-bit pointers</li>
|
||||
<li>ac/gpu_info: report real total memory sizes</li>
|
||||
<li>ac/gpu_info: add kernel_flushes_hdp_before_ib</li>
|
||||
<li>radeonsi: always put persistent buffers into GTT on radeon</li>
|
||||
<li>mesa: fix glGetInteger64v for arrays of integers</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>freedreno/ir3: fix base_vertex</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (6):</p>
|
||||
<ul>
|
||||
<li>radv: don't fast clear HTILE for 16-bit depth surfaces on GFX8</li>
|
||||
<li>radv: update the ZRANGE_PRECISION value for the TC-compat bug</li>
|
||||
<li>radv: fix emitting the TCS regs on GFX9</li>
|
||||
<li>radv: fix HTILE metadata initialization in presence of subpass clears</li>
|
||||
<li>radv: ignore pInheritanceInfo for primary command buffers</li>
|
||||
<li>radv: use separate bind points for the dynamic buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>glsl: serialize data from glTransformFeedbackVaryings</li>
|
||||
</ul>
|
||||
|
||||
<p>Tomeu Vizoso (1):</p>
|
||||
<ul>
|
||||
<li>virgl: Remove debugging left-overs</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,150 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.4 Release Notes / July 13 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.4 is a bug fix release which fixes bugs found since the 18.1.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.4 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
SHA256: 8acd42e4ac4d1e96ed22344073b3d4fef03d10f225f4eaf3f88c001dfc10e2db mesa-18.1.4.tar.gz
|
||||
SHA256: 3061488b5d85504092cf4343816cfb2d96f2ad9bc2edec31fc96933d184cf58b mesa-18.1.4.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106906">Bug 106906</a> - Failed to recongnize keyword “sampler2DRect” and "sampler2DRectShadow"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106928">Bug 106928</a> - When starting a match Rocket League crashes on "Go"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107193">Bug 107193</a> - piglit.spec.arb_compute_shader.linker.bug-93840 fails</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Adam Jackson (1):</p>
|
||||
<ul>
|
||||
<li>glx: Don't allow glXMakeContextCurrent() with only one valid drawable</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: cleanup if_conversion iterator to be legal C++</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add SHA256 sums to notes for 18.1.3</li>
|
||||
<li>Bump version for release</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (3):</p>
|
||||
<ul>
|
||||
<li>anv/cmd_buffer: make descriptors dirty when emitting base state address</li>
|
||||
<li>anv/cmd_buffer: clean dirty push constants flag after emitting push constants</li>
|
||||
<li>anv/cmd_buffer: never shrink the push constant buffer size</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (4):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Don't cmod propagate from CMP to ADD if the writemask isn't compatible</li>
|
||||
<li>intel/compiler: Relax mixed type restriction for saturating immediates</li>
|
||||
<li>i965/vec4: Properly handle sign(-abs(x))</li>
|
||||
<li>i965/fs: Properly handle sign(-abs(x))</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (3):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Split instructions low to high in lower_simd_width</li>
|
||||
<li>anv: Be more careful about hashing pipeline layouts</li>
|
||||
<li>intel/fs: Mark LINTERP opcode as writing accumulator on platforms without PLN</li>
|
||||
</ul>
|
||||
|
||||
<p>Jose Maria Casanova Crespo (3):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Register allocator shoudn't use grf127 for sends dest</li>
|
||||
<li>intel/compiler: grf127 can not be dest when src and dest overlap in send</li>
|
||||
<li>i965/fs: unspills shoudn't use grf127 as dest since Gen8+</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>i965: fix clear color bo address relocation</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix memory exhaustion issue with DCC statistics gathering with DRI2</li>
|
||||
<li>glsl/cache: save and restore ExternalSamplersUsed</li>
|
||||
<li>st/dri: fix a crash in server_wait_sync</li>
|
||||
</ul>
|
||||
|
||||
<p>Neil Roberts (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix output register sizes when variable ranges are interleaved</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (1):</p>
|
||||
<ul>
|
||||
<li>nvc0/ir: fix TargetNVC0::insnCanLoadOffset()</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: fix crash in fold_alu_op3</li>
|
||||
</ul>
|
||||
|
||||
<p>Ross Burton (1):</p>
|
||||
<ul>
|
||||
<li>egl: fix build race in automake</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: fix emitting the view index on GFX9</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>glsl: skip comparison opt when adding vars of different size</li>
|
||||
<li>nir: fix selection of loop terminator when two or more have the same limit</li>
|
||||
</ul>
|
||||
|
||||
<p>zhaowei yuan (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Treat sampler2DRect and sampler2DRectShadow as reserved in ES2</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,183 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.4 Release Notes / July 13 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.5 is a bug fix release which fixes bugs found since the 18.1.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.5 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
SHA256: f966d5d5d373a5b8a16ed5036c1e7f05d4ad46d130f793bf9782c3ac9133a02e mesa-18.1.5.tar.gz
|
||||
SHA256: 69dbe6f1a6660386f5beb85d4fcf003ee23023ed7b9a603de84e9a37e8d98dea mesa-18.1.5.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103274">Bug 103274</a> - BRW allocates too much heap memory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107275">Bug 107275</a> - NIR segfaults after spirv-opt</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107295">Bug 107295</a> - Access violation on glDrawArrays with count >= 2048</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107312">Bug 107312</a> - Mesa-git RPM build fails after commit 8cacf38f527d42e41441ef8c25d95d4b2f4e8602</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107366">Bug 107366</a> - NIR verification crashes on piglit tests</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Alex Smith (1):</p>
|
||||
<ul>
|
||||
<li>anv: Pay attention to VK_ACCESS_MEMORY_(READ|WRITE)_BIT</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (7):</p>
|
||||
<ul>
|
||||
<li>radv: Select correct entries for binning.</li>
|
||||
<li>radv: Fix number of samples used for binning.</li>
|
||||
<li>radv: Disable disabled color buffers in rbplus opts.</li>
|
||||
<li>nir: Do not use continue block after removing it.</li>
|
||||
<li>util/disk_cache: Fix disk_cache_get_function_timestamp with disabled cache.</li>
|
||||
<li>nir: Fix end of function without return warning/error.</li>
|
||||
<li>radv: Still enable inmemory & API level caching if disk cache is not enabled.</li>
|
||||
</ul>
|
||||
|
||||
<p>Chad Versace (2):</p>
|
||||
<ul>
|
||||
<li>anv/android: Fix type error in call to vk_errorf()</li>
|
||||
<li>anv/android: Fix Autotools build for VK_ANDROID_native_buffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Chih-Wei Huang (1):</p>
|
||||
<ul>
|
||||
<li>Android: fix a missing nir_intrinsics.h error</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>i965: Sweep NIR after linking phase to free held memory</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>r600: enable tess_input_info for TES</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (5):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for 18.1.4 tarballs</li>
|
||||
<li>cherry-ignore: add 4a67ce886a7b3def5f66c1aedf9e5436d157a03c</li>
|
||||
<li>cherry-ignore: Add 1f616a840eac02241c585d28e9dac8f19a297f39</li>
|
||||
<li>cherry-ignore: add 11712b9ca17e4e1a819dcb7d020e19c6da77bc90</li>
|
||||
<li>bump version to 18.1.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (2):</p>
|
||||
<ul>
|
||||
<li>vc4: Don't automatically reallocate a PERSISTENT-mapped buffer.</li>
|
||||
<li>meson: Move xvmc test tools from unit tests to installed tools.</li>
|
||||
</ul>
|
||||
|
||||
<p>Harish Krupo (1):</p>
|
||||
<ul>
|
||||
<li>egl: Fix missing clamping in eglSetDamageRegionKHR</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (3):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Refuse to accept code with unhandled relocations</li>
|
||||
<li>clover: Report error when pipe driver fails to create compute state</li>
|
||||
<li>clover: Catch errors from executing event action</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>anv: Stop setting 3DSTATE_PS_EXTRA::PixelShaderHasUAV</li>
|
||||
<li>nir/serialize: Alloc constants off the variable</li>
|
||||
<li>blorp: Handle the RGB workaround more like other workarounds</li>
|
||||
<li>intel/blorp: Handle 3-component formats in clears</li>
|
||||
<li>intel/compiler: Account for built-in uniforms in analyze_ubo_ranges</li>
|
||||
<li>spirv: Fix a couple of image atomic load/store bugs</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>gallium/tests: Don't ignore S3TC errors.</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nir: fix printing of vec16 type</li>
|
||||
</ul>
|
||||
|
||||
<p>Lepton Wu (1):</p>
|
||||
<ul>
|
||||
<li>virgl: Fix flush in virgl_encoder_inline_write.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: call resource_changed when binding a EGLImage to a texture</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (2):</p>
|
||||
<ul>
|
||||
<li>radv: winsys/amdgpu: include missing pthread.h header</li>
|
||||
<li>android: util/disk_cache: fix building errors in gallium drivers</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>gallium: Check pipe_screen::resource_changed before dereferencing it</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>draw: force draw pipeline if there's more than 65535 vertices</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsálvez (1):</p>
|
||||
<ul>
|
||||
<li>anv: fix assert in anv_CmdBindDescriptorSets()</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (3):</p>
|
||||
<ul>
|
||||
<li>radv: make sure to wait for CP DMA when needed</li>
|
||||
<li>radv: emit a dummy ZPASS_DONE to prevent GPU hangs on GFX9</li>
|
||||
<li>radv: fix a memleak for merged shaders on GFX9</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,188 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.6 Release Notes / August 13 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.6 is a bug fix release which fixes bugs found since the 18.1.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.6 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
580e03328ffefe1fd43b19ab7669f20d931601a1c0a4c0f8b9c65d6e81a06df3 mesa-18.1.6.tar.gz
|
||||
bb7ce759069801804fcfb8152da3457f76cd7b4e0096e4870ff5adcb5c894289 mesa-18.1.6.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=13728">Bug 13728</a> - [G965] Some objects in Neverwinter Nights Linux version not displayed correctly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98699">Bug 98699</a> - "float[a+++4 ? 1:1] f;" crashes glsl_compiler</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99730">Bug 99730</a> - Metro Redux game(s) needs override for midshader extension declaration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106382">Bug 106382</a> - Shader cache breaks INTEL_DEBUG=shader_time</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107117">Bug 107117</a> - mesa-18.1: regression with TFP on intel with modesettings and glamor acceleration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107212">Bug 107212</a> - Dual-Core CPU E5500 / G45: RetroArch with reicast core results in corrupted graphics</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Adam Jackson (1):</p>
|
||||
<ul>
|
||||
<li>glx: GLX_MESA_multithread_makecurrent is direct-only</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (3):</p>
|
||||
<ul>
|
||||
<li>ddebug: use util_snprintf() in dd_get_debug_filename_and_mkdir</li>
|
||||
<li>gallium/aux/util: use util_snprintf() in test_texture_barrier</li>
|
||||
<li>glsl: use util_snprintf()</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian Gmeiner (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: fix typo in query names</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>r600: reduce num compute threads to 1024.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (6):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha-256 sums for 18.1.5</li>
|
||||
<li>nir/meson: fix c vs cpp args for nir test</li>
|
||||
<li>gallium: fix ddebug on windows</li>
|
||||
<li>cherry-ignore: add patches that get-pick-list is finding in error</li>
|
||||
<li>cherry-ignore: Add some additional patches that are for 18.2</li>
|
||||
<li>bump version to 18.1.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>swr: don't export swr_create_screen_internal</li>
|
||||
<li>automake: require shared glapi when using DRI based libGL</li>
|
||||
<li>autotools: error out when using the broken --with-{gl, osmesa}-lib-name</li>
|
||||
<li>autotools: error out when building with mangling and glvnd</li>
|
||||
<li>autotools: use correct gl.pc LIBS when using glvnd</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (4):</p>
|
||||
<ul>
|
||||
<li>vc4: Fix a leak of the no-vertex-elements workaround BO.</li>
|
||||
<li>vc4: Respect a sampler view's first_layer field.</li>
|
||||
<li>vc4: Ignore samplers for finding uniform offsets.</li>
|
||||
<li>egl: Fix leak of X11 pixmaps backing pbuffers in DRI3.</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>meson, install_megadrivers: Also remove stale symlinks</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (2):</p>
|
||||
<ul>
|
||||
<li>clover: Reduce wait_count in abort path.</li>
|
||||
<li>clover: Don't extend illegal integer types.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>nir: Take if uses into account in ssa_def_components_read</li>
|
||||
<li>i965/fs: Flag all slots of a flat input as flat</li>
|
||||
</ul>
|
||||
|
||||
<p>Jon Turney (1):</p>
|
||||
<ul>
|
||||
<li>meson: use correct keyword to fix a meson warning</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (2):</p>
|
||||
<ul>
|
||||
<li>i965, anv: Use INTEL_DEBUG for disk_cache driver flags</li>
|
||||
<li>i965: Disable shader cache with INTEL_DEBUG=shader_time</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (2):</p>
|
||||
<ul>
|
||||
<li>wayland/egl: update surface size on window resize</li>
|
||||
<li>wayland/egl: initialize window surface size to window size</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (2):</p>
|
||||
<ul>
|
||||
<li>nir/lower_int64: mark all metadata as dirty</li>
|
||||
<li>nvc0/ir: return 0 in imageLoad on incomplete textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>intel: Fix SIMD16 unaligned payload GRF reads on Gen4-5.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>ac/surface: fix MSAA corruption on Vega due to FMASK tile swizzle</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (2):</p>
|
||||
<ul>
|
||||
<li>radv: generate entrypoints for VK_ANDROID_native_buffer</li>
|
||||
<li>radv: move vk_format_table.c to generated sources</li>
|
||||
</ul>
|
||||
|
||||
<p>Olivier Fourdan (1):</p>
|
||||
<ul>
|
||||
<li>dri3: For 1.2, use root window instead of pixmap drawable</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>glsl: handle error case with ast_post_inc, ast_post_dec</li>
|
||||
</ul>
|
||||
|
||||
<p>Vlad Golovkin (1):</p>
|
||||
<ul>
|
||||
<li>swr: Remove unnecessary memset call</li>
|
||||
</ul>
|
||||
|
||||
<p>vadym.shovkoplias (1):</p>
|
||||
<ul>
|
||||
<li>drirc: Allow extension midshader for Metro Redux</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,104 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.7 Release Notes / August 24 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.7 is a bug fix release which fixes bugs found since the 18.1.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.7 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
0c3c240bcd1352d179e65993214f9d55a399beac852c3ab4433e8df9b6c51c83 mesa-18.1.7.tar.gz
|
||||
655e3b32ce3bdddd5e6e8768596e5d4bdef82d0dd37067c324cc4b2daa207306 mesa-18.1.7.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105975">Bug 105975</a> - i965 always reports 0 viewport subpixel bits</li>
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107098">Bug 107098</a> - Segfault after munmap(kms_sw_dt->ro_mapped)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Alexander Tsoy (1):</p>
|
||||
<ul>
|
||||
<li>meson: fix build for egl platform_x11 without dri3 and gbm</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Fix missing Android platform define.</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>i965: Advertise 8 bits subpixel precision for viewport bounds on gen6+</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>r600/eg: rework atomic counter emission with flushes</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (7):</p>
|
||||
<ul>
|
||||
<li>docs: Add sha256 sums for 18.1.6</li>
|
||||
<li>cherry-ignore: Add additional 18.2 only patches</li>
|
||||
<li>cherry-ignore: Add more 18.2 patches</li>
|
||||
<li>cherry-ignore: Add more 18.2 patches</li>
|
||||
<li>cherry-ignore: Add a couple of patches with > 1 fixes tags</li>
|
||||
<li>cherry-ignore: more 18.2 patches</li>
|
||||
<li>bump version for 18.1.7 release</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>intel: Switch the order of the 2x MSAA sample positions</li>
|
||||
<li>anv/lower_ycbcr: Use the binding array size for bounds checks</li>
|
||||
</ul>
|
||||
|
||||
<p>Ray Strode (1):</p>
|
||||
<ul>
|
||||
<li>gallium/winsys/kms: don't unmap what wasn't mapped</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv/winsys: fix creating the BO list for virtual buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>radv: add Doom workaround</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,180 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.8 Release Notes / September 7 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.8 is a bug fix release which fixes bugs found since the 18.1.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.8 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
8ec62f215dd1bb3910987f9941c6fc31632a0874e618815cf1e8e29445c86e0a mesa-18.1.8.tar.gz
|
||||
bd1be67fe9c73b517765264ac28911c84144682d28dbff140e1c2deb2f44c21b mesa-18.1.8.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93355">Bug 93355</a> - [BXT,SKLGT4e] intermittent ext_framebuffer_multisample.accuracy fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101247">Bug 101247</a> - Mesa fails to link GLSL programs with unused output blocks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104809">Bug 104809</a> - anv: DOOM 2016 and Wolfenstein II:The New Colossus crash due to not having depthBoundsTest</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105904">Bug 105904</a> - Needed to delete mesa shader cache after driver upgrade for 32 bit wine vulkan programs to work.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106738">Bug 106738</a> - No test for miptrees with DRI modifiers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106865">Bug 106865</a> - [GLK] piglit.spec.ext_framebuffer_multisample.accuracy stencil tests fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107359">Bug 107359</a> - [Regression] [bisected] [OpenGL CTS] [SKL,BDW] KHR-GL46.texture_barrier*-texels, GTF-GL46.gtf21.GL2FixedTests.buffer_corners.buffer_corners, and GTF-GL46.gtf21.GL2FixedTests.stencil_plane_corners.stencil_plane_corners fail with some configuration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107477">Bug 107477</a> - [DXVK] Setting high shader quality in GTA V results in LLVM error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107579">Bug 107579</a> - [SNB] The graphic corruption when we reuse the GS compiled and used for TFB when statebuffer contain magic trash in the unused space</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107601">Bug 107601</a> - Rise of the Tomb Raider Segmentation Fault when the game starts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107760">Bug 107760</a> - GPU Hang when Playing DiRT 3 Complete Edition using Steam Play with DXVK</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965/gen6/xfb: handle case where transform feedback is not active</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (3):</p>
|
||||
<ul>
|
||||
<li>radv: Add missing checks in radv_get_image_format_properties.</li>
|
||||
<li>radv: Fix CMASK dimensions.</li>
|
||||
<li>radv: Use a lower max offchip buffer count.</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian Gmeiner (1):</p>
|
||||
<ul>
|
||||
<li>tegra: fix memory leak</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (1):</p>
|
||||
<ul>
|
||||
<li>st/dri: Don't expose sRGB formats to clients</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>ac/radeonsi: fix CIK copy max size</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (10):</p>
|
||||
<ul>
|
||||
<li>docs: Add mesa 18.1.7 notes</li>
|
||||
<li>cherry-ignore: add a patch</li>
|
||||
<li>cherry-ignore: Add more 18.2 only patches</li>
|
||||
<li>meson: Actually load translation files</li>
|
||||
<li>cherry-ignore: Add more 18.2 patches</li>
|
||||
<li>cherry-ignore: Add additional patch</li>
|
||||
<li>cherry-ignore: Add patch that doesn't apply to 18.1</li>
|
||||
<li>cherry-ignore: Add a couple of two fixes warning patches</li>
|
||||
<li>cherry-ignore: Add patch that needs more significant patches to function</li>
|
||||
<li>Bump version to 18.1.8</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>docs: update required mako version</li>
|
||||
</ul>
|
||||
|
||||
<p>Grazvydas Ignotas (1):</p>
|
||||
<ul>
|
||||
<li>radv: place pointer length into cache uuid</li>
|
||||
</ul>
|
||||
|
||||
<p>Gurchetan Singh (2):</p>
|
||||
<ul>
|
||||
<li>meson: fix egl build for surfaceless</li>
|
||||
<li>meson: fix egl build for android</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Clamp indirect tes input array reads with 0x0fffffff</li>
|
||||
<li>i965/vec4: Correctly handle uniform sources in generate_tes_add_indirect_urb_offset</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (5):</p>
|
||||
<ul>
|
||||
<li>anv: Fill holes in the VF VUE to zero</li>
|
||||
<li>nir/algebraic: Be more careful converting ushr to extract_u8/16</li>
|
||||
<li>egl/dri2: Add a helper for the number of planes for a FOURCC format</li>
|
||||
<li>egl/dri2: Guard against invalid fourcc formats</li>
|
||||
<li>anv/blorp: Do more flushing around HiZ clears</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (1):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: do not leak wl_buffer when it is locked</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv: blorp: support multiple aspect blits</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>glapi: actually implement GL_EXT_robustness for GLES</li>
|
||||
</ul>
|
||||
|
||||
<p>Nanley Chery (7):</p>
|
||||
<ul>
|
||||
<li>intel/isl: Avoid tiling some 16K-wide render targets</li>
|
||||
<li>i965: Make blt_pitch public</li>
|
||||
<li>i965/miptree: Drop an if case from retile_as_linear</li>
|
||||
<li>i965/miptree: Use the correct BLT pitch</li>
|
||||
<li>i965/miptree: Use miptree_map in map_blit functions</li>
|
||||
<li>i965/miptree: Fix can_blit_slice()</li>
|
||||
<li>i965/gen7_urb: Re-emit PUSH_CONSTANT_ALLOC on some gen9</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: fix passing clip/cull distances from VS to PS</li>
|
||||
</ul>
|
||||
|
||||
<p>vadym.shovkoplias (1):</p>
|
||||
<ul>
|
||||
<li>glsl/linker: Allow unused in blocks which are not declated on previous stage</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,178 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.1.8 Release Notes / September 24 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.1.9 is a bug fix release which fixes bugs found since the 18.1.8 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.1.9 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
0f825dc834b1b3e3d9a6c3ce58b42977f0d9a248a7627a36dd3b313ffe41a499 mesa-18.1.9.tar.gz
|
||||
55f5778d58a710a63d6635f000535768faf7db9e8144dc0f4fd1989f936c1a83 mesa-18.1.9.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103241">Bug 103241</a> - Anv crashes when using 64-bit vertex inputs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104926">Bug 104926</a> - swrast: Mesa 17.3.3 produces: HW cursor for format 875713089 not supported</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107280">Bug 107280</a> - [DXVK] Batman: Arkham City with tessellation enabled hangs on SKL GT4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107772">Bug 107772</a> - Mesa preprocessor matches if(def)s & endifs incorrectly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107779">Bug 107779</a> - Access violation with some games</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107810">Bug 107810</a> - The 'va_end' call is missed after 'va_copy' in 'util_vsnprintf' function under windows</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
<p>Andrii Simiklit (4):</p>
|
||||
<ul>
|
||||
<li>apple/glx/log: added missing va_end() after va_copy()</li>
|
||||
<li>mesa/util: don't use the same 'va_list' instance twice</li>
|
||||
<li>mesa/util: don't ignore NULL returned from 'malloc'</li>
|
||||
<li>mesa/util: add missing va_end() after va_copy()</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (4):</p>
|
||||
<ul>
|
||||
<li>radv: Use build ID if available for cache UUID.</li>
|
||||
<li>radv: Only allow 16 user SGPRs for compute on GFX9+.</li>
|
||||
<li>radv: Set the user SGPR MSB for Vega.</li>
|
||||
<li>radv: Fix driver UUID SHA1 init.</li>
|
||||
</ul>
|
||||
|
||||
<p>Christopher Egert (1):</p>
|
||||
<ul>
|
||||
<li>radeon: fix ColorMask</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>virgl: don't send a shader create with no data. (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (10):</p>
|
||||
<ul>
|
||||
<li>docs/relnotes: Add sha256 sums for mesa 18.1.8</li>
|
||||
<li>cherry-ignore: Add additional 18.2 patch</li>
|
||||
<li>meson: Print a message about why a libdrm version was selected</li>
|
||||
<li>cherry-ignore: add another 18.2 patch</li>
|
||||
<li>cherry-ignore: Add patches that don't apply cleanly and are for developer tools</li>
|
||||
<li>cherry-ignore: Add more 18.2 patches</li>
|
||||
<li>cherry-ignore: add 18.2 patchs</li>
|
||||
<li>cherry-ignore: add a patch that was reverted on master</li>
|
||||
<li>cherry-ignore: one final update</li>
|
||||
<li>Bump version to 18.1.9</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>winsys/virgl: avoid unintended behavior</li>
|
||||
<li>virgl: adjust strides when mapping temp-resources</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>winsys/virgl: correct resource and handle allocation (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>anv/pipeline: Only consider double elements which actually exist</li>
|
||||
<li>i965: Workaround the gen9 hw astc5x5 sampler bug</li>
|
||||
<li>anv: Re-emit vertex buffers when the pipeline changes</li>
|
||||
<li>anv: Disable the vertex cache when tessellating on SKL GT4</li>
|
||||
<li>anv: Clamp scissors to the framebuffer boundary</li>
|
||||
<li>anv/query: Write both dwords in emit_zero_queries</li>
|
||||
</ul>
|
||||
|
||||
<p>Josh Pieper (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: Validate the result of pipe_transfer_map in make_texture (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Feng (1):</p>
|
||||
<ul>
|
||||
<li>amd: Add Picasso device id</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>st/mesa: help fix stencil border color for GL_DEPTH_STENCIL textures</li>
|
||||
<li>radeonsi: fix HTILE for NPOT textures with mipmapping on SI/CI</li>
|
||||
<li>r600: fix HTILE for NPOT textures with mipmapping</li>
|
||||
<li>radeonsi: fix printing a BO list into ddebug reports</li>
|
||||
</ul>
|
||||
|
||||
<p>Mathias Fröhlich (1):</p>
|
||||
<ul>
|
||||
<li>tnl: Fix green gun regression in xonotic.</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (3):</p>
|
||||
<ul>
|
||||
<li>android: broadcom/genxml: fix collision with intel/genxml header-gen macro</li>
|
||||
<li>android: broadcom/cle: add gallium include path</li>
|
||||
<li>android: broadcom/cle: export the broadcom top level path headers</li>
|
||||
</ul>
|
||||
|
||||
<p>Michal Srb (1):</p>
|
||||
<ul>
|
||||
<li>st/dri: don't set queryDmaBufFormats/queryDmaBufModifiers if the driver does not implement it</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: Only wait for back buffer fences in dri3_get_buffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Pierre Moreau (1):</p>
|
||||
<ul>
|
||||
<li>nvir: Always split 64-bit IMAD/IMUL operations</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>intel: compiler option msse2 and mstackrealign</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>glsl: fixer lexer for unreachable defines</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -14,7 +14,7 @@
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.0 Release Notes / September 7, 2018</h1>
|
||||
<h1>Mesa 18.2.0 Release Notes / TBD</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.0 is a new development release. People who are concerned
|
||||
@@ -40,8 +40,7 @@ an up-to-date version of Wayland to keep the functionality.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
b9e6bb3eb7660b0726ba28405ffa0cb77de619e925b910b72f4d7a85c0098596 mesa-18.2.0.tar.gz
|
||||
22452bdffff8e11bf4284278155a9f77cb28d6d73a12c507f1490732d0d9ddce mesa-18.2.0.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -52,224 +51,13 @@ Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>OpenGL 4.3 on virgl</li>
|
||||
<li>OpenGL 4.4 Compatibility profile on radeonsi</li>
|
||||
<li>OpenGL ES 3.2 on radeonsi and virgl</li>
|
||||
<li>GL_ARB_ES3_2_compatibility on radeonsi</li>
|
||||
<li>GL_ARB_fragment_shader_interlock on i965</li>
|
||||
<li>GL_ARB_sample_locations and GL_NV_sample_locations on nvc0 (GM200+)</li>
|
||||
<li>GL_ANDROID_extension_pack_es31a on radeonsi.</li>
|
||||
<li>GL_KHR_texture_compression_astc_ldr on radeonsi</li>
|
||||
<li>GL_NV_conservative_raster and GL_NV_conservative_raster_dilate on nvc0 (GM200+)</li>
|
||||
<li>GL_NV_conservative_raster_pre_snap_triangles on nvc0 (GP102+)</li>
|
||||
<li>multisampled images on nvc0 (GM107+) (now supported on GF100+)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=13728">Bug 13728</a> - [G965] Some objects in Neverwinter Nights Linux version not displayed correctly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=61761">Bug 61761</a> - glPolygonOffsetEXT, OFFSET_BIAS incorrectly set to a huge number</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=65422">Bug 65422</a> - Rename api_validate.[ch] to draw_validate.[ch]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78097">Bug 78097</a> - glUniform1ui and friends not supported by display lists</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=91808">Bug 91808</a> - trine1 misrender r600g</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=93355">Bug 93355</a> - [BXT,SKLGT4e] intermittent ext_framebuffer_multisample.accuracy fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95009">Bug 95009</a> - [SNB] amd_shader_trinary_minmax.execution.built-in-functions.gs-mid3-ivec2-ivec2-ivec2 intermittent</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=95012">Bug 95012</a> - [SNB] glsl-1_50.execution.built-in-functions.gs-op tests intermittent</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98699">Bug 98699</a> - "float[a+++4 ? 1:1] f;" crashes glsl_compiler</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99116">Bug 99116</a> - Wine DirectDraw programs showing only a blackscreen when using Mesa Gallium drivers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99730">Bug 99730</a> - Metro Redux game(s) needs override for midshader extension declaration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100177">Bug 100177</a> - [GM206] Misrendering in XCOM Ennemy Within</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100430">Bug 100430</a> - [radv] graphical glitches on dolphin emulator</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101247">Bug 101247</a> - Mesa fails to link GLSL programs with unused output blocks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102390">Bug 102390</a> - centroid interpolation causes broken attribute values</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102678">Bug 102678</a> - gl_BaseVertex should always be zero when the draw command has no <basevertex> parameter</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103274">Bug 103274</a> - BRW allocates too much heap memory</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104388">Bug 104388</a> - [snb] GPU HANG: ecode 6:0:0x85fffff8 in fgfs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104626">Bug 104626</a> - broadcom/vc5: double compare</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104809">Bug 104809</a> - anv: DOOM 2016 and Wolfenstein II:The New Colossus crash due to not having depthBoundsTest</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105351">Bug 105351</a> - [Gen6+] piglit's arb_shader_image_load_store-host-mem-barrier fails with a glGetTexSubImage fallback path</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105374">Bug 105374</a> - texture3d, a SaschaWillems demo, assert fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105396">Bug 105396</a> - tc compatible htile sets depth of htiles of discarded fragments to 1.0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105399">Bug 105399</a> - [snb] GPU hang: after geometry shader emits no geometry, the program hangs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105497">Bug 105497</a> - shader-db crashes on 72 core system after ast_type_qualifier bitset change</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105613">Bug 105613</a> - Compute shader locks up within nested "for" loop</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105731">Bug 105731</a> - linker error "fragment shader input ... has no matching output in the previous stage" when previous stage's output declaration in a separate shader object</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105904">Bug 105904</a> - Needed to delete mesa shader cache after driver upgrade for 32 bit wine vulkan programs to work.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105975">Bug 105975</a> - i965 always reports 0 viewport subpixel bits</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106090">Bug 106090</a> - Compiling compute shader crashes RADV</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106133">Bug 106133</a> - make check "OSError: [Errno 24] Too many open files"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106163">Bug 106163</a> - r600/sb: optimizer tries to schedule access to different array elements in one instruction group</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106174">Bug 106174</a> - vulkan dota2 broken (segfaulting), found bug commit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106180">Bug 106180</a> - [bisected] radv vulkan smoke test black screen (Add support for DRI3 v1.2)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106232">Bug 106232</a> - LLVM unit tests have error in random number handling</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106243">Bug 106243</a> - [kbl] GPU HANG: 9:0:0x85dffffb, in Cinnamon</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106315">Bug 106315</a> - The witness + dxvk suffers flickering garbage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106331">Bug 106331</a> - radv doesnt support VK_FORMAT_R32G32B32_SFLOAT</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106382">Bug 106382</a> - Shader cache breaks INTEL_DEBUG=shader_time</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106393">Bug 106393</a> - glsl-fs-shader-stencil-export hangs forever</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106450">Bug 106450</a> - glGetIntegerv return wrong value in some cases</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106462">Bug 106462</a> - piglit.spec.arb_vertex_array_bgra.get regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106479">Bug 106479</a> - NDEBUG not defined for libamdgpu_addrlib</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106480">Bug 106480</a> - A2B10G10R10_SNORM vertex attribute doesn't work.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106499">Bug 106499</a> - [regression, bisected] Several games crash on start</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106504">Bug 106504</a> - vulkan SPIR-V parsing failed at ../src/compiler/spirv/vtn_cfg.c:381</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106511">Bug 106511</a> - radv: MSAA broken on SI (assertion failure in vkCreateImage)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106587">Bug 106587</a> - Dota2 is very dark when using vulkan render on a Intel << AMD prime setup</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106594">Bug 106594</a> - [regression,apitrace,bisected] Prison Architect rendered unplayable by multicoloured flickering triangles and overlayed triangles when performing certain actions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106619">Bug 106619</a> - [OpenCL][llvm-svn]build failure addPassesToEmitFile candidate expects 6 arguments, 3 provided</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106629">Bug 106629</a> - [SNB,IVB,HSW,BDW] dEQP-EGL.functional.image.create.gles2_cubemap_negative_z_rgb_read_pixels</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106642">Bug 106642</a> - X server crashes in i965 on desktop startup when DRI3 v1.2 / modifier support is enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106643">Bug 106643</a> - double free when exporting a temporarily imported semaphore</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106673">Bug 106673</a> - [bisected] Steam is unusable since commit 5c33e8c7</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106687">Bug 106687</a> - radv: Fast color clears use incorrect format</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106708">Bug 106708</a> - [SKL/KBL/GLK] 2-3% performance drop in SynMark DrvState and 5-9% drop on SynMark Multithread</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106748">Bug 106748</a> - st/mesa: use PIPE_CAP_GLSL_FEATURE_LEVEL_COMPATIBILITY broke qemu -display sdl,gl=on</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106756">Bug 106756</a> - Wine 3.9 crashes with DXVK on Just Cause 3 and Quantum Break on VEGA but works ON POLARIS</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106774">Bug 106774</a> - GLSL IR copy propagates loads of SSBOs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106776">Bug 106776</a> - vma_random unrecognized command line option "-std=c++11"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106778">Bug 106778</a> - Files missing from tarball - intel_sanitize_gpu.*</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106779">Bug 106779</a> - Files missing from tarball - u_debug_stack_android.cpp</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106784">Bug 106784</a> - 18.1.1 autotools build fail without mako</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106801">Bug 106801</a> - vma_random_test.cpp:239:18: error: non-constant-expression cannot be narrowed from type 'unsigned long' to 'uint_fast32_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106810">Bug 106810</a> - ProgramBinary does not switch program correctly when using transform feedback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106823">Bug 106823</a> - Failed to recongnize keyword of shader code</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106830">Bug 106830</a> - [bisected] 32 bit tests (deqp, piglit, glcts, vulkancts) crashing on all platforms</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106861">Bug 106861</a> - fatal error: wayland-egl-backend.h: No such file or directory compilation terminated.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106865">Bug 106865</a> - [GLK] piglit.spec.ext_framebuffer_multisample.accuracy stencil tests fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106903">Bug 106903</a> - radv: Fragment shader output goes to wrong attachments when render targets are sparse</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106906">Bug 106906</a> - Failed to recongnize keyword “sampler2DRect” and "sampler2DRectShadow"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106907">Bug 106907</a> - Correct Transform Feedback Varyings information is expected after using ProgramBinary</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106912">Bug 106912</a> - radv: 16-bit depth buffer causes artifacts in Shadow Warrior 2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106928">Bug 106928</a> - When starting a match Rocket League crashes on "Go"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106941">Bug 106941</a> - Intel ANV vulkan driver exposing version 1.1.0 which is incorrect</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106986">Bug 106986</a> - glGetQueryiv error when querying number of result bits for GL_ANY_SAMPLES_PASSED_CONSERVATIVE</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106997">Bug 106997</a> - [Regression]. Dying light game is crashing on latest mesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107098">Bug 107098</a> - Segfault after munmap(kms_sw_dt->ro_mapped)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107117">Bug 107117</a> - mesa-18.1: regression with TFP on intel with modesettings and glamor acceleration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107190">Bug 107190</a> - Got seg fault on snb when use INTEL_DEBUG=bat</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107193">Bug 107193</a> - piglit.spec.arb_compute_shader.linker.bug-93840 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107212">Bug 107212</a> - Dual-Core CPU E5500 / G45: RetroArch with reicast core results in corrupted graphics</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107223">Bug 107223</a> - [GEN9+] 50% perf drop in SynMark Fill* tests (E2E RBC gets disabled?)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107248">Bug 107248</a> - [G45 ILK G965] Texture handling broken</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107275">Bug 107275</a> - NIR segfaults after spirv-opt</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107276">Bug 107276</a> - radv: OpBitfieldUExtract returns incorrect result when count is zero</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107295">Bug 107295</a> - Access violation on glDrawArrays with count >= 2048</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107305">Bug 107305</a> - glsl/opt_copy_propagation_elements.cpp:72:9: error: delegating constructors are permitted only in C++11</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107312">Bug 107312</a> - Mesa-git RPM build fails after commit 8cacf38f527d42e41441ef8c25d95d4b2f4e8602</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107359">Bug 107359</a> - [Regression] [bisected] [OpenGL CTS] [SKL,BDW] KHR-GL46.texture_barrier*-texels, GTF-GL46.gtf21.GL2FixedTests.buffer_corners.buffer_corners, and GTF-GL46.gtf21.GL2FixedTests.stencil_plane_corners.stencil_plane_corners fail with some configuration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107366">Bug 107366</a> - NIR verification crashes on piglit tests</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107423">Bug 107423</a> - vc4 build failure: "v3d_decoder.c:893: undefined reference to `clif_lookup_bo'"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107443">Bug 107443</a> - Build error on arm64: v3d_decoder.c:837:17: error: format not a string literal and no format arguments [-Werror=format-security]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107460">Bug 107460</a> - radv: OpControlBarrier does not always work correctly (bisected)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107477">Bug 107477</a> - [DXVK] Setting high shader quality in GTA V results in LLVM error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107510">Bug 107510</a> - [GEN8+] up to 10% perf drop on several 3D benchmarks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107544">Bug 107544</a> - intel/decoder: out of bounds group_iter</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107550">Bug 107550</a> - "0[2]" as function parameter hits assert</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107579">Bug 107579</a> - [SNB] The graphic corruption when we reuse the GS compiled and used for TFB when statebuffer contain magic trash in the unused space</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107601">Bug 107601</a> - Rise of the Tomb Raider Segmentation Fault when the game starts</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107610">Bug 107610</a> - Dolphin emulator mis-renders shadow overlay in Super Mario Sunshine</li>
|
||||
|
||||
<li>GL_ARB_sample_locations and GL_NV_sample_locations on nvc0 (GM200+)</li>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
@@ -1,227 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.1 Release Notes / September 21, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.1 is a bug fix release which fixes bugs found since the 18.2.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.0 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
SHA256: 45419ccbe1bf9a2e15ffe71ced34615002e1b42c24b917fbe2b2f58ab1970562 mesa-18.2.1.tar.gz
|
||||
SHA256: 9636dc6f3d188abdcca02da97cedd73640d9035224efd5db724187d062c81056 mesa-18.2.1.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103241">Bug 103241</a> - Anv crashes when using 64-bit vertex inputs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107280">Bug 107280</a> - [DXVK] Batman: Arkham City with tessellation enabled hangs on SKL GT4</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107772">Bug 107772</a> - Mesa preprocessor matches if(def)s & endifs incorrectly</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107779">Bug 107779</a> - Access violation with some games</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107810">Bug 107810</a> - The 'va_end' call is missed after 'va_copy' in 'util_vsnprintf' function under windows</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107832">Bug 107832</a> - Gallium picking A16L16 formats when emulating INTENSITY16 conflicts with mesa</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107843">Bug 107843</a> - 32bit Mesa build failes with meson.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107879">Bug 107879</a> - crash happens when link program</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107891">Bug 107891</a> - [wine, regression, bisected] RAGE, Wolfenstein The New Order hangs in menu</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.0</li>
|
||||
<li>Revert "Revert "glsl: skip stringification in preprocessor if in unreachable branch""</li>
|
||||
<li>cherry-ignore: i965/tools: 32bit compilation with meson</li>
|
||||
</ul>
|
||||
|
||||
<p>Andrii Simiklit (4):</p>
|
||||
<ul>
|
||||
<li>apple/glx/log: added missing va_end() after va_copy()</li>
|
||||
<li>mesa/util: don't use the same 'va_list' instance twice</li>
|
||||
<li>mesa/util: don't ignore NULL returned from 'malloc'</li>
|
||||
<li>mesa/util: add missing va_end() after va_copy()</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (5):</p>
|
||||
<ul>
|
||||
<li>radv: Support v3 of VK_EXT_vertex_attribute_divisor.</li>
|
||||
<li>radv: Set the user SGPR MSB for Vega.</li>
|
||||
<li>radv: Only allow 16 user SGPRs for compute on GFX9+.</li>
|
||||
<li>radv: Use build ID if available for cache UUID.</li>
|
||||
<li>radv: Fix driver UUID SHA1 init.</li>
|
||||
</ul>
|
||||
|
||||
<p>Christopher Egert (1):</p>
|
||||
<ul>
|
||||
<li>radeon: fix ColorMask</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>virgl: don't send a shader create with no data. (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>meson: Print a message about why a libdrm version was selected</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (2):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix SRC_ALPHA_SATURATE blending for RTs without alpha.</li>
|
||||
<li>v3d: Fix setup of the VCM cache size.</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>winsys/virgl: avoid unintended behavior</li>
|
||||
<li>virgl: adjust strides when mapping temp-resources</li>
|
||||
</ul>
|
||||
|
||||
<p>Fritz Koenig (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Additional FlipY applications</li>
|
||||
<li>mesa: FramebufferParameteri parameter checking</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (2):</p>
|
||||
<ul>
|
||||
<li>winsys/virgl: correct resource and handle allocation (v2)</li>
|
||||
<li>mesa/texture: Also check for LA texture when querying intensity component size</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (1):</p>
|
||||
<ul>
|
||||
<li>i965/fs: Don't propagate conditional modifiers from integer compares to adds</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (11):</p>
|
||||
<ul>
|
||||
<li>anv/pipeline: Only consider double elements which actually exist</li>
|
||||
<li>i965: Workaround the gen9 hw astc5x5 sampler bug</li>
|
||||
<li>anv: Re-emit vertex buffers when the pipeline changes</li>
|
||||
<li>anv: Disable the vertex cache when tessellating on SKL GT4</li>
|
||||
<li>anv: Clamp scissors to the framebuffer boundary</li>
|
||||
<li>vulkan: Update the XML and headers to 1.1.84</li>
|
||||
<li>anv: Support v3 of VK_EXT_vertex_attribute_divisor</li>
|
||||
<li>anv/query: Write both dwords in emit_zero_queries</li>
|
||||
<li>nir: Add a small pass to rematerialize derefs per-block</li>
|
||||
<li>nir/loop_unroll: Re-materialize derefs in use blocks before unrolling</li>
|
||||
<li>nir/opt_if: Re-materialize derefs in use blocks before peeling loops</li>
|
||||
</ul>
|
||||
|
||||
<p>Josh Pieper (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: Validate the result of pipe_transfer_map in make_texture (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (2):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: radv: fix descriptor pool allocation size</li>
|
||||
<li>Update version to 18.2.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Feng (1):</p>
|
||||
<ul>
|
||||
<li>amd: Add Picasso device id</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (5):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix HTILE for NPOT textures with mipmapping on SI/CI</li>
|
||||
<li>winsys/radeon: fix CMASK fast clear for NPOT textures with mipmapping on SI/CI</li>
|
||||
<li>r600: fix HTILE for NPOT textures with mipmapping</li>
|
||||
<li>radeonsi: fix printing a BO list into ddebug reports</li>
|
||||
<li>ac: revert new LLVM 7.0 behavior for fdiv</li>
|
||||
</ul>
|
||||
|
||||
<p>Mathias Fröhlich (1):</p>
|
||||
<ul>
|
||||
<li>tnl: Fix green gun regression in xonotic.</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (3):</p>
|
||||
<ul>
|
||||
<li>android: broadcom/genxml: fix collision with intel/genxml header-gen macro</li>
|
||||
<li>android: broadcom/cle: add gallium include path</li>
|
||||
<li>android: broadcom/cle: export the broadcom top level path headers</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: Only wait for back buffer fences in dri3_get_buffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Pierre Moreau (1):</p>
|
||||
<ul>
|
||||
<li>nvir: Always split 64-bit IMAD/IMUL operations</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (7):</p>
|
||||
<ul>
|
||||
<li>radv: fix function names for VK_EXT_conditional_rendering</li>
|
||||
<li>radv: fix VK_EXT_conditional_rendering visibility</li>
|
||||
<li>radv: bump the maximum number of arguments to 64</li>
|
||||
<li>radv: handle loc->indirect correctly for the first descriptor</li>
|
||||
<li>radv: fix GPU hangs with 32-bit indirect descriptors</li>
|
||||
<li>radv: fix flushing indirect descriptors</li>
|
||||
<li>radv: fix setting global locations for indirect descriptors</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (3):</p>
|
||||
<ul>
|
||||
<li>intel: compiler option msse2 and mstackrealign</li>
|
||||
<li>i965/tools: 32bit compilation with meson</li>
|
||||
<li>mesa/meson: 32bit xmlconfig linkage</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>glsl: fixer lexer for unreachable defines</li>
|
||||
<li>Revert "radeonsi: avoid syncing the driver thread in si_fence_finish"</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,155 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.2 Release Notes / October 5, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.2 is a bug fix release which fixes bugs found since the 18.2.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.2 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
SHA256: c51711168971957037cc7e3e19e8abe1ec6eeab9cf236d419a1e7728a41cac8a mesa-18.2.2.tar.gz
|
||||
SHA256: c3ba82b12a89d3d9fed2bdd96b4702dbb7ab675034650a8b1b718320daf073c4 mesa-18.2.2.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104602">Bug 104602</a> - [apitrace] Graphical artifacts in Civilization VI on RX Vega</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104926">Bug 104926</a> - swrast: Mesa 17.3.3 produces: HW cursor for format 875713089 not supported</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107276">Bug 107276</a> - radv: OpBitfieldUExtract returns incorrect result when count is zero</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107786">Bug 107786</a> - [DXVK] MSAA reflections are broken in GTA V</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108024">Bug 108024</a> - [Debian Stretch]Fail to build because "xcb_randr_lease_t"</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Deucher (1):</p>
|
||||
<ul>
|
||||
<li>pci_ids: add new polaris pci id</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Rodriguez (1):</p>
|
||||
<ul>
|
||||
<li>radv: only emit ZPASS_DONE for timestamp queries on gfx queues</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Clamp RCP when 0*inf!=0</li>
|
||||
<li>st/nine: Avoid redundant SetCursorPos calls</li>
|
||||
<li>st/nine: Increase maximum number of temp registers</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>meson: Don't compile pipe loader with dri support when not using dri</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>vc4: Fix sin(0.0) and cos(0.0) accuracy to fix SDL rendering rotation.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>vulkan/wsi/display: check if wsi_swapchain_init() succeeded</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>anv,radv: Implement vkAcquireNextImage2</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.1</li>
|
||||
<li>Update version to 18.2.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (1):</p>
|
||||
<ul>
|
||||
<li>radeon/uvd: use bitstream coded number for symbols of Huffman tables</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>glsl_to_tgsi: invert gl_SamplePosition.y for the default framebuffer</li>
|
||||
<li>radeonsi: NaN should pass kill_if</li>
|
||||
</ul>
|
||||
|
||||
<p>Maxime (1):</p>
|
||||
<ul>
|
||||
<li>vulkan: Disable randr lease for libxcb < 1.13</li>
|
||||
</ul>
|
||||
|
||||
<p>Michal Srb (1):</p>
|
||||
<ul>
|
||||
<li>st/dri: don't set queryDmaBufFormats/queryDmaBufModifiers if the driver does not implement it</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (2):</p>
|
||||
<ul>
|
||||
<li>nvc0: Update counter reading shaders to new NVC0_CB_AUX_MP_INFO</li>
|
||||
<li>nvc0: fix bindless multisampled images on Maxwell+</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsálvez (1):</p>
|
||||
<ul>
|
||||
<li>anv: Add support for protected memory properties on anv_GetPhysicalDeviceProperties2()</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: use the resolve compute path if dest uses multiple layers</li>
|
||||
</ul>
|
||||
|
||||
<p>Stuart Young (1):</p>
|
||||
<ul>
|
||||
<li>docs: Update FAQ with respect to s3tc support</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: add a workaround for bitfield_extract when count is 0</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,167 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.3 Release Notes / October 19, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.3 is a bug fix release which fixes bugs found since the 18.2.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.3 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
0e13e2342eae74d8848df23595c4bb4b2f8874c9e1213b8466b1fbfa7ef99375 mesa-18.2.3.tar.gz
|
||||
e2bf83c17e1abdecb1ee81af22652e27e9aa38f963e95e60f34275cc0376304f mesa-18.2.3.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99507">Bug 99507</a> - Corrupted frame contents with Vulkan version of DOTA2, Talos Principle and Sascha Willems' demos when they're run Vsynched in fullscreen</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107857">Bug 107857</a> - GPU hang - GS_EMIT without shader outputs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107926">Bug 107926</a> - [anv] Rise of the Tomb Raider always misrendering, segfault and gpu hang.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108012">Bug 108012</a> - Compiler crashes on access of non-existent member incremental operations</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Boyuan Zhang (1):</p>
|
||||
<ul>
|
||||
<li>st/va: use provided sizes and coords for vlVaGetImage</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>anv: add missing unlock in error path.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>meson: Don't allow building EGL on Windows or MacOS</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>st/nine: do not double-close the fd on teardown</li>
|
||||
<li>egl: make eglSwapInterval a no-op for !window surfaces</li>
|
||||
<li>egl: make eglSwapBuffers* a no-op for !window surfaces</li>
|
||||
<li>vl/dri3: do full teardown on screen_destroy</li>
|
||||
<li>Revert "mesa: remove unnecessary 'sort by year' for the GL extensions"</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>radv: add missing meson c++ visibility arguments</li>
|
||||
</ul>
|
||||
|
||||
<p>Fritz Koenig (1):</p>
|
||||
<ul>
|
||||
<li>i965: Replace checks for rb->Name with FlipY (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>virgl, vtest: Correct the transfer size calculation</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (4):</p>
|
||||
<ul>
|
||||
<li>glsl: fix array assignments of a swizzled vector</li>
|
||||
<li>nv50,nvc0: mark RGBX_UINT formats as renderable</li>
|
||||
<li>nv50,nvc0: guard against zero-size blits</li>
|
||||
<li>nvc0: fix blitting red to srgb8_alpha</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (7):</p>
|
||||
<ul>
|
||||
<li>nir/cf: Remove phi sources if needed in nir_handle_add_jump</li>
|
||||
<li>anv: Use separate MOCS settings for external BOs</li>
|
||||
<li>intel/fs: Fix a typo in need_matching_subreg_offset</li>
|
||||
<li>nir/from_ssa: Don't rewrite derefs destinations to registers</li>
|
||||
<li>anv/batch_chain: Don't start a new BO just for BATCH_BUFFER_START</li>
|
||||
<li>nir/alu_to_scalar: Use ssa_for_alu_src in hand-rolled expansions</li>
|
||||
<li>intel: Don't propagate conditional modifiers if a UD source is negated</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.2</li>
|
||||
<li>Update version to 18.2.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: avoid sending GS_EMIT in shaders without outputs</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>drirc: add a workaround for ARMA 3</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: add a workaround for a VGT hang with prim restart and strips</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>glsl: do not attempt assignment if operand type not parsed correctly</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (11):</p>
|
||||
<ul>
|
||||
<li>glsl: ignore trailing whitespace when define redefined</li>
|
||||
<li>util: disable cache if we have no build-id and timestamp is zero</li>
|
||||
<li>util: rename timestamp param in disk_cache_create()</li>
|
||||
<li>util: add disk_cache_get_function_identifier()</li>
|
||||
<li>radeonsi: use build-id when available for disk cache</li>
|
||||
<li>nouveau: use build-id when available for disk cache</li>
|
||||
<li>r600: use build-id when available for disk cache</li>
|
||||
<li>mesa/st: add force_compat_profile option to driconfig</li>
|
||||
<li>util: use force_compat_profile for Wolfenstein The Old Blood</li>
|
||||
<li>util: better handle program names from wine</li>
|
||||
<li>util: add drirc workarounds for RAGE</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: Fix constant-logical-operand warning.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,154 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.4 Release Notes / October 31, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.4 is a bug fix release which fixes bugs found since the 18.2.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.4 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
968bfe78605e9397ddf244933b1fa62edb8429fc55aaec2ae7e20bb1c82abdea mesa-18.2.4.tar.gz
|
||||
621d1aebb57876d5b6a5d2dcf4eb7e0620e650c6fe5cf3655c65e243adc9cb4e mesa-18.2.4.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107865">Bug 107865</a> - swr fail to build with llvm-libs 6.0.1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108272">Bug 108272</a> - [polaris10] opencl-mesa: Anything using OpenCL segfaults, XFX Radeon RX 580</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108524">Bug 108524</a> - [RADV] GPU lockup on event synchronization</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (2):</p>
|
||||
<ul>
|
||||
<li>ac/nir: Use context-specific LLVM types</li>
|
||||
<li>anv: Fix sanitization of stencil state when the depth test is disabled</li>
|
||||
</ul>
|
||||
|
||||
<p>Alok Hota (2):</p>
|
||||
<ul>
|
||||
<li>swr/rast: ignore CreateElementUnorderedAtomicMemCpy</li>
|
||||
<li>swr/rast: fix intrinsic/function for LLVM 7 compatibility</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Rodriguez (1):</p>
|
||||
<ul>
|
||||
<li>radv: fix check for perftest options size</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Emit enqueued pipeline barriers on event write.</li>
|
||||
</ul>
|
||||
|
||||
<p>Connor Abbott (2):</p>
|
||||
<ul>
|
||||
<li>ac: Introduce ac_build_expand()</li>
|
||||
<li>ac: Fix loading a dvec3 from an SSBO</li>
|
||||
</ul>
|
||||
|
||||
<p>David McFarland (1):</p>
|
||||
<ul>
|
||||
<li>util: Change remaining uint32 cache ids to sha1</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>meson: don't require libelf for r600 without LLVM</li>
|
||||
</ul>
|
||||
|
||||
<p>Elie Tournier (1):</p>
|
||||
<ul>
|
||||
<li>gallium: Correctly handle no config context creation</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>radv: s/abs/fabsf/ for floats</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Bump number of allowed global buffers to 32</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (3):</p>
|
||||
<ul>
|
||||
<li>spirv: Use the right bit-size for spec constant ops</li>
|
||||
<li>blorp: Emit a dummy 3DSTATE_WM prior to 3DSTATE_WM_HZ_OP</li>
|
||||
<li>anv: Flag semaphore BOs as external</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.3</li>
|
||||
<li>cherry-ignore: Revert "anv/skylake: disable ForceThreadDispatchEnable"</li>
|
||||
<li>Update version to 18.2.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Liviu Prodea (1):</p>
|
||||
<ul>
|
||||
<li>scons: Put to rest zombie texture_float build option.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix a VGT hang with primitive restart on Polaris10 and later</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: Also wait for front buffer fence if we triggered it</li>
|
||||
</ul>
|
||||
|
||||
<p>Nanley Chery (1):</p>
|
||||
<ul>
|
||||
<li>intel/blorp: Define the clear value bounds for HiZ clears</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (2):</p>
|
||||
<ul>
|
||||
<li>freedreno: fix inorder rendering case</li>
|
||||
<li>freedreno: don't flush when new and old pfb is identical</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,84 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.3.0 Release Notes / TBD</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.0 is a new development release. People who are concerned
|
||||
with stability and reliability should stick with a previous release or
|
||||
wait for Mesa 18.3.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.0 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
libwayland-egl is now distributed by Wayland (since 1.15,
|
||||
<a href="https://lists.freedesktop.org/archives/wayland-devel/2018-April/037767.html">see announcement</a>),
|
||||
and has been removed from Mesa in this release. Make sure you're using
|
||||
an up-to-date version of Wayland to keep the functionality.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
<p>
|
||||
Note: some of the new features are only available with certain drivers.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>GL_AMD_depth_clamp_separate on r600, radeonsi.</li>
|
||||
<li>GL_AMD_framebuffer_multisample_advanced on radeonsi.</li>
|
||||
<li>GL_AMD_gpu_shader_int64 on i965, nvc0, radeonsi.</li>
|
||||
<li>GL_AMD_multi_draw_indirect on all GL 4.x drivers.</li>
|
||||
<li>GL_AMD_query_buffer_object on i965, nvc0, r600, radeonsi.</li>
|
||||
<li>GL_EXT_disjoint_timer_query on radeonsi and most other Gallium drivers (ES extension)</li>
|
||||
<li>GL_EXT_texture_compression_s3tc on all drivers (ES extension)<li>
|
||||
<li>GL_EXT_vertex_attrib_64bit on i965, nvc0, radeonsi.</li>
|
||||
<li>GL_EXT_window_rectangles on radeonsi.</li>
|
||||
<li>GL_KHR_texture_compression_astc_sliced_3d on radeonsi.</li>
|
||||
<li>GL_NV_fragment_shader_interlock on i965.</li>
|
||||
<li>EGL_EXT_device_base for all drivers.</li>
|
||||
<li>EGL_EXT_device_drm for all drivers.</li>
|
||||
<li>EGL_MESA_device_software for all drivers.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
<li>TBD</li>
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>TBD</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -35,9 +35,9 @@ You may access the repository either as an
|
||||
|
||||
<p>
|
||||
You may also
|
||||
<a href="https://gitlab.freedesktop.org/mesa/mesa"
|
||||
<a href="https://cgit.freedesktop.org/mesa/mesa/"
|
||||
>browse the main Mesa git repository</a> and the
|
||||
<a href="https://gitlab.freedesktop.org/mesa/demos"
|
||||
<a href="https://cgit.freedesktop.org/mesa/demos"
|
||||
>Mesa demos and tests git repository</a>.
|
||||
</p>
|
||||
|
||||
@@ -52,7 +52,7 @@ To get the Mesa sources anonymously (read-only):
|
||||
<li>Install the git software on your computer if needed.<br><br>
|
||||
<li>Get an initial, local copy of the repository with:
|
||||
<pre>
|
||||
git clone https://gitlab.freedesktop.org/mesa/mesa.git
|
||||
git clone git://anongit.freedesktop.org/git/mesa/mesa
|
||||
</pre>
|
||||
<li>Later, you can update your tree from the master repository with:
|
||||
<pre>
|
||||
@@ -60,7 +60,7 @@ To get the Mesa sources anonymously (read-only):
|
||||
</pre>
|
||||
<li>If you also want the Mesa demos/tests repository:
|
||||
<pre>
|
||||
git clone https://gitlab.freedesktop.org/mesa/demos.git
|
||||
git clone git://anongit.freedesktop.org/git/mesa/demos
|
||||
</pre>
|
||||
</ol>
|
||||
|
||||
@@ -98,17 +98,24 @@ on a particular driver, add a new extension, etc.) in the bugzilla record.
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Once your account is established, you can update your push url to use SSH:
|
||||
<pre>
|
||||
git remote set-url --push <em>origin</em> git@gitlab.freedesktop.org:mesa/mesa.git
|
||||
</pre>
|
||||
Once your account is established:
|
||||
</p>
|
||||
|
||||
You can also use <a href="https://gitlab.freedesktop.org/profile/personal_access_tokens">personal access tokens</a>
|
||||
to push over HTTPS instead (useful for people behind strict proxies).
|
||||
In this case, create a token, and put it in the url as shown here:
|
||||
<pre>
|
||||
git remote set-url --push <em>origin</em> https://<em>USER</em>:<em>TOKEN</em>@gitlab.freedesktop.org/mesa/mesa.git
|
||||
</pre>
|
||||
<ol>
|
||||
<li>Get an initial, local copy of the repository with:
|
||||
<pre>
|
||||
git clone git+ssh://username@git.freedesktop.org/git/mesa/mesa
|
||||
</pre>
|
||||
Replace <em>username</em> with your actual login name.<br><br>
|
||||
<li>Later, you can update your tree from the master repository with:
|
||||
<pre>
|
||||
git pull origin
|
||||
</pre>
|
||||
<li>If you also want the Mesa demos/tests repository:
|
||||
<pre>
|
||||
git clone git+ssh://username@git.freedesktop.org/git/mesa/demos
|
||||
</pre>
|
||||
</ol>
|
||||
|
||||
|
||||
<h2>Windows Users</h2>
|
||||
@@ -142,12 +149,12 @@ code while a branch has the latest stable code.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The command <code>git branch</code> will list all available branches.
|
||||
The command <code>git-branch</code> will list all available branches.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Questions about branch status/activity should be posted to the
|
||||
mesa-dev mailing list.
|
||||
mesa3d-dev mailing list.
|
||||
</p>
|
||||
|
||||
<h2>Developer Git Tips</h2>
|
||||
|
@@ -85,7 +85,7 @@ should match the filenames of the corresponding dumped shaders.
|
||||
<p>
|
||||
Setting <b>MESA_SHADER_CAPTURE_PATH</b> to a directory will cause the compiler
|
||||
to write <tt>.shader_test</tt> files for use with
|
||||
<a href="https://gitlab.freedesktop.org/mesa/shader-db">shader-db</a>, a tool
|
||||
<a href="https://cgit.freedesktop.org/mesa/shader-db">shader-db</a>, a tool
|
||||
which compiler developers can use to gather statistics about shaders
|
||||
(instructions, cycles, memory accesses, and so on).
|
||||
</p>
|
||||
|
@@ -31,7 +31,7 @@ the <code>doxygen</code> directory and run <code>make</code>.
|
||||
|
||||
<p>
|
||||
For an example of Doxygen usage in Mesa, see a recent source file
|
||||
such as <a href="https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/mesa/main/bufferobj.c">bufferobj.c</a>.
|
||||
such as <a href="https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/main/bufferobj.c">bufferobj.c</a>.
|
||||
</p>
|
||||
|
||||
|
||||
|
@@ -1,82 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_device_software
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_MESA_device_software
|
||||
|
||||
Contributors
|
||||
|
||||
Adam Jackson <ajax@redhat.com>
|
||||
Emil Velikov <emil.velikov@collabora.com>
|
||||
|
||||
Contacts
|
||||
|
||||
Adam Jackson <ajax@redhat.com>
|
||||
|
||||
Status
|
||||
|
||||
DRAFT
|
||||
|
||||
Version
|
||||
|
||||
Version 2, 2018-10-03
|
||||
|
||||
Number
|
||||
|
||||
EGL Extension #TODO
|
||||
|
||||
Extension Type
|
||||
|
||||
EGL device extension
|
||||
|
||||
Dependencies
|
||||
|
||||
Requires EGL_EXT_device_query.
|
||||
|
||||
This extension is written against the EGL 1.5 Specification.
|
||||
|
||||
Overview
|
||||
|
||||
This extension defines a software EGL "device". The device is not backed by
|
||||
any actual device node and simply renders into client memory.
|
||||
|
||||
By defining this as an extension, EGL_EXT_device_enumeration is able to
|
||||
sanely enumerate a software device.
|
||||
|
||||
New Types
|
||||
|
||||
None
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None
|
||||
|
||||
New Tokens
|
||||
|
||||
None
|
||||
|
||||
Additions to the EGL Specification
|
||||
|
||||
None
|
||||
|
||||
New Behavior
|
||||
|
||||
The device list produced by eglQueryDevicesEXT will include a software
|
||||
device. This can be distinguished from other device classes in the usual
|
||||
way by calling eglQueryDeviceStringEXT(EGL_EXTENSIONS) and matching this
|
||||
extension's string in the result.
|
||||
|
||||
Issues
|
||||
|
||||
None
|
||||
|
||||
Revision History
|
||||
|
||||
Version 2, 2018-10-03 (Emil Velikov)
|
||||
- Drop "fallback" from "software fallback device"
|
||||
- Add Emil Velikov as contributor
|
||||
|
||||
Version 1, 2017-07-06 (Adam Jackson)
|
||||
- Initial version
|
@@ -1,200 +0,0 @@
|
||||
Name
|
||||
|
||||
INTEL_shader_atomic_float_minmax
|
||||
|
||||
Name Strings
|
||||
|
||||
GL_INTEL_shader_atomic_float_minmax
|
||||
|
||||
Contact
|
||||
|
||||
Ian Romanick (ian . d . romanick 'at' intel . com)
|
||||
|
||||
Contributors
|
||||
|
||||
|
||||
Status
|
||||
|
||||
In progress
|
||||
|
||||
Version
|
||||
|
||||
Last Modified Date: 06/22/2018
|
||||
Revision: 4
|
||||
|
||||
Number
|
||||
|
||||
TBD
|
||||
|
||||
Dependencies
|
||||
|
||||
OpenGL 4.2, OpenGL ES 3.1, ARB_shader_storage_buffer_object, or
|
||||
ARB_compute_shader is required.
|
||||
|
||||
This extension is written against version 4.60 of the OpenGL Shading
|
||||
Language Specification.
|
||||
|
||||
Overview
|
||||
|
||||
This extension provides GLSL built-in functions allowing shaders to
|
||||
perform atomic read-modify-write operations to floating-point buffer
|
||||
variables and shared variables. Minimum, maximum, exchange, and
|
||||
compare-and-swap are enabled.
|
||||
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None.
|
||||
|
||||
New Tokens
|
||||
|
||||
None.
|
||||
|
||||
IP Status
|
||||
|
||||
None.
|
||||
|
||||
Modifications to the OpenGL Shading Language Specification, Version 4.60
|
||||
|
||||
Including the following line in a shader can be used to control the
|
||||
language features described in this extension:
|
||||
|
||||
#extension GL_INTEL_shader_atomic_float_minmax : <behavior>
|
||||
|
||||
where <behavior> is as specified in section 3.3.
|
||||
|
||||
New preprocessor #defines are added to the OpenGL Shading Language:
|
||||
|
||||
#define GL_INTEL_shader_atomic_float_minmax 1
|
||||
|
||||
Additions to Chapter 8 of the OpenGL Shading Language Specification
|
||||
(Built-in Functions)
|
||||
|
||||
Modify Section 8.11, "Atomic Memory Functions"
|
||||
|
||||
(add a new row after the existing "atomicMin" table row, p. 179)
|
||||
|
||||
float atomicMin(inout float mem, float data)
|
||||
|
||||
|
||||
Computes a new value by taking the minimum of the value of data and
|
||||
the contents of mem. If one of these is an IEEE signaling NaN (i.e.,
|
||||
a NaN with the most-significant bit of the mantissa cleared), it is
|
||||
always considered smaller. If one of these is an IEEE quiet NaN
|
||||
(i.e., a NaN with the most-significant bit of the mantissa set), it is
|
||||
always considered larger. If both are IEEE quiet NaNs or both are
|
||||
IEEE signaling NaNs, the result of the comparison is undefined.
|
||||
|
||||
(add a new row after the exiting "atomicMax" table row, p. 179)
|
||||
|
||||
float atomicMax(inout float mem, float data)
|
||||
|
||||
Computes a new value by taking the maximum of the value of data and
|
||||
the contents of mem. If one of these is an IEEE signaling NaN (i.e.,
|
||||
a NaN with the most-significant bit of the mantissa cleared), it is
|
||||
always considered larger. If one of these is an IEEE quiet NaN (i.e.,
|
||||
a NaN with the most-significant bit of the mantissa set), it is always
|
||||
considered smaller. If both are IEEE quiet NaNs or both are IEEE
|
||||
signaling NaNs, the result of the comparison is undefined.
|
||||
|
||||
(add to "atomicExchange" table cell, p. 180)
|
||||
|
||||
float atomicExchange(inout float mem, float data)
|
||||
|
||||
(add to "atomicCompSwap" table cell, p. 180)
|
||||
|
||||
float atomicCompSwap(inout float mem, float compare, float data)
|
||||
|
||||
Interactions with OpenGL 4.6 and ARB_gl_spirv
|
||||
|
||||
If OpenGL 4.6 or ARB_gl_spirv is supported, then
|
||||
SPV_INTEL_shader_atomic_float_minmax must also be supported.
|
||||
|
||||
The AtomicFloatMinmaxINTEL capability is available whenever the OpenGL or
|
||||
OpenGL ES implementation supports INTEL_shader_atomic_float_minmax.
|
||||
|
||||
Issues
|
||||
|
||||
1) Why call this extension INTEL_shader_atomic_float_minmax?
|
||||
|
||||
RESOLVED: Several other extensions already set the precedent of
|
||||
VENDOR_shader_atomic_float and VENDOR_shader_atomic_float64 for extensions
|
||||
that enable floating-point atomic operations. Using that as a base for
|
||||
the name seems logical.
|
||||
|
||||
There already exists NV_shader_atomic_float, but the two extensions have
|
||||
nearly zero overlap in functionality. NV_shader_atomic_float adds
|
||||
atomicAdd and image atomic operations that currently shipping Intel GPUs
|
||||
do not support. Calling this extension INTEL_shader_atomic_float would
|
||||
likely have been confusing.
|
||||
|
||||
Adding something to describe the actual functions added by this extension
|
||||
seemed reasonable. INTEL_shader_atomic_float_compare was considered, but
|
||||
that name was deemed to be not properly descriptive. Calling this
|
||||
extension INTEL_shader_atomic_float_min_max_exchange_compswap is right
|
||||
out.
|
||||
|
||||
2) What atomic operations should we support for floating-point targets?
|
||||
|
||||
RESOLVED. Exchange, min, max, and compare-swap make sense, and these are
|
||||
all supported by the hardware. Future extensions may add other functions.
|
||||
|
||||
For buffer variables and shared variables it is not possible to bit-cast
|
||||
the memory location in GLSL, so existing integer operations, such as
|
||||
atomicOr, cannot be used. However, the underlying hardware implementation
|
||||
can do this by treating the memory as an integer. It would be possible to
|
||||
implement atomicNegate using this technique with atomicXor. It is unclear
|
||||
whether this provides any actual utility.
|
||||
|
||||
3) What should be said about the NaN behavior?
|
||||
|
||||
RESOLVED. There are several aspects of NaN behavior that should be
|
||||
documented in this extension. However, some of this behavior varies based
|
||||
on NaN concepts that do not exist in the GLSL specification.
|
||||
|
||||
* atomicCompSwap performs the comparison as the floating-point equality
|
||||
operator (==). That is, if either 'mem' or 'compare' is NaN, the
|
||||
comparison result is always false.
|
||||
|
||||
* atomicMin and atomicMax implement the IEEE specification with respect to
|
||||
NaN. IEEE considers two different kinds of NaN: signaling NaN and quiet
|
||||
NaN. A quiet NaN has the most significant bit of the mantissa set, and
|
||||
a signaling NaN does not. This concept does not exist in SPIR-V,
|
||||
Vulkan, or OpenGL. Let qNaN denote a quiet NaN and sNaN denote a
|
||||
signaling NaN. atomicMin and atomicMax specifically implement
|
||||
|
||||
- fmin(qNaN, x) = fmin(x, qNaN) = fmax(qNaN, x) = fmax(x, qNaN) = x
|
||||
- fmin(sNaN, x) = fmin(x, sNaN) = fmax(sNaN, x) = fmax(x, sNaN) = sNaN
|
||||
- fmin(sNaN, qNaN) = fmin(qNaN, sNaN) = fmax(sNaN, qNaN) =
|
||||
fmax(qNaN, sNaN) = sNaN
|
||||
- fmin(sNaN, sNaN) = sNaN. This specification does not define which of
|
||||
the two arguments is stored.
|
||||
- fmax(sNaN, sNaN) = sNaN. This specification does not define which of
|
||||
the two arguments is stored.
|
||||
- fmin(qNaN, qNaN) = qNaN. This specification does not define which of
|
||||
the two arguments is stored.
|
||||
- fmax(qNaN, qNaN) = qNaN. This specification does not define which of
|
||||
the two arguments is stored.
|
||||
|
||||
Further details are available in the Skylake Programmer's Reference
|
||||
Manuals available at
|
||||
https://01.org/linuxgraphics/documentation/hardware-specification-prms.
|
||||
|
||||
4) What about atomicMin and atomicMax with (+0.0, -0.0) or (-0.0, +0.0)
|
||||
arguments?
|
||||
|
||||
RESOLVED. atomicMin should store -0.0, and atomicMax should store +0.0.
|
||||
Due to a known issue in shipping Skylake GPUs, the incorrectly signed 0 is
|
||||
stored. This behavior may change in later GPUs.
|
||||
|
||||
Revision History
|
||||
|
||||
Rev Date Author Changes
|
||||
--- ---------- -------- ---------------------------------------------
|
||||
1 04/19/2018 idr Initial version
|
||||
2 05/05/2018 idr Describe interactions with the capabilities
|
||||
added by SPV_INTEL_shader_atomic_float_minmax.
|
||||
3 05/29/2018 idr Remove mention of 64-bit float support.
|
||||
4 06/22/2018 idr Resolve issue #2.
|
||||
Add issue #3 (regarding NaN behavior).
|
||||
Add issue #4 (regarding atomicMin(-0, +0).
|
@@ -1,81 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_framebuffer_flip_y
|
||||
|
||||
Name Strings
|
||||
|
||||
GL_MESA_framebuffer_flip_y
|
||||
|
||||
Contact
|
||||
|
||||
Fritz Koenig <frkoenig@google.com>
|
||||
|
||||
Contributors
|
||||
|
||||
Fritz Koenig, Google
|
||||
Kristian Høgsberg, Google
|
||||
Chad Versace, Google
|
||||
|
||||
Status
|
||||
|
||||
Proposal
|
||||
|
||||
Version
|
||||
|
||||
Version 1, June 7, 2018
|
||||
|
||||
Number
|
||||
|
||||
302
|
||||
|
||||
Dependencies
|
||||
|
||||
OpenGL ES 3.1 is required, for FramebufferParameteri.
|
||||
|
||||
Overview
|
||||
|
||||
This extension defines a new framebuffer parameter,
|
||||
GL_FRAMEBUFFER_FLIP_Y_MESA, that changes the behavior of the reads and
|
||||
writes to the framebuffer attachment points. When GL_FRAMEBUFFER_FLIP_Y_MESA
|
||||
is GL_TRUE, render commands and pixel transfer operations access the
|
||||
backing store of each attachment point with an y-inverted coordinate
|
||||
system. This y-inversion is relative to the coordinate system set when
|
||||
GL_FRAMEBUFFER_FLIP_Y_MESA is GL_FALSE.
|
||||
|
||||
Access through TexSubImage2D and similar calls will notice the effect of
|
||||
the flip when they are not attached to framebuffer objects because
|
||||
GL_FRAMEBUFFER_FLIP_Y_MESA is associated with the framebuffer object and
|
||||
not the attachment points.
|
||||
|
||||
IP Status
|
||||
|
||||
None
|
||||
|
||||
Issues
|
||||
|
||||
None
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
None
|
||||
|
||||
New Types
|
||||
|
||||
None
|
||||
|
||||
New Tokens
|
||||
|
||||
Accepted by the <pname> argument of FramebufferParameteri and
|
||||
GetFramebufferParameteriv:
|
||||
|
||||
GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
|
||||
|
||||
Errors
|
||||
|
||||
An INVALID_OPERATION error is generated by GetFramebufferParameteriv if the
|
||||
default framebuffer is bound to <target> and <pname> is FRAMEBUFFER_FLIP_Y_MESA.
|
||||
|
||||
Revision History
|
||||
|
||||
Version 1, June, 2018
|
||||
Initial draft (Fritz Koenig)
|
@@ -71,9 +71,6 @@ GL_MESA_tile_raster_order
|
||||
GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9
|
||||
GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA
|
||||
|
||||
GL_MESA_framebuffer_flip_y
|
||||
GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
|
||||
|
||||
EGL_MESA_drm_image
|
||||
EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
|
||||
EGL_DRM_BUFFER_USE_MESA 0x31D1
|
||||
|
@@ -36,7 +36,7 @@
|
||||
perhaps, in very trivial cases.)
|
||||
<li>Code patches should follow Mesa
|
||||
<a href="codingstyle.html" target="_parent">coding conventions</a>.
|
||||
<li>Whenever possible, patches should only affect individual Mesa/Gallium
|
||||
<li>Whenever possible, patches should only effect individual Mesa/Gallium
|
||||
components.
|
||||
<li>Patches should never introduce build breaks and should be bisectable (see
|
||||
<code>git bisect</code>.)
|
||||
@@ -251,9 +251,6 @@ If you are not the author of the original patch, please Cc: them in your
|
||||
nomination request.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The current patch status can be observed in the <a href="releasing.html#stagingbranch">staging branch</a>.
|
||||
</p>
|
||||
|
||||
<h3 id="thetag">The stable tag</h3>
|
||||
|
||||
|
@@ -17,7 +17,7 @@
|
||||
<h1>Development Utilities</h1>
|
||||
|
||||
<dl>
|
||||
<dt><a href="https://gitlab.freedesktop.org/mesa/demos">Mesa demos collection</a></dt>
|
||||
<dt><a href="https://cgit.freedesktop.org/mesa/demos">Mesa demos collection</a></dt>
|
||||
<dd>includes several utility routines in the <code>src/util/</code>
|
||||
directory.</dd>
|
||||
|
||||
|
@@ -43,23 +43,6 @@ This requires:
|
||||
Otherwise, OpenGL 2.1 is supported.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
With the Fall 2018 Workstation 15 / Fusion 11 releases, additional
|
||||
features are supported in the driver:
|
||||
<ul>
|
||||
<li>Multisample antialiasing (2x, 4x)
|
||||
<li>GL_ARB/AMD_draw_buffers_blend
|
||||
<li>GL_ARB_sample_shading
|
||||
<li>GL_ARB_texture_cube_map_array
|
||||
<li>GL_ARB_texture_gather
|
||||
<li>GL_ARB_texture_query_lod
|
||||
<li>GL_EXT/OES_draw_buffers_indexed
|
||||
</ul>
|
||||
<p>
|
||||
This requires version 2.15.0 or later of the vmwgfx kernel module and
|
||||
the VM must be configured for hardware version 16 or later.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
OpenGL 3.3 support can be disabled by setting the environment variable
|
||||
SVGA_VGPU10=0.
|
||||
@@ -143,7 +126,7 @@ Begin by saving your current directory location:
|
||||
<ul>
|
||||
<li>Mesa/Gallium master branch. This code is used to build libGL, and the direct rendering svga driver for libGL, vmwgfx_dri.so, and the X acceleration library libxatracker.so.x.x.x.
|
||||
<pre>
|
||||
git clone https://gitlab.freedesktop.org/mesa/mesa.git
|
||||
git clone git://anongit.freedesktop.org/git/mesa/mesa
|
||||
</pre>
|
||||
<li>VMware Linux guest kernel module. Note that this repo contains the complete DRM and TTM code. The vmware-specific driver is really only the files prefixed with vmwgfx.
|
||||
<pre>
|
||||
@@ -153,7 +136,7 @@ Begin by saving your current directory location:
|
||||
Most distros ship with this but it's safest to install a newer version.
|
||||
To get the latest code from git:
|
||||
<pre>
|
||||
git clone https://gitlab.freedesktop.org/mesa/drm.git
|
||||
git clone git://anongit.freedesktop.org/git/mesa/drm
|
||||
</pre>
|
||||
<li>xf86-video-vmware. The chainloading driver, vmware_drv.so, the legacy driver vmwlegacy_drv.so, and the vmwgfx driver vmwgfx_drv.so.
|
||||
<pre>
|
||||
|
@@ -33,12 +33,12 @@ extern "C" {
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: bae3518c48 $ on $Git commit date: 2018-05-17 10:56:57 -0700 $
|
||||
** Khronos $Git commit SHA1: a732b061e7 $ on $Git commit date: 2017-06-17 23:27:53 +0100 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#define EGL_EGLEXT_VERSION 20180517
|
||||
#define EGL_EGLEXT_VERSION 20170627
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
@@ -495,47 +495,6 @@ EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGL
|
||||
#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C
|
||||
#endif /* EGL_ANDROID_front_buffer_auto_refresh */
|
||||
|
||||
#ifndef EGL_ANDROID_get_frame_timestamps
|
||||
#define EGL_ANDROID_get_frame_timestamps 1
|
||||
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
|
||||
#define EGL_TIMESTAMP_PENDING_ANDROID EGL_CAST(EGLnsecsANDROID,-2)
|
||||
#define EGL_TIMESTAMP_INVALID_ANDROID EGL_CAST(EGLnsecsANDROID,-1)
|
||||
#define EGL_TIMESTAMPS_ANDROID 0x3430
|
||||
#define EGL_COMPOSITE_DEADLINE_ANDROID 0x3431
|
||||
#define EGL_COMPOSITE_INTERVAL_ANDROID 0x3432
|
||||
#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID 0x3433
|
||||
#define EGL_REQUESTED_PRESENT_TIME_ANDROID 0x3434
|
||||
#define EGL_RENDERING_COMPLETE_TIME_ANDROID 0x3435
|
||||
#define EGL_COMPOSITION_LATCH_TIME_ANDROID 0x3436
|
||||
#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID 0x3437
|
||||
#define EGL_LAST_COMPOSITION_START_TIME_ANDROID 0x3438
|
||||
#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID 0x3439
|
||||
#define EGL_DISPLAY_PRESENT_TIME_ANDROID 0x343A
|
||||
#define EGL_DEQUEUE_READY_TIME_ANDROID 0x343B
|
||||
#define EGL_READS_DONE_TIME_ANDROID 0x343C
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint name);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETCOMPOSITORTIMINGANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETNEXTFRAMEIDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETFRAMETIMESTAMPSANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint name);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint *names, EGLnsecsANDROID *values);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR *frameId);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint *timestamps, EGLnsecsANDROID *values);
|
||||
#endif
|
||||
#endif /* EGL_ANDROID_get_frame_timestamps */
|
||||
|
||||
#ifndef EGL_ANDROID_get_native_client_buffer
|
||||
#define EGL_ANDROID_get_native_client_buffer 1
|
||||
struct AHardwareBuffer;
|
||||
typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer *buffer);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID (const struct AHardwareBuffer *buffer);
|
||||
#endif
|
||||
#endif /* EGL_ANDROID_get_native_client_buffer */
|
||||
|
||||
#ifndef EGL_ANDROID_image_native_buffer
|
||||
#define EGL_ANDROID_image_native_buffer 1
|
||||
#define EGL_NATIVE_BUFFER_ANDROID 0x3140
|
||||
@@ -555,6 +514,7 @@ EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR
|
||||
|
||||
#ifndef EGL_ANDROID_presentation_time
|
||||
#define EGL_ANDROID_presentation_time 1
|
||||
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
|
||||
@@ -618,16 +578,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSu
|
||||
#define EGL_EXT_client_extensions 1
|
||||
#endif /* EGL_EXT_client_extensions */
|
||||
|
||||
#ifndef EGL_EXT_client_sync
|
||||
#define EGL_EXT_client_sync 1
|
||||
#define EGL_SYNC_CLIENT_EXT 0x3364
|
||||
#define EGL_SYNC_CLIENT_SIGNAL_EXT 0x3365
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLCLIENTSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglClientSignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
|
||||
#endif
|
||||
#endif /* EGL_EXT_client_sync */
|
||||
|
||||
#ifndef EGL_EXT_compositor
|
||||
#define EGL_EXT_compositor 1
|
||||
#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT 0x3460
|
||||
@@ -773,11 +723,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT (EGLDisplay dpy, EGLint
|
||||
#endif
|
||||
#endif /* EGL_EXT_image_dma_buf_import_modifiers */
|
||||
|
||||
#ifndef EGL_EXT_image_gl_colorspace
|
||||
#define EGL_EXT_image_gl_colorspace 1
|
||||
#define EGL_GL_COLORSPACE_DEFAULT_EXT 0x314D
|
||||
#endif /* EGL_EXT_image_gl_colorspace */
|
||||
|
||||
#ifndef EGL_EXT_image_implicit_sync_control
|
||||
#define EGL_EXT_image_implicit_sync_control 1
|
||||
#define EGL_IMPORT_SYNC_TYPE_EXT 0x3470
|
||||
@@ -913,14 +858,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSu
|
||||
#endif
|
||||
#endif /* EGL_EXT_swap_buffers_with_damage */
|
||||
|
||||
#ifndef EGL_EXT_sync_reuse
|
||||
#define EGL_EXT_sync_reuse 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNSIGNALSYNCEXTPROC) (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglUnsignalSyncEXT (EGLDisplay dpy, EGLSync sync, const EGLAttrib *attrib_list);
|
||||
#endif
|
||||
#endif /* EGL_EXT_sync_reuse */
|
||||
|
||||
#ifndef EGL_EXT_yuv_surface
|
||||
#define EGL_EXT_yuv_surface 1
|
||||
#define EGL_YUV_ORDER_EXT 0x3301
|
||||
@@ -1051,11 +988,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurfa
|
||||
#define EGL_AUTO_STEREO_NV 0x3136
|
||||
#endif /* EGL_NV_3dvision_surface */
|
||||
|
||||
#ifndef EGL_NV_context_priority_realtime
|
||||
#define EGL_NV_context_priority_realtime 1
|
||||
#define EGL_CONTEXT_PRIORITY_REALTIME_NV 0x3357
|
||||
#endif /* EGL_NV_context_priority_realtime */
|
||||
|
||||
#ifndef EGL_NV_coverage_sample
|
||||
#define EGL_NV_coverage_sample 1
|
||||
#define EGL_COVERAGE_BUFFERS_NV 0x30E0
|
||||
@@ -1123,9 +1055,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface sur
|
||||
#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C
|
||||
#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D
|
||||
#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list);
|
||||
#endif
|
||||
#endif /* EGL_NV_stream_consumer_gltexture_yuv */
|
||||
|
||||
@@ -1165,14 +1097,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDi
|
||||
#define EGL_STREAM_FIFO_SYNCHRONOUS_NV 0x3336
|
||||
#endif /* EGL_NV_stream_fifo_synchronous */
|
||||
|
||||
#ifndef EGL_NV_stream_flush
|
||||
#define EGL_NV_stream_flush 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMFLUSHNVPROC) (EGLDisplay dpy, EGLStreamKHR stream);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI EGLBoolean EGLAPIENTRY eglStreamFlushNV (EGLDisplay dpy, EGLStreamKHR stream);
|
||||
#endif
|
||||
#endif /* EGL_NV_stream_flush */
|
||||
|
||||
#ifndef EGL_NV_stream_frame_limits
|
||||
#define EGL_NV_stream_frame_limits 1
|
||||
#define EGL_PRODUCER_MAX_FRAME_HINT_NV 0x3337
|
||||
|
@@ -2086,7 +2086,7 @@ typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum modeRGB, GLen
|
||||
|
||||
|
||||
/* GL_OES_EGL_image */
|
||||
#if !defined(GL_OES_EGL_image) && !defined(GL_EXT_EGL_image_storage)
|
||||
#ifndef GL_OES_EGL_image
|
||||
typedef void* GLeglImageOES;
|
||||
#endif
|
||||
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#ifndef __gl_glcorearb_h_
|
||||
#define __gl_glcorearb_h_ 1
|
||||
#ifndef __glcorearb_h_
|
||||
#define __glcorearb_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -306,7 +306,7 @@ typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname
|
||||
typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params);
|
||||
typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params);
|
||||
typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap);
|
||||
typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLdouble n, GLdouble f);
|
||||
typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLdouble near, GLdouble far);
|
||||
typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glCullFace (GLenum mode);
|
||||
@@ -355,7 +355,7 @@ GLAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *par
|
||||
GLAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
|
||||
GLAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
|
||||
GLAPI GLboolean APIENTRY glIsEnabled (GLenum cap);
|
||||
GLAPI void APIENTRY glDepthRange (GLdouble n, GLdouble f);
|
||||
GLAPI void APIENTRY glDepthRange (GLdouble near, GLdouble far);
|
||||
GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
#endif
|
||||
#endif /* GL_VERSION_1_0 */
|
||||
@@ -613,9 +613,9 @@ GLAPI void APIENTRY glBlendEquation (GLenum mode);
|
||||
|
||||
#ifndef GL_VERSION_1_5
|
||||
#define GL_VERSION_1_5 1
|
||||
#include <KHR/khrplatform.h>
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t GLsizeiptr;
|
||||
typedef ptrdiff_t GLintptr;
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
#define GL_QUERY_COUNTER_BITS 0x8864
|
||||
@@ -3958,22 +3958,6 @@ GLAPI void APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count);
|
||||
#define GL_KHR_texture_compression_astc_sliced_3d 1
|
||||
#endif /* GL_KHR_texture_compression_astc_sliced_3d */
|
||||
|
||||
#ifndef GL_AMD_framebuffer_multisample_advanced
|
||||
#define GL_AMD_framebuffer_multisample_advanced 1
|
||||
#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
|
||||
#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
|
||||
#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
|
||||
#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
|
||||
#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
|
||||
#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
|
||||
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#endif
|
||||
#endif /* GL_AMD_framebuffer_multisample_advanced */
|
||||
|
||||
#ifndef GL_AMD_performance_monitor
|
||||
#define GL_AMD_performance_monitor 1
|
||||
#define GL_COUNTER_TYPE_AMD 0x8BC0
|
||||
@@ -4017,17 +4001,6 @@ GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname
|
||||
#define GL_RGB_RAW_422_APPLE 0x8A51
|
||||
#endif /* GL_APPLE_rgb_422 */
|
||||
|
||||
#ifndef GL_EXT_EGL_image_storage
|
||||
#define GL_EXT_EGL_image_storage 1
|
||||
typedef void *GLeglImageOES;
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#endif
|
||||
#endif /* GL_EXT_EGL_image_storage */
|
||||
|
||||
#ifndef GL_EXT_debug_label
|
||||
#define GL_EXT_debug_label 1
|
||||
#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F
|
||||
@@ -4625,19 +4598,6 @@ GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *strin
|
||||
#endif
|
||||
#endif /* GL_EXT_separate_shader_objects */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch
|
||||
#define GL_EXT_shader_framebuffer_fetch 1
|
||||
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
|
||||
#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void);
|
||||
#endif
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */
|
||||
|
||||
#ifndef GL_EXT_shader_integer_mix
|
||||
#define GL_EXT_shader_integer_mix 1
|
||||
#endif /* GL_EXT_shader_integer_mix */
|
||||
@@ -4652,8 +4612,6 @@ GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void);
|
||||
|
||||
#ifndef GL_EXT_texture_filter_minmax
|
||||
#define GL_EXT_texture_filter_minmax 1
|
||||
#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
|
||||
#define GL_WEIGHTED_AVERAGE_EXT 0x9367
|
||||
#endif /* GL_EXT_texture_filter_minmax */
|
||||
|
||||
#ifndef GL_EXT_texture_sRGB_decode
|
||||
@@ -4677,11 +4635,6 @@ GLAPI void APIENTRY glWindowRectanglesEXT (GLenum mode, GLsizei count, const GLi
|
||||
#endif
|
||||
#endif /* GL_EXT_window_rectangles */
|
||||
|
||||
#ifndef GL_INTEL_blackhole_render
|
||||
#define GL_INTEL_blackhole_render 1
|
||||
#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
|
||||
#endif /* GL_INTEL_blackhole_render */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
@@ -4724,7 +4677,7 @@ typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle);
|
||||
typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId);
|
||||
typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId);
|
||||
typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
@@ -4735,7 +4688,7 @@ GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle);
|
||||
GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId);
|
||||
GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId);
|
||||
GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
|
||||
GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
|
||||
GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
|
||||
GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId);
|
||||
GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
|
||||
#endif
|
||||
@@ -4970,11 +4923,6 @@ GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat valu
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_dilate */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap
|
||||
#define GL_NV_conservative_raster_pre_snap 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
|
||||
#endif /* GL_NV_conservative_raster_pre_snap */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap_triangles
|
||||
#define GL_NV_conservative_raster_pre_snap_triangles 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
|
||||
@@ -4986,10 +4934,6 @@ GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param)
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_pre_snap_triangles */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_underestimation
|
||||
#define GL_NV_conservative_raster_underestimation 1
|
||||
#endif /* GL_NV_conservative_raster_underestimation */
|
||||
|
||||
#ifndef GL_NV_draw_vulkan_image
|
||||
#define GL_NV_draw_vulkan_image 1
|
||||
typedef void (APIENTRY *GLVULKANPROCNV)(void);
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#ifndef __gl_glext_h_
|
||||
#define __gl_glext_h_ 1
|
||||
#ifndef __glext_h_
|
||||
#define __glext_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -51,7 +51,7 @@ extern "C" {
|
||||
#define GLAPI extern
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_VERSION 20180725
|
||||
#define GL_GLEXT_VERSION 20171010
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -464,9 +464,9 @@ GLAPI void APIENTRY glBlendEquation (GLenum mode);
|
||||
|
||||
#ifndef GL_VERSION_1_5
|
||||
#define GL_VERSION_1_5 1
|
||||
#include <KHR/khrplatform.h>
|
||||
typedef khronos_ssize_t GLsizeiptr;
|
||||
typedef khronos_intptr_t GLintptr;
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t GLsizeiptr;
|
||||
typedef ptrdiff_t GLintptr;
|
||||
#define GL_BUFFER_SIZE 0x8764
|
||||
#define GL_BUFFER_USAGE 0x8765
|
||||
#define GL_QUERY_COUNTER_BITS 0x8864
|
||||
@@ -4718,7 +4718,6 @@ GLAPI void APIENTRY glVertexBlendARB (GLint count);
|
||||
|
||||
#ifndef GL_ARB_vertex_buffer_object
|
||||
#define GL_ARB_vertex_buffer_object 1
|
||||
#include <stddef.h>
|
||||
typedef ptrdiff_t GLsizeiptrARB;
|
||||
typedef ptrdiff_t GLintptrARB;
|
||||
#define GL_BUFFER_SIZE_ARB 0x8764
|
||||
@@ -5446,22 +5445,6 @@ GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRG
|
||||
#endif
|
||||
#endif /* GL_AMD_draw_buffers_blend */
|
||||
|
||||
#ifndef GL_AMD_framebuffer_multisample_advanced
|
||||
#define GL_AMD_framebuffer_multisample_advanced 1
|
||||
#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
|
||||
#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
|
||||
#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
|
||||
#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
|
||||
#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
|
||||
#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
|
||||
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#endif
|
||||
#endif /* GL_AMD_framebuffer_multisample_advanced */
|
||||
|
||||
#ifndef GL_AMD_framebuffer_sample_positions
|
||||
#define GL_AMD_framebuffer_sample_positions 1
|
||||
#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F
|
||||
@@ -5726,10 +5709,6 @@ GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLf
|
||||
#define GL_AMD_shader_explicit_vertex_parameter 1
|
||||
#endif /* GL_AMD_shader_explicit_vertex_parameter */
|
||||
|
||||
#ifndef GL_AMD_shader_gpu_shader_half_float_fetch
|
||||
#define GL_AMD_shader_gpu_shader_half_float_fetch 1
|
||||
#endif /* GL_AMD_shader_gpu_shader_half_float_fetch */
|
||||
|
||||
#ifndef GL_AMD_shader_image_load_store_lod
|
||||
#define GL_AMD_shader_image_load_store_lod 1
|
||||
#endif /* GL_AMD_shader_image_load_store_lod */
|
||||
@@ -6477,17 +6456,6 @@ GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param);
|
||||
#define GL_422_REV_AVERAGE_EXT 0x80CF
|
||||
#endif /* GL_EXT_422_pixels */
|
||||
|
||||
#ifndef GL_EXT_EGL_image_storage
|
||||
#define GL_EXT_EGL_image_storage 1
|
||||
typedef void *GLeglImageOES;
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
GLAPI void APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#endif
|
||||
#endif /* GL_EXT_EGL_image_storage */
|
||||
|
||||
#ifndef GL_EXT_abgr
|
||||
#define GL_EXT_abgr 1
|
||||
#define GL_ABGR_EXT 0x8000
|
||||
@@ -8026,8 +7994,6 @@ GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei
|
||||
#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
|
||||
#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
|
||||
#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593
|
||||
#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
|
||||
#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
|
||||
typedef void (APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores);
|
||||
typedef void (APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores);
|
||||
typedef GLboolean (APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore);
|
||||
@@ -8086,19 +8052,6 @@ GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *strin
|
||||
#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
|
||||
#endif /* GL_EXT_separate_specular_color */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch
|
||||
#define GL_EXT_shader_framebuffer_fetch 1
|
||||
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
|
||||
#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
|
||||
typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glFramebufferFetchBarrierEXT (void);
|
||||
#endif
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */
|
||||
|
||||
#ifndef GL_EXT_shader_image_load_formatted
|
||||
#define GL_EXT_shader_image_load_formatted 1
|
||||
#endif /* GL_EXT_shader_image_load_formatted */
|
||||
@@ -8399,8 +8352,6 @@ GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint
|
||||
|
||||
#ifndef GL_EXT_texture_filter_minmax
|
||||
#define GL_EXT_texture_filter_minmax 1
|
||||
#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
|
||||
#define GL_WEIGHTED_AVERAGE_EXT 0x9367
|
||||
#endif /* GL_EXT_texture_filter_minmax */
|
||||
|
||||
#ifndef GL_EXT_texture_integer
|
||||
@@ -9148,11 +9099,6 @@ GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRG
|
||||
#define GL_INTERLACE_READ_INGR 0x8568
|
||||
#endif /* GL_INGR_interlace_read */
|
||||
|
||||
#ifndef GL_INTEL_blackhole_render
|
||||
#define GL_INTEL_blackhole_render 1
|
||||
#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
|
||||
#endif /* GL_INTEL_blackhole_render */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
@@ -9234,7 +9180,7 @@ typedef void (APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle);
|
||||
typedef void (APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId);
|
||||
typedef void (APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId);
|
||||
typedef void (APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId);
|
||||
typedef void (APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
@@ -9245,7 +9191,7 @@ GLAPI void APIENTRY glEndPerfQueryINTEL (GLuint queryHandle);
|
||||
GLAPI void APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId);
|
||||
GLAPI void APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId);
|
||||
GLAPI void APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
|
||||
GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
|
||||
GLAPI void APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
|
||||
GLAPI void APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId);
|
||||
GLAPI void APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
|
||||
#endif
|
||||
@@ -9637,11 +9583,6 @@ GLAPI void APIENTRY glConservativeRasterParameterfNV (GLenum pname, GLfloat valu
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_dilate */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap
|
||||
#define GL_NV_conservative_raster_pre_snap 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
|
||||
#endif /* GL_NV_conservative_raster_pre_snap */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap_triangles
|
||||
#define GL_NV_conservative_raster_pre_snap_triangles 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
|
||||
@@ -9653,10 +9594,6 @@ GLAPI void APIENTRY glConservativeRasterParameteriNV (GLenum pname, GLint param)
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster_pre_snap_triangles */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_underestimation
|
||||
#define GL_NV_conservative_raster_underestimation 1
|
||||
#endif /* GL_NV_conservative_raster_underestimation */
|
||||
|
||||
#ifndef GL_NV_copy_depth_to_color
|
||||
#define GL_NV_copy_depth_to_color 1
|
||||
#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E
|
||||
@@ -9965,7 +9902,7 @@ GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachmen
|
||||
#define GL_PER_GPU_STORAGE_NV 0x9548
|
||||
#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV 0x9549
|
||||
typedef void (APIENTRYP PFNGLRENDERGPUMASKNVPROC) (GLbitfield mask);
|
||||
typedef void (APIENTRYP PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef void (APIENTRYP PFNGLMULTICASTBUFFERSUBDATANVPROC) (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
|
||||
typedef void (APIENTRYP PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC) (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
typedef void (APIENTRYP PFNGLMULTICASTCOPYIMAGESUBDATANVPROC) (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
|
||||
typedef void (APIENTRYP PFNGLMULTICASTBLITFRAMEBUFFERNVPROC) (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
@@ -9978,7 +9915,7 @@ typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC) (GLuint gpu, GLu
|
||||
typedef void (APIENTRYP PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC) (GLuint gpu, GLuint id, GLenum pname, GLuint64 *params);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glRenderGpuMaskNV (GLbitfield mask);
|
||||
GLAPI void APIENTRY glMulticastBufferSubDataNV (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GLAPI void APIENTRY glMulticastBufferSubDataNV (GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
|
||||
GLAPI void APIENTRY glMulticastCopyBufferSubDataNV (GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
GLAPI void APIENTRY glMulticastCopyImageSubDataNV (GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
|
||||
GLAPI void APIENTRY glMulticastBlitFramebufferNV (GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#ifndef __glx_glxext_h_
|
||||
#define __glx_glxext_h_ 1
|
||||
#ifndef __glxext_h_
|
||||
#define __glxext_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -34,7 +34,7 @@ extern "C" {
|
||||
** https://github.com/KhronosGroup/OpenGL-Registry
|
||||
*/
|
||||
|
||||
#define GLX_GLXEXT_VERSION 20180525
|
||||
#define GLX_GLXEXT_VERSION 20170728
|
||||
|
||||
/* Generated C header for:
|
||||
* API: glx
|
||||
@@ -325,10 +325,6 @@ void glXFreeContextEXT (Display *dpy, GLXContext context);
|
||||
#define GLX_VENDOR_NAMES_EXT 0x20F6
|
||||
#endif /* GLX_EXT_libglvnd */
|
||||
|
||||
#ifndef GLX_EXT_no_config_context
|
||||
#define GLX_EXT_no_config_context 1
|
||||
#endif /* GLX_EXT_no_config_context */
|
||||
|
||||
#ifndef GLX_EXT_stereo_tree
|
||||
#define GLX_EXT_stereo_tree 1
|
||||
typedef struct {
|
||||
@@ -507,16 +503,6 @@ Bool glXSet3DfxModeMESA (int mode);
|
||||
#endif
|
||||
#endif /* GLX_MESA_set_3dfx_mode */
|
||||
|
||||
#ifndef GLX_MESA_swap_control
|
||||
#define GLX_MESA_swap_control 1
|
||||
typedef int ( *PFNGLXGETSWAPINTERVALMESAPROC) (void);
|
||||
typedef int ( *PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval);
|
||||
#ifdef GLX_GLXEXT_PROTOTYPES
|
||||
int glXGetSwapIntervalMESA (void);
|
||||
int glXSwapIntervalMESA (unsigned int interval);
|
||||
#endif
|
||||
#endif /* GLX_MESA_swap_control */
|
||||
|
||||
#ifndef GLX_NV_copy_buffer
|
||||
#define GLX_NV_copy_buffer 1
|
||||
typedef void ( *PFNGLXCOPYBUFFERSUBDATANVPROC) (Display *dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
|
||||
|
@@ -48,6 +48,7 @@ typedef unsigned int drm_drawable_t;
|
||||
typedef struct drm_clip_rect drm_clip_rect_t;
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#ifndef __gles2_gl2_h_
|
||||
#define __gles2_gl2_h_ 1
|
||||
#ifndef __gl2_h_
|
||||
#define __gl2_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -44,7 +44,7 @@ extern "C" {
|
||||
#define GL_GLES_PROTOTYPES 1
|
||||
#endif
|
||||
|
||||
/* Generated on date 20180725 */
|
||||
/* Generated on date 20170606 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#ifndef __gles2_gl2ext_h_
|
||||
#define __gles2_gl2ext_h_ 1
|
||||
#ifndef __gl2ext_h_
|
||||
#define __gl2ext_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -38,7 +38,7 @@ extern "C" {
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20180725 */
|
||||
/* Generated on date 20170804 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
@@ -159,16 +159,6 @@ GL_APICALL void GL_APIENTRY glGetPointervKHR (GLenum pname, void **params);
|
||||
#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008
|
||||
#endif /* GL_KHR_no_error */
|
||||
|
||||
#ifndef GL_KHR_parallel_shader_compile
|
||||
#define GL_KHR_parallel_shader_compile 1
|
||||
#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
|
||||
#define GL_COMPLETION_STATUS_KHR 0x91B1
|
||||
typedef void (GL_APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glMaxShaderCompilerThreadsKHR (GLuint count);
|
||||
#endif
|
||||
#endif /* GL_KHR_parallel_shader_compile */
|
||||
|
||||
#ifndef GL_KHR_robust_buffer_access_behavior
|
||||
#define GL_KHR_robust_buffer_access_behavior 1
|
||||
#endif /* GL_KHR_robust_buffer_access_behavior */
|
||||
@@ -801,22 +791,6 @@ GL_APICALL void GL_APIENTRY glGetFloati_vOES (GLenum target, GLuint index, GLflo
|
||||
#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87EE
|
||||
#endif /* GL_AMD_compressed_ATC_texture */
|
||||
|
||||
#ifndef GL_AMD_framebuffer_multisample_advanced
|
||||
#define GL_AMD_framebuffer_multisample_advanced 1
|
||||
#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD 0x91B2
|
||||
#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD 0x91B3
|
||||
#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD 0x91B4
|
||||
#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD 0x91B5
|
||||
#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B6
|
||||
#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD 0x91B7
|
||||
typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
typedef void (GL_APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC) (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAdvancedAMD (GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
GL_APICALL void GL_APIENTRY glNamedRenderbufferStorageMultisampleAdvancedAMD (GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
|
||||
#endif
|
||||
#endif /* GL_AMD_framebuffer_multisample_advanced */
|
||||
|
||||
#ifndef GL_AMD_performance_monitor
|
||||
#define GL_AMD_performance_monitor 1
|
||||
#define GL_COUNTER_TYPE_AMD 0x8BC0
|
||||
@@ -1081,16 +1055,6 @@ GL_APICALL void GL_APIENTRY glGetSyncivAPPLE (GLsync sync, GLenum pname, GLsizei
|
||||
#define GL_EXT_EGL_image_array 1
|
||||
#endif /* GL_EXT_EGL_image_array */
|
||||
|
||||
#ifndef GL_EXT_EGL_image_storage
|
||||
#define GL_EXT_EGL_image_storage 1
|
||||
typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC) (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC) (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glEGLImageTargetTexStorageEXT (GLenum target, GLeglImageOES image, const GLint* attrib_list);
|
||||
GL_APICALL void GL_APIENTRY glEGLImageTargetTextureStorageEXT (GLuint texture, GLeglImageOES image, const GLint* attrib_list);
|
||||
#endif
|
||||
#endif /* GL_EXT_EGL_image_storage */
|
||||
|
||||
#ifndef GL_EXT_YUV_target
|
||||
#define GL_EXT_YUV_target 1
|
||||
#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT 0x8BE7
|
||||
@@ -1162,20 +1126,6 @@ GL_APICALL void GL_APIENTRY glClearTexSubImageEXT (GLuint texture, GLint level,
|
||||
#endif
|
||||
#endif /* GL_EXT_clear_texture */
|
||||
|
||||
#ifndef GL_EXT_clip_control
|
||||
#define GL_EXT_clip_control 1
|
||||
#define GL_LOWER_LEFT_EXT 0x8CA1
|
||||
#define GL_UPPER_LEFT_EXT 0x8CA2
|
||||
#define GL_NEGATIVE_ONE_TO_ONE_EXT 0x935E
|
||||
#define GL_ZERO_TO_ONE_EXT 0x935F
|
||||
#define GL_CLIP_ORIGIN_EXT 0x935C
|
||||
#define GL_CLIP_DEPTH_MODE_EXT 0x935D
|
||||
typedef void (GL_APIENTRYP PFNGLCLIPCONTROLEXTPROC) (GLenum origin, GLenum depth);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glClipControlEXT (GLenum origin, GLenum depth);
|
||||
#endif
|
||||
#endif /* GL_EXT_clip_control */
|
||||
|
||||
#ifndef GL_EXT_clip_cull_distance
|
||||
#define GL_EXT_clip_cull_distance 1
|
||||
#define GL_MAX_CLIP_DISTANCES_EXT 0x0D32
|
||||
@@ -1730,8 +1680,6 @@ GL_APICALL void GL_APIENTRY glGetnUniformivEXT (GLuint program, GLint location,
|
||||
#define GL_LAYOUT_SHADER_READ_ONLY_EXT 0x9591
|
||||
#define GL_LAYOUT_TRANSFER_SRC_EXT 0x9592
|
||||
#define GL_LAYOUT_TRANSFER_DST_EXT 0x9593
|
||||
#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT 0x9530
|
||||
#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT 0x9531
|
||||
typedef void (GL_APIENTRYP PFNGLGENSEMAPHORESEXTPROC) (GLsizei n, GLuint *semaphores);
|
||||
typedef void (GL_APIENTRYP PFNGLDELETESEMAPHORESEXTPROC) (GLsizei n, const GLuint *semaphores);
|
||||
typedef GLboolean (GL_APIENTRYP PFNGLISSEMAPHOREEXTPROC) (GLuint semaphore);
|
||||
@@ -1875,14 +1823,6 @@ GL_APICALL void GL_APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLin
|
||||
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch */
|
||||
|
||||
#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
|
||||
#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
|
||||
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC) (void);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierEXT (void);
|
||||
#endif
|
||||
#endif /* GL_EXT_shader_framebuffer_fetch_non_coherent */
|
||||
|
||||
#ifndef GL_EXT_shader_group_vote
|
||||
#define GL_EXT_shader_group_vote 1
|
||||
#endif /* GL_EXT_shader_group_vote */
|
||||
@@ -2127,24 +2067,12 @@ GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalf
|
||||
|
||||
#ifndef GL_EXT_texture_filter_minmax
|
||||
#define GL_EXT_texture_filter_minmax 1
|
||||
#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
|
||||
#define GL_WEIGHTED_AVERAGE_EXT 0x9367
|
||||
#endif /* GL_EXT_texture_filter_minmax */
|
||||
|
||||
#ifndef GL_EXT_texture_format_BGRA8888
|
||||
#define GL_EXT_texture_format_BGRA8888 1
|
||||
#endif /* GL_EXT_texture_format_BGRA8888 */
|
||||
|
||||
#ifndef GL_EXT_texture_format_sRGB_override
|
||||
#define GL_EXT_texture_format_sRGB_override 1
|
||||
#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT 0x8FBF
|
||||
#endif /* GL_EXT_texture_format_sRGB_override */
|
||||
|
||||
#ifndef GL_EXT_texture_mirror_clamp_to_edge
|
||||
#define GL_EXT_texture_mirror_clamp_to_edge 1
|
||||
#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743
|
||||
#endif /* GL_EXT_texture_mirror_clamp_to_edge */
|
||||
|
||||
#ifndef GL_EXT_texture_norm16
|
||||
#define GL_EXT_texture_norm16 1
|
||||
#define GL_R16_EXT 0x822A
|
||||
@@ -2347,11 +2275,6 @@ GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum target,
|
||||
#define GL_CUBIC_MIPMAP_LINEAR_IMG 0x913B
|
||||
#endif /* GL_IMG_texture_filter_cubic */
|
||||
|
||||
#ifndef GL_INTEL_blackhole_render
|
||||
#define GL_INTEL_blackhole_render 1
|
||||
#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
|
||||
#endif /* GL_INTEL_blackhole_render */
|
||||
|
||||
#ifndef GL_INTEL_conservative_rasterization
|
||||
#define GL_INTEL_conservative_rasterization 1
|
||||
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
|
||||
@@ -2394,7 +2317,7 @@ typedef void (GL_APIENTRYP PFNGLENDPERFQUERYINTELPROC) (GLuint queryHandle);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFIRSTPERFQUERYIDINTELPROC) (GLuint *queryId);
|
||||
typedef void (GL_APIENTRYP PFNGLGETNEXTPERFQUERYIDINTELPROC) (GLuint queryId, GLuint *nextQueryId);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPERFCOUNTERINFOINTELPROC) (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPERFQUERYDATAINTELPROC) (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPERFQUERYIDBYNAMEINTELPROC) (GLchar *queryName, GLuint *queryId);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPERFQUERYINFOINTELPROC) (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
@@ -2405,17 +2328,12 @@ GL_APICALL void GL_APIENTRY glEndPerfQueryINTEL (GLuint queryHandle);
|
||||
GL_APICALL void GL_APIENTRY glGetFirstPerfQueryIdINTEL (GLuint *queryId);
|
||||
GL_APICALL void GL_APIENTRY glGetNextPerfQueryIdINTEL (GLuint queryId, GLuint *nextQueryId);
|
||||
GL_APICALL void GL_APIENTRY glGetPerfCounterInfoINTEL (GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar *counterName, GLuint counterDescLength, GLchar *counterDesc, GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum, GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
|
||||
GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, void *data, GLuint *bytesWritten);
|
||||
GL_APICALL void GL_APIENTRY glGetPerfQueryDataINTEL (GLuint queryHandle, GLuint flags, GLsizei dataSize, GLvoid *data, GLuint *bytesWritten);
|
||||
GL_APICALL void GL_APIENTRY glGetPerfQueryIdByNameINTEL (GLchar *queryName, GLuint *queryId);
|
||||
GL_APICALL void GL_APIENTRY glGetPerfQueryInfoINTEL (GLuint queryId, GLuint queryNameLength, GLchar *queryName, GLuint *dataSize, GLuint *noCounters, GLuint *noInstances, GLuint *capsMask);
|
||||
#endif
|
||||
#endif /* GL_INTEL_performance_query */
|
||||
|
||||
#ifndef GL_MESA_framebuffer_flip_y
|
||||
#define GL_MESA_framebuffer_flip_y 1
|
||||
#define GL_FRAMEBUFFER_FLIP_Y_MESA 0x8BBB
|
||||
#endif /* GL_MESA_framebuffer_flip_y */
|
||||
|
||||
#ifndef GL_MESA_program_binary_formats
|
||||
#define GL_MESA_program_binary_formats 1
|
||||
#define GL_PROGRAM_BINARY_FORMAT_MESA 0x875F
|
||||
@@ -2531,17 +2449,6 @@ GL_APICALL void GL_APIENTRY glBlendBarrierNV (void);
|
||||
#define GL_FACTOR_MAX_AMD 0x901D
|
||||
#endif /* GL_NV_blend_minmax_factor */
|
||||
|
||||
#ifndef GL_NV_clip_space_w_scaling
|
||||
#define GL_NV_clip_space_w_scaling 1
|
||||
#define GL_VIEWPORT_POSITION_W_SCALE_NV 0x937C
|
||||
#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV 0x937D
|
||||
#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV 0x937E
|
||||
typedef void (GL_APIENTRYP PFNGLVIEWPORTPOSITIONWSCALENVPROC) (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glViewportPositionWScaleNV (GLuint index, GLfloat xcoeff, GLfloat ycoeff);
|
||||
#endif
|
||||
#endif /* GL_NV_clip_space_w_scaling */
|
||||
|
||||
#ifndef GL_NV_conditional_render
|
||||
#define GL_NV_conditional_render 1
|
||||
#define GL_QUERY_WAIT_NV 0x8E13
|
||||
@@ -2568,11 +2475,6 @@ GL_APICALL void GL_APIENTRY glSubpixelPrecisionBiasNV (GLuint xbits, GLuint ybit
|
||||
#endif
|
||||
#endif /* GL_NV_conservative_raster */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap
|
||||
#define GL_NV_conservative_raster_pre_snap 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV 0x9550
|
||||
#endif /* GL_NV_conservative_raster_pre_snap */
|
||||
|
||||
#ifndef GL_NV_conservative_raster_pre_snap_triangles
|
||||
#define GL_NV_conservative_raster_pre_snap_triangles 1
|
||||
#define GL_CONSERVATIVE_RASTER_MODE_NV 0x954D
|
||||
@@ -2944,7 +2846,6 @@ GL_APICALL void GL_APIENTRY glUniformMatrix4x3fvNV (GLint location, GLsizei coun
|
||||
|
||||
#ifndef GL_NV_path_rendering
|
||||
#define GL_NV_path_rendering 1
|
||||
typedef double GLdouble;
|
||||
#define GL_PATH_FORMAT_SVG_NV 0x9070
|
||||
#define GL_PATH_FORMAT_PS_NV 0x9071
|
||||
#define GL_STANDARD_FONT_NAME_NV 0x9072
|
||||
@@ -3155,25 +3056,6 @@ typedef GLenum (GL_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathNa
|
||||
typedef GLenum (GL_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
typedef void (GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
|
||||
typedef void (GL_APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL GLuint GL_APIENTRY glGenPathsNV (GLsizei range);
|
||||
GL_APICALL void GL_APIENTRY glDeletePathsNV (GLuint path, GLsizei range);
|
||||
@@ -3232,25 +3114,6 @@ GL_APICALL GLenum GL_APIENTRY glPathGlyphIndexArrayNV (GLuint firstPathName, GLe
|
||||
GL_APICALL GLenum GL_APIENTRY glPathMemoryGlyphIndexArrayNV (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
|
||||
GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenNV (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
|
||||
GL_APICALL void GL_APIENTRY glMatrixPopEXT (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glMatrixPushEXT (GLenum mode);
|
||||
GL_APICALL void GL_APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
|
||||
GL_APICALL void GL_APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
|
||||
GL_APICALL void GL_APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z);
|
||||
GL_APICALL void GL_APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z);
|
||||
#endif
|
||||
#endif /* GL_NV_path_rendering */
|
||||
|
||||
@@ -3362,10 +3225,6 @@ GL_APICALL void GL_APIENTRY glResolveDepthValuesNV (void);
|
||||
#define GL_SAMPLER_CUBE_SHADOW_NV 0x8DC5
|
||||
#endif /* GL_NV_shadow_samplers_cube */
|
||||
|
||||
#ifndef GL_NV_stereo_view_rendering
|
||||
#define GL_NV_stereo_view_rendering 1
|
||||
#endif /* GL_NV_stereo_view_rendering */
|
||||
|
||||
#ifndef GL_NV_texture_border_clamp
|
||||
#define GL_NV_texture_border_clamp 1
|
||||
#define GL_TEXTURE_BORDER_COLOR_NV 0x1004
|
||||
@@ -3568,19 +3427,6 @@ GL_APICALL void GL_APIENTRY glFramebufferFetchBarrierQCOM (void);
|
||||
#endif
|
||||
#endif /* GL_QCOM_shader_framebuffer_fetch_noncoherent */
|
||||
|
||||
#ifndef GL_QCOM_texture_foveated
|
||||
#define GL_QCOM_texture_foveated 1
|
||||
#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM 0x8BFB
|
||||
#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM 0x8BFC
|
||||
#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM 0x8BFD
|
||||
#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM 0x8BFE
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM 0x8BFF
|
||||
typedef void (GL_APIENTRYP PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC) (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glTextureFoveationParametersQCOM (GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
|
||||
#endif
|
||||
#endif /* GL_QCOM_texture_foveated */
|
||||
|
||||
#ifndef GL_QCOM_tiled_rendering
|
||||
#define GL_QCOM_tiled_rendering 1
|
||||
#define GL_COLOR_BUFFER_BIT0_QCOM 0x00000001
|
||||
|
@@ -1,12 +1,12 @@
|
||||
#ifndef __gles2_gl3_h_
|
||||
#define __gles2_gl3_h_ 1
|
||||
#ifndef __gl3_h_
|
||||
#define __gl3_h_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2013-2018 The Khronos Group Inc.
|
||||
** Copyright (c) 2013-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
@@ -44,7 +44,7 @@ extern "C" {
|
||||
#define GL_GLES_PROTOTYPES 1
|
||||
#endif
|
||||
|
||||
/* Generated on date 20180725 */
|
||||
/* Generated on date 20170606 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
|
@@ -76,8 +76,18 @@ Configuration macro:
|
||||
#endif
|
||||
|
||||
/* Visual Studio 2015 and later */
|
||||
#ifdef _MSC_VER
|
||||
#if _MSC_VER >= 1900
|
||||
#define HAVE_TIMESPEC
|
||||
#define HAVE_TIMESPEC_GET
|
||||
#elif defined(__MINGW32__)
|
||||
#define HAVE_TIMESPEC
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_TIMESPEC
|
||||
struct timespec {
|
||||
time_t tv_sec;
|
||||
long tv_nsec;
|
||||
};
|
||||
#endif
|
||||
|
||||
/*---------------------------- macros ----------------------------*/
|
||||
|
@@ -36,8 +36,8 @@
|
||||
*/
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
# if _MSC_VER < 1900
|
||||
# error "Microsoft Visual Studio 2015 or higher required"
|
||||
# if _MSC_VER < 1800 || (_MSC_FULL_VER < 180031101 && !defined(__clang__))
|
||||
# error "Microsoft Visual Studio 2013 Update 4 or higher required"
|
||||
# endif
|
||||
|
||||
/*
|
||||
|
@@ -125,7 +125,7 @@ struct ID3DPresent
|
||||
#define ID3DPresent_SetCursorPos(p,a) (p)->lpVtbl->SetCursorPos(p,a)
|
||||
#define ID3DPresent_SetCursor(p,a,b,c) (p)->lpVtbl->SetCursor(p,a,b,c)
|
||||
#define ID3DPresent_SetGammaRamp(p,a,b) (p)->lpVtbl->SetGammaRamp(p,a,b)
|
||||
#define ID3DPresent_GetWindowInfo(p,a,b,c,d) (p)->lpVtbl->GetWindowInfo(p,a,b,c,d)
|
||||
#define ID3DPresent_GetWindowInfo(p,a,b,c,d) (p)->lpVtbl->GetWindowSize(p,a,b,c,d)
|
||||
#define ID3DPresent_GetWindowOccluded(p) (p)->lpVtbl->GetWindowOccluded(p)
|
||||
#define ID3DPresent_ResolutionMismatch(p) (p)->lpVtbl->ResolutionMismatch(p)
|
||||
#define ID3DPresent_CreateThread(p,a,b) (p)->lpVtbl->CreateThread(p,a,b)
|
||||
|
@@ -384,23 +384,6 @@ extern "C" {
|
||||
#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \
|
||||
fourcc_mod_code(NVIDIA, 0x15)
|
||||
|
||||
/*
|
||||
* Some Broadcom modifiers take parameters, for example the number of
|
||||
* vertical lines in the image. Reserve the lower 32 bits for modifier
|
||||
* type, and the next 24 bits for parameters. Top 8 bits are the
|
||||
* vendor code.
|
||||
*/
|
||||
#define __fourcc_mod_broadcom_param_shift 8
|
||||
#define __fourcc_mod_broadcom_param_bits 48
|
||||
#define fourcc_mod_broadcom_code(val, params) \
|
||||
fourcc_mod_code(BROADCOM, ((((__u64)params) << __fourcc_mod_broadcom_param_shift) | val))
|
||||
#define fourcc_mod_broadcom_param(m) \
|
||||
((int)(((m) >> __fourcc_mod_broadcom_param_shift) & \
|
||||
((1ULL << __fourcc_mod_broadcom_param_bits) - 1)))
|
||||
#define fourcc_mod_broadcom_mod(m) \
|
||||
((m) & ~(((1ULL << __fourcc_mod_broadcom_param_bits) - 1) << \
|
||||
__fourcc_mod_broadcom_param_shift))
|
||||
|
||||
/*
|
||||
* Broadcom VC4 "T" format
|
||||
*
|
||||
@@ -422,69 +405,6 @@ extern "C" {
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1)
|
||||
|
||||
/*
|
||||
* Broadcom SAND format
|
||||
*
|
||||
* This is the native format that the H.264 codec block uses. For VC4
|
||||
* HVS, it is only valid for H.264 (NV12/21) and RGBA modes.
|
||||
*
|
||||
* The image can be considered to be split into columns, and the
|
||||
* columns are placed consecutively into memory. The width of those
|
||||
* columns can be either 32, 64, 128, or 256 pixels, but in practice
|
||||
* only 128 pixel columns are used.
|
||||
*
|
||||
* The pitch between the start of each column is set to optimally
|
||||
* switch between SDRAM banks. This is passed as the number of lines
|
||||
* of column width in the modifier (we can't use the stride value due
|
||||
* to various core checks that look at it , so you should set the
|
||||
* stride to width*cpp).
|
||||
*
|
||||
* Note that the column height for this format modifier is the same
|
||||
* for all of the planes, assuming that each column contains both Y
|
||||
* and UV. Some SAND-using hardware stores UV in a separate tiled
|
||||
* image from Y to reduce the column height, which is not supported
|
||||
* with these modifiers.
|
||||
*/
|
||||
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
|
||||
fourcc_mod_broadcom_code(2, v)
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(v) \
|
||||
fourcc_mod_broadcom_code(3, v)
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(v) \
|
||||
fourcc_mod_broadcom_code(4, v)
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(v) \
|
||||
fourcc_mod_broadcom_code(5, v)
|
||||
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND32 \
|
||||
DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(0)
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND64 \
|
||||
DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(0)
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND128 \
|
||||
DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(0)
|
||||
#define DRM_FORMAT_MOD_BROADCOM_SAND256 \
|
||||
DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(0)
|
||||
|
||||
/* Broadcom UIF format
|
||||
*
|
||||
* This is the common format for the current Broadcom multimedia
|
||||
* blocks, including V3D 3.x and newer, newer video codecs, and
|
||||
* displays.
|
||||
*
|
||||
* The image consists of utiles (64b blocks), UIF blocks (2x2 utiles),
|
||||
* and macroblocks (4x4 UIF blocks). Those 4x4 UIF block groups are
|
||||
* stored in columns, with padding between the columns to ensure that
|
||||
* moving from one column to the next doesn't hit the same SDRAM page
|
||||
* bank.
|
||||
*
|
||||
* To calculate the padding, it is assumed that each hardware block
|
||||
* and the software driving it knows the platform's SDRAM page size,
|
||||
* number of banks, and XOR address, and that it's identical between
|
||||
* all blocks using the format. This tiling modifier will use XOR as
|
||||
* necessary to reduce the padding. If a hardware block can't do XOR,
|
||||
* the assumption is that a no-XOR tiling modifier will be created.
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_BROADCOM_UIF fourcc_mod_code(BROADCOM, 6)
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -43,7 +43,7 @@ if with_gles2
|
||||
)
|
||||
endif
|
||||
|
||||
if with_gles1 or with_gles2 or with_opengl or with_egl
|
||||
if with_gles1 or with_gles2 or with_egl
|
||||
install_headers('KHR/khrplatform.h', subdir : 'KHR')
|
||||
endif
|
||||
|
||||
|
@@ -156,6 +156,7 @@ CHIPSET(0x5912, kbl_gt2, "Intel(R) HD Graphics 630 (Kaby Lake GT2)")
|
||||
CHIPSET(0x5916, kbl_gt2, "Intel(R) HD Graphics 620 (Kaby Lake GT2)")
|
||||
CHIPSET(0x591A, kbl_gt2, "Intel(R) HD Graphics P630 (Kaby Lake GT2)")
|
||||
CHIPSET(0x591B, kbl_gt2, "Intel(R) HD Graphics 630 (Kaby Lake GT2)")
|
||||
CHIPSET(0x591C, kbl_gt2, "Intel(R) Kaby Lake GT2")
|
||||
CHIPSET(0x591D, kbl_gt2, "Intel(R) HD Graphics P630 (Kaby Lake GT2)")
|
||||
CHIPSET(0x591E, kbl_gt2, "Intel(R) HD Graphics 615 (Kaby Lake GT2)")
|
||||
CHIPSET(0x5921, kbl_gt2, "Intel(R) Kabylake GT2F")
|
||||
@@ -163,31 +164,27 @@ CHIPSET(0x5923, kbl_gt3, "Intel(R) Kabylake GT3")
|
||||
CHIPSET(0x5926, kbl_gt3, "Intel(R) Iris Plus Graphics 640 (Kaby Lake GT3e)")
|
||||
CHIPSET(0x5927, kbl_gt3, "Intel(R) Iris Plus Graphics 650 (Kaby Lake GT3e)")
|
||||
CHIPSET(0x593B, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
CHIPSET(0x591C, kbl_gt2, "Intel(R) Amber Lake (Kabylake) GT2")
|
||||
CHIPSET(0x87C0, kbl_gt2, "Intel(R) Amber Lake (Kabylake) GT2")
|
||||
CHIPSET(0x87CA, cfl_gt2, "Intel(R) Amber Lake (Coffeelake) GT2")
|
||||
CHIPSET(0x3184, glk, "Intel(R) UHD Graphics 605 (Geminilake)")
|
||||
CHIPSET(0x3185, glk_2x6, "Intel(R) UHD Graphics 600 (Geminilake 2x6)")
|
||||
CHIPSET(0x3E90, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E93, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E99, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3EA1, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3EA4, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E91, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E92, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E96, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E98, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E9A, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E9B, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E94, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3EA0, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3EA3, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3EA9, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3EA2, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
CHIPSET(0x3EA5, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
CHIPSET(0x3EA6, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
CHIPSET(0x3EA7, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
CHIPSET(0x3EA8, cfl_gt3, "Intel(R) HD Graphics (Coffeelake 3x8 GT3)")
|
||||
CHIPSET(0x3EA1, cfl_gt1, "Intel(R) HD Graphics (Whiskey Lake 2x6 GT1)")
|
||||
CHIPSET(0x3EA4, cfl_gt1, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT1)")
|
||||
CHIPSET(0x3EA0, cfl_gt2, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT2)")
|
||||
CHIPSET(0x3EA3, cfl_gt2, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT2)")
|
||||
CHIPSET(0x3EA2, cfl_gt3, "Intel(R) HD Graphics (Whiskey Lake 3x8 GT3)")
|
||||
CHIPSET(0x5A49, cnl_2x8, "Intel(R) HD Graphics (Cannonlake 2x8 GT0.5)")
|
||||
CHIPSET(0x5A4A, cnl_2x8, "Intel(R) HD Graphics (Cannonlake 2x8 GT0.5)")
|
||||
CHIPSET(0x5A41, cnl_3x8, "Intel(R) HD Graphics (Cannonlake 3x8 GT1)")
|
||||
|
@@ -204,7 +204,6 @@ CHIPSET(0x67CC, POLARIS10)
|
||||
CHIPSET(0x67CF, POLARIS10)
|
||||
CHIPSET(0x67D0, POLARIS10)
|
||||
CHIPSET(0x67DF, POLARIS10)
|
||||
CHIPSET(0x6FDF, POLARIS10)
|
||||
|
||||
CHIPSET(0x98E4, STONEY)
|
||||
|
||||
@@ -236,12 +235,4 @@ CHIPSET(0x69A2, VEGA12)
|
||||
CHIPSET(0x69A3, VEGA12)
|
||||
CHIPSET(0x69AF, VEGA12)
|
||||
|
||||
CHIPSET(0x66A0, VEGA20)
|
||||
CHIPSET(0x66A1, VEGA20)
|
||||
CHIPSET(0x66A2, VEGA20)
|
||||
CHIPSET(0x66A3, VEGA20)
|
||||
CHIPSET(0x66A7, VEGA20)
|
||||
CHIPSET(0x66AF, VEGA20)
|
||||
|
||||
CHIPSET(0x15DD, RAVEN)
|
||||
CHIPSET(0x15D8, RAVEN)
|
||||
|
@@ -24,10 +24,6 @@
|
||||
#include "vulkan_android.h"
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_FUCHSIA
|
||||
#include <zircon/types.h>
|
||||
#include "vulkan_fuchsia.h"
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_IOS_MVK
|
||||
#include "vulkan_ios.h"
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,58 +0,0 @@
|
||||
#ifndef VULKAN_FUCHSIA_H_
|
||||
#define VULKAN_FUCHSIA_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_FUCHSIA_imagepipe_surface 1
|
||||
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
|
||||
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
|
||||
|
||||
typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA;
|
||||
|
||||
typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImagePipeSurfaceCreateFlagsFUCHSIA flags;
|
||||
zx_handle_t imagePipeHandle;
|
||||
} VkImagePipeSurfaceCreateInfoFUCHSIA;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA(
|
||||
VkInstance instance,
|
||||
const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -55,11 +55,6 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
# Emil:
|
||||
# Toggle Werror since at some point clang started treating unknown -W
|
||||
# flags as warnings, succeeding with the build, yet issuing an annoying
|
||||
# warning.
|
||||
|
||||
#serial 3
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
@@ -67,7 +62,7 @@ AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1 -Werror"
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||
AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
|
@@ -45,14 +45,13 @@ AC_DEFUN([AX_CHECK_PYTHON_MAKO_MODULE],
|
||||
try:
|
||||
import sys
|
||||
import mako
|
||||
import distutils.version
|
||||
except ImportError as err:
|
||||
sys.exit(err)
|
||||
else:
|
||||
ver_req = distutils.version.LooseVersion('$1')
|
||||
ver_act = distutils.version.LooseVersion(mako.__version__)
|
||||
ver_req = map(int, '$1'.split('.'))
|
||||
ver_act = map(int, mako.__version__.split('.'))
|
||||
sys.exit(int(ver_req > ver_act))
|
||||
" | $PYTHON -
|
||||
" | $PYTHON2 -
|
||||
|
||||
if test $? -ne 0 ; then
|
||||
AC_MSG_RESULT(no)
|
||||
|
234
meson.build
234
meson.build
@@ -25,8 +25,8 @@ project(
|
||||
[find_program('python', 'python2', 'python3'), 'bin/meson_get_version.py']
|
||||
).stdout(),
|
||||
license : 'MIT',
|
||||
meson_version : '>= 0.45',
|
||||
default_options : ['buildtype=debugoptimized', 'b_ndebug=if-release', 'c_std=c99', 'cpp_std=c++11']
|
||||
meson_version : '>= 0.44.1',
|
||||
default_options : ['buildtype=debugoptimized', 'c_std=c99', 'cpp_std=c++11']
|
||||
)
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
@@ -58,7 +58,7 @@ with_osmesa = get_option('osmesa')
|
||||
with_swr_arches = get_option('swr-arches')
|
||||
with_tools = get_option('tools')
|
||||
if with_tools.contains('all')
|
||||
with_tools = ['freedreno', 'glsl', 'intel', 'nir', 'nouveau', 'xvmc']
|
||||
with_tools = ['freedreno', 'glsl', 'intel', 'nir', 'nouveau']
|
||||
endif
|
||||
|
||||
dri_drivers_path = get_option('dri-drivers-path')
|
||||
@@ -102,15 +102,13 @@ if _drivers.contains('auto')
|
||||
elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
|
||||
_drivers = []
|
||||
else
|
||||
error('Unknown architecture @0@. Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.cpu_family()))
|
||||
error('Unknown architecture. Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system())
|
||||
# only swrast would make sense here, but gallium swrast is a much better default
|
||||
_drivers = []
|
||||
else
|
||||
error('Unknown OS @0@. Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.system()))
|
||||
error('Unknown OS. Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -137,14 +135,12 @@ if _drivers.contains('auto')
|
||||
'tegra', 'virgl', 'swrast',
|
||||
]
|
||||
else
|
||||
error('Unknown architecture @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.cpu_family()))
|
||||
error('Unknown architecture. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system())
|
||||
_drivers = ['swrast']
|
||||
else
|
||||
error('Unknown OS @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.system()))
|
||||
error('Unknown OS. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
endif
|
||||
with_gallium_pl111 = _drivers.contains('pl111')
|
||||
@@ -179,18 +175,14 @@ if _vulkan_drivers.contains('auto')
|
||||
if system_has_kms_drm
|
||||
if host_machine.cpu_family().startswith('x86')
|
||||
_vulkan_drivers = ['amd', 'intel']
|
||||
elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
|
||||
_vulkan_drivers = []
|
||||
else
|
||||
error('Unknown architecture @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.cpu_family()))
|
||||
error('Unknown architecture. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system())
|
||||
# No vulkan driver supports windows or macOS currently
|
||||
_vulkan_drivers = []
|
||||
else
|
||||
error('Unknown OS @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.system()))
|
||||
error('Unknown OS. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -238,8 +230,7 @@ if _platforms.contains('auto')
|
||||
elif ['haiku'].contains(host_machine.system())
|
||||
_platforms = ['haiku']
|
||||
else
|
||||
error('Unknown OS @0@. Please pass -Dplatforms to set platforms. Patches gladly accepted to fix this.'.format(
|
||||
host_machine.system()))
|
||||
error('Unknown OS. Please pass -Dplatforms to set platforms. Patches gladly accepted to fix this.')
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -256,13 +247,6 @@ if _platforms.length() != 0 and _platforms != ['']
|
||||
egl_native_platform = _platforms[0]
|
||||
endif
|
||||
|
||||
_xlib_lease = get_option('xlib-lease')
|
||||
if _xlib_lease == 'auto'
|
||||
with_xlib_lease = with_platform_x11 and with_platform_drm
|
||||
else
|
||||
with_xlib_lease = _xlib_lease == 'true'
|
||||
endif
|
||||
|
||||
with_glx = get_option('glx')
|
||||
if with_glx == 'auto'
|
||||
if with_dri
|
||||
@@ -272,6 +256,7 @@ if with_glx == 'auto'
|
||||
elif with_gallium
|
||||
# Even when building just gallium drivers the user probably wants dri
|
||||
with_glx = 'dri'
|
||||
with_dri = true
|
||||
elif with_platform_x11 and with_any_opengl and not with_any_vk
|
||||
# The automatic behavior should not be to turn on xlib based glx when
|
||||
# building only vulkan drivers
|
||||
@@ -280,11 +265,6 @@ if with_glx == 'auto'
|
||||
with_glx = 'disabled'
|
||||
endif
|
||||
endif
|
||||
if with_glx == 'dri'
|
||||
if with_gallium
|
||||
with_dri = true
|
||||
endif
|
||||
endif
|
||||
|
||||
if not (with_dri or with_gallium or with_glx == 'xlib' or with_glx == 'gallium-xlib')
|
||||
with_gles1 = false
|
||||
@@ -306,21 +286,16 @@ endif
|
||||
|
||||
_egl = get_option('egl')
|
||||
if _egl == 'auto'
|
||||
with_egl = (
|
||||
not ['darwin', 'windows'].contains(host_machine.system()) and
|
||||
with_dri and with_shared_glapi and with_platforms
|
||||
)
|
||||
with_egl = with_dri and with_shared_glapi and with_platforms
|
||||
elif _egl == 'true'
|
||||
if not with_dri
|
||||
error('EGL requires dri')
|
||||
elif not with_shared_glapi
|
||||
error('EGL requires shared-glapi')
|
||||
elif not with_platforms
|
||||
error('No platforms specified, consider -Dplatforms=drm,x11,surfaceless at least')
|
||||
error('No platforms specified, consider -Dplatforms=drm,x11 at least')
|
||||
elif not ['disabled', 'dri'].contains(with_glx)
|
||||
error('EGL requires dri, but a GLX is being built without dri')
|
||||
elif ['darwin', 'windows'].contains(host_machine.system())
|
||||
error('EGL is not available on Windows or MacOS')
|
||||
endif
|
||||
with_egl = true
|
||||
else
|
||||
@@ -416,17 +391,16 @@ elif not (with_gallium_r300 or with_gallium_r600 or with_gallium_radeonsi or
|
||||
else
|
||||
_vdpau = 'false'
|
||||
endif
|
||||
elif _vdpau == 'auto'
|
||||
_vdpau = 'true'
|
||||
endif
|
||||
with_gallium_vdpau = _vdpau == 'true'
|
||||
dep_vdpau = null_dep
|
||||
with_gallium_vdpau = false
|
||||
if _vdpau != 'false'
|
||||
dep_vdpau = dependency('vdpau', version : '>= 1.1', required : _vdpau == 'true')
|
||||
if dep_vdpau.found()
|
||||
dep_vdpau = declare_dependency(
|
||||
compile_args : run_command(prog_pkgconfig, ['vdpau', '--cflags']).stdout().split()
|
||||
)
|
||||
with_gallium_vdpau = true
|
||||
endif
|
||||
if with_gallium_vdpau
|
||||
dep_vdpau = dependency('vdpau', version : '>= 1.1')
|
||||
dep_vdpau = declare_dependency(
|
||||
compile_args : run_command(prog_pkgconfig, ['vdpau', '--cflags']).stdout().split()
|
||||
)
|
||||
endif
|
||||
|
||||
if with_gallium_vdpau
|
||||
@@ -456,12 +430,13 @@ elif not (with_gallium_r600 or with_gallium_nouveau)
|
||||
else
|
||||
_xvmc = 'false'
|
||||
endif
|
||||
elif _xvmc == 'auto'
|
||||
_xvmc = 'true'
|
||||
endif
|
||||
with_gallium_xvmc = _xvmc == 'true'
|
||||
dep_xvmc = null_dep
|
||||
with_gallium_xvmc = false
|
||||
if _xvmc != 'false'
|
||||
dep_xvmc = dependency('xvmc', version : '>= 1.0.6', required : _xvmc == 'true')
|
||||
with_gallium_xvmc = dep_xvmc.found()
|
||||
if with_gallium_xvmc
|
||||
dep_xvmc = dependency('xvmc', version : '>= 1.0.6')
|
||||
endif
|
||||
|
||||
xvmc_drivers_path = get_option('xvmc-libs-path')
|
||||
@@ -574,17 +549,16 @@ elif not (with_gallium_r600 or with_gallium_radeonsi or with_gallium_nouveau)
|
||||
else
|
||||
_va = 'false'
|
||||
endif
|
||||
elif _va == 'auto'
|
||||
_va = 'true'
|
||||
endif
|
||||
with_gallium_va = false
|
||||
with_gallium_va = _va == 'true'
|
||||
dep_va = null_dep
|
||||
if _va != 'false'
|
||||
dep_va = dependency('libva', version : '>= 0.38.0', required : _va == 'true')
|
||||
if dep_va.found()
|
||||
dep_va_headers = declare_dependency(
|
||||
compile_args : run_command(prog_pkgconfig, ['libva', '--cflags']).stdout().split()
|
||||
)
|
||||
with_gallium_va = true
|
||||
endif
|
||||
if with_gallium_va
|
||||
dep_va = dependency('libva', version : '>= 0.39.0')
|
||||
dep_va_headers = declare_dependency(
|
||||
compile_args : run_command(prog_pkgconfig, ['libva', '--cflags']).stdout().split()
|
||||
)
|
||||
endif
|
||||
|
||||
va_drivers_path = get_option('va-libs-path')
|
||||
@@ -709,16 +683,10 @@ if with_platform_haiku
|
||||
pre_args += '-DHAVE_HAIKU_PLATFORM'
|
||||
endif
|
||||
|
||||
prog_python = import('python3').find_python()
|
||||
has_mako = run_command(
|
||||
prog_python, '-c',
|
||||
'''
|
||||
from distutils.version import StrictVersion
|
||||
import mako
|
||||
assert StrictVersion(mako.__version__) > StrictVersion("0.8.0")
|
||||
''')
|
||||
prog_python2 = find_program('python2')
|
||||
has_mako = run_command(prog_python2, '-c', 'import mako')
|
||||
if has_mako.returncode() != 0
|
||||
error('Python (3.x) mako module >= 0.8.0 required to build mesa.')
|
||||
error('Python (2.x) mako module required to build mesa.')
|
||||
endif
|
||||
|
||||
if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.4.6')
|
||||
@@ -787,21 +755,13 @@ endif
|
||||
|
||||
# Check for generic C arguments
|
||||
c_args = []
|
||||
foreach a : ['-Werror=implicit-function-declaration',
|
||||
'-Werror=missing-prototypes', '-Werror=return-type',
|
||||
'-fno-math-errno',
|
||||
foreach a : ['-Wall', '-Werror=implicit-function-declaration',
|
||||
'-Werror=missing-prototypes', '-fno-math-errno',
|
||||
'-fno-trapping-math', '-Qunused-arguments']
|
||||
if cc.has_argument(a)
|
||||
c_args += a
|
||||
endif
|
||||
endforeach
|
||||
|
||||
foreach a : ['missing-field-initializers', 'format-truncation']
|
||||
if cc.has_argument('-W' + a)
|
||||
c_args += '-Wno-' + a
|
||||
endif
|
||||
endforeach
|
||||
|
||||
c_vis_args = []
|
||||
if cc.has_argument('-fvisibility=hidden')
|
||||
c_vis_args += '-fvisibility=hidden'
|
||||
@@ -809,8 +769,7 @@ endif
|
||||
|
||||
# Check for generic C++ arguments
|
||||
cpp_args = []
|
||||
foreach a : ['-Werror=return-type',
|
||||
'-fno-math-errno', '-fno-trapping-math',
|
||||
foreach a : ['-Wall', '-fno-math-errno', '-fno-trapping-math',
|
||||
'-Qunused-arguments']
|
||||
if cpp.has_argument(a)
|
||||
cpp_args += a
|
||||
@@ -819,12 +778,9 @@ endforeach
|
||||
|
||||
# For some reason, the test for -Wno-foo always succeeds with gcc, even if the
|
||||
# option is not supported. Hence, check for -Wfoo instead.
|
||||
|
||||
foreach a : ['non-virtual-dtor', 'missing-field-initializers', 'format-truncation']
|
||||
if cpp.has_argument('-W' + a)
|
||||
cpp_args += '-Wno-' + a
|
||||
endif
|
||||
endforeach
|
||||
if cpp.has_argument('-Wnon-virtual-dtor')
|
||||
cpp_args += '-Wno-non-virtual-dtor'
|
||||
endif
|
||||
|
||||
no_override_init_args = []
|
||||
foreach a : ['override-init', 'initializer-overrides']
|
||||
@@ -905,9 +861,8 @@ if not cc.links('''#include <stdint.h>
|
||||
int main() {
|
||||
return __sync_add_and_fetch(&v, (uint64_t)1);
|
||||
}''',
|
||||
dependencies : dep_atomic,
|
||||
name : 'GCC 64bit atomics')
|
||||
pre_args += '-DMISSING_64BIT_ATOMICS'
|
||||
pre_args += '-DMISSING_64_BIT_ATOMICS'
|
||||
endif
|
||||
|
||||
# TODO: shared/static? Is this even worth doing?
|
||||
@@ -984,7 +939,7 @@ elif cc.has_header_symbol('sys/mkdev.h', 'major')
|
||||
pre_args += '-DMAJOR_IN_MKDEV'
|
||||
endif
|
||||
|
||||
foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h', 'dlfcn.h']
|
||||
foreach h : ['xlocale.h', 'sys/sysctl.h', 'linux/futex.h', 'endian.h']
|
||||
if cc.compiles('#include <@0@>'.format(h), name : '@0@'.format(h))
|
||||
pre_args += '-DHAVE_@0@'.format(h.to_upper().underscorify())
|
||||
endif
|
||||
@@ -1013,7 +968,7 @@ if cc.links('''
|
||||
freelocale(loc);
|
||||
return 0;
|
||||
}''',
|
||||
args : pre_args,
|
||||
extra_args : pre_args,
|
||||
name : 'strtod has locale support')
|
||||
pre_args += '-DHAVE_STRTOD_L'
|
||||
endif
|
||||
@@ -1079,13 +1034,14 @@ pre_args += '-DHAVE_ZLIB'
|
||||
dep_thread = dependency('threads')
|
||||
if dep_thread.found() and host_machine.system() != 'windows'
|
||||
pre_args += '-DHAVE_PTHREAD'
|
||||
if cc.has_function(
|
||||
'pthread_setaffinity_np',
|
||||
dependencies : dep_thread,
|
||||
prefix : '#include <pthread.h>',
|
||||
args : '-D_GNU_SOURCE')
|
||||
pre_args += '-DHAVE_PTHREAD_SETAFFINITY'
|
||||
endif
|
||||
if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 or with_gallium_opencl
|
||||
dep_elf = dependency('libelf', required : false)
|
||||
if not dep_elf.found()
|
||||
dep_elf = cc.find_library('elf')
|
||||
endif
|
||||
else
|
||||
dep_elf = null_dep
|
||||
endif
|
||||
dep_expat = dependency('expat')
|
||||
# this only exists on linux so either this is linux and it will be found, or
|
||||
@@ -1100,12 +1056,14 @@ dep_libdrm_amdgpu = null_dep
|
||||
dep_libdrm_radeon = null_dep
|
||||
dep_libdrm_nouveau = null_dep
|
||||
dep_libdrm_etnaviv = null_dep
|
||||
dep_libdrm_freedreno = null_dep
|
||||
dep_libdrm_intel = null_dep
|
||||
|
||||
_drm_amdgpu_ver = '2.4.95'
|
||||
_drm_amdgpu_ver = '2.4.91'
|
||||
_drm_radeon_ver = '2.4.71'
|
||||
_drm_nouveau_ver = '2.4.66'
|
||||
_drm_etnaviv_ver = '2.4.89'
|
||||
_drm_freedreno_ver = '2.4.92'
|
||||
_drm_intel_ver = '2.4.75'
|
||||
_drm_ver = '2.4.75'
|
||||
|
||||
@@ -1116,6 +1074,7 @@ _libdrm_checks = [
|
||||
with_gallium_r300 or with_gallium_r600)],
|
||||
['nouveau', (with_gallium_nouveau or with_dri_nouveau)],
|
||||
['etnaviv', with_gallium_etnaviv],
|
||||
['freedreno', with_gallium_freedreno],
|
||||
]
|
||||
|
||||
# VC4 only needs core libdrm support of this version, not a libdrm_vc4
|
||||
@@ -1126,17 +1085,12 @@ endif
|
||||
|
||||
# Loop over the enables versions and get the highest libdrm requirement for all
|
||||
# active drivers.
|
||||
_drm_blame = ''
|
||||
foreach d : _libdrm_checks
|
||||
ver = get_variable('_drm_@0@_ver'.format(d[0]))
|
||||
if d[1] and ver.version_compare('>' + _drm_ver)
|
||||
_drm_ver = ver
|
||||
_drm_blame = d[0]
|
||||
endif
|
||||
endforeach
|
||||
if _drm_blame != ''
|
||||
message('libdrm @0@ needed because @1@ has the highest requirement'.format(_drm_ver, _drm_blame))
|
||||
endif
|
||||
|
||||
# Then get each libdrm module
|
||||
foreach d : _libdrm_checks
|
||||
@@ -1173,40 +1127,47 @@ if with_gallium_opencl
|
||||
'all-targets', 'linker', 'coverage', 'instrumentation', 'ipo', 'irreader',
|
||||
'lto', 'option', 'objcarcopts', 'profiledata',
|
||||
]
|
||||
llvm_optional_modules += ['coroutines']
|
||||
llvm_optional_modules += ['coroutines', 'opencl']
|
||||
endif
|
||||
|
||||
if with_amd_vk or with_gallium_radeonsi
|
||||
_llvm_version = '>= 6.0.0'
|
||||
_llvm_version = '>= 5.0.0'
|
||||
elif with_gallium_swr
|
||||
_llvm_version = '>= 6.0.0'
|
||||
_llvm_version = '>= 4.0.0'
|
||||
elif with_gallium_opencl or with_gallium_r600
|
||||
_llvm_version = '>= 3.9.0'
|
||||
else
|
||||
_llvm_version = '>= 3.3.0'
|
||||
endif
|
||||
|
||||
_shared_llvm = get_option('shared-llvm')
|
||||
|
||||
_llvm = get_option('llvm')
|
||||
dep_llvm = null_dep
|
||||
with_llvm = false
|
||||
if _llvm != 'false'
|
||||
if _llvm == 'auto'
|
||||
dep_llvm = dependency(
|
||||
'llvm',
|
||||
version : _llvm_version,
|
||||
modules : llvm_modules,
|
||||
optional_modules : llvm_optional_modules,
|
||||
required : (
|
||||
with_amd_vk or with_gallium_radeonsi or with_gallium_swr or
|
||||
with_gallium_opencl or _llvm == 'true'
|
||||
),
|
||||
static : not _shared_llvm,
|
||||
required : with_amd_vk or with_gallium_radeonsi or with_gallium_swr or with_gallium_opencl,
|
||||
)
|
||||
with_llvm = dep_llvm.found()
|
||||
elif _llvm == 'true'
|
||||
dep_llvm = dependency(
|
||||
'llvm',
|
||||
version : _llvm_version,
|
||||
modules : llvm_modules,
|
||||
optional_modules : llvm_optional_modules,
|
||||
)
|
||||
with_llvm = true
|
||||
else
|
||||
dep_llvm = null_dep
|
||||
with_llvm = false
|
||||
endif
|
||||
if with_llvm
|
||||
_llvm_version = dep_llvm.version().split('.')
|
||||
# Development versions of LLVM have an 'svn' or 'git' suffix, we don't want
|
||||
# that for our version checks.
|
||||
# svn suffixes are stripped by meson as of 0.43, and git suffixes are
|
||||
# strippped as of 0.44, but we support older meson versions.
|
||||
|
||||
# 3 digits versions in LLVM only started from 3.4.1 on
|
||||
if dep_llvm.version().version_compare('>= 3.4.1')
|
||||
@@ -1215,6 +1176,11 @@ if with_llvm
|
||||
_llvm_patch = '0'
|
||||
endif
|
||||
|
||||
if _llvm_patch.endswith('svn')
|
||||
_llvm_patch = _llvm_patch.split('s')[0]
|
||||
elif _llvm_patch.contains('git')
|
||||
_llvm_patch = _llvm_patch.split('g')[0]
|
||||
endif
|
||||
pre_args += [
|
||||
'-DHAVE_LLVM=0x0@0@0@1@'.format(_llvm_version[0], _llvm_version[1]),
|
||||
'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
|
||||
@@ -1230,16 +1196,6 @@ elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
|
||||
error('The following drivers require LLVM: Radv, RadeonSI, SWR. One of these is enabled, but LLVM is disabled.')
|
||||
endif
|
||||
|
||||
if (with_amd_vk or with_gallium_radeonsi or with_gallium_opencl or
|
||||
(with_gallium_r600 and with_llvm))
|
||||
dep_elf = dependency('libelf', required : false)
|
||||
if not dep_elf.found()
|
||||
dep_elf = cc.find_library('elf')
|
||||
endif
|
||||
else
|
||||
dep_elf = null_dep
|
||||
endif
|
||||
|
||||
dep_glvnd = null_dep
|
||||
if with_glvnd
|
||||
dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
|
||||
@@ -1298,13 +1254,7 @@ endif
|
||||
# TODO: symbol mangling
|
||||
|
||||
if with_platform_wayland
|
||||
dep_wl_scanner = dependency('wayland-scanner', native: true)
|
||||
prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner'))
|
||||
if dep_wl_scanner.version().version_compare('>= 1.15')
|
||||
wl_scanner_arg = 'private-code'
|
||||
else
|
||||
wl_scanner_arg = 'code'
|
||||
endif
|
||||
prog_wl_scanner = find_program('wayland-scanner')
|
||||
dep_wl_protocols = dependency('wayland-protocols', version : '>= 1.8')
|
||||
dep_wayland_client = dependency('wayland-client', version : '>=1.11')
|
||||
dep_wayland_server = dependency('wayland-server', version : '>=1.11')
|
||||
@@ -1318,6 +1268,12 @@ if with_platform_wayland
|
||||
'linux-dmabuf', 'linux-dmabuf-unstable-v1.xml'
|
||||
)
|
||||
pre_args += ['-DHAVE_WAYLAND_PLATFORM', '-DWL_HIDE_DEPRECATED']
|
||||
else
|
||||
prog_wl_scanner = []
|
||||
dep_wl_protocols = null_dep
|
||||
dep_wayland_client = null_dep
|
||||
dep_wayland_server = null_dep
|
||||
wayland_dmabuf_xml = ''
|
||||
endif
|
||||
|
||||
dep_x11 = null_dep
|
||||
@@ -1337,8 +1293,6 @@ dep_xcb_present = null_dep
|
||||
dep_xcb_sync = null_dep
|
||||
dep_xcb_xfixes = null_dep
|
||||
dep_xshmfence = null_dep
|
||||
dep_xcb_xrandr = null_dep
|
||||
dep_xlib_xrandr = null_dep
|
||||
if with_platform_x11
|
||||
if with_glx == 'xlib' or with_glx == 'gallium-xlib'
|
||||
dep_x11 = dependency('x11')
|
||||
@@ -1350,7 +1304,7 @@ if with_platform_x11
|
||||
dep_xdamage = dependency('xdamage', version : '>= 1.1')
|
||||
dep_xfixes = dependency('xfixes')
|
||||
dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1')
|
||||
dep_xxf86vm = dependency('xxf86vm')
|
||||
dep_xxf86vm = dependency('xxf86vm', required : false)
|
||||
endif
|
||||
if (with_any_vk or with_glx == 'dri' or
|
||||
(with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or
|
||||
@@ -1385,10 +1339,6 @@ if with_platform_x11
|
||||
with_gallium_omx != 'disabled'))
|
||||
dep_xcb_xfixes = dependency('xcb-xfixes')
|
||||
endif
|
||||
if with_xlib_lease
|
||||
dep_xcb_xrandr = dependency('xcb-randr', version : '>= 1.12')
|
||||
dep_xlib_xrandr = dependency('xrandr', version : '>= 1.3')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('gallium-extra-hud')
|
||||
@@ -1428,11 +1378,13 @@ elif with_glx == 'dri'
|
||||
if with_dri_platform == 'drm'
|
||||
gl_priv_reqs += 'xcb-dri2 >= 1.8'
|
||||
endif
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
if dep_libdrm.found()
|
||||
gl_priv_reqs += 'libdrm >= 2.4.75'
|
||||
endif
|
||||
if dep_xxf86vm.found()
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
|
||||
gl_priv_libs = []
|
||||
if dep_thread.found()
|
||||
|
@@ -25,7 +25,7 @@ option(
|
||||
choices : [
|
||||
'', 'auto', 'x11', 'wayland', 'drm', 'surfaceless', 'haiku', 'android',
|
||||
],
|
||||
description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.'
|
||||
description : 'comma separated list of window systems to support. If this is set to auto all platforms applicable to the OS will be enabled.'
|
||||
)
|
||||
option(
|
||||
'dri3',
|
||||
@@ -237,12 +237,6 @@ option(
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Build with LLVM support.'
|
||||
)
|
||||
option(
|
||||
'shared-llvm',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Whether to link llvm shared or statically.'
|
||||
)
|
||||
option(
|
||||
'valgrind',
|
||||
type : 'combo',
|
||||
@@ -301,8 +295,8 @@ option(
|
||||
'tools',
|
||||
type : 'array',
|
||||
value : [],
|
||||
choices : ['freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'all'],
|
||||
description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
|
||||
choices : ['freedreno', 'glsl', 'intel', 'nir', 'nouveau', 'all'],
|
||||
description : 'List of tools to build.',
|
||||
)
|
||||
option(
|
||||
'power8',
|
||||
@@ -311,10 +305,3 @@ option(
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Enable power8 optimizations.',
|
||||
)
|
||||
option(
|
||||
'xlib-lease',
|
||||
type : 'combo',
|
||||
value : 'auto',
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Enable VK_EXT_acquire_xlib_display.'
|
||||
)
|
||||
|
@@ -29,7 +29,6 @@ Frontend-tool for Gallium3D architecture.
|
||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import distutils.version
|
||||
import os
|
||||
@@ -222,6 +221,10 @@ def generate(env):
|
||||
env['suncc'] = env['platform'] == 'sunos' and os.path.basename(env['CC']) == 'cc'
|
||||
env['icc'] = 'icc' == os.path.basename(env['CC'])
|
||||
|
||||
if env['msvc'] and env['toolchain'] == 'default' and env['machine'] == 'x86_64':
|
||||
# MSVC x64 support is broken in earlier versions of scons
|
||||
env.EnsurePythonVersion(2, 0)
|
||||
|
||||
# shortcuts
|
||||
machine = env['machine']
|
||||
platform = env['platform']
|
||||
@@ -279,7 +282,7 @@ def generate(env):
|
||||
if env['build'] == 'profile':
|
||||
env['debug'] = False
|
||||
env['profile'] = True
|
||||
if env['build'] == 'release':
|
||||
if env['build'] in ('release', 'opt'):
|
||||
env['debug'] = False
|
||||
env['profile'] = False
|
||||
|
||||
@@ -325,6 +328,8 @@ def generate(env):
|
||||
cppdefines += ['NDEBUG']
|
||||
if env['build'] == 'profile':
|
||||
cppdefines += ['PROFILE']
|
||||
if env['build'] in ('opt', 'profile'):
|
||||
cppdefines += ['VMX86_STATS']
|
||||
if env['platform'] in ('posix', 'linux', 'freebsd', 'darwin'):
|
||||
cppdefines += [
|
||||
'_POSIX_SOURCE',
|
||||
@@ -475,7 +480,7 @@ def generate(env):
|
||||
ccflags += [
|
||||
'/O2', # optimize for speed
|
||||
]
|
||||
if env['build'] == 'release':
|
||||
if env['build'] in ('release', 'opt'):
|
||||
if not env['clang']:
|
||||
ccflags += [
|
||||
'/GL', # enable whole program optimization
|
||||
@@ -586,7 +591,7 @@ def generate(env):
|
||||
shlinkflags += ['-Wl,--enable-stdcall-fixup']
|
||||
#shlinkflags += ['-Wl,--kill-at']
|
||||
if msvc:
|
||||
if env['build'] == 'release' and not env['clang']:
|
||||
if env['build'] in ('release', 'opt') and not env['clang']:
|
||||
# enable Link-time Code Generation
|
||||
linkflags += ['/LTCG']
|
||||
env.Append(ARFLAGS = ['/LTCG'])
|
||||
@@ -676,18 +681,6 @@ def generate(env):
|
||||
env.PkgCheckModules('XF86VIDMODE', ['xxf86vm'])
|
||||
env.PkgCheckModules('DRM', ['libdrm >= 2.4.75'])
|
||||
|
||||
if not os.path.exists("src/util/format_srgb.c"):
|
||||
print("Checking for Python Mako module (>= 0.8.0)... ", end='')
|
||||
try:
|
||||
import mako
|
||||
except ImportError:
|
||||
print("no")
|
||||
exit(1)
|
||||
if distutils.version.StrictVersion(mako.__version__) < distutils.version.StrictVersion('0.8.0'):
|
||||
print("no")
|
||||
exit(1)
|
||||
print("yes")
|
||||
|
||||
if env['x11']:
|
||||
env.Append(CPPPATH = env['X11_CPPPATH'])
|
||||
|
||||
|
@@ -99,6 +99,9 @@ def generate(env):
|
||||
return
|
||||
|
||||
env.Prepend(CPPPATH = [os.path.join(llvm_dir, 'include')])
|
||||
env.AppendUnique(CPPDEFINES = [
|
||||
'HAVE_STDINT_H',
|
||||
])
|
||||
env.Prepend(LIBPATH = [os.path.join(llvm_dir, 'lib')])
|
||||
# LIBS should match the output of `llvm-config --libs engine mcjit bitwriter x86asmprinter irreader`
|
||||
if llvm_version >= distutils.version.LooseVersion('5.0'):
|
||||
|
@@ -20,13 +20,13 @@
|
||||
# IN THE SOFTWARE.
|
||||
|
||||
.PHONY: git_sha1.h
|
||||
git_sha1.h:
|
||||
git_sha1.h: $(top_srcdir)/src/git_sha1.h.in
|
||||
@echo "updating $@"
|
||||
@$(PYTHON) $(top_srcdir)/bin/git_sha1_gen.py --output $@
|
||||
@$(PYTHON2) $(top_srcdir)/bin/git_sha1_gen.py --output $@
|
||||
|
||||
BUILT_SOURCES = git_sha1.h
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
EXTRA_DIST = meson.build
|
||||
EXTRA_DIST = git_sha1.h.in meson.build
|
||||
|
||||
SUBDIRS = . gtest util mapi/glapi/gen mapi
|
||||
|
||||
@@ -39,7 +39,6 @@ gl_HEADERS = \
|
||||
$(top_srcdir)/include/GL/gl_mangle.h
|
||||
endif
|
||||
|
||||
# TODO: When building with glvnd, glvnd itself should be providing gl.pc and the headers
|
||||
if HAVE_GLX
|
||||
glxdir = $(includedir)/GL
|
||||
glx_HEADERS = \
|
||||
|
@@ -42,6 +42,10 @@ env.Append(CPPPATH = ["#" + env['build_dir']])
|
||||
if env['platform'] != 'windows':
|
||||
SConscript('loader/SConscript')
|
||||
|
||||
# When env['gles'] is set, the targets defined in mapi/glapi/SConscript are not
|
||||
# used. libgl-xlib and libgl-gdi adapt themselves to use the targets defined
|
||||
# in mapi/glapi-shared/SConscript. mesa/SConscript also adapts itself to
|
||||
# enable OpenGL ES support.
|
||||
SConscript('mapi/glapi/gen/SConscript')
|
||||
SConscript('mapi/glapi/SConscript')
|
||||
|
||||
@@ -57,5 +61,8 @@ if not env['embedded']:
|
||||
if env['platform'] == 'haiku':
|
||||
SConscript('egl/SConscript')
|
||||
|
||||
if env['gles']:
|
||||
SConscript('mapi/shared-glapi/SConscript')
|
||||
|
||||
SConscript('gallium/SConscript')
|
||||
|
||||
|
@@ -27,6 +27,3 @@ include $(LOCAL_PATH)/Makefile.sources
|
||||
|
||||
include $(LOCAL_PATH)/Android.addrlib.mk
|
||||
include $(LOCAL_PATH)/Android.common.mk
|
||||
ifneq ($(filter radeonsi,$(BOARD_GPU_DRIVERS)),)
|
||||
include $(LOCAL_PATH)/vulkan/Android.mk
|
||||
endif
|
||||
|
@@ -24,7 +24,6 @@ ADDRLIB_LIBS = addrlib/libamdgpu_addrlib.la
|
||||
addrlib_libamdgpu_addrlib_la_CPPFLAGS = \
|
||||
$(DEFINES) \
|
||||
-I$(top_srcdir)/src/ \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(srcdir)/common \
|
||||
-I$(srcdir)/addrlib \
|
||||
-I$(srcdir)/addrlib/core \
|
||||
|
@@ -66,6 +66,6 @@ common_libamd_common_la_LIBADD = $(LIBELF_LIBS)
|
||||
|
||||
common/sid_tables.h: $(srcdir)/common/sid_tables.py $(srcdir)/common/sid.h $(srcdir)/common/gfx9d.h
|
||||
$(AM_V_at)$(MKDIR_P) $(@D)
|
||||
$(AM_V_GEN) $(PYTHON) $(srcdir)/common/sid_tables.py $(srcdir)/common/sid.h $(srcdir)/common/gfx9d.h > $@
|
||||
$(AM_V_GEN) $(PYTHON2) $(srcdir)/common/sid_tables.py $(srcdir)/common/sid.h $(srcdir)/common/gfx9d.h > $@
|
||||
|
||||
BUILT_SOURCES = $(AMD_GENERATED_FILES)
|
||||
|
@@ -36,8 +36,6 @@
|
||||
|
||||
#include "addrcommon.h"
|
||||
|
||||
#include "util/macros.h"
|
||||
|
||||
using namespace Addr;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -834,7 +832,7 @@ BOOL_32 ADDR_API ElemGetExportNorm(
|
||||
Addr::Lib* pLib = Lib::GetLib(hLib);
|
||||
BOOL_32 enabled = FALSE;
|
||||
|
||||
MAYBE_UNUSED ADDR_E_RETURNCODE returnCode = ADDR_OK;
|
||||
ADDR_E_RETURNCODE returnCode = ADDR_OK;
|
||||
|
||||
if (pLib != NULL)
|
||||
{
|
||||
|
@@ -87,10 +87,8 @@
|
||||
|
||||
#define AMDGPU_VEGA10_RANGE 0x01, 0x14
|
||||
#define AMDGPU_VEGA12_RANGE 0x14, 0x28
|
||||
#define AMDGPU_VEGA20_RANGE 0x28, 0xFF
|
||||
|
||||
#define AMDGPU_RAVEN_RANGE 0x01, 0x81
|
||||
#define AMDGPU_RAVEN2_RANGE 0x81, 0xFF
|
||||
|
||||
#define AMDGPU_EXPAND_FIX(x) x
|
||||
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
|
||||
@@ -130,9 +128,7 @@
|
||||
#define ASICREV_IS_VEGA10_P(r) ASICREV_IS(r, VEGA10)
|
||||
#define ASICREV_IS_VEGA12_P(r) ASICREV_IS(r, VEGA12)
|
||||
#define ASICREV_IS_VEGA12_p(r) ASICREV_IS(r, VEGA12)
|
||||
#define ASICREV_IS_VEGA20_P(r) ASICREV_IS(r, VEGA20)
|
||||
|
||||
#define ASICREV_IS_RAVEN(r) ASICREV_IS(r, RAVEN)
|
||||
#define ASICREV_IS_RAVEN2(r) ASICREV_IS(r, RAVEN2)
|
||||
|
||||
#endif // _AMDGPU_ASIC_ADDR_H
|
||||
|
@@ -37,8 +37,6 @@
|
||||
|
||||
#include "amdgpu_asic_addr.h"
|
||||
|
||||
#include "util/macros.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1232,7 +1230,6 @@ BOOL_32 Gfx9Lib::HwlInitGlobalParams(
|
||||
{
|
||||
ADDR_ASSERT(m_settings.isVega10 == FALSE);
|
||||
ADDR_ASSERT(m_settings.isRaven == FALSE);
|
||||
ADDR_ASSERT(m_settings.isVega20 == FALSE);
|
||||
|
||||
if (m_settings.isVega12)
|
||||
{
|
||||
@@ -1276,7 +1273,7 @@ ChipFamily Gfx9Lib::HwlConvertChipFamily(
|
||||
m_settings.isArcticIsland = 1;
|
||||
m_settings.isVega10 = ASICREV_IS_VEGA10_P(uChipRevision);
|
||||
m_settings.isVega12 = ASICREV_IS_VEGA12_P(uChipRevision);
|
||||
m_settings.isVega20 = ASICREV_IS_VEGA20_P(uChipRevision);
|
||||
|
||||
m_settings.isDce12 = 1;
|
||||
|
||||
if (m_settings.isVega10 == 0)
|
||||
@@ -1291,7 +1288,7 @@ ChipFamily Gfx9Lib::HwlConvertChipFamily(
|
||||
break;
|
||||
case FAMILY_RV:
|
||||
m_settings.isArcticIsland = 1;
|
||||
m_settings.isRaven = ASICREV_IS_RAVEN(uChipRevision) || ASICREV_IS_RAVEN2(uChipRevision);
|
||||
m_settings.isRaven = ASICREV_IS_RAVEN(uChipRevision);
|
||||
|
||||
if (m_settings.isRaven)
|
||||
{
|
||||
@@ -2472,7 +2469,7 @@ ADDR_E_RETURNCODE Gfx9Lib::HwlComputeBlock256Equation(
|
||||
// Post validation
|
||||
if (ret == ADDR_OK)
|
||||
{
|
||||
MAYBE_UNUSED Dim2d microBlockDim = Block256_2d[elementBytesLog2];
|
||||
Dim2d microBlockDim = Block256_2d[elementBytesLog2];
|
||||
ADDR_ASSERT((2u << GetMaxValidChannelIndex(pEquation->addr, 8, 0)) ==
|
||||
(microBlockDim.w * (1 << elementBytesLog2)));
|
||||
ADDR_ASSERT((2u << GetMaxValidChannelIndex(pEquation->addr, 8, 1)) == microBlockDim.h);
|
||||
@@ -3878,7 +3875,7 @@ ADDR_E_RETURNCODE Gfx9Lib::ComputeStereoInfo(
|
||||
const UINT_32 numBankBits = GetBankXorBits(blkSizeLog2);
|
||||
const UINT_32 bppLog2 = Log2(pIn->bpp >> 3);
|
||||
const UINT_32 maxYCoordBlock256 = Log2(Block256_2d[bppLog2].h) - 1;
|
||||
MAYBE_UNUSED const ADDR_EQUATION *pEqToCheck = &m_equationTable[eqIndex];
|
||||
const ADDR_EQUATION *pEqToCheck = &m_equationTable[eqIndex];
|
||||
|
||||
ADDR_ASSERT(maxYCoordBlock256 ==
|
||||
GetMaxValidChannelIndex(&pEqToCheck->addr[0], GetBlockSizeLog2(ADDR_SW_256B), 1));
|
||||
|
@@ -56,7 +56,6 @@ struct Gfx9ChipSettings
|
||||
UINT_32 isVega10 : 1;
|
||||
UINT_32 isRaven : 1;
|
||||
UINT_32 isVega12 : 1;
|
||||
UINT_32 isVega20 : 1;
|
||||
|
||||
// Display engine IP version name
|
||||
UINT_32 isDce12 : 1;
|
||||
|
@@ -57,7 +57,7 @@ libamdgpu_addrlib = static_library(
|
||||
include_directories(
|
||||
'core', 'inc/chip/gfx9', 'inc/chip/r800', 'gfx9/chip', 'r800/chip',
|
||||
),
|
||||
inc_amd_common, inc_common, inc_src,
|
||||
inc_amd_common, inc_src,
|
||||
],
|
||||
cpp_args : cpp_vis_args,
|
||||
)
|
||||
|
@@ -33,8 +33,6 @@
|
||||
|
||||
#include "egbaddrlib.h"
|
||||
|
||||
#include "util/macros.h"
|
||||
|
||||
namespace Addr
|
||||
{
|
||||
namespace V1
|
||||
@@ -981,7 +979,7 @@ BOOL_32 EgBasedLib::SanityCheckMacroTiled(
|
||||
) const
|
||||
{
|
||||
BOOL_32 valid = TRUE;
|
||||
MAYBE_UNUSED UINT_32 numPipes = HwlGetPipes(pTileInfo);
|
||||
UINT_32 numPipes = HwlGetPipes(pTileInfo);
|
||||
|
||||
switch (pTileInfo->banks)
|
||||
{
|
||||
@@ -4110,7 +4108,7 @@ UINT_64 EgBasedLib::HwlGetSizeAdjustmentMicroTiled(
|
||||
) const
|
||||
{
|
||||
UINT_64 logicalSliceSize;
|
||||
MAYBE_UNUSED UINT_64 physicalSliceSize;
|
||||
UINT_64 physicalSliceSize;
|
||||
|
||||
UINT_32 pitch = *pPitch;
|
||||
UINT_32 height = *pHeight;
|
||||
|
@@ -27,10 +27,6 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct ac_shader_reloc {
|
||||
char name[32];
|
||||
uint64_t offset;
|
||||
@@ -102,8 +98,4 @@ void ac_shader_binary_read_config(struct ac_shader_binary *binary,
|
||||
bool supports_spill);
|
||||
void ac_shader_binary_clean(struct ac_shader_binary *b);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* AC_BINARY_H */
|
||||
|
@@ -96,10 +96,9 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
struct radeon_info *info,
|
||||
struct amdgpu_gpu_info *amdinfo)
|
||||
{
|
||||
struct drm_amdgpu_info_device device_info = {};
|
||||
struct amdgpu_buffer_size_alignments alignment_info = {};
|
||||
struct drm_amdgpu_info_hw_ip dma = {}, compute = {}, uvd = {};
|
||||
struct drm_amdgpu_info_hw_ip uvd_enc = {}, vce = {}, vcn_dec = {}, vcn_jpeg = {};
|
||||
struct drm_amdgpu_info_hw_ip uvd_enc = {}, vce = {}, vcn_dec = {};
|
||||
struct drm_amdgpu_info_hw_ip vcn_enc = {}, gfx = {};
|
||||
struct amdgpu_gds_resource_info gds = {};
|
||||
uint32_t vce_version = 0, vce_feature = 0, uvd_version = 0, uvd_feature = 0;
|
||||
@@ -125,13 +124,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
return false;
|
||||
}
|
||||
|
||||
r = amdgpu_query_info(dev, AMDGPU_INFO_DEV_INFO, sizeof(device_info),
|
||||
&device_info);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_info(dev_info) failed.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
r = amdgpu_query_buffer_size_alignment(dev, &alignment_info);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_buffer_size_alignment failed.\n");
|
||||
@@ -186,14 +178,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
}
|
||||
}
|
||||
|
||||
if (info->drm_major == 3 && info->drm_minor >= 27) {
|
||||
r = amdgpu_query_hw_ip_info(dev, AMDGPU_HW_IP_VCN_JPEG, 0, &vcn_jpeg);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_hw_ip_info(vcn_jpeg) failed.\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
r = amdgpu_query_firmware_version(dev, AMDGPU_INFO_FW_GFX_ME, 0, 0,
|
||||
&info->me_fw_version,
|
||||
&info->me_fw_feature);
|
||||
@@ -263,6 +247,9 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
info->gart_size = meminfo.gtt.total_heap_size;
|
||||
info->vram_size = meminfo.vram.total_heap_size;
|
||||
info->vram_vis_size = meminfo.cpu_accessible_vram.total_heap_size;
|
||||
|
||||
info->max_alloc_size = MAX2(meminfo.vram.max_allocation,
|
||||
meminfo.gtt.max_allocation);
|
||||
} else {
|
||||
/* This is a deprecated interface, which reports usable sizes
|
||||
* (total minus pinned), but the pinned size computation is
|
||||
@@ -294,6 +281,11 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
info->gart_size = gtt.heap_size;
|
||||
info->vram_size = vram.heap_size;
|
||||
info->vram_vis_size = vram_vis.heap_size;
|
||||
|
||||
/* The kernel can split large buffers in VRAM but not in GTT, so large
|
||||
* allocations can fail or cause buffer movement failures in the kernel.
|
||||
*/
|
||||
info->max_alloc_size = MAX2(info->vram_size * 0.9, info->gart_size * 0.7);
|
||||
}
|
||||
|
||||
/* Set chip identification. */
|
||||
@@ -301,11 +293,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
info->vce_harvest_config = amdinfo->vce_harvest_config;
|
||||
|
||||
switch (info->pci_id) {
|
||||
#define CHIPSET(pci_id, cfamily) \
|
||||
case pci_id: \
|
||||
info->family = CHIP_##cfamily; \
|
||||
info->name = #cfamily; \
|
||||
break;
|
||||
#define CHIPSET(pci_id, cfamily) case pci_id: info->family = CHIP_##cfamily; break;
|
||||
#include "pci_ids/radeonsi_pci_ids.h"
|
||||
#undef CHIPSET
|
||||
|
||||
@@ -314,12 +302,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Raven2 uses the same PCI IDs as Raven1, but different revision IDs. */
|
||||
if (info->family == CHIP_RAVEN && amdinfo->chip_rev >= 0x8) {
|
||||
info->family = CHIP_RAVEN2;
|
||||
info->name = "RAVEN2";
|
||||
}
|
||||
|
||||
if (info->family >= CHIP_VEGA10)
|
||||
info->chip_class = GFX9;
|
||||
else if (info->family >= CHIP_TONGA)
|
||||
@@ -337,25 +319,15 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
info->has_dedicated_vram =
|
||||
!(amdinfo->ids_flags & AMDGPU_IDS_FLAGS_FUSION);
|
||||
|
||||
/* The kernel can split large buffers in VRAM but not in GTT, so large
|
||||
* allocations can fail or cause buffer movement failures in the kernel.
|
||||
*/
|
||||
if (info->has_dedicated_vram)
|
||||
info->max_alloc_size = info->vram_size * 0.8;
|
||||
else
|
||||
info->max_alloc_size = info->gart_size * 0.7;
|
||||
|
||||
/* Set hardware information. */
|
||||
info->gds_size = gds.gds_total_size;
|
||||
info->gds_gfx_partition_size = gds.gds_gfx_partition_size;
|
||||
/* convert the shader clock from KHz to MHz */
|
||||
info->max_shader_clock = amdinfo->max_engine_clk / 1000;
|
||||
info->num_tcc_blocks = device_info.num_tcc_blocks;
|
||||
info->max_se = amdinfo->num_shader_engines;
|
||||
info->max_sh_per_se = amdinfo->num_shader_arrays_per_engine;
|
||||
info->has_hw_decode =
|
||||
(uvd.available_rings != 0) || (vcn_dec.available_rings != 0) ||
|
||||
(vcn_jpeg.available_rings != 0);
|
||||
(uvd.available_rings != 0) || (vcn_dec.available_rings != 0);
|
||||
info->uvd_fw_version =
|
||||
uvd.available_rings ? uvd_version : 0;
|
||||
info->vce_fw_version =
|
||||
@@ -429,8 +401,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
for (j = 0; j < info->max_sh_per_se; j++)
|
||||
info->num_good_compute_units +=
|
||||
util_bitcount(amdinfo->cu_bitmap[i][j]);
|
||||
info->num_good_cu_per_sh = info->num_good_compute_units /
|
||||
(info->max_se * info->max_sh_per_se);
|
||||
|
||||
memcpy(info->si_tile_mode_array, amdinfo->gb_tile_mode,
|
||||
sizeof(amdinfo->gb_tile_mode));
|
||||
@@ -454,7 +424,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
ib_align = MAX2(ib_align, vce.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_dec.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_enc.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_jpeg.ib_start_alignment);
|
||||
assert(ib_align);
|
||||
info->ib_start_alignment = ib_align;
|
||||
|
||||
@@ -561,8 +530,6 @@ void ac_print_gpu_info(struct radeon_info *info)
|
||||
printf("Shader core info:\n");
|
||||
printf(" max_shader_clock = %i\n", info->max_shader_clock);
|
||||
printf(" num_good_compute_units = %i\n", info->num_good_compute_units);
|
||||
printf(" num_good_cu_per_sh = %i\n", info->num_good_cu_per_sh);
|
||||
printf(" num_tcc_blocks = %i\n", info->num_tcc_blocks);
|
||||
printf(" max_se = %i\n", info->max_se);
|
||||
printf(" max_sh_per_se = %i\n", info->max_sh_per_se);
|
||||
|
||||
@@ -659,10 +626,9 @@ ac_get_gs_table_depth(enum chip_class chip_class, enum radeon_family family)
|
||||
void
|
||||
ac_get_raster_config(struct radeon_info *info,
|
||||
uint32_t *raster_config_p,
|
||||
uint32_t *raster_config_1_p,
|
||||
uint32_t *se_tile_repeat_p)
|
||||
uint32_t *raster_config_1_p)
|
||||
{
|
||||
unsigned raster_config, raster_config_1, se_tile_repeat;
|
||||
unsigned raster_config, raster_config_1;
|
||||
|
||||
switch (info->family) {
|
||||
/* 1 SE / 1 RB */
|
||||
@@ -739,16 +705,8 @@ ac_get_raster_config(struct radeon_info *info,
|
||||
raster_config_1 = 0x0000002a;
|
||||
}
|
||||
|
||||
unsigned se_width = 8 << G_028350_SE_XSEL_GFX6(raster_config);
|
||||
unsigned se_height = 8 << G_028350_SE_YSEL_GFX6(raster_config);
|
||||
|
||||
/* I don't know how to calculate this, though this is probably a good guess. */
|
||||
se_tile_repeat = MAX2(se_width, se_height) * info->max_se;
|
||||
|
||||
*raster_config_p = raster_config;
|
||||
*raster_config_1_p = raster_config_1;
|
||||
if (se_tile_repeat_p)
|
||||
*se_tile_repeat_p = se_tile_repeat;
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -47,7 +47,6 @@ struct radeon_info {
|
||||
uint32_t pci_func;
|
||||
|
||||
/* Device info. */
|
||||
const char *name;
|
||||
uint32_t pci_id;
|
||||
enum radeon_family family;
|
||||
enum chip_class chip_class;
|
||||
@@ -116,8 +115,6 @@ struct radeon_info {
|
||||
uint32_t r600_max_quad_pipes; /* wave size / 16 */
|
||||
uint32_t max_shader_clock;
|
||||
uint32_t num_good_compute_units;
|
||||
uint32_t num_good_cu_per_sh;
|
||||
uint32_t num_tcc_blocks;
|
||||
uint32_t max_se; /* shader engines */
|
||||
uint32_t max_sh_per_se; /* shader arrays per shader engine */
|
||||
|
||||
@@ -150,8 +147,7 @@ void ac_print_gpu_info(struct radeon_info *info);
|
||||
int ac_get_gs_table_depth(enum chip_class chip_class, enum radeon_family family);
|
||||
void ac_get_raster_config(struct radeon_info *info,
|
||||
uint32_t *raster_config_p,
|
||||
uint32_t *raster_config_1_p,
|
||||
uint32_t *se_tile_repeat_p);
|
||||
uint32_t *raster_config_1_p);
|
||||
void ac_get_harvested_configs(struct radeon_info *info,
|
||||
unsigned raster_config,
|
||||
unsigned *cik_raster_config_1_p,
|
||||
|
@@ -57,15 +57,15 @@ struct ac_llvm_flow {
|
||||
* The caller is responsible for initializing ctx::module and ctx::builder.
|
||||
*/
|
||||
void
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx,
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context,
|
||||
enum chip_class chip_class, enum radeon_family family)
|
||||
{
|
||||
LLVMValueRef args[1];
|
||||
|
||||
ctx->context = LLVMContextCreate();
|
||||
|
||||
ctx->chip_class = chip_class;
|
||||
ctx->family = family;
|
||||
|
||||
ctx->context = context;
|
||||
ctx->module = NULL;
|
||||
ctx->builder = NULL;
|
||||
|
||||
@@ -87,8 +87,6 @@ ac_llvm_context_init(struct ac_llvm_context *ctx,
|
||||
ctx->v4f32 = LLVMVectorType(ctx->f32, 4);
|
||||
ctx->v8i32 = LLVMVectorType(ctx->i32, 8);
|
||||
|
||||
ctx->i16_0 = LLVMConstInt(ctx->i16, 0, false);
|
||||
ctx->i16_1 = LLVMConstInt(ctx->i16, 1, false);
|
||||
ctx->i32_0 = LLVMConstInt(ctx->i32, 0, false);
|
||||
ctx->i32_1 = LLVMConstInt(ctx->i32, 1, false);
|
||||
ctx->i64_0 = LLVMConstInt(ctx->i64, 0, false);
|
||||
@@ -177,14 +175,12 @@ ac_get_type_size(LLVMTypeRef type)
|
||||
switch (kind) {
|
||||
case LLVMIntegerTypeKind:
|
||||
return LLVMGetIntTypeWidth(type) / 8;
|
||||
case LLVMHalfTypeKind:
|
||||
return 2;
|
||||
case LLVMFloatTypeKind:
|
||||
return 4;
|
||||
case LLVMDoubleTypeKind:
|
||||
return 8;
|
||||
case LLVMPointerTypeKind:
|
||||
if (LLVMGetPointerAddressSpace(type) == AC_ADDR_SPACE_CONST_32BIT)
|
||||
if (LLVMGetPointerAddressSpace(type) == AC_CONST_32BIT_ADDR_SPACE)
|
||||
return 4;
|
||||
return 8;
|
||||
case LLVMVectorTypeKind:
|
||||
@@ -324,9 +320,6 @@ void ac_build_type_name_for_intr(LLVMTypeRef type, char *buf, unsigned bufsize)
|
||||
case LLVMIntegerTypeKind:
|
||||
snprintf(buf, bufsize, "i%d", LLVMGetIntTypeWidth(elem_type));
|
||||
break;
|
||||
case LLVMHalfTypeKind:
|
||||
snprintf(buf, bufsize, "f16");
|
||||
break;
|
||||
case LLVMFloatTypeKind:
|
||||
snprintf(buf, bufsize, "f32");
|
||||
break;
|
||||
@@ -350,12 +343,6 @@ ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
return phi;
|
||||
}
|
||||
|
||||
void ac_build_s_barrier(struct ac_llvm_context *ctx)
|
||||
{
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.s.barrier", ctx->voidt, NULL,
|
||||
0, AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
/* Prevent optimizations (at least of memory accesses) across the current
|
||||
* point in the program by emitting empty inline assembly that is marked as
|
||||
* having side effects.
|
||||
@@ -523,43 +510,6 @@ ac_build_gather_values(struct ac_llvm_context *ctx,
|
||||
return ac_build_gather_values_extended(ctx, values, value_count, 1, false, false);
|
||||
}
|
||||
|
||||
/* Expand a scalar or vector to <dst_channels x type> by filling the remaining
|
||||
* channels with undef. Extract at most src_channels components from the input.
|
||||
*/
|
||||
LLVMValueRef ac_build_expand(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef value,
|
||||
unsigned src_channels,
|
||||
unsigned dst_channels)
|
||||
{
|
||||
LLVMTypeRef elemtype;
|
||||
LLVMValueRef chan[dst_channels];
|
||||
|
||||
if (LLVMGetTypeKind(LLVMTypeOf(value)) == LLVMVectorTypeKind) {
|
||||
unsigned vec_size = LLVMGetVectorSize(LLVMTypeOf(value));
|
||||
|
||||
if (src_channels == dst_channels && vec_size == dst_channels)
|
||||
return value;
|
||||
|
||||
src_channels = MIN2(src_channels, vec_size);
|
||||
|
||||
for (unsigned i = 0; i < src_channels; i++)
|
||||
chan[i] = ac_llvm_extract_elem(ctx, value, i);
|
||||
|
||||
elemtype = LLVMGetElementType(LLVMTypeOf(value));
|
||||
} else {
|
||||
if (src_channels) {
|
||||
assert(src_channels == 1);
|
||||
chan[0] = value;
|
||||
}
|
||||
elemtype = LLVMTypeOf(value);
|
||||
}
|
||||
|
||||
for (unsigned i = src_channels; i < dst_channels; i++)
|
||||
chan[i] = LLVMGetUndef(elemtype);
|
||||
|
||||
return ac_build_gather_values(ctx, chan, dst_channels);
|
||||
}
|
||||
|
||||
/* Expand a scalar or vector to <4 x type> by filling the remaining channels
|
||||
* with undef. Extract at most num_channels components from the input.
|
||||
*/
|
||||
@@ -567,23 +517,32 @@ LLVMValueRef ac_build_expand_to_vec4(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef value,
|
||||
unsigned num_channels)
|
||||
{
|
||||
return ac_build_expand(ctx, value, num_channels, 4);
|
||||
}
|
||||
LLVMTypeRef elemtype;
|
||||
LLVMValueRef chan[4];
|
||||
|
||||
LLVMValueRef ac_build_round(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
unsigned type_size = ac_get_type_size(LLVMTypeOf(value));
|
||||
const char *name;
|
||||
if (LLVMGetTypeKind(LLVMTypeOf(value)) == LLVMVectorTypeKind) {
|
||||
unsigned vec_size = LLVMGetVectorSize(LLVMTypeOf(value));
|
||||
num_channels = MIN2(num_channels, vec_size);
|
||||
|
||||
if (type_size == 2)
|
||||
name = "llvm.rint.f16";
|
||||
else if (type_size == 4)
|
||||
name = "llvm.rint.f32";
|
||||
else
|
||||
name = "llvm.rint.f64";
|
||||
if (num_channels >= 4)
|
||||
return value;
|
||||
|
||||
return ac_build_intrinsic(ctx, name, LLVMTypeOf(value), &value, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
for (unsigned i = 0; i < num_channels; i++)
|
||||
chan[i] = ac_llvm_extract_elem(ctx, value, i);
|
||||
|
||||
elemtype = LLVMGetElementType(LLVMTypeOf(value));
|
||||
} else {
|
||||
if (num_channels) {
|
||||
assert(num_channels == 1);
|
||||
chan[0] = value;
|
||||
}
|
||||
elemtype = LLVMTypeOf(value);
|
||||
}
|
||||
|
||||
while (num_channels < 4)
|
||||
chan[num_channels++] = LLVMGetUndef(elemtype);
|
||||
|
||||
return ac_build_gather_values(ctx, chan, 4);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
@@ -591,15 +550,7 @@ ac_build_fdiv(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef den)
|
||||
{
|
||||
/* If we do (num / den), LLVM >= 7.0 does:
|
||||
* return num * v_rcp_f32(den * (fabs(den) > 0x1.0p+96f ? 0x1.0p-32f : 1.0f));
|
||||
*
|
||||
* If we do (num * (1 / den)), LLVM does:
|
||||
* return num * v_rcp_f32(den);
|
||||
*/
|
||||
LLVMValueRef one = LLVMTypeOf(num) == ctx->f64 ? ctx->f64_1 : ctx->f32_1;
|
||||
LLVMValueRef rcp = LLVMBuildFDiv(ctx->builder, one, den, "");
|
||||
LLVMValueRef ret = LLVMBuildFMul(ctx->builder, num, rcp, "");
|
||||
LLVMValueRef ret = LLVMBuildFDiv(ctx->builder, num, den, "");
|
||||
|
||||
/* Use v_rcp_f32 instead of precise division. */
|
||||
if (!LLVMIsConstant(ret))
|
||||
@@ -607,67 +558,6 @@ ac_build_fdiv(struct ac_llvm_context *ctx,
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* See fast_idiv_by_const.h. */
|
||||
/* Set: increment = util_fast_udiv_info::increment ? multiplier : 0; */
|
||||
LLVMValueRef ac_build_fast_udiv(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef multiplier,
|
||||
LLVMValueRef pre_shift,
|
||||
LLVMValueRef post_shift,
|
||||
LLVMValueRef increment)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
|
||||
num = LLVMBuildLShr(builder, num, pre_shift, "");
|
||||
num = LLVMBuildMul(builder,
|
||||
LLVMBuildZExt(builder, num, ctx->i64, ""),
|
||||
LLVMBuildZExt(builder, multiplier, ctx->i64, ""), "");
|
||||
num = LLVMBuildAdd(builder, num,
|
||||
LLVMBuildZExt(builder, increment, ctx->i64, ""), "");
|
||||
num = LLVMBuildLShr(builder, num, LLVMConstInt(ctx->i64, 32, 0), "");
|
||||
num = LLVMBuildTrunc(builder, num, ctx->i32, "");
|
||||
return LLVMBuildLShr(builder, num, post_shift, "");
|
||||
}
|
||||
|
||||
/* See fast_idiv_by_const.h. */
|
||||
/* If num != UINT_MAX, this more efficient version can be used. */
|
||||
/* Set: increment = util_fast_udiv_info::increment; */
|
||||
LLVMValueRef ac_build_fast_udiv_nuw(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef multiplier,
|
||||
LLVMValueRef pre_shift,
|
||||
LLVMValueRef post_shift,
|
||||
LLVMValueRef increment)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
|
||||
num = LLVMBuildLShr(builder, num, pre_shift, "");
|
||||
num = LLVMBuildNUWAdd(builder, num, increment, "");
|
||||
num = LLVMBuildMul(builder,
|
||||
LLVMBuildZExt(builder, num, ctx->i64, ""),
|
||||
LLVMBuildZExt(builder, multiplier, ctx->i64, ""), "");
|
||||
num = LLVMBuildLShr(builder, num, LLVMConstInt(ctx->i64, 32, 0), "");
|
||||
num = LLVMBuildTrunc(builder, num, ctx->i32, "");
|
||||
return LLVMBuildLShr(builder, num, post_shift, "");
|
||||
}
|
||||
|
||||
/* See fast_idiv_by_const.h. */
|
||||
/* Both operands must fit in 31 bits and the divisor must not be 1. */
|
||||
LLVMValueRef ac_build_fast_udiv_u31_d_not_one(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef multiplier,
|
||||
LLVMValueRef post_shift)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
|
||||
num = LLVMBuildMul(builder,
|
||||
LLVMBuildZExt(builder, num, ctx->i64, ""),
|
||||
LLVMBuildZExt(builder, multiplier, ctx->i64, ""), "");
|
||||
num = LLVMBuildLShr(builder, num, LLVMConstInt(ctx->i64, 32, 0), "");
|
||||
num = LLVMBuildTrunc(builder, num, ctx->i32, "");
|
||||
return LLVMBuildLShr(builder, num, post_shift, "");
|
||||
}
|
||||
|
||||
/* Coordinates for cube map selection. sc, tc, and ma are as in Table 8.27
|
||||
* of the OpenGL 4.5 (Compatibility Profile) specification, except ma is
|
||||
* already multiplied by two. id is the cube face number.
|
||||
@@ -765,7 +655,8 @@ ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef invma;
|
||||
|
||||
if (is_array && !is_lod) {
|
||||
LLVMValueRef tmp = ac_build_round(ctx, coords_arg[3]);
|
||||
LLVMValueRef tmp = coords_arg[3];
|
||||
tmp = ac_build_intrinsic(ctx, "llvm.rint.f32", ctx->f32, &tmp, 1, 0);
|
||||
|
||||
/* Section 8.9 (Texture Functions) of the GLSL 4.50 spec says:
|
||||
*
|
||||
@@ -860,7 +751,8 @@ ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
if (is_array) {
|
||||
/* for cube arrays coord.z = coord.w(array_index) * 8 + face */
|
||||
/* coords_arg.w component - array_index for cube arrays */
|
||||
coords[2] = ac_build_fmad(ctx, coords_arg[3], LLVMConstReal(ctx->f32, 8.0), coords[2]);
|
||||
LLVMValueRef tmp = LLVMBuildFMul(ctx->builder, coords_arg[3], LLVMConstReal(ctx->f32, 8.0), "");
|
||||
coords[2] = LLVMBuildFAdd(ctx->builder, tmp, coords[2], "");
|
||||
}
|
||||
|
||||
memcpy(coords_arg, coords, sizeof(coords));
|
||||
@@ -920,18 +812,11 @@ ac_build_gep0(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef index)
|
||||
{
|
||||
LLVMValueRef indices[2] = {
|
||||
ctx->i32_0,
|
||||
LLVMConstInt(ctx->i32, 0, 0),
|
||||
index,
|
||||
};
|
||||
return LLVMBuildGEP(ctx->builder, base_ptr, indices, 2, "");
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_pointer_add(struct ac_llvm_context *ctx, LLVMValueRef ptr,
|
||||
LLVMValueRef index)
|
||||
{
|
||||
return LLVMBuildPointerCast(ctx->builder,
|
||||
ac_build_gep0(ctx, ptr, index),
|
||||
LLVMTypeOf(ptr), "");
|
||||
return LLVMBuildGEP(ctx->builder, base_ptr,
|
||||
indices, 2, "");
|
||||
}
|
||||
|
||||
void
|
||||
@@ -952,39 +837,14 @@ ac_build_indexed_store(struct ac_llvm_context *ctx,
|
||||
* \param uniform Whether the base_ptr and index can be assumed to be
|
||||
* dynamically uniform (i.e. load to an SGPR)
|
||||
* \param invariant Whether the load is invariant (no other opcodes affect it)
|
||||
* \param no_unsigned_wraparound
|
||||
* For all possible re-associations and re-distributions of an expression
|
||||
* "base_ptr + index * elemsize" into "addr + offset" (excluding GEPs
|
||||
* without inbounds in base_ptr), this parameter is true if "addr + offset"
|
||||
* does not result in an unsigned integer wraparound. This is used for
|
||||
* optimal code generation of 32-bit pointer arithmetic.
|
||||
*
|
||||
* For example, a 32-bit immediate offset that causes a 32-bit unsigned
|
||||
* integer wraparound can't be an imm offset in s_load_dword, because
|
||||
* the instruction performs "addr + offset" in 64 bits.
|
||||
*
|
||||
* Expected usage for bindless textures by chaining GEPs:
|
||||
* // possible unsigned wraparound, don't use InBounds:
|
||||
* ptr1 = LLVMBuildGEP(base_ptr, index);
|
||||
* image = load(ptr1); // becomes "s_load ptr1, 0"
|
||||
*
|
||||
* ptr2 = LLVMBuildInBoundsGEP(ptr1, 32 / elemsize);
|
||||
* sampler = load(ptr2); // becomes "s_load ptr1, 32" thanks to InBounds
|
||||
*/
|
||||
static LLVMValueRef
|
||||
ac_build_load_custom(struct ac_llvm_context *ctx, LLVMValueRef base_ptr,
|
||||
LLVMValueRef index, bool uniform, bool invariant,
|
||||
bool no_unsigned_wraparound)
|
||||
LLVMValueRef index, bool uniform, bool invariant)
|
||||
{
|
||||
LLVMValueRef pointer, result;
|
||||
LLVMValueRef indices[2] = {ctx->i32_0, index};
|
||||
|
||||
if (no_unsigned_wraparound &&
|
||||
LLVMGetPointerAddressSpace(LLVMTypeOf(base_ptr)) == AC_ADDR_SPACE_CONST_32BIT)
|
||||
pointer = LLVMBuildInBoundsGEP(ctx->builder, base_ptr, indices, 2, "");
|
||||
else
|
||||
pointer = LLVMBuildGEP(ctx->builder, base_ptr, indices, 2, "");
|
||||
|
||||
pointer = ac_build_gep0(ctx, base_ptr, index);
|
||||
if (uniform)
|
||||
LLVMSetMetadata(pointer, ctx->uniform_md_kind, ctx->empty_md);
|
||||
result = LLVMBuildLoad(ctx->builder, pointer, "");
|
||||
@@ -996,28 +856,19 @@ ac_build_load_custom(struct ac_llvm_context *ctx, LLVMValueRef base_ptr,
|
||||
LLVMValueRef ac_build_load(struct ac_llvm_context *ctx, LLVMValueRef base_ptr,
|
||||
LLVMValueRef index)
|
||||
{
|
||||
return ac_build_load_custom(ctx, base_ptr, index, false, false, false);
|
||||
return ac_build_load_custom(ctx, base_ptr, index, false, false);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_load_invariant(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index)
|
||||
{
|
||||
return ac_build_load_custom(ctx, base_ptr, index, false, true, false);
|
||||
return ac_build_load_custom(ctx, base_ptr, index, false, true);
|
||||
}
|
||||
|
||||
/* This assumes that there is no unsigned integer wraparound during the address
|
||||
* computation, excluding all GEPs within base_ptr. */
|
||||
LLVMValueRef ac_build_load_to_sgpr(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index)
|
||||
{
|
||||
return ac_build_load_custom(ctx, base_ptr, index, true, true, true);
|
||||
}
|
||||
|
||||
/* See ac_build_load_custom() documentation. */
|
||||
LLVMValueRef ac_build_load_to_sgpr_uint_wraparound(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index)
|
||||
{
|
||||
return ac_build_load_custom(ctx, base_ptr, index, true, true, false);
|
||||
return ac_build_load_custom(ctx, base_ptr, index, true, true);
|
||||
}
|
||||
|
||||
/* TBUFFER_STORE_FORMAT_{X,XY,XYZ,XYZW} <- the suffix is selected by num_channels=1..4.
|
||||
@@ -1076,7 +927,7 @@ ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef args[] = {
|
||||
ac_to_float(ctx, vdata),
|
||||
LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
|
||||
ctx->i32_0,
|
||||
LLVMConstInt(ctx->i32, 0, 0),
|
||||
offset,
|
||||
LLVMConstInt(ctx->i1, glc, 0),
|
||||
LLVMConstInt(ctx->i1, slc, 0),
|
||||
@@ -1104,8 +955,8 @@ ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef args[] = {
|
||||
vdata,
|
||||
LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
|
||||
ctx->i32_0,
|
||||
voffset ? voffset : ctx->i32_0,
|
||||
LLVMConstInt(ctx->i32, 0, 0),
|
||||
voffset ? voffset : LLVMConstInt(ctx->i32, 0, 0),
|
||||
soffset,
|
||||
LLVMConstInt(ctx->i32, inst_offset, 0),
|
||||
LLVMConstInt(ctx->i32, dfmt[num_channels - 1], 0),
|
||||
@@ -1137,7 +988,7 @@ ac_build_buffer_load_common(struct ac_llvm_context *ctx,
|
||||
{
|
||||
LLVMValueRef args[] = {
|
||||
LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
|
||||
vindex ? vindex : ctx->i32_0,
|
||||
vindex ? vindex : LLVMConstInt(ctx->i32, 0, 0),
|
||||
voffset,
|
||||
LLVMConstInt(ctx->i1, glc, 0),
|
||||
LLVMConstInt(ctx->i1, slc, 0)
|
||||
@@ -1232,7 +1083,7 @@ LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
bool can_speculate)
|
||||
{
|
||||
LLVMValueRef elem_count = LLVMBuildExtractElement(ctx->builder, rsrc, LLVMConstInt(ctx->i32, 2, 0), "");
|
||||
LLVMValueRef stride = LLVMBuildExtractElement(ctx->builder, rsrc, ctx->i32_1, "");
|
||||
LLVMValueRef stride = LLVMBuildExtractElement(ctx->builder, rsrc, LLVMConstInt(ctx->i32, 1, 0), "");
|
||||
stride = LLVMBuildLShr(ctx->builder, stride, LLVMConstInt(ctx->i32, 16, 0), "");
|
||||
|
||||
LLVMValueRef new_elem_count = LLVMBuildSelect(ctx->builder,
|
||||
@@ -1247,32 +1098,6 @@ LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
can_speculate, true);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
LLVMValueRef soffset,
|
||||
LLVMValueRef immoffset,
|
||||
LLVMValueRef glc)
|
||||
{
|
||||
const char *name = "llvm.amdgcn.tbuffer.load.i32";
|
||||
LLVMTypeRef type = ctx->i32;
|
||||
LLVMValueRef params[] = {
|
||||
rsrc,
|
||||
vindex,
|
||||
voffset,
|
||||
soffset,
|
||||
immoffset,
|
||||
LLVMConstInt(ctx->i32, V_008F0C_BUF_DATA_FORMAT_16, false),
|
||||
LLVMConstInt(ctx->i32, V_008F0C_BUF_NUM_FORMAT_UINT, false),
|
||||
glc,
|
||||
ctx->i1false,
|
||||
};
|
||||
LLVMValueRef res = ac_build_intrinsic(ctx, name, type, params, 9, 0);
|
||||
return LLVMBuildTrunc(ctx->builder, res, ctx->i16, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Set range metadata on an instruction. This can only be used on load and
|
||||
* call instructions. If you know an instruction can only produce the values
|
||||
@@ -1300,7 +1125,7 @@ ac_get_thread_id(struct ac_llvm_context *ctx)
|
||||
|
||||
LLVMValueRef tid_args[2];
|
||||
tid_args[0] = LLVMConstInt(ctx->i32, 0xffffffff, false);
|
||||
tid_args[1] = ctx->i32_0;
|
||||
tid_args[1] = LLVMConstInt(ctx->i32, 0, false);
|
||||
tid_args[1] = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.mbcnt.lo", ctx->i32,
|
||||
tid_args, 2, AC_FUNC_ATTR_READNONE);
|
||||
@@ -1467,7 +1292,7 @@ ac_build_imsb(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef all_ones = LLVMConstInt(ctx->i32, -1, true);
|
||||
LLVMValueRef cond = LLVMBuildOr(ctx->builder,
|
||||
LLVMBuildICmp(ctx->builder, LLVMIntEQ,
|
||||
arg, ctx->i32_0, ""),
|
||||
arg, LLVMConstInt(ctx->i32, 0, 0), ""),
|
||||
LLVMBuildICmp(ctx->builder, LLVMIntEQ,
|
||||
arg, all_ones, ""), "");
|
||||
|
||||
@@ -1483,31 +1308,17 @@ ac_build_umsb(struct ac_llvm_context *ctx,
|
||||
LLVMTypeRef type;
|
||||
LLVMValueRef highest_bit;
|
||||
LLVMValueRef zero;
|
||||
unsigned bitsize;
|
||||
|
||||
bitsize = ac_get_elem_bits(ctx, LLVMTypeOf(arg));
|
||||
switch (bitsize) {
|
||||
case 64:
|
||||
if (ac_get_elem_bits(ctx, LLVMTypeOf(arg)) == 64) {
|
||||
intrin_name = "llvm.ctlz.i64";
|
||||
type = ctx->i64;
|
||||
highest_bit = LLVMConstInt(ctx->i64, 63, false);
|
||||
zero = ctx->i64_0;
|
||||
break;
|
||||
case 32:
|
||||
} else {
|
||||
intrin_name = "llvm.ctlz.i32";
|
||||
type = ctx->i32;
|
||||
highest_bit = LLVMConstInt(ctx->i32, 31, false);
|
||||
zero = ctx->i32_0;
|
||||
break;
|
||||
case 16:
|
||||
intrin_name = "llvm.ctlz.i16";
|
||||
type = ctx->i16;
|
||||
highest_bit = LLVMConstInt(ctx->i16, 15, false);
|
||||
zero = ctx->i16_0;
|
||||
break;
|
||||
default:
|
||||
unreachable(!"invalid bitsize");
|
||||
break;
|
||||
}
|
||||
|
||||
LLVMValueRef params[2] = {
|
||||
@@ -2008,29 +1819,90 @@ LLVMValueRef ac_build_cvt_pkrtz_f16(struct ac_llvm_context *ctx,
|
||||
{
|
||||
LLVMTypeRef v2f16 =
|
||||
LLVMVectorType(LLVMHalfTypeInContext(ctx->context), 2);
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pkrtz",
|
||||
v2f16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
}
|
||||
|
||||
return ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pkrtz", v2f16,
|
||||
args, 2, AC_FUNC_ATTR_READNONE);
|
||||
/* Upper 16 bits must be zero. */
|
||||
static LLVMValueRef ac_llvm_pack_two_int16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef val[2])
|
||||
{
|
||||
return LLVMBuildOr(ctx->builder, val[0],
|
||||
LLVMBuildShl(ctx->builder, val[1],
|
||||
LLVMConstInt(ctx->i32, 16, 0),
|
||||
""), "");
|
||||
}
|
||||
|
||||
/* Upper 16 bits are ignored and will be dropped. */
|
||||
static LLVMValueRef ac_llvm_pack_two_int32_as_int16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef val[2])
|
||||
{
|
||||
LLVMValueRef v[2] = {
|
||||
LLVMBuildAnd(ctx->builder, val[0],
|
||||
LLVMConstInt(ctx->i32, 0xffff, 0), ""),
|
||||
val[1],
|
||||
};
|
||||
return ac_llvm_pack_two_int16(ctx, v);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_cvt_pknorm_i16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef args[2])
|
||||
{
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pknorm.i16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
if (HAVE_LLVM >= 0x0600) {
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pknorm.i16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
}
|
||||
|
||||
LLVMValueRef val[2];
|
||||
|
||||
for (int chan = 0; chan < 2; chan++) {
|
||||
/* Clamp between [-1, 1]. */
|
||||
val[chan] = ac_build_fmin(ctx, args[chan], ctx->f32_1);
|
||||
val[chan] = ac_build_fmax(ctx, val[chan], LLVMConstReal(ctx->f32, -1));
|
||||
/* Convert to a signed integer in [-32767, 32767]. */
|
||||
val[chan] = LLVMBuildFMul(ctx->builder, val[chan],
|
||||
LLVMConstReal(ctx->f32, 32767), "");
|
||||
/* If positive, add 0.5, else add -0.5. */
|
||||
val[chan] = LLVMBuildFAdd(ctx->builder, val[chan],
|
||||
LLVMBuildSelect(ctx->builder,
|
||||
LLVMBuildFCmp(ctx->builder, LLVMRealOGE,
|
||||
val[chan], ctx->f32_0, ""),
|
||||
LLVMConstReal(ctx->f32, 0.5),
|
||||
LLVMConstReal(ctx->f32, -0.5), ""), "");
|
||||
val[chan] = LLVMBuildFPToSI(ctx->builder, val[chan], ctx->i32, "");
|
||||
}
|
||||
return ac_llvm_pack_two_int32_as_int16(ctx, val);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_cvt_pknorm_u16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef args[2])
|
||||
{
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pknorm.u16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
if (HAVE_LLVM >= 0x0600) {
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pknorm.u16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
}
|
||||
|
||||
LLVMValueRef val[2];
|
||||
|
||||
for (int chan = 0; chan < 2; chan++) {
|
||||
val[chan] = ac_build_clamp(ctx, args[chan]);
|
||||
val[chan] = LLVMBuildFMul(ctx->builder, val[chan],
|
||||
LLVMConstReal(ctx->f32, 65535), "");
|
||||
val[chan] = LLVMBuildFAdd(ctx->builder, val[chan],
|
||||
LLVMConstReal(ctx->f32, 0.5), "");
|
||||
val[chan] = LLVMBuildFPToUI(ctx->builder, val[chan],
|
||||
ctx->i32, "");
|
||||
}
|
||||
return ac_llvm_pack_two_int32_as_int16(ctx, val);
|
||||
}
|
||||
|
||||
/* The 8-bit and 10-bit clamping is for HW workarounds. */
|
||||
@@ -2047,9 +1919,10 @@ LLVMValueRef ac_build_cvt_pk_i16(struct ac_llvm_context *ctx,
|
||||
bits != 10 ? max_rgb : ctx->i32_1;
|
||||
LLVMValueRef min_alpha =
|
||||
bits != 10 ? min_rgb : LLVMConstInt(ctx->i32, -2, 0);
|
||||
bool has_intrinsic = HAVE_LLVM >= 0x0600;
|
||||
|
||||
/* Clamp. */
|
||||
if (bits != 16) {
|
||||
if (!has_intrinsic || bits != 16) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
bool alpha = hi && i == 1;
|
||||
args[i] = ac_build_imin(ctx, args[i],
|
||||
@@ -2059,11 +1932,15 @@ LLVMValueRef ac_build_cvt_pk_i16(struct ac_llvm_context *ctx,
|
||||
}
|
||||
}
|
||||
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pk.i16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
if (has_intrinsic) {
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pk.i16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
}
|
||||
|
||||
return ac_llvm_pack_two_int32_as_int16(ctx, args);
|
||||
}
|
||||
|
||||
/* The 8-bit and 10-bit clamping is for HW workarounds. */
|
||||
@@ -2076,9 +1953,10 @@ LLVMValueRef ac_build_cvt_pk_u16(struct ac_llvm_context *ctx,
|
||||
bits == 8 ? 255 : bits == 10 ? 1023 : 65535, 0);
|
||||
LLVMValueRef max_alpha =
|
||||
bits != 10 ? max_rgb : LLVMConstInt(ctx->i32, 3, 0);
|
||||
bool has_intrinsic = HAVE_LLVM >= 0x0600;
|
||||
|
||||
/* Clamp. */
|
||||
if (bits != 16) {
|
||||
if (!has_intrinsic || bits != 16) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
bool alpha = hi && i == 1;
|
||||
args[i] = ac_build_umin(ctx, args[i],
|
||||
@@ -2086,23 +1964,37 @@ LLVMValueRef ac_build_cvt_pk_u16(struct ac_llvm_context *ctx,
|
||||
}
|
||||
}
|
||||
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pk.u16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
if (has_intrinsic) {
|
||||
LLVMValueRef res =
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.cvt.pk.u16",
|
||||
ctx->v2i16, args, 2,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
return LLVMBuildBitCast(ctx->builder, res, ctx->i32, "");
|
||||
}
|
||||
|
||||
return ac_llvm_pack_two_int16(ctx, args);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_wqm_vote(struct ac_llvm_context *ctx, LLVMValueRef i1)
|
||||
{
|
||||
assert(HAVE_LLVM >= 0x0600);
|
||||
return ac_build_intrinsic(ctx, "llvm.amdgcn.wqm.vote", ctx->i1,
|
||||
&i1, 1, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
void ac_build_kill_if_false(struct ac_llvm_context *ctx, LLVMValueRef i1)
|
||||
{
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.kill", ctx->voidt,
|
||||
&i1, 1, 0);
|
||||
if (HAVE_LLVM >= 0x0600) {
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.kill", ctx->voidt,
|
||||
&i1, 1, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
LLVMValueRef value = LLVMBuildSelect(ctx->builder, i1,
|
||||
LLVMConstReal(ctx->f32, 1),
|
||||
LLVMConstReal(ctx->f32, -1), "");
|
||||
ac_build_intrinsic(ctx, "llvm.AMDGPU.kill", ctx->voidt,
|
||||
&value, 1, AC_FUNC_ATTR_LEGACY);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_bfe(struct ac_llvm_context *ctx, LLVMValueRef input,
|
||||
@@ -2122,20 +2014,6 @@ LLVMValueRef ac_build_bfe(struct ac_llvm_context *ctx, LLVMValueRef input,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_imad(struct ac_llvm_context *ctx, LLVMValueRef s0,
|
||||
LLVMValueRef s1, LLVMValueRef s2)
|
||||
{
|
||||
return LLVMBuildAdd(ctx->builder,
|
||||
LLVMBuildMul(ctx->builder, s0, s1, ""), s2, "");
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_fmad(struct ac_llvm_context *ctx, LLVMValueRef s0,
|
||||
LLVMValueRef s1, LLVMValueRef s2)
|
||||
{
|
||||
return LLVMBuildFAdd(ctx->builder,
|
||||
LLVMBuildFMul(ctx->builder, s0, s1, ""), s2, "");
|
||||
}
|
||||
|
||||
void ac_build_waitcnt(struct ac_llvm_context *ctx, unsigned simm16)
|
||||
{
|
||||
LLVMValueRef args[1] = {
|
||||
@@ -2173,25 +2051,14 @@ LLVMValueRef ac_build_isign(struct ac_llvm_context *ctx, LLVMValueRef src0,
|
||||
LLVMValueRef cmp, val, zero, one;
|
||||
LLVMTypeRef type;
|
||||
|
||||
switch (bitsize) {
|
||||
case 64:
|
||||
type = ctx->i64;
|
||||
zero = ctx->i64_0;
|
||||
one = ctx->i64_1;
|
||||
break;
|
||||
case 32:
|
||||
if (bitsize == 32) {
|
||||
type = ctx->i32;
|
||||
zero = ctx->i32_0;
|
||||
one = ctx->i32_1;
|
||||
break;
|
||||
case 16:
|
||||
type = ctx->i16;
|
||||
zero = ctx->i16_0;
|
||||
one = ctx->i16_1;
|
||||
break;
|
||||
default:
|
||||
unreachable(!"invalid bitsize");
|
||||
break;
|
||||
} else {
|
||||
type = ctx->i64;
|
||||
zero = ctx->i64_0;
|
||||
one = ctx->i64_1;
|
||||
}
|
||||
|
||||
cmp = LLVMBuildICmp(ctx->builder, LLVMIntSGT, src0, zero, "");
|
||||
@@ -2224,66 +2091,6 @@ LLVMValueRef ac_build_fsign(struct ac_llvm_context *ctx, LLVMValueRef src0,
|
||||
return val;
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_bit_count(struct ac_llvm_context *ctx, LLVMValueRef src0)
|
||||
{
|
||||
LLVMValueRef result;
|
||||
unsigned bitsize;
|
||||
|
||||
bitsize = ac_get_elem_bits(ctx, LLVMTypeOf(src0));
|
||||
|
||||
switch (bitsize) {
|
||||
case 64:
|
||||
result = ac_build_intrinsic(ctx, "llvm.ctpop.i64", ctx->i64,
|
||||
(LLVMValueRef []) { src0 }, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
|
||||
result = LLVMBuildTrunc(ctx->builder, result, ctx->i32, "");
|
||||
break;
|
||||
case 32:
|
||||
result = ac_build_intrinsic(ctx, "llvm.ctpop.i32", ctx->i32,
|
||||
(LLVMValueRef []) { src0 }, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
break;
|
||||
case 16:
|
||||
result = ac_build_intrinsic(ctx, "llvm.ctpop.i16", ctx->i16,
|
||||
(LLVMValueRef []) { src0 }, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
break;
|
||||
default:
|
||||
unreachable(!"invalid bitsize");
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_bitfield_reverse(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef src0)
|
||||
{
|
||||
LLVMValueRef result;
|
||||
unsigned bitsize;
|
||||
|
||||
bitsize = ac_get_elem_bits(ctx, LLVMTypeOf(src0));
|
||||
|
||||
switch (bitsize) {
|
||||
case 32:
|
||||
result = ac_build_intrinsic(ctx, "llvm.bitreverse.i32", ctx->i32,
|
||||
(LLVMValueRef []) { src0 }, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
break;
|
||||
case 16:
|
||||
result = ac_build_intrinsic(ctx, "llvm.bitreverse.i16", ctx->i16,
|
||||
(LLVMValueRef []) { src0 }, 1,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
break;
|
||||
default:
|
||||
unreachable(!"invalid bitsize");
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#define AC_EXP_TARGET 0
|
||||
#define AC_EXP_ENABLED_CHANNELS 1
|
||||
#define AC_EXP_OUT0 2
|
||||
@@ -2572,7 +2379,7 @@ void ac_declare_lds_as_pointer(struct ac_llvm_context *ctx)
|
||||
{
|
||||
unsigned lds_size = ctx->chip_class >= CIK ? 65536 : 32768;
|
||||
ctx->lds = LLVMBuildIntToPtr(ctx->builder, ctx->i32_0,
|
||||
LLVMPointerType(LLVMArrayType(ctx->i32, lds_size / 4), AC_ADDR_SPACE_LDS),
|
||||
LLVMPointerType(LLVMArrayType(ctx->i32, lds_size / 4), AC_LOCAL_ADDR_SPACE),
|
||||
"lds");
|
||||
}
|
||||
|
||||
@@ -2599,25 +2406,14 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
|
||||
const char *intrin_name;
|
||||
LLVMTypeRef type;
|
||||
LLVMValueRef zero;
|
||||
|
||||
switch (src0_bitsize) {
|
||||
case 64:
|
||||
if (src0_bitsize == 64) {
|
||||
intrin_name = "llvm.cttz.i64";
|
||||
type = ctx->i64;
|
||||
zero = ctx->i64_0;
|
||||
break;
|
||||
case 32:
|
||||
} else {
|
||||
intrin_name = "llvm.cttz.i32";
|
||||
type = ctx->i32;
|
||||
zero = ctx->i32_0;
|
||||
break;
|
||||
case 16:
|
||||
intrin_name = "llvm.cttz.i16";
|
||||
type = ctx->i16;
|
||||
zero = ctx->i16_0;
|
||||
break;
|
||||
default:
|
||||
unreachable(!"invalid bitsize");
|
||||
}
|
||||
|
||||
LLVMValueRef params[2] = {
|
||||
@@ -2632,7 +2428,7 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
|
||||
*
|
||||
* The hardware already implements the correct behavior.
|
||||
*/
|
||||
ctx->i1true,
|
||||
LLVMConstInt(ctx->i1, 1, false),
|
||||
};
|
||||
|
||||
LLVMValueRef lsb = ac_build_intrinsic(ctx, intrin_name, type,
|
||||
@@ -2654,7 +2450,7 @@ LLVMValueRef ac_find_lsb(struct ac_llvm_context *ctx,
|
||||
LLVMTypeRef ac_array_in_const_addr_space(LLVMTypeRef elem_type)
|
||||
{
|
||||
return LLVMPointerType(LLVMArrayType(elem_type, 0),
|
||||
AC_ADDR_SPACE_CONST);
|
||||
AC_CONST_ADDR_SPACE);
|
||||
}
|
||||
|
||||
LLVMTypeRef ac_array_in_const32_addr_space(LLVMTypeRef elem_type)
|
||||
@@ -2663,7 +2459,7 @@ LLVMTypeRef ac_array_in_const32_addr_space(LLVMTypeRef elem_type)
|
||||
return ac_array_in_const_addr_space(elem_type);
|
||||
|
||||
return LLVMPointerType(LLVMArrayType(elem_type, 0),
|
||||
AC_ADDR_SPACE_CONST_32BIT);
|
||||
AC_CONST_32BIT_ADDR_SPACE);
|
||||
}
|
||||
|
||||
static struct ac_llvm_flow *
|
||||
@@ -2837,7 +2633,7 @@ void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||
LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||
const char *name)
|
||||
{
|
||||
LLVMBuilderRef builder = ac->builder;
|
||||
@@ -2855,15 +2651,18 @@ LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||
}
|
||||
|
||||
res = LLVMBuildAlloca(first_builder, type, name);
|
||||
LLVMBuildStore(builder, LLVMConstNull(type), res);
|
||||
|
||||
LLVMDisposeBuilder(first_builder);
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_alloca(struct ac_llvm_context *ac,
|
||||
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac,
|
||||
LLVMTypeRef type, const char *name)
|
||||
{
|
||||
LLVMValueRef ptr = ac_build_alloca_undef(ac, type, name);
|
||||
LLVMBuildStore(ac->builder, LLVMConstNull(type), ptr);
|
||||
LLVMValueRef ptr = ac_build_alloca(ac, type, name);
|
||||
LLVMBuildStore(ac->builder, LLVMGetUndef(type), ptr);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
@@ -2883,7 +2682,7 @@ LLVMValueRef ac_trim_vector(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
return value;
|
||||
|
||||
LLVMValueRef masks[] = {
|
||||
ctx->i32_0, ctx->i32_1,
|
||||
LLVMConstInt(ctx->i32, 0, false), LLVMConstInt(ctx->i32, 1, false),
|
||||
LLVMConstInt(ctx->i32, 2, false), LLVMConstInt(ctx->i32, 3, false)};
|
||||
|
||||
if (count == 1)
|
||||
@@ -3404,7 +3203,7 @@ ac_build_quad_swizzle(struct ac_llvm_context *ctx, LLVMValueRef src,
|
||||
unsigned lane0, unsigned lane1, unsigned lane2, unsigned lane3)
|
||||
{
|
||||
unsigned mask = dpp_quad_perm(lane0, lane1, lane2, lane3);
|
||||
if (ctx->chip_class >= VI) {
|
||||
if (ctx->chip_class >= VI && HAVE_LLVM >= 0x0600) {
|
||||
return ac_build_dpp(ctx, src, src, mask, 0xf, 0xf, false);
|
||||
} else {
|
||||
return ac_build_ds_swizzle(ctx, src, (1 << 15) | mask);
|
||||
|
@@ -37,20 +37,12 @@ extern "C" {
|
||||
#define HAVE_32BIT_POINTERS (HAVE_LLVM >= 0x0700)
|
||||
|
||||
enum {
|
||||
AC_ADDR_SPACE_FLAT = HAVE_LLVM >= 0x0700 ? 0 : 4, /* Slower than global. */
|
||||
AC_ADDR_SPACE_GLOBAL = 1,
|
||||
AC_ADDR_SPACE_GDS = HAVE_LLVM >= 0x0700 ? 2 : 5,
|
||||
AC_ADDR_SPACE_LDS = 3,
|
||||
AC_ADDR_SPACE_CONST = HAVE_LLVM >= 0x0700 ? 4 : 2, /* Global allowing SMEM. */
|
||||
AC_ADDR_SPACE_CONST_32BIT = 6, /* same as CONST, but the pointer type has 32 bits */
|
||||
/* CONST is the only address space that selects SMEM loads */
|
||||
AC_CONST_ADDR_SPACE = HAVE_LLVM >= 0x700 ? 4 : 2,
|
||||
AC_LOCAL_ADDR_SPACE = 3,
|
||||
AC_CONST_32BIT_ADDR_SPACE = 6, /* same as CONST, but the pointer type has 32 bits */
|
||||
};
|
||||
|
||||
/* Combine these with & instead of |. */
|
||||
#define NOOP_WAITCNT 0xcf7f
|
||||
#define LGKM_CNT 0xc07f
|
||||
#define EXP_CNT 0xcf0f
|
||||
#define VM_CNT 0x0f70 /* On GFX9, vmcnt has 6 bits in [0:3] and [14:15] */
|
||||
|
||||
struct ac_llvm_flow;
|
||||
|
||||
struct ac_llvm_context {
|
||||
@@ -76,8 +68,6 @@ struct ac_llvm_context {
|
||||
LLVMTypeRef v4f32;
|
||||
LLVMTypeRef v8i32;
|
||||
|
||||
LLVMValueRef i16_0;
|
||||
LLVMValueRef i16_1;
|
||||
LLVMValueRef i32_0;
|
||||
LLVMValueRef i32_1;
|
||||
LLVMValueRef i64_0;
|
||||
@@ -107,7 +97,7 @@ struct ac_llvm_context {
|
||||
};
|
||||
|
||||
void
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx,
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context,
|
||||
enum chip_class chip_class, enum radeon_family family);
|
||||
|
||||
void
|
||||
@@ -143,7 +133,6 @@ ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks);
|
||||
|
||||
void ac_build_s_barrier(struct ac_llvm_context *ctx);
|
||||
void ac_build_optimization_barrier(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *pvgpr);
|
||||
|
||||
@@ -172,36 +161,15 @@ LLVMValueRef
|
||||
ac_build_gather_values(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count);
|
||||
LLVMValueRef ac_build_expand(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef value,
|
||||
unsigned src_channels, unsigned dst_channels);
|
||||
LLVMValueRef ac_build_expand_to_vec4(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef value,
|
||||
unsigned num_channels);
|
||||
LLVMValueRef ac_build_round(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fdiv(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef den);
|
||||
|
||||
LLVMValueRef ac_build_fast_udiv(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef multiplier,
|
||||
LLVMValueRef pre_shift,
|
||||
LLVMValueRef post_shift,
|
||||
LLVMValueRef increment);
|
||||
LLVMValueRef ac_build_fast_udiv_nuw(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef multiplier,
|
||||
LLVMValueRef pre_shift,
|
||||
LLVMValueRef post_shift,
|
||||
LLVMValueRef increment);
|
||||
LLVMValueRef ac_build_fast_udiv_u31_d_not_one(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef num,
|
||||
LLVMValueRef multiplier,
|
||||
LLVMValueRef post_shift);
|
||||
|
||||
void
|
||||
ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
bool is_deriv, bool is_array, bool is_lod,
|
||||
@@ -228,8 +196,6 @@ LLVMValueRef
|
||||
ac_build_gep0(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
LLVMValueRef index);
|
||||
LLVMValueRef ac_build_pointer_add(struct ac_llvm_context *ctx, LLVMValueRef ptr,
|
||||
LLVMValueRef index);
|
||||
|
||||
void
|
||||
ac_build_indexed_store(struct ac_llvm_context *ctx,
|
||||
@@ -242,8 +208,6 @@ LLVMValueRef ac_build_load_invariant(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index);
|
||||
LLVMValueRef ac_build_load_to_sgpr(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index);
|
||||
LLVMValueRef ac_build_load_to_sgpr_uint_wraparound(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index);
|
||||
|
||||
void
|
||||
ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
@@ -288,15 +252,6 @@ LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool can_speculate);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
LLVMValueRef soffset,
|
||||
LLVMValueRef immoffset,
|
||||
LLVMValueRef glc);
|
||||
|
||||
LLVMValueRef
|
||||
ac_get_thread_id(struct ac_llvm_context *ctx);
|
||||
|
||||
@@ -434,10 +389,6 @@ void ac_build_kill_if_false(struct ac_llvm_context *ctx, LLVMValueRef i1);
|
||||
LLVMValueRef ac_build_bfe(struct ac_llvm_context *ctx, LLVMValueRef input,
|
||||
LLVMValueRef offset, LLVMValueRef width,
|
||||
bool is_signed);
|
||||
LLVMValueRef ac_build_imad(struct ac_llvm_context *ctx, LLVMValueRef s0,
|
||||
LLVMValueRef s1, LLVMValueRef s2);
|
||||
LLVMValueRef ac_build_fmad(struct ac_llvm_context *ctx, LLVMValueRef s0,
|
||||
LLVMValueRef s1, LLVMValueRef s2);
|
||||
|
||||
void ac_build_waitcnt(struct ac_llvm_context *ctx, unsigned simm16);
|
||||
|
||||
@@ -450,11 +401,6 @@ LLVMValueRef ac_build_isign(struct ac_llvm_context *ctx, LLVMValueRef src0,
|
||||
LLVMValueRef ac_build_fsign(struct ac_llvm_context *ctx, LLVMValueRef src0,
|
||||
unsigned bitsize);
|
||||
|
||||
LLVMValueRef ac_build_bit_count(struct ac_llvm_context *ctx, LLVMValueRef src0);
|
||||
|
||||
LLVMValueRef ac_build_bitfield_reverse(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef src0);
|
||||
|
||||
void ac_optimize_vs_outputs(struct ac_llvm_context *ac,
|
||||
LLVMValueRef main_fn,
|
||||
uint8_t *vs_output_param_offset,
|
||||
|
@@ -29,19 +29,13 @@
|
||||
#pragma push_macro("DEBUG")
|
||||
#undef DEBUG
|
||||
|
||||
#include "ac_binary.h"
|
||||
#include "ac_llvm_util.h"
|
||||
|
||||
#include <llvm-c/Core.h>
|
||||
#include <llvm/Target/TargetMachine.h>
|
||||
#include <llvm/Target/TargetOptions.h>
|
||||
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||
#include <llvm/IR/Attributes.h>
|
||||
#include <llvm/IR/CallSite.h>
|
||||
#include <llvm/IR/IRBuilder.h>
|
||||
#include <llvm/Analysis/TargetLibraryInfo.h>
|
||||
#include <llvm/Transforms/IPO.h>
|
||||
|
||||
#include <llvm/IR/LegacyPassManager.h>
|
||||
#if HAVE_LLVM < 0x0700
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#endif
|
||||
|
||||
void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes)
|
||||
{
|
||||
@@ -67,16 +61,6 @@ bool ac_llvm_is_function(LLVMValueRef v)
|
||||
return LLVMGetValueKind(v) == LLVMFunctionValueKind;
|
||||
}
|
||||
|
||||
LLVMModuleRef ac_create_module(LLVMTargetMachineRef tm, LLVMContextRef ctx)
|
||||
{
|
||||
llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine*>(tm);
|
||||
LLVMModuleRef module = LLVMModuleCreateWithNameInContext("mesa-shader", ctx);
|
||||
|
||||
llvm::unwrap(module)->setTargetTriple(TM->getTargetTriple().getTriple());
|
||||
llvm::unwrap(module)->setDataLayout(TM->createDataLayout());
|
||||
return module;
|
||||
}
|
||||
|
||||
LLVMBuilderRef ac_create_builder(LLVMContextRef ctx,
|
||||
enum ac_float_mode float_mode)
|
||||
{
|
||||
@@ -92,85 +76,14 @@ LLVMBuilderRef ac_create_builder(LLVMContextRef ctx,
|
||||
llvm::unwrap(builder)->setFastMathFlags(flags);
|
||||
break;
|
||||
case AC_FLOAT_MODE_UNSAFE_FP_MATH:
|
||||
#if HAVE_LLVM >= 0x0600
|
||||
flags.setFast();
|
||||
#else
|
||||
flags.setUnsafeAlgebra();
|
||||
#endif
|
||||
llvm::unwrap(builder)->setFastMathFlags(flags);
|
||||
break;
|
||||
}
|
||||
|
||||
return builder;
|
||||
}
|
||||
|
||||
LLVMTargetLibraryInfoRef
|
||||
ac_create_target_library_info(const char *triple)
|
||||
{
|
||||
return reinterpret_cast<LLVMTargetLibraryInfoRef>(new llvm::TargetLibraryInfoImpl(llvm::Triple(triple)));
|
||||
}
|
||||
|
||||
void
|
||||
ac_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info)
|
||||
{
|
||||
delete reinterpret_cast<llvm::TargetLibraryInfoImpl *>(library_info);
|
||||
}
|
||||
|
||||
/* The LLVM compiler is represented as a pass manager containing passes for
|
||||
* optimizations, instruction selection, and code generation.
|
||||
*/
|
||||
struct ac_compiler_passes {
|
||||
ac_compiler_passes(): ostream(code_string) {}
|
||||
|
||||
llvm::SmallString<0> code_string; /* ELF shader binary */
|
||||
llvm::raw_svector_ostream ostream; /* stream for appending data to the binary */
|
||||
llvm::legacy::PassManager passmgr; /* list of passes */
|
||||
};
|
||||
|
||||
struct ac_compiler_passes *ac_create_llvm_passes(LLVMTargetMachineRef tm)
|
||||
{
|
||||
struct ac_compiler_passes *p = new ac_compiler_passes();
|
||||
if (!p)
|
||||
return NULL;
|
||||
|
||||
llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine*>(tm);
|
||||
|
||||
if (TM->addPassesToEmitFile(p->passmgr, p->ostream,
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
nullptr,
|
||||
#endif
|
||||
llvm::TargetMachine::CGFT_ObjectFile)) {
|
||||
fprintf(stderr, "amd: TargetMachine can't emit a file of this type!\n");
|
||||
delete p;
|
||||
return NULL;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
void ac_destroy_llvm_passes(struct ac_compiler_passes *p)
|
||||
{
|
||||
delete p;
|
||||
}
|
||||
|
||||
/* This returns false on failure. */
|
||||
bool ac_compile_module_to_binary(struct ac_compiler_passes *p, LLVMModuleRef module,
|
||||
struct ac_shader_binary *binary)
|
||||
{
|
||||
p->passmgr.run(*llvm::unwrap(module));
|
||||
|
||||
llvm::StringRef data = p->ostream.str();
|
||||
bool success = ac_elf_read(data.data(), data.size(), binary);
|
||||
p->code_string = ""; /* release the ELF shader binary */
|
||||
|
||||
if (!success)
|
||||
fprintf(stderr, "amd: cannot read an ELF shader binary\n");
|
||||
return success;
|
||||
}
|
||||
|
||||
void ac_llvm_add_barrier_noop_pass(LLVMPassManagerRef passmgr)
|
||||
{
|
||||
llvm::unwrap(passmgr)->add(llvm::createBarrierNoopPass());
|
||||
}
|
||||
|
||||
void ac_enable_global_isel(LLVMTargetMachineRef tm)
|
||||
{
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
reinterpret_cast<llvm::TargetMachine*>(tm)->setGlobalISel(true);
|
||||
#endif
|
||||
}
|
||||
|
@@ -28,13 +28,7 @@
|
||||
#include "util/bitscan.h"
|
||||
#include <llvm-c/Core.h>
|
||||
#include <llvm-c/Support.h>
|
||||
#include <llvm-c/Transforms/IPO.h>
|
||||
#include <llvm-c/Transforms/Scalar.h>
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
#include <llvm-c/Transforms/Utils.h>
|
||||
#endif
|
||||
#include "c11/threads.h"
|
||||
#include "gallivm/lp_bld_misc.h"
|
||||
#include "util/u_math.h"
|
||||
|
||||
#include <assert.h>
|
||||
@@ -56,27 +50,20 @@ static void ac_init_llvm_target()
|
||||
* https://reviews.llvm.org/D26348
|
||||
*
|
||||
* "mesa" is the prefix for error messages.
|
||||
*
|
||||
* -global-isel-abort=2 is a no-op unless global isel has been enabled.
|
||||
* This option tells the backend to fall-back to SelectionDAG and print
|
||||
* a diagnostic message if global isel fails.
|
||||
*/
|
||||
const char *argv[3] = { "mesa", "-simplifycfg-sink-common=false", "-global-isel-abort=2" };
|
||||
LLVMParseCommandLineOptions(3, argv, NULL);
|
||||
const char *argv[2] = { "mesa", "-simplifycfg-sink-common=false" };
|
||||
LLVMParseCommandLineOptions(2, argv, NULL);
|
||||
}
|
||||
|
||||
static once_flag ac_init_llvm_target_once_flag = ONCE_FLAG_INIT;
|
||||
|
||||
void ac_init_llvm_once(void)
|
||||
{
|
||||
call_once(&ac_init_llvm_target_once_flag, ac_init_llvm_target);
|
||||
}
|
||||
|
||||
static LLVMTargetRef ac_get_llvm_target(const char *triple)
|
||||
LLVMTargetRef ac_get_llvm_target(const char *triple)
|
||||
{
|
||||
LLVMTargetRef target = NULL;
|
||||
char *err_message = NULL;
|
||||
|
||||
call_once(&ac_init_llvm_target_once_flag, ac_init_llvm_target);
|
||||
|
||||
if (LLVMGetTargetFromTriple(triple, &target, &err_message)) {
|
||||
fprintf(stderr, "Cannot find target for triple %s ", triple);
|
||||
if (err_message) {
|
||||
@@ -133,19 +120,14 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
|
||||
return "gfx902";
|
||||
case CHIP_VEGA12:
|
||||
return HAVE_LLVM >= 0x0700 ? "gfx904" : "gfx902";
|
||||
case CHIP_VEGA20:
|
||||
return HAVE_LLVM >= 0x0700 ? "gfx906" : "gfx902";
|
||||
case CHIP_RAVEN2:
|
||||
return "gfx902"; /* TODO: use gfx909 when it's available */
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
static LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options,
|
||||
LLVMCodeGenOptLevel level,
|
||||
const char **out_triple)
|
||||
LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options,
|
||||
const char **out_triple)
|
||||
{
|
||||
assert(family >= CHIP_TAHITI);
|
||||
char features[256];
|
||||
@@ -164,50 +146,15 @@ static LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
triple,
|
||||
ac_get_llvm_processor_name(family),
|
||||
features,
|
||||
level,
|
||||
LLVMCodeGenLevelDefault,
|
||||
LLVMRelocDefault,
|
||||
LLVMCodeModelDefault);
|
||||
|
||||
if (out_triple)
|
||||
*out_triple = triple;
|
||||
if (tm_options & AC_TM_ENABLE_GLOBAL_ISEL)
|
||||
ac_enable_global_isel(tm);
|
||||
return tm;
|
||||
}
|
||||
|
||||
static LLVMPassManagerRef ac_create_passmgr(LLVMTargetLibraryInfoRef target_library_info,
|
||||
bool check_ir)
|
||||
{
|
||||
LLVMPassManagerRef passmgr = LLVMCreatePassManager();
|
||||
if (!passmgr)
|
||||
return NULL;
|
||||
|
||||
if (target_library_info)
|
||||
LLVMAddTargetLibraryInfo(target_library_info,
|
||||
passmgr);
|
||||
|
||||
if (check_ir)
|
||||
LLVMAddVerifierPass(passmgr);
|
||||
LLVMAddAlwaysInlinerPass(passmgr);
|
||||
/* Normally, the pass manager runs all passes on one function before
|
||||
* moving onto another. Adding a barrier no-op pass forces the pass
|
||||
* manager to run the inliner on all functions first, which makes sure
|
||||
* that the following passes are only run on the remaining non-inline
|
||||
* function, so it removes useless work done on dead inline functions.
|
||||
*/
|
||||
ac_llvm_add_barrier_noop_pass(passmgr);
|
||||
/* This pass should eliminate all the load and store instructions. */
|
||||
LLVMAddPromoteMemoryToRegisterPass(passmgr);
|
||||
LLVMAddScalarReplAggregatesPass(passmgr);
|
||||
LLVMAddLICMPass(passmgr);
|
||||
LLVMAddAggressiveDCEPass(passmgr);
|
||||
LLVMAddCFGSimplificationPass(passmgr);
|
||||
/* This is recommended by the instruction combining pass. */
|
||||
LLVMAddEarlyCSEMemSSAPass(passmgr);
|
||||
LLVMAddInstructionCombiningPass(passmgr);
|
||||
return passmgr;
|
||||
}
|
||||
|
||||
static const char *attr_to_str(enum ac_func_attr attr)
|
||||
{
|
||||
switch (attr) {
|
||||
@@ -299,60 +246,3 @@ ac_count_scratch_private_memory(LLVMValueRef function)
|
||||
|
||||
return private_mem_vgprs;
|
||||
}
|
||||
|
||||
bool
|
||||
ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
bool okay_to_leak_target_library_info,
|
||||
enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options)
|
||||
{
|
||||
const char *triple;
|
||||
memset(compiler, 0, sizeof(*compiler));
|
||||
|
||||
compiler->tm = ac_create_target_machine(family, tm_options,
|
||||
LLVMCodeGenLevelDefault,
|
||||
&triple);
|
||||
if (!compiler->tm)
|
||||
return false;
|
||||
|
||||
if (tm_options & AC_TM_CREATE_LOW_OPT) {
|
||||
compiler->low_opt_tm =
|
||||
ac_create_target_machine(family, tm_options,
|
||||
LLVMCodeGenLevelLess, NULL);
|
||||
if (!compiler->low_opt_tm)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (okay_to_leak_target_library_info || (HAVE_LLVM >= 0x0700)) {
|
||||
compiler->target_library_info =
|
||||
ac_create_target_library_info(triple);
|
||||
if (!compiler->target_library_info)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
compiler->passmgr = ac_create_passmgr(compiler->target_library_info,
|
||||
tm_options & AC_TM_CHECK_IR);
|
||||
if (!compiler->passmgr)
|
||||
goto fail;
|
||||
|
||||
return true;
|
||||
fail:
|
||||
ac_destroy_llvm_compiler(compiler);
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
ac_destroy_llvm_compiler(struct ac_llvm_compiler *compiler)
|
||||
{
|
||||
if (compiler->passmgr)
|
||||
LLVMDisposePassManager(compiler->passmgr);
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
/* This crashes on LLVM 5.0 and 6.0 and Ubuntu 18.04, so leak it there. */
|
||||
if (compiler->target_library_info)
|
||||
ac_dispose_target_library_info(compiler->target_library_info);
|
||||
#endif
|
||||
if (compiler->low_opt_tm)
|
||||
LLVMDisposeTargetMachine(compiler->low_opt_tm);
|
||||
if (compiler->tm)
|
||||
LLVMDisposeTargetMachine(compiler->tm);
|
||||
}
|
||||
|
@@ -35,9 +35,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct ac_shader_binary;
|
||||
struct ac_compiler_passes;
|
||||
|
||||
enum ac_func_attr {
|
||||
AC_FUNC_ATTR_ALWAYSINLINE = (1 << 0),
|
||||
AC_FUNC_ATTR_INREG = (1 << 2),
|
||||
@@ -62,9 +59,6 @@ enum ac_target_machine_options {
|
||||
AC_TM_FORCE_ENABLE_XNACK = (1 << 2),
|
||||
AC_TM_FORCE_DISABLE_XNACK = (1 << 3),
|
||||
AC_TM_PROMOTE_ALLOCA_TO_SCRATCH = (1 << 4),
|
||||
AC_TM_CHECK_IR = (1 << 5),
|
||||
AC_TM_ENABLE_GLOBAL_ISEL = (1 << 6),
|
||||
AC_TM_CREATE_LOW_OPT = (1 << 7),
|
||||
};
|
||||
|
||||
enum ac_float_mode {
|
||||
@@ -73,23 +67,12 @@ enum ac_float_mode {
|
||||
AC_FLOAT_MODE_UNSAFE_FP_MATH,
|
||||
};
|
||||
|
||||
/* Per-thread persistent LLVM objects. */
|
||||
struct ac_llvm_compiler {
|
||||
LLVMTargetLibraryInfoRef target_library_info;
|
||||
LLVMPassManagerRef passmgr;
|
||||
|
||||
/* Default compiler. */
|
||||
LLVMTargetMachineRef tm;
|
||||
struct ac_compiler_passes *passes;
|
||||
|
||||
/* Optional compiler for faster compilation with fewer optimizations.
|
||||
* LLVM modules can be created with "tm" too. There is no difference.
|
||||
*/
|
||||
LLVMTargetMachineRef low_opt_tm; /* uses -O1 instead of -O2 */
|
||||
struct ac_compiler_passes *low_opt_passes;
|
||||
};
|
||||
|
||||
const char *ac_get_llvm_processor_name(enum radeon_family family);
|
||||
LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options,
|
||||
const char **out_triple);
|
||||
|
||||
LLVMTargetRef ac_get_llvm_target(const char *triple);
|
||||
void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes);
|
||||
bool ac_is_sgpr_param(LLVMValueRef param);
|
||||
void ac_add_function_attr(LLVMContextRef ctx, LLVMValueRef function,
|
||||
@@ -100,7 +83,6 @@ void ac_dump_module(LLVMModuleRef module);
|
||||
|
||||
LLVMValueRef ac_llvm_get_called_value(LLVMValueRef call);
|
||||
bool ac_llvm_is_function(LLVMValueRef v);
|
||||
LLVMModuleRef ac_create_module(LLVMTargetMachineRef tm, LLVMContextRef ctx);
|
||||
|
||||
LLVMBuilderRef ac_create_builder(LLVMContextRef ctx,
|
||||
enum ac_float_mode float_mode);
|
||||
@@ -128,24 +110,6 @@ ac_get_store_intr_attribs(bool writeonly_memory)
|
||||
unsigned
|
||||
ac_count_scratch_private_memory(LLVMValueRef function);
|
||||
|
||||
LLVMTargetLibraryInfoRef ac_create_target_library_info(const char *triple);
|
||||
void ac_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info);
|
||||
void ac_init_llvm_once(void);
|
||||
|
||||
|
||||
bool ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
bool okay_to_leak_target_library_info,
|
||||
enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options);
|
||||
void ac_destroy_llvm_compiler(struct ac_llvm_compiler *compiler);
|
||||
|
||||
struct ac_compiler_passes *ac_create_llvm_passes(LLVMTargetMachineRef tm);
|
||||
void ac_destroy_llvm_passes(struct ac_compiler_passes *p);
|
||||
bool ac_compile_module_to_binary(struct ac_compiler_passes *p, LLVMModuleRef module,
|
||||
struct ac_shader_binary *binary);
|
||||
void ac_llvm_add_barrier_noop_pass(LLVMPassManagerRef passmgr);
|
||||
void ac_enable_global_isel(LLVMTargetMachineRef tm);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -143,18 +143,10 @@ static void addrlib_family_rev_id(enum radeon_family family,
|
||||
*addrlib_family = FAMILY_AI;
|
||||
*addrlib_revid = get_first(AMDGPU_VEGA12_RANGE);
|
||||
break;
|
||||
case CHIP_VEGA20:
|
||||
*addrlib_family = FAMILY_AI;
|
||||
*addrlib_revid = get_first(AMDGPU_VEGA20_RANGE);
|
||||
break;
|
||||
case CHIP_RAVEN:
|
||||
*addrlib_family = FAMILY_RV;
|
||||
*addrlib_revid = get_first(AMDGPU_RAVEN_RANGE);
|
||||
break;
|
||||
case CHIP_RAVEN2:
|
||||
*addrlib_family = FAMILY_RV;
|
||||
*addrlib_revid = get_first(AMDGPU_RAVEN2_RANGE);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "amdgpu: Unknown family.\n");
|
||||
}
|
||||
@@ -266,7 +258,7 @@ static int surf_config_sanity(const struct ac_surf_config *config,
|
||||
}
|
||||
|
||||
if (!(flags & RADEON_SURF_Z_OR_SBUFFER)) {
|
||||
switch (config->info.storage_samples) {
|
||||
switch (config->info.color_samples) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
@@ -444,7 +436,6 @@ static int gfx6_compute_level(ADDR_HANDLE addrlib,
|
||||
}
|
||||
|
||||
#define G_009910_MICRO_TILE_MODE(x) (((x) >> 0) & 0x03)
|
||||
#define V_009910_ADDR_SURF_THICK_MICRO_TILING 0x03
|
||||
#define G_009910_MICRO_TILE_MODE_NEW(x) (((x) >> 22) & 0x07)
|
||||
|
||||
static void gfx6_set_micro_tile_mode(struct radeon_surf *surf,
|
||||
@@ -555,66 +546,6 @@ static int gfx6_surface_settings(ADDR_HANDLE addrlib,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ac_compute_cmask(const struct radeon_info *info,
|
||||
const struct ac_surf_config *config,
|
||||
struct radeon_surf *surf)
|
||||
{
|
||||
unsigned pipe_interleave_bytes = info->pipe_interleave_bytes;
|
||||
unsigned num_pipes = info->num_tile_pipes;
|
||||
unsigned cl_width, cl_height;
|
||||
|
||||
if (surf->flags & RADEON_SURF_Z_OR_SBUFFER)
|
||||
return;
|
||||
|
||||
assert(info->chip_class <= VI);
|
||||
|
||||
switch (num_pipes) {
|
||||
case 2:
|
||||
cl_width = 32;
|
||||
cl_height = 16;
|
||||
break;
|
||||
case 4:
|
||||
cl_width = 32;
|
||||
cl_height = 32;
|
||||
break;
|
||||
case 8:
|
||||
cl_width = 64;
|
||||
cl_height = 32;
|
||||
break;
|
||||
case 16: /* Hawaii */
|
||||
cl_width = 64;
|
||||
cl_height = 64;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned base_align = num_pipes * pipe_interleave_bytes;
|
||||
|
||||
unsigned width = align(surf->u.legacy.level[0].nblk_x, cl_width*8);
|
||||
unsigned height = align(surf->u.legacy.level[0].nblk_y, cl_height*8);
|
||||
unsigned slice_elements = (width * height) / (8*8);
|
||||
|
||||
/* Each element of CMASK is a nibble. */
|
||||
unsigned slice_bytes = slice_elements / 2;
|
||||
|
||||
surf->u.legacy.cmask_slice_tile_max = (width * height) / (128*128);
|
||||
if (surf->u.legacy.cmask_slice_tile_max)
|
||||
surf->u.legacy.cmask_slice_tile_max -= 1;
|
||||
|
||||
unsigned num_layers;
|
||||
if (config->is_3d)
|
||||
num_layers = config->info.depth;
|
||||
else if (config->is_cube)
|
||||
num_layers = 6;
|
||||
else
|
||||
num_layers = config->info.array_size;
|
||||
|
||||
surf->cmask_alignment = MAX2(256, base_align);
|
||||
surf->cmask_size = align(slice_bytes, base_align) * num_layers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill in the tiling information in \p surf based on the given surface config.
|
||||
*
|
||||
@@ -698,7 +629,7 @@ static int gfx6_compute_surface(ADDR_HANDLE addrlib,
|
||||
|
||||
if (!(surf->flags & RADEON_SURF_Z_OR_SBUFFER)) {
|
||||
AddrDccIn.numSamples = AddrSurfInfoIn.numFrags =
|
||||
MAX2(1, config->info.storage_samples);
|
||||
MAX2(1, config->info.color_samples);
|
||||
}
|
||||
|
||||
/* Set the micro tile type. */
|
||||
@@ -1019,18 +950,6 @@ static int gfx6_compute_surface(ADDR_HANDLE addrlib,
|
||||
surf->is_displayable = surf->is_linear ||
|
||||
surf->micro_tile_mode == RADEON_MICRO_MODE_DISPLAY ||
|
||||
surf->micro_tile_mode == RADEON_MICRO_MODE_ROTATED;
|
||||
|
||||
/* The rotated micro tile mode doesn't work if both CMASK and RB+ are
|
||||
* used at the same time. This case is not currently expected to occur
|
||||
* because we don't use rotated. Enforce this restriction on all chips
|
||||
* to facilitate testing.
|
||||
*/
|
||||
if (surf->micro_tile_mode == RADEON_MICRO_MODE_ROTATED) {
|
||||
assert(!"rotate micro tile mode is unsupported");
|
||||
return ADDR_ERROR;
|
||||
}
|
||||
|
||||
ac_compute_cmask(info, config, surf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1306,7 +1225,7 @@ static int gfx9_compute_miptree(ADDR_HANDLE addrlib,
|
||||
/* This counter starts from 1 instead of 0. */
|
||||
xin.surfIndex = p_atomic_inc_return(config->info.fmask_surf_index);
|
||||
xin.flags = in->flags;
|
||||
xin.swizzleMode = fin.swizzleMode;
|
||||
xin.swizzleMode = in->swizzleMode;
|
||||
xin.resourceType = in->resourceType;
|
||||
xin.format = in->format;
|
||||
xin.numSamples = in->numSamples;
|
||||
@@ -1355,8 +1274,8 @@ static int gfx9_compute_miptree(ADDR_HANDLE addrlib,
|
||||
|
||||
surf->u.gfx9.cmask.rb_aligned = cin.cMaskFlags.rbAligned;
|
||||
surf->u.gfx9.cmask.pipe_aligned = cin.cMaskFlags.pipeAligned;
|
||||
surf->cmask_size = cout.cmaskBytes;
|
||||
surf->cmask_alignment = cout.baseAlign;
|
||||
surf->u.gfx9.cmask_size = cout.cmaskBytes;
|
||||
surf->u.gfx9.cmask_alignment = cout.baseAlign;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1437,7 +1356,7 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
|
||||
AddrSurfInfoIn.numFrags = AddrSurfInfoIn.numSamples;
|
||||
|
||||
if (!(surf->flags & RADEON_SURF_Z_OR_SBUFFER))
|
||||
AddrSurfInfoIn.numFrags = MAX2(1, config->info.storage_samples);
|
||||
AddrSurfInfoIn.numFrags = MAX2(1, config->info.color_samples);
|
||||
|
||||
/* GFX9 doesn't support 1D depth textures, so allocate all 1D textures
|
||||
* as 2D to avoid having shader variants for 1D vs 2D, so all shaders
|
||||
@@ -1497,7 +1416,7 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
|
||||
surf->htile_slice_size = 0;
|
||||
surf->u.gfx9.surf_offset = 0;
|
||||
surf->u.gfx9.stencil_offset = 0;
|
||||
surf->cmask_size = 0;
|
||||
surf->u.gfx9.cmask_size = 0;
|
||||
|
||||
/* Calculate texture layout information. */
|
||||
r = gfx9_compute_miptree(addrlib, config, surf, compressed,
|
||||
@@ -1571,13 +1490,8 @@ static int gfx9_compute_surface(ADDR_HANDLE addrlib,
|
||||
case ADDR_SW_4KB_R_X:
|
||||
case ADDR_SW_64KB_R_X:
|
||||
case ADDR_SW_VAR_R_X:
|
||||
/* The rotated micro tile mode doesn't work if both CMASK and RB+ are
|
||||
* used at the same time. This case is not currently expected to occur
|
||||
* because we don't use rotated. Enforce this restriction on all chips
|
||||
* to facilitate testing.
|
||||
*/
|
||||
assert(!"rotate micro tile mode is unsupported");
|
||||
return ADDR_ERROR;
|
||||
surf->micro_tile_mode = RADEON_MICRO_MODE_ROTATED;
|
||||
break;
|
||||
|
||||
/* Z = depth. */
|
||||
case ADDR_SW_4KB_Z:
|
||||
|
@@ -109,7 +109,6 @@ struct legacy_surf_layout {
|
||||
uint8_t tiling_index[RADEON_SURF_MAX_LEVELS];
|
||||
uint8_t stencil_tiling_index[RADEON_SURF_MAX_LEVELS];
|
||||
struct legacy_surf_fmask fmask;
|
||||
unsigned cmask_slice_tile_max;
|
||||
};
|
||||
|
||||
/* Same as addrlib - AddrResourceType. */
|
||||
@@ -151,6 +150,9 @@ struct gfx9_surf_layout {
|
||||
uint16_t dcc_pitch_max; /* (mip chain pitch - 1) */
|
||||
|
||||
uint64_t stencil_offset; /* separate stencil */
|
||||
uint64_t cmask_size;
|
||||
|
||||
uint32_t cmask_alignment;
|
||||
};
|
||||
|
||||
struct radeon_surf {
|
||||
@@ -194,19 +196,16 @@ struct radeon_surf {
|
||||
|
||||
uint64_t surf_size;
|
||||
uint64_t fmask_size;
|
||||
uint32_t surf_alignment;
|
||||
uint32_t fmask_alignment;
|
||||
|
||||
/* DCC and HTILE are very small. */
|
||||
uint32_t dcc_size;
|
||||
uint32_t dcc_alignment;
|
||||
|
||||
uint32_t htile_size;
|
||||
uint32_t htile_slice_size;
|
||||
uint32_t htile_alignment;
|
||||
|
||||
uint32_t cmask_size;
|
||||
uint32_t cmask_alignment;
|
||||
uint32_t htile_slice_size;
|
||||
|
||||
uint32_t surf_alignment;
|
||||
uint32_t fmask_alignment;
|
||||
uint32_t dcc_alignment;
|
||||
uint32_t htile_alignment;
|
||||
|
||||
union {
|
||||
/* R600-VI return values.
|
||||
@@ -226,7 +225,7 @@ struct ac_surf_info {
|
||||
uint32_t height;
|
||||
uint32_t depth;
|
||||
uint8_t samples; /* For Z/S: samples; For color: FMASK coverage samples */
|
||||
uint8_t storage_samples; /* For color: allocated samples */
|
||||
uint8_t color_samples; /* For color: color samples */
|
||||
uint8_t levels;
|
||||
uint8_t num_channels; /* heuristic for displayability */
|
||||
uint16_t array_size;
|
||||
@@ -249,10 +248,6 @@ int ac_compute_surface(ADDR_HANDLE addrlib, const struct radeon_info *info,
|
||||
enum radeon_surf_mode mode,
|
||||
struct radeon_surf *surf);
|
||||
|
||||
void ac_compute_cmask(const struct radeon_info *info,
|
||||
const struct ac_surf_config *config,
|
||||
struct radeon_surf *surf);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -95,9 +95,7 @@ enum radeon_family {
|
||||
CHIP_VEGAM,
|
||||
CHIP_VEGA10,
|
||||
CHIP_VEGA12,
|
||||
CHIP_VEGA20,
|
||||
CHIP_RAVEN,
|
||||
CHIP_RAVEN2,
|
||||
CHIP_LAST,
|
||||
};
|
||||
|
||||
|
@@ -4457,9 +4457,6 @@
|
||||
#define S_028424_OVERWRITE_COMBINER_WATERMARK(x) (((unsigned)(x) & 0x1F) << 2)
|
||||
#define G_028424_OVERWRITE_COMBINER_WATERMARK(x) (((x) >> 2) & 0x1F)
|
||||
#define C_028424_OVERWRITE_COMBINER_WATERMARK 0xFFFFFF83
|
||||
#define S_028424_DISABLE_CONSTANT_ENCODE_REG(x) (((unsigned)(x) & 0x1) << 10) /* Raven2+ */
|
||||
#define G_028424_DISABLE_CONSTANT_ENCODE_REG(x) (((x) >> 10) & 0x1)
|
||||
#define C_028424_DISABLE_CONSTANT_ENCODE_REG 0xFFFFFBFF
|
||||
#define R_02842C_DB_STENCIL_CONTROL 0x02842C
|
||||
#define S_02842C_STENCILFAIL(x) (((unsigned)(x) & 0x0F) << 0)
|
||||
#define G_02842C_STENCILFAIL(x) (((x) >> 0) & 0x0F)
|
||||
@@ -5767,7 +5764,6 @@
|
||||
#define S_02883C_USE_PROVOKING_ZW(x) (((unsigned)(x) & 0x1) << 4)
|
||||
#define G_02883C_USE_PROVOKING_ZW(x) (((x) >> 4) & 0x1)
|
||||
#define C_02883C_USE_PROVOKING_ZW 0xFFFFFFEF
|
||||
#define R_028840_PA_STEREO_CNTL 0x028840
|
||||
#define R_028A00_PA_SU_POINT_SIZE 0x028A00
|
||||
#define S_028A00_HEIGHT(x) (((unsigned)(x) & 0xFFFF) << 0)
|
||||
#define G_028A00_HEIGHT(x) (((x) >> 0) & 0xFFFF)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user