Compare commits
42 Commits
18.3
...
mesa-18.2.
Author | SHA1 | Date | |
---|---|---|---|
|
dcd3786e6e | ||
|
d82c36a4c7 | ||
|
8061ee5883 | ||
|
bbd95de921 | ||
|
b696ab172c | ||
|
f7e8bc0f23 | ||
|
90278c7f95 | ||
|
0c1832765f | ||
|
94da454726 | ||
|
dadc50add5 | ||
|
e91782ed55 | ||
|
9df3460724 | ||
|
8be5985e65 | ||
|
6606cacd3d | ||
|
1378f33142 | ||
|
9dacf10ca8 | ||
|
7af6be8864 | ||
|
9ad14f71e6 | ||
|
6ae0a639ec | ||
|
c709206977 | ||
|
33ac5fb678 | ||
|
f0ae95492a | ||
|
a42afc8504 | ||
|
adfbf1fe84 | ||
|
4a25d8b623 | ||
|
4a769c8850 | ||
|
d39fb6d157 | ||
|
ed117c27e1 | ||
|
fdbbe4c50c | ||
|
3c3589a0ba | ||
|
37fa81f631 | ||
|
71aa72d695 | ||
|
c8d41bc58d | ||
|
c3b1a6d7fa | ||
|
cce78368df | ||
|
b6e9ef1556 | ||
|
c18ed873a5 | ||
|
88c36f4379 | ||
|
bbeb78620c | ||
|
9ddff68f6f | ||
|
2e903df72f | ||
|
cb542ac550 |
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>
|
||||
|
||||
|
163
.travis.yml
163
.travis.yml
@@ -9,9 +9,9 @@ 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
|
||||
@@ -35,33 +35,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 +65,6 @@ matrix:
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- env:
|
||||
- LABEL="make loaders/classic DRI"
|
||||
@@ -93,7 +86,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 +94,10 @@ matrix:
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=5.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 +107,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-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 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 +136,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 +176,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 +215,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 +251,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 +269,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 +287,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 +310,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 +320,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 +356,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 +377,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
|
||||
@@ -466,19 +432,21 @@ matrix:
|
||||
- BUILD=scons
|
||||
- SCONSFLAGS="-j4"
|
||||
- SCONS_TARGET="swr=1"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_VERSION=5.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-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
|
||||
@@ -495,6 +463,7 @@ matrix:
|
||||
- env:
|
||||
- LABEL="macOS meson"
|
||||
- BUILD=meson
|
||||
- MESON_OPTIONS="-Degl=false"
|
||||
os: osx
|
||||
|
||||
before_install:
|
||||
@@ -521,24 +490,18 @@ before_install:
|
||||
fi
|
||||
|
||||
install:
|
||||
# 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
|
||||
- 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
|
||||
- pip2 install --user mako
|
||||
|
||||
# Install autotools build dependencies
|
||||
- if test "x$BUILD" = xmake; then
|
||||
pip2 install --user mako;
|
||||
# Install a more modern meson from pip, since the version in the
|
||||
# ubuntu repos is often quite old. Avoid >=0.45.0 as it needs python
|
||||
# 3.5+
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
pip3 install --user "meson<0.45.0";
|
||||
fi
|
||||
|
||||
# Install a more modern scons from pip.
|
||||
- if test "x$BUILD" = xscons; then
|
||||
pip2 install --user "scons>=2.4";
|
||||
pip2 install --user mako;
|
||||
fi
|
||||
|
||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
||||
@@ -580,7 +543,7 @@ 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)
|
||||
|
||||
@@ -596,11 +559,11 @@ install:
|
||||
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)
|
||||
|
||||
@@ -684,14 +647,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.
|
||||
|
@@ -76,8 +76,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 +89,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)
|
||||
|
@@ -31,7 +31,6 @@ import common
|
||||
# Minimal scons version
|
||||
|
||||
EnsureSConsVersion(2, 4)
|
||||
EnsurePythonVersion(2, 7)
|
||||
|
||||
|
||||
#######################################################################
|
||||
|
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,54 +0,0 @@
|
||||
# fixes: Commit was squashed into the respective offenders
|
||||
c02390f8fcd367c7350db568feabb2f062efca14 egl/wayland: rather obvious build fix
|
||||
# fixes: The commit addresses b4476138d5ad3f8d30c14ee61f2f375edfdbab2a
|
||||
ff6f1dd0d3c6b4c15ca51b478b2884d14f6a1e06 meson: libfreedreno depends upon libdrm (for fence support)
|
||||
|
||||
# fixes: This commit requires commits aeaf8dbd097 and 7484bc894b9 which did not
|
||||
# land in branch.
|
||||
f67dea5e19ef14187be0e8d0f61b1f764c7ccb4f radv: Fix multiview depth clears
|
||||
|
||||
# stable The commits aren't suitable in their present form.
|
||||
bfe31c5e461a1330d6f606bf5310685eff1198dd nir/builder: Add nir_i2i and nir_u2u helpers which take a bit size
|
||||
abfe674c54bee6f8fdcae411b07db89c10b9d530 spirv: Handle arbitrary bit sizes for deref array indices
|
||||
|
||||
# warn The commits refer stale sha, yet don't fix anything in particular.
|
||||
98984b7cdd79c15cc7331c791f8be61e873b8bbd Revert "mapi/new: sort by slot number"
|
||||
9f86f1da7c68b5b900cd6f60925610ff1225a72d egl: add glvnd entrypoints for EGL_MESA_query_driver
|
||||
|
||||
# stable Explicit 19.0 only nomination.
|
||||
38f542783faa360020b77fdd76b97f207a9e0068 v50,nvc0: add explicit settings for recent caps
|
||||
|
||||
# stable Explicit 19.0 only nominations.
|
||||
399215eb7a0517463e5757c598d6cff6ae2301d0 nvc0: add support for handling indirect draws with attrib conversion
|
||||
4443b6ddf2e08d06f3d0457cf20a2e04244cde37 nvc0/ir: always use CG mode for loads from atomic-only buffers
|
||||
5de5beedf21306b01730085f8e03d8f424729016 nvc0/ir: fix second tex argument after levelZero optimization
|
||||
162352e6711b3ceab114686f7a3248074339e7f7 nvc0: fix 3d images on kepler
|
||||
e00799d3dc0595dc3998dbf199ceec8b1eece966 nv50,nvc0: use condition for occlusion queries when already complete
|
||||
6adb9b38bfb1f6ee4c94596bf0744225aa8e967a nvc0: stick zero values for the compute invocation counts
|
||||
04593d9a73ea257a36cc3b9fb5cd41427beaaea5 gk110/ir: Add rcp f64 implementation
|
||||
7937408052a1896f0b08b0110bb8a1790eeee351 gk110/ir: Add rsq f64 implementation
|
||||
656ad060518d067a3b311db8c2de2a396fb41898 gk110/ir: Use the new rcp/rsq in library
|
||||
12669d29705a26478aa691cb454149628be65f17 gk104/ir: Use the new rcp/rsq in library
|
||||
815a8e59c6d462a7008653ea9e3010d40b6ba589 gm107/ir: add fp64 rcp
|
||||
cce495572136a606dd2a35e79f45080c3796e2cc gm107/ir: add fp64 rsq
|
||||
6010d7b8e8bee1bcea2b329cf6d3b44c5fc3ca66 gallium: add PIPE_CAP_MAX_VARYINGS
|
||||
cbd1ad6165f0aea7fb7c6fd1b36ad5317dd65cb7 st/mesa: require RGBA2, RGB4, and RGBA4 to be renderable
|
||||
|
||||
# stable The commit addresses functionality not present in branch
|
||||
1b8983c25be19073c02fe9630e949be55f8280fa radv: fix using LOAD_CONTEXT_REG with old GFX ME firmwares on GFX8
|
||||
|
||||
# stable Explicit 19.0 only nominations, require work which did not land in branch
|
||||
8ab95b849e66f3221d80a67eef2ec6e3730901a8 anv: Refactor descriptor pushing a bit
|
||||
5c30fffeec1732c21d600c036f95f8cdb1bb5487 anv: Take references to push descriptor set layouts
|
||||
|
||||
# sha Commit references invalid sha - a offender did not land in branch.
|
||||
85ee157283c667372baf7c03259cba08853f0067 gitlab-ci: autotools needs to be told which llvm version to use
|
||||
|
||||
# revert The commit was reverted shortly after it was applied on master
|
||||
47fc359822494935852de1e70e4d840b2fe6a25c anv: release memory allocated by glsl types during spirv_to_nir
|
||||
|
||||
# stable Explicitly 19.0 nomination, seemingly a performance patch
|
||||
5ef2b8f1f2ebcdb4ffe5c98b3f4f48e584cb4b22 nir: Add a pass for lowering IO back to vector when possible
|
||||
|
||||
# fixes Temporary block perf. fix depending on previous opt. pass
|
||||
6d5d89d25a0a4299dbfcbfeca71b6c7e65ef3d45 intel/nir: Vectorize all IO
|
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,107 +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 --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
||||
}
|
||||
|
||||
is_typod_nomination()
|
||||
{
|
||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
||||
}
|
||||
|
||||
fixes=
|
||||
|
||||
# Helper to handle various mistypos of the fixes tag.
|
||||
# The tag string itself is passed as argument and normalised within.
|
||||
#
|
||||
# Resulting string in the global variable "fixes" and contains entries
|
||||
# in the form "fixes:$sha"
|
||||
is_sha_nomination()
|
||||
{
|
||||
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
|
||||
sed -e 's/'"$2"'/\nfixes:/Ig' | \
|
||||
grep -Eo 'fixes:[a-f0-9]{8,40}'`
|
||||
|
||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
||||
if test $fixes_count -eq 0; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Throw a warning for each invalid sha
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
if ! git show $id >/dev/null 2>&1; then
|
||||
echo WARNING: Commit $1 lists invalid sha $id
|
||||
fi
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Checks if at least one of offending commits, listed in the global
|
||||
# "fixes", is in branch.
|
||||
sha_in_range()
|
||||
{
|
||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
|
||||
# Be that cherry-picked ...
|
||||
# ... or landed before the branchpoint.
|
||||
if grep -q ^$id already_picked ||
|
||||
grep -q ^$id already_landed ; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
is_fixes_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "fixes:[[:space:]]*"
|
||||
if test $? -eq 0; then
|
||||
return 0
|
||||
fi
|
||||
is_sha_nomination "$1" "fixes[[:space:]]\+"
|
||||
}
|
||||
|
||||
is_brokenby_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "broken by"
|
||||
}
|
||||
|
||||
is_revert_nomination()
|
||||
{
|
||||
is_sha_nomination "$1" "This reverts commit "
|
||||
}
|
||||
|
||||
# Use the last branchpoint as our limit for the search
|
||||
latest_branchpoint=`git merge-base 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
|
||||
@@ -118,33 +32,7 @@ do
|
||||
continue
|
||||
fi
|
||||
|
||||
if is_fixes_nomination "$sha"; then
|
||||
tag=fixes
|
||||
elif is_brokenby_nomination "$sha"; then
|
||||
tag=brokenby
|
||||
elif is_revert_nomination "$sha"; then
|
||||
tag=revert
|
||||
elif is_stable_nomination "$sha"; then
|
||||
tag=stable
|
||||
elif is_typod_nomination "$sha"; then
|
||||
tag=typod
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
case "$tag" in
|
||||
fixes | brokenby | revert )
|
||||
if ! sha_in_range; then
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
|
||||
printf "[ %8s ] " "$tag"
|
||||
git --no-pager show --no-patch --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()
|
||||
|
8
bin/install_megadrivers.py
Normal file → Executable file
8
bin/install_megadrivers.py
Normal file → Executable file
@@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding=utf-8
|
||||
# Copyright © 2017-2018 Intel Corporation
|
||||
|
||||
@@ -35,11 +36,7 @@ def main():
|
||||
args = parser.parse_args()
|
||||
|
||||
if os.path.isabs(args.libdir):
|
||||
destdir = os.environ.get('DESTDIR')
|
||||
if destdir:
|
||||
to = os.path.join(destdir, args.libdir[1:])
|
||||
else:
|
||||
to = args.libdir
|
||||
to = os.path.join(os.environ.get('DESTDIR', '/'), args.libdir[1:])
|
||||
else:
|
||||
to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir)
|
||||
|
||||
@@ -49,6 +46,7 @@ def main():
|
||||
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)
|
||||
|
@@ -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)
|
||||
|
72
configure.ac
72
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=5.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
|
||||
@@ -310,17 +304,11 @@ AX_CHECK_COMPILE_FLAG([-Werror=missing-prototypes], [CFLAGS="$CFLAGS
|
||||
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
|
||||
@@ -330,7 +318,6 @@ AX_CHECK_COMPILE_FLAG([-fno-math-errno], [CXXFLAGS="$CXXFL
|
||||
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
|
||||
@@ -978,22 +965,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 +1415,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)
|
||||
|
||||
@@ -1716,8 +1686,6 @@ xdri)
|
||||
if test x"$enable_dri" = xyes; then
|
||||
dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
|
||||
fi
|
||||
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
fi
|
||||
if test x"$dri_platform" = xapple ; then
|
||||
DEFINES="$DEFINES -DGLX_USE_APPLEGL"
|
||||
@@ -1727,6 +1695,12 @@ xdri)
|
||||
fi
|
||||
fi
|
||||
|
||||
# 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"
|
||||
X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
|
||||
@@ -1738,6 +1712,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 +1732,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 +1824,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
|
||||
@@ -1864,7 +1840,6 @@ for plat in $platforms; do
|
||||
;;
|
||||
|
||||
drm)
|
||||
test "x$enable_egl" = "xyes" &&
|
||||
test "x$enable_gbm" = "xno" &&
|
||||
AC_MSG_ERROR([EGL platform drm needs gbm])
|
||||
DEFINES="$DEFINES -DHAVE_DRM_PLATFORM"
|
||||
@@ -2721,6 +2696,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)
|
||||
@@ -2835,8 +2811,9 @@ 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" != x5.0.0 -a \
|
||||
"x$LLVM_VERSION" != x5.0.1 -a \
|
||||
"x$LLVM_VERSION" != x5.0.2)
|
||||
|
||||
if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then
|
||||
llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
|
||||
@@ -3193,7 +3170,6 @@ 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
|
||||
@@ -3365,7 +3341,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>
|
||||
|
@@ -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
|
||||
@@ -219,7 +219,7 @@ GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
||||
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_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)
|
||||
@@ -308,7 +308,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_sample_locations DONE (nvc0)
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (freedreno, i965, nvc0, radeonsi, r600, softpipe, swr, virgl)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, r600, radeonsi, virgl)
|
||||
GL_ARB_shader_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,14 +319,13 @@ 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)
|
||||
@@ -344,63 +343,6 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
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.
|
||||
|
||||
|
@@ -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,61 +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>
|
||||
|
@@ -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,48 @@ 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 rowspan="3">18.1</td>
|
||||
<td>2018-08-10</td>
|
||||
<td>18.1.6</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-08-24</td>
|
||||
<td>18.1.7</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-09-07</td>
|
||||
<td>18.1.8</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned 18.1.x release</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 rowspan="4">18.2</td>
|
||||
<td>2018-08-01</td>
|
||||
<td>18.2.0rc1</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-08-08</td>
|
||||
<td>18.2.0rc2</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-08-15</td>
|
||||
<td>18.2.0rc3</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-08-22</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>
|
||||
@@ -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,15 +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>
|
||||
|
@@ -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>
|
||||
|
||||
|
||||
@@ -60,217 +59,9 @@ Note: some of the new features are only available with certain drivers.
|
||||
<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>
|
||||
|
||||
</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,283 +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 / December 7, 2018</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>
|
||||
17a124d4dbc712505d22a7815c9b0cee22214c96c8abb91539a2b1351e38a000 mesa-18.3.0.tar.gz
|
||||
b63f947e735d6ef3dfaa30c789a9adfbae18aea671191eaacde95a18c17fc38a mesa-18.3.0.tar.xz
|
||||
</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><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=91433">Bug 91433</a> - piglit.spec.arb_depth_buffer_float.fbo-depth-gl_depth_component32f-copypixels fails</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=94957">Bug 94957</a> - dEQP failures on llvmpipe</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=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=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=100200">Bug 100200</a> - Default Unreal Engine 4 frag shader fails to compile</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=102597">Bug 102597</a> - [Regression] mpv, high rendering times (two to three times higher)</li>
|
||||
|
||||
<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=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=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=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=105333">Bug 105333</a> - [gallium-nine] missing geometry after commit ac: replace ac_build_kill with ac_build_kill_if_false</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105371">Bug 105371</a> - r600_shader_from_tgsi - GPR limit exceeded - shader requires 360 registers</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=106231">Bug 106231</a> - llvmpipe blends produce bad code after llvm patch https://reviews.llvm.org/D44785</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106283">Bug 106283</a> - Shader replacements works only for limited use cases</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106577">Bug 106577</a> - broken rendering with nine and nouveau (GM107)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106833">Bug 106833</a> - glLinkProgram is expected to fail when vertex attribute aliasing happens on ES3.0 context or later</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=106980">Bug 106980</a> - Basemark GPU vulkan benchmark hangs on GFX9</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=107088">Bug 107088</a> - [GEN8+] Hang when discarding a fragment if dual source blending is enabled but shader doesn't support it</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=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=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=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=107313">Bug 107313</a> - Meson instructions on web site are non-optimal</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=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=107483">Bug 107483</a> - DispatchSanity_test.GL31_CORE regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107487">Bug 107487</a> - [intel] [tools] intel gpu tools don't honor -D tools=[]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107488">Bug 107488</a> - gl.h:2090: error: redefinition of typedef ‘GLeglImageOES’</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=107511">Bug 107511</a> - KHR/khrplatform.h not always installed when needed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107524">Bug 107524</a> - Broken packDouble2x32 at llvmpipe</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=107547">Bug 107547</a> - shader crashing glsl_compiler (uniform block assigned to vec2, then component substraced by 1)</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=107563">Bug 107563</a> - [RADV] Broken rendering in Unity demos</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107565">Bug 107565</a> - TypeError: __init__() got an unexpected keyword argument 'future_imports'</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><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107626">Bug 107626</a> - [SNB] The graphical corruption and GPU hang occur sometimes on the piglit test "arb_texture_multisample-large-float-texture" with parameter --fp16</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107658">Bug 107658</a> - [Regression] [bisected] [OpenGLES CTS] KHR-GLES3.packed_pixels.*rectangle.r*8_snorm</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107734">Bug 107734</a> - [GLSL] glsl-fface-invariant, glsl-fcoord-invariant and glsl-pcoord-invariant should fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107745">Bug 107745</a> - [bisected] [bdw bsw] piglit.spec.arb_fragment_shader_interlock.arb_fragment_shader_interlock-image-load-store failure</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>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107765">Bug 107765</a> - [regression] Batman Arkham City crashes with DXVK under wine</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=107786">Bug 107786</a> - [DXVK] MSAA reflections are broken in GTA V</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107806">Bug 107806</a> - glsl_get_natural_size_align_bytes() ABORT with GfxBench Vulkan AztecRuins</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=107856">Bug 107856</a> - i965 incorrectly calculates the number of layers for texture views (assert)</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=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=107869">Bug 107869</a> - u_thread.h:87:4: error: use of undeclared identifier 'cpu_set_t'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107870">Bug 107870</a> - Undefined symbols for architecture x86_64: "_util_cpu_caps"</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>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107923">Bug 107923</a> - build_id.c:126: multiple definition of `build_id_length'</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=107941">Bug 107941</a> - GPU hang and system crash with Dota 2 using Vulkan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107971">Bug 107971</a> - SPV_GOOGLE_hlsl_functionality1 / SPV_GOOGLE_decorate_string</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>
|
||||
|
||||
<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>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108082">Bug 108082</a> - warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108109">Bug 108109</a> - [GLSL] no-overloads.vert fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108112">Bug 108112</a> - [vulkancts] some of the coherent memory tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108113">Bug 108113</a> - [vulkancts] r32g32b32 transfer operations not implemented</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108115">Bug 108115</a> - [vulkancts] dEQP-VK.subgroups.vote.graphics.subgroupallequal.* fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108164">Bug 108164</a> - [radv] VM faults since 5d6a560a2986c9ab421b3c7904d29bb7bc35e36f</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108245">Bug 108245</a> - RADV/Vega: Low mip levels of large BCn textures get corrupted by vkCmdCopyBufferToImage</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=108311">Bug 108311</a> - Query buffer object support is broken on r600.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108319">Bug 108319</a> - [GLK BXT BSW] Assertion in piglit.spec.arb_gpu_shader_fp64.execution.built-in-functions.vs-sign-sat-neg-abs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108491">Bug 108491</a> - Commit baa38c14 causes output issues on my VEGA with RADV</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108524">Bug 108524</a> - [RADV] GPU lockup on event synchronization</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108530">Bug 108530</a> - (mesa-18.3) [Tracker] Mesa 18.3 Release Tracker</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108532">Bug 108532</a> - make check nir_copy_prop_vars_test.store_store_load_different_components regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108560">Bug 108560</a> - Mesa 32 is built without sse</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108595">Bug 108595</a> - ir3_compiler valgrind build error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108617">Bug 108617</a> - [deqp] Mesa fails conformance for egl_ext_device</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108630">Bug 108630</a> - [G965] piglit.spec.!opengl 1_2.tex3d-maxsize spins forever</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108635">Bug 108635</a> - Mesa master commit 68dc591af16ebb36814e4c187e4998948103c99c causes XWayland to segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108713">Bug 108713</a> - Gallium: use after free with transform feedback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108829">Bug 108829</a> - [meson] libglapi exports internal API</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108894">Bug 108894</a> - [anv] vkCmdCopyBuffer() and vkCmdCopyQueryPoolResults() write-after-write hazard</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108909">Bug 108909</a> - Vkd3d test failure test_resolve_non_issued_query_data()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108914">Bug 108914</a> - blocky shadow artifacts in The Forest with DXVK, RADV_DEBUG=nohiz fixes this</li>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<ul>
|
||||
<li>TBD</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,63 +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.1 Release Notes / December 11, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.1 is a bug fix release which fixes bugs found since the 18.3.0 release.
|
||||
</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>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
256d0c3d88e380c1b8e3fc5c6ac34001e3b7c30458b8b852407ec68b8ccd9fda mesa-18.3.1.tar.gz
|
||||
5b1f827d28684a25f6657289f8b7d47ac56395988c7ac23e0ec9a62b644bdc63 mesa-18.3.1.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.0</li>
|
||||
<li>Update version to 18.3.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>anv,radv: Disable VK_EXT_pci_bus_info</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,265 +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.2 Release Notes / January 17, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.2 is a bug fix release which fixes bugs found since the 18.3.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.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>
|
||||
1cde4fafd40cd1ad4ee3a13b364b7a0175a08b7afdd127fb46f918c1e1dfd4b0 mesa-18.3.2.tar.gz
|
||||
f7ce7181c07b6d8e0132da879af1729523a6c8aa87f79a9d59dfd064024cfb35 mesa-18.3.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=106595">Bug 106595</a> - [RADV] Rendering distortions only when MSAA is enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107728">Bug 107728</a> - Wrong background in Sascha Willem's Multisampling Demo</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108114">Bug 108114</a> - [vulkancts] new VK_KHR_16bit_storage tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108116">Bug 108116</a> - [vulkancts] stencil partial clear tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108624">Bug 108624</a> - [regression][bisected] "nir: Copy propagation between blocks" regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108910">Bug 108910</a> - Vkd3d test failure test_multisample_array_texture()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108911">Bug 108911</a> - Vkd3d test failure test_clear_render_target_view()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108943">Bug 108943</a> - Build fails on ppc64le with meson</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109072">Bug 109072</a> - GPU hang in blender 2.80</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109081">Bug 109081</a> - [bisected] [HSW] Regression in clipping.user_defined.clip_* vulkancts tests</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109151">Bug 109151</a> - [KBL-G][vulkan] dEQP-VK.texture.explicit_lod.2d.sizes.31x55_nearest_linear_mipmap_nearest_repeat failed verification.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109202">Bug 109202</a> - nv50_ir.cpp:749:19: error: cannot use typeid with -fno-rtti</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109204">Bug 109204</a> - [regression, bisected] retroarch's crt-royale shader crash radv</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Deucher (3):</p>
|
||||
<ul>
|
||||
<li>pci_ids: add new vega10 pci ids</li>
|
||||
<li>pci_ids: add new vega20 pci id</li>
|
||||
<li>pci_ids: add new VegaM pci id</li>
|
||||
</ul>
|
||||
|
||||
<p>Alexander von Gluck IV (1):</p>
|
||||
<ul>
|
||||
<li>egl/haiku: Fix reference to disp vs dpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (2):</p>
|
||||
<ul>
|
||||
<li>glsl: correct typo in GLSL compilation error message</li>
|
||||
<li>glsl/linker: specify proper direction in location aliasing error</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Fix volumetexture dtor on ctor failure</li>
|
||||
<li>st/nine: Bind src not dst in nine_context_box_upload</li>
|
||||
<li>st/nine: Add src reference to nine_context_range_upload</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (5):</p>
|
||||
<ul>
|
||||
<li>radv: Do a cache flush if needed before reading predicates.</li>
|
||||
<li>radv: Implement buffer stores with less than 4 components.</li>
|
||||
<li>anv/android: Do not reject storage images.</li>
|
||||
<li>radv: Fix rasterization precision bits.</li>
|
||||
<li>spirv: Fix matrix parameters in function calls.</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (3):</p>
|
||||
<ul>
|
||||
<li>nir: properly clear the entry sources in copy_prop_vars</li>
|
||||
<li>nir: properly find the entry to keep in copy_prop_vars</li>
|
||||
<li>nir: remove dead code from copy_prop_vars</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>radv/xfb: fix counter buffer bounds checks.</li>
|
||||
<li>virgl/vtest: fix front buffer flush with protocol version 0.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (6):</p>
|
||||
<ul>
|
||||
<li>meson: Fix ppc64 little endian detection</li>
|
||||
<li>meson: Add support for gnu hurd</li>
|
||||
<li>meson: Add toggle for glx-direct</li>
|
||||
<li>meson: Override C++ standard to gnu++11 when building with altivec on ppc64</li>
|
||||
<li>meson: Error out if building nouveau and using LLVM without rtti</li>
|
||||
<li>autotools: Remove tegra vdpau driver</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (12):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.1</li>
|
||||
<li>bin/get-pick-list.sh: rework handing of sha nominations</li>
|
||||
<li>bin/get-pick-list.sh: warn when commit lists invalid sha</li>
|
||||
<li>cherry-ignore: meson: libfreedreno depends upon libdrm (for fence support)</li>
|
||||
<li>glx: mandate xf86vidmode only for "drm" dri platforms</li>
|
||||
<li>meson: don't require glx/egl/gbm with gallium drivers</li>
|
||||
<li>pipe-loader: meson: reference correct library</li>
|
||||
<li>TODO: glx: meson: build dri based glx tests, only with -Dglx=dri</li>
|
||||
<li>glx: meson: drop includes from a link-only library</li>
|
||||
<li>glx: meson: wire up the dispatch-index-check test</li>
|
||||
<li>glx/test: meson: assorted include fixes</li>
|
||||
<li>Update version to 18.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (6):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>vc4: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>v3d: Fix a leak of the disassembled instruction string during debug dumps.</li>
|
||||
<li>v3d: Make sure that a thrsw doesn't split a multop from its umul24.</li>
|
||||
<li>v3d: Add missing flagging of SYNCB as a TSY op.</li>
|
||||
<li>gallium/ttn: Fix setup of outputs_written.</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>virgl: wrap vertex element state in a struct</li>
|
||||
<li>virgl: work around bad assumptions in virglrenderer</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (5):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Handle source modifiers in lower_integer_multiplication().</li>
|
||||
<li>intel/fs: Implement quad swizzles on ICL+.</li>
|
||||
<li>intel/fs: Fix bug in lower_simd_width while splitting an instruction which was already split.</li>
|
||||
<li>intel/eu/gen7: Fix brw_MOV() with DF destination and strided source.</li>
|
||||
<li>intel/fs: Respect CHV/BXT regioning restrictions in copy propagation pass.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4/dce: Don't narrow the write mask if the flags are used</li>
|
||||
<li>Revert "nir/lower_indirect: Bail early if modes == 0"</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>clover: Fix build after clang r348827</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>nir/constant_folding: Fix source bit size logic</li>
|
||||
<li>intel/blorp: Be more conservative about copying clear colors</li>
|
||||
<li>spirv: Handle any bit size in vector_insert/extract</li>
|
||||
<li>anv/apply_pipeline_layout: Set the cursor in lower_res_reindex_intrinsic</li>
|
||||
<li>spirv: Sign-extend array indices</li>
|
||||
<li>intel/peephole_ffma: Fix swizzle propagation</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix use-after-free in ConstantFolding::visit</li>
|
||||
</ul>
|
||||
|
||||
<p>Kirill Burtsev (1):</p>
|
||||
<ul>
|
||||
<li>loader: free error state, when checking the drawable type</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (5):</p>
|
||||
<ul>
|
||||
<li>anv: don't do partial resolve on layer > 0</li>
|
||||
<li>i965: include draw_params/derived_draw_params for VF cache workaround</li>
|
||||
<li>i965: add CS stall on VF invalidation workaround</li>
|
||||
<li>anv: explictly specify format for blorp ccs/mcs op</li>
|
||||
<li>anv: flush fast clear colors into compressed surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: don't leak pipe_surface if pipe_context is not current</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Fix use of 1- or 2- component GL_DOUBLE vbo's.</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (1):</p>
|
||||
<ul>
|
||||
<li>meson: link LLVM 'native' component when LLVM is available</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (3):</p>
|
||||
<ul>
|
||||
<li>radv: don't set surf_index for stencil-only images</li>
|
||||
<li>ac/nir,radv,radeonsi/nir: use correct indices for interpolation intrinsics</li>
|
||||
<li>ac: split 16-bit ssbo loads that may not be dword aligned</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (2):</p>
|
||||
<ul>
|
||||
<li>freedreno/drm: fix memory leak</li>
|
||||
<li>mesa/st/nir: fix missing nir_compact_varyings</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: switch on EOP when primitive restart is enabled with triangle strips</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>tgsi/scan: fix loop exit point in tgsi_scan_tess_ctrl()</li>
|
||||
<li>tgsi/scan: correctly walk instructions in tgsi_scan_tess_ctrl()</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (2):</p>
|
||||
<ul>
|
||||
<li>meson: Fix typo.</li>
|
||||
<li>meson: Fix libsensors detection.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,208 +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.3 Release Notes / January 31, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.3 is a bug fix release which fixes bugs found since the 18.3.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.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>
|
||||
6b9893942fe8011c7736d51448deb6ef80ece2257e0fac27b02e997a6605d5e4 mesa-18.3.3.tar.gz
|
||||
2ab6886a6966c532ccbcc3b240925e681464b658244f0cbed752615af3936299 mesa-18.3.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=108877">Bug 108877</a> - OpenGL CTS gl43 test cases were interrupted due to segment fault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109023">Bug 109023</a> - error: inlining failed in call to always_inline ‘__m512 _mm512_and_ps(__m512, __m512)’: target specific option mismatch</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109129">Bug 109129</a> - format_types.h:1220: undefined reference to `_mm256_cvtps_ph'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109229">Bug 109229</a> - glLinkProgram locks up for ~30 seconds</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109242">Bug 109242</a> - [RADV] The Witcher 3 system freeze</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109488">Bug 109488</a> - Mesa 18.3.2 crash on a specific fragment shader (assert triggered) / already fixed on the master branch.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (2):</p>
|
||||
<ul>
|
||||
<li>bin/get-pick-list.sh: fix the oneline printing</li>
|
||||
<li>bin/get-pick-list.sh: fix redirection in sh</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (1):</p>
|
||||
<ul>
|
||||
<li>st/nine: Immediately upload user provided textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (3):</p>
|
||||
<ul>
|
||||
<li>radv: Only use 32 KiB per threadgroup on Stoney.</li>
|
||||
<li>radv: Set partial_vs_wave for pipelines with just GS, not tess.</li>
|
||||
<li>nir: Account for atomics in copy propagation.</li>
|
||||
</ul>
|
||||
|
||||
<p>Bruce Cherniak (1):</p>
|
||||
<ul>
|
||||
<li>gallium/swr: Fix multi-context sync fence deadlock.</li>
|
||||
</ul>
|
||||
|
||||
<p>Carsten Haitzler (Rasterman) (2):</p>
|
||||
<ul>
|
||||
<li>vc4: Use named parameters for the NEON inline asm.</li>
|
||||
<li>vc4: Declare the cpu pointers as being modified in NEON asm.</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Fix copying function's out to temp if dereferenced by array</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (3):</p>
|
||||
<ul>
|
||||
<li>dri_interface: add put shm image2 (v2)</li>
|
||||
<li>glx: add support for putimageshm2 path (v2)</li>
|
||||
<li>gallium: use put image shm2 path (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (4):</p>
|
||||
<ul>
|
||||
<li>meson: allow building dri driver without window system if osmesa is classic</li>
|
||||
<li>meson: fix swr KNL build</li>
|
||||
<li>meson: Fix compiler checks for SWR with ICC</li>
|
||||
<li>meson: Add warnings and errors when using ICC</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (4):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.2</li>
|
||||
<li>cherry-ignore: radv: Fix multiview depth clears</li>
|
||||
<li>cherry-ignore: spirv: Handle arbitrary bit sizes for deref array indices</li>
|
||||
<li>cherry-ignore: WARNING: Commit XXX lists invalid sha</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (2):</p>
|
||||
<ul>
|
||||
<li>vc4: Don't leak the GPU fd for renderonly usage.</li>
|
||||
<li>vc4: Enable NEON asm on meson cross-builds.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (2):</p>
|
||||
<ul>
|
||||
<li>configure: EGL requirements only apply if EGL is built</li>
|
||||
<li>meson/vdpau: add missing soversion</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>anv/device: fix maximum number of images supported</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (3):</p>
|
||||
<ul>
|
||||
<li>anv/nir: Rework arguments to apply_pipeline_layout</li>
|
||||
<li>anv: Only parse pImmutableSamplers if the descriptor has samplers</li>
|
||||
<li>nir/xfb: Fix offset accounting for dvec3/4</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (2):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: disable tryCollapseChainedMULs in ConstantFolding for precise instructions</li>
|
||||
<li>glsl/lower_output_reads: set invariant and precise flags on temporaries</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv: fix invalid binding table index computation</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi: also apply the GS hang workaround to draws without tessellation</li>
|
||||
<li>radeonsi: fix a u_blitter crash after a shader with FBFETCH</li>
|
||||
<li>radeonsi: fix rendering to tiny viewports where the viewport center is > 8K</li>
|
||||
<li>st/mesa: purge framebuffers when unbinding a context</li>
|
||||
</ul>
|
||||
|
||||
<p>Niklas Haas (1):</p>
|
||||
<ul>
|
||||
<li>radv: correctly use vulkan 1.0 by default</li>
|
||||
</ul>
|
||||
|
||||
<p>Pierre Moreau (1):</p>
|
||||
<ul>
|
||||
<li>meson: Fix with_gallium_icd to with_opencl_icd</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>loader: fix the no-modifiers case</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: clean up setting partial_es_wave for distributed tess on VI</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (5):</p>
|
||||
<ul>
|
||||
<li>ac/nir_to_llvm: fix interpolateAt* for arrays</li>
|
||||
<li>ac/nir_to_llvm: fix clamp shadow reference for more hardware</li>
|
||||
<li>radv/ac: fix some fp16 handling</li>
|
||||
<li>glsl: use remap location when serialising uniform program resource data</li>
|
||||
<li>glsl: Copy function out to temp if we don't directly ref a variable</li>
|
||||
</ul>
|
||||
|
||||
<p>Tomeu Vizoso (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: Consolidate buffer references from framebuffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>meson: Fix typo.</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.3.4 Release Notes / February 18, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.4 is a bug fix release which fixes bugs found since the 18.3.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.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>
|
||||
e22e6fe4c3aca80fe872a0a7285b6c5523e0cfc0bfb57ffcc3b3d66d292593e4 mesa-18.3.4.tar.gz
|
||||
32314da4365d37f80d84f599bd9625b00161c273c39600ba63b45002d500bb07 mesa-18.3.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=109107">Bug 109107</a> - gallium/st/va: change va max_profiles when using Radeon VCN Hardware</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109401">Bug 109401</a> - [DXVK] Project Cars rendering problems</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109543">Bug 109543</a> - After upgrade mesa to 19.0.0~rc1 all vulkan based application stop working ["vulkan-cube" received SIGSEGV in radv_pipeline_init_blend_state at ../src/amd/vulkan/radv_pipeline.c:699]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109603">Bug 109603</a> - nir_instr_as_deref: Assertion `parent && parent->type == nir_instr_type_deref' failed.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Bart Oldeman (1):</p>
|
||||
<ul>
|
||||
<li>gallium-xlib: query MIT-SHM before using it.</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<ul>
|
||||
<li>radv: Only look at pImmutableSamples if the descriptor has a sampler.</li>
|
||||
<li>amd/common: Use correct writemask for shared memory stores.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>get-pick-list: Add --pretty=medium to the arguments for Cc patches</li>
|
||||
<li>meson: Add dependency on genxml to anvil</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.3</li>
|
||||
<li>cherry-ignore: nv50,nvc0: add explicit settings for recent caps</li>
|
||||
<li>cherry-ignore: add more 19.0 only nominations from Ilia</li>
|
||||
<li>cherry-ignore: radv: fix using LOAD_CONTEXT_REG with old GFX ME firmwares on GFX8</li>
|
||||
<li>Update version to 18.3.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>vc4: Fix copy-and-paste fail in backport of NEON asm fixes.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (2):</p>
|
||||
<ul>
|
||||
<li>xvmc: fix string comparison</li>
|
||||
<li>xvmc: fix string comparison</li>
|
||||
</ul>
|
||||
|
||||
<p>Ernestas Kulik (2):</p>
|
||||
<ul>
|
||||
<li>vc4: Fix leak in HW queries error path</li>
|
||||
<li>v3d: Fix leak in resource setup error path</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>intel/compiler: do not copy-propagate strided regions to ddx/ddy arguments</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>nvc0: we have 16k-sized framebuffers, fix default scissors</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (3):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Handle IMAGE_SIZE in size_read() and is_send_from_grf()</li>
|
||||
<li>intel/fs: Do the grf127 hack on SIMD8 instructions in SIMD16 mode</li>
|
||||
<li>nir/deref: Rematerialize parents in rematerialize_derefs_in_use_blocks</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (1):</p>
|
||||
<ul>
|
||||
<li>anv/cmd_buffer: check for NULL framebuffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: Limit GL_MAX_[NATIVE_]PROGRAM_PARAMETERS_ARB to 2048</li>
|
||||
</ul>
|
||||
|
||||
<p>Kristian H. Kristensen (1):</p>
|
||||
<ul>
|
||||
<li>freedreno/a6xx: Emit blitter dst with OUT_RELOCW</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (2):</p>
|
||||
<ul>
|
||||
<li>st/va: fix the incorrect max profiles report</li>
|
||||
<li>st/va/vp9: set max reference as default of VP9 reference number</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>meson: drop the xcb-xrandr version requirement</li>
|
||||
<li>gallium/u_threaded: fix EXPLICIT_FLUSH for flush offsets > 0</li>
|
||||
<li>radeonsi: fix EXPLICIT_FLUSH for flush offsets > 0</li>
|
||||
<li>winsys/amdgpu: don't drop manually added fence dependencies</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (2):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: Allow client->server format conversion for PRIME offload. (v2)</li>
|
||||
<li>egl/wayland-drm: Only announce formats via wl_drm which the driver supports.</li>
|
||||
</ul>
|
||||
|
||||
<p>Oscar Blumberg (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Fix guardband computation for large render targets</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>freedreno: stop frob'ing pipe_resource::nr_samples</li>
|
||||
</ul>
|
||||
|
||||
<p>Rodrigo Vivi (1):</p>
|
||||
<ul>
|
||||
<li>intel: Add more PCI Device IDs for Coffee Lake and Ice Lake.</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>radv: fix compiler issues with GCC 9</li>
|
||||
<li>radv: always export gl_SampleMask when the fragment shader uses it</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,271 +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.5 Release Notes / March 18, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.5 is a bug fix release which fixes bugs found since the 18.3.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.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>
|
||||
5f40a336cb2af9b1d66fa243bb03c2c8a3f9b3f067aab6aaaad4316d1bc0e58b mesa-18.3.5.tar.gz
|
||||
4027aea82cc63240b3fcf60eec9eea882955f098c989b29357b01d1695747953 mesa-18.3.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=104297">Bug 104297</a> - [i965] Downward causes GPU hangs and misrendering on Haswell</li>
|
||||
|
||||
<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=107052">Bug 107052</a> - [Regression][bisected]. Crookz - The Big Heist Demo can't be launched despite the "true" flag in "drirc"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107563">Bug 107563</a> - [RADV] Broken rendering in Unity demos</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108457">Bug 108457</a> - [OpenGL CTS] KHR-GL46.tessellation_shader.single.xfb_captures_data_from_correct_stage fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108999">Bug 108999</a> - Calculating the scissors fields when the y is flipped (0 on top) can generate negative numbers that will cause assertion failure later on.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109328">Bug 109328</a> - [BSW BXT GLK] dEQP-VK.subgroups.arithmetic.subgroup regressions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109443">Bug 109443</a> - Build failure with MSVC when using Scons >= 3.0.2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109451">Bug 109451</a> - [IVB,SNB] LINE_STRIPs following a TRIANGLE_FAN fail to use primitive restart</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109594">Bug 109594</a> - totem assert failure: totem: src/intel/genxml/gen9_pack.h:72: __gen_uint: La declaración `v <= max' no se cumple.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109597">Bug 109597</a> - wreckfest issues with transparent objects & skybox</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109601">Bug 109601</a> - [Regression] RuneLite GPU rendering broken on 18.3.x</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109698">Bug 109698</a> - dri.pc contents invalid when built with meson</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109735">Bug 109735</a> - [Regression] broken font with mesa_vulkan_overlay</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alok Hota (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: bypass size limit for non-sampled textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965: re-emit index buffer state on a reset option change.</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (2):</p>
|
||||
<ul>
|
||||
<li>st/nine: Ignore window size if error</li>
|
||||
<li>st/nine: Ignore multisample quality level if no ms</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (4):</p>
|
||||
<ul>
|
||||
<li>radv: Sync ETC2 whitelisted devices.</li>
|
||||
<li>radv: Fix float16 interpolation set up.</li>
|
||||
<li>radv: Allow interpolation on non-float types.</li>
|
||||
<li>radv: Interpolate less aggressively.</li>
|
||||
</ul>
|
||||
|
||||
<p>Carlos Garnacho (1):</p>
|
||||
<ul>
|
||||
<li>wayland/egl: Ensure EGL surface is resized on DRI update_buffers()</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>glsl/linker: Fix unmatched TCS outputs being reduced to local variable</li>
|
||||
</ul>
|
||||
|
||||
<p>David Shao (1):</p>
|
||||
<ul>
|
||||
<li>meson: ensure that xmlpool_options.h is generated for gallium targets that need it</li>
|
||||
</ul>
|
||||
|
||||
<p>Eleni Maria Stea (1):</p>
|
||||
<ul>
|
||||
<li>i965: fixed clamping in set_scissor_bits when the y is flipped</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (7):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.4</li>
|
||||
<li>meson: egl: correctly manage loader/xmlconfig</li>
|
||||
<li>cherry-ignore: add 19.0 only anv/push buffer nominations</li>
|
||||
<li>cherry-ignore: add gitlab-ci fixup commit</li>
|
||||
<li>cherry-ignore: ignore glsl_types memory cleanup patch</li>
|
||||
<li>cherry-ignore: add explicit 19.0 performance optimisations</li>
|
||||
<li>Update version to 18.3.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>egl: fix libdrm-less builds</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (1):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Implement extended strides greater than 4 for IR source regions.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>intel/fs: nir_op_extract_i8 extracts a byte, not a word</li>
|
||||
<li>intel/fs: Fix extract_u8 of an odd byte from a 64-bit integer</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>glsl: fix recording of variables for XFB in TCS shaders</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (10):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Bail in optimize_extract_to_float if we have modifiers</li>
|
||||
<li>compiler/types: Add a contains_64bit helper</li>
|
||||
<li>nir/xfb: Properly align 64-bit values</li>
|
||||
<li>nir/xfb: Work in terms of components rather than slots</li>
|
||||
<li>nir/xfb: Handle compact arrays in gather_xfb_info</li>
|
||||
<li>anv: Count surfaces for non-YCbCr images in GetDescriptorSetLayoutSupport</li>
|
||||
<li>spirv: OpImageQueryLod requires a sampler</li>
|
||||
<li>spirv: Pull offset/stride from the pointer for OpArrayLength</li>
|
||||
<li>glsl/list: Add a list variant of insert_after</li>
|
||||
<li>glsl/lower_vector_derefs: Don't use a temporary for TCS outputs</li>
|
||||
</ul>
|
||||
|
||||
<p>Jose Maria Casanova Crespo (1):</p>
|
||||
<ul>
|
||||
<li>glsl: TCS outputs can not be transform feedback candidates on GLES</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>scons: Workaround failures with MSVC when using SCons 3.0.[2-4].</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (3):</p>
|
||||
<ul>
|
||||
<li>genxml: add missing field values for 3DSTATE_SF</li>
|
||||
<li>anv: advertise 8 subpixel precision bits</li>
|
||||
<li>anv: destroy descriptor sets when pool gets reset</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Fix opt_peephole_csel to not throw away saturates.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kevin Strasser (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri: Avoid out of bounds array access</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>intel: fix urb size for CFL GT1</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (5):</p>
|
||||
<ul>
|
||||
<li>radeonsi: add driconf option radeonsi_enable_nir</li>
|
||||
<li>radeonsi: always enable NIR for Civilization 6 to fix corruption</li>
|
||||
<li>driconf: add Civ6Sub executable for Civilization 6</li>
|
||||
<li>tgsi: don't set tgsi_info::uses_bindless_images for constbufs and hw atomics</li>
|
||||
<li>radeonsi: compile clear and copy buffer compute shaders on demand</li>
|
||||
</ul>
|
||||
|
||||
<p>Mauro Rossi (2):</p>
|
||||
<ul>
|
||||
<li>android: anv: fix generated files depedencies (v2)</li>
|
||||
<li>android: anv: fix libexpat shared dependency</li>
|
||||
</ul>
|
||||
|
||||
<p>Ray Zhang (1):</p>
|
||||
<ul>
|
||||
<li>glx: fix shared memory leak in X11</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (2):</p>
|
||||
<ul>
|
||||
<li>radv: bitcast 16-bit outputs to integers</li>
|
||||
<li>radv: ensure export arguments are always float</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (8):</p>
|
||||
<ul>
|
||||
<li>radv: write the alpha channel of MRT0 when alpha coverage is enabled</li>
|
||||
<li>radv: fix writing the alpha channel of MRT0 when alpha coverage is enabled</li>
|
||||
<li>radv: fix clearing attachments in secondary command buffers</li>
|
||||
<li>radv: fix out-of-bounds access when copying descriptors BO list</li>
|
||||
<li>radv: don't copy buffer descriptors list for samplers</li>
|
||||
<li>radv: properly align the fence and EOP bug VA on GFX9</li>
|
||||
<li>radv: fix pointSizeRange limits</li>
|
||||
<li>radv: always initialize HTILE when the src layout is UNDEFINED</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (2):</p>
|
||||
<ul>
|
||||
<li>dri: meson: do not prefix user provided dri-drivers-path</li>
|
||||
<li>d3d: meson: do not prefix user provided d3d-drivers-path</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (3):</p>
|
||||
<ul>
|
||||
<li>nir: initialize value in copy_prop_vars_block</li>
|
||||
<li>anv: retain the is_array state in create_plane_tex_instr_implicit</li>
|
||||
<li>anv: destroy descriptor sets when pool gets destroyed</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>glsl: fix shader cache for packed param list</li>
|
||||
</ul>
|
||||
|
||||
<p>Yevhenii Kolesnikov (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix allow_higher_compat_version workaround limited by OpenGL 3.0</li>
|
||||
</ul>
|
||||
|
||||
<p>pal1000 (1):</p>
|
||||
<ul>
|
||||
<li>scons: Compatibility with Scons development version string</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,169 +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.6 Release Notes / April 5, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.6 is a bug fix release which fixes bugs found since the 18.3.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.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>
|
||||
4619d92afadf7072f7956599a2ccd0934fc45b4ddbc2eb865bdcb50ddf963f87 mesa-18.3.6.tar.gz
|
||||
aaf17638dcf5a90b93b6389e152fdc9ef147768b09598f24d2c5cf482fcfc705 mesa-18.3.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=100316">Bug 100316</a> - Linking GLSL 1.30 shaders with invariant and deprecated variables triggers an 'mismatching invariant qualifiers' error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108766">Bug 108766</a> - Mesa built with meson has RPATH entries</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109648">Bug 109648</a> - AMD Raven hang during va-api decoding</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109980">Bug 109980</a> - [i915 CI][HSW] spec@arb_fragment_shader_interlock@arb_fragment_shader_interlock-image-load-store - fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110211">Bug 110211</a> - If DESTDIR is set to an empty string, the dri drivers are not installed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110221">Bug 110221</a> - build error with meson</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110259">Bug 110259</a> - radv: Sampling depth-stencil image in GENERAL layout returns nothing but zero (regression, bisected)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (4):</p>
|
||||
<ul>
|
||||
<li>glsl: correctly validate component layout qualifier for dvec{3,4}</li>
|
||||
<li>glsl/linker: don't fail non static used inputs without matching outputs</li>
|
||||
<li>glsl/linker: simplify xfb_offset vs xfb_stride overflow check</li>
|
||||
<li>Revert "glsl: relax input->output validation for SSO programs"</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<ul>
|
||||
<li>radv: Use correct image view comparison for fast clears.</li>
|
||||
<li>ac/nir: Return frag_coord as integer.</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Cross validate variable's invariance by explicit invariance only</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>softpipe: fix texture view crashes</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>bin/install_megadrivers.py: Correctly handle DESTDIR=''</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.5</li>
|
||||
<li>Update version to 18.3.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>dri3: Return the current swap interval from glXGetSwapIntervalMESA().</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>meson: strip rpath from megadrivers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>anv/pass: Flag the need for a RT flush for resolve attachments</li>
|
||||
<li>Revert "anv/radv: release memory allocated by glsl types during spirv_to_nir"</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix GL_NUM_DEVICE_UUIDS_EXT</li>
|
||||
<li>radv: Fix driverUUID</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (2):</p>
|
||||
<ul>
|
||||
<li>radeon/vcn: add H.264 constrained baseline support</li>
|
||||
<li>radeon/vcn/vp9: search the render target from the whole list</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix assertion failure by using the correct type</li>
|
||||
</ul>
|
||||
|
||||
<p>Mark Janes (1):</p>
|
||||
<ul>
|
||||
<li>mesa: properly report the length of truncated log messages</li>
|
||||
</ul>
|
||||
|
||||
<p>Plamena Manolova (1):</p>
|
||||
<ul>
|
||||
<li>i965: Disable ARB_fragment_shader_interlock for platforms prior to GEN9</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>radv: fix binding transform feedback buffers</li>
|
||||
<li>radv: do not always initialize HTILE in compressed state</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>anv/radv: release memory allocated by glsl types during spirv_to_nir</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>st/glsl_to_nir: fix incorrect arrary access</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Klausmann (1):</p>
|
||||
<ul>
|
||||
<li>vulkan/util: meson build - add wayland client include</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).
|
@@ -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);
|
||||
|
@@ -589,7 +589,7 @@ struct __DRIdamageExtensionRec {
|
||||
* SWRast Loader extension.
|
||||
*/
|
||||
#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
|
||||
#define __DRI_SWRAST_LOADER_VERSION 5
|
||||
#define __DRI_SWRAST_LOADER_VERSION 4
|
||||
struct __DRIswrastLoaderExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
@@ -649,23 +649,6 @@ struct __DRIswrastLoaderExtensionRec {
|
||||
void (*getImageShm)(__DRIdrawable *readable,
|
||||
int x, int y, int width, int height,
|
||||
int shmid, void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Put shm image to drawable (v2)
|
||||
*
|
||||
* The original version fixes srcx/y to 0, and expected
|
||||
* the offset to be adjusted. This version allows src x,y
|
||||
* to not be included in the offset. This is needed to
|
||||
* avoid certain overflow checks in the X server, that
|
||||
* result in lost rendering.
|
||||
*
|
||||
* \since 5
|
||||
*/
|
||||
void (*putImageShm2)(__DRIdrawable *drawable, int op,
|
||||
int x, int y,
|
||||
int width, int height, int stride,
|
||||
int shmid, char *shmaddr, unsigned offset,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -763,8 +746,7 @@ struct __DRIuseInvalidateExtensionRec {
|
||||
#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46
|
||||
#define __DRI_ATTRIB_YINVERTED 47
|
||||
#define __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE 48
|
||||
#define __DRI_ATTRIB_MUTABLE_RENDER_BUFFER 49 /* EGL_MUTABLE_RENDER_BUFFER_BIT_KHR */
|
||||
#define __DRI_ATTRIB_MAX 50
|
||||
#define __DRI_ATTRIB_MAX (__DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE + 1)
|
||||
|
||||
/* __DRI_ATTRIB_RENDER_TYPE */
|
||||
#define __DRI_ATTRIB_RGBA_BIT 0x01
|
||||
@@ -1906,57 +1888,9 @@ struct __DRI2rendererQueryExtensionRec {
|
||||
* Image Loader extension. Drivers use this to allocate color buffers
|
||||
*/
|
||||
|
||||
/**
|
||||
* See __DRIimageLoaderExtensionRec::getBuffers::buffer_mask.
|
||||
*/
|
||||
enum __DRIimageBufferMask {
|
||||
__DRI_IMAGE_BUFFER_BACK = (1 << 0),
|
||||
__DRI_IMAGE_BUFFER_FRONT = (1 << 1),
|
||||
|
||||
/**
|
||||
* A buffer shared between application and compositor. The buffer may be
|
||||
* simultaneously accessed by each.
|
||||
*
|
||||
* A shared buffer is equivalent to an EGLSurface whose EGLConfig contains
|
||||
* EGL_MUTABLE_RENDER_BUFFER_BIT_KHR and whose active EGL_RENDER_BUFFER (as
|
||||
* opposed to any pending, requested change to EGL_RENDER_BUFFER) is
|
||||
* EGL_SINGLE_BUFFER.
|
||||
*
|
||||
* If buffer_mask contains __DRI_IMAGE_BUFFER_SHARED, then must contains no
|
||||
* other bits. As a corollary, a __DRIdrawable that has a "shared" buffer
|
||||
* has no front nor back buffer.
|
||||
*
|
||||
* The loader returns __DRI_IMAGE_BUFFER_SHARED in buffer_mask if and only
|
||||
* if:
|
||||
* - The loader supports __DRI_MUTABLE_RENDER_BUFFER_LOADER.
|
||||
* - The driver supports __DRI_MUTABLE_RENDER_BUFFER_DRIVER.
|
||||
* - The EGLConfig of the drawable EGLSurface contains
|
||||
* EGL_MUTABLE_RENDER_BUFFER_BIT_KHR.
|
||||
* - The EGLContext's EGL_RENDER_BUFFER is EGL_SINGLE_BUFFER.
|
||||
* Equivalently, the EGLSurface's active EGL_RENDER_BUFFER (as
|
||||
* opposed to any pending, requested change to EGL_RENDER_BUFFER) is
|
||||
* EGL_SINGLE_BUFFER. (See the EGL 1.5 and
|
||||
* EGL_KHR_mutable_render_buffer spec for details about "pending" vs
|
||||
* "active" EGL_RENDER_BUFFER state).
|
||||
*
|
||||
* A shared buffer is similar to a front buffer in that all rendering to the
|
||||
* buffer should appear promptly on the screen. It is different from
|
||||
* a front buffer in that its behavior is independent from the
|
||||
* GL_DRAW_BUFFER state. Specifically, if GL_DRAW_FRAMEBUFFER is 0 and the
|
||||
* __DRIdrawable's buffer_mask is __DRI_IMAGE_BUFFER_SHARED, then all
|
||||
* rendering should appear promptly on the screen if GL_DRAW_BUFFER is not
|
||||
* GL_NONE.
|
||||
*
|
||||
* The difference between a shared buffer and a front buffer is motivated
|
||||
* by the constraints of Android and OpenGL ES. OpenGL ES does not support
|
||||
* front-buffer rendering. Android's SurfaceFlinger protocol provides the
|
||||
* EGL driver only a back buffer and no front buffer. The shared buffer
|
||||
* mode introduced by EGL_KHR_mutable_render_buffer is a backdoor though
|
||||
* EGL that allows Android OpenGL ES applications to render to what is
|
||||
* effectively the front buffer, a backdoor that required no change to the
|
||||
* OpenGL ES API and little change to the SurfaceFlinger API.
|
||||
*/
|
||||
__DRI_IMAGE_BUFFER_SHARED = (1 << 2),
|
||||
__DRI_IMAGE_BUFFER_FRONT = (1 << 1)
|
||||
};
|
||||
|
||||
struct __DRIimageList {
|
||||
@@ -1981,8 +1915,7 @@ struct __DRIimageLoaderExtensionRec {
|
||||
* \param stamp Address of variable to be updated when
|
||||
* getBuffers must be called again
|
||||
* \param loaderPrivate The loaderPrivate for driDrawable
|
||||
* \param buffer_mask Set of buffers to allocate. A bitmask of
|
||||
* __DRIimageBufferMask.
|
||||
* \param buffer_mask Set of buffers to allocate
|
||||
* \param buffers Returned buffers
|
||||
*/
|
||||
int (*getBuffers)(__DRIdrawable *driDrawable,
|
||||
@@ -2096,85 +2029,4 @@ struct __DRIbackgroundCallableExtensionRec {
|
||||
GLboolean (*isThreadSafe)(void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
* The driver portion of EGL_KHR_mutable_render_buffer.
|
||||
*
|
||||
* If the driver creates a __DRIconfig with
|
||||
* __DRI_ATTRIB_MUTABLE_RENDER_BUFFER, then it must support this extension.
|
||||
*
|
||||
* To support this extension:
|
||||
*
|
||||
* - The driver should create at least one __DRIconfig with
|
||||
* __DRI_ATTRIB_MUTABLE_RENDER_BUFFER. This is strongly recommended but
|
||||
* not required.
|
||||
*
|
||||
* - The driver must be able to handle __DRI_IMAGE_BUFFER_SHARED if
|
||||
* returned by __DRIimageLoaderExtension:getBuffers().
|
||||
*
|
||||
* - When rendering to __DRI_IMAGE_BUFFER_SHARED, it must call
|
||||
* __DRImutableRenderBufferLoaderExtension::displaySharedBuffer() in
|
||||
* response to glFlush and glFinish. (This requirement is not documented
|
||||
* in EGL_KHR_mutable_render_buffer, but is a de-facto requirement in the
|
||||
* Android ecosystem. Android applications expect that glFlush will
|
||||
* immediately display the buffer when in shared buffer mode, and Android
|
||||
* drivers comply with this expectation). It :may: call
|
||||
* displaySharedBuffer() more often than required.
|
||||
*
|
||||
* - When rendering to __DRI_IMAGE_BUFFER_SHARED, it must ensure that the
|
||||
* buffer is always in a format compatible for display because the
|
||||
* display engine (usually SurfaceFlinger or hwcomposer) may display the
|
||||
* image at any time, even concurrently with 3D rendering. For example,
|
||||
* display hardware and the GL hardware may be able to access the buffer
|
||||
* simultaneously. In particular, if the buffer is compressed then take
|
||||
* care that SurfaceFlinger and hwcomposer can consume the compression
|
||||
* format.
|
||||
*
|
||||
* \see __DRI_IMAGE_BUFFER_SHARED
|
||||
* \see __DRI_ATTRIB_MUTABLE_RENDER_BUFFER
|
||||
* \see __DRI_MUTABLE_RENDER_BUFFER_LOADER
|
||||
*/
|
||||
#define __DRI_MUTABLE_RENDER_BUFFER_DRIVER "DRI_MutableRenderBufferDriver"
|
||||
#define __DRI_MUTABLE_RENDER_BUFFER_DRIVER_VERSION 1
|
||||
|
||||
typedef struct __DRImutableRenderBufferDriverExtensionRec __DRImutableRenderBufferDriverExtension;
|
||||
struct __DRImutableRenderBufferDriverExtensionRec {
|
||||
__DRIextension base;
|
||||
};
|
||||
|
||||
/**
|
||||
* The loader portion of EGL_KHR_mutable_render_buffer.
|
||||
*
|
||||
* Requires loader extension DRI_IMAGE_LOADER, through which the loader sends
|
||||
* __DRI_IMAGE_BUFFER_SHARED to the driver.
|
||||
*
|
||||
* \see __DRI_MUTABLE_RENDER_BUFFER_DRIVER
|
||||
*/
|
||||
#define __DRI_MUTABLE_RENDER_BUFFER_LOADER "DRI_MutableRenderBufferLoader"
|
||||
#define __DRI_MUTABLE_RENDER_BUFFER_LOADER_VERSION 1
|
||||
|
||||
typedef struct __DRImutableRenderBufferLoaderExtensionRec __DRImutableRenderBufferLoaderExtension;
|
||||
struct __DRImutableRenderBufferLoaderExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
/**
|
||||
* Inform the display engine (that is, SurfaceFlinger and/or hwcomposer)
|
||||
* that the __DRIdrawable has new content.
|
||||
*
|
||||
* The display engine may ignore this call, for example, if it continually
|
||||
* refreshes and displays the buffer on every frame, as in
|
||||
* EGL_ANDROID_front_buffer_auto_refresh. On the other extreme, the display
|
||||
* engine may refresh and display the buffer only in frames in which the
|
||||
* driver calls this.
|
||||
*
|
||||
* If the fence_fd is not -1, then the display engine will display the
|
||||
* buffer only after the fence signals.
|
||||
*
|
||||
* The drawable's current __DRIimageBufferMask, as returned by
|
||||
* __DRIimageLoaderExtension::getBuffers(), must be
|
||||
* __DRI_IMAGE_BUFFER_SHARED.
|
||||
*/
|
||||
void (*displaySharedBuffer)(__DRIdrawable *drawable, int fence_fd,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -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,7 +2328,7 @@ 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
|
||||
@@ -2531,17 +2454,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 +2480,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 +2851,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 +3061,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 +3119,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 +3230,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 +3432,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)
|
||||
|
@@ -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,32 +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(0x3E9C, 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,10 +200,6 @@ CHIPSET(0x5A54, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
CHIPSET(0x8A50, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A51, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A52, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A56, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A57, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A58, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A59, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A5A, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A5B, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A5C, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
|
@@ -204,7 +204,6 @@ CHIPSET(0x67CC, POLARIS10)
|
||||
CHIPSET(0x67CF, POLARIS10)
|
||||
CHIPSET(0x67D0, POLARIS10)
|
||||
CHIPSET(0x67DF, POLARIS10)
|
||||
CHIPSET(0x6FDF, POLARIS10)
|
||||
|
||||
CHIPSET(0x98E4, STONEY)
|
||||
|
||||
@@ -219,7 +218,6 @@ CHIPSET(0x699F, POLARIS12)
|
||||
|
||||
CHIPSET(0x694C, VEGAM)
|
||||
CHIPSET(0x694E, VEGAM)
|
||||
CHIPSET(0x694F, VEGAM)
|
||||
|
||||
CHIPSET(0x6860, VEGA10)
|
||||
CHIPSET(0x6861, VEGA10)
|
||||
@@ -228,14 +226,8 @@ CHIPSET(0x6863, VEGA10)
|
||||
CHIPSET(0x6864, VEGA10)
|
||||
CHIPSET(0x6867, VEGA10)
|
||||
CHIPSET(0x6868, VEGA10)
|
||||
CHIPSET(0x6869, VEGA10)
|
||||
CHIPSET(0x686A, VEGA10)
|
||||
CHIPSET(0x686B, VEGA10)
|
||||
CHIPSET(0x686C, VEGA10)
|
||||
CHIPSET(0x686D, VEGA10)
|
||||
CHIPSET(0x686E, VEGA10)
|
||||
CHIPSET(0x686F, VEGA10)
|
||||
CHIPSET(0x687F, VEGA10)
|
||||
CHIPSET(0x686C, VEGA10)
|
||||
|
||||
CHIPSET(0x69A0, VEGA12)
|
||||
CHIPSET(0x69A1, VEGA12)
|
||||
@@ -247,9 +239,7 @@ CHIPSET(0x66A0, VEGA20)
|
||||
CHIPSET(0x66A1, VEGA20)
|
||||
CHIPSET(0x66A2, VEGA20)
|
||||
CHIPSET(0x66A3, VEGA20)
|
||||
CHIPSET(0x66A4, 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)
|
||||
|
228
meson.build
228
meson.build
@@ -1,4 +1,4 @@
|
||||
# Copyright © 2017-2019 Intel Corporation
|
||||
# Copyright © 2017-2018 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -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')
|
||||
@@ -54,7 +54,6 @@ with_valgrind = get_option('valgrind')
|
||||
with_libunwind = get_option('libunwind')
|
||||
with_asm = get_option('asm')
|
||||
with_glx_read_only_text = get_option('glx-read-only-text')
|
||||
with_glx_direct = get_option('glx-direct')
|
||||
with_osmesa = get_option('osmesa')
|
||||
with_swr_arches = get_option('swr-arches')
|
||||
with_tools = get_option('tools')
|
||||
@@ -64,11 +63,11 @@ endif
|
||||
|
||||
dri_drivers_path = get_option('dri-drivers-path')
|
||||
if dri_drivers_path == ''
|
||||
dri_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'dri')
|
||||
dri_drivers_path = join_paths(get_option('libdir'), 'dri')
|
||||
endif
|
||||
dri_search_path = get_option('dri-search-path')
|
||||
if dri_search_path == ''
|
||||
dri_search_path = dri_drivers_path
|
||||
dri_search_path = join_paths(get_option('prefix'), dri_drivers_path)
|
||||
endif
|
||||
|
||||
with_gles1 = get_option('gles1')
|
||||
@@ -103,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
|
||||
|
||||
@@ -138,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')
|
||||
@@ -165,14 +160,6 @@ with_gallium_svga = _drivers.contains('svga')
|
||||
with_gallium_virgl = _drivers.contains('virgl')
|
||||
with_gallium_swr = _drivers.contains('swr')
|
||||
|
||||
if cc.get_id() == 'intel'
|
||||
if meson.version().version_compare('< 0.49.0')
|
||||
error('Meson does not have sufficient support of ICC before 0.49.0 to compile mesa')
|
||||
elif with_gallium_swr and meson.version().version_compare('== 0.49.0')
|
||||
warning('Meson as of 0.49.0 is sufficient for compiling mesa with ICC, but there are some caveats with SWR. 0.49.1 should resolve all of these')
|
||||
endif
|
||||
endif
|
||||
|
||||
with_gallium = _drivers.length() != 0 and _drivers != ['']
|
||||
|
||||
if with_gallium and system_has_kms_drm
|
||||
@@ -188,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
|
||||
|
||||
@@ -232,6 +215,8 @@ elif system_has_kms_drm
|
||||
else
|
||||
# FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should
|
||||
# assert here that one of those cases has been met.
|
||||
# FIXME: GNU (hurd) ends up here as well, but meson doesn't officially
|
||||
# support Hurd at time of writing (2017/11)
|
||||
# FIXME: illumos ends up here as well
|
||||
with_dri_platform = 'none'
|
||||
endif
|
||||
@@ -245,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
|
||||
|
||||
@@ -313,21 +297,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
|
||||
@@ -377,6 +356,9 @@ if with_glvnd
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO: toggle for this
|
||||
with_glx_direct = true
|
||||
|
||||
if with_vulkan_icd_dir == ''
|
||||
with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d')
|
||||
endif
|
||||
@@ -392,9 +374,9 @@ endif
|
||||
if with_any_vk and (with_platform_x11 and not with_dri3)
|
||||
error('Vulkan drivers require dri3 for X11 support')
|
||||
endif
|
||||
if with_dri
|
||||
if with_glx == 'disabled' and not with_egl and not with_gbm and with_osmesa != 'classic'
|
||||
error('building dri drivers require at least one windowing system or classic osmesa')
|
||||
if with_dri or with_gallium
|
||||
if with_glx == 'disabled' and not with_egl and not with_platform_haiku
|
||||
error('building dri or gallium drivers require at least one window system')
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -578,6 +560,8 @@ 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
|
||||
dep_va = null_dep
|
||||
@@ -615,7 +599,7 @@ with_gallium_xa = _xa != 'false'
|
||||
|
||||
d3d_drivers_path = get_option('d3d-drivers-path')
|
||||
if d3d_drivers_path == ''
|
||||
d3d_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'd3d')
|
||||
d3d_drivers_path = join_paths(get_option('libdir'), 'd3d')
|
||||
endif
|
||||
|
||||
with_gallium_st_nine = get_option('gallium-nine')
|
||||
@@ -624,7 +608,7 @@ if with_gallium_st_nine
|
||||
error('The nine state tracker requires gallium softpipe/llvmpipe.')
|
||||
elif not (with_gallium_radeonsi or with_gallium_nouveau or with_gallium_r600
|
||||
or with_gallium_r300 or with_gallium_svga or with_gallium_i915)
|
||||
error('The nine state tracker requires at least one non-swrast gallium driver.')
|
||||
error('The nine state tracker requires at least on non-swrast gallium driver.')
|
||||
endif
|
||||
if not with_dri3
|
||||
error('Using nine with wine requires dri3')
|
||||
@@ -632,12 +616,7 @@ if with_gallium_st_nine
|
||||
endif
|
||||
|
||||
if get_option('power8') != 'false'
|
||||
# on old versions of meson the cpu family would return as ppc64le on little
|
||||
# endian power8, this was changed in 0.48 such that the family would always
|
||||
# be ppc64 regardless of endianness, and the the machine.endian() value
|
||||
# should be checked. Since we support versions < 0.48 we need to use
|
||||
# startswith.
|
||||
if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
if host_machine.cpu_family() == 'ppc64le'
|
||||
if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8')
|
||||
error('Altivec is not supported with gcc version < 4.8.')
|
||||
endif
|
||||
@@ -659,7 +638,6 @@ if get_option('power8') != 'false'
|
||||
endif
|
||||
|
||||
_opencl = get_option('gallium-opencl')
|
||||
clover_cpp_std = []
|
||||
if _opencl != 'disabled'
|
||||
if not with_gallium
|
||||
error('OpenCL Clover implementation requires at least one gallium driver.')
|
||||
@@ -668,18 +646,10 @@ if _opencl != 'disabled'
|
||||
dep_clc = dependency('libclc')
|
||||
with_gallium_opencl = true
|
||||
with_opencl_icd = _opencl == 'icd'
|
||||
|
||||
if host_machine.cpu_family().startswith('ppc') and cpp.compiles('''
|
||||
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||
#error "AltiVec not enabled"
|
||||
#endif''',
|
||||
name : 'Altivec')
|
||||
clover_cpp_std += ['cpp_std=gnu++11']
|
||||
endif
|
||||
else
|
||||
dep_clc = null_dep
|
||||
with_gallium_opencl = false
|
||||
with_opencl_icd = false
|
||||
with_gallium_icd = false
|
||||
endif
|
||||
|
||||
gl_pkgconfig_c_flags = []
|
||||
@@ -727,16 +697,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')
|
||||
@@ -799,26 +763,22 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));',
|
||||
endif
|
||||
|
||||
# TODO: this is very incomplete
|
||||
if ['linux', 'cygwin', 'gnu'].contains(host_machine.system())
|
||||
if ['linux', 'cygwin'].contains(host_machine.system())
|
||||
pre_args += '-D_GNU_SOURCE'
|
||||
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
|
||||
if cc.has_argument('-Wmissing-field-initializers')
|
||||
c_args += '-Wno-missing-field-initializers'
|
||||
endif
|
||||
|
||||
c_vis_args = []
|
||||
if cc.has_argument('-fvisibility=hidden')
|
||||
@@ -827,8 +787,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
|
||||
@@ -838,7 +797,7 @@ 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']
|
||||
foreach a : ['non-virtual-dtor', 'missing-field-initializers']
|
||||
if cpp.has_argument('-W' + a)
|
||||
cpp_args += '-Wno-' + a
|
||||
endif
|
||||
@@ -923,9 +882,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?
|
||||
@@ -958,7 +916,7 @@ endif
|
||||
with_asm_arch = ''
|
||||
if with_asm
|
||||
if host_machine.cpu_family() == 'x86'
|
||||
if system_has_kms_drm or host_machine.system() == 'gnu'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'x86'
|
||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||
'-DUSE_SSE_ASM']
|
||||
@@ -987,7 +945,7 @@ if with_asm
|
||||
with_asm_arch = 'sparc'
|
||||
pre_args += ['-DUSE_SPARC_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
elif host_machine.cpu_family() == 'ppc64le'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'ppc64le'
|
||||
pre_args += ['-DUSE_PPC64LE_ASM']
|
||||
@@ -1097,13 +1055,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
|
||||
@@ -1118,12 +1077,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'
|
||||
|
||||
@@ -1134,6 +1095,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
|
||||
@@ -1144,17 +1106,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
|
||||
@@ -1181,7 +1138,7 @@ endif
|
||||
llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit']
|
||||
llvm_optional_modules = []
|
||||
if with_amd_vk or with_gallium_radeonsi or with_gallium_r600
|
||||
llvm_modules += ['amdgpu', 'native', 'bitreader', 'ipo']
|
||||
llvm_modules += ['amdgpu', 'bitreader', 'ipo']
|
||||
if with_gallium_r600
|
||||
llvm_modules += 'asmparser'
|
||||
endif
|
||||
@@ -1191,40 +1148,45 @@ 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'
|
||||
elif with_gallium_swr
|
||||
_llvm_version = '>= 6.0.0'
|
||||
if with_amd_vk or with_gallium_radeonsi or with_gallium_swr
|
||||
_llvm_version = '>= 5.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')
|
||||
@@ -1233,6 +1195,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),
|
||||
@@ -1242,25 +1209,12 @@ if with_llvm
|
||||
# programs, so we need to build all C++ code in mesa without rtti as well to
|
||||
# ensure that linking works.
|
||||
if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
|
||||
if with_gallium_nouveau
|
||||
error('The Nouveau driver requires rtti. You either need to turn off nouveau or use an LLVM built with LLVM_ENABLE_RTTI.')
|
||||
endif
|
||||
cpp_args += '-fno-rtti'
|
||||
endif
|
||||
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')
|
||||
@@ -1319,13 +1273,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')
|
||||
@@ -1339,6 +1287,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
|
||||
@@ -1371,6 +1325,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', required : false)
|
||||
endif
|
||||
if (with_any_vk or with_glx == 'dri' or
|
||||
(with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or
|
||||
@@ -1397,7 +1352,6 @@ if with_platform_x11
|
||||
if with_glx == 'dri'
|
||||
if with_dri_platform == 'drm'
|
||||
dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
|
||||
dep_xxf86vm = dependency('xxf86vm')
|
||||
endif
|
||||
dep_glproto = dependency('glproto', version : '>= 1.4.14')
|
||||
endif
|
||||
@@ -1407,7 +1361,7 @@ if with_platform_x11
|
||||
dep_xcb_xfixes = dependency('xcb-xfixes')
|
||||
endif
|
||||
if with_xlib_lease
|
||||
dep_xcb_xrandr = dependency('xcb-randr')
|
||||
dep_xcb_xrandr = dependency('xcb-randr', version : '>= 1.12')
|
||||
dep_xlib_xrandr = dependency('xrandr', version : '>= 1.3')
|
||||
endif
|
||||
endif
|
||||
@@ -1418,7 +1372,7 @@ endif
|
||||
|
||||
_sensors = get_option('lmsensors')
|
||||
if _sensors != 'false'
|
||||
dep_lmsensors = cc.find_library('sensors', required : _sensors == 'true')
|
||||
dep_lmsensors = cc.find_library('libsensors', required : _sensors == 'true')
|
||||
if dep_lmsensors.found()
|
||||
pre_args += '-DHAVE_LIBSENSORS=1'
|
||||
endif
|
||||
@@ -1448,12 +1402,14 @@ elif with_glx == 'dri'
|
||||
'xcb-glx >= 1.8.1']
|
||||
if with_dri_platform == 'drm'
|
||||
gl_priv_reqs += 'xcb-dri2 >= 1.8'
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
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', 'xvmc', 'all'],
|
||||
description : 'List of tools to build.',
|
||||
)
|
||||
option(
|
||||
'power8',
|
||||
@@ -318,9 +312,3 @@ option(
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Enable VK_EXT_acquire_xlib_display.'
|
||||
)
|
||||
option(
|
||||
'glx-direct',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Enable direct rendering in GLX and EGL for DRI',
|
||||
)
|
||||
|
@@ -48,12 +48,7 @@ import source_list
|
||||
# a path directly. We want to support both, so we need to detect the SCons version,
|
||||
# for which no API is provided by SCons 8-P
|
||||
|
||||
# Scons version string has consistently been in this format:
|
||||
# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
|
||||
# so this formula should cover all versions regardless of type
|
||||
# stable, alpha or beta.
|
||||
# For simplicity alpha and beta flags are removed.
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')[:3]))
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')))
|
||||
|
||||
def quietCommandLines(env):
|
||||
# Quiet command lines
|
||||
|
@@ -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
|
||||
|
||||
@@ -308,20 +311,7 @@ def generate(env):
|
||||
if env.GetOption('num_jobs') <= 1:
|
||||
env.SetOption('num_jobs', num_jobs())
|
||||
|
||||
# Speed up dependency checking. See
|
||||
# - https://github.com/SCons/scons/wiki/GoFastButton
|
||||
# - https://bugs.freedesktop.org/show_bug.cgi?id=109443
|
||||
|
||||
# Scons version string has consistently been in this format:
|
||||
# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
|
||||
# so this formula should cover all versions regardless of type
|
||||
# stable, alpha or beta.
|
||||
# For simplicity alpha and beta flags are removed.
|
||||
|
||||
scons_version = distutils.version.StrictVersion('.'.join(SCons.__version__.split('.')[:3]))
|
||||
if scons_version < distutils.version.StrictVersion('3.0.2') or \
|
||||
scons_version > distutils.version.StrictVersion('3.0.4'):
|
||||
env.Decider('MD5-timestamp')
|
||||
env.Decider('MD5-timestamp')
|
||||
env.SetOption('max_drift', 60)
|
||||
|
||||
# C preprocessor options
|
||||
@@ -338,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',
|
||||
@@ -488,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
|
||||
@@ -599,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'])
|
||||
@@ -689,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')
|
||||
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -90,7 +90,6 @@
|
||||
#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))
|
||||
@@ -133,6 +132,5 @@
|
||||
#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"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -1291,7 +1289,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 +2470,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 +3876,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));
|
||||
|
@@ -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;
|
||||
|
@@ -99,7 +99,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
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;
|
||||
@@ -186,14 +186,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 +255,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 +289,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 +301,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 +310,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,14 +327,6 @@ 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;
|
||||
@@ -354,8 +336,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
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 +410,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 +433,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,7 +539,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 +636,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 +715,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,7 +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 +148,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,
|
||||
|
@@ -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);
|
||||
@@ -184,7 +182,7 @@ ac_get_type_size(LLVMTypeRef type)
|
||||
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:
|
||||
@@ -350,12 +348,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 +515,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 +522,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 +555,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 +563,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 +660,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 +756,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));
|
||||
@@ -896,37 +793,6 @@ ac_build_fs_interp(struct ac_llvm_context *ctx,
|
||||
ctx->f32, args, 5, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_f16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef llvm_chan,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j)
|
||||
{
|
||||
LLVMValueRef args[6];
|
||||
LLVMValueRef p1;
|
||||
|
||||
args[0] = i;
|
||||
args[1] = llvm_chan;
|
||||
args[2] = attr_number;
|
||||
args[3] = ctx->i1false;
|
||||
args[4] = params;
|
||||
|
||||
p1 = ac_build_intrinsic(ctx, "llvm.amdgcn.interp.p1.f16",
|
||||
ctx->f32, args, 5, AC_FUNC_ATTR_READNONE);
|
||||
|
||||
args[0] = p1;
|
||||
args[1] = j;
|
||||
args[2] = llvm_chan;
|
||||
args[3] = attr_number;
|
||||
args[4] = ctx->i1false;
|
||||
args[5] = params;
|
||||
|
||||
return ac_build_intrinsic(ctx, "llvm.amdgcn.interp.p2.f16",
|
||||
ctx->f16, args, 6, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef parameter,
|
||||
@@ -951,18 +817,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
|
||||
@@ -983,39 +842,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, "");
|
||||
@@ -1027,28 +861,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.
|
||||
@@ -1107,7 +932,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),
|
||||
@@ -1135,8 +960,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),
|
||||
@@ -1168,7 +993,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)
|
||||
@@ -1263,7 +1088,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,
|
||||
@@ -1284,8 +1109,7 @@ ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
LLVMValueRef soffset,
|
||||
LLVMValueRef immoffset,
|
||||
LLVMValueRef glc)
|
||||
LLVMValueRef immoffset)
|
||||
{
|
||||
const char *name = "llvm.amdgcn.tbuffer.load.i32";
|
||||
LLVMTypeRef type = ctx->i32;
|
||||
@@ -1297,7 +1121,7 @@ ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
|
||||
immoffset,
|
||||
LLVMConstInt(ctx->i32, V_008F0C_BUF_DATA_FORMAT_16, false),
|
||||
LLVMConstInt(ctx->i32, V_008F0C_BUF_NUM_FORMAT_UINT, false),
|
||||
glc,
|
||||
ctx->i1false,
|
||||
ctx->i1false,
|
||||
};
|
||||
LLVMValueRef res = ac_build_intrinsic(ctx, name, type, params, 9, 0);
|
||||
@@ -1331,7 +1155,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);
|
||||
@@ -1498,7 +1322,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, ""), "");
|
||||
|
||||
@@ -1514,31 +1338,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] = {
|
||||
@@ -2044,24 +1854,83 @@ LLVMValueRef ac_build_cvt_pkrtz_f16(struct ac_llvm_context *ctx,
|
||||
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. */
|
||||
@@ -2078,9 +1947,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],
|
||||
@@ -2090,11 +1960,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. */
|
||||
@@ -2107,9 +1981,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],
|
||||
@@ -2117,23 +1992,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,
|
||||
@@ -2153,20 +2042,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] = {
|
||||
@@ -2204,25 +2079,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, "");
|
||||
@@ -2255,66 +2119,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
|
||||
@@ -2603,7 +2407,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");
|
||||
}
|
||||
|
||||
@@ -2630,25 +2434,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] = {
|
||||
@@ -2663,7 +2456,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,
|
||||
@@ -2685,7 +2478,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)
|
||||
@@ -2694,7 +2487,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 *
|
||||
@@ -2868,7 +2661,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;
|
||||
@@ -2886,15 +2679,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;
|
||||
}
|
||||
|
||||
@@ -2913,11 +2709,9 @@ LLVMValueRef ac_trim_vector(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
if (count == num_components)
|
||||
return value;
|
||||
|
||||
LLVMValueRef masks[MAX2(count, 2)];
|
||||
masks[0] = ctx->i32_0;
|
||||
masks[1] = ctx->i32_1;
|
||||
for (unsigned i = 2; i < count; i++)
|
||||
masks[i] = LLVMConstInt(ctx->i32, i, false);
|
||||
LLVMValueRef masks[] = {
|
||||
LLVMConstInt(ctx->i32, 0, false), LLVMConstInt(ctx->i32, 1, false),
|
||||
LLVMConstInt(ctx->i32, 2, false), LLVMConstInt(ctx->i32, 3, false)};
|
||||
|
||||
if (count == 1)
|
||||
return LLVMBuildExtractElement(ctx->builder, value, masks[0],
|
||||
@@ -3437,7 +3231,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;
|
||||
@@ -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,
|
||||
@@ -217,14 +185,6 @@ ac_build_fs_interp(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_f16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef llvm_chan,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef parameter,
|
||||
@@ -236,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,
|
||||
@@ -250,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,
|
||||
@@ -302,8 +258,7 @@ ac_build_tbuffer_load_short(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
LLVMValueRef soffset,
|
||||
LLVMValueRef immoffset,
|
||||
LLVMValueRef glc);
|
||||
LLVMValueRef immoffset);
|
||||
|
||||
LLVMValueRef
|
||||
ac_get_thread_id(struct ac_llvm_context *ctx);
|
||||
@@ -442,10 +397,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);
|
||||
|
||||
@@ -458,11 +409,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,
|
||||
|
@@ -92,7 +92,11 @@ 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;
|
||||
}
|
||||
|
@@ -135,8 +135,6 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
|
||||
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 "";
|
||||
}
|
||||
@@ -151,13 +149,15 @@ static LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
char features[256];
|
||||
const char *triple = (tm_options & AC_TM_SUPPORTS_SPILL) ? "amdgcn-mesa-mesa3d" : "amdgcn--";
|
||||
LLVMTargetRef target = ac_get_llvm_target(triple);
|
||||
bool barrier_does_waitcnt = family != CHIP_VEGA20;
|
||||
|
||||
snprintf(features, sizeof(features),
|
||||
"+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s%s%s",
|
||||
"+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s%s%s%s",
|
||||
tm_options & AC_TM_SISCHED ? ",+si-scheduler" : "",
|
||||
tm_options & AC_TM_FORCE_ENABLE_XNACK ? ",+xnack" : "",
|
||||
tm_options & AC_TM_FORCE_DISABLE_XNACK ? ",-xnack" : "",
|
||||
tm_options & AC_TM_PROMOTE_ALLOCA_TO_SCRATCH ? ",-promote-alloca" : "");
|
||||
tm_options & AC_TM_PROMOTE_ALLOCA_TO_SCRATCH ? ",-promote-alloca" : "",
|
||||
barrier_does_waitcnt ? ",+auto-waitcnt-before-barrier" : "");
|
||||
|
||||
LLVMTargetMachineRef tm = LLVMCreateTargetMachine(
|
||||
target,
|
||||
|
@@ -311,18 +311,9 @@ static LLVMValueRef emit_uint_carry(struct ac_llvm_context *ctx,
|
||||
}
|
||||
|
||||
static LLVMValueRef emit_b2f(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef src0,
|
||||
unsigned bitsize)
|
||||
LLVMValueRef src0)
|
||||
{
|
||||
LLVMValueRef result = LLVMBuildAnd(ctx->builder, src0,
|
||||
LLVMBuildBitCast(ctx->builder, LLVMConstReal(ctx->f32, 1.0), ctx->i32, ""),
|
||||
"");
|
||||
result = LLVMBuildBitCast(ctx->builder, result, ctx->f32, "");
|
||||
|
||||
if (bitsize == 32)
|
||||
return result;
|
||||
|
||||
return LLVMBuildFPExt(ctx->builder, result, ctx->f64, "");
|
||||
return LLVMBuildAnd(ctx->builder, src0, LLVMBuildBitCast(ctx->builder, LLVMConstReal(ctx->f32, 1.0), ctx->i32, ""), "");
|
||||
}
|
||||
|
||||
static LLVMValueRef emit_f2b(struct ac_llvm_context *ctx,
|
||||
@@ -436,7 +427,7 @@ static LLVMValueRef emit_bitfield_extract(struct ac_llvm_context *ctx,
|
||||
/* FIXME: LLVM 7 returns incorrect result when count is 0.
|
||||
* https://bugs.freedesktop.org/show_bug.cgi?id=107276
|
||||
*/
|
||||
LLVMValueRef zero = ctx->i32_0;
|
||||
LLVMValueRef zero = LLVMConstInt(ctx->i32, 0, false);
|
||||
LLVMValueRef icond1 = LLVMBuildICmp(ctx->builder, LLVMIntEQ, srcs[2], LLVMConstInt(ctx->i32, 32, false), "");
|
||||
LLVMValueRef icond2 = LLVMBuildICmp(ctx->builder, LLVMIntEQ, srcs[2], zero, "");
|
||||
|
||||
@@ -495,7 +486,7 @@ static LLVMValueRef emit_unpack_half_2x16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef src0)
|
||||
{
|
||||
LLVMValueRef const16 = LLVMConstInt(ctx->i32, 16, false);
|
||||
LLVMValueRef temps[2], val;
|
||||
LLVMValueRef temps[2], result, val;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
@@ -504,7 +495,12 @@ static LLVMValueRef emit_unpack_half_2x16(struct ac_llvm_context *ctx,
|
||||
val = LLVMBuildBitCast(ctx->builder, val, ctx->f16, "");
|
||||
temps[i] = LLVMBuildFPExt(ctx->builder, val, ctx->f32, "");
|
||||
}
|
||||
return ac_build_gather_values(ctx, temps, 2);
|
||||
|
||||
result = LLVMBuildInsertElement(ctx->builder, LLVMGetUndef(ctx->v2f32), temps[0],
|
||||
ctx->i32_0, "");
|
||||
result = LLVMBuildInsertElement(ctx->builder, result, temps[1],
|
||||
ctx->i32_1, "");
|
||||
return result;
|
||||
}
|
||||
|
||||
static LLVMValueRef emit_ddxy(struct ac_nir_context *ctx,
|
||||
@@ -845,10 +841,15 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
|
||||
result = emit_bitfield_insert(&ctx->ac, src[0], src[1], src[2], src[3]);
|
||||
break;
|
||||
case nir_op_bitfield_reverse:
|
||||
result = ac_build_bitfield_reverse(&ctx->ac, src[0]);
|
||||
result = ac_build_intrinsic(&ctx->ac, "llvm.bitreverse.i32", ctx->ac.i32, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
break;
|
||||
case nir_op_bit_count:
|
||||
result = ac_build_bit_count(&ctx->ac, src[0]);
|
||||
if (ac_get_elem_bits(&ctx->ac, LLVMTypeOf(src[0])) == 32)
|
||||
result = ac_build_intrinsic(&ctx->ac, "llvm.ctpop.i32", ctx->ac.i32, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
else {
|
||||
result = ac_build_intrinsic(&ctx->ac, "llvm.ctpop.i64", ctx->ac.i64, src, 1, AC_FUNC_ATTR_READNONE);
|
||||
result = LLVMBuildTrunc(ctx->ac.builder, result, ctx->ac.i32, "");
|
||||
}
|
||||
break;
|
||||
case nir_op_vec2:
|
||||
case nir_op_vec3:
|
||||
@@ -941,7 +942,7 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
|
||||
result = emit_uint_carry(&ctx->ac, "llvm.usub.with.overflow.i32", src[0], src[1]);
|
||||
break;
|
||||
case nir_op_b2f:
|
||||
result = emit_b2f(&ctx->ac, src[0], instr->dest.dest.ssa.bit_size);
|
||||
result = emit_b2f(&ctx->ac, src[0]);
|
||||
break;
|
||||
case nir_op_f2b:
|
||||
result = emit_f2b(&ctx->ac, src[0]);
|
||||
@@ -1003,7 +1004,10 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr)
|
||||
|
||||
case nir_op_pack_64_2x32_split: {
|
||||
LLVMValueRef tmp = LLVMGetUndef(ctx->ac.v2i32);
|
||||
tmp = ac_build_gather_values(&ctx->ac, src, 2);
|
||||
tmp = LLVMBuildInsertElement(ctx->ac.builder, tmp,
|
||||
src[0], ctx->ac.i32_0, "");
|
||||
tmp = LLVMBuildInsertElement(ctx->ac.builder, tmp,
|
||||
src[1], ctx->ac.i32_1, "");
|
||||
result = LLVMBuildBitCast(ctx->ac.builder, tmp, ctx->ac.i64, "");
|
||||
break;
|
||||
}
|
||||
@@ -1167,8 +1171,7 @@ static LLVMValueRef lower_gather4_integer(struct ac_llvm_context *ctx,
|
||||
struct ac_image_args *args,
|
||||
const nir_tex_instr *instr)
|
||||
{
|
||||
const struct glsl_type *type = glsl_without_array(var->type);
|
||||
enum glsl_base_type stype = glsl_get_sampler_result_type(type);
|
||||
enum glsl_base_type stype = glsl_get_sampler_result_type(var->type);
|
||||
LLVMValueRef half_texel[2];
|
||||
LLVMValueRef compare_cube_wa = NULL;
|
||||
LLVMValueRef result;
|
||||
@@ -1353,8 +1356,7 @@ static LLVMValueRef build_tex_intrinsic(struct ac_nir_context *ctx,
|
||||
if (instr->op == nir_texop_tg4 && ctx->ac.chip_class <= VI) {
|
||||
nir_deref_instr *texture_deref_instr = get_tex_texture_deref(instr);
|
||||
nir_variable *var = nir_deref_instr_get_variable(texture_deref_instr);
|
||||
const struct glsl_type *type = glsl_without_array(var->type);
|
||||
enum glsl_base_type stype = glsl_get_sampler_result_type(type);
|
||||
enum glsl_base_type stype = glsl_get_sampler_result_type(var->type);
|
||||
if (stype == GLSL_TYPE_UINT || stype == GLSL_TYPE_INT) {
|
||||
return lower_gather4_integer(&ctx->ac, var, args, instr);
|
||||
}
|
||||
@@ -1396,12 +1398,12 @@ static LLVMValueRef visit_load_push_constant(struct ac_nir_context *ctx,
|
||||
|
||||
if (instr->dest.ssa.bit_size == 16) {
|
||||
unsigned load_dwords = instr->dest.ssa.num_components / 2 + 1;
|
||||
LLVMTypeRef vec_type = LLVMVectorType(LLVMInt16TypeInContext(ctx->ac.context), 2 * load_dwords);
|
||||
LLVMTypeRef vec_type = LLVMVectorType(LLVMInt16Type(), 2 * load_dwords);
|
||||
ptr = ac_cast_ptr(&ctx->ac, ptr, vec_type);
|
||||
LLVMValueRef res = LLVMBuildLoad(ctx->ac.builder, ptr, "");
|
||||
res = LLVMBuildBitCast(ctx->ac.builder, res, vec_type, "");
|
||||
LLVMValueRef cond = LLVMBuildLShr(ctx->ac.builder, addr, ctx->ac.i32_1, "");
|
||||
cond = LLVMBuildTrunc(ctx->ac.builder, cond, ctx->ac.i1, "");
|
||||
cond = LLVMBuildTrunc(ctx->ac.builder, cond, LLVMInt1Type(), "");
|
||||
LLVMValueRef mask[] = { LLVMConstInt(ctx->ac.i32, 0, false), LLVMConstInt(ctx->ac.i32, 1, false),
|
||||
LLVMConstInt(ctx->ac.i32, 2, false), LLVMConstInt(ctx->ac.i32, 3, false),
|
||||
LLVMConstInt(ctx->ac.i32, 4, false)};
|
||||
@@ -1439,7 +1441,7 @@ static LLVMValueRef extract_vector_range(struct ac_llvm_context *ctx, LLVMValueR
|
||||
unsigned start, unsigned count)
|
||||
{
|
||||
LLVMValueRef mask[] = {
|
||||
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) };
|
||||
|
||||
unsigned src_elements = ac_get_llvm_num_components(src);
|
||||
@@ -1465,11 +1467,6 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
|
||||
LLVMValueRef src_data = get_src(ctx, instr->src[0]);
|
||||
int elem_size_bytes = ac_get_elem_bits(&ctx->ac, LLVMTypeOf(src_data)) / 8;
|
||||
unsigned writemask = nir_intrinsic_write_mask(instr);
|
||||
enum gl_access_qualifier access = nir_intrinsic_access(instr);
|
||||
LLVMValueRef glc = ctx->ac.i1false;
|
||||
|
||||
if (access & (ACCESS_VOLATILE | ACCESS_COHERENT))
|
||||
glc = ctx->ac.i1true;
|
||||
|
||||
LLVMValueRef rsrc = ctx->abi->load_ssbo(ctx->abi,
|
||||
get_src(ctx, instr->src[1]), true);
|
||||
@@ -1526,7 +1523,7 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
|
||||
ctx->ac.i32_0,
|
||||
LLVMConstInt(ctx->ac.i32, 2, false), // dfmt (= 16bit)
|
||||
LLVMConstInt(ctx->ac.i32, 4, false), // nfmt (= uint)
|
||||
glc,
|
||||
ctx->ac.i1false,
|
||||
ctx->ac.i1false,
|
||||
};
|
||||
ac_build_intrinsic(&ctx->ac, store_name,
|
||||
@@ -1554,7 +1551,7 @@ static void visit_store_ssbo(struct ac_nir_context *ctx,
|
||||
rsrc,
|
||||
ctx->ac.i32_0, /* vindex */
|
||||
offset,
|
||||
glc,
|
||||
ctx->ac.i1false, /* glc */
|
||||
ctx->ac.i1false, /* slc */
|
||||
};
|
||||
ac_build_intrinsic(&ctx->ac, store_name,
|
||||
@@ -1579,7 +1576,7 @@ static LLVMValueRef visit_atomic_ssbo(struct ac_nir_context *ctx,
|
||||
true);
|
||||
params[arg_count++] = ctx->ac.i32_0; /* vindex */
|
||||
params[arg_count++] = get_src(ctx, instr->src[1]); /* voffset */
|
||||
params[arg_count++] = ctx->ac.i1false; /* slc */
|
||||
params[arg_count++] = LLVMConstInt(ctx->ac.i1, 0, false); /* slc */
|
||||
|
||||
switch (instr->intrinsic) {
|
||||
case nir_intrinsic_ssbo_atomic_add:
|
||||
@@ -1622,45 +1619,31 @@ static LLVMValueRef visit_atomic_ssbo(struct ac_nir_context *ctx,
|
||||
static LLVMValueRef visit_load_buffer(struct ac_nir_context *ctx,
|
||||
const nir_intrinsic_instr *instr)
|
||||
{
|
||||
LLVMValueRef results[2];
|
||||
int load_bytes;
|
||||
int elem_size_bytes = instr->dest.ssa.bit_size / 8;
|
||||
int num_components = instr->num_components;
|
||||
enum gl_access_qualifier access = nir_intrinsic_access(instr);
|
||||
LLVMValueRef glc = ctx->ac.i1false;
|
||||
int num_bytes = num_components * elem_size_bytes;
|
||||
|
||||
if (access & (ACCESS_VOLATILE | ACCESS_COHERENT))
|
||||
glc = ctx->ac.i1true;
|
||||
for (int i = 0; i < num_bytes; i += load_bytes) {
|
||||
load_bytes = MIN2(num_bytes - i, 16);
|
||||
const char *load_name;
|
||||
LLVMTypeRef data_type;
|
||||
LLVMValueRef offset = get_src(ctx, instr->src[1]);
|
||||
LLVMValueRef immoffset = LLVMConstInt(ctx->ac.i32, i, false);
|
||||
LLVMValueRef rsrc = ctx->abi->load_ssbo(ctx->abi,
|
||||
get_src(ctx, instr->src[0]), false);
|
||||
LLVMValueRef vindex = ctx->ac.i32_0;
|
||||
|
||||
LLVMValueRef offset = get_src(ctx, instr->src[1]);
|
||||
LLVMValueRef rsrc = ctx->abi->load_ssbo(ctx->abi,
|
||||
get_src(ctx, instr->src[0]), false);
|
||||
LLVMValueRef vindex = ctx->ac.i32_0;
|
||||
|
||||
LLVMTypeRef def_type = get_def_type(ctx, &instr->dest.ssa);
|
||||
LLVMTypeRef def_elem_type = num_components > 1 ? LLVMGetElementType(def_type) : def_type;
|
||||
|
||||
LLVMValueRef results[4];
|
||||
for (int i = 0; i < num_components;) {
|
||||
int num_elems = num_components - i;
|
||||
if (elem_size_bytes < 4)
|
||||
num_elems = 1;
|
||||
if (num_elems * elem_size_bytes > 16)
|
||||
num_elems = 16 / elem_size_bytes;
|
||||
int load_bytes = num_elems * elem_size_bytes;
|
||||
|
||||
LLVMValueRef immoffset = LLVMConstInt(ctx->ac.i32, i * elem_size_bytes, false);
|
||||
|
||||
LLVMValueRef ret;
|
||||
int idx = i ? 1 : 0;
|
||||
if (load_bytes == 2) {
|
||||
ret = ac_build_tbuffer_load_short(&ctx->ac,
|
||||
rsrc,
|
||||
vindex,
|
||||
offset,
|
||||
ctx->ac.i32_0,
|
||||
immoffset,
|
||||
glc);
|
||||
results[idx] = ac_build_tbuffer_load_short(&ctx->ac,
|
||||
rsrc,
|
||||
vindex,
|
||||
offset,
|
||||
ctx->ac.i32_0,
|
||||
immoffset);
|
||||
} else {
|
||||
const char *load_name;
|
||||
LLVMTypeRef data_type;
|
||||
switch (load_bytes) {
|
||||
case 16:
|
||||
case 12:
|
||||
@@ -1683,26 +1666,36 @@ static LLVMValueRef visit_load_buffer(struct ac_nir_context *ctx,
|
||||
rsrc,
|
||||
vindex,
|
||||
LLVMBuildAdd(ctx->ac.builder, offset, immoffset, ""),
|
||||
glc,
|
||||
ctx->ac.i1false,
|
||||
ctx->ac.i1false,
|
||||
};
|
||||
ret = ac_build_intrinsic(&ctx->ac, load_name, data_type, params, 5, 0);
|
||||
results[idx] = ac_build_intrinsic(&ctx->ac, load_name, data_type, params, 5, 0);
|
||||
unsigned num_elems = ac_get_type_size(data_type) / elem_size_bytes;
|
||||
LLVMTypeRef resTy = LLVMVectorType(LLVMIntType(instr->dest.ssa.bit_size), num_elems);
|
||||
results[idx] = LLVMBuildBitCast(ctx->ac.builder, results[idx], resTy, "");
|
||||
}
|
||||
|
||||
LLVMTypeRef byte_vec = LLVMVectorType(ctx->ac.i8, ac_get_type_size(LLVMTypeOf(ret)));
|
||||
ret = LLVMBuildBitCast(ctx->ac.builder, ret, byte_vec, "");
|
||||
ret = ac_trim_vector(&ctx->ac, ret, load_bytes);
|
||||
|
||||
LLVMTypeRef ret_type = LLVMVectorType(def_elem_type, num_elems);
|
||||
ret = LLVMBuildBitCast(ctx->ac.builder, ret, ret_type, "");
|
||||
|
||||
for (unsigned j = 0; j < num_elems; j++) {
|
||||
results[i + j] = LLVMBuildExtractElement(ctx->ac.builder, ret, LLVMConstInt(ctx->ac.i32, j, false), "");
|
||||
}
|
||||
i += num_elems;
|
||||
}
|
||||
|
||||
return ac_build_gather_values(&ctx->ac, results, num_components);
|
||||
assume(results[0]);
|
||||
LLVMValueRef ret = results[0];
|
||||
if (num_bytes > 16 || num_components == 3) {
|
||||
LLVMValueRef masks[] = {
|
||||
LLVMConstInt(ctx->ac.i32, 0, false), LLVMConstInt(ctx->ac.i32, 1, false),
|
||||
LLVMConstInt(ctx->ac.i32, 2, false), LLVMConstInt(ctx->ac.i32, 3, false),
|
||||
};
|
||||
|
||||
if (num_bytes > 16 && num_components == 3) {
|
||||
/* we end up with a v4f32 and v2f32 but shuffle fails on that */
|
||||
results[1] = ac_build_expand_to_vec4(&ctx->ac, results[1], 2);
|
||||
}
|
||||
|
||||
LLVMValueRef swizzle = LLVMConstVector(masks, num_components);
|
||||
ret = LLVMBuildShuffleVector(ctx->ac.builder, results[0],
|
||||
results[num_bytes > 16 ? 1 : 0], swizzle, "");
|
||||
}
|
||||
|
||||
return LLVMBuildBitCast(ctx->ac.builder, ret,
|
||||
get_def_type(ctx, &instr->dest.ssa), "");
|
||||
}
|
||||
|
||||
static LLVMValueRef visit_load_ubo_buffer(struct ac_nir_context *ctx,
|
||||
@@ -1727,8 +1720,7 @@ static LLVMValueRef visit_load_ubo_buffer(struct ac_nir_context *ctx,
|
||||
ctx->ac.i32_0,
|
||||
offset,
|
||||
ctx->ac.i32_0,
|
||||
LLVMConstInt(ctx->ac.i32, 2 * i, 0),
|
||||
ctx->ac.i1false);
|
||||
LLVMConstInt(ctx->ac.i32, 2 * i, 0));
|
||||
}
|
||||
ret = ac_build_gather_values(&ctx->ac, results, num_components);
|
||||
} else {
|
||||
@@ -2072,7 +2064,7 @@ visit_store_var(struct ac_nir_context *ctx,
|
||||
int writemask = instr->const_index[0];
|
||||
LLVMValueRef address = get_src(ctx, instr->src[0]);
|
||||
LLVMValueRef val = get_src(ctx, instr->src[1]);
|
||||
if (writemask == (1u << ac_get_llvm_num_components(val)) - 1) {
|
||||
if (util_is_power_of_two_nonzero(writemask)) {
|
||||
val = LLVMBuildBitCast(
|
||||
ctx->ac.builder, val,
|
||||
LLVMGetElementType(LLVMTypeOf(address)), "");
|
||||
@@ -2258,8 +2250,7 @@ static void get_image_coords(struct ac_nir_context *ctx,
|
||||
fmask_load_address[1],
|
||||
fmask_load_address[2],
|
||||
sample_index,
|
||||
get_sampler_desc(ctx, nir_instr_as_deref(instr->src[0].ssa->parent_instr),
|
||||
AC_DESC_FMASK, NULL, false, false));
|
||||
get_image_descriptor(ctx, instr, AC_DESC_FMASK, false));
|
||||
}
|
||||
if (count == 1 && !gfx9_1d) {
|
||||
if (instr->src[1].ssa->num_components)
|
||||
@@ -2357,7 +2348,7 @@ static LLVMValueRef visit_image_load(struct ac_nir_context *ctx,
|
||||
glsl_sampler_type_is_array(type));
|
||||
args.dmask = 15;
|
||||
args.attributes = AC_FUNC_ATTR_READONLY;
|
||||
if (var->data.image.access & (ACCESS_VOLATILE | ACCESS_COHERENT))
|
||||
if (var->data.image._volatile || var->data.image.coherent)
|
||||
args.cache_policy |= ac_glc;
|
||||
|
||||
res = ac_build_image_opcode(&ctx->ac, &args);
|
||||
@@ -2378,27 +2369,17 @@ static void visit_image_store(struct ac_nir_context *ctx,
|
||||
glc = ctx->ac.i1true;
|
||||
|
||||
if (dim == GLSL_SAMPLER_DIM_BUF) {
|
||||
char name[48];
|
||||
const char *types[] = { "f32", "v2f32", "v4f32" };
|
||||
LLVMValueRef rsrc = get_image_buffer_descriptor(ctx, instr, true);
|
||||
LLVMValueRef src = ac_to_float(&ctx->ac, get_src(ctx, instr->src[3]));
|
||||
unsigned src_channels = ac_get_llvm_num_components(src);
|
||||
|
||||
if (src_channels == 3)
|
||||
src = ac_build_expand(&ctx->ac, src, 3, 4);
|
||||
|
||||
params[0] = src; /* data */
|
||||
params[0] = ac_to_float(&ctx->ac, get_src(ctx, instr->src[3])); /* data */
|
||||
params[1] = rsrc;
|
||||
params[2] = LLVMBuildExtractElement(ctx->ac.builder, get_src(ctx, instr->src[1]),
|
||||
ctx->ac.i32_0, ""); /* vindex */
|
||||
params[3] = ctx->ac.i32_0; /* voffset */
|
||||
snprintf(name, sizeof(name), "%s.%s",
|
||||
"llvm.amdgcn.buffer.store.format",
|
||||
types[CLAMP(src_channels, 1, 3) - 1]);
|
||||
|
||||
params[4] = glc; /* glc */
|
||||
params[5] = ctx->ac.i1false; /* slc */
|
||||
ac_build_intrinsic(&ctx->ac, name, ctx->ac.voidt, params, 6, 0);
|
||||
ac_build_intrinsic(&ctx->ac, "llvm.amdgcn.buffer.store.format.v4f32", ctx->ac.voidt,
|
||||
params, 6, 0);
|
||||
} else {
|
||||
struct ac_image_args args = {};
|
||||
args.opcode = ac_image_store;
|
||||
@@ -2408,7 +2389,7 @@ static void visit_image_store(struct ac_nir_context *ctx,
|
||||
args.dim = get_ac_image_dim(&ctx->ac, glsl_get_sampler_dim(type),
|
||||
glsl_sampler_type_is_array(type));
|
||||
args.dmask = 15;
|
||||
if (force_glc || (var->data.image.access & (ACCESS_VOLATILE | ACCESS_COHERENT)))
|
||||
if (force_glc || var->data.image._volatile || var->data.image.coherent)
|
||||
args.cache_policy |= ac_glc;
|
||||
|
||||
ac_build_image_opcode(&ctx->ac, &args);
|
||||
@@ -2562,6 +2543,10 @@ static LLVMValueRef visit_image_size(struct ac_nir_context *ctx,
|
||||
return res;
|
||||
}
|
||||
|
||||
#define NOOP_WAITCNT 0xf7f
|
||||
#define LGKM_CNT 0x07f
|
||||
#define VM_CNT 0xf70
|
||||
|
||||
static void emit_membar(struct ac_llvm_context *ac,
|
||||
const nir_intrinsic_instr *instr)
|
||||
{
|
||||
@@ -2597,7 +2582,8 @@ void ac_emit_barrier(struct ac_llvm_context *ac, gl_shader_stage stage)
|
||||
ac_build_waitcnt(ac, LGKM_CNT & VM_CNT);
|
||||
return;
|
||||
}
|
||||
ac_build_s_barrier(ac);
|
||||
ac_build_intrinsic(ac, "llvm.amdgcn.s.barrier",
|
||||
ac->voidt, NULL, 0, AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
static void emit_discard(struct ac_nir_context *ctx,
|
||||
@@ -2611,7 +2597,7 @@ static void emit_discard(struct ac_nir_context *ctx,
|
||||
ctx->ac.i32_0, "");
|
||||
} else {
|
||||
assert(instr->intrinsic == nir_intrinsic_discard);
|
||||
cond = ctx->ac.i1false;
|
||||
cond = LLVMConstInt(ctx->ac.i1, false, 0);
|
||||
}
|
||||
|
||||
ctx->abi->emit_kill(ctx->abi, cond);
|
||||
@@ -2669,7 +2655,7 @@ visit_first_invocation(struct ac_nir_context *ctx)
|
||||
LLVMValueRef active_set = ac_build_ballot(&ctx->ac, ctx->ac.i32_1);
|
||||
|
||||
/* The second argument is whether cttz(0) should be defined, but we do not care. */
|
||||
LLVMValueRef args[] = {active_set, ctx->ac.i1false};
|
||||
LLVMValueRef args[] = {active_set, LLVMConstInt(ctx->ac.i1, 0, false)};
|
||||
LLVMValueRef result = ac_build_intrinsic(&ctx->ac,
|
||||
"llvm.cttz.i64",
|
||||
ctx->ac.i64, args, 2,
|
||||
@@ -2802,16 +2788,15 @@ static LLVMValueRef visit_interp(struct ac_nir_context *ctx,
|
||||
const nir_intrinsic_instr *instr)
|
||||
{
|
||||
LLVMValueRef result[4];
|
||||
LLVMValueRef interp_param;
|
||||
LLVMValueRef interp_param, attr_number;
|
||||
unsigned location;
|
||||
unsigned chan;
|
||||
LLVMValueRef src_c0 = NULL;
|
||||
LLVMValueRef src_c1 = NULL;
|
||||
LLVMValueRef src0 = NULL;
|
||||
|
||||
nir_deref_instr *deref_instr = nir_instr_as_deref(instr->src[0].ssa->parent_instr);
|
||||
nir_variable *var = nir_deref_instr_get_variable(deref_instr);
|
||||
int input_base = ctx->abi->fs_input_attr_indices[var->data.location - VARYING_SLOT_VAR0];
|
||||
nir_variable *var = nir_deref_instr_get_variable(nir_instr_as_deref(instr->src[0].ssa->parent_instr));
|
||||
int input_index = var->data.location - VARYING_SLOT_VAR0;
|
||||
switch (instr->intrinsic) {
|
||||
case nir_intrinsic_interp_deref_at_centroid:
|
||||
location = INTERP_CENTROID;
|
||||
@@ -2841,6 +2826,7 @@ static LLVMValueRef visit_interp(struct ac_nir_context *ctx,
|
||||
src_c1 = LLVMBuildFSub(ctx->ac.builder, src_c1, halfval, "");
|
||||
}
|
||||
interp_param = ctx->abi->lookup_interp_param(ctx->abi, var->data.interpolation, location);
|
||||
attr_number = LLVMConstInt(ctx->ac.i32, input_index, false);
|
||||
|
||||
if (location == INTERP_CENTER) {
|
||||
LLVMValueRef ij_out[2];
|
||||
@@ -2868,8 +2854,11 @@ static LLVMValueRef visit_interp(struct ac_nir_context *ctx,
|
||||
interp_el = LLVMBuildBitCast(ctx->ac.builder, interp_el,
|
||||
ctx->ac.f32, "");
|
||||
|
||||
temp1 = ac_build_fmad(&ctx->ac, ddx_el, src_c0, interp_el);
|
||||
temp2 = ac_build_fmad(&ctx->ac, ddy_el, src_c1, temp1);
|
||||
temp1 = LLVMBuildFMul(ctx->ac.builder, ddx_el, src_c0, "");
|
||||
temp1 = LLVMBuildFAdd(ctx->ac.builder, temp1, interp_el, "");
|
||||
|
||||
temp2 = LLVMBuildFMul(ctx->ac.builder, ddy_el, src_c1, "");
|
||||
temp2 = LLVMBuildFAdd(ctx->ac.builder, temp2, temp1, "");
|
||||
|
||||
ij_out[i] = LLVMBuildBitCast(ctx->ac.builder,
|
||||
temp2, ctx->ac.i32, "");
|
||||
@@ -2878,65 +2867,26 @@ static LLVMValueRef visit_interp(struct ac_nir_context *ctx,
|
||||
|
||||
}
|
||||
|
||||
LLVMValueRef array_idx = ctx->ac.i32_0;
|
||||
while(deref_instr->deref_type != nir_deref_type_var) {
|
||||
if (deref_instr->deref_type == nir_deref_type_array) {
|
||||
unsigned array_size = glsl_get_aoa_size(deref_instr->type);
|
||||
if (!array_size)
|
||||
array_size = 1;
|
||||
|
||||
LLVMValueRef offset;
|
||||
nir_const_value *const_value = nir_src_as_const_value(deref_instr->arr.index);
|
||||
if (const_value) {
|
||||
offset = LLVMConstInt(ctx->ac.i32, array_size * const_value->u32[0], false);
|
||||
} else {
|
||||
LLVMValueRef indirect = get_src(ctx, deref_instr->arr.index);
|
||||
|
||||
offset = LLVMBuildMul(ctx->ac.builder, indirect,
|
||||
LLVMConstInt(ctx->ac.i32, array_size, false), "");
|
||||
}
|
||||
|
||||
array_idx = LLVMBuildAdd(ctx->ac.builder, array_idx, offset, "");
|
||||
deref_instr = nir_src_as_deref(deref_instr->parent);
|
||||
} else {
|
||||
unreachable("Unsupported deref type");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
unsigned input_array_size = glsl_get_aoa_size(var->type);
|
||||
if (!input_array_size)
|
||||
input_array_size = 1;
|
||||
|
||||
for (chan = 0; chan < 4; chan++) {
|
||||
LLVMValueRef gather = LLVMGetUndef(LLVMVectorType(ctx->ac.f32, input_array_size));
|
||||
LLVMValueRef llvm_chan = LLVMConstInt(ctx->ac.i32, chan, false);
|
||||
|
||||
for (unsigned idx = 0; idx < input_array_size; ++idx) {
|
||||
LLVMValueRef v, attr_number;
|
||||
|
||||
attr_number = LLVMConstInt(ctx->ac.i32, input_base + idx, false);
|
||||
if (interp_param) {
|
||||
interp_param = LLVMBuildBitCast(ctx->ac.builder,
|
||||
if (interp_param) {
|
||||
interp_param = LLVMBuildBitCast(ctx->ac.builder,
|
||||
interp_param, ctx->ac.v2f32, "");
|
||||
LLVMValueRef i = LLVMBuildExtractElement(
|
||||
ctx->ac.builder, interp_param, ctx->ac.i32_0, "");
|
||||
LLVMValueRef j = LLVMBuildExtractElement(
|
||||
ctx->ac.builder, interp_param, ctx->ac.i32_1, "");
|
||||
LLVMValueRef i = LLVMBuildExtractElement(
|
||||
ctx->ac.builder, interp_param, ctx->ac.i32_0, "");
|
||||
LLVMValueRef j = LLVMBuildExtractElement(
|
||||
ctx->ac.builder, interp_param, ctx->ac.i32_1, "");
|
||||
|
||||
v = ac_build_fs_interp(&ctx->ac, llvm_chan, attr_number,
|
||||
ctx->abi->prim_mask, i, j);
|
||||
} else {
|
||||
v = ac_build_fs_interp_mov(&ctx->ac, LLVMConstInt(ctx->ac.i32, 2, false),
|
||||
llvm_chan, attr_number, ctx->abi->prim_mask);
|
||||
}
|
||||
|
||||
gather = LLVMBuildInsertElement(ctx->ac.builder, gather, v,
|
||||
LLVMConstInt(ctx->ac.i32, idx, false), "");
|
||||
result[chan] = ac_build_fs_interp(&ctx->ac,
|
||||
llvm_chan, attr_number,
|
||||
ctx->abi->prim_mask, i, j);
|
||||
} else {
|
||||
result[chan] = ac_build_fs_interp_mov(&ctx->ac,
|
||||
LLVMConstInt(ctx->ac.i32, 2, false),
|
||||
llvm_chan, attr_number,
|
||||
ctx->abi->prim_mask);
|
||||
}
|
||||
|
||||
result[chan] = LLVMBuildExtractElement(ctx->ac.builder, gather, array_idx, "");
|
||||
|
||||
}
|
||||
return ac_build_varying_gather_values(&ctx->ac, result, instr->num_components,
|
||||
var->data.location_frac);
|
||||
@@ -3032,8 +2982,7 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
|
||||
ctx->abi->frag_pos[2],
|
||||
ac_build_fdiv(&ctx->ac, ctx->ac.f32_1, ctx->abi->frag_pos[3])
|
||||
};
|
||||
result = ac_to_integer(&ctx->ac,
|
||||
ac_build_gather_values(&ctx->ac, values, 4));
|
||||
result = ac_build_gather_values(&ctx->ac, values, 4);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_load_front_face:
|
||||
@@ -3380,7 +3329,7 @@ static LLVMValueRef apply_round_slice(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef coord)
|
||||
{
|
||||
coord = ac_to_float(ctx, coord);
|
||||
coord = ac_build_round(ctx, coord);
|
||||
coord = ac_build_intrinsic(ctx, "llvm.rint.f32", ctx->f32, &coord, 1, 0);
|
||||
coord = ac_to_integer(ctx, coord);
|
||||
return coord;
|
||||
}
|
||||
@@ -3500,7 +3449,7 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
|
||||
* It's unnecessary if the original texture format was
|
||||
* Z32_FLOAT, but we don't know that here.
|
||||
*/
|
||||
if (args.compare && ctx->ac.chip_class >= VI && ctx->abi->clamp_shadow_reference)
|
||||
if (args.compare && ctx->ac.chip_class == VI && ctx->abi->clamp_shadow_reference)
|
||||
args.compare = ac_build_clamp(&ctx->ac, ac_to_float(&ctx->ac, args.compare));
|
||||
|
||||
/* pack derivatives */
|
||||
@@ -3692,6 +3641,7 @@ static void visit_post_phi(struct ac_nir_context *ctx,
|
||||
|
||||
static void phi_post_pass(struct ac_nir_context *ctx)
|
||||
{
|
||||
struct hash_entry *entry;
|
||||
hash_table_foreach(ctx->phis, entry) {
|
||||
visit_post_phi(ctx, (nir_phi_instr*)entry->key,
|
||||
(LLVMValueRef)entry->data);
|
||||
@@ -3891,7 +3841,7 @@ ac_handle_shader_output_decl(struct ac_llvm_context *ctx,
|
||||
}
|
||||
}
|
||||
|
||||
bool is_16bit = glsl_type_is_16bit(glsl_without_array(variable->type));
|
||||
bool is_16bit = glsl_type_is_16bit(variable->type);
|
||||
LLVMTypeRef type = is_16bit ? ctx->f16 : ctx->f32;
|
||||
for (unsigned i = 0; i < attrib_count; ++i) {
|
||||
for (unsigned chan = 0; chan < 4; chan++) {
|
||||
@@ -3996,7 +3946,7 @@ setup_shared(struct ac_nir_context *ctx,
|
||||
LLVMAddGlobalInAddressSpace(
|
||||
ctx->ac.module, glsl_to_llvm_type(&ctx->ac, variable->type),
|
||||
variable->name ? variable->name : "",
|
||||
AC_ADDR_SPACE_LDS);
|
||||
AC_LOCAL_ADDR_SPACE);
|
||||
_mesa_hash_table_insert(ctx->vars, variable, shared);
|
||||
}
|
||||
}
|
||||
|
@@ -77,9 +77,6 @@ struct ac_shader_abi {
|
||||
*/
|
||||
LLVMValueRef *inputs;
|
||||
|
||||
/* Varying -> attribute number mapping. Also NIR-only */
|
||||
unsigned fs_input_attr_indices[MAX_VARYING];
|
||||
|
||||
void (*emit_outputs)(struct ac_shader_abi *abi,
|
||||
unsigned max_outputs,
|
||||
LLVMValueRef *addrs);
|
||||
|
@@ -151,10 +151,6 @@ static void addrlib_family_rev_id(enum radeon_family family,
|
||||
*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");
|
||||
}
|
||||
@@ -592,8 +588,8 @@ void ac_compute_cmask(const struct radeon_info *info,
|
||||
|
||||
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 width = align(config->info.width, cl_width*8);
|
||||
unsigned height = align(config->info.height, cl_height*8);
|
||||
unsigned slice_elements = (width * height) / (8*8);
|
||||
|
||||
/* Each element of CMASK is a nibble. */
|
||||
|
@@ -97,7 +97,6 @@ enum radeon_family {
|
||||
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)
|
||||
|
@@ -22,7 +22,7 @@ sid_tables_h = custom_target(
|
||||
'sid_tables_h',
|
||||
input : ['sid_tables.py', 'sid.h', 'gfx9d.h'],
|
||||
output : 'sid_tables.h',
|
||||
command : [prog_python, '@INPUT@'],
|
||||
command : [prog_python2, '@INPUT@'],
|
||||
capture : true,
|
||||
)
|
||||
|
||||
|
@@ -119,7 +119,6 @@
|
||||
#define STRMOUT_OFFSET_FROM_VGT_FILLED_SIZE 1
|
||||
#define STRMOUT_OFFSET_FROM_MEM 2
|
||||
#define STRMOUT_OFFSET_NONE 3
|
||||
#define STRMOUT_DATA_TYPE(x) (((unsigned)(x) & 0x1) << 7)
|
||||
#define STRMOUT_SELECT_BUFFER(x) (((unsigned)(x) & 0x3) << 8)
|
||||
#define PKT3_DRAW_INDEX_OFFSET_2 0x35
|
||||
#define PKT3_WRITE_DATA 0x37
|
||||
@@ -145,10 +144,7 @@
|
||||
#define PKT3_MPEG_INDEX 0x3A /* not on CIK */
|
||||
#define PKT3_WAIT_REG_MEM 0x3C
|
||||
#define WAIT_REG_MEM_EQUAL 3
|
||||
#define WAIT_REG_MEM_NOT_EQUAL 4
|
||||
#define WAIT_REG_MEM_GREATER_OR_EQUAL 5
|
||||
#define WAIT_REG_MEM_MEM_SPACE(x) (((unsigned)(x) & 0x3) << 4)
|
||||
#define WAIT_REG_MEM_PFP (1 << 8)
|
||||
#define PKT3_MEM_WRITE 0x3D /* not on CIK */
|
||||
#define PKT3_INDIRECT_BUFFER_CIK 0x3F /* new on CIK */
|
||||
#define R_3F0_IB_BASE_LO 0x3F0
|
||||
@@ -163,30 +159,20 @@
|
||||
#define PKT3_COPY_DATA 0x40
|
||||
#define COPY_DATA_SRC_SEL(x) ((x) & 0xf)
|
||||
#define COPY_DATA_REG 0
|
||||
#define COPY_DATA_SRC_MEM 1 /* only valid as source */
|
||||
#define COPY_DATA_TC_L2 2
|
||||
#define COPY_DATA_GDS 3
|
||||
#define COPY_DATA_MEM 1
|
||||
#define COPY_DATA_PERF 4
|
||||
#define COPY_DATA_IMM 5
|
||||
#define COPY_DATA_TIMESTAMP 9
|
||||
#define COPY_DATA_DST_SEL(x) (((unsigned)(x) & 0xf) << 8)
|
||||
#define COPY_DATA_DST_MEM_GRBM 1 /* sync across GRBM, deprecated */
|
||||
#define COPY_DATA_TC_L2 2
|
||||
#define COPY_DATA_GDS 3
|
||||
#define COPY_DATA_PERF 4
|
||||
#define COPY_DATA_DST_MEM 5
|
||||
#define COPY_DATA_MEM_ASYNC 5
|
||||
#define COPY_DATA_COUNT_SEL (1 << 16)
|
||||
#define COPY_DATA_WR_CONFIRM (1 << 20)
|
||||
#define COPY_DATA_ENGINE_PFP (1 << 30)
|
||||
#define PKT3_PFP_SYNC_ME 0x42
|
||||
#define PKT3_SURFACE_SYNC 0x43 /* deprecated on CIK, use ACQUIRE_MEM */
|
||||
#define PKT3_ME_INITIALIZE 0x44 /* not on CIK */
|
||||
#define PKT3_COND_WRITE 0x45
|
||||
#define PKT3_EVENT_WRITE 0x46
|
||||
#define PKT3_EVENT_WRITE_EOP 0x47 /* not on GFX9 */
|
||||
#define EOP_DST_SEL(x) ((x) << 16)
|
||||
#define EOP_DST_SEL_MEM 0
|
||||
#define EOP_DST_SEL_TC_L2 1
|
||||
#define EOP_INT_SEL(x) ((x) << 24)
|
||||
#define EOP_INT_SEL_NONE 0
|
||||
#define EOP_INT_SEL_SEND_DATA_AFTER_WR_CONFIRM 3
|
||||
@@ -195,8 +181,6 @@
|
||||
#define EOP_DATA_SEL_VALUE_32BIT 1
|
||||
#define EOP_DATA_SEL_VALUE_64BIT 2
|
||||
#define EOP_DATA_SEL_TIMESTAMP 3
|
||||
#define EOP_DATA_SEL_GDS 5
|
||||
#define EOP_DATA_GDS(dw_offset, num_dwords) ((dw_offset) | ((unsigned)(num_dwords) << 16))
|
||||
/* CP DMA bug: Any use of CP_DMA.DST_SEL=TC must be avoided when EOS packets
|
||||
* are used. Use DST_SEL=MC instead. For prefetch, use SRC_SEL=TC and
|
||||
* DST_SEL=MC. Only CIK chips are affected.
|
||||
@@ -310,13 +294,11 @@
|
||||
#define V_500_GDS 1 /* program SAS to 1 as well */
|
||||
#define V_500_DATA 2
|
||||
#define V_500_SRC_ADDR_TC_L2 3 /* new for CIK */
|
||||
#define S_500_DST_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 25) /* CIK+ */
|
||||
#define S_500_DST_SEL(x) (((unsigned)(x) & 0x3) << 20)
|
||||
#define V_500_DST_ADDR 0
|
||||
#define V_500_GDS 1 /* program DAS to 1 as well */
|
||||
#define V_500_NOWHERE 2 /* new for GFX9 */
|
||||
#define V_500_DST_ADDR_TC_L2 3 /* new for CIK */
|
||||
#define S_500_SRC_CACHE_POLICY(x) (((unsigned)(x) & 0x3) << 13) /* CIK+ */
|
||||
#define S_500_ENGINE(x) ((x) & 0x1)
|
||||
#define V_500_ME 0
|
||||
#define V_500_PFP 1
|
||||
@@ -5300,22 +5282,6 @@
|
||||
#define S_02820C_CLIP_RULE(x) (((unsigned)(x) & 0xFFFF) << 0)
|
||||
#define G_02820C_CLIP_RULE(x) (((x) >> 0) & 0xFFFF)
|
||||
#define C_02820C_CLIP_RULE 0xFFFF0000
|
||||
#define V_02820C_OUT 0x0001
|
||||
#define V_02820C_IN_0 0x0002
|
||||
#define V_02820C_IN_1 0x0004
|
||||
#define V_02820C_IN_10 0x0008
|
||||
#define V_02820C_IN_2 0x0010
|
||||
#define V_02820C_IN_20 0x0020
|
||||
#define V_02820C_IN_21 0x0040
|
||||
#define V_02820C_IN_210 0x0080
|
||||
#define V_02820C_IN_3 0x0100
|
||||
#define V_02820C_IN_30 0x0200
|
||||
#define V_02820C_IN_31 0x0400
|
||||
#define V_02820C_IN_310 0x0800
|
||||
#define V_02820C_IN_32 0x1000
|
||||
#define V_02820C_IN_320 0x2000
|
||||
#define V_02820C_IN_321 0x4000
|
||||
#define V_02820C_IN_3210 0x8000
|
||||
#define R_028210_PA_SC_CLIPRECT_0_TL 0x028210
|
||||
#define S_028210_TL_X(x) (((unsigned)(x) & 0x7FFF) << 0)
|
||||
#define G_028210_TL_X(x) (((x) >> 0) & 0x7FFF)
|
||||
@@ -9156,14 +9122,8 @@
|
||||
#define CIK_SDMA_PACKET_TRAP 0x6
|
||||
#define CIK_SDMA_PACKET_SEMAPHORE 0x7
|
||||
#define CIK_SDMA_PACKET_CONSTANT_FILL 0xb
|
||||
#define CIK_SDMA_OPCODE_TIMESTAMP 0xd
|
||||
#define SDMA_TS_SUB_OPCODE_SET_LOCAL_TIMESTAMP 0x0
|
||||
#define SDMA_TS_SUB_OPCODE_GET_LOCAL_TIMESTAMP 0x1
|
||||
#define SDMA_TS_SUB_OPCODE_GET_GLOBAL_TIMESTAMP 0x2
|
||||
#define CIK_SDMA_PACKET_SRBM_WRITE 0xe
|
||||
/* There is apparently an undocumented HW "feature" that
|
||||
prevents the HW from copying past 256 bytes of (1 << 22) */
|
||||
#define CIK_SDMA_COPY_MAX_SIZE 0x3fff00
|
||||
#define CIK_SDMA_COPY_MAX_SIZE 0x3fffe0
|
||||
|
||||
enum amd_cmp_class_flags {
|
||||
S_NAN = 1 << 0, // Signaling NaN
|
||||
|
@@ -74,8 +74,7 @@ LOCAL_C_INCLUDES := \
|
||||
$(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_util,,)/util
|
||||
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
||||
libmesa_vulkan_util \
|
||||
libmesa_git_sha1
|
||||
libmesa_vulkan_util
|
||||
|
||||
LOCAL_GENERATED_SOURCES += $(intermediates)/radv_entrypoints.c
|
||||
LOCAL_GENERATED_SOURCES += $(intermediates)/radv_entrypoints.h
|
||||
|
@@ -140,7 +140,7 @@ vulkan_api_xml = $(top_srcdir)/src/vulkan/registry/vk.xml
|
||||
|
||||
radv_entrypoints.c: radv_entrypoints_gen.py radv_extensions.py $(vulkan_api_xml)
|
||||
$(MKDIR_GEN)
|
||||
$(AM_V_GEN)$(PYTHON) $(srcdir)/radv_entrypoints_gen.py \
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/radv_entrypoints_gen.py \
|
||||
--xml $(vulkan_api_xml) \
|
||||
--outdir $(builddir)
|
||||
radv_entrypoints.h: radv_entrypoints.c
|
||||
@@ -148,7 +148,7 @@ radv_entrypoints.h: radv_entrypoints.c
|
||||
radv_extensions.c: radv_extensions.py \
|
||||
$(vulkan_api_xml)
|
||||
$(MKDIR_GEN)
|
||||
$(AM_V_GEN)$(PYTHON) $(srcdir)/radv_extensions.py \
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/radv_extensions.py \
|
||||
--xml $(vulkan_api_xml) \
|
||||
--out-c radv_extensions.c \
|
||||
--out-h radv_extensions.h
|
||||
@@ -157,7 +157,7 @@ radv_extensions.h: radv_extensions.c
|
||||
vk_format_table.c: vk_format_table.py \
|
||||
vk_format_parse.py \
|
||||
vk_format_layout.csv
|
||||
$(PYTHON) $(srcdir)/vk_format_table.py $(srcdir)/vk_format_layout.csv > $@
|
||||
$(PYTHON2) $(srcdir)/vk_format_table.py $(srcdir)/vk_format_layout.csv > $@
|
||||
|
||||
BUILT_SOURCES = $(VULKAN_GENERATED_FILES)
|
||||
CLEANFILES = $(BUILT_SOURCES) dev_icd.json radeon_icd.@host_cpu@.json
|
||||
@@ -190,11 +190,11 @@ icdconf_DATA = radeon_icd.@host_cpu@.json
|
||||
noinst_DATA = dev_icd.json
|
||||
|
||||
dev_icd.json : radv_extensions.py radv_icd.py
|
||||
$(AM_V_GEN)$(PYTHON) $(srcdir)/radv_icd.py \
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/radv_icd.py \
|
||||
--lib-path="${abs_top_builddir}/${LIB_DIR}" --out $@
|
||||
|
||||
radeon_icd.@host_cpu@.json : radv_extensions.py radv_icd.py
|
||||
$(AM_V_GEN)$(PYTHON) $(srcdir)/radv_icd.py \
|
||||
$(AM_V_GEN)$(PYTHON2) $(srcdir)/radv_icd.py \
|
||||
--lib-path="${libdir}" --out $@
|
||||
|
||||
include $(top_srcdir)/install-lib-links.mk
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user