Compare commits
217 Commits
mesa-17.3.
...
mesa-17.2.
Author | SHA1 | Date | |
---|---|---|---|
|
d6d2b6b5ec | ||
|
cb778d563f | ||
|
7c3bd519e7 | ||
|
c6b3732967 | ||
|
e012ade1cf | ||
|
41e691d605 | ||
|
b6ae4400fc | ||
|
c47914276e | ||
|
536f852d42 | ||
|
fdc4f6e684 | ||
|
8cf9e5ab56 | ||
|
d5c71e44c4 | ||
|
53190187cc | ||
|
366e02f992 | ||
|
5cec093773 | ||
|
69394e3517 | ||
|
c0c1e05fb6 | ||
|
94b656cb5e | ||
|
5e0b556abc | ||
|
f087dad40d | ||
|
83bbfaddf1 | ||
|
a8eea040cd | ||
|
15ecbb2c07 | ||
|
7fef8d436a | ||
|
ea1bcfc063 | ||
|
6e2b9fba21 | ||
|
dcb634df92 | ||
|
20be71ba7c | ||
|
a3d1ea347a | ||
|
dc640aab63 | ||
|
c8076c8ea1 | ||
|
62f0bb2a87 | ||
|
40f06286f9 | ||
|
0f79eb7abe | ||
|
54c5568fa9 | ||
|
c2f314d721 | ||
|
fe04abc6e9 | ||
|
0e305f0518 | ||
|
cb9dae484a | ||
|
57ecf28668 | ||
|
78e2b539a4 | ||
|
86d4c203bd | ||
|
bda2975eef | ||
|
a4dc18efca | ||
|
8f77409e2b | ||
|
458f52618a | ||
|
402b8073ad | ||
|
6fe4852f59 | ||
|
d080f10fdf | ||
|
93b794f094 | ||
|
520786586d | ||
|
9ffe4cc6c0 | ||
|
2b0e70e2ae | ||
|
3a9b2e0e7d | ||
|
188010c68d | ||
|
b4473dd519 | ||
|
f5925b2897 | ||
|
702950d1ad | ||
|
909f2b6aa2 | ||
|
3666d9ab99 | ||
|
5303f0c246 | ||
|
8d51747dc0 | ||
|
3b41bef9a4 | ||
|
e040bdbc8a | ||
|
e4c4b0dbcb | ||
|
ca9817a6e8 | ||
|
df8e65feb7 | ||
|
ec94b874c4 | ||
|
17e5b0f1db | ||
|
69c793c0ce | ||
|
b29987ace4 | ||
|
22c1e2e966 | ||
|
f01cd4feeb | ||
|
c77ae9744e | ||
|
5fdf832235 | ||
|
46573f1028 | ||
|
1dfbfad0b9 | ||
|
289b2a8788 | ||
|
1960d8f0dd | ||
|
2c964f68a8 | ||
|
5d5a13e375 | ||
|
9d6d567046 | ||
|
6f0d910617 | ||
|
a0b3095bb6 | ||
|
c25e896810 | ||
|
9172c7744a | ||
|
adce678550 | ||
|
7f3555951e | ||
|
bc39869414 | ||
|
93aee55a7f | ||
|
996e3239c9 | ||
|
9b856ea323 | ||
|
d8f8689101 | ||
|
dbca342014 | ||
|
c0c03d0003 | ||
|
9013f80f67 | ||
|
d93e6a0409 | ||
|
cf2f05ff91 | ||
|
91715a3681 | ||
|
9ba7693a9a | ||
|
1f8cb4c243 | ||
|
da4d1fd084 | ||
|
7789126929 | ||
|
6389526ce5 | ||
|
2813e83f6c | ||
|
ea5c466c91 | ||
|
d174214218 | ||
|
a14dd9fff6 | ||
|
3e62ba0907 | ||
|
1011fd22ae | ||
|
dd03cb5c5e | ||
|
046730b8a3 | ||
|
f83d979759 | ||
|
2cdb51e76d | ||
|
15f23fb855 | ||
|
dd4fafcfda | ||
|
17a3e4891b | ||
|
85cc3533fa | ||
|
93bd5fbfe1 | ||
|
833f12abdf | ||
|
1fc44a3ba0 | ||
|
6ccb75e869 | ||
|
b4fec4271b | ||
|
efb9b5740e | ||
|
e44393cb23 | ||
|
81b5a6a85b | ||
|
5795e42116 | ||
|
42e8f3ccdf | ||
|
e452ed26ff | ||
|
c7c6ba44ca | ||
|
bdab7c69f5 | ||
|
47507ec1fd | ||
|
3fb5cc2637 | ||
|
42d6e7eba2 | ||
|
f60ff71b6f | ||
|
f70f216564 | ||
|
827bf79052 | ||
|
2b10b3a417 | ||
|
27e7a3a5ef | ||
|
da005f5566 | ||
|
cc8ae8842b | ||
|
3165f9877e | ||
|
1e11687029 | ||
|
ea595756f8 | ||
|
ffd8120284 | ||
|
9d65214f3d | ||
|
a57390cee0 | ||
|
8b706102eb | ||
|
7f5d86ebaa | ||
|
1c1653d7b0 | ||
|
d4100b0d09 | ||
|
bb6e5e5476 | ||
|
08d49e074d | ||
|
75f5abb82f | ||
|
f0b6298c05 | ||
|
ac04187e33 | ||
|
b1514579c2 | ||
|
dc63c715cb | ||
|
9d9ea2c5a4 | ||
|
07b5c78836 | ||
|
59f7fdb85e | ||
|
29df4deef2 | ||
|
e4371d14f1 | ||
|
0b2c034f64 | ||
|
f4e163094d | ||
|
4a181e6244 | ||
|
8ef9fe7229 | ||
|
4f872e62c2 | ||
|
c5fac38ced | ||
|
579ecfd91e | ||
|
6b279b3271 | ||
|
6efb8d79a9 | ||
|
795b712bd7 | ||
|
43a2b178c2 | ||
|
d5def4f5a9 | ||
|
f2a60ff20a | ||
|
3c8673d420 | ||
|
381ccaa1cb | ||
|
2dd6030fbb | ||
|
a90d99f7a5 | ||
|
6806773905 | ||
|
3e872f4b53 | ||
|
21ea75b3e9 | ||
|
58fe86a6d6 | ||
|
d466a70532 | ||
|
e62eddcdbe | ||
|
6d07e58afb | ||
|
f9e563597d | ||
|
5b61ba4432 | ||
|
6625382b1c | ||
|
2bca74253d | ||
|
b36ff2d1f2 | ||
|
99b2613ce1 | ||
|
f9c7549605 | ||
|
2ce4f0afd3 | ||
|
546282e8bc | ||
|
de55bc8f49 | ||
|
f0b7563a36 | ||
|
5bee196840 | ||
|
2a1792981c | ||
|
a2b7477603 | ||
|
3e777d5cab | ||
|
9bb6aa5794 | ||
|
90bbcb93b1 | ||
|
529c440dd3 | ||
|
94e0de90ee | ||
|
3180f0fa0d | ||
|
e7f14a8b52 | ||
|
7f5d9d7a6d | ||
|
3d0960e761 | ||
|
bdbd8ab517 | ||
|
47bca2cfa7 | ||
|
04bb687f04 | ||
|
4e0f29ed0b | ||
|
0ccb853cc0 | ||
|
a455f594bb | ||
|
a955622c1a |
@@ -33,7 +33,3 @@ indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[meson.build,meson_options.txt]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -7,13 +7,11 @@
|
||||
*.log
|
||||
*.o
|
||||
*.obj
|
||||
*.orig
|
||||
*.os
|
||||
*.pc
|
||||
*.pdb
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.rej
|
||||
*.so
|
||||
*.so.*
|
||||
*.sw[a-z]
|
||||
|
163
.travis.yml
163
.travis.yml
@@ -20,13 +20,13 @@ env:
|
||||
- XCBPROTO_VERSION=xcb-proto-1.11
|
||||
- LIBXCB_VERSION=libxcb-1.11
|
||||
- LIBXSHMFENCE_VERSION=libxshmfence-1.2
|
||||
- LIBTXC_DXTN_VERSION=libtxc_dxtn-1.0.1
|
||||
- LIBVDPAU_VERSION=libvdpau-1.1
|
||||
- LIBVA_VERSION=libva-1.6.2
|
||||
- LIBWAYLAND_VERSION=wayland-1.11.1
|
||||
- WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
|
||||
- PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
|
||||
- LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
|
||||
- PATH="$HOME/prefix/bin:$PATH"
|
||||
|
||||
matrix:
|
||||
include:
|
||||
@@ -37,10 +37,9 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="make check"
|
||||
- DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
|
||||
- DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--disable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
@@ -62,20 +61,16 @@ matrix:
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC="gcc-4.8"
|
||||
- OVERRIDE_CXX="g++-4.8"
|
||||
# New binutils linker is required for llvm-3.9
|
||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
||||
- 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"
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="swr"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
packages:
|
||||
- binutils-2.26
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
@@ -86,7 +81,6 @@ matrix:
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers Other"
|
||||
- BUILD=make
|
||||
@@ -94,20 +88,16 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.9
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
# New binutils linker is required for llvm-3.9
|
||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
||||
- 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"
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
packages:
|
||||
- binutils-2.26
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
@@ -118,139 +108,58 @@ matrix:
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-3.9"
|
||||
- LABEL="make Gallium ST Clover"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.9
|
||||
- LLVM_VERSION=3.6
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC=gcc-4.7
|
||||
- OVERRIDE_CXX=g++-4.7
|
||||
# New binutils linker is required for llvm-3.9
|
||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
||||
- 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"
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
|
||||
# i915 most likely doesn't work with OpenCL.
|
||||
# Regardless - we're doing a quick build test here.
|
||||
- GALLIUM_DRIVERS="i915"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
- llvm-toolchain-trusty-3.6
|
||||
packages:
|
||||
- binutils-2.26
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- g++-4.7
|
||||
# From sources above
|
||||
- llvm-3.9-dev
|
||||
- clang-3.9
|
||||
- libclang-3.9-dev
|
||||
- llvm-3.6-dev
|
||||
- clang-3.6
|
||||
- libclang-3.6-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-4.0"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=4.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- OVERRIDE_CC=gcc-4.8
|
||||
- OVERRIDE_CXX=g++-4.8
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--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:
|
||||
- llvm-toolchain-trusty-4.0
|
||||
packages:
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- g++-4.8
|
||||
# From sources above
|
||||
- llvm-4.0-dev
|
||||
- clang-4.0
|
||||
- libclang-4.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- env:
|
||||
# NOTE: Analogous to SWR above, building Clover is quite slow.
|
||||
- LABEL="make Gallium ST Clover LLVM-5.0"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- 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="--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:
|
||||
- llvm-toolchain-trusty-5.0
|
||||
packages:
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- g++-4.8
|
||||
# From sources above
|
||||
- llvm-5.0-dev
|
||||
- clang-5.0
|
||||
- libclang-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- env:
|
||||
- LABEL="make Gallium ST Other"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.3
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx-bellagio --enable-gallium-osmesa"
|
||||
- GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx --enable-gallium-osmesa"
|
||||
# We need swrast for osmesa and nine.
|
||||
# i915 most likely doesn't work with most ST.
|
||||
# Regardless - we're doing a quick build test here.
|
||||
- GALLIUM_DRIVERS="i915,swrast"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# We actually want to test against llvm-3.3
|
||||
- llvm-3.3-dev
|
||||
# Nine requires gcc 4.6... which is the one we have right ?
|
||||
- libxvmc-dev
|
||||
# Build locally, for now.
|
||||
@@ -265,7 +174,6 @@ matrix:
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- env:
|
||||
- LABEL="make Vulkan"
|
||||
- BUILD=make
|
||||
@@ -273,20 +181,16 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
|
||||
- LLVM_VERSION=3.9
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
# New binutils linker is required for llvm-3.9
|
||||
- OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS="intel,radeon"
|
||||
- LIBUNWIND_FLAGS="--disable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
packages:
|
||||
- binutils-2.26
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# From sources above
|
||||
@@ -368,12 +272,6 @@ matrix:
|
||||
install:
|
||||
- pip install --user mako
|
||||
|
||||
# Install the latest meson from pip, since the version in the ubuntu repos is
|
||||
# often quite old.
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
pip3 install --user meson;
|
||||
fi
|
||||
|
||||
# Since libdrm gets updated in configure.ac regularly, try to pick up the
|
||||
# latest version from there.
|
||||
- for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
|
||||
@@ -419,6 +317,19 @@ install:
|
||||
- tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
|
||||
- (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
# libtxc-dxtn uses the patented S3 Texture Compression
|
||||
# algorithm. Therefore, we don't want to use this library but it is
|
||||
# still possible through setting the USE_TXC_DXTN variable to yes in
|
||||
# the travis web UI.
|
||||
#
|
||||
# According to Wikipedia, the patent expires on October 2, 2017:
|
||||
# https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
|
||||
- if test "x$USE_TXC_DXTN" = xyes; then
|
||||
wget https://people.freedesktop.org/~cbrill/libtxc_dxtn/$LIBTXC_DXTN_VERSION.tar.bz2;
|
||||
tar -jxvf $LIBTXC_DXTN_VERSION.tar.bz2;
|
||||
(cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
|
||||
fi
|
||||
|
||||
- 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)
|
||||
@@ -435,11 +346,6 @@ install:
|
||||
- tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
- (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
# Meson requires ninja >= 1.6, but trusty has 1.3.x
|
||||
- wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip;
|
||||
- unzip ninja-linux.zip
|
||||
- mv ninja $HOME/prefix/bin/
|
||||
|
||||
# Generate the header since one is missing on the Travis instance
|
||||
- mkdir -p linux
|
||||
- printf "%s\n" \
|
||||
@@ -458,12 +364,9 @@ script:
|
||||
- if test "x$BUILD" = xmake; then
|
||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
||||
test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH";
|
||||
|
||||
export CFLAGS="$CFLAGS -isystem`pwd`";
|
||||
export CC="$CC -isystem`pwd`";
|
||||
|
||||
./autogen.sh --enable-debug
|
||||
$LIBUNWIND_FLAGS
|
||||
$DRI_LOADERS
|
||||
--with-dri-drivers=$DRI_DRIVERS
|
||||
$GALLIUM_ST
|
||||
@@ -479,9 +382,3 @@ script:
|
||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
||||
scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
|
||||
fi
|
||||
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
export CFLAGS="$CFLAGS -isystem`pwd`";
|
||||
meson _build $MESON_OPTIONS;
|
||||
ninja -C _build;
|
||||
fi
|
||||
|
@@ -32,6 +32,7 @@ LOCAL_C_INCLUDES += \
|
||||
MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION)
|
||||
LOCAL_CFLAGS += \
|
||||
-Wno-unused-parameter \
|
||||
-Wno-date-time \
|
||||
-Wno-pointer-arith \
|
||||
-Wno-missing-field-initializers \
|
||||
-Wno-initializer-overrides \
|
||||
@@ -63,9 +64,8 @@ LOCAL_CFLAGS += \
|
||||
-DHAVE___BUILTIN_CLZLL \
|
||||
-DHAVE___BUILTIN_UNREACHABLE \
|
||||
-DHAVE_PTHREAD=1 \
|
||||
-DHAVE_DLADDR \
|
||||
-DHAVE_DLOPEN \
|
||||
-DHAVE_DL_ITERATE_PHDR \
|
||||
-DHAVE_ENDIAN_H \
|
||||
-DMAJOR_IN_SYSMACROS \
|
||||
-fvisibility=hidden \
|
||||
-Wno-sign-compare
|
||||
@@ -98,9 +98,8 @@ LOCAL_CFLAGS += -DHAVE_LIBDRM
|
||||
LOCAL_SHARED_LIBRARIES += libdrm
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
LOCAL_PROPRIETARY_MODULE := true
|
||||
LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/system/lib/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/system/lib64/$(MESA_DRI_MODULE_REL_PATH)\"
|
||||
|
||||
# uncomment to keep the debug symbols
|
||||
#LOCAL_STRIP_MODULE := false
|
||||
|
@@ -75,10 +75,6 @@ $(foreach d, $(BOARD_GPU_DRIVERS), \
|
||||
MESA_BUILD_CLASSIC := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(classic_drivers)))))
|
||||
MESA_BUILD_GALLIUM := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(gallium_drivers)))))
|
||||
endif
|
||||
ifeq ($(filter x86%,$(TARGET_ARCH)),)
|
||||
MESA_BUILD_CLASSIC :=
|
||||
endif
|
||||
|
||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
||||
|
||||
# host and target must be the same arch to generate matypes.h
|
||||
@@ -99,9 +95,7 @@ define mesa-build-with-llvm
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(if $(filter P,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(if $(filter O,$(MESA_ANDROID_MAJOR_VERSION)), \
|
||||
$(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \
|
||||
$(eval LOCAL_SHARED_LIBRARIES += libLLVM)
|
||||
endef
|
||||
|
@@ -41,7 +41,6 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-xa \
|
||||
--enable-xvmc \
|
||||
--enable-llvm-shared-libs \
|
||||
--enable-libunwind \
|
||||
--with-platforms=x11,wayland,drm,surfaceless \
|
||||
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
|
||||
--with-gallium-drivers=i915,nouveau,r300,pl111,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,swr,etnaviv,imx \
|
||||
@@ -54,11 +53,9 @@ EXTRA_DIST = \
|
||||
common.py \
|
||||
docs \
|
||||
doxygen \
|
||||
bin/git_sha1_gen.py \
|
||||
bin/git_sha1_gen.sh \
|
||||
scons \
|
||||
SConstruct \
|
||||
build-support/conftest.dyn \
|
||||
build-support/conftest.map
|
||||
SConstruct
|
||||
|
||||
noinst_HEADERS = \
|
||||
include/c99_alloca.h \
|
||||
|
@@ -103,12 +103,6 @@ F: CleanSpec.mk
|
||||
F: */Android.*mk
|
||||
F: */Makefile.sources
|
||||
|
||||
MESON BUILD
|
||||
R: Dylan Baker <dylan@pnwbakers.com>
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
F: */meson.build
|
||||
F: meson_options.txt
|
||||
|
||||
ANDROID EGL SUPPORT
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
R: Tomasz Figa <tfiga@chromium.org>
|
||||
|
11
SConstruct
11
SConstruct
@@ -50,10 +50,10 @@ except KeyError:
|
||||
pass
|
||||
else:
|
||||
targets = targets.split(',')
|
||||
print('scons: warning: targets option is deprecated; pass the targets on their own such as')
|
||||
print()
|
||||
print(' scons %s' % ' '.join(targets))
|
||||
print()
|
||||
print 'scons: warning: targets option is deprecated; pass the targets on their own such as'
|
||||
print
|
||||
print ' scons %s' % ' '.join(targets)
|
||||
print
|
||||
COMMAND_LINE_TARGETS.append(targets)
|
||||
|
||||
|
||||
@@ -152,7 +152,8 @@ try:
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
aliases = sorted(default_ans.keys())
|
||||
aliases = default_ans.keys()
|
||||
aliases.sort()
|
||||
env.Help('\n')
|
||||
env.Help('Recognized targets:\n')
|
||||
for alias in aliases:
|
||||
|
@@ -1,185 +1,20 @@
|
||||
# fixes: The commit addresses Meson which is explicitly disabled for 17.3
|
||||
ab0809e5529725bd0af6f7b6ce06415020b9d32e meson: fix strtof locale support check
|
||||
# fixes: The commits are too invasive for stable. Instead the offending patches
|
||||
# causing regressions have been reverted.
|
||||
365d34540f331df57780dddf8da87235be0a6bcb mesa: correctly calculate the storage offset for i915
|
||||
de0e62e1065e2d9172acf3ab7c70bba0160125c8 st/mesa: correctly calculate the storage offset
|
||||
|
||||
# fixes: The commit addresses Meson which is explicitly disabled for 17.3
|
||||
44fbbd6fd07e5784b05e08e762e54b6c71f95ab1 util: add mesa-sha1 test to meson
|
||||
# stable: Add loader::getCapability patches. It's rather invasive infra
|
||||
# not suitable as a bugfix.
|
||||
1bf703e4ea5c4f742bc7ba55d01e5afc3f4e11f9 dri_interface,egl,gallium: only expose RGBA visuals on Android
|
||||
be5773fa8dfe9255d9abaf5c7d5bbbd2d922da08 Android: fix compile error for DRI2 loader getCapability
|
||||
31a6750988d7dd431f72ff1ff11bfca83bde5d8c st/dri: NULL check before deref DRI loader .getCapability
|
||||
|
||||
# stable: The commit addresses earlier commit 6132992cdb which did not land in
|
||||
# branch
|
||||
3d2b157e23c9d66df97d59be6efd1098878cc110 i965/fs: Use UW types when using V immediates
|
||||
# stable: The commit addresses code that did not land in the stable branch
|
||||
31bb8517a194af733deefe2d821537d994d39365 radv/gfx9: fix tile swizzle handling for gfx9
|
||||
|
||||
# extra: The commit just references a fix for an additional change in its v2.
|
||||
c1ff99fd70cd2ceb2cac4723e4fd5efc93834746 main: Clear shader program data whenever ProgramBinary is called
|
||||
# stable: Commit is not applicable when 4fab67a4415 is missing.
|
||||
d496780fb2c7f2cf0e32b6a79dc528e5156dfcb3 intel/eu/validate: Look up types on demand in execution_type()
|
||||
|
||||
# fixes: The commit addresses earlier commits 40a01c9a0ef and 8d745abc009 which
|
||||
# did not land in branch
|
||||
9b0223046668593deb9c0be0b557994bb5218788 egl: pass the dri2_dpy to the $plat_teardown functions
|
||||
|
||||
# fixes: The commit addresses earlier commit d50937f137 which did not land in
|
||||
# branch
|
||||
78a8b73e7d45f55ced98a148b26247d91f4e0171 vulkan/wsi: free cmd pools
|
||||
|
||||
# stable: The commit addresses earlier commit 6d87500fe12 which did not land in
|
||||
# branch
|
||||
525b4f7548462bfc2e82f2d1f04f61ce6854a3c5 i965: Accept CONTEXT_ATTRIB_PRIORITY for brwCreateContext
|
||||
|
||||
# stable: The commit depends on earlier commit a4be2bcee2 which did not land in
|
||||
# branch
|
||||
a29d63ecf71546c4798c609e37810f0ec81793d8 swr: refactor swr_create_screen to allow for proper cleanup on error
|
||||
|
||||
# stable: Explicit 18.0 only nominations
|
||||
4b69ba381766cd911eb1284f1b0332a139ec8a75 anv/pipeline: Don't assert on more than 32 samplers
|
||||
bc0a21e34811e0e1542236dbaf5fb1fa56bbb98c anv/cmd_state: Drop the scratch_size field
|
||||
d6c9a89d1324ed2c723cbd3c6d8390691c58dfd2 anv/cmd_buffer: Get rid of the meta query workaround
|
||||
cd3feea74582cea2d18306d167609f4fbe681bb3 anv/cmd_buffer: Rework anv_cmd_state_reset
|
||||
ddc2d285484a1607f79ffeb2fc6c09367c6aea1f anv/cmd_buffer: Use some pre-existing pipeline temporaries
|
||||
9af5379228d7be9c7ea41e0912a8770d28ead92b anv/cmd_buffer: Add substructs to anv_cmd_state for graphics and compute
|
||||
d5592e2fdaa9ce8b98d38b2d29e2a7d2c4abda08 anv: Remove semicolons from vk_error[f] definitions
|
||||
90cceaa9dd3b12e039a131a50c6866dce04e7fb2 anv/cmd_buffer: Refactor ensure_push_descriptor_set
|
||||
b9e1ca16f84016f1d40efa9bfee89db48a7702b4 anv/cmd_buffer: Add a helper for binding descriptor sets
|
||||
31b2144c836485ef6476bd455f1c02b96deafab7 anv/cmd_buffer: Use anv_descriptor_for_binding for samplers
|
||||
97f96610c8b858267c121c0ad6ffc630e2aafc09 anv: Separate compute and graphics descriptor sets
|
||||
e85aaec1489b00f24ebef4ae5b1da598091275e1 anv/cmd_buffer: Move dirty bits into anv_cmd_*_state
|
||||
8bd5ec5b862333c936426ff18d093d07dd006182 anv/cmd_buffer: Move vb_dirty bits into anv_cmd_graphics_state
|
||||
24caee8975355a2b54b41c484ff3c897e1911760 anv/cmd_buffer: Use a temporary variable for dynamic state
|
||||
95ff2322948692f5f7b1d444aabe878fba53304c anv/cmd_buffer: Move dynamic state to graphics state
|
||||
38ec78049f69821091a2d42b0f457a1b044d4273 anv/cmd_buffer: Move num_workgroups to compute state
|
||||
4064fe59e7144fa822568543cfcc043387645d4e anv/cmd_buffer: Move gen7 index buffer state to graphics state
|
||||
|
||||
# fixes: The commit requires earlier commit 49d035122ee which did not land in
|
||||
# branch
|
||||
766589d89a211e67f313e8cb38f2d05b09975f96 radv: fix sample_mask_in loading. (v3.1)
|
||||
|
||||
# stable: The commits address the Meson build that is explicitly disabled in
|
||||
# branch
|
||||
c38c60a63c63b02d1030c6c349aa0a73105e10eb meson: fix BSD build
|
||||
5781c3d1db4a01e77f416c1685025c4d830ae87d meson: correctly set SYSCONFDIR for loading dirrc
|
||||
7c8cfe2d59bfc0dbf718a74b08b6dceaa84f7242 meson: fix missing dependencies
|
||||
53f9131205a63fa8b282ab2a7e96c48209447da0 meson: fix getting cflags from pkg-config
|
||||
8fae5eddd9982f4586d76471d0196befeb46de24 meson: handle LLVM 'x.x.xgit-revision' versionsi
|
||||
|
||||
# stable: The commit requires earlier commit 01ab218bbc which did not land in
|
||||
# branch
|
||||
0e879aad2fd1dac102c13d680edf455aa068d5df swr/rast: support llvm 3.9 type declarations
|
||||
|
||||
# stable: The commit requires earlier commit w41c36c45 which did not land in
|
||||
# branch
|
||||
49b0a140a731069e0e4959c65bfd1b597a4fb141 ac/nir: set amdgpu.uniform and invariant.load for UBOs
|
||||
|
||||
# stable: The commits address gen10 support which is missing in branch
|
||||
ca19ee33d7d39cb89d948b1c983763065975ce5b i965/gen10: Ignore push constant packets during context restore.
|
||||
78c125af3904c539ea69bec2dd9fdf7a5162854f anv/gen10: Ignore push constant packets during context restore.
|
||||
bcfd78e4489f538e34138269650fc6cbe8c9d75f i965/gen10: Re-enable push constants.
|
||||
|
||||
# stable: The commits are explicit 18.0 nominations
|
||||
17423c993d0b083c7a77a404b85788687f5efe36 winsys/amdgpu: fix assertion failure with UVD and VCE rings
|
||||
e0e23ea69cab23b9193b1e7c568fd23fc7073071 r600/eg: construct proper rat mask for image/buffers.
|
||||
|
||||
# stable: The commits address the initial shader cache support which did not land in branch
|
||||
28db950b51274ce296cd625db62abe935d1e4ed9 i965: fix prog_data leak in brw_disk_cache
|
||||
b99c88037bf64b033579f237ec287857c53b0ad6 i965: fix disk_cache leak when destroying context
|
||||
|
||||
# stable: The commit covers nir serialise, which did not land in branch
|
||||
d0343bef6680cc660ba691bbed31a2a1b7449f79 nir: mark unused space in packed_tex_data
|
||||
|
||||
# stable: The KHX extension is disabled all together in the stable branches.
|
||||
bee9270853c34aa8e4b3d19a125608ee67c87b86 radv: Don't expose VK_KHX_multiview on android.
|
||||
|
||||
# fixes: The commit addresses the meson build, which is disabled in branch
|
||||
4a0bab1d7f942ad0ac9b98ab34e6a9e4694f3c04 meson: libdrm shouldn't appear in Requires.private: if it wasn't found
|
||||
16bf8138308008f4b889caa827a8291ff72745b8 meson/swr: re-shuffle generated files
|
||||
bbef9474fa52d9aba06eeede52558fc5ccb762dd meson/swr: Updated copyright dates
|
||||
d7235ef83b92175537e3b538634ffcff29bf0dce meson: Don't confuse the install and search paths for dri drivers
|
||||
c75a4e5b465261e982ea31ef875325a3cc30e79d meson: Check for actual LLVM required versions
|
||||
105178db8f5d7d45b268c7664388d7db90350704 meson: fix test source name for static glapi
|
||||
c74719cf4adae2fa142e154bff56716427d3d992 glapi: fix check_table test for non-shared glapi with meson
|
||||
|
||||
# stable: Explicit 18.0 only nominations
|
||||
2ffe395cba0f7b3c1f1c41062f4376eae3a188b5 radv: Don't expose VK_KHX_multiview on android.
|
||||
4195eed961ccfe404ae81b9112189fc93a254ded glsl/linker: check same name is not used in block and outside
|
||||
a5053ba27ed76f666e315de7150433c5aaaaf2c3 anv/device: initialize the list of enabled extensions properly
|
||||
bd6c0cab606fa0a3b821e50542ba06ff714292bf i965: perf: use drmIoctl() instead of ioctl()
|
||||
bf1577fe0972ae910c071743dc89d261a46c2926 i965/gen10: Remove warning message.
|
||||
fcae3d1a9acc080bf31cf7b5c4d0b18e67319b09 anv/gen10: Remove warning message.
|
||||
eb2e17e2d15bf58b60460437330d719131fb859e docs: Add Cannonlake support to 18.0 release notes.
|
||||
9a508b719be32ef10ca929250b7aafba313104c6 android: anv/extensions: fix generated sources build
|
||||
d448954228e69fd1b4000ea13e28c2ba2832db13 android: anv: add dependency on libnativewindow for O and later
|
||||
6451b0703ff3027b746d6268b98dd2b3e6698be5 android: vulkan/util: add dependency on libnativewindow for O and later
|
||||
c956d0f4069cf39d8d3c57ebed8d905575e9ea34 radv: make sure to emit cache flushes before starting a query
|
||||
c133a3411bbf47c2ba7d9cdae7e35a64fe276068 radv: do not set pending_reset_query in BeginCommandBuffer()
|
||||
55376cb31e2f495a4d872b4ffce2135c3365b873 st/mesa: expose 0 shader binary formats for compat profiles for Qt
|
||||
|
||||
# stable: The commits address gen10 support which is missing in branch
|
||||
56dc9f9f49638e0769d6bc696ff7f5dafccec9fc intel/compiler: Memory fence commit must always be enabled for gen10+
|
||||
|
||||
# stable: The commit requires earlier commits 4e7f6437b535 and a6b379284365
|
||||
# which did not land in branch
|
||||
ab5cee4c241cb360cf67101dd751e0f38637b526 r600/compute: only mark buffer/image state dirty for fragment shaders
|
||||
|
||||
# stable: The commits have a specific version for the 17.3 branch
|
||||
4796025ba518baa0e8893337591a3f452a375d94 intel/isl: Add an isl_color_value_is_zero helper
|
||||
85d0bec9616bc1ffa8e4ab5e7c5d12ff4e414872 anv: Be more careful about fast-clear colors
|
||||
|
||||
# stable: The commit fixes earlier commit cd3feea74582 which did not land in
|
||||
# branch
|
||||
4c77e21c814145e845bac64cce40eadfd7ac0bd9 anv: Move setting current_pipeline to cmd_state_init
|
||||
|
||||
# stable: The commit is causing several regressions in Vulkan CTS tests in
|
||||
# different platforms (hsw, bdw, bsw, ...)
|
||||
85d0bec9616bc1ffa8e4ab5e7c5d12ff4e414872 anv: Be more careful about fast-clear colors
|
||||
|
||||
# stable: The commit requires earlier commit a03d456f5a41 which did not land in
|
||||
# branch
|
||||
c7cadcbda47537d474eea52b9e77e57ef9287f9b r600: Take ALU_EXTENDED into account when evaluating jump offsets
|
||||
|
||||
# fixes: The commit requires earlier commits 77097d96a0 and a5a654b19a which
|
||||
# did not land in branch
|
||||
c7dcee58b5fe183e1653c13bff6a212f0d157b29 i965: Avoid problems from referencing orphaned BOs after growing.
|
||||
|
||||
# fixes: The commit addresses the meson build, which is disabled in branch
|
||||
5317211fa029ee8d0e1c802ef8c01f64c470e3d5 meson: use a custom target instead of a generator for i965 oa
|
||||
d672084ba29a64f5ec8c9cd23d4b77c0efa05693 meson: define empty variables for libswdri and libswkmsdri
|
||||
8eb608df61912cfd0633fe982b140e22e7563770 meson: add libswdri and libswkmsdri to dri link_with
|
||||
7023b373ec76a2ea25b1bd0a7501276de9007047 meson: link dri3 xcb libs into vlwinsys instead of into each target
|
||||
5c460337fd9c1096dea4bc569bd876a112ed6f16 meson: Fix GL and EGL pkg-config files with glvnd
|
||||
e23192022a2cde122a6ccc70e5495fda009bee12 meson: install vulkan_intel.h header
|
||||
|
||||
# fixes: The commit fixes earlier commit 1c57a6da5e which did not land in
|
||||
# branch
|
||||
3401b028df1074a06a7fbc3fb1cda949646ef75d ac/shader: fix vertex input with components.
|
||||
|
||||
# extra: The commit requires earlier commit a63c74be851 which did not land in
|
||||
# branch
|
||||
fa8a764b62588420ac789df79ec0ab858b38639f i965: Use absolute addressing for constant buffer 0 on Kernel 4.16+.
|
||||
|
||||
# extra: The commit requires earlier commit a44744e01d which did not land in
|
||||
# branch
|
||||
adca1e4a92a53a403b7620c3356dcf038f0bcecc anv/image: Separate modifiers from legacy scanout
|
||||
|
||||
# stable: The commit requires earlier commits fe81e1f9751 and 92c1290dc57 which
|
||||
# did not land in branch
|
||||
fb5825e7ceeb16ac05f870ffe1e5a5daa09e68dd glsl: Fix memory leak with known glsl_type instances
|
||||
|
||||
# fixes: The commits require earlier commits 2deb82207572 and b2653007b980
|
||||
# which did not land in branch
|
||||
4f0c89d66c570e82d832e2e49227517302e271a2 ac/nir: pass the nir variable through tcs loading.
|
||||
27a5e5366e89498d98d786cc84fafbdb220c4d94 radv: mark all tess output for an indirect access.
|
||||
|
||||
# fixes: The commit requires earlier commits b358e0e67fac and b2653007b980
|
||||
# which did not land in branch
|
||||
8f052a3e257a61240cb311032497d016278117a8 radv: handle exporting view index to fragment shader. (v1.1)
|
||||
|
||||
# fixes: The commit fixes earier commits 83d4a5d5aea5a8a05be2,
|
||||
# b2f2236dc565dd1460f0 and c62cf1f165919bc74296 which did not land in
|
||||
# branch
|
||||
880c1718b6d14b33fe5ba918af70fea5be890c6b omx: always define ENABLE_ST_OMX_{BELLAGIO,TIZONIA}
|
||||
|
||||
# stable: Explicit 18.0 only nominations
|
||||
d77844a5290948a490ce6921c1623d1dd7af6c31 docs: fix 18.0 release note version
|
||||
|
||||
# stable: Explicit 18.0 only nominations
|
||||
1866f76f7bc3ec54b4e91eb7d329b2e6f7b6277c freedreno/a5xx: fix page faults on last level
|
||||
2f175bfe5d8ca59a8a68b6d6d072cd7bf2f8baa9 freedreno/a5xx: don't align height for PIPE_BUFFER
|
||||
|
||||
# fixes: A specific backport of this commit was applied for this branch.
|
||||
4503ff760c794c3bb15b978a47c530037d56498e ac/nir: Add workaround for GFX9 buffer views.
|
||||
# fixes: Depend on preseding commit which adds new public GBM API
|
||||
3a5e3aa5a53cff55a5e31766d713a41ffa5a93d7 egl/drm: Fix misused x and y offsets in swrast_put_image2()
|
||||
fe2a6281b3b299998fe7399e7dbcc2077d773824 egl/drm: Fix misused x and y offsets in swrast_get_image()
|
||||
|
@@ -1,36 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Generate the contents of the git_sha1.h file.
|
||||
The output of this script goes to stdout.
|
||||
"""
|
||||
|
||||
|
||||
import os
|
||||
import os.path
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def get_git_sha1():
|
||||
"""Try to get the git SHA1 with git rev-parse."""
|
||||
git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git')
|
||||
try:
|
||||
git_sha1 = subprocess.check_output([
|
||||
'git',
|
||||
'--git-dir=' + git_dir,
|
||||
'rev-parse',
|
||||
'HEAD',
|
||||
], stderr=open(os.devnull, 'w')).decode("ascii")
|
||||
except:
|
||||
# don't print anything if it fails
|
||||
git_sha1 = ''
|
||||
return git_sha1
|
||||
|
||||
|
||||
git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10]
|
||||
if 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:
|
||||
sys.stdout.write(git_sha1_h_in.read().replace('@VCS_TAG@', git_sha1))
|
12
bin/git_sha1_gen.sh
Executable file
12
bin/git_sha1_gen.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
# run git from the sources directory
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# don't print anything if git fails
|
||||
if ! git_sha1=$(git --git-dir=../.git rev-parse --short=10 HEAD 2>/dev/null)
|
||||
then
|
||||
exit
|
||||
fi
|
||||
|
||||
printf '#define MESA_GIT_SHA1 "git-%s"\n' "$git_sha1"
|
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding=utf-8
|
||||
# Copyright © 2017 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
"""Script to install megadriver symlinks for meson."""
|
||||
|
||||
from __future__ import print_function
|
||||
import argparse
|
||||
import os
|
||||
import shutil
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('megadriver')
|
||||
parser.add_argument('libdir')
|
||||
parser.add_argument('drivers', nargs='+')
|
||||
args = parser.parse_args()
|
||||
|
||||
to = os.path.join(os.environ.get('MESON_INSTALL_DESTDIR_PREFIX'), args.libdir)
|
||||
master = os.path.join(to, os.path.basename(args.megadriver))
|
||||
|
||||
if not os.path.exists(to):
|
||||
os.makedirs(to)
|
||||
shutil.copy(args.megadriver, master)
|
||||
|
||||
for each in args.drivers:
|
||||
driver = os.path.join(to, each)
|
||||
if os.path.exists(driver):
|
||||
os.unlink(driver)
|
||||
print('installing {} to {}'.format(args.megadriver, to))
|
||||
os.link(master, driver)
|
||||
os.unlink(master)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
@@ -1,3 +0,0 @@
|
||||
{
|
||||
radeon_drm_winsys_create;
|
||||
};
|
@@ -1,6 +0,0 @@
|
||||
VERSION_1 {
|
||||
global:
|
||||
main;
|
||||
local:
|
||||
*;
|
||||
};
|
408
configure.ac
408
configure.ac
@@ -74,7 +74,7 @@ AC_SUBST([OPENCL_VERSION])
|
||||
# in the first entry.
|
||||
LIBDRM_REQUIRED=2.4.75
|
||||
LIBDRM_RADEON_REQUIRED=2.4.71
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.89
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.82
|
||||
LIBDRM_INTEL_REQUIRED=2.4.75
|
||||
LIBDRM_NVVIEUX_REQUIRED=2.4.66
|
||||
LIBDRM_NOUVEAU_REQUIRED=2.4.66
|
||||
@@ -101,7 +101,7 @@ ZLIB_REQUIRED=1.2.3
|
||||
|
||||
dnl LLVM versions
|
||||
LLVM_REQUIRED_GALLIUM=3.3.0
|
||||
LLVM_REQUIRED_OPENCL=3.9.0
|
||||
LLVM_REQUIRED_OPENCL=3.6.0
|
||||
LLVM_REQUIRED_R600=3.9.0
|
||||
LLVM_REQUIRED_RADEONSI=3.9.0
|
||||
LLVM_REQUIRED_RADV=3.9.0
|
||||
@@ -282,50 +282,85 @@ esac
|
||||
|
||||
AM_CONDITIONAL(HAVE_ANDROID, test "x$android" = xyes)
|
||||
|
||||
dnl
|
||||
dnl Check compiler flags
|
||||
dnl
|
||||
AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=implicit-function-declaration], [CFLAGS="$CFLAGS -Werror=implicit-function-declaration"])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=missing-prototypes], [CFLAGS="$CFLAGS -Werror=missing-prototypes"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CFLAGS="$CFLAGS -Wmissing-prototypes"])
|
||||
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"])
|
||||
|
||||
dnl
|
||||
dnl Check C++ compiler flags
|
||||
dnl
|
||||
AC_LANG_PUSH([C++])
|
||||
AX_CHECK_COMPILE_FLAG([-Wall], [CXXFLAGS="$CXXFLAGS -Wall"])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-math-errno], [CXXFLAGS="$CXXFLAGS -fno-math-errno"])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-trapping-math], [CXXFLAGS="$CXXFLAGS -fno-trapping-math"])
|
||||
AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
# Flags to help ensure that certain portions of the code -- and only those
|
||||
# portions -- can be built with MSVC:
|
||||
# - src/util, src/gallium/auxiliary, rc/gallium/drivers/llvmpipe, and
|
||||
# - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
|
||||
# supports most of C99)
|
||||
# - the rest has no compiler compiler restrictions
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=pointer-arith], [MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=vla], [MSVC2013_COMPAT_CFLAGS="-Werror=vla"])
|
||||
AC_LANG_PUSH([C++])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=pointer-arith], [MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror=vla], [MSVC2013_COMPAT_CXXFLAGS="-Werror=vla"])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
AC_SUBST([MSVC2013_COMPAT_CFLAGS])
|
||||
AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
|
||||
|
||||
dnl Add flags for gcc and g++
|
||||
if test "x$GCC" = xyes; then
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
|
||||
if test "x$USE_GNU99" = xyes; then
|
||||
CFLAGS="$CFLAGS -std=gnu99"
|
||||
else
|
||||
CFLAGS="$CFLAGS -std=c99"
|
||||
fi
|
||||
|
||||
# Enable -Werror=implicit-function-declaration and
|
||||
# -Werror=missing-prototypes, if available, or otherwise, just
|
||||
# -Wmissing-prototypes. This is particularly useful to avoid
|
||||
# generating a loadable driver module that has undefined symbols.
|
||||
save_CFLAGS="$CFLAGS"
|
||||
AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
|
||||
CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
|
||||
CFLAGS="$CFLAGS -Werror=missing-prototypes"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
|
||||
AC_MSG_RESULT([yes]),
|
||||
[CFLAGS="$save_CFLAGS -Wmissing-prototypes";
|
||||
AC_MSG_RESULT([no])])
|
||||
|
||||
# Enable -fvisibility=hidden if using a gcc that supports it
|
||||
save_CFLAGS="$CFLAGS"
|
||||
AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
|
||||
VISIBILITY_CFLAGS="-fvisibility=hidden"
|
||||
CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
|
||||
[VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])])
|
||||
|
||||
# Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
|
||||
CFLAGS=$save_CFLAGS
|
||||
|
||||
# We don't want floating-point math functions to set errno or trap
|
||||
CFLAGS="$CFLAGS -fno-math-errno -fno-trapping-math"
|
||||
|
||||
# Flags to help ensure that certain portions of the code -- and only those
|
||||
# portions -- can be built with MSVC:
|
||||
# - src/util, src/gallium/auxiliary, rc/gallium/drivers/llvmpipe, and
|
||||
# - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
|
||||
# supports most of C99)
|
||||
# - the rest has no compiler compiler restrictions
|
||||
MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
|
||||
MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
|
||||
|
||||
# Enable -Werror=vla if compiler supports it
|
||||
save_CFLAGS="$CFLAGS"
|
||||
AC_MSG_CHECKING([whether $CC supports -Werror=vla])
|
||||
CFLAGS="$CFLAGS -Werror=vla"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
|
||||
[MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
|
||||
MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
|
||||
AC_MSG_RESULT([yes])],
|
||||
AC_MSG_RESULT([no]))
|
||||
CFLAGS="$save_CFLAGS"
|
||||
fi
|
||||
if test "x$GXX" = xyes; then
|
||||
CXXFLAGS="$CXXFLAGS -Wall"
|
||||
|
||||
# Enable -fvisibility=hidden if using a gcc that supports it
|
||||
save_CXXFLAGS="$CXXFLAGS"
|
||||
AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
|
||||
VISIBILITY_CXXFLAGS="-fvisibility=hidden"
|
||||
CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
|
||||
AC_LANG_PUSH([C++])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
|
||||
[VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
# Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
|
||||
CXXFLAGS=$save_CXXFLAGS
|
||||
|
||||
# We don't want floating-point math functions to set errno or trap
|
||||
CXXFLAGS="$CXXFLAGS -fno-math-errno -fno-trapping-math"
|
||||
fi
|
||||
|
||||
AC_SUBST([MSVC2013_COMPAT_CFLAGS])
|
||||
AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
|
||||
|
||||
dnl even if the compiler appears to support it, using visibility attributes isn't
|
||||
dnl going to do anything useful currently on cygwin apart from emit lots of warnings
|
||||
@@ -339,10 +374,6 @@ esac
|
||||
AC_SUBST([VISIBILITY_CFLAGS])
|
||||
AC_SUBST([VISIBILITY_CXXFLAGS])
|
||||
|
||||
AX_CHECK_COMPILE_FLAG([-Wno-override-init], [WNO_OVERRIDE_INIT="-Wno-override-init"]) # gcc
|
||||
AX_CHECK_COMPILE_FLAG([-Wno-initializer-overrides], [WNO_OVERRIDE_INIT="-Wno-initializer-overrides"]) # clang
|
||||
AC_SUBST([WNO_OVERRIDE_INIT])
|
||||
|
||||
dnl
|
||||
dnl Optional flags, check for compiler support
|
||||
dnl
|
||||
@@ -379,21 +410,8 @@ int main() {
|
||||
}]])], GCC_ATOMIC_BUILTINS_SUPPORTED=1)
|
||||
if test "x$GCC_ATOMIC_BUILTINS_SUPPORTED" = x1; then
|
||||
DEFINES="$DEFINES -DUSE_GCC_ATOMIC_BUILTINS"
|
||||
dnl On some platforms, new-style atomics need a helper library
|
||||
AC_MSG_CHECKING(whether -latomic is needed)
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <stdint.h>
|
||||
uint64_t v;
|
||||
int main() {
|
||||
return (int)__atomic_load_n(&v, __ATOMIC_ACQUIRE);
|
||||
}]])], GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=no, GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=yes)
|
||||
AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC)
|
||||
if test "x$GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC" = xyes; then
|
||||
LIBATOMIC_LIBS="-latomic"
|
||||
fi
|
||||
fi
|
||||
AM_CONDITIONAL([GCC_ATOMIC_BUILTINS_SUPPORTED], [test x$GCC_ATOMIC_BUILTINS_SUPPORTED = x1])
|
||||
AC_SUBST([LIBATOMIC_LIBS])
|
||||
|
||||
dnl Check if host supports 64-bit atomics
|
||||
dnl note that lack of support usually results in link (not compile) error
|
||||
@@ -606,7 +624,16 @@ dnl Check if linker supports version scripts
|
||||
dnl
|
||||
AC_MSG_CHECKING([if the linker supports version-scripts])
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,--version-script=$srcdir/build-support/conftest.map"
|
||||
LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
|
||||
cat > conftest.map <<EOF
|
||||
VERSION_1 {
|
||||
global:
|
||||
main;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
EOF
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[have_ld_version_script=yes;AC_MSG_RESULT(yes)],
|
||||
@@ -619,7 +646,12 @@ dnl Check if linker supports dynamic list files
|
||||
dnl
|
||||
AC_MSG_CHECKING([if the linker supports --dynamic-list])
|
||||
save_LDFLAGS=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS -Wl,--dynamic-list=$srcdir/build-support/conftest.dyn"
|
||||
LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
|
||||
cat > conftest.dyn <<EOF
|
||||
{
|
||||
radeon_drm_winsys_create;
|
||||
};
|
||||
EOF
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_SOURCE([int main() { return 0;}])],
|
||||
[have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
|
||||
@@ -791,10 +823,8 @@ fi
|
||||
AC_HEADER_MAJOR
|
||||
AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
|
||||
AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
|
||||
AC_CHECK_HEADERS([endian.h])
|
||||
AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
|
||||
AC_CHECK_FUNC([mkostemp], [DEFINES="$DEFINES -DHAVE_MKOSTEMP"])
|
||||
AC_CHECK_FUNC([memfd_create], [DEFINES="$DEFINES -DHAVE_MEMFD_CREATE"])
|
||||
|
||||
AC_MSG_CHECKING([whether strtod has locale support])
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
@@ -819,9 +849,9 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
|
||||
dnl Check to see if dlopen is in default libraries (like Solaris, which
|
||||
dnl has it in libc), or if libdl is needed to get it.
|
||||
AC_CHECK_FUNC([dlopen], [],
|
||||
AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
|
||||
[AC_CHECK_LIB([dl], [dlopen],
|
||||
[DLOPEN_LIBS="-ldl"])])
|
||||
[DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
|
||||
AC_SUBST([DLOPEN_LIBS])
|
||||
|
||||
dnl Check if that library also has dladdr
|
||||
@@ -867,10 +897,10 @@ dnl In practise that should be sufficient for all platforms, since any
|
||||
dnl platforms build with GCC and Clang support the flag.
|
||||
PTHREAD_LIBS="$PTHREAD_LIBS -pthread"
|
||||
|
||||
dnl pthread-stubs is mandatory on some BSD platforms, due to the nature of the
|
||||
dnl pthread-stubs is mandatory on BSD platforms, due to the nature of the
|
||||
dnl project. Even then there's a notable issue as described in the project README
|
||||
case "$host_os" in
|
||||
linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*)
|
||||
linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu*)
|
||||
pthread_stubs_possible="no"
|
||||
;;
|
||||
* )
|
||||
@@ -943,15 +973,6 @@ llvm_add_component() {
|
||||
fi
|
||||
}
|
||||
|
||||
llvm_add_optional_component() {
|
||||
new_llvm_component=$1
|
||||
driver_name=$2
|
||||
|
||||
if $LLVM_CONFIG --components | grep -iqw $new_llvm_component ; then
|
||||
LLVM_COMPONENTS="${LLVM_COMPONENTS} ${new_llvm_component}"
|
||||
fi
|
||||
}
|
||||
|
||||
llvm_add_default_components() {
|
||||
driver_name=$1
|
||||
|
||||
@@ -962,7 +983,9 @@ llvm_add_default_components() {
|
||||
llvm_add_component "mcjit" $driver_name
|
||||
|
||||
# Optional default components
|
||||
llvm_add_optional_component "inteljitevents" $driver_name
|
||||
if $LLVM_CONFIG --components | grep -iqw inteljitevents ; then
|
||||
LLVM_COMPONENTS="$LLVM_COMPONENTS inteljitevents"
|
||||
fi
|
||||
}
|
||||
|
||||
llvm_add_target() {
|
||||
@@ -1208,10 +1231,10 @@ AC_ARG_ENABLE([xa],
|
||||
[enable_xa=no])
|
||||
AC_ARG_ENABLE([gbm],
|
||||
[AS_HELP_STRING([--enable-gbm],
|
||||
[enable gbm library @<:@default=yes except cygwin and macOS@:>@])],
|
||||
[enable gbm library @<:@default=yes except cygwin@:>@])],
|
||||
[enable_gbm="$enableval"],
|
||||
[case "$host_os" in
|
||||
cygwin* | darwin*)
|
||||
cygwin*)
|
||||
enable_gbm=no
|
||||
;;
|
||||
*)
|
||||
@@ -1236,14 +1259,9 @@ AC_ARG_ENABLE([vdpau],
|
||||
[enable_vdpau=auto])
|
||||
AC_ARG_ENABLE([omx],
|
||||
[AS_HELP_STRING([--enable-omx],
|
||||
[DEPRECATED: Use --enable-omx-bellagio instead @<:@default=auto@:>@])],
|
||||
[AC_MSG_ERROR([--enable-omx is deprecated. Use --enable-omx-bellagio instead.])],
|
||||
[])
|
||||
AC_ARG_ENABLE([omx-bellagio],
|
||||
[AS_HELP_STRING([--enable-omx-bellagio],
|
||||
[enable OpenMAX Bellagio library @<:@default=disabled@:>@])],
|
||||
[enable_omx_bellagio="$enableval"],
|
||||
[enable_omx_bellagio=no])
|
||||
[enable OpenMAX library @<:@default=disabled@:>@])],
|
||||
[enable_omx="$enableval"],
|
||||
[enable_omx=no])
|
||||
AC_ARG_ENABLE([va],
|
||||
[AS_HELP_STRING([--enable-va],
|
||||
[enable va library @<:@default=auto@:>@])],
|
||||
@@ -1275,7 +1293,7 @@ GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
|
||||
AC_ARG_WITH([gallium-drivers],
|
||||
[AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
|
||||
[comma delimited Gallium drivers list, e.g.
|
||||
"i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,vc4,vc5,virgl,etnaviv,imx"
|
||||
"i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,vc4,virgl,etnaviv,imx"
|
||||
@<:@default=r300,r600,svga,swrast@:>@])],
|
||||
[with_gallium_drivers="$withval"],
|
||||
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
|
||||
@@ -1294,7 +1312,7 @@ if test "x$enable_opengl" = xno -a \
|
||||
"x$enable_xa" = xno -a \
|
||||
"x$enable_xvmc" = xno -a \
|
||||
"x$enable_vdpau" = xno -a \
|
||||
"x$enable_omx_bellagio" = xno -a \
|
||||
"x$enable_omx" = xno -a \
|
||||
"x$enable_va" = xno -a \
|
||||
"x$enable_opencl" = xno; then
|
||||
AC_MSG_ERROR([at least one API should be enabled])
|
||||
@@ -1385,10 +1403,18 @@ AC_ARG_ENABLE([libglvnd],
|
||||
AM_CONDITIONAL(USE_LIBGLVND, test "x$enable_libglvnd" = xyes)
|
||||
|
||||
if test "x$enable_libglvnd" = xyes ; then
|
||||
dnl XXX: update once we can handle more than libGL/glx.
|
||||
dnl Namely: we should error out if neither of the glvnd enabled libraries
|
||||
dnl are built
|
||||
case "x$enable_glx" in
|
||||
xno)
|
||||
AC_MSG_ERROR([cannot build libglvnd without GLX])
|
||||
;;
|
||||
xxlib | xgallium-xlib )
|
||||
AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
|
||||
;;
|
||||
xdri)
|
||||
;;
|
||||
esac
|
||||
|
||||
PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0)
|
||||
@@ -1397,10 +1423,6 @@ if test "x$enable_libglvnd" = xyes ; then
|
||||
|
||||
DEFINES="${DEFINES} -DUSE_LIBGLVND=1"
|
||||
DEFAULT_GL_LIB_NAME=GLX_mesa
|
||||
|
||||
if test "x$enable_glx" = xno -a "x$enable_egl" = xno; then
|
||||
AC_MSG_ERROR([cannot build libglvnd without GLX or EGL])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_ARG_WITH([gl-lib-name],
|
||||
@@ -1536,7 +1558,7 @@ fi
|
||||
AC_ARG_ENABLE([driglx-direct],
|
||||
[AS_HELP_STRING([--disable-driglx-direct],
|
||||
[disable direct rendering in GLX and EGL for DRI \
|
||||
@<:@default=enabled@:>@])],
|
||||
@<:@default=auto@:>@])],
|
||||
[driglx_direct="$enableval"],
|
||||
[driglx_direct="yes"])
|
||||
|
||||
@@ -1714,8 +1736,7 @@ for plat in $platforms; do
|
||||
case "$plat" in
|
||||
wayland)
|
||||
|
||||
PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= $WAYLAND_REQUIRED])
|
||||
PKG_CHECK_MODULES([WAYLAND_SERVER], [wayland-server >= $WAYLAND_REQUIRED])
|
||||
PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
|
||||
|
||||
if test "x$WAYLAND_SCANNER" = "x:"; then
|
||||
AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform])
|
||||
@@ -1723,7 +1744,7 @@ for plat in $platforms; do
|
||||
if test "x$have_wayland_protocols" = xno; then
|
||||
AC_MSG_ERROR([wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED is needed to compile the wayland platform])
|
||||
fi
|
||||
DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM -DWL_HIDE_DEPRECATED"
|
||||
DEFINES="$DEFINES -DHAVE_WAYLAND_PLATFORM"
|
||||
;;
|
||||
|
||||
x11)
|
||||
@@ -1813,11 +1834,6 @@ if test "x$with_dri_drivers" = xno; then
|
||||
with_dri_drivers=''
|
||||
fi
|
||||
|
||||
# Check for expat
|
||||
PKG_CHECK_MODULES([EXPAT], [expat],,
|
||||
[PKG_CHECK_MODULES([EXPAT], [expat21])]
|
||||
)
|
||||
|
||||
dnl If $with_dri_drivers is yes, drivers will be added through
|
||||
dnl platform checks. Set DEFINES and LIB_DEPS
|
||||
if test "x$enable_dri" = xyes; then
|
||||
@@ -1851,6 +1867,15 @@ if test "x$enable_dri" = xyes; then
|
||||
with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
|
||||
fi
|
||||
|
||||
# Check for expat
|
||||
PKG_CHECK_MODULES([EXPAT], [expat], [],
|
||||
# expat version 2.0 and earlier do not provide expat.pc
|
||||
[AC_CHECK_HEADER([expat.h],[],
|
||||
[AC_MSG_ERROR([Expat headers required for DRI not found])])
|
||||
AC_CHECK_LIB([expat],[XML_ParserCreate],[],
|
||||
[AC_MSG_ERROR([Expat library required for DRI not found])])
|
||||
EXPAT_LIBS="-lexpat"])
|
||||
|
||||
# put all the necessary libs together
|
||||
DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
|
||||
fi
|
||||
@@ -2136,8 +2161,8 @@ if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
|
||||
PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
|
||||
fi
|
||||
|
||||
if test "x$enable_omx_bellagio" = xauto -a "x$have_omx_platform" = xyes; then
|
||||
PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx_bellagio=yes], [enable_omx_bellagio=no])
|
||||
if test "x$enable_omx" = xauto -a "x$have_omx_platform" = xyes; then
|
||||
PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
|
||||
fi
|
||||
|
||||
if test "x$enable_va" = xauto -a "x$have_va_platform" = xyes; then
|
||||
@@ -2148,7 +2173,7 @@ fi
|
||||
if test "x$enable_dri" = xyes -o \
|
||||
"x$enable_xvmc" = xyes -o \
|
||||
"x$enable_vdpau" = xyes -o \
|
||||
"x$enable_omx_bellagio" = xyes -o \
|
||||
"x$enable_omx" = xyes -o \
|
||||
"x$enable_va" = xyes; then
|
||||
need_gallium_vl=yes
|
||||
fi
|
||||
@@ -2156,11 +2181,9 @@ AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
|
||||
|
||||
if test "x$enable_xvmc" = xyes -o \
|
||||
"x$enable_vdpau" = xyes -o \
|
||||
"x$enable_omx_bellagio" = xyes -o \
|
||||
"x$enable_omx" = xyes -o \
|
||||
"x$enable_va" = xyes; then
|
||||
if echo $platforms | grep -q "x11"; then
|
||||
PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
fi
|
||||
PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
|
||||
need_gallium_vl_winsys=yes
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
|
||||
@@ -2184,14 +2207,14 @@ if test "x$enable_vdpau" = xyes; then
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
|
||||
|
||||
if test "x$enable_omx_bellagio" = xyes; then
|
||||
if test "x$enable_omx" = xyes; then
|
||||
if test "x$have_omx_platform" != xyes; then
|
||||
AC_MSG_ERROR([OMX requires at least one of the x11 or drm platforms])
|
||||
fi
|
||||
PKG_CHECK_MODULES([OMX_BELLAGIO], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
|
||||
gallium_st="$gallium_st omx_bellagio"
|
||||
PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
|
||||
gallium_st="$gallium_st omx"
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_ST_OMX_BELLAGIO, test "x$enable_omx_bellagio" = xyes)
|
||||
AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
|
||||
|
||||
if test "x$enable_va" = xyes; then
|
||||
if test "x$have_va_platform" != xyes; then
|
||||
@@ -2287,16 +2310,13 @@ if test "x$enable_opencl" = xyes; then
|
||||
|
||||
llvm_add_default_components "opencl"
|
||||
llvm_add_component "all-targets" "opencl"
|
||||
llvm_add_component "coverage" "opencl"
|
||||
llvm_add_component "linker" "opencl"
|
||||
llvm_add_component "instrumentation" "opencl"
|
||||
llvm_add_component "ipo" "opencl"
|
||||
llvm_add_component "irreader" "opencl"
|
||||
llvm_add_component "lto" "opencl"
|
||||
llvm_add_component "option" "opencl"
|
||||
llvm_add_component "objcarcopts" "opencl"
|
||||
llvm_add_component "profiledata" "opencl"
|
||||
llvm_add_optional_component "coroutines" "opencl"
|
||||
|
||||
dnl Check for Clang internal headers
|
||||
if test -z "$CLANG_LIBDIR"; then
|
||||
@@ -2356,15 +2376,15 @@ AC_ARG_WITH([vdpau-libdir],
|
||||
[VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
|
||||
AC_SUBST([VDPAU_LIB_INSTALL_DIR])
|
||||
|
||||
dnl Directory for OMX_BELLAGIO libs
|
||||
dnl Directory for OMX libs
|
||||
|
||||
AC_ARG_WITH([omx-bellagio-libdir],
|
||||
[AS_HELP_STRING([--with-omx-bellagio-libdir=DIR],
|
||||
[directory for the OMX_BELLAGIO libraries])],
|
||||
[OMX_BELLAGIO_LIB_INSTALL_DIR="$withval"],
|
||||
[OMX_BELLAGIO_LIB_INSTALL_DIR=`$PKG_CONFIG --exists libomxil-bellagio && \
|
||||
$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
|
||||
AC_SUBST([OMX_BELLAGIO_LIB_INSTALL_DIR])
|
||||
AC_ARG_WITH([omx-libdir],
|
||||
[AS_HELP_STRING([--with-omx-libdir=DIR],
|
||||
[directory for the OMX libraries])],
|
||||
[OMX_LIB_INSTALL_DIR="$withval"],
|
||||
[OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --exists libomxil-bellagio && \
|
||||
$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
|
||||
AC_SUBST([OMX_LIB_INSTALL_DIR])
|
||||
|
||||
dnl Directory for VA libs
|
||||
|
||||
@@ -2495,14 +2515,6 @@ if test -n "$with_gallium_drivers"; then
|
||||
HAVE_GALLIUM_RADEONSI=yes
|
||||
PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
|
||||
PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
|
||||
|
||||
# Blacklist libdrm_amdgpu 2.4.90 because it causes a crash in older
|
||||
# radeonsi with pretty much any app.
|
||||
libdrm_version=`pkg-config libdrm_amdgpu --modversion`
|
||||
if test "x$libdrm_version" = x2.4.90; then
|
||||
AC_MSG_ERROR([radeonsi can't use libdrm 2.4.90 due to a compatibility issue. Use a newer or older version.])
|
||||
fi
|
||||
|
||||
require_libdrm "radeonsi"
|
||||
radeon_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi"
|
||||
if test "x$enable_egl" = xyes; then
|
||||
@@ -2542,7 +2554,7 @@ if test -n "$with_gallium_drivers"; then
|
||||
AC_SUBST([SWR_CXX11_CXXFLAGS])
|
||||
|
||||
swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \
|
||||
",-target-cpu=sandybridge,-mavx,-march=core-avx,-tp=sandybridge" \
|
||||
",-mavx,-march=core-avx" \
|
||||
SWR_AVX_CXXFLAGS
|
||||
AC_SUBST([SWR_AVX_CXXFLAGS])
|
||||
|
||||
@@ -2554,21 +2566,21 @@ if test -n "$with_gallium_drivers"; then
|
||||
;;
|
||||
xavx2)
|
||||
swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \
|
||||
",-target-cpu=haswell,-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2,-tp=haswell" \
|
||||
",-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2" \
|
||||
SWR_AVX2_CXXFLAGS
|
||||
AC_SUBST([SWR_AVX2_CXXFLAGS])
|
||||
HAVE_SWR_AVX2=yes
|
||||
;;
|
||||
xknl)
|
||||
swr_require_cxx_feature_flags "KNL" "defined(__AVX512F__) && defined(__AVX512ER__)" \
|
||||
",-target-cpu=mic-knl,-march=knl,-xMIC-AVX512" \
|
||||
",-march=knl,-xMIC-AVX512" \
|
||||
SWR_KNL_CXXFLAGS
|
||||
AC_SUBST([SWR_KNL_CXXFLAGS])
|
||||
HAVE_SWR_KNL=yes
|
||||
;;
|
||||
xskx)
|
||||
swr_require_cxx_feature_flags "SKX" "defined(__AVX512F__) && defined(__AVX512BW__)" \
|
||||
",-target-cpu=x86-skylake,-march=skylake-avx512,-xCORE-AVX512" \
|
||||
",-march=skylake-avx512,-xCORE-AVX512" \
|
||||
SWR_SKX_CXXFLAGS
|
||||
AC_SUBST([SWR_SKX_CXXFLAGS])
|
||||
HAVE_SWR_SKX=yes
|
||||
@@ -2597,14 +2609,6 @@ if test -n "$with_gallium_drivers"; then
|
||||
DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"],
|
||||
[USE_VC4_SIMULATOR=no])
|
||||
;;
|
||||
xvc5)
|
||||
HAVE_GALLIUM_VC5=yes
|
||||
|
||||
PKG_CHECK_MODULES([VC5_SIMULATOR], [v3dv3],
|
||||
[USE_VC5_SIMULATOR=yes;
|
||||
DEFINES="$DEFINES -DUSE_VC5_SIMULATOR"],
|
||||
[AC_MSG_ERROR([vc5 requires the simulator])])
|
||||
;;
|
||||
xpl111)
|
||||
HAVE_GALLIUM_PL111=yes
|
||||
;;
|
||||
@@ -2646,39 +2650,6 @@ if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_PL111" = xyes ; then
|
||||
AC_MSG_ERROR([Building with pl111 requires vc4])
|
||||
fi
|
||||
|
||||
|
||||
detect_old_buggy_llvm() {
|
||||
dnl llvm-config may not give the right answer when llvm is a built as a
|
||||
dnl single shared library, so we must work the library name out for
|
||||
dnl ourselves.
|
||||
dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823)
|
||||
dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
|
||||
LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
|
||||
AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes])
|
||||
|
||||
if test "x$llvm_have_one_so" = xyes; then
|
||||
dnl LLVM was built using auto*, so there is only one shared object.
|
||||
LLVM_LIBS="-l$LLVM_SO_NAME"
|
||||
else
|
||||
dnl If LLVM was built with CMake, there will be one shared object per
|
||||
dnl component.
|
||||
AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"],
|
||||
[AC_MSG_ERROR([Could not find llvm shared libraries:
|
||||
Please make sure you have built llvm with the --enable-shared option
|
||||
and that your llvm libraries are installed in $LLVM_LIBDIR
|
||||
If you have installed your llvm libraries to a different directory you
|
||||
can use the --with-llvm-prefix= configure flag to specify this directory.
|
||||
NOTE: Mesa is attempting to use llvm shared libraries by default.
|
||||
If you do not want to build with llvm shared libraries and instead want to
|
||||
use llvm static libraries then add --disable-llvm-shared-libs to your configure
|
||||
invocation and rebuild.])])
|
||||
|
||||
dnl We don't need to update LLVM_LIBS in this case because the LLVM
|
||||
dnl install uses a shared object for each component and we have
|
||||
dnl already added all of these objects to LLVM_LIBS.
|
||||
fi
|
||||
}
|
||||
|
||||
dnl
|
||||
dnl Set defines and buildtime variables only when using LLVM.
|
||||
dnl
|
||||
@@ -2696,42 +2667,49 @@ if test "x$enable_llvm" = xyes; then
|
||||
dnl this was causing the same libraries to be appear multiple times
|
||||
dnl in LLVM_LIBS.
|
||||
|
||||
if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 9; then
|
||||
if test "x$enable_llvm_shared_libs" = xyes; then
|
||||
LLVM_LIBS="`$LLVM_CONFIG --link-shared --libs ${LLVM_COMPONENTS}`"
|
||||
if ! $LLVM_CONFIG --libs ${LLVM_COMPONENTS} >/dev/null; then
|
||||
AC_MSG_ERROR([Calling ${LLVM_CONFIG} failed])
|
||||
fi
|
||||
LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
|
||||
|
||||
dnl llvm-config may not give the right answer when llvm is a built as a
|
||||
dnl single shared library, so we must work the library name out for
|
||||
dnl ourselves.
|
||||
dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823)
|
||||
if test "x$enable_llvm_shared_libs" = xyes; then
|
||||
dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
|
||||
LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
|
||||
AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes])
|
||||
|
||||
if test "x$llvm_have_one_so" = xyes; then
|
||||
dnl LLVM was built using auto*, so there is only one shared object.
|
||||
LLVM_LIBS="-l$LLVM_SO_NAME"
|
||||
else
|
||||
dnl Invoking llvm-config with both -libs and --system-libs produces the
|
||||
dnl two separate lines - each for the set of libraries.
|
||||
dnl Call the program twice, effectively folding them into a single line.
|
||||
LLVM_LIBS="`$LLVM_CONFIG --link-static --libs ${LLVM_COMPONENTS}`"
|
||||
dnl We need to link to llvm system libs when using static libs
|
||||
LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --link-static --system-libs`"
|
||||
dnl If LLVM was built with CMake, there will be one shared object per
|
||||
dnl component.
|
||||
AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"],
|
||||
[AC_MSG_ERROR([Could not find llvm shared libraries:
|
||||
Please make sure you have built llvm with the --enable-shared option
|
||||
and that your llvm libraries are installed in $LLVM_LIBDIR
|
||||
If you have installed your llvm libraries to a different directory you
|
||||
can use the --with-llvm-prefix= configure flag to specify this directory.
|
||||
NOTE: Mesa is attempting to use llvm shared libraries by default.
|
||||
If you do not want to build with llvm shared libraries and instead want to
|
||||
use llvm static libraries then add --disable-llvm-shared-libs to your configure
|
||||
invocation and rebuild.])])
|
||||
|
||||
dnl We don't need to update LLVM_LIBS in this case because the LLVM
|
||||
dnl install uses a shared object for each component and we have
|
||||
dnl already added all of these objects to LLVM_LIBS.
|
||||
fi
|
||||
else
|
||||
LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
|
||||
if test "x$enable_llvm_shared_libs" = xyes; then
|
||||
detect_old_buggy_llvm
|
||||
else
|
||||
AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
|
||||
dnl We need to link to llvm system libs when using static libs
|
||||
dnl However, only llvm 3.5+ provides --system-libs
|
||||
if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
|
||||
LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
|
||||
fi
|
||||
AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
|
||||
dnl We need to link to llvm system libs when using static libs
|
||||
dnl However, only llvm 3.5+ provides --system-libs
|
||||
if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
|
||||
LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl The gallium-xlib GLX and gallium OSMesa targets directly embed the
|
||||
dnl swr/llvmpipe driver into the final binary. Adding LLVM_LIBS results in
|
||||
dnl the LLVM library propagated in the Libs.private of the respective .pc
|
||||
dnl file which ensures complete dependency information when statically
|
||||
dnl linking.
|
||||
if test "x$enable_glx" == xgallium-xlib; then
|
||||
GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $LLVM_LIBS"
|
||||
fi
|
||||
if test "x$enable_gallium_osmesa" = xyes; then
|
||||
OSMESA_PC_LIB_PRIV="$OSMESA_PC_LIB_PRIV $LLVM_LIBS"
|
||||
fi
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
|
||||
@@ -2740,7 +2718,8 @@ AM_CONDITIONAL(HAVE_GALLIUM_PL111, test "x$HAVE_GALLIUM_PL111" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
|
||||
"x$HAVE_GALLIUM_RADEONSI" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_ETNAVIV, test "x$HAVE_GALLIUM_ETNAVIV" = xyes)
|
||||
@@ -2752,7 +2731,6 @@ AM_CONDITIONAL(HAVE_GALLIUM_SWRAST, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes -o \
|
||||
"x$HAVE_GALLIUM_LLVMPIPE" = xyes -o \
|
||||
"x$HAVE_GALLIUM_SWR" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_VC5, test "x$HAVE_GALLIUM_VC5" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
|
||||
@@ -2779,9 +2757,6 @@ AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes)
|
||||
AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_RADEONSI" = xyes -o \
|
||||
"x$HAVE_RADEON_VULKAN" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_BROADCOM_DRIVERS, test "x$HAVE_GALLIUM_VC4" = xyes -o \
|
||||
"x$HAVE_GALLIUM_VC5" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \
|
||||
"x$HAVE_I965_DRI" = xyes)
|
||||
|
||||
@@ -2792,7 +2767,6 @@ AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$enable_glx" = xgallium-xlib)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_LLVM, test "x$enable_llvm" = xyes)
|
||||
AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
|
||||
AM_CONDITIONAL(USE_VC5_SIMULATOR, test x$USE_VC5_SIMULATOR = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
|
||||
AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
|
||||
@@ -2906,13 +2880,12 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/etnaviv/Makefile
|
||||
src/gallium/drivers/imx/Makefile
|
||||
src/gallium/drivers/vc4/Makefile
|
||||
src/gallium/drivers/vc5/Makefile
|
||||
src/gallium/drivers/virgl/Makefile
|
||||
src/gallium/state_trackers/clover/Makefile
|
||||
src/gallium/state_trackers/dri/Makefile
|
||||
src/gallium/state_trackers/glx/xlib/Makefile
|
||||
src/gallium/state_trackers/nine/Makefile
|
||||
src/gallium/state_trackers/omx_bellagio/Makefile
|
||||
src/gallium/state_trackers/omx/Makefile
|
||||
src/gallium/state_trackers/osmesa/Makefile
|
||||
src/gallium/state_trackers/va/Makefile
|
||||
src/gallium/state_trackers/vdpau/Makefile
|
||||
@@ -2922,7 +2895,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/targets/d3dadapter9/d3d.pc
|
||||
src/gallium/targets/dri/Makefile
|
||||
src/gallium/targets/libgl-xlib/Makefile
|
||||
src/gallium/targets/omx-bellagio/Makefile
|
||||
src/gallium/targets/omx/Makefile
|
||||
src/gallium/targets/opencl/Makefile
|
||||
src/gallium/targets/opencl/mesa.icd
|
||||
src/gallium/targets/osmesa/Makefile
|
||||
@@ -2950,7 +2923,6 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/winsys/sw/wrapper/Makefile
|
||||
src/gallium/winsys/sw/xlib/Makefile
|
||||
src/gallium/winsys/vc4/drm/Makefile
|
||||
src/gallium/winsys/vc5/drm/Makefile
|
||||
src/gallium/winsys/virgl/drm/Makefile
|
||||
src/gallium/winsys/virgl/vtest/Makefile
|
||||
src/gbm/Makefile
|
||||
@@ -2971,6 +2943,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/mesa/gl.pc
|
||||
src/mesa/drivers/dri/dri.pc
|
||||
src/mesa/drivers/dri/common/Makefile
|
||||
src/mesa/drivers/dri/common/xmlpool/Makefile
|
||||
src/mesa/drivers/dri/i915/Makefile
|
||||
src/mesa/drivers/dri/i965/Makefile
|
||||
src/mesa/drivers/dri/Makefile
|
||||
@@ -2982,11 +2955,8 @@ AC_CONFIG_FILES([Makefile
|
||||
src/mesa/drivers/osmesa/osmesa.pc
|
||||
src/mesa/drivers/x11/Makefile
|
||||
src/mesa/main/tests/Makefile
|
||||
src/mesa/state_tracker/tests/Makefile
|
||||
src/util/Makefile
|
||||
src/util/tests/hash_table/Makefile
|
||||
src/util/tests/string_buffer/Makefile
|
||||
src/util/xmlpool/Makefile
|
||||
src/vulkan/Makefile])
|
||||
|
||||
AC_OUTPUT
|
||||
@@ -2995,8 +2965,6 @@ AC_OUTPUT
|
||||
# source file
|
||||
$SED -i -e 's/brw_blorp.cpp/brw_blorp.c/' src/mesa/drivers/dri/i965/.deps/brw_blorp.Plo
|
||||
|
||||
rm -f src/compiler/spirv/spirv_info.lo
|
||||
echo "# dummy" > src/compiler/spirv/.deps/spirv_info.Plo
|
||||
|
||||
dnl
|
||||
dnl Output some configuration info for the user
|
||||
|
@@ -130,6 +130,16 @@ mesa/demos repository.</p>
|
||||
runtime</p>
|
||||
|
||||
<dl>
|
||||
<dt><code>EGL_DRIVER</code></dt>
|
||||
<dd>
|
||||
|
||||
<p>This variable specifies a full path to or the name of an EGL driver. It
|
||||
forces the specified EGL driver to be loaded. It comes in handy when one wants
|
||||
to test a specific driver. This variable is ignored for setuid/setgid
|
||||
binaries.</p>
|
||||
|
||||
</dd>
|
||||
|
||||
<dt><code>EGL_PLATFORM</code></dt>
|
||||
<dd>
|
||||
|
||||
|
@@ -29,12 +29,12 @@ sometimes be useful for debugging end-user issues.
|
||||
<li>LIBGL_DEBUG - If defined debug information will be printed to stderr.
|
||||
If set to 'verbose' additional information will be printed.
|
||||
<li>LIBGL_DRIVERS_PATH - colon-separated list of paths to search for DRI drivers
|
||||
<li>LIBGL_ALWAYS_INDIRECT - if set to `true`, forces an indirect rendering context/connection.
|
||||
<li>LIBGL_ALWAYS_SOFTWARE - if set to `true`, always use software rendering
|
||||
<li>LIBGL_NO_DRAWARRAYS - if set to `true`, do not use DrawArrays GLX protocol (for debugging)
|
||||
<li>LIBGL_ALWAYS_INDIRECT - forces an indirect rendering context/connection.
|
||||
<li>LIBGL_ALWAYS_SOFTWARE - if set, always use software rendering
|
||||
<li>LIBGL_NO_DRAWARRAYS - if set do not use DrawArrays GLX protocol (for debugging)
|
||||
<li>LIBGL_SHOW_FPS - print framerate to stdout based on the number of glXSwapBuffers
|
||||
calls per second.
|
||||
<li>LIBGL_DRI3_DISABLE - disable DRI3 if set to `true`.
|
||||
<li>LIBGL_DRI3_DISABLE - disable DRI3 if set (the value does not matter)
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ sometimes be useful for debugging end-user issues.
|
||||
<li>MESA_NO_MMX - if set, disables Intel MMX optimizations
|
||||
<li>MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations
|
||||
<li>MESA_NO_SSE - if set, disables Intel SSE optimizations
|
||||
<li>MESA_NO_ERROR - if set to 1, error checking is disabled as per KHR_no_error.
|
||||
<li>MESA_NO_ERROR - if set error checking is disabled as per KHR_no_error.
|
||||
This will result in undefined behaviour for invalid use of the api, but
|
||||
can reduce CPU use for apps that are known to be error free.</li>
|
||||
<li>MESA_DEBUG - if set, error messages are printed to stderr. For example,
|
||||
@@ -88,40 +88,22 @@ This is a work-around for that.
|
||||
<li>MESA_GL_VERSION_OVERRIDE - changes the value returned by
|
||||
glGetString(GL_VERSION) and possibly the GL API type.
|
||||
<ul>
|
||||
<li>The format should be MAJOR.MINOR[FC|COMPAT]
|
||||
<li>FC is an optional suffix that indicates a forward compatible
|
||||
context. This is only valid for versions >= 3.0.
|
||||
<li>COMPAT is an optional suffix that indicates a compatibility
|
||||
context or GL_ARB_compatibility support. This is only valid for
|
||||
versions >= 3.1.
|
||||
<li>GL versions <= 3.0 are set to a compatibility (non-Core)
|
||||
profile
|
||||
<li>GL versions = 3.1, depending on the driver, it may or may not
|
||||
have the ARB_compatibility extension enabled.
|
||||
<li>GL versions >= 3.2 are set to a Core profile
|
||||
<li>Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC, 3.1COMPAT, X.Y, X.YFC,
|
||||
X.YCOMPAT.
|
||||
<ul>
|
||||
<li>2.1 - select a compatibility (non-Core) profile with GL
|
||||
version 2.1.
|
||||
<li>3.0 - select a compatibility (non-Core) profile with GL
|
||||
version 3.0.
|
||||
<li>3.0FC - select a Core+Forward Compatible profile with GL
|
||||
version 3.0.
|
||||
<li>3.1 - select GL version 3.1 with GL_ARB_compatibility enabled
|
||||
per the driver default.
|
||||
<li>3.1FC - select GL version 3.1 with forward compatibility and
|
||||
GL_ARB_compatibility disabled.
|
||||
<li>3.1COMPAT - select GL version 3.1 with GL_ARB_compatibility
|
||||
enabled.
|
||||
<li>X.Y - override GL version to X.Y without changing the profile.
|
||||
<li>X.YFC - select a Core+Forward Compatible profile with GL
|
||||
version X.Y.
|
||||
<li>X.YCOMPAT - select a Compatibility profile with GL version
|
||||
X.Y.
|
||||
</ul>
|
||||
<li>Mesa may not really implement all the features of the given
|
||||
version. (for developers only)
|
||||
<li> The format should be MAJOR.MINOR[FC]
|
||||
<li> FC is an optional suffix that indicates a forward compatible context.
|
||||
This is only valid for versions >= 3.0.
|
||||
<li> GL versions < 3.0 are set to a compatibility (non-Core) profile
|
||||
<li> GL versions = 3.0, see below
|
||||
<li> GL versions > 3.0 are set to a Core profile
|
||||
<li> Examples: 2.1, 3.0, 3.0FC, 3.1, 3.1FC
|
||||
<ul>
|
||||
<li> 2.1 - select a compatibility (non-Core) profile with GL version 2.1
|
||||
<li> 3.0 - select a compatibility (non-Core) profile with GL version 3.0
|
||||
<li> 3.0FC - select a Core+Forward Compatible profile with GL version 3.0
|
||||
<li> 3.1 - select a Core profile with GL version 3.1
|
||||
<li> 3.1FC - select a Core+Forward Compatible profile with GL version 3.1
|
||||
</ul>
|
||||
<li> Mesa may not really implement all the features of the given version.
|
||||
(for developers only)
|
||||
</ul>
|
||||
<li>MESA_GLES_VERSION_OVERRIDE - changes the value returned by
|
||||
glGetString(GL_VERSION) for OpenGL ES.
|
||||
@@ -135,7 +117,7 @@ glGetString(GL_VERSION) for OpenGL ES.
|
||||
glGetString(GL_SHADING_LANGUAGE_VERSION). Valid values are integers, such as
|
||||
"130". Mesa will not really implement all the features of the given language version
|
||||
if it's higher than what's normally reported. (for developers only)
|
||||
<li>MESA_GLSL_CACHE_DISABLE - if set to `true`, disables the GLSL shader cache
|
||||
<li>MESA_GLSL_CACHE_DISABLE - if set, disables the GLSL shader cache
|
||||
<li>MESA_GLSL_CACHE_MAX_SIZE - if set, determines the maximum size of
|
||||
the on-disk cache of compiled GLSL programs. Should be set to a number
|
||||
optionally followed by 'K', 'M', or 'G' to specify a size in
|
||||
@@ -151,8 +133,6 @@ 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.
|
||||
<li>MESA_SHADER_CAPTURE_PATH - see <a href="shading.html#capture">Capturing Shaders</a></li>
|
||||
<li>MESA_SHADER_DUMP_PATH and MESA_SHADER_READ_PATH - see <a href="shading.html#replacement">Experimenting with Shader Replacements</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -210,13 +190,11 @@ See the <a href="xlibdriver.html">Xlib software driver page</a> for details.
|
||||
<li>perfmon - emit messages about AMD_performance_monitor</li>
|
||||
<li>pix - emit messages about pixel operations</li>
|
||||
<li>prim - emit messages about drawing primitives</li>
|
||||
<li>reemit - mark all state dirty on each draw call</li>
|
||||
<li>sf - emit messages about the strips & fans unit (for old gens, includes the SF program)</li>
|
||||
<li>shader_time - record how much GPU time is spent in each shader</li>
|
||||
<li>spill_fs - force spilling of all registers in the scalar backend (useful to debug spilling code)</li>
|
||||
<li>spill_vec4 - force spilling of all registers in the vec4 backend (useful to debug spilling code)</li>
|
||||
<li>state - emit messages about state flag tracking</li>
|
||||
<li>submit - emit batchbuffer usage statistics</li>
|
||||
<li>sync - after sending each batch, emit a message and wait for that batch to finish rendering</li>
|
||||
<li>tcs - dump shader assembly for tessellation control shaders</li>
|
||||
<li>tes - dump shader assembly for tessellation evaluation shaders</li>
|
||||
@@ -262,7 +240,7 @@ Mesa EGL supports different sets of environment variables. See the
|
||||
Use kill -10 <pid> to toggle the hud as desired.
|
||||
<li>GALLIUM_HUD_DUMP_DIR - specifies a directory for writing the displayed
|
||||
hud values into files.
|
||||
<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=true for
|
||||
<li>GALLIUM_DRIVER - useful in combination with LIBGL_ALWAYS_SOFTWARE=1 for
|
||||
choosing one of the software renderers "softpipe", "llvmpipe" or "swr".
|
||||
<li>GALLIUM_LOG_FILE - specifies a file for logging all errors, warnings, etc.
|
||||
rather than stderr.
|
||||
|
@@ -131,7 +131,7 @@ GL 4.0, GLSL 4.00 --- all DONE: i965/gen7+, nvc0, r600, radeonsi
|
||||
GL_ARB_texture_buffer_object_rgb32 DONE (i965/gen6+, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_cube_map_array DONE (i965/gen6+, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_gather DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, llvmpipe, softpipe)
|
||||
GL_ARB_texture_query_lod DONE (i965, nv50, softpipe)
|
||||
GL_ARB_transform_feedback2 DONE (i965/gen6+, nv50, llvmpipe, softpipe, swr)
|
||||
GL_ARB_transform_feedback3 DONE (i965/gen7+, llvmpipe, softpipe, swr)
|
||||
|
||||
@@ -221,22 +221,6 @@ GL 4.5, GLSL 4.50 -- all DONE: nvc0, radeonsi
|
||||
GL_KHR_robustness DONE (i965)
|
||||
GL_EXT_shader_integer_mix DONE (all drivers that support GLSL)
|
||||
|
||||
GL 4.6, GLSL 4.60
|
||||
|
||||
GL_ARB_gl_spirv in progress (Nicolai Hähnle, Ian Romanick)
|
||||
GL_ARB_indirect_parameters DONE (i965/gen7+, nvc0, radeonsi)
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, radeonsi, llvmpipe, softpipe, swr)
|
||||
GL_ARB_polygon_offset_clamp DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (i965/gen7+, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_spirv_extensions in progress (Nicolai Hähnle, Ian Romanick)
|
||||
GL_ARB_texture_filter_anisotropic DONE (i965, nv50, nvc0, r600, radeonsi, softpipe (*), llvmpipe (*))
|
||||
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+, radeonsi, llvmpipe, softpipe)
|
||||
GL_KHR_no_error started (Timothy Arceri)
|
||||
|
||||
(*) softpipe and llvmpipe advertise 16x anisotropy but simply ignore the setting
|
||||
|
||||
These are the extensions cherry-picked to make GLES 3.1
|
||||
GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, radeonsi
|
||||
|
||||
@@ -298,14 +282,20 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_compute_variable_group_size DONE (nvc0, radeonsi)
|
||||
GL_ARB_ES3_2_compatibility DONE (i965/gen8+)
|
||||
GL_ARB_fragment_shader_interlock not started
|
||||
GL_ARB_gl_spirv not started
|
||||
GL_ARB_gpu_shader_int64 DONE (i965/gen8+, nvc0, radeonsi, softpipe, llvmpipe)
|
||||
GL_ARB_indirect_parameters DONE (nvc0, radeonsi)
|
||||
GL_ARB_parallel_shader_compile not started, but Chia-I Wu did some related work in 2014
|
||||
GL_ARB_pipeline_statistics_query DONE (i965, nvc0, radeonsi, softpipe, swr)
|
||||
GL_ARB_post_depth_coverage DONE (i965)
|
||||
GL_ARB_robustness_isolation not started
|
||||
GL_ARB_sample_locations not started
|
||||
GL_ARB_seamless_cubemap_per_texture DONE (i965, nvc0, radeonsi, r600, softpipe, swr)
|
||||
GL_ARB_shader_atomic_counter_ops DONE (i965/gen7+, nvc0, radeonsi, softpipe)
|
||||
GL_ARB_shader_ballot DONE (i965/gen8+, nvc0, radeonsi)
|
||||
GL_ARB_shader_clock DONE (i965/gen7+, nv50, nvc0, radeonsi)
|
||||
GL_ARB_shader_draw_parameters DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_group_vote DONE (i965, nvc0, radeonsi)
|
||||
GL_ARB_shader_stencil_export DONE (i965/gen9+, radeonsi, softpipe, llvmpipe, swr)
|
||||
GL_ARB_shader_viewport_layer_array DONE (i965/gen6+, nvc0, radeonsi)
|
||||
GL_ARB_sparse_buffer DONE (radeonsi/CIK+)
|
||||
@@ -313,19 +303,15 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_ARB_sparse_texture2 not started
|
||||
GL_ARB_sparse_texture_clamp not started
|
||||
GL_ARB_texture_filter_minmax not started
|
||||
GL_EXT_memory_object DONE (radeonsi)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi)
|
||||
GL_EXT_memory_object_win32 not started
|
||||
GL_EXT_semaphore not started
|
||||
GL_EXT_semaphore_fd not started
|
||||
GL_EXT_semaphore_win32 not started
|
||||
GL_ARB_transform_feedback_overflow_query DONE (i965/gen6+)
|
||||
GL_KHR_blend_equation_advanced_coherent DONE (i965/gen9+)
|
||||
GL_KHR_no_error started (Timothy Arceri)
|
||||
GL_KHR_texture_compression_astc_hdr DONE (i965/bxt)
|
||||
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_essl3 not started
|
||||
GL_OES_required_internalformat DONE (all drivers)
|
||||
GL_OES_required_internalformat not started - GLES2 extension based on OpenGL ES 3.0 feature
|
||||
GL_OES_surfaceless_context DONE (all drivers)
|
||||
GL_OES_texture_compression_astc DONE (core only)
|
||||
GL_OES_texture_float DONE (i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
@@ -347,47 +333,6 @@ we DO NOT WANT implementations of these extensions for Mesa.
|
||||
GL_ARB_shadow_ambient Superseded by GL_ARB_fragment_program
|
||||
GL_ARB_vertex_blend Superseded by GL_ARB_vertex_program
|
||||
|
||||
Vulkan 1.0 -- all DONE: anv, radv
|
||||
|
||||
Khronos extensions that are not part of any Vulkan version:
|
||||
VK_KHR_16bit_storage in progress (Alejandro)
|
||||
VK_KHR_android_surface not started
|
||||
VK_KHR_dedicated_allocation DONE (anv, radv)
|
||||
VK_KHR_descriptor_update_template DONE (anv, radv)
|
||||
VK_KHR_display not started
|
||||
VK_KHR_display_swapchain not started
|
||||
VK_KHR_external_fence not started
|
||||
VK_KHR_external_fence_capabilities not started
|
||||
VK_KHR_external_fence_fd not started
|
||||
VK_KHR_external_fence_win32 not started
|
||||
VK_KHR_external_memory DONE (anv, radv)
|
||||
VK_KHR_external_memory_capabilities DONE (anv, radv)
|
||||
VK_KHR_external_memory_fd DONE (anv, radv)
|
||||
VK_KHR_external_memory_win32 not started
|
||||
VK_KHR_external_semaphore DONE (radv)
|
||||
VK_KHR_external_semaphore_capabilities DONE (radv)
|
||||
VK_KHR_external_semaphore_fd DONE (radv)
|
||||
VK_KHR_external_semaphore_win32 not started
|
||||
VK_KHR_get_memory_requirements2 DONE (anv, radv)
|
||||
VK_KHR_get_physical_device_properties2 DONE (anv, radv)
|
||||
VK_KHR_get_surface_capabilities2 DONE (anv)
|
||||
VK_KHR_incremental_present DONE (anv, radv)
|
||||
VK_KHR_maintenance1 DONE (anv, radv)
|
||||
VK_KHR_mir_surface not started
|
||||
VK_KHR_push_descriptor DONE (anv, radv)
|
||||
VK_KHR_sampler_mirror_clamp_to_edge DONE (anv, radv)
|
||||
VK_KHR_shader_draw_parameters DONE (anv, radv)
|
||||
VK_KHR_shared_presentable_image not started
|
||||
VK_KHR_storage_buffer_storage_class DONE (anv, radv)
|
||||
VK_KHR_surface DONE (anv, radv)
|
||||
VK_KHR_swapchain DONE (anv, radv)
|
||||
VK_KHR_variable_pointers DONE (anv, radv)
|
||||
VK_KHR_wayland_surface DONE (anv, radv)
|
||||
VK_KHR_win32_keyed_mutex not started
|
||||
VK_KHR_win32_surface not started
|
||||
VK_KHR_xcb_surface DONE (anv, radv)
|
||||
VK_KHR_xlib_surface DONE (anv, radv)
|
||||
|
||||
|
||||
A graphical representation of this information can be found at
|
||||
https://mesamatrix.net/
|
||||
|
@@ -35,8 +35,17 @@ There are plenty of open bugs in the <a href="https://bugs.freedesktop.org/descr
|
||||
Enable gcc -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
||||
issues in the code.
|
||||
<li>
|
||||
<b>Windows driver building, testing and maintenance.</b>
|
||||
Fixing MSVC builds.
|
||||
<li>
|
||||
<b>Contribute more tests to
|
||||
<a href="https://piglit.freedesktop.org/">Piglit</a>.</b>
|
||||
<li>
|
||||
<b>Automatic testing.
|
||||
</b>
|
||||
It would be great if someone would set up an automated system for grabbing
|
||||
the latest Mesa code and run tests (such as piglit) then report issues to
|
||||
the mailing list.
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
@@ -49,16 +58,24 @@ You can find some further To-do lists here:
|
||||
<ul>
|
||||
<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>
|
||||
<li><a href="https://dri.freedesktop.org/wiki/MissingFunctionality">
|
||||
<b>MissingFunctionality</b></a> - Detailed information about missing OpenGL features.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<b>Legacy Driver specific To-Do lists:</b>
|
||||
<b>Driver specific To-Do lists:</b>
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/docs/llvm-todo.txt">
|
||||
<b>LLVMpipe</b></a> - Software driver using LLVM for runtime code generation.</li>
|
||||
<li><a href="https://dri.freedesktop.org/wiki/RadeonsiToDo">
|
||||
<b>radeonsi</b></a> - Driver for AMD Southern Island.</li>
|
||||
<li><a href="https://dri.freedesktop.org/wiki/R600ToDo">
|
||||
<b>r600g</b></a> - Driver for ATI/AMD R600 - Northern Island.</li>
|
||||
<li><a href="https://dri.freedesktop.org/wiki/R300ToDo">
|
||||
<b>r300g</b></a> - Driver for ATI R300 - R500.</li>
|
||||
<li><a href="https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/i915/TODO">
|
||||
<b>i915g</b></a> - Driver for Intel i915/i945.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
@@ -16,61 +16,6 @@
|
||||
|
||||
<h1>News</h1>
|
||||
|
||||
<h2>October 19, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.2.3.html">Mesa 17.2.3</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>October 2, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.2.2.html">Mesa 17.2.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 25, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.1.10.html">Mesa 17.1.10</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 17, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.2.1.html">Mesa 17.2.1</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 8, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.1.9.html">Mesa 17.1.9</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>September 4, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.2.0.html">Mesa 17.2.0</a> is released. This is a
|
||||
new development release. See the release notes for more information
|
||||
about the release.
|
||||
</p>
|
||||
|
||||
<h2>August 28, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.1.8.html">Mesa 17.1.8</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 21, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.1.7.html">Mesa 17.1.7</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>August 7, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.1.6.html">Mesa 17.1.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>July 14, 2017</h2>
|
||||
<p>
|
||||
<a href="relnotes/17.1.5.html">Mesa 17.1.5</a> is released.
|
||||
|
@@ -59,7 +59,7 @@ to learn if it is thread safe.
|
||||
Indirect Rendering
|
||||
|
||||
You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
|
||||
environment variable to `true`. Hardware acceleration will not be used.
|
||||
environment variable. Hardware acceleration will not be used.
|
||||
|
||||
|
||||
|
||||
|
@@ -20,7 +20,7 @@
|
||||
The Gallium llvmpipe driver is a software rasterizer that uses LLVM to
|
||||
do runtime code generation.
|
||||
Shaders, point/line/triangle rasterization and vertex processing are
|
||||
implemented with LLVM IR which is translated to x86, x86-64, or ppc64le machine
|
||||
implemented with LLVM IR which is translated to x86 or x86-64 machine
|
||||
code.
|
||||
Also, the driver is multithreaded to take advantage of multiple CPU cores
|
||||
(up to 8 at this time).
|
||||
@@ -32,36 +32,24 @@ It's the fastest software rasterizer for Mesa.
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>An x86 or amd64 processor; 64-bit mode recommended.</p>
|
||||
<p>
|
||||
For x86 or amd64 processors, 64-bit mode is recommended.
|
||||
Support for SSE2 is strongly encouraged. Support for SSE3 and SSE4.1 will
|
||||
yield the most efficient code. The fewer features the CPU has the more
|
||||
likely it is that you will run into underperforming, buggy, or incomplete code.
|
||||
</p>
|
||||
<p>
|
||||
For ppc64le processors, use of the Altivec feature (the Vector
|
||||
Facility) is recommended if supported; use of the VSX feature (the
|
||||
Vector-Scalar Facility) is recommended if supported AND Mesa is
|
||||
built with LLVM version 4.0 or later.
|
||||
likely is that you run into underperforming, buggy, or incomplete code.
|
||||
</p>
|
||||
<p>
|
||||
See /proc/cpuinfo to know what your CPU supports.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Unless otherwise stated, LLVM version 3.4 is recommended; 3.3 or later is required.</p>
|
||||
<p>LLVM: version 3.4 recommended; 3.3 or later required.</p>
|
||||
<p>
|
||||
For Linux, on a recent Debian based distribution do:
|
||||
</p>
|
||||
<pre>
|
||||
aptitude install llvm-dev
|
||||
</pre>
|
||||
<p>
|
||||
If you want development snapshot builds of LLVM for Debian and derived
|
||||
distributions like Ubuntu, you can use the APT repository at <a
|
||||
href="https://apt.llvm.org/" title="Debian Development packages for LLVM"
|
||||
>apt.llvm.org</a>, which are maintained by Debian's LLVM maintainer.
|
||||
</p>
|
||||
<p>
|
||||
For a RPM-based distribution do:
|
||||
</p>
|
||||
@@ -240,8 +228,8 @@ build/linux-???-debug/gallium/drivers/llvmpipe:
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Some of these tests can output results and benchmarks to a tab-separated file
|
||||
for later analysis, e.g.:
|
||||
Some of this tests can output results and benchmarks to a tab-separated-file
|
||||
for posterior analysis, e.g.:
|
||||
</p>
|
||||
<pre>
|
||||
build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_blend -o blend.tsv
|
||||
@@ -252,8 +240,8 @@ for later analysis, e.g.:
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
When looking at this code for the first time, start in lp_state_fs.c, and
|
||||
then skim through the lp_bld_* functions called there, and the comments
|
||||
When looking to this code by the first time start in lp_state_fs.c, and
|
||||
then skim through the lp_bld_* functions called in there, and the comments
|
||||
at the top of the lp_bld_*.c functions.
|
||||
</li>
|
||||
<li>
|
||||
|
@@ -39,73 +39,54 @@ if you'd like to nominate a patch in the next stable release.
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">17.2</td>
|
||||
<td>2017-10-27</td>
|
||||
<td>17.2.4</td>
|
||||
<td rowspan="3">17.1</td>
|
||||
<td>2017-07-28</td>
|
||||
<td>17.1.6</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-08-11</td>
|
||||
<td>17.1.7</td>
|
||||
<td>Juan A. Suarez Romero</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-08-25</td>
|
||||
<td>17.1.8</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
<td>Final planned release for the 17.1 series</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-11-10</td>
|
||||
<td>17.2.5</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-11-24</td>
|
||||
<td>17.2.6</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-12-08</td>
|
||||
<td>17.2.7</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Final planned release for the 17.2 series</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="7">17.3</td>
|
||||
<td>2017-10-20</td>
|
||||
<td>17.3.0-rc1</td>
|
||||
<td rowspan="5">17.2</td>
|
||||
<td>2017-07-21</td>
|
||||
<td>17.2.0-rc1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-10-27</td>
|
||||
<td>17.3.0-rc2</td>
|
||||
<td>2017-07-28</td>
|
||||
<td>17.2.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-11-03</td>
|
||||
<td>17.3.0-rc3</td>
|
||||
<td>2017-08-04</td>
|
||||
<td>17.2.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-11-10</td>
|
||||
<td>17.3.0-rc4</td>
|
||||
<td>2017-08-11</td>
|
||||
<td>17.2.0-rc4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>May be promoted to 17.3.0 final</td>
|
||||
<td>May be promoted to 17.2.0 final</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-11-24</td>
|
||||
<td>17.3.1</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-12-08</td>
|
||||
<td>17.3.2</td>
|
||||
<td>2017-08-25</td>
|
||||
<td>17.2.1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2017-12-22</td>
|
||||
<td>17.3.3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
|
@@ -428,7 +428,6 @@ Here is one solution that I've been using.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
# Set MAKEFLAGS if you haven't already
|
||||
git clean -fXd; git clean -nxd
|
||||
read # quick cross check any outstanding files
|
||||
export __version=`cat VERSION`
|
||||
@@ -437,12 +436,9 @@ Here is one solution that I've been using.
|
||||
chmod 755 -fR $__build_root; rm -rf $__build_root
|
||||
mkdir -p $__build_root && cd $__build_root
|
||||
|
||||
# For the native builds - such as distcheck, scons, sanity test, you
|
||||
# may want to specify which LLVM to use:
|
||||
# For the distcheck, you may want to specify which LLVM to use:
|
||||
# export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
|
||||
|
||||
# Do a full distcheck
|
||||
$__mesa_root/autogen.sh && make distcheck
|
||||
$__mesa_root/autogen.sh && make -j2 distcheck
|
||||
|
||||
# Build check the tarballs (scons, linux)
|
||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version
|
||||
@@ -450,27 +446,27 @@ Here is one solution that I've been using.
|
||||
cd .. && rm -rf mesa-$__version
|
||||
|
||||
# Build check the tarballs (scons, windows/mingw)
|
||||
# Temporary drop LLVM_CONFIG, unless you have a Windows/mingw one.
|
||||
# save_LLVM_CONFIG=`echo $LLVM_CONFIG`; unset LLVM_CONFIG
|
||||
# You may need to unset LLVM if you set it before:
|
||||
# unset LLVM_CONFIG
|
||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version
|
||||
scons platform=windows toolchain=crossmingw
|
||||
cd .. && rm -rf mesa-$__version
|
||||
|
||||
# Test the automake binaries
|
||||
tar -xaf mesa-$__version.tar.xz && cd mesa-$__version
|
||||
# Restore LLVM_CONFIG, if applicable:
|
||||
# export LLVM_CONFIG=`echo $save_LLVM_CONFIG`; unset save_LLVM_CONFIG
|
||||
# You may want to specify which LLVM to use:
|
||||
./configure \
|
||||
--with-dri-drivers=i965,swrast \
|
||||
--with-gallium-drivers=swrast \
|
||||
--with-vulkan-drivers=intel \
|
||||
--enable-llvm-shared-libs \
|
||||
--enable-llvm \
|
||||
--with-llvm-prefix=/usr/lib/llvm-3.9 \
|
||||
--enable-glx-tls \
|
||||
--enable-gbm \
|
||||
--enable-egl \
|
||||
--with-platforms=x11,drm,wayland,surfaceless
|
||||
make && DESTDIR=`pwd`/test make install
|
||||
make -j2 && DESTDIR=`pwd`/test make -j6 install
|
||||
__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"'
|
||||
@@ -483,12 +479,12 @@ Here is one solution that I've been using.
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
export LIBGL_ALWAYS_SOFTWARE=1
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
eval $__es2info_cmd
|
||||
eval $__es2gears_cmd
|
||||
export LIBGL_ALWAYS_SOFTWARE=true
|
||||
export LIBGL_ALWAYS_SOFTWARE=1
|
||||
export GALLIUM_DRIVER=softpipe
|
||||
eval $__glxinfo_cmd
|
||||
eval $__glxgears_cmd
|
||||
|
@@ -21,15 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/17.2.3.html">17.2.3 release notes</a>
|
||||
<li><a href="relnotes/17.2.2.html">17.2.2 release notes</a>
|
||||
<li><a href="relnotes/17.1.10.html">17.1.10 release notes</a>
|
||||
<li><a href="relnotes/17.2.1.html">17.2.1 release notes</a>
|
||||
<li><a href="relnotes/17.1.9.html">17.1.9 release notes</a>
|
||||
<li><a href="relnotes/17.2.0.html">17.2.0 release notes</a>
|
||||
<li><a href="relnotes/17.1.8.html">17.1.8 release notes</a>
|
||||
<li><a href="relnotes/17.1.7.html">17.1.7 release notes</a>
|
||||
<li><a href="relnotes/17.1.6.html">17.1.6 release notes</a>
|
||||
<li><a href="relnotes/17.1.5.html">17.1.5 release notes</a>
|
||||
<li><a href="relnotes/17.1.4.html">17.1.4 release notes</a>
|
||||
<li><a href="relnotes/17.1.3.html">17.1.3 release notes</a>
|
||||
|
@@ -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 17.1.10 Release Notes / September 25, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.1.10 is a bug fix release which fixes bugs found since the 17.1.9 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.1.10 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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
a48ce6b643a728b2b0f926151930525b3670fbff1fb688527fd9051eab9f30a4 mesa-17.1.10.tar.gz
|
||||
cbc0d681cc4df47d8deb5a36f45b420978128522fd665b2cd4c7096316f11bdb mesa-17.1.10.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=102844">Bug 102844</a> - memory leak with glDeleteProgram for shader program type GL_COMPUTE_SHADER</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alexandre Demers (1):</p>
|
||||
<ul>
|
||||
<li>osmesa: link with libunwind if enabled (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (12):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.1.9</li>
|
||||
<li>cherry-ignore: add "st/mesa: skip draw calls with pipe_draw_info::count == 0"</li>
|
||||
<li>cherry-ignore: add "radv: use amdgpu_bo_va_op_raw."</li>
|
||||
<li>cherry-ignore: add "radv: use simpler indirect packet 3 if possible."</li>
|
||||
<li>cherry-ignore: add "radeonsi: don't always apply the PrimID instancing bug workaround on SI"</li>
|
||||
<li>cherry-ignore: add "intel/eu/validate: Look up types on demand in execution_type()"</li>
|
||||
<li>cherry-ignore: add "radv: gfx9 fixes"</li>
|
||||
<li>cherry-ignore: add "radv/gfx9: set mip0-depth correctly for 2d arrays/3d images"</li>
|
||||
<li>cherry-ignore: add "radv/gfx9: fix image resource handling."</li>
|
||||
<li>cherry-ignore: add "docs/egl: remove reference to EGL_DRIVERS_PATH"</li>
|
||||
<li>cherry-ignore: add "radv: Disable multilayer & multilevel DCC."</li>
|
||||
<li>cherry-ignore: add "radv: Don't allocate CMASK for linear images."</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>radv/ac: bump params array for image atomic comp swap</li>
|
||||
<li>st/glsl->tgsi: fix u64 to bool comparisons.</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>egl/x11/dri3: adding missing __DRI_BACKGROUND_CALLABLE extension</li>
|
||||
<li>automake: enable libunwind in `make distcheck'</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (3):</p>
|
||||
<ul>
|
||||
<li>broadcom/vc4: Fix use-after-free for flushing when writing to a texture.</li>
|
||||
<li>broadcom/vc4: Fix use-after-free trying to mix a quad and tile clear.</li>
|
||||
<li>broadcom/vc4: Fix use-after-free when deleting a program.</li>
|
||||
</ul>
|
||||
|
||||
<p>George Kyriazis (1):</p>
|
||||
<ul>
|
||||
<li>swr: invalidate attachment on transition change</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (2):</p>
|
||||
<ul>
|
||||
<li>travis: force llvm-3.3 for "make Gallium ST Other"</li>
|
||||
<li>travis: Add libunwind-dev to gallium/make builds</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>i965/blorp: Set r8stencil_needs_update when writing stencil</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (9):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add "ac/surface: match Z and stencil tile config"</li>
|
||||
<li>cherry-ignore: add "radv/nir: call opt_remove_phis after trivial continues."</li>
|
||||
<li>cherry-ignore: add "amd/common: add workaround for cube map array layer clamping"</li>
|
||||
<li>cherry-ignore: add "radeonsi: workaround for gather4 on integer cube maps"</li>
|
||||
<li>cherry-ignore: add "Scons: Add LLVM 5.0 support"</li>
|
||||
<li>cherry-ignore: add "ac/surface: handle S8 on gfx9"</li>
|
||||
<li>cherry-ignore: add "radv: Check for GFX9 for 1D arrays in image_size intrinsic."</li>
|
||||
<li>cherry-ignore: add "glsl/linker: fix output variable overlap check"</li>
|
||||
<li>Update version to 17.1.10</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (1):</p>
|
||||
<ul>
|
||||
<li>anv: Fix descriptors copying</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>util: Link libmesautil into u_atomic_test</li>
|
||||
<li>util/u_atomic: Add implementation of __sync_val_compare_and_swap_8</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: apply a mask to gl_SampleMaskIn in the PS prolog</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (4):</p>
|
||||
<ul>
|
||||
<li>st/glsl_to_tgsi: only the first (inner-most) array reference can be a 2D index</li>
|
||||
<li>amd/common: round cube array slice in ac_prepare_cube_coords</li>
|
||||
<li>radeonsi: set MIP_POINT_PRECLAMP to 0</li>
|
||||
<li>radeonsi: fix array textures layer coordinate</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>mesa: free current ComputeProgram state in _mesa_free_context_data</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,225 +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 17.1.6 Release Notes / August 7, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.1.6 is a bug fix release which fixes bugs found since the 17.1.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
971831bc1e748b3e8367eee6b9eb509bad2970e3c2f8520ad25f5caa12ca5491 mesa-17.1.6.tar.gz
|
||||
0686deadde1f126b20aa67e47e8c50502043eee4ecdf60d5009ffda3cebfee50 mesa-17.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=97957">Bug 97957</a> - Awful screen tearing in a separate X server with DRI3</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101683">Bug 101683</a> - Some games hang while loading when compositing is shut off or absent</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101867">Bug 101867</a> - Launch options window renders black in Feral Games in current Mesa trunk</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (1):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.1.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Don't underflow non-visible VRAM size.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>svga: fix texture swizzle writemasking</li>
|
||||
</ul>
|
||||
|
||||
<p>Chad Versace (1):</p>
|
||||
<ul>
|
||||
<li>anv/image: Fix VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Wilson (1):</p>
|
||||
<ul>
|
||||
<li>i965: Resolve framebuffers before signaling the fence</li>
|
||||
</ul>
|
||||
|
||||
<p>Connor Abbott (1):</p>
|
||||
<ul>
|
||||
<li>nir: fix algebraic optimizations</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (1):</p>
|
||||
<ul>
|
||||
<li>st/dri: Check get-handle return value in queryImage</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (5):</p>
|
||||
<ul>
|
||||
<li>radv: fix non-0 based layer clears.</li>
|
||||
<li>radv: fix buffer views on SI/CIK.</li>
|
||||
<li>radv/ac: realign SI workaround with radeonsi.</li>
|
||||
<li>radv/ac: port SI TC L1 write corruption fix.</li>
|
||||
<li>radv: for stencil only set Z tile mode index to same value</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (23):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add "anv: Round u_vector element sizes to a power of two"</li>
|
||||
<li>anv: advertise v6 of the wayland surface extension</li>
|
||||
<li>radv: advertise v6 of the wayland surface extension</li>
|
||||
<li>swrast: add dri2ConfigQueryExtension to the correct extension list</li>
|
||||
<li>cherry-ignore: add "anv: Transition MCS buffers from the undefined layout"</li>
|
||||
<li>swr: don't forget to link AVX/AVX2 against pthreads</li>
|
||||
<li>cherry-ignore: add "i965: Fix offset addition in get_isl_surf"</li>
|
||||
<li>cherry-ignore: add "i965: Fix = vs == in MCS aux usage assert."</li>
|
||||
<li>cherry-ignore: add a couple of radeon commits</li>
|
||||
<li>cherry-ignore: add "swr/rast: non-regex knob fallback code for gcc < 4.9"</li>
|
||||
<li>cherry-ignore: add "swr: fix transform feedback logic"</li>
|
||||
<li>cherry-ignore: add a couple of radeonsi/gfx9 commits</li>
|
||||
<li>cherry-ignore: ignore reverted st/mesa commit</li>
|
||||
<li>cherry-ignore: add bindless textures fix</li>
|
||||
<li>cherry-ignore: add "st/glsl_to_tgsi: fix getting the image type for array of structs"</li>
|
||||
<li>cherry-ignore: add yet another bindless textures fix</li>
|
||||
<li>bin/cherry-ignore: add radeonsi "fix of a fix"</li>
|
||||
<li>travis: lower SWR requirement to GCC 4.8, aka std=c++11</li>
|
||||
<li>i965: use strtol to convert the integer deviceID override</li>
|
||||
<li>swr: remove unneeded fallback strcasecmp define</li>
|
||||
<li>cherry-ignore: add a bunch more commits to the list</li>
|
||||
<li>fixup! cherry-ignore: add a bunch more commits to the list</li>
|
||||
<li>Update version to 17.1.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>broadcom/vc4: Prefer blit via rendering to the software fallback.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>configure: only install khrplatform.h if needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (2):</p>
|
||||
<ul>
|
||||
<li>anv/cmd_buffer: fix off by one error in assertion</li>
|
||||
<li>anv: only expose up to 28 vertex attributes</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix threads calculation for non-compute shaders</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (5):</p>
|
||||
<ul>
|
||||
<li>anv/cmd_buffer: Properly handle render passes with 0 attachments</li>
|
||||
<li>anv: Stop leaking the no_aux sampler surface state</li>
|
||||
<li>anv/image: Add INPUT_ATTACHMENT to the list of required usages</li>
|
||||
<li>nir/vars_to_ssa: Handle missing struct members in foreach_deref_node</li>
|
||||
<li>spirv: Fix SpvImageFormatR16ui</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (2):</p>
|
||||
<ul>
|
||||
<li>anv/pipeline: use unsigned long long constant to check enable vertex inputs</li>
|
||||
<li>anv/pipeline: do not use BITFIELD64_BIT()</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>nir: Use nir_src_copy instead of direct assignments.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>i965: perf: flush batchbuffers at the beginning of queries</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: fix memory leak when BO allocation fails</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>st/mesa: always unconditionally revalidate main framebuffer after SwapBuffers</li>
|
||||
<li>gallium/radeon: make S_FIXED function signed and move it to shared code</li>
|
||||
</ul>
|
||||
|
||||
<p>Mark Thompson (1):</p>
|
||||
<ul>
|
||||
<li>st/va: Fix scaling list ordering for H.265</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi/gfx9: fix crash building monolithic merged ES-GS shader</li>
|
||||
<li>radeonsi: fix detection of DRAW_INDIRECT_MULTI on SI</li>
|
||||
<li>radeonsi/gfx9: reduce max threads per block to 1024 on gfx9+</li>
|
||||
<li>gallium/radeon: fix ARB_query_buffer_object conversion to boolean</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (2):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: Use dri3_find_back in loader_dri3_swap_buffers_msc</li>
|
||||
<li>dri3: Wait for all pending swapbuffers to be scheduled before touching the front</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (3):</p>
|
||||
<ul>
|
||||
<li>gallium/util: fix nondeterministic avx512 detection</li>
|
||||
<li>swr/rast: quit using linux-specific gettid()</li>
|
||||
<li>swr/rast: fix scons gen_knobs.h dependency</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>nir: fix nir_opt_copy_prop_vars() for arrays of arrays</li>
|
||||
</ul>
|
||||
|
||||
<p>Wladimir J. van der Laan (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: Clear lbl_usage array correctly</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,148 +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 17.1.7 Release Notes / August 21, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.1.7 is a bug fix release which fixes bugs found since the 17.1.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
7ca484fe3194e8185d9a20261845bfd284cc40d0f3fda690d317f85ac7b91af5 mesa-17.1.7.tar.gz
|
||||
69f472a874b1122404fa0bd13e2d6bf87eb3b9ad9c21d2f39872a96d83d9e5f5 mesa-17.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=101334">Bug 101334</a> - AMD SI cards: Some vulkan apps freeze the system</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101766">Bug 101766</a> - Assertion `!"invalid type"' failed when constant expression involves literal of different type</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102024">Bug 102024</a> - FORMAT_FEATURE_SAMPLED_IMAGE_BIT not supported for D16_UNORM and D32_SFLOAT</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102148">Bug 102148</a> - Crash when running qopenglwidget example on mesa llvmpipe win32</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102241">Bug 102241</a> - gallium/wgl: SwapBuffers freezing regularly with swap interval enabled</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (8):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add "swr: use the correct variable for no undefined symbols"</li>
|
||||
<li>cherry-ignore: add "radeon/ac: use ds_swizzle for derivs on si/cik."</li>
|
||||
<li>cherry-ignore: add "configure: remove trailing "-a" in swr architecture teststable: 17.2 nomination only."</li>
|
||||
<li>cherry-ignore: added 17.2 nominations.</li>
|
||||
<li>cherry-ignore: add "radv: Handle VK_ATTACHMENT_UNUSED in color attachments."</li>
|
||||
<li>cherry-ignore: add "virgl: drop precise modifier."</li>
|
||||
<li>cherry-ignore: add "radv: handle 10-bit format clamping workaround."</li>
|
||||
<li>Update version to 17.1.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Chris Wilson (1):</p>
|
||||
<ul>
|
||||
<li>i965/blit: Remember to include miptree buffer offset in relocs</li>
|
||||
</ul>
|
||||
|
||||
<p>Connor Abbott (1):</p>
|
||||
<ul>
|
||||
<li>ac/nir: fix lsb emission</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (5):</p>
|
||||
<ul>
|
||||
<li>intel/vec4/gs: reset nr_pull_param if DUAL_INSTANCED compile failed.</li>
|
||||
<li>radv: avoid GPU hangs if someone does a resolve with non-multisample src (v2)</li>
|
||||
<li>radv: fix f16->f32 denorm handling for SI/CIK. (v2)</li>
|
||||
<li>radv: fix MSAA on SI gpus.</li>
|
||||
<li>radv: force cs/ps/l2 flush at end of command stream. (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.1.6</li>
|
||||
<li>egl/x11: don't leak xfixes_query in the error path</li>
|
||||
<li>egl: avoid eglCreatePlatform*Surface{EXT,} crash with invalid dpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>util: Fix build on old glibc.</li>
|
||||
</ul>
|
||||
|
||||
<p>Frank Richter (3):</p>
|
||||
<ul>
|
||||
<li>st/mesa: fix a null pointer access</li>
|
||||
<li>st/wgl: check for negative delta in wait_swap_interval()</li>
|
||||
<li>gallium/os: fix os_time_get_nano() to roll over less</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (3):</p>
|
||||
<ul>
|
||||
<li>glsl/ast: update rhs in addition to the var's constant_value</li>
|
||||
<li>nv50/ir: fix srcMask computation for TG4 and TXF</li>
|
||||
<li>nv50/ir: fix TXQ srcMask</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>anv/formats: Allow sampling on depth-only formats on gen7</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix ConstantFolding with saturation</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i965: Delete pitch alignment assertion in get_blit_intratile_offset_el.</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>ac: fail shader compilation if libelf is replaced by an incompatible version</li>
|
||||
<li>radeonsi: disable CE by default</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: Fix invalid casting for calls to Interlocked* functions</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,115 +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 17.1.8 Release Notes / August 28, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.1.8 is a bug fix release which fixes bugs found since the 17.1.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
faa59a677e88fd5224cdfebcdb6ca9ad3e3c64bd562baa8d5c3c1faeef1066b6 mesa-17.1.8.tar.gz
|
||||
75ed2eaeae26ddd536150f294386468ae2e1a7717948c41cd14b7875be5269db mesa-17.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=101910">Bug 101910</a> - [BYT] ES31-CTS.functional.copy_image.non_compressed.viewclass_96_bits.rgb32f_rgb32f</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102308">Bug 102308</a> - segfault in glCompressedTextureSubImage3D</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (6):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.1.7</li>
|
||||
<li>cherry-ignore: cherry-ignore: added 17.2 nominations.</li>
|
||||
<li>cherry-ignore: add "i965/tex: Don't pass samples to miptree_create_for_teximage"</li>
|
||||
<li>cherry-ignore: add "i965: Make a BRW_NEW_FAST_CLEAR_COLOR dirty bit."</li>
|
||||
<li>cherry-ignore: add "egl/drm: Fix misused x and y offsets in swrast_*_image*"</li>
|
||||
<li>Update version to 17.1.8</li>
|
||||
</ul>
|
||||
|
||||
<p>Christoph Haag (1):</p>
|
||||
<ul>
|
||||
<li>mesa: only copy requested compressed teximage cubemap faces</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>radv: don't crash if we have no framebuffer</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>glsl: add a few missing int64 constant propagation cases</li>
|
||||
<li>nv50/ir: properly set sType for TXF ops to U32</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>i965: Stop looking at NewDriverState when emitting 3DSTATE_URB</li>
|
||||
</ul>
|
||||
|
||||
<p>Kai Chen (1):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: Use roundtrips when awaiting buffer release</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>i965: perf: minimize the chances to spread queries across batchbuffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi/gfx9: add a temporary workaround for a tessellation driver bug</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: switch gen_knobs.cpp license</li>
|
||||
</ul>
|
||||
|
||||
<p>Topi Pohjolainen (1):</p>
|
||||
<ul>
|
||||
<li>intel/blorp: Adjust intra-tile x when faking rgb with red-only</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,144 +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 17.1.9 Release Notes / September 8, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.1.9 is a bug fix release which fixes bugs found since the 17.1.8 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
4325401b07b5f44759da781bc8d7c0a4a7244e09a702d16c037090986e07ee22 mesa-17.1.9.tar.gz
|
||||
5f51ad94341696097d5df7b838183534478216858ac0fc8de183671a36ffea1a mesa-17.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=100613">Bug 100613</a> - Regression in Mesa 17 on s390x (zSystems)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102454">Bug 102454</a> - glibc 2.26 doesn't provide anymore xlocale.h</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102467">Bug 102467</a> - src/mesa/state_tracker/st_cb_readpixels.c:178]: (warning) Redundant assignment</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (8):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.1.8</li>
|
||||
<li>cherry-ignore: added 17.2 nominations.</li>
|
||||
<li>cherry-ignore: add "nir: Fix system_value_from_intrinsic for subgroups"</li>
|
||||
<li>cherry-ignore: add "i965: Fix crash in fallback GTT mapping."</li>
|
||||
<li>cherry-ignore: add "radeonsi/gfx9: always flush DB metadata on framebuffer changes"</li>
|
||||
<li>cherry-ignore: add "radv: Fix vkCopyImage with both depth and stencil aspects."</li>
|
||||
<li>cherry-ignore: add "radeonsi/gfx9: proper workaround for LS/HS VGPR initialization bug"</li>
|
||||
<li>Update version to 17.1.9</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (3):</p>
|
||||
<ul>
|
||||
<li>radv: Fix off by one in MAX_VBS assert.</li>
|
||||
<li>radv: Fix sparse BO mapping merging.</li>
|
||||
<li>radv: Actually set the cmd_buffer usage_flags.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ben Crocker (1):</p>
|
||||
<ul>
|
||||
<li>llvmpipe: lp_build_gather_elem_vec BE fix for 3x16 load</li>
|
||||
</ul>
|
||||
|
||||
<p>Charmaine Lee (1):</p>
|
||||
<ul>
|
||||
<li>vbo: fix offset in minmax cache key</li>
|
||||
</ul>
|
||||
|
||||
<p>Christian Gmeiner (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: use correct param for etna_compatible_rs_format(..)</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (3):</p>
|
||||
<ul>
|
||||
<li>egl: don't NULL deref the .get_capabilities function pointer</li>
|
||||
<li>egl/wayland: plug leaks in dri2_wl_create_window_surface() error path</li>
|
||||
<li>egl/wayland: polish object teardown in dri2_wl_destroy_surface</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>util: improve compiler guard</li>
|
||||
</ul>
|
||||
|
||||
<p>Grazvydas Ignotas (2):</p>
|
||||
<ul>
|
||||
<li>radv: clear dynamic_shader_stages on create</li>
|
||||
<li>radv: don't assert on empty hash table</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>glsl: fix counting of vertex shader output slots used by explicit vars</li>
|
||||
<li>st/mesa: fix handling of vertex array double inputs</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>anv/formats: Nicely handle unknown VkFormat enums</li>
|
||||
<li>spirv: Add support for the HelperInvocation builtin</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nvc0: write 0 to pipeline_statistics.cs_invocations</li>
|
||||
</ul>
|
||||
|
||||
<p>Michael Olbrich (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri2: only destroy created objects</li>
|
||||
</ul>
|
||||
|
||||
<p>Ray Strode (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: correct channel shift logic on big endian</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: fix view template initialization in try_pbo_readpixels</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -31,8 +31,7 @@ because compatibility contexts are not supported.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
c902d8dc2540195bc570d88af1a8fd8a1774373660a27bb1d539551f46824bc1 mesa-17.2.1.tar.gz
|
||||
77385d17827cff24a3bae134342234f2efe7f7f990e778109682571dbbc9ba1e mesa-17.2.1.tar.xz
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -1,203 +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 17.2.2 Release Notes / October 2, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.2.2 is a bug fix release which fixes bugs found since the 17.2.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
8242256f3243ed3f35184ed7bf0a9070439ccdf477a3bd9cfd2437c0b2f9bc7f mesa-17.2.2.tar.gz
|
||||
cf522244d6a5a1ecde3fc00e7c96935253fe22f808f064cab98be6f3faa65782 mesa-17.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=102573">Bug 102573</a> - fails to build on armel</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102844">Bug 102844</a> - memory leak with glDeleteProgram for shader program type GL_COMPUTE_SHADER</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102847">Bug 102847</a> - swr fail to build with llvm-5.0.0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102904">Bug 102904</a> - piglit and gl45 cts linker tests regressed</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alexandru-Liviu Prodea (1):</p>
|
||||
<ul>
|
||||
<li>Scons: Add LLVM 5.0 support</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Check for GFX9 for 1D arrays in image_size intrinsic.</li>
|
||||
</ul>
|
||||
|
||||
<p>Boris Brezillon (1):</p>
|
||||
<ul>
|
||||
<li>broadcom/vc4: Fix infinite retry in vc4_bo_alloc()</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (3):</p>
|
||||
<ul>
|
||||
<li>radv/nir: call opt_remove_phis after trivial continues.</li>
|
||||
<li>ac/surface: handle S8 on gfx9</li>
|
||||
<li>st/glsl->tgsi: fix u64 to bool comparisons.</li>
|
||||
</ul>
|
||||
|
||||
<p>David Airlie (1):</p>
|
||||
<ul>
|
||||
<li>radv: add gfx9 scissor workaround</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.2.1</li>
|
||||
<li>automake: enable libunwind in `make distcheck'</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (4):</p>
|
||||
<ul>
|
||||
<li>broadcom/vc4: Fix use-after-free for flushing when writing to a texture.</li>
|
||||
<li>broadcom/vc4: Fix use-after-free trying to mix a quad and tile clear.</li>
|
||||
<li>broadcom/vc4: Fix use-after-free when deleting a program.</li>
|
||||
<li>broadcom/vc4: Keep pipe_sampler_view->texture matching the original texture.</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (2):</p>
|
||||
<ul>
|
||||
<li>travis: force llvm-3.3 for "make Gallium ST Other"</li>
|
||||
<li>travis: Add libunwind-dev to gallium/make builds</li>
|
||||
</ul>
|
||||
|
||||
<p>Grazvydas Ignotas (1):</p>
|
||||
<ul>
|
||||
<li>configure: check if -latomic is needed for __atomic_*</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (1):</p>
|
||||
<ul>
|
||||
<li>nv20: Fix GL_CLAMP</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>i965/blorp: Set r8stencil_needs_update when writing stencil</li>
|
||||
<li>vulkan/wsi/wayland: Stop printing out the DRM device</li>
|
||||
<li>vulkan/wsi/wayland: Refactor wsi_wl_display code</li>
|
||||
<li>vulkan/wsi/wayland: Stop caching Wayland displays</li>
|
||||
<li>vulkan/wsi/wayland: Copy wl_proxy objects from oldSwapchain if available</li>
|
||||
<li>vulkan/wsi/wayland: Return better error messages</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (4):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add "radeonsi/gfx9: proper workaround for LS/HS VGPR initialization bug"</li>
|
||||
<li>cherry-ignore: add "radv: Check for GFX9 for 1D arrays in image_size intrinsic."</li>
|
||||
<li>cherry-ignore: add "radv: copy the number of viewports/scissors at pipeline bind time"</li>
|
||||
<li>Update version to 17.2.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (1):</p>
|
||||
<ul>
|
||||
<li>anv: Fix descriptors copying</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4: Actually handle atomic op intrinsics.</li>
|
||||
<li>i965/vec4: Fix swizzles on atomic sources.</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (1):</p>
|
||||
<ul>
|
||||
<li>st/va/postproc: use video original size for postprocessing</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: fix 16bpp clears</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>util: Link libmesautil into u_atomic_test</li>
|
||||
<li>util/u_atomic: Add implementation of __sync_val_compare_and_swap_8</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (9):</p>
|
||||
<ul>
|
||||
<li>radeonsi: workaround for gather4 on integer cube maps</li>
|
||||
<li>amd/common: round cube array slice in ac_prepare_cube_coords</li>
|
||||
<li>amd/common: add workaround for cube map array layer clamping</li>
|
||||
<li>glsl/linker: fix output variable overlap check</li>
|
||||
<li>radeonsi: fix array textures layer coordinate</li>
|
||||
<li>radeonsi: set MIP_POINT_PRECLAMP to 0</li>
|
||||
<li>amd/addrlib: fix missing va_end() after va_copy()</li>
|
||||
<li>amd/common: move ac_build_phi from radeonsi</li>
|
||||
<li>radeonsi: fix a regression in integer cube map handling</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsálvez (1):</p>
|
||||
<ul>
|
||||
<li>anv: fix viewport transformation for z component</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: fix saved compute state when doing statistics/occlusion queries</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (1):</p>
|
||||
<ul>
|
||||
<li>mesa: free current ComputeProgram state in _mesa_free_context_data</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: remove llvm fence/atomics from generated files</li>
|
||||
</ul>
|
||||
|
||||
<p>Tomasz Figa (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri2: Implement swapInterval fallback in a conformant way</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,181 +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 17.2.3 Release Notes / October 19, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.2.3 is a bug fix release which fixes bugs found since the 17.2.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
fb305eecfeec1fd771fdc96fff973c51871f7bd35fd2bd56cacc27b4b8823220 mesa-17.2.3.tar.gz
|
||||
a0b0ec8f7b24dd044d7ab30a8c7e6d3767521e245f88d4ed5dd93315dc56f837 mesa-17.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=101832">Bug 101832</a> - [PATCH][regression][bisect] Xorg fails to start after f50aa21456d82c8cb6fbaa565835f1acc1720a5d</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102852">Bug 102852</a> - Scons: Support the new Scons 3.0.0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102940">Bug 102940</a> - Regression: Vulkan KMS rendering crashes since 17.2</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (1):</p>
|
||||
<ul>
|
||||
<li>radv: Add R16G16B16A16_SNORM fast clear support</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<ul>
|
||||
<li>nir/spirv: Allow loop breaks in a switch body.</li>
|
||||
<li>radv: Only set the MTYPE flags on GFX9+.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ben Crocker (4):</p>
|
||||
<ul>
|
||||
<li>gallivm: fix typo in debug_printf message</li>
|
||||
<li>gallivm: allow additional llc options</li>
|
||||
<li>gallivm/ppc64le: adjust VSX code generation control.</li>
|
||||
<li>gallivm/ppc64le: allow environmental control of Altivec code generation</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (2):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: Check queryImage return for wl_buffer</li>
|
||||
<li>egl/wayland: Don't use dmabuf with no modifiers</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>radv: emit fmuladd instead of fma to llvm.</li>
|
||||
<li>radv: lower ffma in nir.</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (6):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add "anv: Remove unreachable cases from isl_format_for_size"</li>
|
||||
<li>cherry-ignore: add "anv/wsi: Allocate enough memory for the entire image"</li>
|
||||
<li>swr/rast: do not crash on NULL strings returned by getenv</li>
|
||||
<li>wayland-drm: use a copy of the wayland_drm_callbacks struct</li>
|
||||
<li>eglmesaext: add forward declaration for struct wl_buffers</li>
|
||||
<li>Update version to 17.2.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>scons: use python3-compatible print()</li>
|
||||
</ul>
|
||||
|
||||
<p>Ilia Mirkin (2):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix 64-bit integer shifts</li>
|
||||
<li>nv50,nvc0: fix push hint logic in presence of a start offset</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>intel/compiler: Don't cmod propagate into a saturated operation</li>
|
||||
<li>intel/compiler: Don't propagate cmod into integer multiplies</li>
|
||||
<li>glsl/blob: Return false from ensure_can_read on overrun</li>
|
||||
<li>glsl/blob: Return false from grow_to_fit if we've ever failed</li>
|
||||
<li>nir/opcodes: Fix constant-folding of ufind_msb</li>
|
||||
<li>nir: Get rid of the variable on vote intrinsics</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (1):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.2.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (3):</p>
|
||||
<ul>
|
||||
<li>anv: Fix vkCmdFillBuffer()</li>
|
||||
<li>spirv: Fix SpvOpAtomicISub</li>
|
||||
<li>anv: Do not assert() on VK_ATTACHMENT_UNUSED</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (3):</p>
|
||||
<ul>
|
||||
<li>st/va: use pipe transfer_map to map upload buffer</li>
|
||||
<li>st/vdpau: don't re-allocate interlaced buffer with packed YUV format</li>
|
||||
<li>st/va: don't re-allocate interlaced buffer with pakced format</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (4):</p>
|
||||
<ul>
|
||||
<li>intel: compiler: vec4: add missing default 0 lod</li>
|
||||
<li>anv/cmd_buffer: fix push descriptors with set > 0</li>
|
||||
<li>anv/cmd_buffer: Reset state in cmd_buffer_destroy</li>
|
||||
<li>anv: bo_cache: allow importing a BO larger than needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>mesa: fix texture updates for ATI_fragment_shader</li>
|
||||
<li>st/mesa: don't use pipe_surface for passing information about EGLImage</li>
|
||||
<li>glsl_to_tgsi: fix instruction order for bindless textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (14):</p>
|
||||
<ul>
|
||||
<li>st/glsl_to_tgsi: fix conditional assignments to packed shader outputs</li>
|
||||
<li>amd/common: fix build_cube_select</li>
|
||||
<li>radeonsi/gfx9: fix geometry shaders without output vertices</li>
|
||||
<li>util/queue: fix a race condition in the fence code</li>
|
||||
<li>glsl/lower_instruction: handle denorms and overflow in ldexp correctly</li>
|
||||
<li>radeonsi: move current_rast_prim to r600_common_context</li>
|
||||
<li>radeonsi: don't discard points and lines</li>
|
||||
<li>radeonsi: deduce rast_prim correctly for tessellation point mode</li>
|
||||
<li>radeonsi: fix maximum advertised point size / line width</li>
|
||||
<li>st/mesa: don't clobber glGetInternalformat* buffer for GL_NUM_SAMPLE_COUNTS</li>
|
||||
<li>st/glsl_to_tgsi: fix indirect access to 64-bit integer</li>
|
||||
<li>st/glsl_to_tgsi: fix a use-after-free in merge_two_dsts</li>
|
||||
<li>radeonsi: clamp depth comparison value only for fixed point formats</li>
|
||||
<li>radeonsi: clamp border colors for upgraded depth textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (2):</p>
|
||||
<ul>
|
||||
<li>freedreno/a5xx: align height to GMEM</li>
|
||||
<li>freedreno/a5xx: fix missing restore state</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,246 +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 17.3.0 Release Notes / December 8. 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.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 17.3.1.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
0cb1ffe2b4637d80f08df3bdfeb300352dcffd8ff4f6711278639b084e3f07f9 mesa-17.3.0.tar.gz
|
||||
29a0a3a6c39990d491a1a58ed5c692e596b3bfc6c01d0b45e0b787116c50c6d9 mesa-17.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>libtxc_dxtn is now integrated into Mesa. GL_EXT_texture_compression_s3tc and GL_ANGLE_texture_compression_dxt are now always enabled on drivers that support them</li>
|
||||
<li>GL_ARB_indirect_parameters on i965/gen7+</li>
|
||||
<li>GL_ARB_polygon_offset_clamp on i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr</li>
|
||||
<li>GL_ARB_transform_feedback_overflow_query on radeonsi</li>
|
||||
<li>GL_ARB_texture_filter_anisotropic on i965, nv50, nvc0, r600, radeonsi</li>
|
||||
<li>GL_EXT_memory_object on radeonsi</li>
|
||||
<li>GL_EXT_memory_object_fd on radeonsi</li>
|
||||
<li>EGL_ANDROID_native_fence_sync on radeonsi with a future kernel (possibly 4.15)</li>
|
||||
<li>EGL_IMG_context_priority on i965</li>
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=97532">Bug 97532</a> - Regression: GLB 2.7 & Glmark-2 GLES versions segfault due to linker precision error (259fc505) on dead variable</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100438">Bug 100438</a> - glsl/ir.cpp:1376: ir_dereference_variable::ir_dereference_variable(ir_variable*): Assertion `var != NULL' failed.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=100613">Bug 100613</a> - Regression in Mesa 17 on s390x (zSystems)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101334">Bug 101334</a> - AMD SI cards: Some vulkan apps freeze the system</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101378">Bug 101378</a> - interpolateAtSample check for input parameter is too strict</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101655">Bug 101655</a> - Explicit sync support for android</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101691">Bug 101691</a> - gfx corruption on windowed 3d-apps running on dGPU</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101709">Bug 101709</a> - [llvmpipe] piglit gl-1.0-scissor-offscreen regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101766">Bug 101766</a> - Assertion `!"invalid type"' failed when constant expression involves literal of different type</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101832">Bug 101832</a> - [PATCH][regression][bisect] Xorg fails to start after f50aa21456d82c8cb6fbaa565835f1acc1720a5d</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101851">Bug 101851</a> - [regression] libEGL_common.a undefined reference to '__gxx_personality_v0'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101867">Bug 101867</a> - Launch options window renders black in Feral Games in current Mesa trunk</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101876">Bug 101876</a> - SIGSEGV when launching Steam</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101910">Bug 101910</a> - [BYT] ES31-CTS.functional.copy_image.non_compressed.viewclass_96_bits.rgb32f_rgb32f</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101925">Bug 101925</a> - playstore/webview crash</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101941">Bug 101941</a> - Getting different output depending on attribute declaration order</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101961">Bug 101961</a> - Serious Sam Fusion hangs system completely</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101981">Bug 101981</a> - Commit ddc32537d6db69198e88ef0dfe19770bf9daa536 breaks rendering in multiple applications</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101982">Bug 101982</a> - Weston crashes when running an OpenGL program on i965</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101983">Bug 101983</a> - [G33] ES2-CTS.functional.shaders.struct.uniform.sampler_nested* regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101989">Bug 101989</a> - ES3-CTS.functional.state_query.integers.viewport_getinteger regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102006">Bug 102006</a> - gstreamer vaapih264enc segfault</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102014">Bug 102014</a> - Mesa git build broken by commit bc7f41e11d325280db12e7b9444501357bc13922</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102015">Bug 102015</a> - [Regression,bisected]: Segfaults with various programs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102024">Bug 102024</a> - FORMAT_FEATURE_SAMPLED_IMAGE_BIT not supported for D16_UNORM and D32_SFLOAT</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102038">Bug 102038</a> - assertion failure in update_framebuffer_size</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102050">Bug 102050</a> - commit b4f639d02a causes build breakage on Android 32bit builds</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102052">Bug 102052</a> - No package 'expat' found</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102062">Bug 102062</a> - Segfault at eglCreateContext in android-x86</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102125">Bug 102125</a> - [softpipe] piglit arb_texture_view-targets regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102148">Bug 102148</a> - Crash when running qopenglwidget example on mesa llvmpipe win32</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102177">Bug 102177</a> - [SKL] ES31-CTS.core.sepshaderobjs.StateInteraction fails sporadically</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102201">Bug 102201</a> - [regression, SI] GPU crash in Unigine Valley</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102241">Bug 102241</a> - gallium/wgl: SwapBuffers freezing regularly with swap interval enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102274">Bug 102274</a> - assertion failure in ir_validate.cpp:240</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102308">Bug 102308</a> - segfault in glCompressedTextureSubImage3D</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102358">Bug 102358</a> - WarThunder freezes at start, with activated vsync (vblank_mode=2)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102377">Bug 102377</a> - PIPE_*_4BYTE_ALIGNED_ONLY caps crashing</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102429">Bug 102429</a> - [regression, SI] Performance decrease in Unigine Valley & Heaven</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102435">Bug 102435</a> - [skl,kbl] [drm] GPU HANG: ecode 9:0:0x86df7cf9, in csgo_linux64 [4947], reason: Hang on rcs, action: reset</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102454">Bug 102454</a> - glibc 2.26 doesn't provide anymore xlocale.h</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102461">Bug 102461</a> - [llvmpipe] piglit glean fragprog1 XPD test 1 regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102467">Bug 102467</a> - src/mesa/state_tracker/st_cb_readpixels.c:178]: (warning) Redundant assignment</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102496">Bug 102496</a> - Frontbuffer rendering corruption on mesa master</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102502">Bug 102502</a> - [bisected] Kodi crashes since commit 707d2e8b - gallium: fold u_trim_pipe_prim call from st/mesa to drivers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102530">Bug 102530</a> - [bisected] Kodi crashes when launching a stream - commit bd2662bf</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102552">Bug 102552</a> - Null dereference due to not checking return value of util_format_description</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102565">Bug 102565</a> - u_debug_stack.c:114: undefined reference to `_Ux86_64_getcontext'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102573">Bug 102573</a> - fails to build on armel</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102665">Bug 102665</a> - test_glsl_to_tgsi_lifetime.cpp:53:67: error: ‘>>’ should be ‘> >’ within a nested template argument list</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102677">Bug 102677</a> - [OpenGL CTS] KHR-GL45.CommonBugs.CommonBug_PerVertexValidation fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102680">Bug 102680</a> - [OpenGL CTS] KHR-GL45.shader_ballot_tests.ShaderBallotBitmasks fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102685">Bug 102685</a> - piglit.spec.glsl-1_50.compiler.vs-redeclares-pervertex-out-before-global-redeclaration</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102774">Bug 102774</a> - [BDW] [Bisected] Absolute constant buffers break VAAPI in mpv</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102809">Bug 102809</a> - Rust shadows(?) flash random colours</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102844">Bug 102844</a> - memory leak with glDeleteProgram for shader program type GL_COMPUTE_SHADER</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102847">Bug 102847</a> - swr fail to build with llvm-5.0.0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102852">Bug 102852</a> - Scons: Support the new Scons 3.0.0</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102904">Bug 102904</a> - piglit and gl45 cts linker tests regressed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102924">Bug 102924</a> - mesa (git version) images too dark</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102940">Bug 102940</a> - Regression: Vulkan KMS rendering crashes since 17.2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102955">Bug 102955</a> - HyperZ related rendering issue in ARK: Survival Evolved</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102999">Bug 102999</a> - [BISECTED,REGRESSION] Failing Android EGL dEQP with RGBA configs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103002">Bug 103002</a> - string_buffer_test.cpp:43: error: ISO C++ forbids initialization of member ‘str1’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103085">Bug 103085</a> - [ivb byt hsw] piglit.spec.arb_indirect_parameters.tf-count-arrays</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103098">Bug 103098</a> - [OpenGL CTS] KHR-GL45.enhanced_layouts.varying_structure_locations fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103101">Bug 103101</a> - [SKL][bisected] DiRT Rally GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103115">Bug 103115</a> - [BSW BXT GLK] dEQP-VK.spirv_assembly.instruction.compute.sconvert.int32_to_int64</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103128">Bug 103128</a> - [softpipe] piglit fs-ldexp regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103142">Bug 103142</a> - R600g+sb: optimizer apparently stuck in an endless loop</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103214">Bug 103214</a> - GLES CTS functional.state_query.indexed.atomic_counter regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103227">Bug 103227</a> - [G965 G45 ILK] ES2-CTS.gtf.GL2ExtensionTests.texture_float.texture_float regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103247">Bug 103247</a> - Performance regression: car chase, manhattan</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103253">Bug 103253</a> - blob.h:138:1: error: unknown type name 'ssize_t'</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103265">Bug 103265</a> - [llvmpipe] piglit depth-tex-compare regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103323">Bug 103323</a> - Possible unintended error message in file pixel.c line 286</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103388">Bug 103388</a> - Linking libcltgsi.la (llvm/codegen/libclllvm_la-common.lo) fails with "error: no match for 'operator-'" with GCC-7, Mesa from Git and current LLVM revisions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103393">Bug 103393</a> - glDispatchComputeGroupSizeARB : gl_GlobalInvocationID.x != gl_WorkGroupID.x * gl_LocalGroupSizeARB.x + gl_LocalInvocationID.x</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103412">Bug 103412</a> - gallium/wgl: Another fix to context creation without prior SetPixelFormat()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103519">Bug 103519</a> - wayland egl apps crash on start with mesa 17.2</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103529">Bug 103529</a> - [GM45] GPU hang with mpv fullscreen (bisected)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103537">Bug 103537</a> - i965: Shadow of Mordor broken since commit 379b24a40d3d34ffdaaeb1b328f50e28ecb01468 on Haswell</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103544">Bug 103544</a> - Graphical glitches r600 in game this war of mine linux native</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103616">Bug 103616</a> - Increased difference from reference image in shaders</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103628">Bug 103628</a> - [BXT, GLK, BSW] KHR-GL46.shader_ballot_tests.ShaderBallotBitmasks</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103759">Bug 103759</a> - plasma desktop corrupted rendering</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103787">Bug 103787</a> - [BDW,BSW] gpu hang on spec.arb_pipeline_statistics_query.arb_pipeline_statistics_query-comp</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103909">Bug 103909</a> - anv_allocator.c:113:1: error: static declaration of ‘memfd_create’ follows non-static declaration</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,191 +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 17.3.1 Release Notes / December 21, 2017</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.1 is a bug fix release which fixes bugs found since the 17.3.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.3.1 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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
b0bb0419dbe3043ed4682a28eaf95721f427ca3f23a3c2a7dc77dbe8a3b6384d mesa-17.3.1.tar.gz
|
||||
9ae607e0998a586fb2c866cfc8e45e6f52d1c56cb1b41288253ea83eada824c1 mesa-17.3.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=94739">Bug 94739</a> - Mesa 11.1.2 implementation error: bad format MESA_FORMAT_Z_FLOAT32 in _mesa_unpack_uint_24_8_depth_stencil_row</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102710">Bug 102710</a> - vkCmdBlitImage with arrayLayers > 1 fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103579">Bug 103579</a> - Vertex shader causes compiler to crash in SPIRV-to-NIR</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103966">Bug 103966</a> - Mesa 17.2.5 implementation error: bad format MESA_FORMAT_Z_FLOAT32 in _mesa_unpack_uint_24_8_depth_stencil_row</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104119">Bug 104119</a> - radv: OpBitFieldInsert produces 0 with a loop counter for Insert</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104143">Bug 104143</a> - r600/sb: clobbers gl_Position -> gl_FragCoord</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (1):</p>
|
||||
<ul>
|
||||
<li>radv: Add LLVM version to the device name string</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (3):</p>
|
||||
<ul>
|
||||
<li>spirv: Fix loading an entire block at once.</li>
|
||||
<li>radv: Don't advertise VK_EXT_debug_report.</li>
|
||||
<li>radv: Fix multi-layer blits.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ben Crocker (1):</p>
|
||||
<ul>
|
||||
<li>docs/llvmpipe: document ppc64le as alternative architecture to x86.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (2):</p>
|
||||
<ul>
|
||||
<li>xlib: call _mesa_warning() instead of fprintf()</li>
|
||||
<li>gallium/aux: include nr_samples in util_resource_size() computation</li>
|
||||
</ul>
|
||||
|
||||
<p>Bruce Cherniak (1):</p>
|
||||
<ul>
|
||||
<li>swr: Fix KNOB_MAX_WORKER_THREADS thread creation override.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>radv: port merge tess info from anv</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (5):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.0</li>
|
||||
<li>util: scons: wire up the sha1 test</li>
|
||||
<li>cherry-ignore: meson: fix strtof locale support check</li>
|
||||
<li>cherry-ignore: util: add mesa-sha1 test to meson</li>
|
||||
<li>Update version to 17.3.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>broadcom/vc4: Fix handling of GFXH-515 workaround with a start vertex count.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>compiler: use NDEBUG to guard asserts</li>
|
||||
</ul>
|
||||
|
||||
<p>Fabian Bieler (2):</p>
|
||||
<ul>
|
||||
<li>glsl: Match order of gl_LightSourceParameters elements.</li>
|
||||
<li>glsl: Fix gl_NormalScale.</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: do not convert if-blocks that contain indirect array access</li>
|
||||
</ul>
|
||||
|
||||
<p>James Legg (1):</p>
|
||||
<ul>
|
||||
<li>nir/opcodes: Fix constant-folding of bitfield_insert</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>i965: Switch over to fully external-or-not MOCS scheme</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (1):</p>
|
||||
<ul>
|
||||
<li>travis: disable Meson build</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>meta: Initialize depth/clear values on declaration.</li>
|
||||
<li>meta: Fix ClearTexture with GL_DEPTH_COMPONENT.</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (1):</p>
|
||||
<ul>
|
||||
<li>radeon/vce: move destroy command before feedback command</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (4):</p>
|
||||
<ul>
|
||||
<li>radeonsi: flush the context after resource_copy_region for buffer exports</li>
|
||||
<li>radeonsi: allow DMABUF exports for local buffers</li>
|
||||
<li>winsys/amdgpu: disable local BOs again due to worse performance</li>
|
||||
<li>radeonsi: don't call force_dcc_off for buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>util: Assume little endian in the absence of platform-specific handling</li>
|
||||
<li>util: Add a SHA1 unit test program</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix the R600_RESOURCE_FLAG_UNMAPPABLE check</li>
|
||||
</ul>
|
||||
|
||||
<p>Pierre Moreau (1):</p>
|
||||
<ul>
|
||||
<li>nvc0/ir: Properly lower 64-bit shifts when the shift value is >32</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>glsl: get correct member type when processing xfb ifc arrays</li>
|
||||
</ul>
|
||||
|
||||
<p>Vadym Shovkoplias (2):</p>
|
||||
<ul>
|
||||
<li>glx/dri3: Remove unused deviceName variable</li>
|
||||
<li>util/disk_cache: Remove unneeded free() on always null string</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,109 +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 17.3.2 Release Notes / January 8, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.2 is a bug fix release which fixes bugs found since the 17.3.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
f997e80f14c385f9a2ba827c2b74aebf1b7426712ca4a81c631ef9f78e437bf4 mesa-17.3.2.tar.gz
|
||||
e2844a13f2d6f8f24bee65804a51c42d8dc6ae9c36cff7ee61d0940e796d64c6 mesa-17.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=97852">Bug 97852</a> - Unreal Engine corrupted preview viewport</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103801">Bug 103801</a> - [i965] >Observer_ issue</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104288">Bug 104288</a> - Steamroll needs allow_glsl_cross_stage_interpolation_mismatch=true</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Fix DCC compatible formats.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brendan King (1):</p>
|
||||
<ul>
|
||||
<li>egl: link libEGL against the dynamic version of libglapi</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (6):</p>
|
||||
<ul>
|
||||
<li>radv/gfx9: add support for 3d images to blit 2d paths</li>
|
||||
<li>radv: handle depth/stencil image copy with layouts better. (v3.1)</li>
|
||||
<li>radv/meta: fix blit paths for depth/stencil (v2.1)</li>
|
||||
<li>radv: fix issue with multisample positions and interp_var_at_sample.</li>
|
||||
<li>radv/gfx9: add 3d sampler image->buffer copy shader. (v3)</li>
|
||||
<li>radv: don't do format replacement on tc compat htile surfaces.</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.1</li>
|
||||
<li>Update version to 17.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>egl: let each platform decided how to handle LIBGL_ALWAYS_SOFTWARE</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Herring (1):</p>
|
||||
<ul>
|
||||
<li>egl/android: Fix build break with dri2_initialize_android _EGLDisplay parameter</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>radv/gfx9: fix primitive topology when adjacency is used</li>
|
||||
<li>radv: use a faster version for nir_op_pack_half_2x16</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (2):</p>
|
||||
<ul>
|
||||
<li>mesa: add AllowGLSLCrossStageInterpolationMismatch workaround</li>
|
||||
<li>drirc: set allow_glsl_cross_stage_interpolation_mismatch for more games</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,151 +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 17.3.3 Release Notes / January 18, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.3 is a bug fix release which fixes bugs found since the 17.3.2 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
c733d37a161501cd81dc9b309ccb613753b98eafc6d35e0847548a6642749772 mesa-17.3.3.tar.gz
|
||||
41bac5de0ef6adc1f41a1ec0f80c19e361298ce02fa81b5f9ba4fdca33a9379b mesa-17.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=104214">Bug 104214</a> - Dota crashes when switching from game to desktop</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104492">Bug 104492</a> - Compute Shader: Wrong alignment when assigning struct value to structured SSBO</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104551">Bug 104551</a> - Check if Mako templates for Python are installed</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (3):</p>
|
||||
<ul>
|
||||
<li>anv: Add missing unlock in anv_scratch_pool_alloc</li>
|
||||
<li>anv: Take write mask into account in has_color_buffer_write_enabled</li>
|
||||
<li>anv: Make sure state on primary is correct after CmdExecuteCommands</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (1):</p>
|
||||
<ul>
|
||||
<li>anv: Import mako templates only during execution of anv_extensions</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (11):</p>
|
||||
<ul>
|
||||
<li>radv: Invert condition for all samples identical during resolve.</li>
|
||||
<li>radv: Flush caches before subpass resolve.</li>
|
||||
<li>radv: Fix fragment resolve destination offset.</li>
|
||||
<li>radv: Use correct framebuffer size for partial FS resolves.</li>
|
||||
<li>radv: Always use fragment resolve if dest uses DCC.</li>
|
||||
<li>Revert "radv/gfx9: fix block compression texture views."</li>
|
||||
<li>radv: Use correct HTILE expanded words.</li>
|
||||
<li>radv: Allow writing 0 scissors.</li>
|
||||
<li>ac/nir: Handle loading data from compact arrays.</li>
|
||||
<li>radv: Invalidate L1 for VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT.</li>
|
||||
<li>ac/nir: Sanitize location_frac for local variables.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (8):</p>
|
||||
<ul>
|
||||
<li>radv: fix events on compute queues.</li>
|
||||
<li>radv: fix pipeline statistics end query on compute queue</li>
|
||||
<li>radv/gfx9: fix 3d image to image transfers on compute queues.</li>
|
||||
<li>radv/gfx9: fix 3d image clears on compute queues</li>
|
||||
<li>radv/gfx9: fix buffer to image for 3d images on compute queues</li>
|
||||
<li>radv/gfx9: fix block compression texture views.</li>
|
||||
<li>radv/gfx9: use a bigger hammer to flush cb/db caches.</li>
|
||||
<li>radv/gfx9: use correct swizzle parameter to work out border swizzle.</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Florian Will (1):</p>
|
||||
<ul>
|
||||
<li>glsl: Respect std430 layout in lower_buffer_access</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (6):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: intel/fs: Use the original destination region for int MUL lowering</li>
|
||||
<li>cherry-ignore: i965/fs: Use UW types when using V immediates</li>
|
||||
<li>cherry-ignore: main: Clear shader program data whenever ProgramBinary is called</li>
|
||||
<li>cherry-ignore: egl: pass the dri2_dpy to the $plat_teardown functions</li>
|
||||
<li>cherry-ignore: vulkan/wsi: free cmd pools</li>
|
||||
<li>Update version to 17.3.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix alpha-to-coverage if color writes are disabled</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>i965: Require space for MI_BATCHBUFFER_END.</li>
|
||||
<li>i965: Torch public intel_batchbuffer_emit_dword/float helpers.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (1):</p>
|
||||
<ul>
|
||||
<li>etnaviv: disable in-place resolve for non-supertiled surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsálvez (1):</p>
|
||||
<ul>
|
||||
<li>anv: VkDescriptorSetLayoutBinding can have descriptorCount == 0</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (1):</p>
|
||||
<ul>
|
||||
<li>loader/dri3: Avoid freeing renderbuffers in use</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: fix invalid sign masks in avx512 simdlib code</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,275 +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 17.3.4 Release Notes / January 15, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.4 is a bug fix release which fixes bugs found since the 17.3.3 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
2d3a4c3cbc995b3e192361dce710d8c749e046e7575aa1b7d8fc9e6b4df28f84 mesa-17.3.4.tar.gz
|
||||
71f995e233bc5df1a0dd46c980d1720106e7f82f02d61c1ca50854b5e02590d0 mesa-17.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=90311">Bug 90311</a> - Fail to build libglx with clang at linking stage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101442">Bug 101442</a> - Piglit shaders@ssa@fs-if-def-else-break fails with sb but passes with R600_DEBUG=nosb</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102435">Bug 102435</a> - [skl,kbl] [drm] GPU HANG: ecode 9:0:0x86df7cf9, in csgo_linux64 [4947], reason: Hang on rcs, action: reset</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103006">Bug 103006</a> - [OpenGL CTS] [HSW] KHR-GL45.vertex_attrib_binding.basic-inputL-case1</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103626">Bug 103626</a> - [SNB] ES3-CTS.functional.shaders.precision</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104163">Bug 104163</a> - [GEN9+] 2-3% perf drop in GfxBench Manhattan 3.1 from "i965: Disable regular fast-clears (CCS_D) on gen9+"</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104383">Bug 104383</a> - [KBL] Intel GPU hang with firefox</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104411">Bug 104411</a> - [CCS] lemonbar-xft GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104487">Bug 104487</a> - [KBL] portal2_linux GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104711">Bug 104711</a> - [skl CCS] Oxenfree (unity engine game) hangs GPU</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104741">Bug 104741</a> - Graphic corruption for Android apps Telegram and KineMaster</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104745">Bug 104745</a> - HEVC VDPAU decoding broken on RX 460 with UVD Firmware v1.130</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104818">Bug 104818</a> - mesa fails to build on ia64</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (1):</p>
|
||||
<ul>
|
||||
<li>i965: perform 2 uploads with dual slot *64*PASSTHRU formats on gen<8</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (10):</p>
|
||||
<ul>
|
||||
<li>radv: Fix ordering issue in meta memory allocation failure path.</li>
|
||||
<li>radv: Fix memory allocation failure path in compute resolve init.</li>
|
||||
<li>radv: Fix freeing meta state if the device pipeline cache fails to allocate.</li>
|
||||
<li>radv: Fix fragment resolve init memory allocation failure paths.</li>
|
||||
<li>radv: Fix bufimage failure deallocation.</li>
|
||||
<li>radv: Init variant entry with memset.</li>
|
||||
<li>radv: Don't allow 3d or 1d depth/stencil textures.</li>
|
||||
<li>ac/nir: Use instance_rate_inputs per attribute, not per variable.</li>
|
||||
<li>ac/nir: Use correct 32-bit component writemask for 64-bit SSBO stores.</li>
|
||||
<li>ac/nir: Fix vector extraction if source vector has >4 elements.</li>
|
||||
</ul>
|
||||
|
||||
<p>Boyuan Zhang (2):</p>
|
||||
<ul>
|
||||
<li>radeon/vcn: add and manage render picture list</li>
|
||||
<li>radeon/uvd: add and manage render picture list</li>
|
||||
</ul>
|
||||
|
||||
<p>Chuck Atkins (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: add missing llvm dependencies to .pc files</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (10):</p>
|
||||
<ul>
|
||||
<li>r600/sb: fix a bug emitting ar load from a constant.</li>
|
||||
<li>ac/nir: account for view index in the user sgpr allocation.</li>
|
||||
<li>radv: add fs_key meta format support to resolve passes.</li>
|
||||
<li>radv: don't use hw resolve for integer image formats</li>
|
||||
<li>radv: don't use hw resolves for r16g16 norm formats.</li>
|
||||
<li>radv: move spi_baryc_cntl to pipeline</li>
|
||||
<li>r600/sb: insert the else clause when we might depart from a loop</li>
|
||||
<li>radv: don't enable tc compat for d32s8 + 4/8 samples (v1.1)</li>
|
||||
<li>radv/gfx9: fix block compression texture views. (v2)</li>
|
||||
<li>virgl: also remove dimension on indirect.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eleni Maria Stea (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Fix function pointers initialization in status tracker</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (18):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: i965: Accept CONTEXT_ATTRIB_PRIORITY for brwCreateContext</li>
|
||||
<li>cherry-ignore: swr: refactor swr_create_screen to allow for proper cleanup on error</li>
|
||||
<li>cherry-ignore: anv: add explicit 18.0 only nominations</li>
|
||||
<li>cherry-ignore: radv: fix sample_mask_in loading. (v3.1)</li>
|
||||
<li>cherry-ignore: meson: multiple fixes</li>
|
||||
<li>cherry-ignore: swr/rast: support llvm 3.9 type declarations</li>
|
||||
<li>Revert "cherry-ignore: intel/fs: Use the original destination region for int MUL lowering"</li>
|
||||
<li>cherry-ignore: ac/nir: set amdgpu.uniform and invariant.load for UBOs</li>
|
||||
<li>cherry-ignore: add gen10 fixes</li>
|
||||
<li>cherry-ignore: add r600/amdgpu 18.0 nominations</li>
|
||||
<li>cherry-ignore: add i965 shader cache fixes</li>
|
||||
<li>cherry-ignore: nir: mark unused space in packed_tex_data</li>
|
||||
<li>radv: Stop advertising VK_KHX_multiview</li>
|
||||
<li>cherry-ignore: radv: Don't expose VK_KHX_multiview on android.</li>
|
||||
<li>configure.ac: correct driglx-direct help text</li>
|
||||
<li>cherry-ignore: add meson fix</li>
|
||||
<li>cherry-ignore: add a few more meson fixes</li>
|
||||
<li>Update version to 17.3.4</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>radeon: remove left over dead code</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>r600/shader: Initialize max_driver_temp_used correctly for the first time</li>
|
||||
</ul>
|
||||
|
||||
<p>Grazvydas Ignotas (2):</p>
|
||||
<ul>
|
||||
<li>st/va: release held locks in error paths</li>
|
||||
<li>st/vdpau: release held lock in error path</li>
|
||||
</ul>
|
||||
|
||||
<p>Igor Gnatenko (1):</p>
|
||||
<ul>
|
||||
<li>link mesautil with pthreads</li>
|
||||
</ul>
|
||||
|
||||
<p>Indrajit Das (4):</p>
|
||||
<ul>
|
||||
<li>st/omx_bellagio: Update default intra matrix per MPEG2 spec</li>
|
||||
<li>radeon/uvd: update quantiser matrices only when requested</li>
|
||||
<li>radeon/vcn: update quantiser matrices only when requested</li>
|
||||
<li>st/va: clear pointers for mpeg2 quantiser matrices</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (19):</p>
|
||||
<ul>
|
||||
<li>i965: Call brw_cache_flush_for_render in predraw_resolve_framebuffer</li>
|
||||
<li>i965: Add more precise cache tracking helpers</li>
|
||||
<li>i965/blorp: Add more destination flushing</li>
|
||||
<li>i965: Track the depth and render caches separately</li>
|
||||
<li>i965: Track format and aux usage in the render cache</li>
|
||||
<li>Re-enable regular fast-clears (CCS_D) on gen9+</li>
|
||||
<li>i965/miptree: Refactor CCS_E and CCS_D cases in render_aux_usage</li>
|
||||
<li>i965/miptree: Add an explicit tiling parameter to create_for_bo</li>
|
||||
<li>i965/miptree: Use the tiling from the modifier instead of the BO</li>
|
||||
<li>i965/bufmgr: Add a create_from_prime_tiled function</li>
|
||||
<li>i965: Set tiling on BOs imported with modifiers</li>
|
||||
<li>i965/miptree: Take an aux_usage in prepare/finish_render</li>
|
||||
<li>i965/miptree: Add an aux_disabled parameter to render_aux_usage</li>
|
||||
<li>i965/surface_state: Drop brw_aux_surface_disabled</li>
|
||||
<li>intel/fs: Use the original destination region for int MUL lowering</li>
|
||||
<li>anv/pipeline: Don't look at blend state unless we have an attachment</li>
|
||||
<li>anv/cmd_buffer: Re-emit the pipeline at every subpass</li>
|
||||
<li>anv: Stop advertising VK_KHX_multiview</li>
|
||||
<li>i965: Call prepare_external after implicit window-system MSAA resolves</li>
|
||||
</ul>
|
||||
|
||||
<p>Jon Turney (3):</p>
|
||||
<ul>
|
||||
<li>configure: Default to gbm=no on osx</li>
|
||||
<li>glx/apple: include util/debug.h for env_var_as_boolean prototype</li>
|
||||
<li>glx/apple: locate dispatch table functions to wrap by name</li>
|
||||
</ul>
|
||||
|
||||
<p>José Fonseca (1):</p>
|
||||
<ul>
|
||||
<li>svga: Prevent use after free.</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (1):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.3</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (2):</p>
|
||||
<ul>
|
||||
<li>i965: Bind null render targets for shadow sampling + color.</li>
|
||||
<li>i965: Bump official kernel requirement to Linux v3.9.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lucas Stach (2):</p>
|
||||
<ul>
|
||||
<li>etnaviv: dirty TS state when framebuffer has changed</li>
|
||||
<li>renderonly: fix dumb BO allocation for non 32bpp formats</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: don't ignore pitch for imported textures</li>
|
||||
</ul>
|
||||
|
||||
<p>Matthew Nicholls (2):</p>
|
||||
<ul>
|
||||
<li>radv: restore previous stencil reference after depth-stencil clear</li>
|
||||
<li>radv: remove predication on cache flushes</li>
|
||||
</ul>
|
||||
|
||||
<p>Maxin B. John (1):</p>
|
||||
<ul>
|
||||
<li>anv_icd.py: improve reproducible builds</li>
|
||||
</ul>
|
||||
|
||||
<p>Michel Dänzer (1):</p>
|
||||
<ul>
|
||||
<li>winsys/radeon: Compute is_displayable in surf_drm_to_winsys</li>
|
||||
</ul>
|
||||
|
||||
<p>Roland Scheidegger (1):</p>
|
||||
<ul>
|
||||
<li>r600: don't do stack workarounds for hemlock</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: create pipeline layout objects for all meta operations</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Thibault (1):</p>
|
||||
<ul>
|
||||
<li>glx: fix non-dri build</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>ac: fix buffer overflow bug in 64bit SSBO loads</li>
|
||||
<li>ac: fix visit_ssa_undef() for doubles</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,66 +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 17.3.5 Release Notes / February 19, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.5 is a bug fix release which fixes bugs found since the 17.3.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
bc1ee20366aae2affc37c89228f871f438136f70252005e9f842169bde976788 mesa-17.3.5.tar.gz
|
||||
eb9228fc8aaa71e0205c1481c5b157752ebaec9b646b030d27478e25a6d7936a mesa-17.3.5.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.4</li>
|
||||
<li>Update version to 17.3.5</li>
|
||||
</ul>
|
||||
|
||||
<p>James Legg (1):</p>
|
||||
<ul>
|
||||
<li>ac/nir: Fix conflict resolution typo in handle_vs_input_decl</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,85 +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 17.3.5 Release Notes / February 19, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.6 is a bug fix release which fixes bugs found since the 17.3.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
d5e10ea3f0d11b06d2b0b235bba372a04278c39bc0e712090bda1f61842db188 mesa-17.3.6.tar.gz
|
||||
e5915680d44ac9d05defdec529db7459ac9edd441c9845266eff2e2d3e57fbf8 mesa-17.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=104383">Bug 104383</a> - [KBL] Intel GPU hang with firefox</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104411">Bug 104411</a> - [CCS] lemonbar-xft GPU hang</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104546">Bug 104546</a> - Crash happens when running compute pipeline after calling glxMakeCurrent two times</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.5</li>
|
||||
<li>Update version to 17.3.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (4):</p>
|
||||
<ul>
|
||||
<li>i965/draw: Do resolves properly for textures used by TXF</li>
|
||||
<li>i965: Replace draw_aux_buffer_disabled with draw_aux_usage</li>
|
||||
<li>i965/draw: Set NEW_AUX_STATE when draw aux changes</li>
|
||||
<li>i965: Stop disabling aux during texture preparation</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i965: Don't disable CCS for RT dependencies when dispatching compute.</li>
|
||||
</ul>
|
||||
|
||||
<p>Topi Pohjolainen (1):</p>
|
||||
<ul>
|
||||
<li>i965: Don't try to disable render aux buffers for compute</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,312 +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 17.3.7 Release Notes / March 21, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.7 is a bug fix release which fixes bugs found since the 17.3.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.3.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
f08de6d0ccb3dbca04b44790d85c3ff9e7b1cc4189d1b7c7167e5ba7d98736c0 mesa-17.3.7.tar.gz
|
||||
0595904a8fba65a8fe853a84ad3c940205503b94af41e8ceed245fada777ac1e mesa-17.3.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=103007">Bug 103007</a> - [OpenGL CTS] [HSW] KHR-GL45.gpu_shader_fp64.fp64.max_uniform_components fails</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103988">Bug 103988</a> - Intermittent piglit failures with shader cache enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104302">Bug 104302</a> - Wolfenstein 2 (2017) under wine graphical artifacting on RADV</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104381">Bug 104381</a> - swr fails to build since llvm-svn r321257</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104625">Bug 104625</a> - semicolon after if</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104642">Bug 104642</a> - Android: NULL pointer dereference with i965 mesa-dev, seems build_id_length related</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104654">Bug 104654</a> - r600/sb: Alien Isolation GPU lock</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104905">Bug 104905</a> - SpvOpFOrdEqual doesn't return correct results for NaNs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104915">Bug 104915</a> - Indexed SHADING_LANGUAGE_VERSION query not supported</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104923">Bug 104923</a> - anv: Dota2 rendering corruption</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105013">Bug 105013</a> - [regression] GLX+VA-API+clutter-gst video playback is corrupt with Mesa 17.3 (but is fine with 17.2)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105029">Bug 105029</a> - simdlib_512_avx512.inl:371:57: error: could not convert ‘_mm512_mask_blend_epi32((__mmask16)(ImmT), a, b)’ from ‘__m512i’ {aka ‘__vector(8) long long int’} to ‘SIMDImpl::SIMD512Impl::Float’</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105098">Bug 105098</a> - [RADV] GPU freeze with simple Vulkan App</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105103">Bug 105103</a> - Wayland master causes Mesa to fail to compile</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105224">Bug 105224</a> - Webgl Pointclouds flickers</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105255">Bug 105255</a> - Waiting for fences without waitAll is not implemented</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105271">Bug 105271</a> - WebGL2 shader crashes i965_dri.so 17.3.3</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105436">Bug 105436</a> - Blinking textures in UT2004 [bisected]</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (1):</p>
|
||||
<ul>
|
||||
<li>radv: Fix CmdCopyImage between uncompressed and compressed images</li>
|
||||
</ul>
|
||||
|
||||
<p>Andriy Khulap (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix RELOC_WRITE typo in brw_store_data_imm64()</li>
|
||||
</ul>
|
||||
|
||||
<p>Anuj Phogat (1):</p>
|
||||
<ul>
|
||||
<li>isl: Don't use surface format R32_FLOAT for typed atomic integer operations</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (6):</p>
|
||||
<ul>
|
||||
<li>radv: Always lower indirect derefs after nir_lower_global_vars_to_local.</li>
|
||||
<li>radeonsi: Export signalled sync file instead of -1.</li>
|
||||
<li>radv: Implement WaitForFences with !waitAll.</li>
|
||||
<li>radv: Implement waiting on non-submitted fences.</li>
|
||||
<li>radv: Fix copying from 3D images starting at non-zero depth.</li>
|
||||
<li>radv: Increase the number of dynamic uniform buffers.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>mesa: add missing switch case for EXTRA_VERSION_40 in check_extra()</li>
|
||||
</ul>
|
||||
|
||||
<p>Chuck Atkins (1):</p>
|
||||
<ul>
|
||||
<li>glx: Properly handle cases where screen creation fails</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (3):</p>
|
||||
<ul>
|
||||
<li>i965: Fix bugs in intel_from_planar</li>
|
||||
<li>egl/wayland: Fix ARGB/XRGB transposition in config map</li>
|
||||
<li>egl/wayland: Always use in-tree wayland-egl-backend.h</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (9):</p>
|
||||
<ul>
|
||||
<li>r600: fix cubemap arrays</li>
|
||||
<li>r600/sb/cayman: fix indirect ubo access on cayman</li>
|
||||
<li>r600: fix xfb stream check.</li>
|
||||
<li>ac/nir: to integer the args to bcsel.</li>
|
||||
<li>r600/cayman: fix fragcood loading recip generation.</li>
|
||||
<li>radv: don't support tc-compat on multisample d32s8 at all.</li>
|
||||
<li>virgl: remap query types to hw support.</li>
|
||||
<li>ac/nir: don't apply slice rounding on txf_ms</li>
|
||||
<li>r600: implement callstack workaround for evergreen.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>glapi/check_table: Remove 'extern "C"' block</li>
|
||||
<li>glapi: remove APPLE extensions from test</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (4):</p>
|
||||
<ul>
|
||||
<li>mesa: Drop incorrect A4B4G4R4 _mesa_format_matches_format_and_type() cases.</li>
|
||||
<li>ac/nir: Fix compiler warning about uninitialized dw_addr.</li>
|
||||
<li>glsl/tests: Fix strict aliasing warning about int64/double.</li>
|
||||
<li>glsl/tests: Fix a compiler warning about signed/unsigned loop comparison.</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix KHR_blend_equation_advanced with some render targets.</li>
|
||||
</ul>
|
||||
|
||||
<p>Frank Binns (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri2: fix segfault when display initialisation fails</li>
|
||||
</ul>
|
||||
|
||||
<p>George Kyriazis (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: blend_epi32() should return Integer, not Float</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>r600: Take ALU_EXTENDED into account when evaluating jump offsets</li>
|
||||
</ul>
|
||||
|
||||
<p>Gurchetan Singh (1):</p>
|
||||
<ul>
|
||||
<li>mesa: don't clamp just based on ARB_viewport_array extension</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (2):</p>
|
||||
<ul>
|
||||
<li>i965/sbe: fix number of inputs for active components</li>
|
||||
<li>i965/vec4: use a temp register to compute offsets for pull loads</li>
|
||||
</ul>
|
||||
|
||||
<p>James Legg (1):</p>
|
||||
<ul>
|
||||
<li>radv: Really use correct HTILE expanded words.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (3):</p>
|
||||
<ul>
|
||||
<li>intel/isl: Add an isl_color_value_is_zero helper</li>
|
||||
<li>vulkan/wsi/x11: Set OUT_OF_DATE if wait_for_special_event fails</li>
|
||||
<li>intel/fs: Set up sampler message headers in the visitor on gen7+</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (1):</p>
|
||||
<ul>
|
||||
<li>configure.ac: pthread-stubs not present on OpenBSD</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (3):</p>
|
||||
<ul>
|
||||
<li>i965: Create new program cache bo when clearing the program cache</li>
|
||||
<li>program: Don't reset SamplersValidated when restoring from shader cache</li>
|
||||
<li>intel/vulkan: Hard code CS scratch_ids_per_subslice for Cherryview</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (14):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: Explicit 18.0 only nominations</li>
|
||||
<li>cherry-ignore: r600/compute: only mark buffer/image state dirty for fragment shaders</li>
|
||||
<li>cherry-ignore: anv: Move setting current_pipeline to cmd_state_init</li>
|
||||
<li>cherry-ignore: anv: Be more careful about fast-clear colors</li>
|
||||
<li>cherry-ignore: Add patches that has a specific version for 17.3</li>
|
||||
<li>cherry-ignore: r600: Take ALU_EXTENDED into account when evaluating jump offsets</li>
|
||||
<li>cherry-ignore: intel/compiler: Memory fence commit must always be enabled for gen10+</li>
|
||||
<li>cherry-ignore: i965: Avoid problems from referencing orphaned BOs after growing.</li>
|
||||
<li>cherry-ignore: include all Meson related fixes</li>
|
||||
<li>cherry-ignore: ac/shader: fix vertex input with components.</li>
|
||||
<li>cherry-ignore: i965: Use absolute addressing for constant buffer 0 on Kernel 4.16+.</li>
|
||||
<li>cherry-ignore: anv/image: Separate modifiers from legacy scanout</li>
|
||||
<li>cherry-ignore: glsl: Fix memory leak with known glsl_type instances</li>
|
||||
<li>Update version to 17.3.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nvir/nvc0: fix legalizing of ld unlock c0[0x10000]</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i965: Emit CS stall before MEDIA_VFE_STATE.</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>i965: perf: ensure reading config IDs from sysfs isn't interrupted</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>radeonsi: align command buffer starting address to fix some Raven hangs</li>
|
||||
<li>configure.ac: blacklist libdrm 2.4.90</li>
|
||||
</ul>
|
||||
|
||||
<p>Michal Navratil (1):</p>
|
||||
<ul>
|
||||
<li>winsys/amdgpu: allow non page-aligned size bo creation from pointer</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Iglesias Gonsálvez (1):</p>
|
||||
<ul>
|
||||
<li>glsl/linker: fix bug when checking precision qualifier</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>ac/nir: use ordered float comparisons except for not equal</li>
|
||||
<li>Revert "mesa: do not trigger _NEW_TEXTURE_STATE in glActiveTexture()"</li>
|
||||
</ul>
|
||||
|
||||
<p>Stephan Gerhold (1):</p>
|
||||
<ul>
|
||||
<li>util/build-id: Fix address comparison for binaries with LOAD vaddr > 0</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (2):</p>
|
||||
<ul>
|
||||
<li>svga: Fix a leftover debug hack</li>
|
||||
<li>loader_dri3/glx/egl: Reinstate the loader_dri3_vtable get_dri_screen callback</li>
|
||||
</ul>
|
||||
|
||||
<p>Tim Rowley (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: fix MemoryBuffer build break for llvm-6</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (1):</p>
|
||||
<ul>
|
||||
<li>nir: fix interger divide by zero crash during constant folding</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Droste (1):</p>
|
||||
<ul>
|
||||
<li>gallivm: Use new LLVM fast-math-flags API</li>
|
||||
</ul>
|
||||
|
||||
<p>Vadym Shovkoplias (1):</p>
|
||||
<ul>
|
||||
<li>mesa: add glsl version query (v4)</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>swr/rast: Fix macOS macro.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,147 +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 17.3.8 Release Notes / April 03, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.8 is a bug fix release which fixes bugs found since the 17.3.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.3.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
175d2ca9be2af3a8db6cd603986096d75da70f59699528d7b6675d542a305e23 mesa-17.3.8.tar.gz
|
||||
8f9d9bf281c48e4a8f5228816577263b4c655248dc7666e75034ab422951a6b1 mesa-17.3.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=102542">Bug 102542</a> - mesa-17.2.0/src/gallium/state_trackers/nine/nine_ff.c:1938: bad assignment ?</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=103746">Bug 103746</a> - [BDW BSW SKL KBL] dEQP-GLES31.functional.copy_image regressions</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=104636">Bug 104636</a> - [BSW/HD400] Aztec Ruins GL version GPU hangs</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105290">Bug 105290</a> - [BSW/HD400] SynMark OglCSDof GPU hangs when shaders come from cache</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105464">Bug 105464</a> - Reading per-patch outputs in Tessellation Control Shader returns undefined values</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105670">Bug 105670</a> - [regression][hang] Trine1EE hangs GPU after loading screen on Mesa3D-17.3 and later</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105704">Bug 105704</a> - compiler assertion hit</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105717">Bug 105717</a> - [bisected] Mesa build tests fails: BIGENDIAN_CPU or LITTLEENDIAN_CPU must be defined</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Fix bad tracking of vs textures for NINESBT_ALL</li>
|
||||
<li>st/nine: Fixes warning about implicit conversion</li>
|
||||
<li>st/nine: Fix non inversible matrix check</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (1):</p>
|
||||
<ul>
|
||||
<li>anv/pipeline: fail if TCS/TES compile fail</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>radv: get correct offset into LDS for indexed vars.</li>
|
||||
</ul>
|
||||
|
||||
<p>Derek Foreman (1):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: Make swrast display_sync the correct queue</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>meson/configure: detect endian.h instead of trying to guess when it's available</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>mesa: Don't write to user buffer in glGetTexParameterIuiv on error</li>
|
||||
<li>i965/vec4: Fix null destination register in 3-source instructions</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>i965: Emit texture cache invalidates around blorp_copy</li>
|
||||
</ul>
|
||||
|
||||
<p>Jordan Justen (2):</p>
|
||||
<ul>
|
||||
<li>i965: Calculate thread_count in brw_alloc_stage_scratch</li>
|
||||
<li>i965: Hard code CS scratch_ids_per_subslice for Cherryview</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (6):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.7</li>
|
||||
<li>cherry-ignore: ac/nir: pass the nir variable through tcs loading.</li>
|
||||
<li>cherry-ignore: radv: handle exporting view index to fragment shader. (v1.1)</li>
|
||||
<li>cherry-ignore: omx: always define ENABLE_ST_OMX_{BELLAGIO,TIZONIA}</li>
|
||||
<li>cherry-ignore: docs: fix 18.0 release note version</li>
|
||||
<li>Update version to 17.3.8</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (1):</p>
|
||||
<ul>
|
||||
<li>radeon/vce: move feedback command inside of destroy function</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>st/dri: fix OpenGL-OpenCL interop for GL_TEXTURE_BUFFER</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>nir: fix per_vertex_output intrinsic</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>glsl: fix infinite loop caused by bug in loop unrolling pass</li>
|
||||
<li>nir: fix crash in loop unroll corner case</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,161 +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 17.3.9 Release Notes / April 18, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 17.3.9 is a bug fix release which fixes bugs found since the 17.3.8 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 17.3.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
|
||||
because compatibility contexts are not supported.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98281">Bug 98281</a> - 'message's in ctx->Debug.LogMessages[] seem to leak.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=101408">Bug 101408</a> - [Gen8+] Xonotic fails to render one of the weapons</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=102342">Bug 102342</a> - mesa-17.1.7/src/gallium/auxiliary/pipebuffer/pb_cache.c:169]: (style) Suspicious condition</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105317">Bug 105317</a> - The GPU Vega 56 was hang while try to pass #GraphicsFuzz shader15 test</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105440">Bug 105440</a> - GEN7: rendering issue on citra</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105442">Bug 105442</a> - Hang when running nine ff lighting shader with radeonsi</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105994">Bug 105994</a> - surface state leak when creating and destroying image views with aspectMask depth and stencil</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (2):</p>
|
||||
<ul>
|
||||
<li>dri_util: when overriding, always reset the core version</li>
|
||||
<li>mesa: adds some comments regarding MESA_GLES_VERSION_OVERRIDE usage</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (2):</p>
|
||||
<ul>
|
||||
<li>st/nine: Declare lighting consts for ff shaders</li>
|
||||
<li>st/nine: Do not use scratch for face register</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>ac/nir: Add workaround for GFX9 buffer views.</li>
|
||||
</ul>
|
||||
|
||||
<p>Daniel Stone (1):</p>
|
||||
<ul>
|
||||
<li>st/dri: Initialise modifier to INVALID for DRI2</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (1):</p>
|
||||
<ul>
|
||||
<li>glsl: remove unreachable assert()</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>gbm: remove never-implemented function</li>
|
||||
</ul>
|
||||
|
||||
<p>Henri Verbeet (1):</p>
|
||||
<ul>
|
||||
<li>mesa: Inherit texture view multi-sample information from the original texture images.</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>compiler/spirv: set is_shadow for depth comparitor sampling opcodes</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (4):</p>
|
||||
<ul>
|
||||
<li>nir/vars_to_ssa: Remove copies from the correct set</li>
|
||||
<li>nir/lower_indirect_derefs: Support interp_var_at intrinsics</li>
|
||||
<li>intel/vec4: Set channel_sizes for MOV_INDIRECT sources</li>
|
||||
<li>nir/lower_vec_to_movs: Only coalesce if the vec had a SSA destination</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (3):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 17.3.8</li>
|
||||
<li>cherry-ignore: Explicit 18.0 only nominations</li>
|
||||
<li>Update version to 17.3.9</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv: fix number of planes for depth & stencil</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>mesa: simplify MESA_GL_VERSION_OVERRIDE behavior of API override</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: fix picking the method for resolve subpass</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>i965: Extend the negative 32-bit deltas to 64-bits</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (6):</p>
|
||||
<ul>
|
||||
<li>gallium/pipebuffer: fix parenthesis location</li>
|
||||
<li>glsl: always call do_lower_jumps() after loop unrolling</li>
|
||||
<li>ac: add if/loop build helpers</li>
|
||||
<li>radeonsi: make use of if/loop build helpers in ac</li>
|
||||
<li>ac: make use of if/loop build helpers</li>
|
||||
<li>mesa: free debug messages when destroying the debug state</li>
|
||||
</ul>
|
||||
|
||||
<p>Xiong, James (1):</p>
|
||||
<ul>
|
||||
<li>i965: return the fourcc saved in __DRIimage when possible</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -64,9 +64,9 @@ execution. These are generally used for debugging.
|
||||
Example: export MESA_GLSL=dump,nopt
|
||||
</p>
|
||||
|
||||
<h3 id="replacement">Experimenting with Shader Replacements</h3>
|
||||
<p>
|
||||
Shaders can be dumped and replaced on runtime for debugging purposes. This
|
||||
Shaders can be dumped and replaced on runtime for debugging purposes. Mesa
|
||||
needs to be configured with '--with-sha1' to enable this functionality. This
|
||||
feature is not currently supported by SCons build.
|
||||
|
||||
This is controlled via following environment variables:
|
||||
@@ -76,22 +76,7 @@ This is controlled via following environment variables:
|
||||
</ul>
|
||||
Note, path set must exist before running for dumping or replacing to work.
|
||||
When both are set, these paths should be different so the dumped shaders do
|
||||
not clobber the replacement shaders. Also, the filenames of the replacement shaders
|
||||
should match the filenames of the corresponding dumped shaders.
|
||||
</p>
|
||||
|
||||
<h3 id="capture">Capturing Shaders</h3>
|
||||
|
||||
<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://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>
|
||||
<p>
|
||||
Notably, this captures linked GLSL shaders - with all stages together -
|
||||
as well as ARB programs.
|
||||
not clobber the replacement shaders.
|
||||
</p>
|
||||
|
||||
<h2 id="support">GLSL Version</h2>
|
||||
|
@@ -145,7 +145,7 @@ each directory.
|
||||
<li><b>xvmc</b> - XvMC state tracker
|
||||
<li><b>vdpau</b> - VDPAU state tracker
|
||||
<li><b>va</b> - VA-API state tracker
|
||||
<li><b>omx_bellagio</b> - OpenMAX Bellagio state tracker
|
||||
<li><b>omx</b> - OpenMAX state tracker
|
||||
</ul>
|
||||
<li><b>winsys</b> -
|
||||
<ul>
|
||||
|
@@ -133,7 +133,7 @@ New Tokens
|
||||
GetFloatv and GetIntegerv:
|
||||
|
||||
FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0
|
||||
VERTEX_PROGRAM_POSITION_MESA 0x8bb5
|
||||
VERTEX_PROGRAM_POSITION_MESA 0x8bb4
|
||||
|
||||
Accepted by the <pname> parameter of GetPointerv:
|
||||
|
||||
|
@@ -46,14 +46,14 @@ GL_MESA_shader_debug.spec: (obsolete)
|
||||
GL_DEBUG_ASSERT_MESA 0x875B
|
||||
|
||||
GL_MESA_program_debug: (obsolete)
|
||||
GL_FRAGMENT_PROGRAM_POSITION_MESA 0x8BB0
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x8BB1
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8BB2
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8BB3
|
||||
GL_VERTEX_PROGRAM_POSITION_MESA 0x8BB4
|
||||
GL_VERTEX_PROGRAM_CALLBACK_MESA 0x8BB5
|
||||
GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8BB6
|
||||
GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8BB7
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x????
|
||||
GL_VERTEX_PROGRAM_CALLBACK_MESA 0x????
|
||||
GL_FRAGMENT_PROGRAM_POSITION_MESA 0x????
|
||||
GL_VERTEX_PROGRAM_POSITION_MESA 0x????
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x????
|
||||
GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x????
|
||||
GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x????
|
||||
GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x????
|
||||
|
||||
GL_MESAX_texture_stack:
|
||||
GL_TEXTURE_1D_STACK_MESAX 0x8759
|
||||
@@ -63,11 +63,6 @@ GL_MESAX_texture_stack:
|
||||
GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D
|
||||
GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E
|
||||
|
||||
GL_MESA_tile_raster_order
|
||||
GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8
|
||||
GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9
|
||||
GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA
|
||||
|
||||
EGL_MESA_drm_image
|
||||
EGL_DRM_BUFFER_FORMAT_MESA 0x31D0
|
||||
EGL_DRM_BUFFER_USE_MESA 0x31D1
|
||||
|
@@ -151,18 +151,6 @@ Whenever possible and applicable, test the patch with
|
||||
to check for regressions.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
As mentioned at the begining, patches should be bisectable.
|
||||
A good way to test this is to make use of the `git rebase` command,
|
||||
to run your tests on each commit. Assuming your branch is based off
|
||||
<code>origin/master</code>, you can run:
|
||||
<pre>
|
||||
$ git rebase --interactive --exec "make check" origin/master
|
||||
</pre>
|
||||
replacing <code>"make check"</code> with whatever other test you want to
|
||||
run.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="mailing">Mailing Patches</h2>
|
||||
|
||||
|
@@ -70,7 +70,6 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL) (EGLDisplay dpy, st
|
||||
#ifndef EGL_WL_create_wayland_buffer_from_image
|
||||
#define EGL_WL_create_wayland_buffer_from_image 1
|
||||
|
||||
struct wl_buffer;
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI struct wl_buffer * EGLAPIENTRY eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, EGLImageKHR image);
|
||||
#endif
|
||||
|
@@ -97,7 +97,8 @@ typedef void *EGLNativeWindowType;
|
||||
|
||||
#elif defined(__ANDROID__) || defined(ANDROID)
|
||||
|
||||
struct ANativeWindow;
|
||||
#include <android/native_window.h>
|
||||
|
||||
struct egl_native_pixmap_t;
|
||||
|
||||
typedef struct ANativeWindow* EGLNativeWindowType;
|
||||
|
@@ -578,17 +578,15 @@ GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, void *i
|
||||
#define GL_TEXTURE_DEPTH_SIZE 0x884A
|
||||
#define GL_TEXTURE_COMPARE_MODE 0x884C
|
||||
#define GL_TEXTURE_COMPARE_FUNC 0x884D
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
|
||||
@@ -2895,42 +2893,6 @@ GLAPI void APIENTRY glTextureBarrier (void);
|
||||
#endif
|
||||
#endif /* GL_VERSION_4_5 */
|
||||
|
||||
#ifndef GL_VERSION_4_6
|
||||
#define GL_VERSION_4_6 1
|
||||
#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
|
||||
#define GL_SPIR_V_BINARY 0x9552
|
||||
#define GL_PARAMETER_BUFFER 0x80EE
|
||||
#define GL_PARAMETER_BUFFER_BINDING 0x80EF
|
||||
#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
|
||||
#define GL_VERTICES_SUBMITTED 0x82EE
|
||||
#define GL_PRIMITIVES_SUBMITTED 0x82EF
|
||||
#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
|
||||
#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
|
||||
#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
|
||||
#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
|
||||
#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
|
||||
#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
|
||||
#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
|
||||
#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
|
||||
#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
|
||||
#define GL_SPIR_V_EXTENSIONS 0x9553
|
||||
#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
|
||||
#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
|
||||
#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
|
||||
#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
|
||||
#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
|
||||
typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectCount (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glPolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#endif
|
||||
#endif /* GL_VERSION_4_6 */
|
||||
|
||||
#ifndef GL_ARB_ES2_compatibility
|
||||
#define GL_ARB_ES2_compatibility 1
|
||||
#endif /* GL_ARB_ES2_compatibility */
|
||||
@@ -3344,17 +3306,19 @@ GLAPI void APIENTRY glProgramUniform4ui64vARB (GLuint program, GLint location, G
|
||||
|
||||
#ifndef GL_ARB_imaging
|
||||
#define GL_ARB_imaging 1
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#endif /* GL_ARB_imaging */
|
||||
|
||||
#ifndef GL_ARB_indirect_parameters
|
||||
#define GL_ARB_indirect_parameters 1
|
||||
#define GL_PARAMETER_BUFFER_ARB 0x80EE
|
||||
#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
#endif
|
||||
#endif /* GL_ARB_indirect_parameters */
|
||||
|
||||
@@ -3432,10 +3396,6 @@ GLAPI void APIENTRY glMaxShaderCompilerThreadsARB (GLuint count);
|
||||
#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF
|
||||
#endif /* GL_ARB_pixel_buffer_object */
|
||||
|
||||
#ifndef GL_ARB_polygon_offset_clamp
|
||||
#define GL_ARB_polygon_offset_clamp 1
|
||||
#endif /* GL_ARB_polygon_offset_clamp */
|
||||
|
||||
#ifndef GL_ARB_post_depth_coverage
|
||||
#define GL_ARB_post_depth_coverage 1
|
||||
#endif /* GL_ARB_post_depth_coverage */
|
||||
@@ -3665,10 +3625,6 @@ GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xo
|
||||
#define GL_ARB_sparse_texture_clamp 1
|
||||
#endif /* GL_ARB_sparse_texture_clamp */
|
||||
|
||||
#ifndef GL_ARB_spirv_extensions
|
||||
#define GL_ARB_spirv_extensions 1
|
||||
#endif /* GL_ARB_spirv_extensions */
|
||||
|
||||
#ifndef GL_ARB_stencil_texturing
|
||||
#define GL_ARB_stencil_texturing 1
|
||||
#endif /* GL_ARB_stencil_texturing */
|
||||
@@ -3734,10 +3690,6 @@ GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint
|
||||
#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F
|
||||
#endif /* GL_ARB_texture_cube_map_array */
|
||||
|
||||
#ifndef GL_ARB_texture_filter_anisotropic
|
||||
#define GL_ARB_texture_filter_anisotropic 1
|
||||
#endif /* GL_ARB_texture_filter_anisotropic */
|
||||
|
||||
#ifndef GL_ARB_texture_filter_minmax
|
||||
#define GL_ARB_texture_filter_minmax 1
|
||||
#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
|
||||
@@ -3899,16 +3851,6 @@ GLAPI void APIENTRY glBlendBarrierKHR (void);
|
||||
#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 (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void 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 */
|
||||
@@ -4810,12 +4752,6 @@ GLAPI void APIENTRY glBlendBarrierNV (void);
|
||||
#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
|
||||
#endif /* GL_NV_blend_equation_advanced_coherent */
|
||||
|
||||
#ifndef GL_NV_blend_minmax_factor
|
||||
#define GL_NV_blend_minmax_factor 1
|
||||
#define GL_FACTOR_MIN_AMD 0x901C
|
||||
#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
|
||||
@@ -5506,10 +5442,6 @@ GLAPI void APIENTRY glTextureBarrierNV (void);
|
||||
#endif
|
||||
#endif /* GL_NV_texture_barrier */
|
||||
|
||||
#ifndef GL_NV_texture_rectangle_compressed
|
||||
#define GL_NV_texture_rectangle_compressed 1
|
||||
#endif /* GL_NV_texture_rectangle_compressed */
|
||||
|
||||
#ifndef GL_NV_uniform_buffer_unified_memory
|
||||
#define GL_NV_uniform_buffer_unified_memory 1
|
||||
#define GL_UNIFORM_BUFFER_UNIFIED_NV 0x936E
|
||||
|
@@ -51,7 +51,7 @@ extern "C" {
|
||||
#define GLAPI extern
|
||||
#endif
|
||||
|
||||
#define GL_GLEXT_VERSION 20171010
|
||||
#define GL_GLEXT_VERSION 20170608
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gl
|
||||
@@ -353,17 +353,15 @@ GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m);
|
||||
#define GL_TEXTURE_FILTER_CONTROL 0x8500
|
||||
#define GL_DEPTH_TEXTURE_MODE 0x884B
|
||||
#define GL_COMPARE_R_TO_TEXTURE 0x884E
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
#define GL_CONSTANT_COLOR 0x8001
|
||||
#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
|
||||
#define GL_CONSTANT_ALPHA 0x8003
|
||||
#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
|
||||
#define GL_FUNC_ADD 0x8006
|
||||
#define GL_FUNC_REVERSE_SUBTRACT 0x800B
|
||||
#define GL_FUNC_SUBTRACT 0x800A
|
||||
#define GL_MIN 0x8007
|
||||
#define GL_MAX 0x8008
|
||||
typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei drawcount);
|
||||
@@ -2867,42 +2865,6 @@ GLAPI void APIENTRY glTextureBarrier (void);
|
||||
#endif
|
||||
#endif /* GL_VERSION_4_5 */
|
||||
|
||||
#ifndef GL_VERSION_4_6
|
||||
#define GL_VERSION_4_6 1
|
||||
#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
|
||||
#define GL_SPIR_V_BINARY 0x9552
|
||||
#define GL_PARAMETER_BUFFER 0x80EE
|
||||
#define GL_PARAMETER_BUFFER_BINDING 0x80EF
|
||||
#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
|
||||
#define GL_VERTICES_SUBMITTED 0x82EE
|
||||
#define GL_PRIMITIVES_SUBMITTED 0x82EF
|
||||
#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
|
||||
#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
|
||||
#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
|
||||
#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
|
||||
#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
|
||||
#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
|
||||
#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
|
||||
#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
|
||||
#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
|
||||
#define GL_SPIR_V_EXTENSIONS 0x9553
|
||||
#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
|
||||
#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
|
||||
#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
|
||||
#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
|
||||
#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
|
||||
typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC) (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC) (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glSpecializeShader (GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectCount (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectCount (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glPolygonOffsetClamp (GLfloat factor, GLfloat units, GLfloat clamp);
|
||||
#endif
|
||||
#endif /* GL_VERSION_4_6 */
|
||||
|
||||
#ifndef GL_ARB_ES2_compatibility
|
||||
#define GL_ARB_ES2_compatibility 1
|
||||
#endif /* GL_ARB_ES2_compatibility */
|
||||
@@ -3506,6 +3468,8 @@ typedef unsigned short GLhalfARB;
|
||||
|
||||
#ifndef GL_ARB_imaging
|
||||
#define GL_ARB_imaging 1
|
||||
#define GL_BLEND_COLOR 0x8005
|
||||
#define GL_BLEND_EQUATION 0x8009
|
||||
#define GL_CONVOLUTION_1D 0x8010
|
||||
#define GL_CONVOLUTION_2D 0x8011
|
||||
#define GL_SEPARABLE_2D 0x8012
|
||||
@@ -3642,11 +3606,11 @@ GLAPI void APIENTRY glResetMinmax (GLenum target);
|
||||
#define GL_ARB_indirect_parameters 1
|
||||
#define GL_PARAMETER_BUFFER_ARB 0x80EE
|
||||
#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80EF
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC) (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC) (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawArraysIndirectCountARB (GLenum mode, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
GLAPI void APIENTRY glMultiDrawElementsIndirectCountARB (GLenum mode, GLenum type, GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
|
||||
#endif
|
||||
#endif /* GL_ARB_indirect_parameters */
|
||||
|
||||
@@ -3923,10 +3887,6 @@ GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params);
|
||||
#define GL_COORD_REPLACE_ARB 0x8862
|
||||
#endif /* GL_ARB_point_sprite */
|
||||
|
||||
#ifndef GL_ARB_polygon_offset_clamp
|
||||
#define GL_ARB_polygon_offset_clamp 1
|
||||
#endif /* GL_ARB_polygon_offset_clamp */
|
||||
|
||||
#ifndef GL_ARB_post_depth_coverage
|
||||
#define GL_ARB_post_depth_coverage 1
|
||||
#endif /* GL_ARB_post_depth_coverage */
|
||||
@@ -4330,10 +4290,6 @@ GLAPI void APIENTRY glTexPageCommitmentARB (GLenum target, GLint level, GLint xo
|
||||
#define GL_ARB_sparse_texture_clamp 1
|
||||
#endif /* GL_ARB_sparse_texture_clamp */
|
||||
|
||||
#ifndef GL_ARB_spirv_extensions
|
||||
#define GL_ARB_spirv_extensions 1
|
||||
#endif /* GL_ARB_spirv_extensions */
|
||||
|
||||
#ifndef GL_ARB_stencil_texturing
|
||||
#define GL_ARB_stencil_texturing 1
|
||||
#endif /* GL_ARB_stencil_texturing */
|
||||
@@ -4486,10 +4442,6 @@ GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, void
|
||||
#define GL_DOT3_RGBA_ARB 0x86AF
|
||||
#endif /* GL_ARB_texture_env_dot3 */
|
||||
|
||||
#ifndef GL_ARB_texture_filter_anisotropic
|
||||
#define GL_ARB_texture_filter_anisotropic 1
|
||||
#endif /* GL_ARB_texture_filter_anisotropic */
|
||||
|
||||
#ifndef GL_ARB_texture_filter_minmax
|
||||
#define GL_ARB_texture_filter_minmax 1
|
||||
#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
|
||||
@@ -4995,16 +4947,6 @@ GLAPI void APIENTRY glBlendBarrierKHR (void);
|
||||
#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 (APIENTRYP PFNGLMAXSHADERCOMPILERTHREADSKHRPROC) (GLuint count);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void 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 */
|
||||
@@ -5709,10 +5651,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_image_load_store_lod
|
||||
#define GL_AMD_shader_image_load_store_lod 1
|
||||
#endif /* GL_AMD_shader_image_load_store_lod */
|
||||
|
||||
#ifndef GL_AMD_shader_stencil_export
|
||||
#define GL_AMD_shader_stencil_export 1
|
||||
#endif /* GL_AMD_shader_stencil_export */
|
||||
@@ -7307,17 +7245,6 @@ GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint en
|
||||
#endif
|
||||
#endif /* GL_EXT_draw_range_elements */
|
||||
|
||||
#ifndef GL_EXT_external_buffer
|
||||
#define GL_EXT_external_buffer 1
|
||||
typedef void *GLeglClientBufferEXT;
|
||||
typedef void (APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
GLAPI void APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
#endif
|
||||
#endif /* GL_EXT_external_buffer */
|
||||
|
||||
#ifndef GL_EXT_fog_coord
|
||||
#define GL_EXT_fog_coord 1
|
||||
#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
|
||||
@@ -9224,13 +9151,6 @@ GLAPI void APIENTRY glResizeBuffersMESA (void);
|
||||
#define GL_MESA_shader_integer_functions 1
|
||||
#endif /* GL_MESA_shader_integer_functions */
|
||||
|
||||
#ifndef GL_MESA_tile_raster_order
|
||||
#define GL_MESA_tile_raster_order 1
|
||||
#define GL_TILE_RASTER_ORDER_FIXED_MESA 0x8BB8
|
||||
#define GL_TILE_RASTER_ORDER_INCREASING_X_MESA 0x8BB9
|
||||
#define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA 0x8BBA
|
||||
#endif /* GL_MESA_tile_raster_order */
|
||||
|
||||
#ifndef GL_MESA_window_pos
|
||||
#define GL_MESA_window_pos 1
|
||||
typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
|
||||
@@ -9457,10 +9377,6 @@ GLAPI void APIENTRY glBlendBarrierNV (void);
|
||||
#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
|
||||
#endif /* GL_NV_blend_equation_advanced_coherent */
|
||||
|
||||
#ifndef GL_NV_blend_minmax_factor
|
||||
#define GL_NV_blend_minmax_factor 1
|
||||
#endif /* GL_NV_blend_minmax_factor */
|
||||
|
||||
#ifndef GL_NV_blend_square
|
||||
#define GL_NV_blend_square 1
|
||||
#endif /* GL_NV_blend_square */
|
||||
@@ -10541,32 +10457,6 @@ GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index);
|
||||
#endif
|
||||
#endif /* GL_NV_primitive_restart */
|
||||
|
||||
#ifndef GL_NV_query_resource
|
||||
#define GL_NV_query_resource 1
|
||||
#define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV 0x9540
|
||||
#define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV 0x9542
|
||||
#define GL_QUERY_RESOURCE_SYS_RESERVED_NV 0x9544
|
||||
#define GL_QUERY_RESOURCE_TEXTURE_NV 0x9545
|
||||
#define GL_QUERY_RESOURCE_RENDERBUFFER_NV 0x9546
|
||||
#define GL_QUERY_RESOURCE_BUFFEROBJECT_NV 0x9547
|
||||
typedef GLint (APIENTRYP PFNGLQUERYRESOURCENVPROC) (GLenum queryType, GLint tagId, GLuint bufSize, GLint *buffer);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI GLint APIENTRY glQueryResourceNV (GLenum queryType, GLint tagId, GLuint bufSize, GLint *buffer);
|
||||
#endif
|
||||
#endif /* GL_NV_query_resource */
|
||||
|
||||
#ifndef GL_NV_query_resource_tag
|
||||
#define GL_NV_query_resource_tag 1
|
||||
typedef void (APIENTRYP PFNGLGENQUERYRESOURCETAGNVPROC) (GLsizei n, GLint *tagIds);
|
||||
typedef void (APIENTRYP PFNGLDELETEQUERYRESOURCETAGNVPROC) (GLsizei n, const GLint *tagIds);
|
||||
typedef void (APIENTRYP PFNGLQUERYRESOURCETAGNVPROC) (GLint tagId, const GLchar *tagString);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GLAPI void APIENTRY glGenQueryResourceTagNV (GLsizei n, GLint *tagIds);
|
||||
GLAPI void APIENTRY glDeleteQueryResourceTagNV (GLsizei n, const GLint *tagIds);
|
||||
GLAPI void APIENTRY glQueryResourceTagNV (GLint tagId, const GLchar *tagString);
|
||||
#endif
|
||||
#endif /* GL_NV_query_resource_tag */
|
||||
|
||||
#ifndef GL_NV_register_combiners
|
||||
#define GL_NV_register_combiners 1
|
||||
#define GL_REGISTER_COMBINERS_NV 0x8522
|
||||
@@ -10843,10 +10733,6 @@ GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenu
|
||||
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8
|
||||
#endif /* GL_NV_texture_rectangle */
|
||||
|
||||
#ifndef GL_NV_texture_rectangle_compressed
|
||||
#define GL_NV_texture_rectangle_compressed 1
|
||||
#endif /* GL_NV_texture_rectangle_compressed */
|
||||
|
||||
#ifndef GL_NV_texture_shader
|
||||
#define GL_NV_texture_shader 1
|
||||
#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C
|
||||
|
@@ -34,7 +34,7 @@ extern "C" {
|
||||
** https://github.com/KhronosGroup/OpenGL-Registry
|
||||
*/
|
||||
|
||||
#define GLX_GLXEXT_VERSION 20170728
|
||||
#define GLX_GLXEXT_VERSION 20170606
|
||||
|
||||
/* Generated C header for:
|
||||
* API: glx
|
||||
|
@@ -48,8 +48,6 @@ typedef unsigned int drm_drawable_t;
|
||||
typedef struct drm_clip_rect drm_clip_rect_t;
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* \name DRI interface structures
|
||||
*
|
||||
@@ -726,26 +724,11 @@ struct __DRIuseInvalidateExtensionRec {
|
||||
#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02
|
||||
#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04
|
||||
|
||||
/* __DRI_ATTRIB_SWAP_METHOD */
|
||||
/* Note that with the exception of __DRI_ATTRIB_SWAP_NONE, we need to define
|
||||
* the same tokens as GLX. This is because old and current X servers will
|
||||
* transmit the driconf value grabbed from the AIGLX driver untranslated as
|
||||
* the GLX fbconfig value. __DRI_ATTRIB_SWAP_NONE is only used by dri drivers
|
||||
* to signal to the dri core that the driconfig is single-buffer.
|
||||
*/
|
||||
#define __DRI_ATTRIB_SWAP_NONE 0x0000
|
||||
#define __DRI_ATTRIB_SWAP_EXCHANGE 0x8061
|
||||
#define __DRI_ATTRIB_SWAP_COPY 0x8062
|
||||
#define __DRI_ATTRIB_SWAP_UNDEFINED 0x8063
|
||||
|
||||
/**
|
||||
* This extension defines the core DRI functionality.
|
||||
*
|
||||
* Version >= 2 indicates that getConfigAttrib with __DRI_ATTRIB_SWAP_METHOD
|
||||
* returns a reliable value.
|
||||
*/
|
||||
#define __DRI_CORE "DRI_Core"
|
||||
#define __DRI_CORE_VERSION 2
|
||||
#define __DRI_CORE_VERSION 1
|
||||
|
||||
struct __DRIcoreExtensionRec {
|
||||
__DRIextension base;
|
||||
@@ -984,15 +967,7 @@ struct __DRIbufferRec {
|
||||
};
|
||||
|
||||
#define __DRI_DRI2_LOADER "DRI_DRI2Loader"
|
||||
#define __DRI_DRI2_LOADER_VERSION 4
|
||||
|
||||
enum dri_loader_cap {
|
||||
/* Whether the loader handles RGBA channel ordering correctly. If not,
|
||||
* only BGRA ordering can be exposed.
|
||||
*/
|
||||
DRI_LOADER_CAP_RGBA_ORDERING,
|
||||
};
|
||||
|
||||
#define __DRI_DRI2_LOADER_VERSION 3
|
||||
struct __DRIdri2LoaderExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
@@ -1042,18 +1017,6 @@ struct __DRIdri2LoaderExtensionRec {
|
||||
int *width, int *height,
|
||||
unsigned int *attachments, int count,
|
||||
int *out_count, void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Return a loader capability value. If the loader doesn't know the enum,
|
||||
* it will return 0.
|
||||
*
|
||||
* \param loaderPrivate The last parameter of createNewScreen or
|
||||
* createNewScreen2.
|
||||
* \param cap See the enum.
|
||||
*
|
||||
* \since 4
|
||||
*/
|
||||
unsigned (*getCapability)(void *loaderPrivate, enum dri_loader_cap cap);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1100,12 +1063,6 @@ struct __DRIdri2LoaderExtensionRec {
|
||||
#define __DRI_CTX_RESET_LOSE_CONTEXT 1
|
||||
/*@}*/
|
||||
|
||||
#define __DRI_CTX_ATTRIB_PRIORITY 4
|
||||
|
||||
#define __DRI_CTX_PRIORITY_LOW 0
|
||||
#define __DRI_CTX_PRIORITY_MEDIUM 1
|
||||
#define __DRI_CTX_PRIORITY_HIGH 2
|
||||
|
||||
/**
|
||||
* \name Reasons that __DRIdri2Extension::createContextAttribs might fail
|
||||
*/
|
||||
@@ -1186,7 +1143,7 @@ struct __DRIdri2ExtensionRec {
|
||||
* extensions.
|
||||
*/
|
||||
#define __DRI_IMAGE "DRI_IMAGE"
|
||||
#define __DRI_IMAGE_VERSION 17
|
||||
#define __DRI_IMAGE_VERSION 15
|
||||
|
||||
/**
|
||||
* These formats correspond to the similarly named MESA_FORMAT_*
|
||||
@@ -1198,7 +1155,7 @@ struct __DRIdri2ExtensionRec {
|
||||
* by the driver (YUV planar formats) but serve as a base image for
|
||||
* creating sub-images for the different planes within the image.
|
||||
*
|
||||
* R8, GR88 and NONE should not be used with createImageFromName or
|
||||
* R8, GR88 and NONE should not be used with createImageFormName or
|
||||
* createImage, and are returned by query from sub images created with
|
||||
* createImageFromNames (NONE, see above) and fromPlane (R8 & GR88).
|
||||
*/
|
||||
@@ -1219,7 +1176,7 @@ struct __DRIdri2ExtensionRec {
|
||||
|
||||
#define __DRI_IMAGE_USE_SHARE 0x0001
|
||||
#define __DRI_IMAGE_USE_SCANOUT 0x0002
|
||||
#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Deprecated */
|
||||
#define __DRI_IMAGE_USE_CURSOR 0x0004 /* Depricated */
|
||||
#define __DRI_IMAGE_USE_LINEAR 0x0008
|
||||
/* The buffer will only be read by an external process after SwapBuffers,
|
||||
* in contrary to gbm buffers, front buffers and fake front buffers, which
|
||||
@@ -1366,13 +1323,6 @@ enum __DRIChromaSiting {
|
||||
#define __BLIT_FLAG_FLUSH 0x0001
|
||||
#define __BLIT_FLAG_FINISH 0x0002
|
||||
|
||||
/**
|
||||
* queryDmaBufFormatModifierAttribs attributes
|
||||
*/
|
||||
|
||||
/* Available in version 16 */
|
||||
#define __DRI_IMAGE_FORMAT_MODIFIER_ATTRIB_PLANE_COUNT 0x0001
|
||||
|
||||
typedef struct __DRIimageRec __DRIimage;
|
||||
typedef struct __DRIimageExtensionRec __DRIimageExtension;
|
||||
struct __DRIimageExtensionRec {
|
||||
@@ -1383,7 +1333,6 @@ struct __DRIimageExtensionRec {
|
||||
int name, int pitch,
|
||||
void *loaderPrivate);
|
||||
|
||||
/* Deprecated since version 17; see createImageFromRenderbuffer2 */
|
||||
__DRIimage *(*createImageFromRenderbuffer)(__DRIcontext *context,
|
||||
int renderbuffer,
|
||||
void *loaderPrivate);
|
||||
@@ -1614,40 +1563,6 @@ struct __DRIimageExtensionRec {
|
||||
int max, uint64_t *modifiers,
|
||||
unsigned int *external_only,
|
||||
int *count);
|
||||
|
||||
/**
|
||||
* dmabuf format modifier attribute query for a given format and modifier.
|
||||
*
|
||||
* \param fourcc The format to query. If this format is not supported by
|
||||
* the driver, return false.
|
||||
* \param modifier The modifier to query. If this format+modifier is not
|
||||
* supported by the driver, return false.
|
||||
* \param attrib The __DRI_IMAGE_FORMAT_MODIFIER_ATTRIB to query.
|
||||
* \param value A pointer to where to store the result of the query.
|
||||
*
|
||||
* Returns true upon success.
|
||||
*
|
||||
* \since 16
|
||||
*/
|
||||
GLboolean (*queryDmaBufFormatModifierAttribs)(__DRIscreen *screen,
|
||||
uint32_t fourcc, uint64_t modifier,
|
||||
int attrib, uint64_t *value);
|
||||
|
||||
/**
|
||||
* Create a DRI image from the given renderbuffer.
|
||||
*
|
||||
* \param context the current DRI context
|
||||
* \param renderbuffer the GL name of the renderbuffer
|
||||
* \param loaderPrivate for callbacks into the loader related to the image
|
||||
* \param error will be set to one of __DRI_IMAGE_ERROR_xxx
|
||||
* \return the newly created image on success, or NULL otherwise
|
||||
*
|
||||
* \since 17
|
||||
*/
|
||||
__DRIimage *(*createImageFromRenderbuffer2)(__DRIcontext *context,
|
||||
int renderbuffer,
|
||||
void *loaderPrivate,
|
||||
unsigned *error);
|
||||
};
|
||||
|
||||
|
||||
@@ -1720,29 +1635,13 @@ typedef struct __DRInoErrorExtensionRec {
|
||||
*
|
||||
* This extension provides the XML string containing driver options for use by
|
||||
* the loader in supporting the driconf application.
|
||||
*
|
||||
* v2:
|
||||
* - Add the getXml getter function which allows the driver more flexibility in
|
||||
* how the XML is provided.
|
||||
* - Deprecate the direct xml pointer. It is only provided as a fallback for
|
||||
* older versions of libGL and must not be used by clients that are aware of
|
||||
* the newer version. Future driver versions may set it to NULL.
|
||||
*/
|
||||
#define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions"
|
||||
#define __DRI_CONFIG_OPTIONS_VERSION 2
|
||||
#define __DRI_CONFIG_OPTIONS_VERSION 1
|
||||
|
||||
typedef struct __DRIconfigOptionsExtensionRec {
|
||||
__DRIextension base;
|
||||
const char *xml; /**< deprecated since v2, use getXml instead */
|
||||
|
||||
/**
|
||||
* Get an XML string that describes available driver options for use by a
|
||||
* config application.
|
||||
*
|
||||
* The returned string must be heap-allocated. The caller is responsible for
|
||||
* freeing it.
|
||||
*/
|
||||
char *(*getXml)(const char *driver_name);
|
||||
const char *xml;
|
||||
} __DRIconfigOptionsExtension;
|
||||
|
||||
/**
|
||||
@@ -1788,14 +1687,6 @@ typedef struct __DRIDriverVtableExtensionRec {
|
||||
*/
|
||||
#define __DRI2_RENDERER_HAS_FRAMEBUFFER_SRGB 0x000c
|
||||
|
||||
/* Bitmaks of supported/available context priorities - must match
|
||||
* __EGL_CONTEXT_PRIORITY_LOW_BIT et al
|
||||
*/
|
||||
#define __DRI2_RENDERER_HAS_CONTEXT_PRIORITY 0x000d
|
||||
#define __DRI2_RENDERER_HAS_CONTEXT_PRIORITY_LOW (1 << 0)
|
||||
#define __DRI2_RENDERER_HAS_CONTEXT_PRIORITY_MEDIUM (1 << 1)
|
||||
#define __DRI2_RENDERER_HAS_CONTEXT_PRIORITY_HIGH (1 << 2)
|
||||
|
||||
typedef struct __DRI2rendererQueryExtensionRec __DRI2rendererQueryExtension;
|
||||
struct __DRI2rendererQueryExtensionRec {
|
||||
__DRIextension base;
|
||||
@@ -1820,7 +1711,7 @@ struct __DRIimageList {
|
||||
};
|
||||
|
||||
#define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER"
|
||||
#define __DRI_IMAGE_LOADER_VERSION 3
|
||||
#define __DRI_IMAGE_LOADER_VERSION 1
|
||||
|
||||
struct __DRIimageLoaderExtensionRec {
|
||||
__DRIextension base;
|
||||
@@ -1856,28 +1747,6 @@ struct __DRIimageLoaderExtensionRec {
|
||||
* into __DRIdri2ExtensionRec::createNewDrawable
|
||||
*/
|
||||
void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Return a loader capability value. If the loader doesn't know the enum,
|
||||
* it will return 0.
|
||||
*
|
||||
* \since 2
|
||||
*/
|
||||
unsigned (*getCapability)(void *loaderPrivate, enum dri_loader_cap cap);
|
||||
|
||||
/**
|
||||
* Flush swap buffers
|
||||
*
|
||||
* Make sure any outstanding swap buffers have been submitted to the
|
||||
* device.
|
||||
*
|
||||
* \param driDrawable Drawable whose swaps need to be flushed
|
||||
* \param loaderPrivate Loader's private data that was previously passed
|
||||
* into __DRIdri2ExtensionRec::createNewDrawable
|
||||
*
|
||||
* \since 3
|
||||
*/
|
||||
void (*flushSwapBuffers)(__DRIdrawable *driDrawable, void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -58,16 +58,12 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* Forward declarations to avoid inclusion of GL/glx.h */
|
||||
#ifndef GLX_H
|
||||
struct _XDisplay;
|
||||
struct __GLXcontextRec;
|
||||
#endif
|
||||
|
||||
/* Forward declarations to avoid inclusion of EGL/egl.h */
|
||||
#ifndef __egl_h_
|
||||
typedef void *EGLDisplay;
|
||||
typedef void *EGLContext;
|
||||
#endif
|
||||
|
||||
/** Returned error codes. */
|
||||
enum {
|
||||
|
@@ -39,7 +39,7 @@ extern "C" {
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#define WGL_WGLEXT_VERSION 20170817
|
||||
#define WGL_WGLEXT_VERSION 20170606
|
||||
|
||||
/* Generated C header for:
|
||||
* API: wgl
|
||||
|
@@ -38,7 +38,7 @@ extern "C" {
|
||||
#define GL_APIENTRYP GL_APIENTRY*
|
||||
#endif
|
||||
|
||||
/* Generated on date 20170804 */
|
||||
/* Generated on date 20170606 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: gles2
|
||||
@@ -324,12 +324,12 @@ GL_APICALL GLboolean GL_APIENTRY glIsEnablediOES (GLenum target, GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXOESPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexOES (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexOES (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
|
||||
GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
|
||||
GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexOES (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
|
||||
#endif
|
||||
#endif /* GL_OES_draw_elements_base_vertex */
|
||||
|
||||
@@ -1311,10 +1311,12 @@ GL_APICALL GLboolean GL_APIENTRY glIsEnablediEXT (GLenum target, GLuint index);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
|
||||
typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
GL_APICALL void GL_APIENTRY glDrawRangeElementsBaseVertexEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseVertexEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex);
|
||||
GL_APICALL void GL_APIENTRY glMultiDrawElementsBaseVertexEXT (GLenum mode, const GLsizei *count, GLenum type, const void *const*indices, GLsizei primcount, const GLint *basevertex);
|
||||
#endif
|
||||
#endif /* GL_EXT_draw_elements_base_vertex */
|
||||
|
||||
@@ -1338,17 +1340,6 @@ GL_APICALL void GL_APIENTRY glDrawTransformFeedbackInstancedEXT (GLenum mode, GL
|
||||
#endif
|
||||
#endif /* GL_EXT_draw_transform_feedback */
|
||||
|
||||
#ifndef GL_EXT_external_buffer
|
||||
#define GL_EXT_external_buffer 1
|
||||
typedef void *GLeglClientBufferEXT;
|
||||
typedef void (GL_APIENTRYP PFNGLBUFFERSTORAGEEXTERNALEXTPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
typedef void (GL_APIENTRYP PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glBufferStorageExternalEXT (GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
GL_APICALL void GL_APIENTRY glNamedBufferStorageExternalEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
|
||||
#endif
|
||||
#endif /* GL_EXT_external_buffer */
|
||||
|
||||
#ifndef GL_EXT_float_blend
|
||||
#define GL_EXT_float_blend 1
|
||||
#endif /* GL_EXT_float_blend */
|
||||
@@ -2010,42 +2001,18 @@ GL_APICALL void GL_APIENTRY glTexBufferRangeEXT (GLenum target, GLenum internalf
|
||||
#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT 0x8F69
|
||||
#endif /* GL_EXT_texture_compression_astc_decode_mode */
|
||||
|
||||
#ifndef GL_EXT_texture_compression_bptc
|
||||
#define GL_EXT_texture_compression_bptc 1
|
||||
#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D
|
||||
#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT 0x8E8E
|
||||
#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT 0x8E8F
|
||||
#endif /* GL_EXT_texture_compression_bptc */
|
||||
|
||||
#ifndef GL_EXT_texture_compression_dxt1
|
||||
#define GL_EXT_texture_compression_dxt1 1
|
||||
#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
|
||||
#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1
|
||||
#endif /* GL_EXT_texture_compression_dxt1 */
|
||||
|
||||
#ifndef GL_EXT_texture_compression_rgtc
|
||||
#define GL_EXT_texture_compression_rgtc 1
|
||||
#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
|
||||
#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
|
||||
#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
|
||||
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE
|
||||
#endif /* GL_EXT_texture_compression_rgtc */
|
||||
|
||||
#ifndef GL_EXT_texture_compression_s3tc
|
||||
#define GL_EXT_texture_compression_s3tc 1
|
||||
#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
|
||||
#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
|
||||
#endif /* GL_EXT_texture_compression_s3tc */
|
||||
|
||||
#ifndef GL_EXT_texture_compression_s3tc_srgb
|
||||
#define GL_EXT_texture_compression_s3tc_srgb 1
|
||||
#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
|
||||
#endif /* GL_EXT_texture_compression_s3tc_srgb */
|
||||
|
||||
#ifndef GL_EXT_texture_cube_map_array
|
||||
#define GL_EXT_texture_cube_map_array 1
|
||||
#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT 0x9009
|
||||
@@ -2438,12 +2405,6 @@ GL_APICALL void GL_APIENTRY glBlendBarrierNV (void);
|
||||
#define GL_BLEND_ADVANCED_COHERENT_NV 0x9285
|
||||
#endif /* GL_NV_blend_equation_advanced_coherent */
|
||||
|
||||
#ifndef GL_NV_blend_minmax_factor
|
||||
#define GL_NV_blend_minmax_factor 1
|
||||
#define GL_FACTOR_MIN_AMD 0x901C
|
||||
#define GL_FACTOR_MAX_AMD 0x901D
|
||||
#endif /* GL_NV_blend_minmax_factor */
|
||||
|
||||
#ifndef GL_NV_conditional_render
|
||||
#define GL_NV_conditional_render 1
|
||||
#define GL_QUERY_WAIT_NV 0x8E13
|
||||
@@ -3117,14 +3078,6 @@ GL_APICALL void GL_APIENTRY glGetProgramResourcefvNV (GLuint program, GLenum pro
|
||||
#define GL_SHARED_EDGE_NV 0xC0
|
||||
#endif /* GL_NV_path_rendering_shared_edge */
|
||||
|
||||
#ifndef GL_NV_pixel_buffer_object
|
||||
#define GL_NV_pixel_buffer_object 1
|
||||
#define GL_PIXEL_PACK_BUFFER_NV 0x88EB
|
||||
#define GL_PIXEL_UNPACK_BUFFER_NV 0x88EC
|
||||
#define GL_PIXEL_PACK_BUFFER_BINDING_NV 0x88ED
|
||||
#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88EF
|
||||
#endif /* GL_NV_pixel_buffer_object */
|
||||
|
||||
#ifndef GL_NV_polygon_mode
|
||||
#define GL_NV_polygon_mode 1
|
||||
#define GL_POLYGON_MODE_NV 0x0B40
|
||||
|
@@ -3,9 +3,6 @@ required by the anv & i965 drivers to communicate with the kernel.
|
||||
Whenever either of those driver needs new definitions for new kernel
|
||||
APIs, these files should be updated.
|
||||
|
||||
These files in master should only be updated once the changes have landed
|
||||
in the drm-next tree.
|
||||
|
||||
You can copy files installed after running this from the kernel
|
||||
repository, at version the drivers require :
|
||||
|
||||
@@ -13,9 +10,9 @@ $ make headers_install INSTALL_HDR_PATH=/path/to/install
|
||||
|
||||
The last update was done at the following kernel commit :
|
||||
|
||||
commit 7846b12fe0b5feab5446d892f41b5140c1419109
|
||||
Merge: 7ebdb0d d78acfe
|
||||
commit 6d61e70ccc21606ffb8a0a03bd3aba24f659502b
|
||||
Merge: 338ffbf7cb5e c0bc126f97fb
|
||||
Author: Dave Airlie <airlied@redhat.com>
|
||||
Date: Tue Aug 29 10:38:14 2017 +1000
|
||||
Date: Tue Jun 27 07:24:49 2017 +1000
|
||||
|
||||
Merge branch 'drm-vmwgfx-next' of git://people.freedesktop.org/~syeh/repos_linux into drm-next
|
||||
Backmerge tag 'v4.12-rc7' into drm-next
|
||||
|
@@ -694,7 +694,6 @@ struct drm_prime_handle {
|
||||
|
||||
struct drm_syncobj_create {
|
||||
__u32 handle;
|
||||
#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
@@ -713,24 +712,6 @@ struct drm_syncobj_handle {
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
|
||||
#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
|
||||
struct drm_syncobj_wait {
|
||||
__u64 handles;
|
||||
/* absolute timeout */
|
||||
__s64 timeout_nsec;
|
||||
__u32 count_handles;
|
||||
__u32 flags;
|
||||
__u32 first_signaled; /* only valid when not waiting all */
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
struct drm_syncobj_array {
|
||||
__u64 handles;
|
||||
__u32 count_handles;
|
||||
__u32 pad;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
@@ -853,9 +834,6 @@ extern "C" {
|
||||
#define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy)
|
||||
#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle)
|
||||
#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle)
|
||||
#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait)
|
||||
#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
|
||||
#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
|
||||
|
||||
/**
|
||||
* Device specific ioctls should only be in their respective headers
|
||||
|
@@ -185,8 +185,6 @@ extern "C" {
|
||||
#define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
|
||||
/* add more to the end as needed */
|
||||
|
||||
#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
|
||||
|
||||
#define fourcc_mod_code(vendor, val) \
|
||||
((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | (val & 0x00ffffffffffffffULL))
|
||||
|
||||
@@ -198,15 +196,6 @@ extern "C" {
|
||||
* authoritative source for all of these.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Invalid Modifier
|
||||
*
|
||||
* This modifier can be used as a sentinel to terminate the format modifiers
|
||||
* list, or to initialize a variable with an invalid modifier. It might also be
|
||||
* used to report an error back to userspace for certain APIs.
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
|
||||
|
||||
/*
|
||||
* Linear Layout
|
||||
*
|
||||
@@ -263,26 +252,6 @@ extern "C" {
|
||||
*/
|
||||
#define I915_FORMAT_MOD_Yf_TILED fourcc_mod_code(INTEL, 3)
|
||||
|
||||
/*
|
||||
* Intel color control surface (CCS) for render compression
|
||||
*
|
||||
* The framebuffer format must be one of the 8:8:8:8 RGB formats.
|
||||
* The main surface will be plane index 0 and must be Y/Yf-tiled,
|
||||
* the CCS will be plane index 1.
|
||||
*
|
||||
* Each CCS tile matches a 1024x512 pixel area of the main surface.
|
||||
* To match certain aspects of the 3D hardware the CCS is
|
||||
* considered to be made up of normal 128Bx32 Y tiles, Thus
|
||||
* the CCS pitch must be specified in multiples of 128 bytes.
|
||||
*
|
||||
* In reality the CCS tile appears to be a 64Bx64 Y tile, composed
|
||||
* of QWORD (8 bytes) chunks instead of OWORD (16 bytes) chunks.
|
||||
* But that fact is not relevant unless the memory is accessed
|
||||
* directly.
|
||||
*/
|
||||
#define I915_FORMAT_MOD_Y_TILED_CCS fourcc_mod_code(INTEL, 4)
|
||||
#define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5)
|
||||
|
||||
/*
|
||||
* Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
|
||||
*
|
||||
|
@@ -712,56 +712,6 @@ struct drm_mode_atomic {
|
||||
__u64 user_data;
|
||||
};
|
||||
|
||||
struct drm_format_modifier_blob {
|
||||
#define FORMAT_BLOB_CURRENT 1
|
||||
/* Version of this blob format */
|
||||
__u32 version;
|
||||
|
||||
/* Flags */
|
||||
__u32 flags;
|
||||
|
||||
/* Number of fourcc formats supported */
|
||||
__u32 count_formats;
|
||||
|
||||
/* Where in this blob the formats exist (in bytes) */
|
||||
__u32 formats_offset;
|
||||
|
||||
/* Number of drm_format_modifiers */
|
||||
__u32 count_modifiers;
|
||||
|
||||
/* Where in this blob the modifiers exist (in bytes) */
|
||||
__u32 modifiers_offset;
|
||||
|
||||
/* __u32 formats[] */
|
||||
/* struct drm_format_modifier modifiers[] */
|
||||
};
|
||||
|
||||
struct drm_format_modifier {
|
||||
/* Bitmask of formats in get_plane format list this info applies to. The
|
||||
* offset allows a sliding window of which 64 formats (bits).
|
||||
*
|
||||
* Some examples:
|
||||
* In today's world with < 65 formats, and formats 0, and 2 are
|
||||
* supported
|
||||
* 0x0000000000000005
|
||||
* ^-offset = 0, formats = 5
|
||||
*
|
||||
* If the number formats grew to 128, and formats 98-102 are
|
||||
* supported with the modifier:
|
||||
*
|
||||
* 0x0000003c00000000 0000000000000000
|
||||
* ^
|
||||
* |__offset = 64, formats = 0x3c00000000
|
||||
*
|
||||
*/
|
||||
__u64 formats;
|
||||
__u32 offset;
|
||||
__u32 pad;
|
||||
|
||||
/* The modifier that applies to the >get_plane format list bitmask. */
|
||||
__u64 modifier;
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a new 'blob' data property, copying length bytes from data pointer,
|
||||
* and returning new blob ID.
|
||||
|
@@ -260,8 +260,6 @@ typedef struct _drm_i915_sarea {
|
||||
#define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
|
||||
#define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
|
||||
#define DRM_I915_PERF_OPEN 0x36
|
||||
#define DRM_I915_PERF_ADD_CONFIG 0x37
|
||||
#define DRM_I915_PERF_REMOVE_CONFIG 0x38
|
||||
|
||||
#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
|
||||
#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
|
||||
@@ -317,8 +315,6 @@ typedef struct _drm_i915_sarea {
|
||||
#define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
|
||||
#define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
|
||||
#define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
|
||||
#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
|
||||
#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
|
||||
|
||||
/* Allow drivers to submit batchbuffers directly to hardware, relying
|
||||
* on the security mechanisms provided by hardware.
|
||||
@@ -397,20 +393,10 @@ typedef struct drm_i915_irq_wait {
|
||||
#define I915_PARAM_MIN_EU_IN_POOL 39
|
||||
#define I915_PARAM_MMAP_GTT_VERSION 40
|
||||
|
||||
/*
|
||||
* Query whether DRM_I915_GEM_EXECBUFFER2 supports user defined execution
|
||||
/* Query whether DRM_I915_GEM_EXECBUFFER2 supports user defined execution
|
||||
* priorities and the driver will attempt to execute batches in priority order.
|
||||
* The param returns a capability bitmask, nonzero implies that the scheduler
|
||||
* is enabled, with different features present according to the mask.
|
||||
*
|
||||
* The initial priority for each batch is supplied by the context and is
|
||||
* controlled via I915_CONTEXT_PARAM_PRIORITY.
|
||||
*/
|
||||
#define I915_PARAM_HAS_SCHEDULER 41
|
||||
#define I915_SCHEDULER_CAP_ENABLED (1ul << 0)
|
||||
#define I915_SCHEDULER_CAP_PRIORITY (1ul << 1)
|
||||
#define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
|
||||
|
||||
#define I915_PARAM_HUC_STATUS 42
|
||||
|
||||
/* Query whether DRM_I915_GEM_EXECBUFFER2 supports the ability to opt-out of
|
||||
@@ -445,11 +431,6 @@ typedef struct drm_i915_irq_wait {
|
||||
*/
|
||||
#define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
|
||||
|
||||
/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
|
||||
* drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY.
|
||||
*/
|
||||
#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
|
||||
|
||||
typedef struct drm_i915_getparam {
|
||||
__s32 param;
|
||||
/*
|
||||
@@ -831,17 +812,6 @@ struct drm_i915_gem_exec_object2 {
|
||||
__u64 rsvd2;
|
||||
};
|
||||
|
||||
struct drm_i915_gem_exec_fence {
|
||||
/**
|
||||
* User's handle for a drm_syncobj to wait on or signal.
|
||||
*/
|
||||
__u32 handle;
|
||||
|
||||
#define I915_EXEC_FENCE_WAIT (1<<0)
|
||||
#define I915_EXEC_FENCE_SIGNAL (1<<1)
|
||||
__u32 flags;
|
||||
};
|
||||
|
||||
struct drm_i915_gem_execbuffer2 {
|
||||
/**
|
||||
* List of gem_exec_object2 structs
|
||||
@@ -856,11 +826,7 @@ struct drm_i915_gem_execbuffer2 {
|
||||
__u32 DR1;
|
||||
__u32 DR4;
|
||||
__u32 num_cliprects;
|
||||
/**
|
||||
* This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
|
||||
* is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a
|
||||
* struct drm_i915_gem_exec_fence *fences.
|
||||
*/
|
||||
/** This is a struct drm_clip_rect *cliprects */
|
||||
__u64 cliprects_ptr;
|
||||
#define I915_EXEC_RING_MASK (7<<0)
|
||||
#define I915_EXEC_DEFAULT (0<<0)
|
||||
@@ -961,14 +927,7 @@ struct drm_i915_gem_execbuffer2 {
|
||||
* element).
|
||||
*/
|
||||
#define I915_EXEC_BATCH_FIRST (1<<18)
|
||||
|
||||
/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr
|
||||
* define an array of i915_gem_exec_fence structures which specify a set of
|
||||
* dma fences to wait upon or signal.
|
||||
*/
|
||||
#define I915_EXEC_FENCE_ARRAY (1<<19)
|
||||
|
||||
#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_ARRAY<<1))
|
||||
#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_BATCH_FIRST<<1))
|
||||
|
||||
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
|
||||
#define i915_execbuffer2_set_context_id(eb2, context) \
|
||||
@@ -1318,16 +1277,14 @@ struct drm_i915_reg_read {
|
||||
* be specified
|
||||
*/
|
||||
__u64 offset;
|
||||
#define I915_REG_READ_8B_WA (1ul << 0)
|
||||
|
||||
__u64 val; /* Return value */
|
||||
};
|
||||
/* Known registers:
|
||||
*
|
||||
* Render engine timestamp - 0x2358 + 64bit - gen7+
|
||||
* - Note this register returns an invalid value if using the default
|
||||
* single instruction 8byte read, in order to workaround that pass
|
||||
* flag I915_REG_READ_8B_WA in offset field.
|
||||
* single instruction 8byte read, in order to workaround that use
|
||||
* offset (0x2538 | 1) instead.
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -1370,10 +1327,6 @@ struct drm_i915_gem_context_param {
|
||||
#define I915_CONTEXT_PARAM_GTT_SIZE 0x3
|
||||
#define I915_CONTEXT_PARAM_NO_ERROR_CAPTURE 0x4
|
||||
#define I915_CONTEXT_PARAM_BANNABLE 0x5
|
||||
#define I915_CONTEXT_PARAM_PRIORITY 0x6
|
||||
#define I915_CONTEXT_MAX_USER_PRIORITY 1023 /* inclusive */
|
||||
#define I915_CONTEXT_DEFAULT_PRIORITY 0
|
||||
#define I915_CONTEXT_MIN_USER_PRIORITY -1023 /* inclusive */
|
||||
__u64 value;
|
||||
};
|
||||
|
||||
@@ -1514,27 +1467,6 @@ enum drm_i915_perf_record_type {
|
||||
DRM_I915_PERF_RECORD_MAX /* non-ABI */
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure to upload perf dynamic configuration into the kernel.
|
||||
*/
|
||||
struct drm_i915_perf_oa_config {
|
||||
/** String formatted like "%08x-%04x-%04x-%04x-%012x" */
|
||||
char uuid[36];
|
||||
|
||||
__u32 n_mux_regs;
|
||||
__u32 n_boolean_regs;
|
||||
__u32 n_flex_regs;
|
||||
|
||||
/*
|
||||
* These fields are pointers to tuples of u32 values (register
|
||||
* address, value). For example the expected length of the buffer
|
||||
* pointed by mux_regs_ptr is (2 * sizeof(u32) * n_mux_regs).
|
||||
*/
|
||||
__u64 mux_regs_ptr;
|
||||
__u64 boolean_regs_ptr;
|
||||
__u64 flex_regs_ptr;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -40,7 +40,6 @@ extern "C" {
|
||||
#define DRM_VC4_GET_PARAM 0x07
|
||||
#define DRM_VC4_SET_TILING 0x08
|
||||
#define DRM_VC4_GET_TILING 0x09
|
||||
#define DRM_VC4_LABEL_BO 0x0a
|
||||
|
||||
#define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
|
||||
#define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
|
||||
@@ -52,7 +51,6 @@ extern "C" {
|
||||
#define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param)
|
||||
#define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling)
|
||||
#define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling)
|
||||
#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo)
|
||||
|
||||
struct drm_vc4_submit_rcl_surface {
|
||||
__u32 hindex; /* Handle index, or ~0 if not present. */
|
||||
@@ -155,16 +153,6 @@ struct drm_vc4_submit_cl {
|
||||
__u32 pad:24;
|
||||
|
||||
#define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0)
|
||||
/* By default, the kernel gets to choose the order that the tiles are
|
||||
* rendered in. If this is set, then the tiles will be rendered in a
|
||||
* raster order, with the right-to-left vs left-to-right and
|
||||
* top-to-bottom vs bottom-to-top dictated by
|
||||
* VC4_SUBMIT_CL_RCL_ORDER_INCREASING_*. This allows overlapping
|
||||
* blits to be implemented using the 3D engine.
|
||||
*/
|
||||
#define VC4_SUBMIT_CL_FIXED_RCL_ORDER (1 << 1)
|
||||
#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_X (1 << 2)
|
||||
#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3)
|
||||
__u32 flags;
|
||||
|
||||
/* Returned value of the seqno of this render job (for the
|
||||
@@ -304,7 +292,6 @@ struct drm_vc4_get_hang_state {
|
||||
#define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3
|
||||
#define DRM_VC4_PARAM_SUPPORTS_ETC1 4
|
||||
#define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5
|
||||
#define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6
|
||||
|
||||
struct drm_vc4_get_param {
|
||||
__u32 param;
|
||||
@@ -324,15 +311,6 @@ struct drm_vc4_set_tiling {
|
||||
__u64 modifier;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct drm_vc4_label_bo - Attach a name to a BO for debug purposes.
|
||||
*/
|
||||
struct drm_vc4_label_bo {
|
||||
__u32 handle;
|
||||
__u32 len;
|
||||
__u64 name;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,68 +0,0 @@
|
||||
# Copyright © 2017 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
inc_drm_uapi = include_directories('drm-uapi')
|
||||
inc_vulkan = include_directories('vulkan')
|
||||
|
||||
if with_gles1
|
||||
install_headers(
|
||||
'GLES/egl.h', 'GLES/gl.h', 'GLES/glext.h', 'GLES/glplatform.h',
|
||||
subdir : 'GLES',
|
||||
)
|
||||
endif
|
||||
|
||||
if with_gles2
|
||||
install_headers(
|
||||
'GLES2/gl2.h', 'GLES2/gl2ext.h', 'GLES2/gl2platform.h',
|
||||
subdir : 'GLES2',
|
||||
)
|
||||
install_headers(
|
||||
'GLES3/gl3.h', 'GLES3/gl32.h', 'GLES3/gl32.h', 'GLES3/gl3ext.h',
|
||||
'GLES3/gl3platform.h',
|
||||
subdir : 'GLES3',
|
||||
)
|
||||
endif
|
||||
|
||||
if with_gles1 or with_gles2 # or with_egl
|
||||
install_headers('KHR/khrplatform.h', subdir : 'KHR')
|
||||
endif
|
||||
|
||||
if with_opengl
|
||||
install_headers(
|
||||
'GL/gl.h', 'GL/glext.h', 'GL/glcorearb.h', 'GL/gl_mangle.h',
|
||||
subdir : 'GL',
|
||||
)
|
||||
endif
|
||||
|
||||
if with_glx != 'disabled'
|
||||
install_headers('GL/glx.h', 'GL/glext.h', 'GL/glx_mangle.h', subdir : 'GL')
|
||||
endif
|
||||
|
||||
if with_osmesa
|
||||
install_headers('GL/osmesa.h', subdir : 'GL')
|
||||
endif
|
||||
|
||||
if with_egl
|
||||
install_headers(
|
||||
'EGL/eglext.h', 'EGL/egl.h', 'EGL/eglextchromium.h', 'EGL/eglmesaext.h',
|
||||
'EGL/eglplatform.h',
|
||||
subdir : 'EGL',
|
||||
)
|
||||
endif
|
@@ -151,7 +151,7 @@ CHIPSET(0x590B, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x590E, kbl_gt1, "Intel(R) Kabylake GT1")
|
||||
CHIPSET(0x5913, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
CHIPSET(0x5915, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
CHIPSET(0x5917, kbl_gt2, "Intel(R) UHD Graphics 620 (Kabylake GT2)")
|
||||
CHIPSET(0x5917, kbl_gt1_5, "Intel(R) Kabylake GT1.5")
|
||||
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)")
|
||||
@@ -160,8 +160,8 @@ 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")
|
||||
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(0x5926, kbl_gt3, "Intel(R) Iris Plus Graphics 640 (Kaby Lake GT3)")
|
||||
CHIPSET(0x5927, kbl_gt3, "Intel(R) Iris Plus Graphics 650 (Kaby Lake GT3)")
|
||||
CHIPSET(0x593B, kbl_gt4, "Intel(R) Kabylake GT4")
|
||||
CHIPSET(0x3184, glk, "Intel(R) HD Graphics (Geminilake)")
|
||||
CHIPSET(0x3185, glk_2x6, "Intel(R) HD Graphics (Geminilake 2x6)")
|
||||
|
@@ -1,96 +0,0 @@
|
||||
/*
|
||||
* Copyright 2015 The Android Open Source Project
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __VK_ANDROID_NATIVE_BUFFER_H__
|
||||
#define __VK_ANDROID_NATIVE_BUFFER_H__
|
||||
|
||||
/* MESA: A hack to avoid #ifdefs in driver code. */
|
||||
#ifdef ANDROID
|
||||
#include <system/window.h>
|
||||
#include <vulkan/vulkan.h>
|
||||
#else
|
||||
typedef void *buffer_handle_t;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define VK_ANDROID_native_buffer 1
|
||||
|
||||
#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER 11
|
||||
#define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 5
|
||||
#define VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME "VK_ANDROID_native_buffer"
|
||||
|
||||
#define VK_ANDROID_NATIVE_BUFFER_ENUM(type,id) ((type)(1000000000 + (1000 * (VK_ANDROID_NATIVE_BUFFER_EXTENSION_NUMBER - 1)) + (id)))
|
||||
#define VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID VK_ANDROID_NATIVE_BUFFER_ENUM(VkStructureType, 0)
|
||||
|
||||
typedef struct {
|
||||
VkStructureType sType; // must be VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID
|
||||
const void* pNext;
|
||||
|
||||
// Buffer handle and stride returned from gralloc alloc()
|
||||
buffer_handle_t handle;
|
||||
int stride;
|
||||
|
||||
// Gralloc format and usage requested when the buffer was allocated.
|
||||
int format;
|
||||
int usage;
|
||||
} VkNativeBufferANDROID;
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainGrallocUsageANDROID)(VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, int* grallocUsage);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAcquireImageANDROID)(VkDevice device, VkImage image, int nativeFenceFd, VkSemaphore semaphore, VkFence fence);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkQueueSignalReleaseImageANDROID)(VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image, int* pNativeFenceFd);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainGrallocUsageANDROID(
|
||||
VkDevice device,
|
||||
VkFormat format,
|
||||
VkImageUsageFlags imageUsage,
|
||||
int* grallocUsage
|
||||
);
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireImageANDROID(
|
||||
VkDevice device,
|
||||
VkImage image,
|
||||
int nativeFenceFd,
|
||||
VkSemaphore semaphore,
|
||||
VkFence fence
|
||||
);
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkQueueSignalReleaseImageANDROID(
|
||||
VkQueue queue,
|
||||
uint32_t waitSemaphoreCount,
|
||||
const VkSemaphore* pWaitSemaphores,
|
||||
VkImage image,
|
||||
int* pNativeFenceFd
|
||||
);
|
||||
// -- DEPRECATED --
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkImportNativeFenceANDROID(
|
||||
VkDevice device,
|
||||
VkSemaphore semaphore,
|
||||
int nativeFenceFd
|
||||
);
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkQueueSignalNativeFenceANDROID(
|
||||
VkQueue queue,
|
||||
int* pNativeFenceFd
|
||||
);
|
||||
// ----------------
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __VK_ANDROID_NATIVE_BUFFER_H__
|
@@ -34,16 +34,16 @@ extern "C" {
|
||||
(((major) << 22) | ((minor) << 12) | (patch))
|
||||
|
||||
// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
|
||||
//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
|
||||
//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
// Vulkan 1.0 version number
|
||||
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
|
||||
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)
|
||||
|
||||
#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
|
||||
#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
|
||||
#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 63
|
||||
#define VK_HEADER_VERSION 54
|
||||
|
||||
|
||||
#define VK_NULL_HANDLE 0
|
||||
@@ -147,7 +147,6 @@ typedef enum VkResult {
|
||||
VK_ERROR_INVALID_SHADER_NV = -1000012000,
|
||||
VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000,
|
||||
VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003,
|
||||
VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
|
||||
VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
|
||||
VK_RESULT_END_RANGE = VK_INCOMPLETE,
|
||||
VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
|
||||
@@ -242,16 +241,16 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
|
||||
VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000,
|
||||
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX = 1000060001,
|
||||
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX = 1000060002,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006,
|
||||
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
|
||||
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060013,
|
||||
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060014,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007,
|
||||
VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008,
|
||||
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009,
|
||||
VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012,
|
||||
VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
|
||||
@@ -294,7 +293,7 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
|
||||
VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
|
||||
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
|
||||
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000,
|
||||
VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
|
||||
VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
|
||||
VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
|
||||
@@ -314,10 +313,6 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
|
||||
VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
|
||||
VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
|
||||
VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
|
||||
VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
|
||||
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
|
||||
VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
|
||||
@@ -328,33 +323,16 @@ typedef enum VkStructureType {
|
||||
VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
|
||||
VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
|
||||
VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
|
||||
VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
|
||||
VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
|
||||
VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
|
||||
VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
|
||||
VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
|
||||
VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
|
||||
VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
|
||||
VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
|
||||
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
|
||||
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
|
||||
VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
|
||||
VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
|
||||
VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
|
||||
VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
|
||||
VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
|
||||
VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
|
||||
VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
|
||||
VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
|
||||
VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
|
||||
VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
|
||||
VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
|
||||
@@ -575,40 +553,6 @@ typedef enum VkFormat {
|
||||
VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
|
||||
VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
|
||||
VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
|
||||
VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
|
||||
VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
|
||||
VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
|
||||
VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
|
||||
VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
|
||||
VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
|
||||
VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
|
||||
VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
|
||||
VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
|
||||
VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
|
||||
VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
|
||||
VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
|
||||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
|
||||
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
|
||||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
|
||||
VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
|
||||
VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
|
||||
VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
|
||||
VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
|
||||
VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
|
||||
VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
|
||||
VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
|
||||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
|
||||
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
|
||||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
|
||||
VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
|
||||
VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
|
||||
VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
|
||||
VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
|
||||
VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
|
||||
VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
|
||||
VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
|
||||
VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
|
||||
VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
|
||||
VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
|
||||
VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
|
||||
VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
|
||||
@@ -677,8 +621,6 @@ typedef enum VkImageLayout {
|
||||
VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
|
||||
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
|
||||
VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
|
||||
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
|
||||
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
|
||||
VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
|
||||
VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
|
||||
VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
|
||||
@@ -909,7 +851,6 @@ typedef enum VkDynamicState {
|
||||
VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
|
||||
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
|
||||
VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
|
||||
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
|
||||
VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
|
||||
VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
|
||||
VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
|
||||
@@ -1068,8 +1009,6 @@ typedef enum VkObjectType {
|
||||
VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
|
||||
VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
|
||||
VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
|
||||
VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
|
||||
VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
|
||||
VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
|
||||
VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
|
||||
VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
|
||||
@@ -1096,13 +1035,6 @@ typedef enum VkFormatFeatureFlagBits {
|
||||
VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
|
||||
VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
|
||||
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
|
||||
VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
|
||||
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
|
||||
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
|
||||
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
|
||||
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
|
||||
VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
|
||||
VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
|
||||
VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkFormatFeatureFlagBits;
|
||||
typedef VkFlags VkFormatFeatureFlags;
|
||||
@@ -1128,11 +1060,6 @@ typedef enum VkImageCreateFlagBits {
|
||||
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
|
||||
VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
|
||||
VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
|
||||
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
|
||||
VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
|
||||
VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
|
||||
VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
|
||||
VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
|
||||
VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkImageCreateFlagBits;
|
||||
typedef VkFlags VkImageCreateFlags;
|
||||
@@ -1206,9 +1133,6 @@ typedef enum VkImageAspectFlagBits {
|
||||
VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
|
||||
VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
|
||||
VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
|
||||
VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
|
||||
VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
|
||||
VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
|
||||
VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkImageAspectFlagBits;
|
||||
typedef VkFlags VkImageAspectFlags;
|
||||
@@ -1442,27 +1366,6 @@ typedef enum VkStencilFaceFlagBits {
|
||||
} VkStencilFaceFlagBits;
|
||||
typedef VkFlags VkStencilFaceFlags;
|
||||
|
||||
typedef struct VkApplicationInfo {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const char* pApplicationName;
|
||||
uint32_t applicationVersion;
|
||||
const char* pEngineName;
|
||||
uint32_t engineVersion;
|
||||
uint32_t apiVersion;
|
||||
} VkApplicationInfo;
|
||||
|
||||
typedef struct VkInstanceCreateInfo {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkInstanceCreateFlags flags;
|
||||
const VkApplicationInfo* pApplicationInfo;
|
||||
uint32_t enabledLayerCount;
|
||||
const char* const* ppEnabledLayerNames;
|
||||
uint32_t enabledExtensionCount;
|
||||
const char* const* ppEnabledExtensionNames;
|
||||
} VkInstanceCreateInfo;
|
||||
|
||||
typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
|
||||
void* pUserData,
|
||||
size_t size,
|
||||
@@ -1492,6 +1395,29 @@ typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
|
||||
VkInternalAllocationType allocationType,
|
||||
VkSystemAllocationScope allocationScope);
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
|
||||
|
||||
typedef struct VkApplicationInfo {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const char* pApplicationName;
|
||||
uint32_t applicationVersion;
|
||||
const char* pEngineName;
|
||||
uint32_t engineVersion;
|
||||
uint32_t apiVersion;
|
||||
} VkApplicationInfo;
|
||||
|
||||
typedef struct VkInstanceCreateInfo {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkInstanceCreateFlags flags;
|
||||
const VkApplicationInfo* pApplicationInfo;
|
||||
uint32_t enabledLayerCount;
|
||||
const char* const* ppEnabledLayerNames;
|
||||
uint32_t enabledExtensionCount;
|
||||
const char* const* ppEnabledExtensionNames;
|
||||
} VkInstanceCreateInfo;
|
||||
|
||||
typedef struct VkAllocationCallbacks {
|
||||
void* pUserData;
|
||||
PFN_vkAllocationFunction pfnAllocation;
|
||||
@@ -1732,7 +1658,6 @@ typedef struct VkPhysicalDeviceMemoryProperties {
|
||||
VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
|
||||
} VkPhysicalDeviceMemoryProperties;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
|
||||
typedef struct VkDeviceQueueCreateInfo {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
@@ -3508,7 +3433,6 @@ typedef enum VkColorSpaceKHR {
|
||||
VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
|
||||
VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
|
||||
VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
|
||||
VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
|
||||
VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
|
||||
VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
|
||||
VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
|
||||
@@ -4850,62 +4774,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
|
||||
int* pFd);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_maintenance2 1
|
||||
#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
|
||||
#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
|
||||
|
||||
|
||||
typedef enum VkPointClippingBehaviorKHR {
|
||||
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
|
||||
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
|
||||
VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR,
|
||||
VK_POINT_CLIPPING_BEHAVIOR_END_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR,
|
||||
VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE_KHR = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR + 1),
|
||||
VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkPointClippingBehaviorKHR;
|
||||
|
||||
typedef enum VkTessellationDomainOriginKHR {
|
||||
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
|
||||
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
|
||||
VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR,
|
||||
VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR,
|
||||
VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE_KHR = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR + 1),
|
||||
VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkTessellationDomainOriginKHR;
|
||||
|
||||
typedef struct VkPhysicalDevicePointClippingPropertiesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkPointClippingBehaviorKHR pointClippingBehavior;
|
||||
} VkPhysicalDevicePointClippingPropertiesKHR;
|
||||
|
||||
typedef struct VkInputAttachmentAspectReferenceKHR {
|
||||
uint32_t subpass;
|
||||
uint32_t inputAttachmentIndex;
|
||||
VkImageAspectFlags aspectMask;
|
||||
} VkInputAttachmentAspectReferenceKHR;
|
||||
|
||||
typedef struct VkRenderPassInputAttachmentAspectCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t aspectReferenceCount;
|
||||
const VkInputAttachmentAspectReferenceKHR* pAspectReferences;
|
||||
} VkRenderPassInputAttachmentAspectCreateInfoKHR;
|
||||
|
||||
typedef struct VkImageViewUsageCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageUsageFlags usage;
|
||||
} VkImageViewUsageCreateInfoKHR;
|
||||
|
||||
typedef struct VkPipelineTessellationDomainOriginStateCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkTessellationDomainOriginKHR domainOrigin;
|
||||
} VkPipelineTessellationDomainOriginStateCreateInfoKHR;
|
||||
|
||||
|
||||
|
||||
#define VK_KHR_get_surface_capabilities2 1
|
||||
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
|
||||
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
|
||||
@@ -4959,7 +4827,7 @@ typedef struct VkPhysicalDeviceVariablePointerFeaturesKHR {
|
||||
|
||||
|
||||
#define VK_KHR_dedicated_allocation 1
|
||||
#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
|
||||
#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 1
|
||||
#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
|
||||
|
||||
typedef struct VkMemoryDedicatedRequirementsKHR {
|
||||
@@ -4983,11 +4851,6 @@ typedef struct VkMemoryDedicatedAllocateInfoKHR {
|
||||
#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
|
||||
|
||||
|
||||
#define VK_KHR_relaxed_block_layout 1
|
||||
#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
|
||||
#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
|
||||
|
||||
|
||||
#define VK_KHR_get_memory_requirements2 1
|
||||
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
|
||||
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
|
||||
@@ -5045,152 +4908,6 @@ VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
|
||||
VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_image_format_list 1
|
||||
#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
|
||||
#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
|
||||
|
||||
typedef struct VkImageFormatListCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t viewFormatCount;
|
||||
const VkFormat* pViewFormats;
|
||||
} VkImageFormatListCreateInfoKHR;
|
||||
|
||||
|
||||
|
||||
#define VK_KHR_sampler_ycbcr_conversion 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversionKHR)
|
||||
|
||||
#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
|
||||
#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
|
||||
|
||||
|
||||
typedef enum VkSamplerYcbcrModelConversionKHR {
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR,
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR + 1),
|
||||
VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkSamplerYcbcrModelConversionKHR;
|
||||
|
||||
typedef enum VkSamplerYcbcrRangeKHR {
|
||||
VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
|
||||
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
|
||||
VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR,
|
||||
VK_SAMPLER_YCBCR_RANGE_END_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR,
|
||||
VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR - VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR + 1),
|
||||
VK_SAMPLER_YCBCR_RANGE_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkSamplerYcbcrRangeKHR;
|
||||
|
||||
typedef enum VkChromaLocationKHR {
|
||||
VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
|
||||
VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
|
||||
VK_CHROMA_LOCATION_BEGIN_RANGE_KHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR,
|
||||
VK_CHROMA_LOCATION_END_RANGE_KHR = VK_CHROMA_LOCATION_MIDPOINT_KHR,
|
||||
VK_CHROMA_LOCATION_RANGE_SIZE_KHR = (VK_CHROMA_LOCATION_MIDPOINT_KHR - VK_CHROMA_LOCATION_COSITED_EVEN_KHR + 1),
|
||||
VK_CHROMA_LOCATION_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkChromaLocationKHR;
|
||||
|
||||
typedef struct VkSamplerYcbcrConversionCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkFormat format;
|
||||
VkSamplerYcbcrModelConversionKHR ycbcrModel;
|
||||
VkSamplerYcbcrRangeKHR ycbcrRange;
|
||||
VkComponentMapping components;
|
||||
VkChromaLocationKHR xChromaOffset;
|
||||
VkChromaLocationKHR yChromaOffset;
|
||||
VkFilter chromaFilter;
|
||||
VkBool32 forceExplicitReconstruction;
|
||||
} VkSamplerYcbcrConversionCreateInfoKHR;
|
||||
|
||||
typedef struct VkSamplerYcbcrConversionInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSamplerYcbcrConversionKHR conversion;
|
||||
} VkSamplerYcbcrConversionInfoKHR;
|
||||
|
||||
typedef struct VkBindImagePlaneMemoryInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageAspectFlagBits planeAspect;
|
||||
} VkBindImagePlaneMemoryInfoKHR;
|
||||
|
||||
typedef struct VkImagePlaneMemoryRequirementsInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageAspectFlagBits planeAspect;
|
||||
} VkImagePlaneMemoryRequirementsInfoKHR;
|
||||
|
||||
typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 samplerYcbcrConversion;
|
||||
} VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
|
||||
|
||||
typedef struct VkSamplerYcbcrConversionImageFormatPropertiesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t combinedImageSamplerDescriptorCount;
|
||||
} VkSamplerYcbcrConversionImageFormatPropertiesKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion);
|
||||
typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
|
||||
VkDevice device,
|
||||
const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSamplerYcbcrConversionKHR* pYcbcrConversion);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
|
||||
VkDevice device,
|
||||
VkSamplerYcbcrConversionKHR ycbcrConversion,
|
||||
const VkAllocationCallbacks* pAllocator);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_bind_memory2 1
|
||||
#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
|
||||
#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
|
||||
|
||||
typedef struct VkBindBufferMemoryInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkBuffer buffer;
|
||||
VkDeviceMemory memory;
|
||||
VkDeviceSize memoryOffset;
|
||||
} VkBindBufferMemoryInfoKHR;
|
||||
|
||||
typedef struct VkBindImageMemoryInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImage image;
|
||||
VkDeviceMemory memory;
|
||||
VkDeviceSize memoryOffset;
|
||||
} VkBindImageMemoryInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
|
||||
VkDevice device,
|
||||
uint32_t bindInfoCount,
|
||||
const VkBindBufferMemoryInfoKHR* pBindInfos);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
|
||||
VkDevice device,
|
||||
uint32_t bindInfoCount,
|
||||
const VkBindImageMemoryInfoKHR* pBindInfos);
|
||||
#endif
|
||||
|
||||
#define VK_EXT_debug_report 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
|
||||
|
||||
@@ -5234,12 +4951,10 @@ typedef enum VkDebugReportObjectTypeEXT {
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
|
||||
VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkDebugReportObjectTypeEXT;
|
||||
|
||||
@@ -5264,6 +4979,7 @@ typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
|
||||
const char* pMessage,
|
||||
void* pUserData);
|
||||
|
||||
|
||||
typedef struct VkDebugReportCallbackCreateInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
@@ -5305,11 +5021,6 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
|
||||
#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
|
||||
|
||||
|
||||
#define VK_EXT_depth_range_unrestricted 1
|
||||
#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
|
||||
#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
|
||||
|
||||
|
||||
#define VK_IMG_filter_cubic 1
|
||||
#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
|
||||
#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
|
||||
@@ -5377,31 +5088,31 @@ typedef struct VkDebugMarkerMarkerInfoEXT {
|
||||
} VkDebugMarkerMarkerInfoEXT;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
|
||||
VkDevice device,
|
||||
const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
||||
VkDebugMarkerObjectTagInfoEXT* pTagInfo);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
|
||||
VkDevice device,
|
||||
const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
||||
VkDebugMarkerObjectNameInfoEXT* pNameInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
|
||||
VkCommandBuffer commandBuffer);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
|
||||
#endif
|
||||
|
||||
#define VK_AMD_gcn_shader 1
|
||||
@@ -5488,11 +5199,6 @@ typedef struct VkTextureLODGatherFormatPropertiesAMD {
|
||||
|
||||
|
||||
|
||||
#define VK_AMD_shader_image_load_store_lod 1
|
||||
#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
|
||||
#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
|
||||
|
||||
|
||||
#define VK_KHX_multiview 1
|
||||
#define VK_KHX_MULTIVIEW_SPEC_VERSION 1
|
||||
#define VK_KHX_MULTIVIEW_EXTENSION_NAME "VK_KHX_multiview"
|
||||
@@ -5644,9 +5350,9 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
|
||||
#endif /* VK_USE_PLATFORM_WIN32_KHR */
|
||||
|
||||
#define VK_KHX_device_group 1
|
||||
#define VK_KHX_DEVICE_GROUP_SPEC_VERSION 2
|
||||
#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
|
||||
#define VK_MAX_DEVICE_GROUP_SIZE_KHX 32
|
||||
#define VK_KHX_DEVICE_GROUP_SPEC_VERSION 1
|
||||
#define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
|
||||
|
||||
|
||||
typedef enum VkPeerMemoryFeatureFlagBitsKHX {
|
||||
@@ -5680,6 +5386,28 @@ typedef struct VkMemoryAllocateFlagsInfoKHX {
|
||||
uint32_t deviceMask;
|
||||
} VkMemoryAllocateFlagsInfoKHX;
|
||||
|
||||
typedef struct VkBindBufferMemoryInfoKHX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkBuffer buffer;
|
||||
VkDeviceMemory memory;
|
||||
VkDeviceSize memoryOffset;
|
||||
uint32_t deviceIndexCount;
|
||||
const uint32_t* pDeviceIndices;
|
||||
} VkBindBufferMemoryInfoKHX;
|
||||
|
||||
typedef struct VkBindImageMemoryInfoKHX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImage image;
|
||||
VkDeviceMemory memory;
|
||||
VkDeviceSize memoryOffset;
|
||||
uint32_t deviceIndexCount;
|
||||
const uint32_t* pDeviceIndices;
|
||||
uint32_t SFRRectCount;
|
||||
const VkRect2D* pSFRRects;
|
||||
} VkBindImageMemoryInfoKHX;
|
||||
|
||||
typedef struct VkDeviceGroupRenderPassBeginInfoKHX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
@@ -5712,22 +5440,6 @@ typedef struct VkDeviceGroupBindSparseInfoKHX {
|
||||
uint32_t memoryDeviceIndex;
|
||||
} VkDeviceGroupBindSparseInfoKHX;
|
||||
|
||||
typedef struct VkBindBufferMemoryDeviceGroupInfoKHX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t deviceIndexCount;
|
||||
const uint32_t* pDeviceIndices;
|
||||
} VkBindBufferMemoryDeviceGroupInfoKHX;
|
||||
|
||||
typedef struct VkBindImageMemoryDeviceGroupInfoKHX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t deviceIndexCount;
|
||||
const uint32_t* pDeviceIndices;
|
||||
uint32_t SFRRectCount;
|
||||
const VkRect2D* pSFRRects;
|
||||
} VkBindImageMemoryDeviceGroupInfoKHX;
|
||||
|
||||
typedef struct VkDeviceGroupPresentCapabilitiesKHX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
@@ -5774,12 +5486,14 @@ typedef struct VkDeviceGroupSwapchainCreateInfoKHX {
|
||||
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHX* pBindInfos);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHX* pBindInfos);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
|
||||
@@ -5789,19 +5503,20 @@ VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
|
||||
uint32_t remoteDeviceIndex,
|
||||
VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHX(
|
||||
VkDevice device,
|
||||
uint32_t bindInfoCount,
|
||||
const VkBindBufferMemoryInfoKHX* pBindInfos);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHX(
|
||||
VkDevice device,
|
||||
uint32_t bindInfoCount,
|
||||
const VkBindImageMemoryInfoKHX* pBindInfos);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t deviceMask);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t baseGroupX,
|
||||
uint32_t baseGroupY,
|
||||
uint32_t baseGroupZ,
|
||||
uint32_t groupCountX,
|
||||
uint32_t groupCountY,
|
||||
uint32_t groupCountZ);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
|
||||
VkDevice device,
|
||||
VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
|
||||
@@ -5811,16 +5526,25 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX(
|
||||
VkSurfaceKHR surface,
|
||||
VkDeviceGroupPresentModeFlagsKHX* pModes);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
|
||||
VkDevice device,
|
||||
const VkAcquireNextImageInfoKHX* pAcquireInfo,
|
||||
uint32_t* pImageIndex);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
|
||||
VkCommandBuffer commandBuffer,
|
||||
uint32_t baseGroupX,
|
||||
uint32_t baseGroupY,
|
||||
uint32_t baseGroupZ,
|
||||
uint32_t groupCountX,
|
||||
uint32_t groupCountY,
|
||||
uint32_t groupCountZ);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
VkSurfaceKHR surface,
|
||||
uint32_t* pRectCount,
|
||||
VkRect2D* pRects);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
|
||||
VkDevice device,
|
||||
const VkAcquireNextImageInfoKHX* pAcquireInfo,
|
||||
uint32_t* pImageIndex);
|
||||
#endif
|
||||
|
||||
#define VK_EXT_validation_flags 1
|
||||
@@ -5915,7 +5639,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
|
||||
|
||||
#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
|
||||
#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
|
||||
#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
|
||||
|
||||
|
||||
@@ -6205,7 +5929,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
|
||||
#define VK_EXT_display_surface_counter 1
|
||||
#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
|
||||
#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
|
||||
#define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT
|
||||
|
||||
|
||||
typedef enum VkSurfaceCounterFlagBitsEXT {
|
||||
@@ -6481,7 +6204,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
|
||||
#endif
|
||||
|
||||
#define VK_EXT_swapchain_colorspace 1
|
||||
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3
|
||||
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 2
|
||||
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
|
||||
|
||||
|
||||
@@ -6605,96 +6328,6 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
|
||||
#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
|
||||
|
||||
|
||||
#define VK_AMD_mixed_attachment_samples 1
|
||||
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
|
||||
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
|
||||
|
||||
|
||||
#define VK_AMD_shader_fragment_mask 1
|
||||
#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
|
||||
#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
|
||||
|
||||
|
||||
#define VK_EXT_shader_stencil_export 1
|
||||
#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
|
||||
#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
|
||||
|
||||
|
||||
#define VK_EXT_sample_locations 1
|
||||
#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
|
||||
#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
|
||||
|
||||
typedef struct VkSampleLocationEXT {
|
||||
float x;
|
||||
float y;
|
||||
} VkSampleLocationEXT;
|
||||
|
||||
typedef struct VkSampleLocationsInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSampleCountFlagBits sampleLocationsPerPixel;
|
||||
VkExtent2D sampleLocationGridSize;
|
||||
uint32_t sampleLocationsCount;
|
||||
const VkSampleLocationEXT* pSampleLocations;
|
||||
} VkSampleLocationsInfoEXT;
|
||||
|
||||
typedef struct VkAttachmentSampleLocationsEXT {
|
||||
uint32_t attachmentIndex;
|
||||
VkSampleLocationsInfoEXT sampleLocationsInfo;
|
||||
} VkAttachmentSampleLocationsEXT;
|
||||
|
||||
typedef struct VkSubpassSampleLocationsEXT {
|
||||
uint32_t subpassIndex;
|
||||
VkSampleLocationsInfoEXT sampleLocationsInfo;
|
||||
} VkSubpassSampleLocationsEXT;
|
||||
|
||||
typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t attachmentInitialSampleLocationsCount;
|
||||
const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
|
||||
uint32_t postSubpassSampleLocationsCount;
|
||||
const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
|
||||
} VkRenderPassSampleLocationsBeginInfoEXT;
|
||||
|
||||
typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkBool32 sampleLocationsEnable;
|
||||
VkSampleLocationsInfoEXT sampleLocationsInfo;
|
||||
} VkPipelineSampleLocationsStateCreateInfoEXT;
|
||||
|
||||
typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkSampleCountFlags sampleLocationSampleCounts;
|
||||
VkExtent2D maxSampleLocationGridSize;
|
||||
float sampleLocationCoordinateRange[2];
|
||||
uint32_t sampleLocationSubPixelBits;
|
||||
VkBool32 variableSampleLocations;
|
||||
} VkPhysicalDeviceSampleLocationsPropertiesEXT;
|
||||
|
||||
typedef struct VkMultisamplePropertiesEXT {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkExtent2D maxSampleLocationGridSize;
|
||||
} VkMultisamplePropertiesEXT;
|
||||
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
VkSampleCountFlagBits samples,
|
||||
VkMultisamplePropertiesEXT* pMultisampleProperties);
|
||||
#endif
|
||||
|
||||
#define VK_EXT_blend_operation_advanced 1
|
||||
#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
|
||||
#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
|
||||
@@ -6788,102 +6421,6 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
|
||||
#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
|
||||
|
||||
|
||||
#define VK_EXT_post_depth_coverage 1
|
||||
#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
|
||||
#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
|
||||
|
||||
|
||||
#define VK_EXT_validation_cache 1
|
||||
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
|
||||
|
||||
#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
|
||||
#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
|
||||
|
||||
|
||||
typedef enum VkValidationCacheHeaderVersionEXT {
|
||||
VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
|
||||
VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
|
||||
VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
|
||||
VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
|
||||
VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkValidationCacheHeaderVersionEXT;
|
||||
|
||||
typedef VkFlags VkValidationCacheCreateFlagsEXT;
|
||||
|
||||
typedef struct VkValidationCacheCreateInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkValidationCacheCreateFlagsEXT flags;
|
||||
size_t initialDataSize;
|
||||
const void* pInitialData;
|
||||
} VkValidationCacheCreateInfoEXT;
|
||||
|
||||
typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkValidationCacheEXT validationCache;
|
||||
} VkShaderModuleValidationCacheCreateInfoEXT;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
|
||||
typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
|
||||
VkDevice device,
|
||||
const VkValidationCacheCreateInfoEXT* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkValidationCacheEXT* pValidationCache);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
|
||||
VkDevice device,
|
||||
VkValidationCacheEXT validationCache,
|
||||
const VkAllocationCallbacks* pAllocator);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
|
||||
VkDevice device,
|
||||
VkValidationCacheEXT dstCache,
|
||||
uint32_t srcCacheCount,
|
||||
const VkValidationCacheEXT* pSrcCaches);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
|
||||
VkDevice device,
|
||||
VkValidationCacheEXT validationCache,
|
||||
size_t* pDataSize,
|
||||
void* pData);
|
||||
#endif
|
||||
|
||||
#define VK_EXT_shader_viewport_index_layer 1
|
||||
#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
|
||||
#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
|
||||
|
||||
|
||||
#define VK_EXT_global_priority 1
|
||||
#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1
|
||||
#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
|
||||
|
||||
|
||||
typedef enum VkQueueGlobalPriorityEXT {
|
||||
VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
|
||||
VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
|
||||
VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
|
||||
VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
|
||||
VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
|
||||
VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
|
||||
VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME - VK_QUEUE_GLOBAL_PRIORITY_LOW + 1),
|
||||
VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkQueueGlobalPriorityEXT;
|
||||
|
||||
typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkQueueGlobalPriorityEXT globalPriority;
|
||||
} VkDeviceQueueGlobalPriorityCreateInfoEXT;
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,74 +0,0 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given FLAG works with the current language's compiler
|
||||
# or gives an error. (Warnings, however, are ignored)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# If EXTRA-FLAGS is defined, it is added to the current language's default
|
||||
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
|
||||
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||
# force the compiler to issue an error when a bad flag is given.
|
||||
#
|
||||
# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 3
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
|
||||
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"
|
||||
AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
])dnl AX_CHECK_COMPILE_FLAGS
|
815
meson.build
815
meson.build
@@ -1,815 +0,0 @@
|
||||
# Copyright © 2017 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
project('mesa', ['c', 'cpp'], version : '17.3.0-devel', license : 'MIT',
|
||||
default_options : ['c_std=c99', 'cpp_std=c++11'])
|
||||
|
||||
error('The meson build is unsupported for building mesa 17.3.x releases.')
|
||||
|
||||
# Arguments for the preprocessor, put these in a separate array from the C and
|
||||
# C++ (cpp in meson terminology) arguments since they need to be added to the
|
||||
# default arguments for both C and C++.
|
||||
pre_args = [
|
||||
'-D__STDC_CONSTANT_MACROS',
|
||||
'-D__STDC_FORMAT_MACROS',
|
||||
'-D__STDC_LIMIT_MACROS',
|
||||
'-DVERSION="@0@"'.format(meson.project_version()),
|
||||
'-DPACKAGE_VERSION=VERSION',
|
||||
'-DPACKAGE_BUGREPORT="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa"',
|
||||
'-D_GNU_SOURCE',
|
||||
]
|
||||
|
||||
with_vulkan_icd_dir = get_option('vulkan-icd-dir')
|
||||
with_tests = get_option('build-tests')
|
||||
with_valgrind = get_option('valgrind')
|
||||
with_asm = get_option('asm')
|
||||
with_llvm = get_option('llvm')
|
||||
if get_option('texture-float')
|
||||
pre_args += '-DTEXTURE_FLOAT_ENABLED'
|
||||
message('WARNING: Floating-point texture enabled. Please consult docs/patents.txt and your lawyer before building mesa.')
|
||||
endif
|
||||
|
||||
# XXX: yeah, do these
|
||||
with_appledri = false
|
||||
with_windowsdri = false
|
||||
|
||||
dri_drivers_path = get_option('dri-drivers-path')
|
||||
if dri_drivers_path == ''
|
||||
dri_drivers_path = join_paths(get_option('libdir'), 'dri')
|
||||
endif
|
||||
|
||||
with_gles1 = get_option('gles1')
|
||||
with_gles2 = get_option('gles2')
|
||||
with_opengl = get_option('opengl')
|
||||
with_any_opengl = with_opengl or with_gles1 or with_gles2
|
||||
# Only build shared_glapi if at least one OpenGL API is enabled
|
||||
with_shared_glapi = get_option('shared-glapi') and with_any_opengl
|
||||
|
||||
# TODO: these will need options, but at the moment they just control header
|
||||
# installs
|
||||
with_osmesa = false
|
||||
|
||||
# shared-glapi is required if at least two OpenGL APIs are being built
|
||||
if not with_shared_glapi
|
||||
if ((with_gles1 and with_gles2) or (with_gles1 and with_opengl)
|
||||
or (with_gles2 and with_opengl))
|
||||
error('shared-glapi required for building two or more of OpenGL, OpenGL ES 1.x, OpenGL ES 2.x')
|
||||
endif
|
||||
endif
|
||||
|
||||
# We require OpenGL for OpenGL ES
|
||||
if (with_gles1 or with_gles2) and not with_opengl
|
||||
error('building OpenGL ES without OpenGL is not supported.')
|
||||
endif
|
||||
|
||||
with_dri = false
|
||||
with_dri_i915 = false
|
||||
with_dri_i965 = false
|
||||
with_dri_swrast = false
|
||||
_drivers = get_option('dri-drivers')
|
||||
if _drivers != ''
|
||||
_split = _drivers.split(',')
|
||||
with_dri_i915 = _split.contains('i915')
|
||||
with_dri_i965 = _split.contains('i965')
|
||||
with_dri_swrast = _split.contains('swrast')
|
||||
with_dri = true
|
||||
endif
|
||||
|
||||
with_gallium = false
|
||||
with_gallium_pl111 = false
|
||||
with_gallium_radeonsi = false
|
||||
with_gallium_nouveau = false
|
||||
with_gallium_softpipe = false
|
||||
with_gallium_vc4 = false
|
||||
with_gallium_vc5 = false
|
||||
_drivers = get_option('gallium-drivers')
|
||||
if _drivers != ''
|
||||
_split = _drivers.split(',')
|
||||
with_gallium_pl111 = _split.contains('pl111')
|
||||
with_gallium_radeonsi = _split.contains('radeonsi')
|
||||
with_gallium_nouveau = _split.contains('nouveau')
|
||||
with_gallium_softpipe = _split.contains('swrast')
|
||||
with_gallium_vc4 = _split.contains('vc4')
|
||||
with_gallium_vc5 = _split.contains('vc5')
|
||||
with_gallium = true
|
||||
with_dri = true
|
||||
endif
|
||||
|
||||
if not (with_dri or with_gallium)
|
||||
with_gles1 = false
|
||||
with_gles2 = false
|
||||
with_opengl = false
|
||||
with_any_opengl = false
|
||||
with_shared_glapi = false
|
||||
endif
|
||||
|
||||
if with_dri_swrast and with_gallium_softpipe
|
||||
error('Only one swrast provider can be built')
|
||||
endif
|
||||
|
||||
dep_libdrm_intel = []
|
||||
if with_dri_i915
|
||||
dep_libdrm_intel = dependency('libdrm_intel', version : '>= 2.4.75')
|
||||
endif
|
||||
|
||||
# TODO: other OSes
|
||||
with_dri_platform = 'drm'
|
||||
|
||||
# TODO: android platform
|
||||
with_platform_wayland = false
|
||||
with_platform_x11 = false
|
||||
with_platform_drm = false
|
||||
with_platform_surfaceless = false
|
||||
egl_native_platform = ''
|
||||
_platforms = get_option('platforms')
|
||||
if _platforms != ''
|
||||
_split = _platforms.split(',')
|
||||
with_platform_x11 = _split.contains('x11')
|
||||
with_platform_wayland = _split.contains('wayland')
|
||||
with_platform_drm = _split.contains('drm')
|
||||
with_platform_surfaceless = _split.contains('surfaceless')
|
||||
egl_native_platform = _split[0]
|
||||
endif
|
||||
|
||||
with_gbm = get_option('gbm')
|
||||
if with_gbm == 'auto' and with_dri # TODO: or gallium
|
||||
with_gbm = host_machine.system() == 'linux'
|
||||
elif with_gbm == 'yes'
|
||||
if not ['linux', 'bsd'].contains(host_machine.system())
|
||||
error('GBM only supports unix-like platforms')
|
||||
endif
|
||||
with_gbm = true
|
||||
else
|
||||
with_gbm = false
|
||||
endif
|
||||
|
||||
_egl = get_option('egl')
|
||||
if _egl == 'auto'
|
||||
with_egl = with_dri and with_shared_glapi and egl_native_platform != ''
|
||||
elif _egl == 'yes'
|
||||
if not with_dri
|
||||
error('EGL requires dri')
|
||||
elif not with_shared_glapi
|
||||
error('EGL requires shared-glapi')
|
||||
elif egl_native_platform == ''
|
||||
error('No platforms specified, consider -Dplatforms=drm,x11 at least')
|
||||
endif
|
||||
with_egl = true
|
||||
else
|
||||
with_egl = false
|
||||
endif
|
||||
|
||||
# TODO: or virgl
|
||||
if with_egl and with_gallium_radeonsi and not (with_platform_drm or with_platform_surfaceless)
|
||||
error('RadeonSI requires drm or surfaceless platform when using EGL')
|
||||
endif
|
||||
|
||||
pre_args += '-DGLX_USE_TLS'
|
||||
with_glx = get_option('glx')
|
||||
if with_glx != 'disabled'
|
||||
if not (with_platform_x11 and with_any_opengl)
|
||||
if with_glx == 'auto'
|
||||
with_glx = 'disabled'
|
||||
else
|
||||
error('Cannot build GLX support without X11 platform support and at least one OpenGL API')
|
||||
endif
|
||||
elif with_glx == 'gallium-xlib'
|
||||
if not with_gallium
|
||||
error('Gallium-xlib based GLX requires at least one gallium driver')
|
||||
elif with_dri
|
||||
error('gallium-xlib conflicts with any dri driver')
|
||||
endif
|
||||
elif with_glx == 'dri' and not with_dri
|
||||
error('dri based GLX requires at least one DRI driver')
|
||||
elif with_glx == 'auto'
|
||||
if with_dri
|
||||
with_glx = 'dri'
|
||||
elif with_gallium
|
||||
with_glx = 'gallium-xlib'
|
||||
elif with_platform_x11 and with_any_opengl
|
||||
with_glx = 'xlib'
|
||||
else
|
||||
with_glx = 'disabled'
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
with_glvnd = get_option('glvnd')
|
||||
if with_glvnd and with_glx != 'dri'
|
||||
message('glvnd requires dri based glx')
|
||||
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
|
||||
|
||||
with_intel_vk = false
|
||||
with_amd_vk = false
|
||||
with_any_vk = false
|
||||
_vulkan_drivers = get_option('vulkan-drivers')
|
||||
if _vulkan_drivers != ''
|
||||
_split = _vulkan_drivers.split(',')
|
||||
with_intel_vk = _split.contains('intel')
|
||||
with_amd_vk = _split.contains('amd')
|
||||
with_any_vk = with_amd_vk or with_intel_vk
|
||||
if not (with_platform_x11 or with_platform_wayland)
|
||||
error('Vulkan requires at least one platform (x11, wayland)')
|
||||
endif
|
||||
endif
|
||||
|
||||
with_dri2 = (with_dri or with_any_vk) and with_dri_platform == 'drm'
|
||||
with_dri3 = get_option('dri3')
|
||||
if with_dri3 == 'auto'
|
||||
if host_machine.system() == 'linux' and with_dri2
|
||||
with_dri3 = true
|
||||
else
|
||||
with_dri3 = false
|
||||
endif
|
||||
elif with_dri3 == 'yes'
|
||||
with_dri3 = true
|
||||
else
|
||||
with_dri3 = false
|
||||
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 or with_gallium
|
||||
if with_glx == 'disabled' and not with_egl
|
||||
error('building dri or gallium drivers require at least one window system')
|
||||
endif
|
||||
endif
|
||||
|
||||
with_gallium_xvmc = false
|
||||
with_gallium_vdpau = false
|
||||
with_gallium_omx = false # this is bellagio
|
||||
with_gallium_va = false
|
||||
with_gallium_media = false
|
||||
dep_va = []
|
||||
_drivers = get_option('gallium-media')
|
||||
if _drivers != ''
|
||||
_split = _drivers.split(',')
|
||||
with_gallium_xvmc = _split.contains('xvmc')
|
||||
with_gallium_vdpau = _split.contains('vdpau')
|
||||
with_gallium_omx = _split.contains('omx')
|
||||
with_gallium_va = _split.contains('va')
|
||||
with_gallium_media = (with_gallium_xvmc or with_gallium_vdpau or
|
||||
with_gallium_omx or with_gallium_va)
|
||||
endif
|
||||
|
||||
gl_pkgconfig_c_flags = []
|
||||
if with_platform_x11
|
||||
if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm')
|
||||
pre_args += '-DHAVE_X11_PLATFORM'
|
||||
endif
|
||||
if with_glx == 'xlib'
|
||||
# TODO
|
||||
error('TODO')
|
||||
elif with_glx == 'gallium-xlib'
|
||||
# TODO
|
||||
error('TODO')
|
||||
else
|
||||
pre_args += '-DGLX_INDIRECT_RENDERING'
|
||||
if with_glx_direct
|
||||
pre_args += '-DGLX_DIRECT_RENDERING'
|
||||
endif
|
||||
if with_dri_platform == 'drm'
|
||||
pre_args += '-DGLX_USE_DRM'
|
||||
endif
|
||||
endif
|
||||
else
|
||||
pre_args += '-DMESA_EGL_NO_X11_HEADERS'
|
||||
gl_pkgconfig_c_flags += '-DMESA_EGL_NO_X11_HEADERS'
|
||||
endif
|
||||
if with_platform_drm
|
||||
if with_egl and not with_gbm
|
||||
error('EGL drm platform requires gbm')
|
||||
endif
|
||||
pre_args += '-DHAVE_DRM_PLATFORM'
|
||||
endif
|
||||
if with_platform_surfaceless
|
||||
pre_args += '-DHAVE_SURFACELESS_PLATFORM'
|
||||
endif
|
||||
|
||||
prog_python2 = find_program('python2')
|
||||
has_mako = run_command(prog_python2, '-c', 'import mako')
|
||||
if has_mako.returncode() != 0
|
||||
error('Python (2.x) mako module required to build mesa.')
|
||||
endif
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.4.6')
|
||||
error('When using GCC, version 4.4.6 or later is required.')
|
||||
endif
|
||||
|
||||
# Define DEBUG for debug and debugoptimized builds
|
||||
if get_option('buildtype').startswith('debug')
|
||||
pre_args += '-DDEBUG'
|
||||
endif
|
||||
|
||||
if get_option('shader-cache')
|
||||
pre_args += '-DENABLE_SHADER_CACHE'
|
||||
elif with_amd_vk
|
||||
error('Radv requires shader cache support')
|
||||
endif
|
||||
|
||||
# Check for GCC style builtins
|
||||
foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs',
|
||||
'ffsll', 'popcount', 'popcountll', 'unreachable']
|
||||
if cc.has_function(b)
|
||||
pre_args += '-DHAVE___BUILTIN_@0@'.format(b.to_upper())
|
||||
endif
|
||||
endforeach
|
||||
|
||||
# check for GCC __attribute__
|
||||
foreach a : ['const', 'flatten', 'malloc', 'pure', 'unused',
|
||||
'warn_unused_result', 'weak',]
|
||||
if cc.compiles('int foo(void) __attribute__((@0@));'.format(a),
|
||||
name : '__attribute__((@0@))'.format(a))
|
||||
pre_args += '-DHAVE_FUNC_ATTRIBUTE_@0@'.format(a.to_upper())
|
||||
endif
|
||||
endforeach
|
||||
if cc.compiles('int foo(const char *p, ...) __attribute__((format(printf, 1, 2)));',
|
||||
name : '__attribute__((format(...)))')
|
||||
pre_args += '-DHAVE_FUNC_ATTRIBUTE_FORMAT'
|
||||
endif
|
||||
if cc.compiles('struct __attribute__((packed)) foo { int bar; };',
|
||||
name : '__attribute__((packed))')
|
||||
pre_args += '-DHAVE_FUNC_ATTRIBUTE_PACKED'
|
||||
endif
|
||||
if cc.compiles('int *foo(void) __attribute__((returns_nonnull));',
|
||||
name : '__attribute__((returns_nonnull))')
|
||||
pre_args += '-DHAVE_FUNC_ATTRIBUTE_NONNULL'
|
||||
endif
|
||||
if cc.compiles('''int foo_def(void) __attribute__((visibility("default")));
|
||||
int foo_hid(void) __attribute__((visibility("hidden")));
|
||||
int foo_int(void) __attribute__((visibility("internal")));
|
||||
int foo_pro(void) __attribute__((visibility("protected")));''',
|
||||
name : '__attribute__((visibility(...)))')
|
||||
pre_args += '-DHAVE_FUNC_ATTRIBUTE_VISBILITY'
|
||||
endif
|
||||
if cc.compiles('int foo(void) { return 0; } int bar(void) __attribute__((alias("foo")));',
|
||||
name : '__attribute__((alias(...)))')
|
||||
pre_args += '-DHAVE_FUNC_ATTRIBUTE_ALIAS'
|
||||
endif
|
||||
|
||||
# TODO: this is very incomplete
|
||||
if host_machine.system() == 'linux'
|
||||
pre_args += '-D_GNU_SOURCE'
|
||||
endif
|
||||
|
||||
# Check for generic C arguments
|
||||
c_args = []
|
||||
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
|
||||
c_vis_args = []
|
||||
if cc.has_argument('-fvisibility=hidden')
|
||||
c_vis_args += '-fvisibility=hidden'
|
||||
endif
|
||||
|
||||
# Check for generic C++ arguments
|
||||
cpp = meson.get_compiler('cpp')
|
||||
cpp_args = []
|
||||
foreach a : ['-Wall', '-fno-math-errno', '-fno-trapping-math',
|
||||
'-Qunused-arguments', '-Wno-non-virtual-dtor']
|
||||
if cpp.has_argument(a)
|
||||
cpp_args += a
|
||||
endif
|
||||
endforeach
|
||||
cpp_vis_args = []
|
||||
if cpp.has_argument('-fvisibility=hidden')
|
||||
cpp_vis_args += '-fvisibility=hidden'
|
||||
endif
|
||||
|
||||
# Check for C and C++ arguments for MSVC2013 compatibility. These are only used
|
||||
# in parts of the mesa code base that need to compile with old versions of
|
||||
# MSVC, mainly common code
|
||||
c_msvc_compat_args = []
|
||||
cpp_msvc_compat_args = []
|
||||
foreach a : ['-Werror=pointer-arith', '-Werror=vla']
|
||||
if cc.has_argument(a)
|
||||
c_msvc_compat_args += a
|
||||
endif
|
||||
if cpp.has_argument(a)
|
||||
cpp_msvc_compat_args += a
|
||||
endif
|
||||
endforeach
|
||||
|
||||
no_override_init_args = []
|
||||
foreach a : ['-Wno-override-init', '-Wno-initializer-overrides']
|
||||
if cc.has_argument(a)
|
||||
no_override_init_args += a
|
||||
endif
|
||||
endforeach
|
||||
|
||||
# TODO: SSE41 (which is only required for core mesa)
|
||||
|
||||
# Check for GCC style atomics
|
||||
if cc.compiles('int main() { int n; return __atomic_load_n(&n, __ATOMIC_ACQUIRE); }',
|
||||
name : 'GCC atomic builtins')
|
||||
pre_args += '-DUSE_GCC_ATOMIC_BUILTINS'
|
||||
endif
|
||||
if not cc.links('''#include <stdint.h>
|
||||
uint64_t v;
|
||||
int main() {
|
||||
return __sync_add_and_fetch(&v, (uint64_t)1);
|
||||
}''',
|
||||
name : 'GCC 64bit atomics')
|
||||
pre_args += '-DMISSING_64_BIT_ATOMICS'
|
||||
endif
|
||||
|
||||
# TODO: endian
|
||||
# TODO: powr8
|
||||
# TODO: shared/static? Is this even worth doing?
|
||||
|
||||
# I don't think that I need to set any of the debug stuff, I think meson
|
||||
# handles that for us
|
||||
|
||||
# TODO: ldflags
|
||||
|
||||
# TODO: texture-float (gallium/mesa only)
|
||||
|
||||
# TODO: cross-compiling. I don't think this is relavent to meson
|
||||
|
||||
# FIXME: enable asm when cross compiler
|
||||
# This is doable (autotools does it), but it's not of immediate concern
|
||||
if meson.is_cross_build()
|
||||
message('Cross compiling, disabling asm')
|
||||
with_asm = false
|
||||
endif
|
||||
|
||||
with_asm_arch = ''
|
||||
if with_asm
|
||||
# TODO: SPARC and PPC
|
||||
if host_machine.cpu_family() == 'x86'
|
||||
if ['linux', 'bsd'].contains(host_machine.system()) # FIXME: hurd?
|
||||
with_asm_arch = 'x86'
|
||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||
'-DUSE_SSE_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'x86_64'
|
||||
if host_machine.system() == 'linux'
|
||||
with_asm_arch = 'x86_64'
|
||||
pre_args += ['-DUSE_X86_64_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'arm'
|
||||
if host_machine.system() == 'linux'
|
||||
with_asm_arch = 'arm'
|
||||
pre_args += ['-DUSE_ARM_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'aarch64'
|
||||
if host_machine.system() == 'linux'
|
||||
with_asm_arch = 'aarch64'
|
||||
pre_args += ['-DUSE_AARCH64_ASM']
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Check for standard headers and functions
|
||||
if cc.has_header_symbol('sys/sysmacros.h', 'major')
|
||||
pre_args += '-DMAJOR_IN_SYSMACROS'
|
||||
elif cc.has_header_symbol('sys/mkdev.h', 'major')
|
||||
pre_args += '-DMAJOR_IN_MKDEV'
|
||||
endif
|
||||
|
||||
foreach h : ['xlocale.h', 'sys/sysctl.h', 'endian.h']
|
||||
if cc.has_header(h)
|
||||
pre_args += '-DHAVE_@0@'.format(h.to_upper().underscorify())
|
||||
endif
|
||||
endforeach
|
||||
|
||||
foreach f : ['strtof', 'mkostemp', 'posix_memalign']
|
||||
if cc.has_function(f)
|
||||
pre_args += '-DHAVE_@0@'.format(f.to_upper())
|
||||
endif
|
||||
endforeach
|
||||
|
||||
# strtod locale support
|
||||
if cc.links('''
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <locale.h>
|
||||
#ifdef HAVE_XLOCALE_H
|
||||
#include <xlocale.h>
|
||||
#endif
|
||||
int main() {
|
||||
locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL);
|
||||
const char *s = "1.0";
|
||||
char *end;
|
||||
double d = strtod_l(s, end, loc);
|
||||
float f = strtod_l(s, end, loc);
|
||||
freelocale(loc);
|
||||
return 0;
|
||||
}''',
|
||||
extra_args : pre_args,
|
||||
name : 'strtod has locale support')
|
||||
pre_args += '-DHAVE_STRTOD_L'
|
||||
endif
|
||||
|
||||
# Check for some linker flags
|
||||
ld_args_bsymbolic = []
|
||||
if cc.links('int main() { return 0; }', args : '-Wl,-Bsymbolic', name : 'Bsymbolic')
|
||||
ld_args_bsymbolic += '-Wl,-Bsymbolic'
|
||||
endif
|
||||
ld_args_gc_sections = []
|
||||
if cc.links('static char unused() { return 5; } int main() { return 0; }',
|
||||
args : '-Wl,--gc-sections', name : 'gc-sections')
|
||||
ld_args_gc_sections += '-Wl,--gc-sections'
|
||||
endif
|
||||
with_ld_version_script = false
|
||||
if cc.links('int main() { return 0; }',
|
||||
args : '-Wl,--version-script=@0@'.format(
|
||||
join_paths(meson.source_root(), 'build-support/conftest.map')),
|
||||
name : 'version-script')
|
||||
with_ld_version_script = true
|
||||
endif
|
||||
with_ld_dynamic_list = false
|
||||
if cc.links('int main() { return 0; }',
|
||||
args : '-Wl,--dynamic-list=@0@'.format(
|
||||
join_paths(meson.source_root(), 'build-support/conftest.dyn')),
|
||||
name : 'dynamic-list')
|
||||
with_ld_dynamic_list = true
|
||||
endif
|
||||
|
||||
# check for dl support
|
||||
if cc.has_function('dlopen')
|
||||
dep_dl = []
|
||||
else
|
||||
dep_dl = cc.find_library('dl')
|
||||
endif
|
||||
if cc.has_function('dladdr', dependencies : dep_dl)
|
||||
# This is really only required for megadrivers
|
||||
pre_args += '-DHAVE_DLADDR'
|
||||
endif
|
||||
|
||||
if cc.has_function('dl_iterate_phdr')
|
||||
pre_args += '-DHAVE_DL_ITERATE_PHDR'
|
||||
else
|
||||
# TODO: this is required for vulkan
|
||||
endif
|
||||
|
||||
# Determine whether or not the rt library is needed for time functions
|
||||
if cc.has_function('clock_gettime')
|
||||
dep_clock = []
|
||||
else
|
||||
dep_clock = cc.find_library('rt')
|
||||
endif
|
||||
|
||||
with_gallium_drisw_kms = false
|
||||
dep_libdrm = dependency('libdrm', version : '>= 2.4.75',
|
||||
required : with_dri2 or with_dri3)
|
||||
if dep_libdrm.found()
|
||||
pre_args += '-DHAVE_LIBDRM'
|
||||
if with_dri_platform == 'drm' and with_dri
|
||||
with_gallium_drisw_kms = true
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO: some of these may be conditional
|
||||
dep_zlib = dependency('zlib', version : '>= 1.2.3')
|
||||
dep_thread = dependency('threads')
|
||||
if dep_thread.found() and host_machine.system() == 'linux'
|
||||
pre_args += '-DHAVE_PTHREAD'
|
||||
endif
|
||||
dep_elf = dependency('libelf', required : false)
|
||||
if not dep_elf.found() and (with_amd_vk or with_gallium_radeonsi) # TODO: clover, r600
|
||||
dep_elf = cc.find_library('elf')
|
||||
endif
|
||||
dep_expat = dependency('expat')
|
||||
# this only exists on linux so either this is linux and it will be found, or
|
||||
# its not linux and and wont
|
||||
dep_m = cc.find_library('m', required : false)
|
||||
|
||||
dep_libdrm_amdgpu = []
|
||||
dep_libdrm_radeon = []
|
||||
dep_libdrm_nouveau = []
|
||||
if with_amd_vk or with_gallium_radeonsi
|
||||
dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.89')
|
||||
endif
|
||||
if with_gallium_radeonsi # older radeon too
|
||||
dep_libdrm_radeon = dependency('libdrm_radeon', version : '>= 2.4.71')
|
||||
endif
|
||||
if with_gallium_nouveau
|
||||
dep_libdrm_nouveau = dependency('libdrm_nouveau', version : '>= 2.4.66')
|
||||
endif
|
||||
|
||||
llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit']
|
||||
if with_amd_vk
|
||||
llvm_modules += ['amdgpu', 'bitreader', 'ipo']
|
||||
endif
|
||||
dep_llvm = dependency(
|
||||
'llvm', version : '>= 3.9.0', required : with_amd_vk, modules : llvm_modules,
|
||||
)
|
||||
if with_llvm
|
||||
if dep_llvm.found()
|
||||
_llvm_version = dep_llvm.version().split('.')
|
||||
# Development versions of LLVM have an 'svn' suffix, we don't want that for
|
||||
# our version checks.
|
||||
_llvm_patch = _llvm_version[2]
|
||||
if _llvm_patch.endswith('svn')
|
||||
_llvm_patch = _llvm_patch.split('s')[0]
|
||||
endif
|
||||
pre_args += [
|
||||
'-DHAVE_LLVM=0x0@0@@1@@2@'.format(_llvm_version[0], _llvm_version[1], _llvm_patch),
|
||||
'-DMESA_LLVM_VERSION_PATCH=@0@'.format(_llvm_patch),
|
||||
]
|
||||
else
|
||||
if with_gallium_softpipe
|
||||
error('Cannot find LLVM to build LLVMPipe. If you wanted softpipe pass -Dllvm=false to meson')
|
||||
elif with_amd_vk or with_gallium_radeonsi # etc
|
||||
error('The following drivers requires LLVM: Radv, RadeonSI. One of these is enabled, but LLVM was not found.')
|
||||
endif
|
||||
endif
|
||||
elif with_amd_vk or with_gallium_radeonsi
|
||||
error('The following drivers requires LLVM: Radv, RadeonSI. One of these is enabled, but LLVM is disabled.')
|
||||
endif
|
||||
|
||||
dep_glvnd = []
|
||||
if with_glvnd
|
||||
dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
|
||||
pre_args += '-DUSE_LIBGLVND=1'
|
||||
endif
|
||||
|
||||
# TODO: make this conditional
|
||||
dep_valgrind = dependency('valgrind', required : false)
|
||||
if dep_valgrind.found() and with_valgrind
|
||||
pre_args += '-DHAVE_VALGRIND'
|
||||
endif
|
||||
|
||||
# pthread stubs. Lets not and say we didn't
|
||||
|
||||
prog_bison = find_program('bison', required : with_any_opengl)
|
||||
prog_flex = find_program('flex', required : with_any_opengl)
|
||||
|
||||
# TODO: selinux
|
||||
dep_selinux = []
|
||||
|
||||
# TODO: llvm-prefix and llvm-shared-libs
|
||||
|
||||
dep_unwind = dependency('libunwind', required : false)
|
||||
if dep_unwind.found()
|
||||
pre_args += '-DHAVE_LIBUNWIND'
|
||||
endif
|
||||
|
||||
# TODO: flags for opengl, gles, dri
|
||||
|
||||
# TODO: gallium-hud
|
||||
|
||||
# TODO: glx provider
|
||||
|
||||
# TODO: osmesa provider
|
||||
|
||||
# TODO: symbol mangling
|
||||
|
||||
if with_platform_wayland
|
||||
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')
|
||||
wayland_dmabuf_xml = join_paths(
|
||||
dep_wl_protocols.get_pkgconfig_variable('pkgdatadir'), 'unstable',
|
||||
'linux-dmabuf', 'linux-dmabuf-unstable-v1.xml'
|
||||
)
|
||||
pre_args += ['-DHAVE_WAYLAND_PLATFORM', '-DWL_HIDE_DEPRECATED']
|
||||
else
|
||||
prog_wl_scanner = []
|
||||
dep_wl_protocols = []
|
||||
dep_wayland_client = []
|
||||
dep_wayland_server = []
|
||||
wayland_dmabuf_xml = ''
|
||||
endif
|
||||
|
||||
dep_x11 = []
|
||||
dep_xext = []
|
||||
dep_xdamage = []
|
||||
dep_xfixes = []
|
||||
dep_x11_xcb = []
|
||||
dep_xcb_glx = []
|
||||
dep_xcb_dri2 = []
|
||||
dep_xcb_dri3 = []
|
||||
dep_dri2proto = []
|
||||
dep_glproto = []
|
||||
dep_xf86vm = []
|
||||
dep_xcb_dri3 = []
|
||||
dep_xcb_present = []
|
||||
dep_xcb_sync = []
|
||||
dep_xcb_xfixes = []
|
||||
dep_xshmfence = []
|
||||
if with_platform_x11
|
||||
if with_glx == 'dri' and with_dri_platform == 'drm'
|
||||
dep_x11 = dependency('x11')
|
||||
dep_xext = dependency('xext')
|
||||
dep_xdamage = dependency('xdamage', version : '>= 1.1')
|
||||
dep_xfixes = dependency('xfixes')
|
||||
dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1')
|
||||
dep_xf86vm = dependency('xxf86vm', required : false)
|
||||
endif
|
||||
if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm')
|
||||
dep_xcb = dependency('xcb')
|
||||
dep_x11_xcb = dependency('x11-xcb')
|
||||
dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8')
|
||||
|
||||
if with_dri3
|
||||
pre_args += '-DHAVE_DRI3'
|
||||
dep_xcb_dri3 = dependency('xcb-dri3')
|
||||
dep_xcb_present = dependency('xcb-present')
|
||||
dep_xcb_sync = dependency('xcb-sync')
|
||||
dep_xshmfence = dependency('xshmfence', version : '>= 1.1')
|
||||
endif
|
||||
endif
|
||||
if with_glx != 'disabled'
|
||||
dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
|
||||
dep_glproto = dependency('glproto', version : '>= 1.4.14')
|
||||
endif
|
||||
if with_egl
|
||||
dep_xcb_xfixes = dependency('xcb-xfixes')
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO: osmesa
|
||||
|
||||
# TODO: vallium G3DVL
|
||||
|
||||
# TODO: nine
|
||||
|
||||
# TODO: clover
|
||||
|
||||
# TODO: gallium tests
|
||||
|
||||
# TODO: various libdirs
|
||||
|
||||
# TODO: swr
|
||||
|
||||
# TODO: gallium driver dirs
|
||||
|
||||
# FIXME: this is a workaround for #2326
|
||||
prog_touch = find_program('touch')
|
||||
dummy_cpp = custom_target(
|
||||
'dummy_cpp',
|
||||
output : 'dummy.cpp',
|
||||
command : [prog_touch, '@OUTPUT@'],
|
||||
)
|
||||
|
||||
foreach a : pre_args
|
||||
add_project_arguments(a, language : ['c', 'cpp'])
|
||||
endforeach
|
||||
foreach a : c_args
|
||||
add_project_arguments(a, language : ['c'])
|
||||
endforeach
|
||||
foreach a : cpp_args
|
||||
add_project_arguments(a, language : ['cpp'])
|
||||
endforeach
|
||||
|
||||
inc_include = include_directories('include')
|
||||
|
||||
gl_priv_reqs = [
|
||||
'x11', 'xext', 'xdamage >= 1.1', 'xfixes', 'x11-xcb', 'xcb',
|
||||
'xcb-glx >= 1.8.1', 'libdrm >= 2.4.75',
|
||||
]
|
||||
if dep_xf86vm != [] and dep_xf86vm.found()
|
||||
gl_priv_reqs += 'xf86vm'
|
||||
endif
|
||||
if with_dri_platform == 'drm'
|
||||
gl_priv_reqs += 'xcb-dri2 >= 1.8'
|
||||
endif
|
||||
|
||||
gl_priv_libs = []
|
||||
if dep_thread.found()
|
||||
gl_priv_libs += ['-lpthread', '-pthread']
|
||||
endif
|
||||
if dep_m.found()
|
||||
gl_priv_libs += '-lm'
|
||||
endif
|
||||
if dep_dl.found()
|
||||
gl_priv_libs += '-ldl'
|
||||
endif
|
||||
|
||||
pkg = import('pkgconfig')
|
||||
|
||||
subdir('include')
|
||||
subdir('src')
|
@@ -1,156 +0,0 @@
|
||||
# Copyright © 2017 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
option(
|
||||
'platforms',
|
||||
type : 'string',
|
||||
value : 'x11,wayland,drm,surfaceless',
|
||||
description : 'comma separated list of window systems to support. wayland, x11, surfaceless, drm, etc.'
|
||||
)
|
||||
option(
|
||||
'dri3',
|
||||
type : 'combo',
|
||||
value : 'auto',
|
||||
choices : ['auto', 'yes', 'no'],
|
||||
description : 'enable support for dri3'
|
||||
)
|
||||
option(
|
||||
'dri-drivers',
|
||||
type : 'string',
|
||||
value : 'i915,i965',
|
||||
description : 'comma separated list of dri drivers to build.'
|
||||
)
|
||||
option(
|
||||
'dri-drivers-path',
|
||||
type : 'string',
|
||||
value : '',
|
||||
description : 'Location of dri drivers. Default: $libdir/dri.'
|
||||
)
|
||||
option(
|
||||
'gallium-drivers',
|
||||
type : 'string',
|
||||
value : 'pl111,radeonsi,nouveau,swrast,vc4',
|
||||
description : 'comma separated list of gallium drivers to build.'
|
||||
)
|
||||
option(
|
||||
'gallium-media',
|
||||
type : 'string',
|
||||
value : '',
|
||||
description : 'comma separated list of gallium media APIs to build (omx,va,vdpau,xvmc).'
|
||||
)
|
||||
option(
|
||||
'vulkan-drivers',
|
||||
type : 'string',
|
||||
value : 'intel,amd',
|
||||
description : 'comma separated list of vulkan drivers to build.'
|
||||
)
|
||||
option(
|
||||
'shader-cache',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build with on-disk shader cache support'
|
||||
)
|
||||
option(
|
||||
'vulkan-icd-dir',
|
||||
type : 'string',
|
||||
value : '',
|
||||
description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d'
|
||||
)
|
||||
option(
|
||||
'shared-glapi',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Whether to build a shared or static glapi'
|
||||
)
|
||||
option(
|
||||
'gles1',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build support for OpenGL ES 1.x'
|
||||
)
|
||||
option(
|
||||
'gles2',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build support for OpenGL ES 2.x and 3.x'
|
||||
)
|
||||
option(
|
||||
'opengl',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build support for OpenGL (all versions)'
|
||||
)
|
||||
option(
|
||||
'gbm',
|
||||
type : 'combo',
|
||||
value : 'auto',
|
||||
choices : ['auto', 'yes', 'no'],
|
||||
description : 'Build support for gbm platform'
|
||||
)
|
||||
option(
|
||||
'glx',
|
||||
type : 'combo',
|
||||
value : 'auto',
|
||||
choices : ['auto', 'disabled', 'dri', 'xlib', 'gallium-xlib'],
|
||||
description : 'Build support for GLX platform'
|
||||
)
|
||||
option(
|
||||
'egl',
|
||||
type : 'combo',
|
||||
value : 'auto',
|
||||
choices : ['auto', 'yes', 'no'],
|
||||
description : 'Build support for EGL platform'
|
||||
)
|
||||
option(
|
||||
'glvnd',
|
||||
type : 'boolean',
|
||||
value : false,
|
||||
description : 'Enable GLVND support.'
|
||||
)
|
||||
option(
|
||||
'asm',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build assembly code if possible'
|
||||
)
|
||||
option(
|
||||
'llvm',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build with LLVM support.'
|
||||
)
|
||||
option(
|
||||
'valgrind',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build with valgrind support if possible'
|
||||
)
|
||||
option(
|
||||
'build-tests',
|
||||
type : 'boolean',
|
||||
value : false,
|
||||
description : 'Build unit tests. Currently this will build *all* unit tests, which may build more than expected.'
|
||||
)
|
||||
option(
|
||||
'texture-float',
|
||||
type : 'boolean',
|
||||
value : false,
|
||||
description : 'Enable floating point textures and renderbuffers. This option may be patent encumbered, please read docs/patents.txt and consult with your lawyer before turning this on.'
|
||||
)
|
@@ -83,7 +83,7 @@ def shlib_emitter(target, source, env):
|
||||
no_import_lib = env.get('no_import_lib', 0)
|
||||
|
||||
if not dll:
|
||||
raise SCons.Errors.UserError("A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX"))
|
||||
raise SCons.Errors.UserError, "A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX")
|
||||
|
||||
if not no_import_lib and \
|
||||
not env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX'):
|
||||
|
@@ -113,7 +113,7 @@ def python_scan(node, env, path):
|
||||
finder = modulefinder.ModuleFinder(path=path)
|
||||
finder.run_script(node.abspath)
|
||||
results = []
|
||||
for name, mod in finder.modules.items():
|
||||
for name, mod in finder.modules.iteritems():
|
||||
if mod.__file__ is None:
|
||||
continue
|
||||
assert os.path.exists(mod.__file__)
|
||||
@@ -189,7 +189,7 @@ def _pkg_check_modules(env, name, modules):
|
||||
except OSError:
|
||||
return
|
||||
prefix = name + '_'
|
||||
for flag_name, flag_value in flags.items():
|
||||
for flag_name, flag_value in flags.iteritems():
|
||||
assert '_' not in flag_name
|
||||
env[prefix + flag_name] = flag_value
|
||||
|
||||
@@ -222,7 +222,7 @@ def pkg_use_modules(env, names):
|
||||
raise Exception('Attempt to use unavailable module %s' % name)
|
||||
|
||||
flags = {}
|
||||
for flag_name, flag_value in env.Dictionary().items():
|
||||
for flag_name, flag_value in env.Dictionary().iteritems():
|
||||
if flag_name.startswith(prefix):
|
||||
flag_name = flag_name[len(prefix):]
|
||||
if '_' not in flag_name:
|
||||
@@ -262,7 +262,7 @@ def parse_source_list(env, filename, names=None):
|
||||
|
||||
symbols = names
|
||||
else:
|
||||
symbols = list(sym_table.keys())
|
||||
symbols = sym_table.keys()
|
||||
|
||||
# convert the symbol table to source lists
|
||||
src_lists = {}
|
||||
|
@@ -51,7 +51,7 @@ def generate(env):
|
||||
elif env['machine'] == 'x86_64':
|
||||
target_cpu = 'x64'
|
||||
else:
|
||||
raise SCons.Errors.InternalError("Unsupported target machine")
|
||||
raise SCons.Errors.InternalError, "Unsupported target machine"
|
||||
|
||||
include_dir = os.path.join(dxsdk_root, 'Include')
|
||||
lib_dir = os.path.join(dxsdk_root, 'Lib', target_cpu)
|
||||
|
@@ -193,15 +193,15 @@ def generate(env):
|
||||
env.Tool(env['toolchain'])
|
||||
|
||||
# Allow override compiler and specify additional flags from environment
|
||||
if 'CC' in os.environ:
|
||||
if os.environ.has_key('CC'):
|
||||
env['CC'] = os.environ['CC']
|
||||
if 'CFLAGS' in os.environ:
|
||||
if os.environ.has_key('CFLAGS'):
|
||||
env['CCFLAGS'] += SCons.Util.CLVar(os.environ['CFLAGS'])
|
||||
if 'CXX' in os.environ:
|
||||
if os.environ.has_key('CXX'):
|
||||
env['CXX'] = os.environ['CXX']
|
||||
if 'CXXFLAGS' in os.environ:
|
||||
if os.environ.has_key('CXXFLAGS'):
|
||||
env['CXXFLAGS'] += SCons.Util.CLVar(os.environ['CXXFLAGS'])
|
||||
if 'LDFLAGS' in os.environ:
|
||||
if os.environ.has_key('LDFLAGS'):
|
||||
env['LINKFLAGS'] += SCons.Util.CLVar(os.environ['LDFLAGS'])
|
||||
|
||||
# Detect gcc/clang not by executable name, but through pre-defined macros
|
||||
@@ -257,16 +257,16 @@ def generate(env):
|
||||
# Backwards compatability with the debug= profile= options
|
||||
if env['build'] == 'debug':
|
||||
if not env['debug']:
|
||||
print('scons: warning: debug option is deprecated and will be removed eventually; use instead')
|
||||
print('')
|
||||
print(' scons build=release')
|
||||
print('')
|
||||
print 'scons: warning: debug option is deprecated and will be removed eventually; use instead'
|
||||
print
|
||||
print ' scons build=release'
|
||||
print
|
||||
env['build'] = 'release'
|
||||
if env['profile']:
|
||||
print('scons: warning: profile option is deprecated and will be removed eventually; use instead')
|
||||
print('')
|
||||
print(' scons build=profile')
|
||||
print('')
|
||||
print 'scons: warning: profile option is deprecated and will be removed eventually; use instead'
|
||||
print
|
||||
print ' scons build=profile'
|
||||
print
|
||||
env['build'] = 'profile'
|
||||
if False:
|
||||
# Enforce SConscripts to use the new build variable
|
||||
@@ -300,7 +300,7 @@ def generate(env):
|
||||
env['build_dir'] = build_dir
|
||||
env.SConsignFile(os.path.join(build_dir, '.sconsign'))
|
||||
if 'SCONS_CACHE_DIR' in os.environ:
|
||||
print('scons: Using build cache in %s.' % (os.environ['SCONS_CACHE_DIR'],))
|
||||
print 'scons: Using build cache in %s.' % (os.environ['SCONS_CACHE_DIR'],)
|
||||
env.CacheDir(os.environ['SCONS_CACHE_DIR'])
|
||||
env['CONFIGUREDIR'] = os.path.join(build_dir, 'conf')
|
||||
env['CONFIGURELOG'] = os.path.join(os.path.abspath(build_dir), 'config.log')
|
||||
@@ -352,9 +352,6 @@ def generate(env):
|
||||
if check_header(env, 'xlocale.h'):
|
||||
cppdefines += ['HAVE_XLOCALE_H']
|
||||
|
||||
if check_header(env, 'endian.h'):
|
||||
cppdefines += ['HAVE_ENDIAN_H']
|
||||
|
||||
if check_functions(env, ['strtod_l', 'strtof_l']):
|
||||
cppdefines += ['HAVE_STRTOD_L']
|
||||
|
||||
@@ -388,8 +385,8 @@ def generate(env):
|
||||
if env['embedded']:
|
||||
cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
|
||||
if env['texture_float']:
|
||||
print('warning: Floating-point textures enabled.')
|
||||
print('warning: Please consult docs/patents.txt with your lawyer before building Mesa.')
|
||||
print 'warning: Floating-point textures enabled.'
|
||||
print 'warning: Please consult docs/patents.txt with your lawyer before building Mesa.'
|
||||
cppdefines += ['TEXTURE_FLOAT_ENABLED']
|
||||
env.Append(CPPDEFINES = cppdefines)
|
||||
|
||||
|
@@ -50,7 +50,7 @@ def generate(env):
|
||||
llvm_dir = None
|
||||
else:
|
||||
if not os.path.isdir(llvm_dir):
|
||||
raise SCons.Errors.InternalError("Specified LLVM directory not found")
|
||||
raise SCons.Errors.InternalError, "Specified LLVM directory not found"
|
||||
|
||||
if env['debug']:
|
||||
llvm_subdir = 'Debug'
|
||||
@@ -61,20 +61,20 @@ def generate(env):
|
||||
if not os.path.isdir(llvm_bin_dir):
|
||||
llvm_bin_dir = os.path.join(llvm_dir, 'bin')
|
||||
if not os.path.isdir(llvm_bin_dir):
|
||||
raise SCons.Errors.InternalError("LLVM binary directory not found")
|
||||
raise SCons.Errors.InternalError, "LLVM binary directory not found"
|
||||
|
||||
env.PrependENVPath('PATH', llvm_bin_dir)
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
# XXX: There is no llvm-config on Windows, so assume a standard layout
|
||||
if llvm_dir is None:
|
||||
print('scons: LLVM environment variable must be specified when building for windows')
|
||||
print 'scons: LLVM environment variable must be specified when building for windows'
|
||||
return
|
||||
|
||||
# Try to determine the LLVM version from llvm/Config/config.h
|
||||
llvm_config = os.path.join(llvm_dir, 'include/llvm/Config/llvm-config.h')
|
||||
if not os.path.exists(llvm_config):
|
||||
print('scons: could not find %s' % llvm_config)
|
||||
print 'scons: could not find %s' % llvm_config
|
||||
return
|
||||
llvm_version_major_re = re.compile(r'^#define LLVM_VERSION_MAJOR ([0-9]+)')
|
||||
llvm_version_minor_re = re.compile(r'^#define LLVM_VERSION_MINOR ([0-9]+)')
|
||||
@@ -92,10 +92,10 @@ def generate(env):
|
||||
llvm_version = distutils.version.LooseVersion('%s.%s' % (llvm_version_major, llvm_version_minor))
|
||||
|
||||
if llvm_version is None:
|
||||
print('scons: could not determine the LLVM version from %s' % llvm_config)
|
||||
print 'scons: could not determine the LLVM version from %s' % llvm_config
|
||||
return
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
print('scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version))
|
||||
print 'scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version)
|
||||
return
|
||||
|
||||
env.Prepend(CPPPATH = [os.path.join(llvm_dir, 'include')])
|
||||
@@ -104,26 +104,7 @@ def generate(env):
|
||||
])
|
||||
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'):
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
||||
'LLVMDebugInfoCodeView', 'LLVMCodeGen',
|
||||
'LLVMScalarOpts', 'LLVMInstCombine',
|
||||
'LLVMTransformUtils',
|
||||
'LLVMBitWriter', 'LLVMX86Desc',
|
||||
'LLVMMCDisassembler', 'LLVMX86Info',
|
||||
'LLVMX86AsmPrinter', 'LLVMX86Utils',
|
||||
'LLVMMCJIT', 'LLVMExecutionEngine', 'LLVMTarget',
|
||||
'LLVMAnalysis', 'LLVMProfileData',
|
||||
'LLVMRuntimeDyld', 'LLVMObject', 'LLVMMCParser',
|
||||
'LLVMBitReader', 'LLVMMC', 'LLVMCore',
|
||||
'LLVMSupport',
|
||||
'LLVMIRReader', 'LLVMAsmParser',
|
||||
'LLVMDemangle', 'LLVMGlobalISel', 'LLVMDebugInfoMSF',
|
||||
'LLVMBinaryFormat',
|
||||
])
|
||||
elif llvm_version >= distutils.version.LooseVersion('4.0'):
|
||||
if llvm_version >= distutils.version.LooseVersion('4.0'):
|
||||
env.Prepend(LIBS = [
|
||||
'LLVMX86Disassembler', 'LLVMX86AsmParser',
|
||||
'LLVMX86CodeGen', 'LLVMSelectionDAG', 'LLVMAsmPrinter',
|
||||
@@ -231,14 +212,14 @@ def generate(env):
|
||||
else:
|
||||
llvm_config = os.environ.get('LLVM_CONFIG', 'llvm-config')
|
||||
if not env.Detect(llvm_config):
|
||||
print('scons: %s script not found' % llvm_config)
|
||||
print 'scons: %s script not found' % llvm_config
|
||||
return
|
||||
|
||||
llvm_version = env.backtick('%s --version' % llvm_config).rstrip()
|
||||
llvm_version = distutils.version.LooseVersion(llvm_version)
|
||||
|
||||
if llvm_version < distutils.version.LooseVersion(required_llvm_version):
|
||||
print('scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version))
|
||||
print 'scons: LLVM version %s found, but %s is required' % (llvm_version, required_llvm_version)
|
||||
return
|
||||
|
||||
try:
|
||||
@@ -264,13 +245,13 @@ def generate(env):
|
||||
env.ParseConfig('%s --system-libs' % llvm_config)
|
||||
env.Append(CXXFLAGS = ['-std=c++11'])
|
||||
except OSError:
|
||||
print('scons: llvm-config version %s failed' % llvm_version)
|
||||
print 'scons: llvm-config version %s failed' % llvm_version
|
||||
return
|
||||
|
||||
assert llvm_version is not None
|
||||
env['llvm'] = True
|
||||
|
||||
print('scons: Found LLVM version %s' % llvm_version)
|
||||
print 'scons: Found LLVM version %s' % llvm_version
|
||||
env['LLVM_VERSION'] = llvm_version
|
||||
|
||||
# Define HAVE_LLVM macro with the major/minor version number (e.g., 0x0206 for 2.6)
|
||||
|
@@ -21,7 +21,7 @@
|
||||
|
||||
.PHONY: git_sha1.h.tmp
|
||||
git_sha1.h.tmp:
|
||||
@$(PYTHON2) $(top_srcdir)/bin/git_sha1_gen.py > $@
|
||||
@sh $(top_srcdir)/bin/git_sha1_gen.sh > $@
|
||||
|
||||
git_sha1.h: git_sha1.h.tmp
|
||||
@echo "updating git_sha1.h"
|
||||
@@ -33,7 +33,7 @@ git_sha1.h: git_sha1.h.tmp
|
||||
|
||||
BUILT_SOURCES = git_sha1.h
|
||||
CLEANFILES = $(BUILT_SOURCES)
|
||||
EXTRA_DIST = git_sha1.h.in
|
||||
EXTRA_DIST =
|
||||
|
||||
SUBDIRS = . gtest util mapi/glapi/gen mapi
|
||||
|
||||
@@ -64,7 +64,7 @@ endif
|
||||
# include only conditionally ?
|
||||
SUBDIRS += compiler
|
||||
|
||||
## Optionally required by GBM, EGL
|
||||
## Optionally required by GBM, EGL and Vulkan
|
||||
if HAVE_PLATFORM_WAYLAND
|
||||
SUBDIRS += egl/wayland/wayland-drm
|
||||
endif
|
||||
@@ -72,9 +72,7 @@ endif
|
||||
if HAVE_VULKAN_COMMON
|
||||
SUBDIRS += vulkan
|
||||
endif
|
||||
|
||||
EXTRA_DIST += vulkan/registry/vk.xml
|
||||
EXTRA_DIST += vulkan/registry/vk_android_native_buffer.xml
|
||||
|
||||
if HAVE_AMD_DRIVERS
|
||||
SUBDIRS += amd
|
||||
@@ -84,7 +82,7 @@ if HAVE_INTEL_DRIVERS
|
||||
SUBDIRS += intel
|
||||
endif
|
||||
|
||||
if HAVE_BROADCOM_DRIVERS
|
||||
if HAVE_GALLIUM_VC4
|
||||
SUBDIRS += broadcom
|
||||
endif
|
||||
|
||||
|
@@ -1,14 +1,12 @@
|
||||
import filecmp
|
||||
import os
|
||||
import subprocess
|
||||
from sys import executable as python_cmd
|
||||
|
||||
Import('*')
|
||||
|
||||
if env['platform'] == 'windows':
|
||||
SConscript('getopt/SConscript')
|
||||
|
||||
SConscript('util/xmlpool/SConscript')
|
||||
SConscript('util/SConscript')
|
||||
SConscript('compiler/SConscript')
|
||||
|
||||
@@ -26,11 +24,11 @@ def write_git_sha1_h_file(filename):
|
||||
|
||||
tempfile = "git_sha1.h.tmp"
|
||||
with open(tempfile, "w") as f:
|
||||
args = [ python_cmd, Dir('#').abspath + '/bin/git_sha1_gen.py' ]
|
||||
args = [ 'sh', Dir('#').abspath + '/bin/git_sha1_gen.sh' ]
|
||||
try:
|
||||
subprocess.Popen(args, stdout=f).wait()
|
||||
except:
|
||||
print("Warning: exception in write_git_sha1_h_file()")
|
||||
print "Warning: exception in write_git_sha1_h_file()"
|
||||
return
|
||||
|
||||
if not os.path.exists(filename) or not filecmp.cmp(tempfile, filename):
|
||||
|
@@ -31,8 +31,7 @@ LOCAL_MODULE := libmesa_amd_common
|
||||
LOCAL_SRC_FILES := \
|
||||
$(AMD_COMMON_FILES) \
|
||||
$(AMD_COMPILER_FILES) \
|
||||
$(AMD_DEBUG_FILES) \
|
||||
$(AMD_NIR_FILES)
|
||||
$(AMD_DEBUG_FILES)
|
||||
|
||||
LOCAL_CFLAGS += -DFORCE_BUILD_AMDGPU # instructs LLVM to declare LLVMInitializeAMDGPU* functions
|
||||
|
||||
@@ -44,7 +43,7 @@ LOCAL_GENERATED_SOURCES := $(addprefix $(intermediates)/, $(AMD_GENERATED_FILES)
|
||||
$(LOCAL_GENERATED_SOURCES): PRIVATE_PYTHON := $(MESA_PYTHON2)
|
||||
$(LOCAL_GENERATED_SOURCES): PRIVATE_CUSTOM_TOOL = $(PRIVATE_PYTHON) $^ > $@
|
||||
|
||||
$(intermediates)/common/sid_tables.h: $(LOCAL_PATH)/common/sid_tables.py $(LOCAL_PATH)/common/sid.h $(LOCAL_PATH)/common/gfx9d.h
|
||||
$(intermediates)/common/sid_tables.h: $(LOCAL_PATH)/common/sid_tables.py $(MESA_TOP)/src/amd/common/sid.h
|
||||
$(transform-generated-source)
|
||||
|
||||
LOCAL_C_INCLUDES := \
|
||||
|
@@ -58,8 +58,13 @@ common_libamd_common_la_SOURCES = \
|
||||
$(AMD_COMMON_FILES) \
|
||||
$(AMD_COMPILER_FILES) \
|
||||
$(AMD_DEBUG_FILES) \
|
||||
$(AMD_GENERATED_FILES) \
|
||||
$(AMD_NIR_FILES)
|
||||
$(AMD_GENERATED_FILES)
|
||||
|
||||
# nir_to_llvm requires LLVM 3.9, which is only required as a minimum when
|
||||
# radv is built.
|
||||
if HAVE_RADEON_VULKAN
|
||||
common_libamd_common_la_SOURCES += $(AMD_NIR_FILES)
|
||||
endif
|
||||
endif
|
||||
|
||||
common_libamd_common_la_LIBADD = $(LIBELF_LIBS)
|
||||
|
@@ -1,6 +1,7 @@
|
||||
COMMON_HEADER_FILES = \
|
||||
common/gfx9d.h \
|
||||
common/sid.h \
|
||||
common/r600d_common.h \
|
||||
common/amd_family.h \
|
||||
common/amd_kernel_code_t.h \
|
||||
common/amdgpu_id.h
|
||||
@@ -47,7 +48,6 @@ AMD_COMPILER_FILES = \
|
||||
common/ac_llvm_helper.cpp \
|
||||
common/ac_llvm_util.c \
|
||||
common/ac_llvm_util.h \
|
||||
common/ac_shader_abi.h \
|
||||
common/ac_shader_info.c \
|
||||
common/ac_shader_info.h
|
||||
|
||||
|
@@ -1675,37 +1675,3 @@ ADDR_E_RETURNCODE ADDR_API Addr2GetPreferredSurfaceSetting(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2IsValidDisplaySwizzleMode
|
||||
*
|
||||
* @brief
|
||||
* Return whether the swizzle mode is supported by DCE / DCN.
|
||||
****************************************************************************************************
|
||||
*/
|
||||
ADDR_E_RETURNCODE ADDR_API Addr2IsValidDisplaySwizzleMode(
|
||||
ADDR_HANDLE hLib,
|
||||
AddrSwizzleMode swizzleMode,
|
||||
UINT_32 bpp,
|
||||
bool *result)
|
||||
{
|
||||
ADDR_E_RETURNCODE returnCode;
|
||||
|
||||
V2::Lib* pLib = V2::Lib::GetLib(hLib);
|
||||
|
||||
if (pLib != NULL)
|
||||
{
|
||||
ADDR2_COMPUTE_SURFACE_INFO_INPUT in;
|
||||
in.swizzleMode = swizzleMode;
|
||||
in.bpp = bpp;
|
||||
|
||||
*result = pLib->IsValidDisplaySwizzleMode(&in);
|
||||
returnCode = ADDR_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
returnCode = ADDR_ERROR;
|
||||
}
|
||||
|
||||
return returnCode;
|
||||
}
|
||||
|
@@ -3653,20 +3653,6 @@ ADDR_E_RETURNCODE ADDR_API Addr2GetPreferredSurfaceSetting(
|
||||
const ADDR2_GET_PREFERRED_SURF_SETTING_INPUT* pIn,
|
||||
ADDR2_GET_PREFERRED_SURF_SETTING_OUTPUT* pOut);
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2IsValidDisplaySwizzleMode
|
||||
*
|
||||
* @brief
|
||||
* Return whether the swizzle mode is supported by DCE / DCN.
|
||||
****************************************************************************************************
|
||||
*/
|
||||
ADDR_E_RETURNCODE ADDR_API Addr2IsValidDisplaySwizzleMode(
|
||||
ADDR_HANDLE hLib,
|
||||
AddrSwizzleMode swizzleMode,
|
||||
UINT_32 bpp,
|
||||
bool *result);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -36,30 +36,22 @@
|
||||
|
||||
#include "addrinterface.h"
|
||||
|
||||
|
||||
// ADDR_LNX_KERNEL_BUILD is for internal build
|
||||
// Moved from addrinterface.h so __KERNEL__ is not needed any more
|
||||
#if ADDR_LNX_KERNEL_BUILD // || (defined(__GNUC__) && defined(__KERNEL__))
|
||||
#include "lnx_common_defs.h" // ported from cmmqs
|
||||
#elif !defined(__APPLE__) || defined(HAVE_TSERVER)
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#if BRAHMA_BUILD && !defined(DEBUG)
|
||||
#ifdef NDEBUG
|
||||
#define DEBUG 0
|
||||
#else
|
||||
#define DEBUG 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Platform specific debug break defines
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#if DEBUG
|
||||
#if defined(__GNUC__)
|
||||
#define ADDR_DBG_BREAK() assert(false)
|
||||
#define ADDR_DBG_BREAK()
|
||||
#elif defined(__APPLE__)
|
||||
#define ADDR_DBG_BREAK() { IOPanic("");}
|
||||
#else
|
||||
@@ -79,21 +71,21 @@
|
||||
#define ADDR_ANALYSIS_ASSUME(expr) do { (void)(expr); } while (0)
|
||||
#endif
|
||||
|
||||
#if BRAHMA_BUILD
|
||||
#define ADDR_ASSERT(__e) assert(__e)
|
||||
#elif DEBUG
|
||||
#if DEBUG
|
||||
#define ADDR_ASSERT(__e) \
|
||||
do { \
|
||||
ADDR_ANALYSIS_ASSUME(__e); \
|
||||
if ( !((__e) ? TRUE : FALSE)) { ADDR_DBG_BREAK(); } \
|
||||
} while (0)
|
||||
#define ADDR_ASSERT_ALWAYS() ADDR_DBG_BREAK()
|
||||
#define ADDR_UNHANDLED_CASE() ADDR_ASSERT(!"Unhandled case")
|
||||
#define ADDR_NOT_IMPLEMENTED() ADDR_ASSERT(!"Not implemented");
|
||||
#else //DEBUG
|
||||
#define ADDR_ASSERT(__e) ADDR_ANALYSIS_ASSUME(__e)
|
||||
#define ADDR_ASSERT_ALWAYS()
|
||||
#define ADDR_UNHANDLED_CASE()
|
||||
#define ADDR_NOT_IMPLEMENTED()
|
||||
#endif //DEBUG
|
||||
|
||||
#define ADDR_ASSERT_ALWAYS() ADDR_DBG_BREAK()
|
||||
#define ADDR_UNHANDLED_CASE() ADDR_ASSERT(!"Unhandled case")
|
||||
#define ADDR_NOT_IMPLEMENTED() ADDR_ASSERT(!"Not implemented");
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@@ -178,13 +178,6 @@ public:
|
||||
const ADDR2_GET_PREFERRED_SURF_SETTING_INPUT* pIn,
|
||||
ADDR2_GET_PREFERRED_SURF_SETTING_OUTPUT* pOut) const;
|
||||
|
||||
virtual BOOL_32 IsValidDisplaySwizzleMode(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn) const
|
||||
{
|
||||
ADDR_NOT_IMPLEMENTED();
|
||||
return ADDR_NOTIMPLEMENTED;
|
||||
}
|
||||
|
||||
protected:
|
||||
Lib(); // Constructor is protected
|
||||
Lib(const Client* pClient);
|
||||
|
@@ -216,16 +216,20 @@ VOID Object::DebugPrint(
|
||||
#if DEBUG
|
||||
if (m_client.callbacks.debugPrint != NULL)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, pDebugString);
|
||||
|
||||
ADDR_DEBUGPRINT_INPUT debugPrintInput = {0};
|
||||
|
||||
debugPrintInput.size = sizeof(ADDR_DEBUGPRINT_INPUT);
|
||||
debugPrintInput.pDebugString = const_cast<CHAR*>(pDebugString);
|
||||
debugPrintInput.hClient = m_client.handle;
|
||||
va_start(debugPrintInput.ap, pDebugString);
|
||||
va_copy(debugPrintInput.ap, ap);
|
||||
|
||||
m_client.callbacks.debugPrint(&debugPrintInput);
|
||||
|
||||
va_end(debugPrintInput.ap);
|
||||
va_end(ap);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@@ -268,8 +268,7 @@ ADDR_E_RETURNCODE Gfx9Lib::HwlComputeCmaskInfo(
|
||||
ADDR2_COMPUTE_CMASK_INFO_OUTPUT* pOut ///< [out] output structure
|
||||
) const
|
||||
{
|
||||
// TODO: Clarify with AddrLib team
|
||||
// ADDR_ASSERT(pIn->resourceType == ADDR_RSRC_TEX_2D);
|
||||
ADDR_ASSERT(pIn->resourceType == ADDR_RSRC_TEX_2D);
|
||||
|
||||
UINT_32 numPipeTotal = GetPipeNumForMetaAddressing(pIn->cMaskFlags.pipeAligned,
|
||||
pIn->swizzleMode);
|
||||
|
@@ -97,9 +97,6 @@ public:
|
||||
return (pMem != NULL) ? new (pMem) Gfx9Lib(pClient) : NULL;
|
||||
}
|
||||
|
||||
virtual BOOL_32 IsValidDisplaySwizzleMode(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn) const;
|
||||
|
||||
protected:
|
||||
Gfx9Lib(const Client* pClient);
|
||||
virtual ~Gfx9Lib();
|
||||
@@ -408,6 +405,8 @@ private:
|
||||
UINT_32 mip0Width, UINT_32 mip0Height, UINT_32 mip0Depth,
|
||||
UINT_32* pNumMetaBlkX, UINT_32* pNumMetaBlkY, UINT_32* pNumMetaBlkZ) const;
|
||||
|
||||
BOOL_32 IsValidDisplaySwizzleMode(const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn) const;
|
||||
|
||||
Gfx9ChipSettings m_settings;
|
||||
};
|
||||
|
||||
|
@@ -1,63 +0,0 @@
|
||||
# Copyright © 2017 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
files_addrlib = files(
|
||||
'addrinterface.cpp',
|
||||
'addrinterface.h',
|
||||
'addrtypes.h',
|
||||
'core/addrcommon.h',
|
||||
'core/addrelemlib.cpp',
|
||||
'core/addrelemlib.h',
|
||||
'core/addrlib.cpp',
|
||||
'core/addrlib.h',
|
||||
'core/addrlib1.cpp',
|
||||
'core/addrlib1.h',
|
||||
'core/addrlib2.cpp',
|
||||
'core/addrlib2.h',
|
||||
'core/addrobject.cpp',
|
||||
'core/addrobject.h',
|
||||
'gfx9/chip/gfx9_enum.h',
|
||||
'gfx9/coord.cpp',
|
||||
'gfx9/coord.h',
|
||||
'gfx9/gfx9addrlib.cpp',
|
||||
'gfx9/gfx9addrlib.h',
|
||||
'gfx9/rbmap.cpp',
|
||||
'gfx9/rbmap.h',
|
||||
'inc/chip/gfx9/gfx9_gb_reg.h',
|
||||
'inc/chip/r800/si_gb_reg.h',
|
||||
'inc/lnx_common_defs.h',
|
||||
'r800/chip/si_ci_vi_merged_enum.h',
|
||||
'r800/ciaddrlib.cpp',
|
||||
'r800/ciaddrlib.h',
|
||||
'r800/egbaddrlib.cpp',
|
||||
'r800/egbaddrlib.h',
|
||||
'r800/siaddrlib.cpp',
|
||||
'r800/siaddrlib.h',
|
||||
)
|
||||
|
||||
libamdgpu_addrlib = static_library(
|
||||
'addrlib',
|
||||
files_addrlib,
|
||||
include_directories : include_directories(
|
||||
'core', 'inc/chip/gfx9', 'inc/chip/r800', 'gfx9/chip', 'r800/chip',
|
||||
'../common', '../../'),
|
||||
cpp_args : [cpp_vis_args, '-DBRAHMA_BUILD=1'],
|
||||
build_by_default : false,
|
||||
)
|
@@ -747,7 +747,7 @@ ADDR_E_RETURNCODE CiLib::HwlComputeSurfaceInfo(
|
||||
|
||||
SiLib::HwlComputeSurfaceInfo(&localIn, pOut);
|
||||
|
||||
ADDR_ASSERT(((MinDepth2DThinIndex <= pOut->tileIndex) && (MaxDepth2DThinIndex >= pOut->tileIndex)) || pOut->tileIndex == Depth1DThinIndex);
|
||||
ADDR_ASSERT((MinDepth2DThinIndex <= pOut->tileIndex) && (MaxDepth2DThinIndex >= pOut->tileIndex));
|
||||
|
||||
depthStencil2DTileConfigMatch = DepthStencilTileCfgMatch(pIn, pOut);
|
||||
}
|
||||
|
@@ -1,3 +0,0 @@
|
||||
[*.{c,h}]
|
||||
indent_style = tab
|
||||
indent_size = tab
|
@@ -252,7 +252,6 @@ void ac_shader_binary_read_config(struct ac_shader_binary *binary,
|
||||
case R_00B128_SPI_SHADER_PGM_RSRC1_VS:
|
||||
case R_00B228_SPI_SHADER_PGM_RSRC1_GS:
|
||||
case R_00B848_COMPUTE_PGM_RSRC1:
|
||||
case R_00B428_SPI_SHADER_PGM_RSRC1_HS:
|
||||
conf->num_sgprs = MAX2(conf->num_sgprs, (G_00B028_SGPRS(value) + 1) * 8);
|
||||
conf->num_vgprs = MAX2(conf->num_vgprs, (G_00B028_VGPRS(value) + 1) * 4);
|
||||
conf->float_mode = G_00B028_FLOAT_MODE(value);
|
||||
|
@@ -36,32 +36,31 @@ struct ac_shader_reloc {
|
||||
};
|
||||
|
||||
struct ac_shader_binary {
|
||||
unsigned code_size;
|
||||
unsigned config_size;
|
||||
/** The number of bytes of config information for each global symbol.
|
||||
*/
|
||||
unsigned config_size_per_symbol;
|
||||
unsigned rodata_size;
|
||||
unsigned global_symbol_count;
|
||||
unsigned reloc_count;
|
||||
|
||||
/** Shader code */
|
||||
unsigned char *code;
|
||||
unsigned code_size;
|
||||
|
||||
/** Config/Context register state that accompanies this shader.
|
||||
* This is a stream of dword pairs. First dword contains the
|
||||
* register address, the second dword contains the value.*/
|
||||
unsigned char *config;
|
||||
unsigned config_size;
|
||||
|
||||
/** The number of bytes of config information for each global symbol.
|
||||
*/
|
||||
unsigned config_size_per_symbol;
|
||||
|
||||
/** Constant data accessed by the shader. This will be uploaded
|
||||
* into a constant buffer. */
|
||||
unsigned char *rodata;
|
||||
unsigned rodata_size;
|
||||
|
||||
/** List of symbol offsets for the shader */
|
||||
uint64_t *global_symbol_offsets;
|
||||
unsigned global_symbol_count;
|
||||
|
||||
struct ac_shader_reloc *relocs;
|
||||
unsigned reloc_count;
|
||||
|
||||
/** Disassembled shader in a string. */
|
||||
char *disasm_string;
|
||||
|
@@ -26,24 +26,11 @@
|
||||
|
||||
#include "ac_debug.h"
|
||||
|
||||
#ifdef HAVE_VALGRIND
|
||||
#include <valgrind.h>
|
||||
#include <memcheck.h>
|
||||
#define VG(x) x
|
||||
#else
|
||||
#define VG(x)
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "sid.h"
|
||||
#include "gfx9d.h"
|
||||
#include "sid_tables.h"
|
||||
#include "util/u_math.h"
|
||||
#include "util/u_memory.h"
|
||||
#include "util/u_string.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
/* Parsed IBs are difficult to read without colors. Use "less -R file" to
|
||||
* read them, or use "aha -b -f file" to convert them to html.
|
||||
@@ -56,21 +43,6 @@
|
||||
|
||||
#define INDENT_PKT 8
|
||||
|
||||
struct ac_ib_parser {
|
||||
FILE *f;
|
||||
uint32_t *ib;
|
||||
unsigned num_dw;
|
||||
const int *trace_ids;
|
||||
unsigned trace_id_count;
|
||||
enum chip_class chip_class;
|
||||
ac_debug_addr_callback addr_callback;
|
||||
void *addr_callback_data;
|
||||
|
||||
unsigned cur_dw;
|
||||
};
|
||||
|
||||
static void ac_do_parse_ib(FILE *f, struct ac_ib_parser *ib);
|
||||
|
||||
static void print_spaces(FILE *f, unsigned num)
|
||||
{
|
||||
fprintf(f, "%*s", num, "");
|
||||
@@ -103,108 +75,65 @@ static void print_named_value(FILE *file, const char *name, uint32_t value,
|
||||
print_value(file, value, bits);
|
||||
}
|
||||
|
||||
static const struct si_reg *find_register(const struct si_reg *table,
|
||||
unsigned table_size,
|
||||
unsigned offset)
|
||||
void ac_dump_reg(FILE *file, unsigned offset, uint32_t value,
|
||||
uint32_t field_mask)
|
||||
{
|
||||
for (unsigned i = 0; i < table_size; i++) {
|
||||
const struct si_reg *reg = &table[i];
|
||||
int r, f;
|
||||
|
||||
if (reg->offset == offset)
|
||||
return reg;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void ac_dump_reg(FILE *file, enum chip_class chip_class, unsigned offset,
|
||||
uint32_t value, uint32_t field_mask)
|
||||
{
|
||||
const struct si_reg *reg = NULL;
|
||||
|
||||
if (chip_class >= GFX9)
|
||||
reg = find_register(gfx9d_reg_table, ARRAY_SIZE(gfx9d_reg_table), offset);
|
||||
if (!reg)
|
||||
reg = find_register(sid_reg_table, ARRAY_SIZE(sid_reg_table), offset);
|
||||
|
||||
if (reg) {
|
||||
for (r = 0; r < ARRAY_SIZE(sid_reg_table); r++) {
|
||||
const struct si_reg *reg = &sid_reg_table[r];
|
||||
const char *reg_name = sid_strings + reg->name_offset;
|
||||
bool first_field = true;
|
||||
|
||||
print_spaces(file, INDENT_PKT);
|
||||
fprintf(file, COLOR_YELLOW "%s" COLOR_RESET " <- ",
|
||||
reg_name);
|
||||
if (reg->offset == offset) {
|
||||
bool first_field = true;
|
||||
|
||||
if (!reg->num_fields) {
|
||||
print_value(file, value, 32);
|
||||
print_spaces(file, INDENT_PKT);
|
||||
fprintf(file, COLOR_YELLOW "%s" COLOR_RESET " <- ",
|
||||
reg_name);
|
||||
|
||||
if (!reg->num_fields) {
|
||||
print_value(file, value, 32);
|
||||
return;
|
||||
}
|
||||
|
||||
for (f = 0; f < reg->num_fields; f++) {
|
||||
const struct si_field *field = sid_fields_table + reg->fields_offset + f;
|
||||
const int *values_offsets = sid_strings_offsets + field->values_offset;
|
||||
uint32_t val = (value & field->mask) >>
|
||||
(ffs(field->mask) - 1);
|
||||
|
||||
if (!(field->mask & field_mask))
|
||||
continue;
|
||||
|
||||
/* Indent the field. */
|
||||
if (!first_field)
|
||||
print_spaces(file,
|
||||
INDENT_PKT + strlen(reg_name) + 4);
|
||||
|
||||
/* Print the field. */
|
||||
fprintf(file, "%s = ", sid_strings + field->name_offset);
|
||||
|
||||
if (val < field->num_values && values_offsets[val] >= 0)
|
||||
fprintf(file, "%s\n", sid_strings + values_offsets[val]);
|
||||
else
|
||||
print_value(file, val,
|
||||
util_bitcount(field->mask));
|
||||
|
||||
first_field = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
for (unsigned f = 0; f < reg->num_fields; f++) {
|
||||
const struct si_field *field = sid_fields_table + reg->fields_offset + f;
|
||||
const int *values_offsets = sid_strings_offsets + field->values_offset;
|
||||
uint32_t val = (value & field->mask) >>
|
||||
(ffs(field->mask) - 1);
|
||||
|
||||
if (!(field->mask & field_mask))
|
||||
continue;
|
||||
|
||||
/* Indent the field. */
|
||||
if (!first_field)
|
||||
print_spaces(file,
|
||||
INDENT_PKT + strlen(reg_name) + 4);
|
||||
|
||||
/* Print the field. */
|
||||
fprintf(file, "%s = ", sid_strings + field->name_offset);
|
||||
|
||||
if (val < field->num_values && values_offsets[val] >= 0)
|
||||
fprintf(file, "%s\n", sid_strings + values_offsets[val]);
|
||||
else
|
||||
print_value(file, val,
|
||||
util_bitcount(field->mask));
|
||||
|
||||
first_field = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
print_spaces(file, INDENT_PKT);
|
||||
fprintf(file, COLOR_YELLOW "0x%05x" COLOR_RESET " <- 0x%08x\n", offset, value);
|
||||
}
|
||||
|
||||
static uint32_t ac_ib_get(struct ac_ib_parser *ib)
|
||||
static void ac_parse_set_reg_packet(FILE *f, uint32_t *ib, unsigned count,
|
||||
unsigned reg_offset)
|
||||
{
|
||||
uint32_t v = 0;
|
||||
|
||||
if (ib->cur_dw < ib->num_dw) {
|
||||
v = ib->ib[ib->cur_dw];
|
||||
#ifdef HAVE_VALGRIND
|
||||
/* Help figure out where garbage data is written to IBs.
|
||||
*
|
||||
* Arguably we should do this already when the IBs are written,
|
||||
* see RADEON_VALGRIND. The problem is that client-requests to
|
||||
* Valgrind have an overhead even when Valgrind isn't running,
|
||||
* and radeon_emit is performance sensitive...
|
||||
*/
|
||||
if (VALGRIND_CHECK_VALUE_IS_DEFINED(v))
|
||||
fprintf(ib->f, COLOR_RED "Valgrind: The next DWORD is garbage"
|
||||
COLOR_RESET "\n");
|
||||
#endif
|
||||
fprintf(ib->f, "\n\035#%08x ", v);
|
||||
} else {
|
||||
fprintf(ib->f, "\n\035#???????? ");
|
||||
}
|
||||
|
||||
ib->cur_dw++;
|
||||
return v;
|
||||
}
|
||||
|
||||
static void ac_parse_set_reg_packet(FILE *f, unsigned count, unsigned reg_offset,
|
||||
struct ac_ib_parser *ib)
|
||||
{
|
||||
unsigned reg_dw = ac_ib_get(ib);
|
||||
unsigned reg = ((reg_dw & 0xFFFF) << 2) + reg_offset;
|
||||
unsigned index = reg_dw >> 28;
|
||||
unsigned reg = ((ib[1] & 0xFFFF) << 2) + reg_offset;
|
||||
unsigned index = ib[1] >> 28;
|
||||
int i;
|
||||
|
||||
if (index != 0) {
|
||||
@@ -213,16 +142,17 @@ static void ac_parse_set_reg_packet(FILE *f, unsigned count, unsigned reg_offset
|
||||
}
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
ac_dump_reg(f, ib->chip_class, reg + i*4, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, reg + i*4, ib[2+i], ~0);
|
||||
}
|
||||
|
||||
static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
int *current_trace_id)
|
||||
static uint32_t *ac_parse_packet3(FILE *f, uint32_t *ib, int *num_dw,
|
||||
int trace_id, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback,
|
||||
void *addr_callback_data)
|
||||
{
|
||||
unsigned first_dw = ib->cur_dw;
|
||||
int count = PKT_COUNT_G(header);
|
||||
unsigned op = PKT3_IT_OPCODE_G(header);
|
||||
const char *predicate = PKT3_PREDICATE(header) ? "(predicate)" : "";
|
||||
unsigned count = PKT_COUNT_G(ib[0]);
|
||||
unsigned op = PKT3_IT_OPCODE_G(ib[0]);
|
||||
const char *predicate = PKT3_PREDICATE(ib[0]) ? "(predicate)" : "";
|
||||
int i;
|
||||
|
||||
/* Print the name first. */
|
||||
@@ -249,213 +179,180 @@ static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
/* Print the contents. */
|
||||
switch (op) {
|
||||
case PKT3_SET_CONTEXT_REG:
|
||||
ac_parse_set_reg_packet(f, count, SI_CONTEXT_REG_OFFSET, ib);
|
||||
ac_parse_set_reg_packet(f, ib, count, SI_CONTEXT_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_SET_CONFIG_REG:
|
||||
ac_parse_set_reg_packet(f, count, SI_CONFIG_REG_OFFSET, ib);
|
||||
ac_parse_set_reg_packet(f, ib, count, SI_CONFIG_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_SET_UCONFIG_REG:
|
||||
ac_parse_set_reg_packet(f, count, CIK_UCONFIG_REG_OFFSET, ib);
|
||||
ac_parse_set_reg_packet(f, ib, count, CIK_UCONFIG_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_SET_SH_REG:
|
||||
ac_parse_set_reg_packet(f, count, SI_SH_REG_OFFSET, ib);
|
||||
ac_parse_set_reg_packet(f, ib, count, SI_SH_REG_OFFSET);
|
||||
break;
|
||||
case PKT3_ACQUIRE_MEM:
|
||||
ac_dump_reg(f, ib->chip_class, R_0301F0_CP_COHER_CNTL, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0301F4_CP_COHER_SIZE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_030230_CP_COHER_SIZE_HI, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0301F8_CP_COHER_BASE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0301E4_CP_COHER_BASE_HI, ac_ib_get(ib), ~0);
|
||||
print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16);
|
||||
ac_dump_reg(f, R_0301F0_CP_COHER_CNTL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0301F4_CP_COHER_SIZE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_030230_CP_COHER_SIZE_HI, ib[3], ~0);
|
||||
ac_dump_reg(f, R_0301F8_CP_COHER_BASE, ib[4], ~0);
|
||||
ac_dump_reg(f, R_0301E4_CP_COHER_BASE_HI, ib[5], ~0);
|
||||
print_named_value(f, "POLL_INTERVAL", ib[6], 16);
|
||||
break;
|
||||
case PKT3_SURFACE_SYNC:
|
||||
if (ib->chip_class >= CIK) {
|
||||
ac_dump_reg(f, ib->chip_class, R_0301F0_CP_COHER_CNTL, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0301F4_CP_COHER_SIZE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0301F8_CP_COHER_BASE, ac_ib_get(ib), ~0);
|
||||
if (chip_class >= CIK) {
|
||||
ac_dump_reg(f, R_0301F0_CP_COHER_CNTL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0301F4_CP_COHER_SIZE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_0301F8_CP_COHER_BASE, ib[3], ~0);
|
||||
} else {
|
||||
ac_dump_reg(f, ib->chip_class, R_0085F0_CP_COHER_CNTL, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0085F4_CP_COHER_SIZE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0085F8_CP_COHER_BASE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_0085F0_CP_COHER_CNTL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0085F4_CP_COHER_SIZE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_0085F8_CP_COHER_BASE, ib[3], ~0);
|
||||
}
|
||||
print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16);
|
||||
print_named_value(f, "POLL_INTERVAL", ib[4], 16);
|
||||
break;
|
||||
case PKT3_EVENT_WRITE: {
|
||||
uint32_t event_dw = ac_ib_get(ib);
|
||||
ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw,
|
||||
case PKT3_EVENT_WRITE:
|
||||
ac_dump_reg(f, R_028A90_VGT_EVENT_INITIATOR, ib[1],
|
||||
S_028A90_EVENT_TYPE(~0));
|
||||
print_named_value(f, "EVENT_INDEX", (event_dw >> 8) & 0xf, 4);
|
||||
print_named_value(f, "INV_L2", (event_dw >> 20) & 0x1, 1);
|
||||
print_named_value(f, "EVENT_INDEX", (ib[1] >> 8) & 0xf, 4);
|
||||
print_named_value(f, "INV_L2", (ib[1] >> 20) & 0x1, 1);
|
||||
if (count > 0) {
|
||||
print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 16);
|
||||
print_named_value(f, "ADDRESS_LO", ib[2], 32);
|
||||
print_named_value(f, "ADDRESS_HI", ib[3], 16);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case PKT3_EVENT_WRITE_EOP: {
|
||||
uint32_t event_dw = ac_ib_get(ib);
|
||||
ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw,
|
||||
case PKT3_EVENT_WRITE_EOP:
|
||||
ac_dump_reg(f, R_028A90_VGT_EVENT_INITIATOR, ib[1],
|
||||
S_028A90_EVENT_TYPE(~0));
|
||||
print_named_value(f, "EVENT_INDEX", (event_dw >> 8) & 0xf, 4);
|
||||
print_named_value(f, "TCL1_VOL_ACTION_ENA", (event_dw >> 12) & 0x1, 1);
|
||||
print_named_value(f, "TC_VOL_ACTION_ENA", (event_dw >> 13) & 0x1, 1);
|
||||
print_named_value(f, "TC_WB_ACTION_ENA", (event_dw >> 15) & 0x1, 1);
|
||||
print_named_value(f, "TCL1_ACTION_ENA", (event_dw >> 16) & 0x1, 1);
|
||||
print_named_value(f, "TC_ACTION_ENA", (event_dw >> 17) & 0x1, 1);
|
||||
print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32);
|
||||
uint32_t addr_hi_dw = ac_ib_get(ib);
|
||||
print_named_value(f, "ADDRESS_HI", addr_hi_dw, 16);
|
||||
print_named_value(f, "DST_SEL", (addr_hi_dw >> 16) & 0x3, 2);
|
||||
print_named_value(f, "INT_SEL", (addr_hi_dw >> 24) & 0x7, 3);
|
||||
print_named_value(f, "DATA_SEL", addr_hi_dw >> 29, 3);
|
||||
print_named_value(f, "DATA_LO", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "DATA_HI", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "EVENT_INDEX", (ib[1] >> 8) & 0xf, 4);
|
||||
print_named_value(f, "TCL1_VOL_ACTION_ENA", (ib[1] >> 12) & 0x1, 1);
|
||||
print_named_value(f, "TC_VOL_ACTION_ENA", (ib[1] >> 13) & 0x1, 1);
|
||||
print_named_value(f, "TC_WB_ACTION_ENA", (ib[1] >> 15) & 0x1, 1);
|
||||
print_named_value(f, "TCL1_ACTION_ENA", (ib[1] >> 16) & 0x1, 1);
|
||||
print_named_value(f, "TC_ACTION_ENA", (ib[1] >> 17) & 0x1, 1);
|
||||
print_named_value(f, "ADDRESS_LO", ib[2], 32);
|
||||
print_named_value(f, "ADDRESS_HI", ib[3], 16);
|
||||
print_named_value(f, "DST_SEL", (ib[3] >> 16) & 0x3, 2);
|
||||
print_named_value(f, "INT_SEL", (ib[3] >> 24) & 0x7, 3);
|
||||
print_named_value(f, "DATA_SEL", ib[3] >> 29, 3);
|
||||
print_named_value(f, "DATA_LO", ib[4], 32);
|
||||
print_named_value(f, "DATA_HI", ib[5], 32);
|
||||
break;
|
||||
}
|
||||
case PKT3_RELEASE_MEM: {
|
||||
uint32_t event_dw = ac_ib_get(ib);
|
||||
ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw,
|
||||
case PKT3_RELEASE_MEM:
|
||||
ac_dump_reg(f, R_028A90_VGT_EVENT_INITIATOR, ib[1],
|
||||
S_028A90_EVENT_TYPE(~0));
|
||||
print_named_value(f, "EVENT_INDEX", (event_dw >> 8) & 0xf, 4);
|
||||
print_named_value(f, "TCL1_VOL_ACTION_ENA", (event_dw >> 12) & 0x1, 1);
|
||||
print_named_value(f, "TC_VOL_ACTION_ENA", (event_dw >> 13) & 0x1, 1);
|
||||
print_named_value(f, "TC_WB_ACTION_ENA", (event_dw >> 15) & 0x1, 1);
|
||||
print_named_value(f, "TCL1_ACTION_ENA", (event_dw >> 16) & 0x1, 1);
|
||||
print_named_value(f, "TC_ACTION_ENA", (event_dw >> 17) & 0x1, 1);
|
||||
print_named_value(f, "TC_NC_ACTION_ENA", (event_dw >> 19) & 0x1, 1);
|
||||
print_named_value(f, "TC_WC_ACTION_ENA", (event_dw >> 20) & 0x1, 1);
|
||||
print_named_value(f, "TC_MD_ACTION_ENA", (event_dw >> 21) & 0x1, 1);
|
||||
uint32_t sel_dw = ac_ib_get(ib);
|
||||
print_named_value(f, "DST_SEL", (sel_dw >> 16) & 0x3, 2);
|
||||
print_named_value(f, "INT_SEL", (sel_dw >> 24) & 0x7, 3);
|
||||
print_named_value(f, "DATA_SEL", sel_dw >> 29, 3);
|
||||
print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "DATA_LO", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "DATA_HI", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "CTXID", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "EVENT_INDEX", (ib[1] >> 8) & 0xf, 4);
|
||||
print_named_value(f, "TCL1_VOL_ACTION_ENA", (ib[1] >> 12) & 0x1, 1);
|
||||
print_named_value(f, "TC_VOL_ACTION_ENA", (ib[1] >> 13) & 0x1, 1);
|
||||
print_named_value(f, "TC_WB_ACTION_ENA", (ib[1] >> 15) & 0x1, 1);
|
||||
print_named_value(f, "TCL1_ACTION_ENA", (ib[1] >> 16) & 0x1, 1);
|
||||
print_named_value(f, "TC_ACTION_ENA", (ib[1] >> 17) & 0x1, 1);
|
||||
print_named_value(f, "TC_NC_ACTION_ENA", (ib[1] >> 19) & 0x1, 1);
|
||||
print_named_value(f, "TC_WC_ACTION_ENA", (ib[1] >> 20) & 0x1, 1);
|
||||
print_named_value(f, "TC_MD_ACTION_ENA", (ib[1] >> 21) & 0x1, 1);
|
||||
print_named_value(f, "DST_SEL", (ib[2] >> 16) & 0x3, 2);
|
||||
print_named_value(f, "INT_SEL", (ib[2] >> 24) & 0x7, 3);
|
||||
print_named_value(f, "DATA_SEL", ib[2] >> 29, 3);
|
||||
print_named_value(f, "ADDRESS_LO", ib[3], 32);
|
||||
print_named_value(f, "ADDRESS_HI", ib[4], 32);
|
||||
print_named_value(f, "DATA_LO", ib[5], 32);
|
||||
print_named_value(f, "DATA_HI", ib[6], 32);
|
||||
print_named_value(f, "CTXID", ib[7], 32);
|
||||
break;
|
||||
}
|
||||
case PKT3_WAIT_REG_MEM:
|
||||
print_named_value(f, "OP", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "REF", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "MASK", ac_ib_get(ib), 32);
|
||||
print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16);
|
||||
print_named_value(f, "OP", ib[1], 32);
|
||||
print_named_value(f, "ADDRESS_LO", ib[2], 32);
|
||||
print_named_value(f, "ADDRESS_HI", ib[3], 32);
|
||||
print_named_value(f, "REF", ib[4], 32);
|
||||
print_named_value(f, "MASK", ib[5], 32);
|
||||
print_named_value(f, "POLL_INTERVAL", ib[6], 16);
|
||||
break;
|
||||
case PKT3_DRAW_INDEX_AUTO:
|
||||
ac_dump_reg(f, ib->chip_class, R_030930_VGT_NUM_INDICES, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0287F0_VGT_DRAW_INITIATOR, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_030930_VGT_NUM_INDICES, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0287F0_VGT_DRAW_INITIATOR, ib[2], ~0);
|
||||
break;
|
||||
case PKT3_DRAW_INDEX_2:
|
||||
ac_dump_reg(f, ib->chip_class, R_028A78_VGT_DMA_MAX_SIZE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0287E8_VGT_DMA_BASE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0287E4_VGT_DMA_BASE_HI, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_030930_VGT_NUM_INDICES, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_0287F0_VGT_DRAW_INITIATOR, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_028A78_VGT_DMA_MAX_SIZE, ib[1], ~0);
|
||||
ac_dump_reg(f, R_0287E8_VGT_DMA_BASE, ib[2], ~0);
|
||||
ac_dump_reg(f, R_0287E4_VGT_DMA_BASE_HI, ib[3], ~0);
|
||||
ac_dump_reg(f, R_030930_VGT_NUM_INDICES, ib[4], ~0);
|
||||
ac_dump_reg(f, R_0287F0_VGT_DRAW_INITIATOR, ib[5], ~0);
|
||||
break;
|
||||
case PKT3_INDEX_TYPE:
|
||||
ac_dump_reg(f, ib->chip_class, R_028A7C_VGT_DMA_INDEX_TYPE, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_028A7C_VGT_DMA_INDEX_TYPE, ib[1], ~0);
|
||||
break;
|
||||
case PKT3_NUM_INSTANCES:
|
||||
ac_dump_reg(f, ib->chip_class, R_030934_VGT_NUM_INSTANCES, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_030934_VGT_NUM_INSTANCES, ib[1], ~0);
|
||||
break;
|
||||
case PKT3_WRITE_DATA:
|
||||
ac_dump_reg(f, ib->chip_class, R_370_CONTROL, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_371_DST_ADDR_LO, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_372_DST_ADDR_HI, ac_ib_get(ib), ~0);
|
||||
/* The payload is written automatically */
|
||||
ac_dump_reg(f, R_370_CONTROL, ib[1], ~0);
|
||||
ac_dump_reg(f, R_371_DST_ADDR_LO, ib[2], ~0);
|
||||
ac_dump_reg(f, R_372_DST_ADDR_HI, ib[3], ~0);
|
||||
for (i = 2; i < count; i++) {
|
||||
print_spaces(f, INDENT_PKT);
|
||||
fprintf(f, "0x%08x\n", ib[2+i]);
|
||||
}
|
||||
break;
|
||||
case PKT3_CP_DMA:
|
||||
ac_dump_reg(f, ib->chip_class, R_410_CP_DMA_WORD0, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_411_CP_DMA_WORD1, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_412_CP_DMA_WORD2, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_413_CP_DMA_WORD3, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_414_COMMAND, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_410_CP_DMA_WORD0, ib[1], ~0);
|
||||
ac_dump_reg(f, R_411_CP_DMA_WORD1, ib[2], ~0);
|
||||
ac_dump_reg(f, R_412_CP_DMA_WORD2, ib[3], ~0);
|
||||
ac_dump_reg(f, R_413_CP_DMA_WORD3, ib[4], ~0);
|
||||
ac_dump_reg(f, R_414_COMMAND, ib[5], ~0);
|
||||
break;
|
||||
case PKT3_DMA_DATA:
|
||||
ac_dump_reg(f, ib->chip_class, R_500_DMA_DATA_WORD0, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_501_SRC_ADDR_LO, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_502_SRC_ADDR_HI, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_503_DST_ADDR_LO, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_504_DST_ADDR_HI, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, ib->chip_class, R_414_COMMAND, ac_ib_get(ib), ~0);
|
||||
ac_dump_reg(f, R_500_DMA_DATA_WORD0, ib[1], ~0);
|
||||
ac_dump_reg(f, R_501_SRC_ADDR_LO, ib[2], ~0);
|
||||
ac_dump_reg(f, R_502_SRC_ADDR_HI, ib[3], ~0);
|
||||
ac_dump_reg(f, R_503_DST_ADDR_LO, ib[4], ~0);
|
||||
ac_dump_reg(f, R_504_DST_ADDR_HI, ib[5], ~0);
|
||||
ac_dump_reg(f, R_414_COMMAND, ib[6], ~0);
|
||||
break;
|
||||
case PKT3_INDIRECT_BUFFER_SI:
|
||||
case PKT3_INDIRECT_BUFFER_CONST:
|
||||
case PKT3_INDIRECT_BUFFER_CIK: {
|
||||
uint32_t base_lo_dw = ac_ib_get(ib);
|
||||
ac_dump_reg(f, ib->chip_class, R_3F0_IB_BASE_LO, base_lo_dw, ~0);
|
||||
uint32_t base_hi_dw = ac_ib_get(ib);
|
||||
ac_dump_reg(f, ib->chip_class, R_3F1_IB_BASE_HI, base_hi_dw, ~0);
|
||||
uint32_t control_dw = ac_ib_get(ib);
|
||||
ac_dump_reg(f, ib->chip_class, R_3F2_CONTROL, control_dw, ~0);
|
||||
case PKT3_INDIRECT_BUFFER_CIK:
|
||||
ac_dump_reg(f, R_3F0_IB_BASE_LO, ib[1], ~0);
|
||||
ac_dump_reg(f, R_3F1_IB_BASE_HI, ib[2], ~0);
|
||||
ac_dump_reg(f, R_3F2_CONTROL, ib[3], ~0);
|
||||
|
||||
if (!ib->addr_callback)
|
||||
break;
|
||||
if (addr_callback) {
|
||||
uint64_t addr = ((uint64_t)ib[2] << 32) | ib[1];
|
||||
void *data = addr_callback(addr_callback_data, addr);
|
||||
const char *name = G_3F2_CHAIN(ib[3]) ? "chained" : "nested";
|
||||
|
||||
uint64_t addr = ((uint64_t)base_hi_dw << 32) | base_lo_dw;
|
||||
void *data = ib->addr_callback(ib->addr_callback_data, addr);
|
||||
if (!data)
|
||||
break;
|
||||
|
||||
if (G_3F2_CHAIN(control_dw)) {
|
||||
ib->ib = data;
|
||||
ib->num_dw = G_3F2_IB_SIZE(control_dw);
|
||||
ib->cur_dw = 0;
|
||||
return;
|
||||
if (data)
|
||||
ac_parse_ib(f, data, G_3F2_IB_SIZE(ib[3]),
|
||||
trace_id, name, chip_class,
|
||||
addr_callback, addr_callback_data);
|
||||
}
|
||||
|
||||
struct ac_ib_parser ib_recurse;
|
||||
memcpy(&ib_recurse, ib, sizeof(ib_recurse));
|
||||
ib_recurse.ib = data;
|
||||
ib_recurse.num_dw = G_3F2_IB_SIZE(control_dw);
|
||||
ib_recurse.cur_dw = 0;
|
||||
if(ib_recurse.trace_id_count) {
|
||||
if (*current_trace_id == *ib->trace_ids) {
|
||||
++ib_recurse.trace_ids;
|
||||
--ib_recurse.trace_id_count;
|
||||
} else {
|
||||
ib_recurse.trace_id_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(f, "\n\035>------------------ nested begin ------------------\n");
|
||||
ac_do_parse_ib(f, &ib_recurse);
|
||||
fprintf(f, "\n\035<------------------- nested end -------------------\n");
|
||||
break;
|
||||
}
|
||||
case PKT3_CLEAR_STATE:
|
||||
case PKT3_INCREMENT_DE_COUNTER:
|
||||
case PKT3_PFP_SYNC_ME:
|
||||
break;
|
||||
case PKT3_NOP:
|
||||
if (header == 0xffff1000) {
|
||||
if (ib[0] == 0xffff1000) {
|
||||
count = -1; /* One dword NOP. */
|
||||
} else if (count == 0 && ib->cur_dw < ib->num_dw &&
|
||||
AC_IS_TRACE_POINT(ib->ib[ib->cur_dw])) {
|
||||
unsigned packet_id = AC_GET_TRACE_POINT_ID(ib->ib[ib->cur_dw]);
|
||||
break;
|
||||
} else if (count == 0 && AC_IS_TRACE_POINT(ib[1])) {
|
||||
unsigned packet_id = AC_GET_TRACE_POINT_ID(ib[1]);
|
||||
|
||||
print_spaces(f, INDENT_PKT);
|
||||
fprintf(f, COLOR_RED "Trace point ID: %u\n", packet_id);
|
||||
|
||||
if (!ib->trace_id_count)
|
||||
if (trace_id == -1)
|
||||
break; /* tracing was disabled */
|
||||
|
||||
*current_trace_id = packet_id;
|
||||
|
||||
print_spaces(f, INDENT_PKT);
|
||||
if (packet_id < *ib->trace_ids)
|
||||
if (packet_id < trace_id)
|
||||
fprintf(f, COLOR_RED
|
||||
"This trace point was reached by the CP."
|
||||
COLOR_RESET "\n");
|
||||
else if (packet_id == *ib->trace_ids)
|
||||
else if (packet_id == trace_id)
|
||||
fprintf(f, COLOR_RED
|
||||
"!!!!! This is the last trace point that "
|
||||
"was reached by the CP !!!!!"
|
||||
COLOR_RESET "\n");
|
||||
else if (packet_id+1 == *ib->trace_ids)
|
||||
else if (packet_id+1 == trace_id)
|
||||
fprintf(f, COLOR_RED
|
||||
"!!!!! This is the first trace point that "
|
||||
"was NOT been reached by the CP !!!!!"
|
||||
@@ -467,127 +364,17 @@ static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
COLOR_RESET "\n");
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* print additional dwords */
|
||||
while (ib->cur_dw <= first_dw + count)
|
||||
ac_ib_get(ib);
|
||||
|
||||
if (ib->cur_dw > first_dw + count + 1)
|
||||
fprintf(f, COLOR_RED "\n!!!!! count in header too low !!!!!"
|
||||
COLOR_RESET "\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse and print an IB into a file.
|
||||
*/
|
||||
static void ac_do_parse_ib(FILE *f, struct ac_ib_parser *ib)
|
||||
{
|
||||
int current_trace_id = -1;
|
||||
|
||||
while (ib->cur_dw < ib->num_dw) {
|
||||
uint32_t header = ac_ib_get(ib);
|
||||
unsigned type = PKT_TYPE_G(header);
|
||||
|
||||
switch (type) {
|
||||
case 3:
|
||||
ac_parse_packet3(f, header, ib, ¤t_trace_id);
|
||||
break;
|
||||
case 2:
|
||||
/* type-2 nop */
|
||||
if (header == 0x80000000) {
|
||||
fprintf(f, COLOR_GREEN "NOP (type 2)" COLOR_RESET "\n");
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
default:
|
||||
fprintf(f, "Unknown packet type %i\n", type);
|
||||
break;
|
||||
/* fall through, print all dwords */
|
||||
default:
|
||||
for (i = 0; i < count+1; i++) {
|
||||
print_spaces(f, INDENT_PKT);
|
||||
fprintf(f, "0x%08x\n", ib[1+i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void format_ib_output(FILE *f, char *out)
|
||||
{
|
||||
unsigned depth = 0;
|
||||
|
||||
for (;;) {
|
||||
char op = 0;
|
||||
|
||||
if (out[0] == '\n' && out[1] == '\035')
|
||||
out++;
|
||||
if (out[0] == '\035') {
|
||||
op = out[1];
|
||||
out += 2;
|
||||
}
|
||||
|
||||
if (op == '<')
|
||||
depth--;
|
||||
|
||||
unsigned indent = 4 * depth;
|
||||
if (op != '#')
|
||||
indent += 9;
|
||||
|
||||
if (indent)
|
||||
print_spaces(f, indent);
|
||||
|
||||
char *end = util_strchrnul(out, '\n');
|
||||
fwrite(out, end - out, 1, f);
|
||||
fputc('\n', f); /* always end with a new line */
|
||||
if (!*end)
|
||||
break;
|
||||
|
||||
out = end + 1;
|
||||
|
||||
if (op == '>')
|
||||
depth++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse and print an IB into a file.
|
||||
*
|
||||
* \param f file
|
||||
* \param ib_ptr IB
|
||||
* \param num_dw size of the IB
|
||||
* \param chip_class chip class
|
||||
* \param trace_ids the last trace IDs that are known to have been reached
|
||||
* and executed by the CP, typically read from a buffer
|
||||
* \param trace_id_count The number of entries in the trace_ids array.
|
||||
* \param addr_callback Get a mapped pointer of the IB at a given address. Can
|
||||
* be NULL.
|
||||
* \param addr_callback_data user data for addr_callback
|
||||
*/
|
||||
void ac_parse_ib_chunk(FILE *f, uint32_t *ib_ptr, int num_dw, const int *trace_ids,
|
||||
unsigned trace_id_count, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback, void *addr_callback_data)
|
||||
{
|
||||
struct ac_ib_parser ib = {};
|
||||
ib.ib = ib_ptr;
|
||||
ib.num_dw = num_dw;
|
||||
ib.trace_ids = trace_ids;
|
||||
ib.trace_id_count = trace_id_count;
|
||||
ib.chip_class = chip_class;
|
||||
ib.addr_callback = addr_callback;
|
||||
ib.addr_callback_data = addr_callback_data;
|
||||
|
||||
char *out;
|
||||
size_t outsize;
|
||||
FILE *memf = open_memstream(&out, &outsize);
|
||||
ib.f = memf;
|
||||
ac_do_parse_ib(memf, &ib);
|
||||
fclose(memf);
|
||||
|
||||
if (out) {
|
||||
format_ib_output(f, out);
|
||||
free(out);
|
||||
}
|
||||
|
||||
if (ib.cur_dw > ib.num_dw) {
|
||||
printf("\nPacket ends after the end of IB.\n");
|
||||
exit(1);
|
||||
}
|
||||
ib += count + 2;
|
||||
*num_dw -= count + 2;
|
||||
return ib;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -597,203 +384,46 @@ void ac_parse_ib_chunk(FILE *f, uint32_t *ib_ptr, int num_dw, const int *trace_i
|
||||
* \param ib IB
|
||||
* \param num_dw size of the IB
|
||||
* \param chip_class chip class
|
||||
* \param trace_ids the last trace IDs that are known to have been reached
|
||||
* \param trace_id the last trace ID that is known to have been reached
|
||||
* and executed by the CP, typically read from a buffer
|
||||
* \param trace_id_count The number of entries in the trace_ids array.
|
||||
* \param addr_callback Get a mapped pointer of the IB at a given address. Can
|
||||
* be NULL.
|
||||
* \param addr_callback_data user data for addr_callback
|
||||
*/
|
||||
void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids,
|
||||
unsigned trace_id_count, const char *name,
|
||||
enum chip_class chip_class, ac_debug_addr_callback addr_callback,
|
||||
void *addr_callback_data)
|
||||
void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, int trace_id,
|
||||
const char *name, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback, void *addr_callback_data)
|
||||
{
|
||||
fprintf(f, "------------------ %s begin ------------------\n", name);
|
||||
|
||||
ac_parse_ib_chunk(f, ib, num_dw, trace_ids, trace_id_count,
|
||||
chip_class, addr_callback, addr_callback_data);
|
||||
while (num_dw > 0) {
|
||||
unsigned type = PKT_TYPE_G(ib[0]);
|
||||
|
||||
fprintf(f, "------------------- %s end -------------------\n\n", name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse dmesg and return TRUE if a VM fault has been detected.
|
||||
*
|
||||
* \param chip_class chip class
|
||||
* \param old_dmesg_timestamp previous dmesg timestamp parsed at init time
|
||||
* \param out_addr detected VM fault addr
|
||||
*/
|
||||
bool ac_vm_fault_occured(enum chip_class chip_class,
|
||||
uint64_t *old_dmesg_timestamp, uint64_t *out_addr)
|
||||
{
|
||||
char line[2000];
|
||||
unsigned sec, usec;
|
||||
int progress = 0;
|
||||
uint64_t dmesg_timestamp = 0;
|
||||
bool fault = false;
|
||||
|
||||
FILE *p = popen("dmesg", "r");
|
||||
if (!p)
|
||||
return false;
|
||||
|
||||
while (fgets(line, sizeof(line), p)) {
|
||||
char *msg, len;
|
||||
|
||||
if (!line[0] || line[0] == '\n')
|
||||
continue;
|
||||
|
||||
/* Get the timestamp. */
|
||||
if (sscanf(line, "[%u.%u]", &sec, &usec) != 2) {
|
||||
static bool hit = false;
|
||||
if (!hit) {
|
||||
fprintf(stderr, "%s: failed to parse line '%s'\n",
|
||||
__func__, line);
|
||||
hit = true;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
dmesg_timestamp = sec * 1000000ull + usec;
|
||||
|
||||
/* If just updating the timestamp. */
|
||||
if (!out_addr)
|
||||
continue;
|
||||
|
||||
/* Process messages only if the timestamp is newer. */
|
||||
if (dmesg_timestamp <= *old_dmesg_timestamp)
|
||||
continue;
|
||||
|
||||
/* Only process the first VM fault. */
|
||||
if (fault)
|
||||
continue;
|
||||
|
||||
/* Remove trailing \n */
|
||||
len = strlen(line);
|
||||
if (len && line[len-1] == '\n')
|
||||
line[len-1] = 0;
|
||||
|
||||
/* Get the message part. */
|
||||
msg = strchr(line, ']');
|
||||
if (!msg)
|
||||
continue;
|
||||
msg++;
|
||||
|
||||
const char *header_line, *addr_line_prefix, *addr_line_format;
|
||||
|
||||
if (chip_class >= GFX9) {
|
||||
/* Match this:
|
||||
* ..: [gfxhub] VMC page fault (src_id:0 ring:158 vm_id:2 pas_id:0)
|
||||
* ..: at page 0x0000000219f8f000 from 27
|
||||
* ..: VM_L2_PROTECTION_FAULT_STATUS:0x0020113C
|
||||
*/
|
||||
header_line = "VMC page fault";
|
||||
addr_line_prefix = " at page";
|
||||
addr_line_format = "%"PRIx64;
|
||||
} else {
|
||||
header_line = "GPU fault detected:";
|
||||
addr_line_prefix = "VM_CONTEXT1_PROTECTION_FAULT_ADDR";
|
||||
addr_line_format = "%"PRIX64;
|
||||
}
|
||||
|
||||
switch (progress) {
|
||||
case 0:
|
||||
if (strstr(msg, header_line))
|
||||
progress = 1;
|
||||
switch (type) {
|
||||
case 3:
|
||||
ib = ac_parse_packet3(f, ib, &num_dw, trace_id,
|
||||
chip_class, addr_callback,
|
||||
addr_callback_data);
|
||||
break;
|
||||
case 1:
|
||||
msg = strstr(msg, addr_line_prefix);
|
||||
if (msg) {
|
||||
msg = strstr(msg, "0x");
|
||||
if (msg) {
|
||||
msg += 2;
|
||||
if (sscanf(msg, addr_line_format, out_addr) == 1)
|
||||
fault = true;
|
||||
}
|
||||
case 2:
|
||||
/* type-2 nop */
|
||||
if (ib[0] == 0x80000000) {
|
||||
fprintf(f, COLOR_GREEN "NOP (type 2)" COLOR_RESET "\n");
|
||||
ib++;
|
||||
num_dw--;
|
||||
break;
|
||||
}
|
||||
progress = 0;
|
||||
break;
|
||||
/* fall through */
|
||||
default:
|
||||
progress = 0;
|
||||
}
|
||||
}
|
||||
pclose(p);
|
||||
|
||||
if (dmesg_timestamp > *old_dmesg_timestamp)
|
||||
*old_dmesg_timestamp = dmesg_timestamp;
|
||||
|
||||
return fault;
|
||||
}
|
||||
|
||||
static int compare_wave(const void *p1, const void *p2)
|
||||
{
|
||||
struct ac_wave_info *w1 = (struct ac_wave_info *)p1;
|
||||
struct ac_wave_info *w2 = (struct ac_wave_info *)p2;
|
||||
|
||||
/* Sort waves according to PC and then SE, SH, CU, etc. */
|
||||
if (w1->pc < w2->pc)
|
||||
return -1;
|
||||
if (w1->pc > w2->pc)
|
||||
return 1;
|
||||
if (w1->se < w2->se)
|
||||
return -1;
|
||||
if (w1->se > w2->se)
|
||||
return 1;
|
||||
if (w1->sh < w2->sh)
|
||||
return -1;
|
||||
if (w1->sh > w2->sh)
|
||||
return 1;
|
||||
if (w1->cu < w2->cu)
|
||||
return -1;
|
||||
if (w1->cu > w2->cu)
|
||||
return 1;
|
||||
if (w1->simd < w2->simd)
|
||||
return -1;
|
||||
if (w1->simd > w2->simd)
|
||||
return 1;
|
||||
if (w1->wave < w2->wave)
|
||||
return -1;
|
||||
if (w1->wave > w2->wave)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return wave information. "waves" should be a large enough array. */
|
||||
unsigned ac_get_wave_info(struct ac_wave_info waves[AC_MAX_WAVES_PER_CHIP])
|
||||
{
|
||||
char line[2000];
|
||||
unsigned num_waves = 0;
|
||||
|
||||
FILE *p = popen("umr -wa", "r");
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
if (!fgets(line, sizeof(line), p) ||
|
||||
strncmp(line, "SE", 2) != 0) {
|
||||
pclose(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (fgets(line, sizeof(line), p)) {
|
||||
struct ac_wave_info *w;
|
||||
uint32_t pc_hi, pc_lo, exec_hi, exec_lo;
|
||||
|
||||
assert(num_waves < AC_MAX_WAVES_PER_CHIP);
|
||||
w = &waves[num_waves];
|
||||
|
||||
if (sscanf(line, "%u %u %u %u %u %x %x %x %x %x %x %x",
|
||||
&w->se, &w->sh, &w->cu, &w->simd, &w->wave,
|
||||
&w->status, &pc_hi, &pc_lo, &w->inst_dw0,
|
||||
&w->inst_dw1, &exec_hi, &exec_lo) == 12) {
|
||||
w->pc = ((uint64_t)pc_hi << 32) | pc_lo;
|
||||
w->exec = ((uint64_t)exec_hi << 32) | exec_lo;
|
||||
w->matched = false;
|
||||
num_waves++;
|
||||
fprintf(f, "Unknown packet type %i\n", type);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
qsort(waves, num_waves, sizeof(struct ac_wave_info), compare_wave);
|
||||
|
||||
pclose(p);
|
||||
return num_waves;
|
||||
fprintf(f, "------------------- %s end -------------------\n", name);
|
||||
if (num_dw < 0) {
|
||||
printf("Packet ends after the end of IB.\n");
|
||||
exit(0);
|
||||
}
|
||||
fprintf(f, "\n");
|
||||
}
|
||||
|
@@ -28,7 +28,6 @@
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "amd_family.h"
|
||||
|
||||
@@ -36,36 +35,12 @@
|
||||
#define AC_IS_TRACE_POINT(x) (((x) & 0xcafe0000) == 0xcafe0000)
|
||||
#define AC_GET_TRACE_POINT_ID(x) ((x) & 0xffff)
|
||||
|
||||
#define AC_MAX_WAVES_PER_CHIP (64 * 40)
|
||||
|
||||
struct ac_wave_info {
|
||||
unsigned se; /* shader engine */
|
||||
unsigned sh; /* shader array */
|
||||
unsigned cu; /* compute unit */
|
||||
unsigned simd;
|
||||
unsigned wave;
|
||||
uint32_t status;
|
||||
uint64_t pc; /* program counter */
|
||||
uint32_t inst_dw0;
|
||||
uint32_t inst_dw1;
|
||||
uint64_t exec;
|
||||
bool matched; /* whether the wave is used by a currently-bound shader */
|
||||
};
|
||||
|
||||
typedef void *(*ac_debug_addr_callback)(void *data, uint64_t addr);
|
||||
|
||||
void ac_dump_reg(FILE *file, enum chip_class chip_class, unsigned offset,
|
||||
uint32_t value, uint32_t field_mask);
|
||||
void ac_parse_ib_chunk(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids,
|
||||
unsigned trace_id_count, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback, void *addr_callback_data);
|
||||
void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids,
|
||||
unsigned trace_id_count, const char *name, enum chip_class chip_class,
|
||||
void ac_dump_reg(FILE *file, unsigned offset, uint32_t value,
|
||||
uint32_t field_mask);
|
||||
void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, int trace_id,
|
||||
const char *name, enum chip_class chip_class,
|
||||
ac_debug_addr_callback addr_callback, void *addr_callback_data);
|
||||
|
||||
bool ac_vm_fault_occured(enum chip_class chip_class,
|
||||
uint64_t *old_dmesg_timestamp, uint64_t *out_addr);
|
||||
|
||||
unsigned ac_get_wave_info(struct ac_wave_info waves[AC_MAX_WAVES_PER_CHIP]);
|
||||
|
||||
#endif
|
||||
|
@@ -98,10 +98,9 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
{
|
||||
struct amdgpu_buffer_size_alignments alignment_info = {};
|
||||
struct amdgpu_heap_info vram, vram_vis, gtt;
|
||||
struct drm_amdgpu_info_hw_ip dma = {}, compute = {}, uvd = {};
|
||||
struct drm_amdgpu_info_hw_ip uvd_enc = {}, vce = {}, vcn_dec = {};
|
||||
struct drm_amdgpu_info_hw_ip vcn_enc = {}, gfx = {};
|
||||
struct drm_amdgpu_info_hw_ip dma = {}, compute = {}, uvd = {}, vce = {}, vcn_dec = {};
|
||||
uint32_t vce_version = 0, vce_feature = 0, uvd_version = 0, uvd_feature = 0;
|
||||
uint32_t unused_feature;
|
||||
int r, i, j;
|
||||
drmDevicePtr devinfo;
|
||||
|
||||
@@ -156,12 +155,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
return false;
|
||||
}
|
||||
|
||||
r = amdgpu_query_hw_ip_info(dev, AMDGPU_HW_IP_GFX, 0, &gfx);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_hw_ip_info(gfx) failed.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
r = amdgpu_query_hw_ip_info(dev, AMDGPU_HW_IP_COMPUTE, 0, &compute);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_hw_ip_info(compute) failed.\n");
|
||||
@@ -183,24 +176,21 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
}
|
||||
|
||||
r = amdgpu_query_firmware_version(dev, AMDGPU_INFO_FW_GFX_ME, 0, 0,
|
||||
&info->me_fw_version,
|
||||
&info->me_fw_feature);
|
||||
&info->me_fw_version, &unused_feature);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_firmware_version(me) failed.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
r = amdgpu_query_firmware_version(dev, AMDGPU_INFO_FW_GFX_PFP, 0, 0,
|
||||
&info->pfp_fw_version,
|
||||
&info->pfp_fw_feature);
|
||||
&info->pfp_fw_version, &unused_feature);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_firmware_version(pfp) failed.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
r = amdgpu_query_firmware_version(dev, AMDGPU_INFO_FW_GFX_CE, 0, 0,
|
||||
&info->ce_fw_version,
|
||||
&info->ce_fw_feature);
|
||||
&info->ce_fw_version, &unused_feature);
|
||||
if (r) {
|
||||
fprintf(stderr, "amdgpu: amdgpu_query_firmware_version(ce) failed.\n");
|
||||
return false;
|
||||
@@ -277,8 +267,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
vce.available_rings ? vce_version : 0;
|
||||
info->has_userptr = true;
|
||||
info->has_syncobj = has_syncobj(fd);
|
||||
info->has_sync_file = info->has_syncobj && info->drm_minor >= 21;
|
||||
info->has_ctx_priority = info->drm_minor >= 22;
|
||||
info->num_render_backends = amdinfo->rb_pipes;
|
||||
info->clock_crystal_freq = amdinfo->gpu_counter_freq;
|
||||
if (!info->clock_crystal_freq) {
|
||||
@@ -323,44 +311,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
if (info->chip_class == SI)
|
||||
info->gfx_ib_pad_with_type2 = TRUE;
|
||||
|
||||
unsigned ib_align = 0;
|
||||
ib_align = MAX2(ib_align, gfx.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, compute.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, dma.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, uvd.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, uvd_enc.ib_start_alignment);
|
||||
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);
|
||||
info->ib_start_alignment = ib_align;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void ac_compute_driver_uuid(char *uuid, size_t size)
|
||||
{
|
||||
char amd_uuid[] = "AMD-MESA-DRV";
|
||||
|
||||
assert(size >= sizeof(amd_uuid));
|
||||
|
||||
memset(uuid, 0, size);
|
||||
strncpy(uuid, amd_uuid, size);
|
||||
}
|
||||
|
||||
void ac_compute_device_uuid(struct radeon_info *info, char *uuid, size_t size)
|
||||
{
|
||||
uint32_t *uint_uuid = (uint32_t*)uuid;
|
||||
|
||||
assert(size >= sizeof(uint32_t)*4);
|
||||
|
||||
/**
|
||||
* Use the device info directly instead of using a sha1. GL/VK UUIDs
|
||||
* are 16 byte vs 20 byte for sha1, and the truncation that would be
|
||||
* required would get rid of part of the little entropy we have.
|
||||
* */
|
||||
memset(uuid, 0, size);
|
||||
uint_uuid[0] = info->pci_domain;
|
||||
uint_uuid[1] = info->pci_bus;
|
||||
uint_uuid[2] = info->pci_dev;
|
||||
uint_uuid[3] = info->pci_func;
|
||||
}
|
||||
|
@@ -26,7 +26,6 @@
|
||||
#ifndef AC_GPU_INFO_H
|
||||
#define AC_GPU_INFO_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "amd_family.h"
|
||||
@@ -61,17 +60,13 @@ struct radeon_info {
|
||||
bool has_virtual_memory;
|
||||
bool gfx_ib_pad_with_type2;
|
||||
bool has_hw_decode;
|
||||
unsigned ib_start_alignment;
|
||||
uint32_t num_sdma_rings;
|
||||
uint32_t num_compute_rings;
|
||||
uint32_t uvd_fw_version;
|
||||
uint32_t vce_fw_version;
|
||||
uint32_t me_fw_version;
|
||||
uint32_t me_fw_feature;
|
||||
uint32_t pfp_fw_version;
|
||||
uint32_t pfp_fw_feature;
|
||||
uint32_t ce_fw_version;
|
||||
uint32_t ce_fw_feature;
|
||||
uint32_t vce_harvest_config;
|
||||
uint32_t clock_crystal_freq;
|
||||
uint32_t tcc_cache_line_size;
|
||||
@@ -82,8 +77,6 @@ struct radeon_info {
|
||||
uint32_t drm_patchlevel;
|
||||
bool has_userptr;
|
||||
bool has_syncobj;
|
||||
bool has_sync_file;
|
||||
bool has_ctx_priority;
|
||||
|
||||
/* Shader cores. */
|
||||
uint32_t r600_max_quad_pipes; /* wave size / 16 */
|
||||
@@ -113,10 +106,6 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
struct radeon_info *info,
|
||||
struct amdgpu_gpu_info *amdinfo);
|
||||
|
||||
void ac_compute_driver_uuid(char *uuid, size_t size);
|
||||
|
||||
void ac_compute_device_uuid(struct radeon_info *info, char *uuid, size_t size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -36,33 +36,19 @@
|
||||
#include "ac_exp_param.h"
|
||||
#include "util/bitscan.h"
|
||||
#include "util/macros.h"
|
||||
#include "util/u_atomic.h"
|
||||
#include "sid.h"
|
||||
|
||||
#include "shader_enums.h"
|
||||
|
||||
#define AC_LLVM_INITIAL_CF_DEPTH 4
|
||||
|
||||
/* Data for if/else/endif and bgnloop/endloop control flow structures.
|
||||
*/
|
||||
struct ac_llvm_flow {
|
||||
/* Loop exit or next part of if/else/endif. */
|
||||
LLVMBasicBlockRef next_block;
|
||||
LLVMBasicBlockRef loop_entry_block;
|
||||
};
|
||||
|
||||
/* Initialize module-independent parts of the context.
|
||||
*
|
||||
* The caller is responsible for initializing ctx::module and ctx::builder.
|
||||
*/
|
||||
void
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context,
|
||||
enum chip_class chip_class)
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context)
|
||||
{
|
||||
LLVMValueRef args[1];
|
||||
|
||||
ctx->chip_class = chip_class;
|
||||
|
||||
ctx->context = context;
|
||||
ctx->module = NULL;
|
||||
ctx->builder = NULL;
|
||||
@@ -102,100 +88,6 @@ ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context,
|
||||
ctx->empty_md = LLVMMDNodeInContext(ctx->context, NULL, 0);
|
||||
}
|
||||
|
||||
void
|
||||
ac_llvm_context_dispose(struct ac_llvm_context *ctx)
|
||||
{
|
||||
free(ctx->flow);
|
||||
ctx->flow = NULL;
|
||||
ctx->flow_depth_max = 0;
|
||||
}
|
||||
|
||||
unsigned
|
||||
ac_get_type_size(LLVMTypeRef type)
|
||||
{
|
||||
LLVMTypeKind kind = LLVMGetTypeKind(type);
|
||||
|
||||
switch (kind) {
|
||||
case LLVMIntegerTypeKind:
|
||||
return LLVMGetIntTypeWidth(type) / 8;
|
||||
case LLVMFloatTypeKind:
|
||||
return 4;
|
||||
case LLVMDoubleTypeKind:
|
||||
case LLVMPointerTypeKind:
|
||||
return 8;
|
||||
case LLVMVectorTypeKind:
|
||||
return LLVMGetVectorSize(type) *
|
||||
ac_get_type_size(LLVMGetElementType(type));
|
||||
case LLVMArrayTypeKind:
|
||||
return LLVMGetArrayLength(type) *
|
||||
ac_get_type_size(LLVMGetElementType(type));
|
||||
default:
|
||||
assert(0);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static LLVMTypeRef to_integer_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
|
||||
{
|
||||
if (t == ctx->f16 || t == ctx->i16)
|
||||
return ctx->i16;
|
||||
else if (t == ctx->f32 || t == ctx->i32)
|
||||
return ctx->i32;
|
||||
else if (t == ctx->f64 || t == ctx->i64)
|
||||
return ctx->i64;
|
||||
else
|
||||
unreachable("Unhandled integer size");
|
||||
}
|
||||
|
||||
LLVMTypeRef
|
||||
ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
|
||||
{
|
||||
if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
|
||||
LLVMTypeRef elem_type = LLVMGetElementType(t);
|
||||
return LLVMVectorType(to_integer_type_scalar(ctx, elem_type),
|
||||
LLVMGetVectorSize(t));
|
||||
}
|
||||
return to_integer_type_scalar(ctx, t);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v)
|
||||
{
|
||||
LLVMTypeRef type = LLVMTypeOf(v);
|
||||
return LLVMBuildBitCast(ctx->builder, v, ac_to_integer_type(ctx, type), "");
|
||||
}
|
||||
|
||||
static LLVMTypeRef to_float_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
|
||||
{
|
||||
if (t == ctx->i16 || t == ctx->f16)
|
||||
return ctx->f16;
|
||||
else if (t == ctx->i32 || t == ctx->f32)
|
||||
return ctx->f32;
|
||||
else if (t == ctx->i64 || t == ctx->f64)
|
||||
return ctx->f64;
|
||||
else
|
||||
unreachable("Unhandled float size");
|
||||
}
|
||||
|
||||
LLVMTypeRef
|
||||
ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t)
|
||||
{
|
||||
if (LLVMGetTypeKind(t) == LLVMVectorTypeKind) {
|
||||
LLVMTypeRef elem_type = LLVMGetElementType(t);
|
||||
return LLVMVectorType(to_float_type_scalar(ctx, elem_type),
|
||||
LLVMGetVectorSize(t));
|
||||
}
|
||||
return to_float_type_scalar(ctx, t);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_to_float(struct ac_llvm_context *ctx, LLVMValueRef v)
|
||||
{
|
||||
LLVMTypeRef type = LLVMTypeOf(v);
|
||||
return LLVMBuildBitCast(ctx->builder, v, ac_to_float_type(ctx, type), "");
|
||||
}
|
||||
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
||||
LLVMTypeRef return_type, LLVMValueRef *params,
|
||||
@@ -233,6 +125,20 @@ ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
||||
return call;
|
||||
}
|
||||
|
||||
static LLVMValueRef bitcast_to_float(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef value)
|
||||
{
|
||||
LLVMTypeRef type = LLVMTypeOf(value);
|
||||
LLVMTypeRef new_type;
|
||||
|
||||
if (LLVMGetTypeKind(type) == LLVMVectorTypeKind)
|
||||
new_type = LLVMVectorType(ctx->f32, LLVMGetVectorSize(type));
|
||||
else
|
||||
new_type = ctx->f32;
|
||||
|
||||
return LLVMBuildBitCast(ctx->builder, value, new_type, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Given the i32 or vNi32 \p type, generate the textual name (e.g. for use with
|
||||
* intrinsic names).
|
||||
@@ -270,131 +176,18 @@ void ac_build_type_name_for_intr(LLVMTypeRef type, char *buf, unsigned bufsize)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper function that builds an LLVM IR PHI node and immediately adds
|
||||
* incoming edges.
|
||||
*/
|
||||
LLVMValueRef
|
||||
ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks)
|
||||
{
|
||||
LLVMValueRef phi = LLVMBuildPhi(ctx->builder, type, "");
|
||||
LLVMAddIncoming(phi, values, blocks, count_incoming);
|
||||
return phi;
|
||||
}
|
||||
|
||||
/* 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.
|
||||
*
|
||||
* Optionally, a value can be passed through the inline assembly to prevent
|
||||
* LLVM from hoisting calls to ReadNone functions.
|
||||
*/
|
||||
void
|
||||
ac_build_optimization_barrier(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *pvgpr)
|
||||
{
|
||||
static int counter = 0;
|
||||
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
char code[16];
|
||||
|
||||
snprintf(code, sizeof(code), "; %d", p_atomic_inc_return(&counter));
|
||||
|
||||
if (!pvgpr) {
|
||||
LLVMTypeRef ftype = LLVMFunctionType(ctx->voidt, NULL, 0, false);
|
||||
LLVMValueRef inlineasm = LLVMConstInlineAsm(ftype, code, "", true, false);
|
||||
LLVMBuildCall(builder, inlineasm, NULL, 0, "");
|
||||
} else {
|
||||
LLVMTypeRef ftype = LLVMFunctionType(ctx->i32, &ctx->i32, 1, false);
|
||||
LLVMValueRef inlineasm = LLVMConstInlineAsm(ftype, code, "=v,0", true, false);
|
||||
LLVMValueRef vgpr = *pvgpr;
|
||||
LLVMTypeRef vgpr_type = LLVMTypeOf(vgpr);
|
||||
unsigned vgpr_size = ac_get_type_size(vgpr_type);
|
||||
LLVMValueRef vgpr0;
|
||||
|
||||
assert(vgpr_size % 4 == 0);
|
||||
|
||||
vgpr = LLVMBuildBitCast(builder, vgpr, LLVMVectorType(ctx->i32, vgpr_size / 4), "");
|
||||
vgpr0 = LLVMBuildExtractElement(builder, vgpr, ctx->i32_0, "");
|
||||
vgpr0 = LLVMBuildCall(builder, inlineasm, &vgpr0, 1, "");
|
||||
vgpr = LLVMBuildInsertElement(builder, vgpr, vgpr0, ctx->i32_0, "");
|
||||
vgpr = LLVMBuildBitCast(builder, vgpr, vgpr_type, "");
|
||||
|
||||
*pvgpr = vgpr;
|
||||
}
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_ballot(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef value)
|
||||
{
|
||||
LLVMValueRef args[3] = {
|
||||
value,
|
||||
ctx->i32_0,
|
||||
LLVMConstInt(ctx->i32, LLVMIntNE, 0)
|
||||
};
|
||||
|
||||
/* We currently have no other way to prevent LLVM from lifting the icmp
|
||||
* calls to a dominating basic block.
|
||||
*/
|
||||
ac_build_optimization_barrier(ctx, &args[0]);
|
||||
|
||||
if (LLVMTypeOf(args[0]) != ctx->i32)
|
||||
args[0] = LLVMBuildBitCast(ctx->builder, args[0], ctx->i32, "");
|
||||
|
||||
return ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.icmp.i32",
|
||||
ctx->i64, args, 3,
|
||||
AC_FUNC_ATTR_NOUNWIND |
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_vote_all(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
LLVMValueRef active_set = ac_build_ballot(ctx, ctx->i32_1);
|
||||
LLVMValueRef vote_set = ac_build_ballot(ctx, value);
|
||||
return LLVMBuildICmp(ctx->builder, LLVMIntEQ, vote_set, active_set, "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_vote_any(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
LLVMValueRef vote_set = ac_build_ballot(ctx, value);
|
||||
return LLVMBuildICmp(ctx->builder, LLVMIntNE, vote_set,
|
||||
LLVMConstInt(ctx->i64, 0, 0), "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_vote_eq(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
LLVMValueRef active_set = ac_build_ballot(ctx, ctx->i32_1);
|
||||
LLVMValueRef vote_set = ac_build_ballot(ctx, value);
|
||||
|
||||
LLVMValueRef all = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
|
||||
vote_set, active_set, "");
|
||||
LLVMValueRef none = LLVMBuildICmp(ctx->builder, LLVMIntEQ,
|
||||
vote_set,
|
||||
LLVMConstInt(ctx->i64, 0, 0), "");
|
||||
return LLVMBuildOr(ctx->builder, all, none, "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values_extended(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count,
|
||||
unsigned value_stride,
|
||||
bool load,
|
||||
bool always_vector)
|
||||
bool load)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMValueRef vec = NULL;
|
||||
unsigned i;
|
||||
|
||||
if (value_count == 1 && !always_vector) {
|
||||
if (value_count == 1) {
|
||||
if (load)
|
||||
return LLVMBuildLoad(builder, values[0], "");
|
||||
return values[0];
|
||||
@@ -419,7 +212,7 @@ ac_build_gather_values(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count)
|
||||
{
|
||||
return ac_build_gather_values_extended(ctx, values, value_count, 1, false, false);
|
||||
return ac_build_gather_values_extended(ctx, values, value_count, 1, false);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
@@ -470,13 +263,12 @@ build_cube_intrinsic(struct ac_llvm_context *ctx,
|
||||
* selcoords.ma; i.e., a positive out_ma means that coords is pointed towards
|
||||
* the selcoords major axis.
|
||||
*/
|
||||
static void build_cube_select(struct ac_llvm_context *ctx,
|
||||
static void build_cube_select(LLVMBuilderRef builder,
|
||||
const struct cube_selection_coords *selcoords,
|
||||
const LLVMValueRef *coords,
|
||||
LLVMValueRef *out_st,
|
||||
LLVMValueRef *out_ma)
|
||||
{
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMTypeRef f32 = LLVMTypeOf(coords[0]);
|
||||
LLVMValueRef is_ma_positive;
|
||||
LLVMValueRef sgn_ma;
|
||||
@@ -498,29 +290,29 @@ static void build_cube_select(struct ac_llvm_context *ctx,
|
||||
is_ma_x = LLVMBuildAnd(builder, is_not_ma_z, LLVMBuildNot(builder, is_ma_y, ""), "");
|
||||
|
||||
/* Select sc */
|
||||
tmp = LLVMBuildSelect(builder, is_ma_x, coords[2], coords[0], "");
|
||||
tmp = LLVMBuildSelect(builder, is_ma_z, coords[2], coords[0], "");
|
||||
sgn = LLVMBuildSelect(builder, is_ma_y, LLVMConstReal(f32, 1.0),
|
||||
LLVMBuildSelect(builder, is_ma_z, sgn_ma,
|
||||
LLVMBuildSelect(builder, is_ma_x, sgn_ma,
|
||||
LLVMBuildFNeg(builder, sgn_ma, ""), ""), "");
|
||||
out_st[0] = LLVMBuildFMul(builder, tmp, sgn, "");
|
||||
|
||||
/* Select tc */
|
||||
tmp = LLVMBuildSelect(builder, is_ma_y, coords[2], coords[1], "");
|
||||
sgn = LLVMBuildSelect(builder, is_ma_y, sgn_ma,
|
||||
sgn = LLVMBuildSelect(builder, is_ma_y, LLVMBuildFNeg(builder, sgn_ma, ""),
|
||||
LLVMConstReal(f32, -1.0), "");
|
||||
out_st[1] = LLVMBuildFMul(builder, tmp, sgn, "");
|
||||
|
||||
/* Select ma */
|
||||
tmp = LLVMBuildSelect(builder, is_ma_z, coords[2],
|
||||
LLVMBuildSelect(builder, is_ma_y, coords[1], coords[0], ""), "");
|
||||
tmp = ac_build_intrinsic(ctx, "llvm.fabs.f32",
|
||||
ctx->f32, &tmp, 1, AC_FUNC_ATTR_READNONE);
|
||||
*out_ma = LLVMBuildFMul(builder, tmp, LLVMConstReal(f32, 2.0), "");
|
||||
sgn = LLVMBuildSelect(builder, is_ma_positive,
|
||||
LLVMConstReal(f32, 2.0), LLVMConstReal(f32, -2.0), "");
|
||||
*out_ma = LLVMBuildFMul(builder, tmp, sgn, "");
|
||||
}
|
||||
|
||||
void
|
||||
ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
bool is_deriv, bool is_array, bool is_lod,
|
||||
bool is_deriv, bool is_array,
|
||||
LLVMValueRef *coords_arg,
|
||||
LLVMValueRef *derivs_arg)
|
||||
{
|
||||
@@ -530,38 +322,6 @@ ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef coords[3];
|
||||
LLVMValueRef invma;
|
||||
|
||||
if (is_array && !is_lod) {
|
||||
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:
|
||||
*
|
||||
* "For Array forms, the array layer used will be
|
||||
*
|
||||
* max(0, min(d−1, floor(layer+0.5)))
|
||||
*
|
||||
* where d is the depth of the texture array and layer
|
||||
* comes from the component indicated in the tables below.
|
||||
* Workaroudn for an issue where the layer is taken from a
|
||||
* helper invocation which happens to fall on a different
|
||||
* layer due to extrapolation."
|
||||
*
|
||||
* VI and earlier attempt to implement this in hardware by
|
||||
* clamping the value of coords[2] = (8 * layer) + face.
|
||||
* Unfortunately, this means that the we end up with the wrong
|
||||
* face when clamping occurs.
|
||||
*
|
||||
* Clamp the layer earlier to work around the issue.
|
||||
*/
|
||||
if (ctx->chip_class <= VI) {
|
||||
LLVMValueRef ge0;
|
||||
ge0 = LLVMBuildFCmp(builder, LLVMRealOGE, tmp, ctx->f32_0, "");
|
||||
tmp = LLVMBuildSelect(builder, ge0, tmp, ctx->f32_0, "");
|
||||
}
|
||||
|
||||
coords_arg[3] = tmp;
|
||||
}
|
||||
|
||||
build_cube_intrinsic(ctx, coords_arg, &selcoords);
|
||||
|
||||
invma = ac_build_intrinsic(ctx, "llvm.fabs.f32",
|
||||
@@ -603,7 +363,7 @@ ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
* seems awfully quiet about how textureGrad for cube
|
||||
* maps should be handled.
|
||||
*/
|
||||
build_cube_select(ctx, &selcoords, &derivs_arg[axis * 3],
|
||||
build_cube_select(builder, &selcoords, &derivs_arg[axis * 3],
|
||||
deriv_st, &deriv_ma);
|
||||
|
||||
deriv_ma = LLVMBuildFMul(builder, deriv_ma, invma, "");
|
||||
@@ -735,42 +495,34 @@ ac_build_indexed_store(struct ac_llvm_context *ctx,
|
||||
* \param base_ptr Where the array starts.
|
||||
* \param index The element index into the array.
|
||||
* \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)
|
||||
* dynamically uniform
|
||||
*/
|
||||
static LLVMValueRef
|
||||
ac_build_load_custom(struct ac_llvm_context *ctx, LLVMValueRef base_ptr,
|
||||
LLVMValueRef index, bool uniform, bool invariant)
|
||||
LLVMValueRef
|
||||
ac_build_indexed_load(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index,
|
||||
bool uniform)
|
||||
{
|
||||
LLVMValueRef pointer, result;
|
||||
LLVMValueRef pointer;
|
||||
|
||||
pointer = ac_build_gep0(ctx, base_ptr, index);
|
||||
if (uniform)
|
||||
LLVMSetMetadata(pointer, ctx->uniform_md_kind, ctx->empty_md);
|
||||
result = LLVMBuildLoad(ctx->builder, pointer, "");
|
||||
if (invariant)
|
||||
LLVMSetMetadata(result, ctx->invariant_load_md_kind, ctx->empty_md);
|
||||
return LLVMBuildLoad(ctx->builder, pointer, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Do a load from &base_ptr[index], but also add a flag that it's loading
|
||||
* a constant from a dynamically uniform index.
|
||||
*/
|
||||
LLVMValueRef
|
||||
ac_build_indexed_load_const(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index)
|
||||
{
|
||||
LLVMValueRef result = ac_build_indexed_load(ctx, base_ptr, index, true);
|
||||
LLVMSetMetadata(result, ctx->invariant_load_md_kind, ctx->empty_md);
|
||||
return result;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
/* TBUFFER_STORE_FORMAT_{X,XY,XYZ,XYZW} <- the suffix is selected by num_channels=1..4.
|
||||
* The type of vdata must be one of i32 (num_channels=1), v2i32 (num_channels=2),
|
||||
* or v4i32 (num_channels=3,4).
|
||||
@@ -786,13 +538,10 @@ ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool slc,
|
||||
bool writeonly_memory,
|
||||
bool swizzle_enable_hint)
|
||||
bool has_add_tid)
|
||||
{
|
||||
/* SWIZZLE_ENABLE requires that soffset isn't folded into voffset
|
||||
* (voffset is swizzled, but soffset isn't swizzled).
|
||||
* llvm.amdgcn.buffer.store doesn't have a separate soffset parameter.
|
||||
*/
|
||||
if (!swizzle_enable_hint) {
|
||||
/* TODO: Fix stores with ADD_TID and remove the "has_add_tid" flag. */
|
||||
if (!has_add_tid) {
|
||||
/* Split 3 channel stores, becase LLVM doesn't support 3-channel
|
||||
* intrinsics. */
|
||||
if (num_channels == 3) {
|
||||
@@ -806,11 +555,11 @@ ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
|
||||
ac_build_buffer_store_dword(ctx, rsrc, v01, 2, voffset,
|
||||
soffset, inst_offset, glc, slc,
|
||||
writeonly_memory, swizzle_enable_hint);
|
||||
writeonly_memory, has_add_tid);
|
||||
ac_build_buffer_store_dword(ctx, rsrc, v[2], 1, voffset,
|
||||
soffset, inst_offset + 8,
|
||||
glc, slc,
|
||||
writeonly_memory, swizzle_enable_hint);
|
||||
writeonly_memory, has_add_tid);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -826,7 +575,7 @@ ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
offset = LLVMBuildAdd(ctx->builder, offset, voffset, "");
|
||||
|
||||
LLVMValueRef args[] = {
|
||||
ac_to_float(ctx, vdata),
|
||||
bitcast_to_float(ctx, vdata),
|
||||
LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
|
||||
LLVMConstInt(ctx->i32, 0, 0),
|
||||
offset,
|
||||
@@ -978,26 +727,6 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
|
||||
AC_FUNC_ATTR_READONLY);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
bool can_speculate)
|
||||
{
|
||||
LLVMValueRef elem_count = LLVMBuildExtractElement(ctx->builder, rsrc, LLVMConstInt(ctx->i32, 2, 0), "");
|
||||
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,
|
||||
LLVMBuildICmp(ctx->builder, LLVMIntUGT, elem_count, stride, ""),
|
||||
elem_count, stride, "");
|
||||
|
||||
LLVMValueRef new_rsrc = LLVMBuildInsertElement(ctx->builder, rsrc, new_elem_count,
|
||||
LLVMConstInt(ctx->i32, 2, 0), "");
|
||||
|
||||
return ac_build_buffer_load_format(ctx, new_rsrc, vindex, voffset, can_speculate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set range metadata on an instruction. This can only be used on load and
|
||||
* call instructions. If you know an instruction can only produce the values
|
||||
@@ -1063,6 +792,7 @@ ac_get_thread_id(struct ac_llvm_context *ctx)
|
||||
*/
|
||||
LLVMValueRef
|
||||
ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
bool has_ds_bpermute,
|
||||
uint32_t mask,
|
||||
int idx,
|
||||
LLVMValueRef val)
|
||||
@@ -1070,7 +800,7 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef tl, trbl, args[2];
|
||||
LLVMValueRef result;
|
||||
|
||||
if (ctx->chip_class >= VI) {
|
||||
if (has_ds_bpermute) {
|
||||
LLVMValueRef thread_id, tl_tid, trbl_tid;
|
||||
thread_id = ac_get_thread_id(ctx);
|
||||
|
||||
@@ -1097,7 +827,7 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
} else {
|
||||
uint32_t masks[2] = {};
|
||||
uint32_t masks[2];
|
||||
|
||||
switch (mask) {
|
||||
case AC_TID_MASK_TOP_LEFT:
|
||||
@@ -1116,8 +846,6 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
masks[0] = 0x80a0;
|
||||
masks[1] = 0x80f5;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
||||
args[0] = val;
|
||||
@@ -1206,13 +934,6 @@ ac_build_umsb(struct ac_llvm_context *ctx,
|
||||
LLVMConstInt(ctx->i32, -1, true), msb, "");
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_umin(struct ac_llvm_context *ctx, LLVMValueRef a,
|
||||
LLVMValueRef b)
|
||||
{
|
||||
LLVMValueRef cmp = LLVMBuildICmp(ctx->builder, LLVMIntULE, a, b, "");
|
||||
return LLVMBuildSelect(ctx->builder, cmp, a, b, "");
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, LLVMValueRef value)
|
||||
{
|
||||
if (HAVE_LLVM >= 0x0500) {
|
||||
@@ -1304,7 +1025,7 @@ LLVMValueRef ac_build_image_opcode(struct ac_llvm_context *ctx,
|
||||
a->opcode == ac_image_get_lod;
|
||||
|
||||
if (sample)
|
||||
args[num_args++] = ac_to_float(ctx, a->addr);
|
||||
args[num_args++] = bitcast_to_float(ctx, a->addr);
|
||||
else
|
||||
args[num_args++] = a->addr;
|
||||
|
||||
@@ -1772,182 +1493,3 @@ void ac_optimize_vs_outputs(struct ac_llvm_context *ctx,
|
||||
*num_param_exports = exports.num;
|
||||
}
|
||||
}
|
||||
|
||||
void ac_init_exec_full_mask(struct ac_llvm_context *ctx)
|
||||
{
|
||||
LLVMValueRef full_mask = LLVMConstInt(ctx->i64, ~0ull, 0);
|
||||
ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.init.exec", ctx->voidt,
|
||||
&full_mask, 1, AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
static struct ac_llvm_flow *
|
||||
get_current_flow(struct ac_llvm_context *ctx)
|
||||
{
|
||||
if (ctx->flow_depth > 0)
|
||||
return &ctx->flow[ctx->flow_depth - 1];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct ac_llvm_flow *
|
||||
get_innermost_loop(struct ac_llvm_context *ctx)
|
||||
{
|
||||
for (unsigned i = ctx->flow_depth; i > 0; --i) {
|
||||
if (ctx->flow[i - 1].loop_entry_block)
|
||||
return &ctx->flow[i - 1];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct ac_llvm_flow *
|
||||
push_flow(struct ac_llvm_context *ctx)
|
||||
{
|
||||
struct ac_llvm_flow *flow;
|
||||
|
||||
if (ctx->flow_depth >= ctx->flow_depth_max) {
|
||||
unsigned new_max = MAX2(ctx->flow_depth << 1,
|
||||
AC_LLVM_INITIAL_CF_DEPTH);
|
||||
|
||||
ctx->flow = realloc(ctx->flow, new_max * sizeof(*ctx->flow));
|
||||
ctx->flow_depth_max = new_max;
|
||||
}
|
||||
|
||||
flow = &ctx->flow[ctx->flow_depth];
|
||||
ctx->flow_depth++;
|
||||
|
||||
flow->next_block = NULL;
|
||||
flow->loop_entry_block = NULL;
|
||||
return flow;
|
||||
}
|
||||
|
||||
static void set_basicblock_name(LLVMBasicBlockRef bb, const char *base,
|
||||
int label_id)
|
||||
{
|
||||
char buf[32];
|
||||
snprintf(buf, sizeof(buf), "%s%d", base, label_id);
|
||||
LLVMSetValueName(LLVMBasicBlockAsValue(bb), buf);
|
||||
}
|
||||
|
||||
/* Append a basic block at the level of the parent flow.
|
||||
*/
|
||||
static LLVMBasicBlockRef append_basic_block(struct ac_llvm_context *ctx,
|
||||
const char *name)
|
||||
{
|
||||
assert(ctx->flow_depth >= 1);
|
||||
|
||||
if (ctx->flow_depth >= 2) {
|
||||
struct ac_llvm_flow *flow = &ctx->flow[ctx->flow_depth - 2];
|
||||
|
||||
return LLVMInsertBasicBlockInContext(ctx->context,
|
||||
flow->next_block, name);
|
||||
}
|
||||
|
||||
LLVMValueRef main_fn =
|
||||
LLVMGetBasicBlockParent(LLVMGetInsertBlock(ctx->builder));
|
||||
return LLVMAppendBasicBlockInContext(ctx->context, main_fn, name);
|
||||
}
|
||||
|
||||
/* Emit a branch to the given default target for the current block if
|
||||
* applicable -- that is, if the current block does not already contain a
|
||||
* branch from a break or continue.
|
||||
*/
|
||||
static void emit_default_branch(LLVMBuilderRef builder,
|
||||
LLVMBasicBlockRef target)
|
||||
{
|
||||
if (!LLVMGetBasicBlockTerminator(LLVMGetInsertBlock(builder)))
|
||||
LLVMBuildBr(builder, target);
|
||||
}
|
||||
|
||||
void ac_build_bgnloop(struct ac_llvm_context *ctx, int label_id)
|
||||
{
|
||||
struct ac_llvm_flow *flow = push_flow(ctx);
|
||||
flow->loop_entry_block = append_basic_block(ctx, "LOOP");
|
||||
flow->next_block = append_basic_block(ctx, "ENDLOOP");
|
||||
set_basicblock_name(flow->loop_entry_block, "loop", label_id);
|
||||
LLVMBuildBr(ctx->builder, flow->loop_entry_block);
|
||||
LLVMPositionBuilderAtEnd(ctx->builder, flow->loop_entry_block);
|
||||
}
|
||||
|
||||
void ac_build_break(struct ac_llvm_context *ctx)
|
||||
{
|
||||
struct ac_llvm_flow *flow = get_innermost_loop(ctx);
|
||||
LLVMBuildBr(ctx->builder, flow->next_block);
|
||||
}
|
||||
|
||||
void ac_build_continue(struct ac_llvm_context *ctx)
|
||||
{
|
||||
struct ac_llvm_flow *flow = get_innermost_loop(ctx);
|
||||
LLVMBuildBr(ctx->builder, flow->loop_entry_block);
|
||||
}
|
||||
|
||||
void ac_build_else(struct ac_llvm_context *ctx, int label_id)
|
||||
{
|
||||
struct ac_llvm_flow *current_branch = get_current_flow(ctx);
|
||||
LLVMBasicBlockRef endif_block;
|
||||
|
||||
assert(!current_branch->loop_entry_block);
|
||||
|
||||
endif_block = append_basic_block(ctx, "ENDIF");
|
||||
emit_default_branch(ctx->builder, endif_block);
|
||||
|
||||
LLVMPositionBuilderAtEnd(ctx->builder, current_branch->next_block);
|
||||
set_basicblock_name(current_branch->next_block, "else", label_id);
|
||||
|
||||
current_branch->next_block = endif_block;
|
||||
}
|
||||
|
||||
void ac_build_endif(struct ac_llvm_context *ctx, int label_id)
|
||||
{
|
||||
struct ac_llvm_flow *current_branch = get_current_flow(ctx);
|
||||
|
||||
assert(!current_branch->loop_entry_block);
|
||||
|
||||
emit_default_branch(ctx->builder, current_branch->next_block);
|
||||
LLVMPositionBuilderAtEnd(ctx->builder, current_branch->next_block);
|
||||
set_basicblock_name(current_branch->next_block, "endif", label_id);
|
||||
|
||||
ctx->flow_depth--;
|
||||
}
|
||||
|
||||
void ac_build_endloop(struct ac_llvm_context *ctx, int label_id)
|
||||
{
|
||||
struct ac_llvm_flow *current_loop = get_current_flow(ctx);
|
||||
|
||||
assert(current_loop->loop_entry_block);
|
||||
|
||||
emit_default_branch(ctx->builder, current_loop->loop_entry_block);
|
||||
|
||||
LLVMPositionBuilderAtEnd(ctx->builder, current_loop->next_block);
|
||||
set_basicblock_name(current_loop->next_block, "endloop", label_id);
|
||||
ctx->flow_depth--;
|
||||
}
|
||||
|
||||
static void if_cond_emit(struct ac_llvm_context *ctx, LLVMValueRef cond,
|
||||
int label_id)
|
||||
{
|
||||
struct ac_llvm_flow *flow = push_flow(ctx);
|
||||
LLVMBasicBlockRef if_block;
|
||||
|
||||
if_block = append_basic_block(ctx, "IF");
|
||||
flow->next_block = append_basic_block(ctx, "ELSE");
|
||||
set_basicblock_name(if_block, "if", label_id);
|
||||
LLVMBuildCondBr(ctx->builder, cond, if_block, flow->next_block);
|
||||
LLVMPositionBuilderAtEnd(ctx->builder, if_block);
|
||||
}
|
||||
|
||||
void ac_build_if(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
int label_id)
|
||||
{
|
||||
LLVMValueRef cond = LLVMBuildFCmp(ctx->builder, LLVMRealUNE,
|
||||
value, ctx->f32_0, "");
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
}
|
||||
|
||||
void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
int label_id)
|
||||
{
|
||||
LLVMValueRef cond = LLVMBuildICmp(ctx->builder, LLVMIntNE,
|
||||
ac_to_integer(ctx, value),
|
||||
ctx->i32_0, "");
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
}
|
||||
|
@@ -28,14 +28,10 @@
|
||||
#include <stdbool.h>
|
||||
#include <llvm-c/TargetMachine.h>
|
||||
|
||||
#include "amd_family.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct ac_llvm_flow;
|
||||
|
||||
struct ac_llvm_context {
|
||||
LLVMContextRef context;
|
||||
LLVMModuleRef module;
|
||||
@@ -59,33 +55,16 @@ struct ac_llvm_context {
|
||||
LLVMValueRef f32_0;
|
||||
LLVMValueRef f32_1;
|
||||
|
||||
struct ac_llvm_flow *flow;
|
||||
unsigned flow_depth;
|
||||
unsigned flow_depth_max;
|
||||
|
||||
unsigned range_md_kind;
|
||||
unsigned invariant_load_md_kind;
|
||||
unsigned uniform_md_kind;
|
||||
unsigned fpmath_md_kind;
|
||||
LLVMValueRef fpmath_md_2p5_ulp;
|
||||
LLVMValueRef empty_md;
|
||||
|
||||
enum chip_class chip_class;
|
||||
};
|
||||
|
||||
void
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context,
|
||||
enum chip_class chip_class);
|
||||
|
||||
void
|
||||
ac_llvm_context_dispose(struct ac_llvm_context *ctx);
|
||||
|
||||
unsigned ac_get_type_size(LLVMTypeRef type);
|
||||
|
||||
LLVMTypeRef ac_to_integer_type(struct ac_llvm_context *ctx, LLVMTypeRef t);
|
||||
LLVMValueRef ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v);
|
||||
LLVMTypeRef ac_to_float_type(struct ac_llvm_context *ctx, LLVMTypeRef t);
|
||||
LLVMValueRef ac_to_float(struct ac_llvm_context *ctx, LLVMValueRef v);
|
||||
ac_llvm_context_init(struct ac_llvm_context *ctx, LLVMContextRef context);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
||||
@@ -94,29 +73,12 @@ ac_build_intrinsic(struct ac_llvm_context *ctx, const char *name,
|
||||
|
||||
void ac_build_type_name_for_intr(LLVMTypeRef type, char *buf, unsigned bufsize);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
||||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks);
|
||||
|
||||
void ac_build_optimization_barrier(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *pvgpr);
|
||||
|
||||
LLVMValueRef ac_build_ballot(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
LLVMValueRef ac_build_vote_all(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
LLVMValueRef ac_build_vote_any(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
LLVMValueRef ac_build_vote_eq(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gather_values_extended(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
unsigned value_count,
|
||||
unsigned value_stride,
|
||||
bool load,
|
||||
bool always_vector);
|
||||
bool load);
|
||||
LLVMValueRef
|
||||
ac_build_gather_values(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *values,
|
||||
@@ -129,7 +91,7 @@ ac_build_fdiv(struct ac_llvm_context *ctx,
|
||||
|
||||
void
|
||||
ac_prepare_cube_coords(struct ac_llvm_context *ctx,
|
||||
bool is_deriv, bool is_array, bool is_lod,
|
||||
bool is_deriv, bool is_array,
|
||||
LLVMValueRef *coords_arg,
|
||||
LLVMValueRef *derivs_arg);
|
||||
|
||||
@@ -159,12 +121,14 @@ ac_build_indexed_store(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index,
|
||||
LLVMValueRef value);
|
||||
|
||||
LLVMValueRef ac_build_load(struct ac_llvm_context *ctx, LLVMValueRef base_ptr,
|
||||
LLVMValueRef index);
|
||||
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_indexed_load(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index,
|
||||
bool uniform);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_indexed_load_const(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr, LLVMValueRef index);
|
||||
|
||||
void
|
||||
ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
@@ -177,7 +141,7 @@ ac_build_buffer_store_dword(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool slc,
|
||||
bool writeonly_memory,
|
||||
bool swizzle_enable_hint);
|
||||
bool has_add_tid);
|
||||
LLVMValueRef
|
||||
ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
@@ -197,14 +161,6 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef voffset,
|
||||
bool can_speculate);
|
||||
|
||||
/* load_format that handles the stride & element count better if idxen is
|
||||
* disabled by LLVM. */
|
||||
LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
bool can_speculate);
|
||||
|
||||
LLVMValueRef
|
||||
ac_get_thread_id(struct ac_llvm_context *ctx);
|
||||
|
||||
@@ -214,6 +170,7 @@ ac_get_thread_id(struct ac_llvm_context *ctx);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
bool has_ds_bpermute,
|
||||
uint32_t mask,
|
||||
int idx,
|
||||
LLVMValueRef val);
|
||||
@@ -238,7 +195,6 @@ LLVMValueRef ac_build_umsb(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef arg,
|
||||
LLVMTypeRef dst_type);
|
||||
|
||||
LLVMValueRef ac_build_umin(struct ac_llvm_context *ctx, LLVMValueRef a, LLVMValueRef b);
|
||||
LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, LLVMValueRef value);
|
||||
|
||||
struct ac_export_args {
|
||||
@@ -298,19 +254,6 @@ void ac_optimize_vs_outputs(struct ac_llvm_context *ac,
|
||||
uint8_t *vs_output_param_offset,
|
||||
uint32_t num_outputs,
|
||||
uint8_t *num_param_exports);
|
||||
void ac_init_exec_full_mask(struct ac_llvm_context *ctx);
|
||||
|
||||
void ac_build_bgnloop(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_break(struct ac_llvm_context *ctx);
|
||||
void ac_build_continue(struct ac_llvm_context *ctx);
|
||||
void ac_build_else(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_endif(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_endloop(struct ac_llvm_context *ctx, int lable_id);
|
||||
void ac_build_if(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
int lable_id);
|
||||
void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
int lable_id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user