Compare commits
110 Commits
mesa-19.0.
...
mesa-18.3.
Author | SHA1 | Date | |
---|---|---|---|
|
d603cd9d84 | ||
|
cb55bc8771 | ||
|
af223b57a4 | ||
|
c694d84f10 | ||
|
a69ef11424 | ||
|
4b715e3e59 | ||
|
bd7edf473e | ||
|
a34228e1b0 | ||
|
d92bbe54ea | ||
|
54acae83e0 | ||
|
462bc0d5d4 | ||
|
055e0d7126 | ||
|
5b50e6a7ec | ||
|
5594bb584d | ||
|
d369bd91c3 | ||
|
cc45108382 | ||
|
babf9ab7da | ||
|
3985a62afc | ||
|
a7c4368a66 | ||
|
ab83cfd2bf | ||
|
98d571d212 | ||
|
56f90f6213 | ||
|
c2a22a44a1 | ||
|
fe460ee8cd | ||
|
b28aa1178a | ||
|
bb4bbb5c2d | ||
|
ce6a9169f0 | ||
|
bcc8332606 | ||
|
ace4860a4f | ||
|
41671f5dc0 | ||
|
ec659efcba | ||
|
a1f6ae4e27 | ||
|
a32c568d39 | ||
|
d575455be6 | ||
|
7d8a9087ae | ||
|
5598426132 | ||
|
35e9cd3428 | ||
|
1a905e4c5b | ||
|
6b9b7ce38c | ||
|
02566b9725 | ||
|
825cb76860 | ||
|
a941399117 | ||
|
f7040d9107 | ||
|
b8502f1517 | ||
|
33f1569f02 | ||
|
3dd73ab248 | ||
|
3036ffa1a2 | ||
|
8168ee7712 | ||
|
1869f3f6af | ||
|
200004fe03 | ||
|
d7795a8431 | ||
|
e299f1ba59 | ||
|
2e393b483d | ||
|
4b3f884673 | ||
|
65926d5d94 | ||
|
f25fb52eae | ||
|
0b48c82ad9 | ||
|
087f1534ae | ||
|
a57a727617 | ||
|
971ce9f854 | ||
|
bfe7eda028 | ||
|
221a8e3366 | ||
|
c8fef27cd3 | ||
|
4505df1676 | ||
|
8b5ce5fa70 | ||
|
cfd333c768 | ||
|
3853b9c14d | ||
|
98c0d87acd | ||
|
fc99358bdc | ||
|
9650fc05a5 | ||
|
e1dc5715b2 | ||
|
fbe2a54991 | ||
|
940d3a4ef8 | ||
|
9d92b603f1 | ||
|
e2494a9387 | ||
|
8a79c536d5 | ||
|
cc572038bf | ||
|
ad99afdce6 | ||
|
7ea4e43c55 | ||
|
6a706763d0 | ||
|
9b8380a4f9 | ||
|
fff64af317 | ||
|
5f137e94b9 | ||
|
c64a78ec0a | ||
|
73f457f486 | ||
|
f55265776f | ||
|
4c995fcae7 | ||
|
09c5e548c4 | ||
|
15442cac5c | ||
|
61c64f64d7 | ||
|
5b35600422 | ||
|
ede46c67ea | ||
|
ecb1bef871 | ||
|
a93d19f542 | ||
|
7053fe50c3 | ||
|
327330e77c | ||
|
422c905f4b | ||
|
1348e6e255 | ||
|
97a3ef3d1c | ||
|
6463af186c | ||
|
45fe51a0ee | ||
|
5adc1920ee | ||
|
6adbf17ce9 | ||
|
d5e33d2aa6 | ||
|
959a9d42d7 | ||
|
52e01585c4 | ||
|
12c5eb2fd3 | ||
|
949b1048f7 | ||
|
22201d2048 | ||
|
60fe2f6ecc |
@@ -11,7 +11,6 @@ tab_width = 8
|
||||
[*.{c,h,cpp,hpp,cc,hh}]
|
||||
indent_style = space
|
||||
indent_size = 3
|
||||
max_line_length = 78
|
||||
|
||||
[{Makefile*,*.mk}]
|
||||
indent_style = tab
|
||||
|
378
.travis.yml
378
.travis.yml
@@ -1,6 +1,7 @@
|
||||
language: c
|
||||
|
||||
dist: xenial
|
||||
sudo: false
|
||||
dist: trusty
|
||||
|
||||
cache:
|
||||
apt: true
|
||||
@@ -15,7 +16,7 @@ env:
|
||||
- GLPROTO_VERSION=glproto-1.4.17
|
||||
- DRI2PROTO_VERSION=dri2proto-2.8
|
||||
- LIBPCIACCESS_VERSION=libpciaccess-0.13.4
|
||||
- LIBDRM_VERSION=libdrm-2.4.97
|
||||
- LIBDRM_VERSION=libdrm-2.4.74
|
||||
- XCBPROTO_VERSION=xcb-proto-1.13
|
||||
- RANDRPROTO_VERSION=randrproto-1.3.0
|
||||
- LIBXRANDR_VERSION=libXrandr-1.3.0
|
||||
@@ -34,19 +35,20 @@ matrix:
|
||||
- env:
|
||||
- LABEL="meson Vulkan"
|
||||
- BUILD=meson
|
||||
- UNWIND="false"
|
||||
- DRI_LOADERS="-Dglx=disabled -Dgbm=false -Degl=false -Dplatforms=x11,wayland,drm -Dosmesa=none"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS="intel,amd"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- llvm-7-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
@@ -54,27 +56,23 @@ matrix:
|
||||
- libelf-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson loaders/classic DRI"
|
||||
- BUILD=meson
|
||||
- UNWIND="false"
|
||||
- DRI_LOADERS="-Dglx=dri -Dgbm=true -Degl=true -Dplatforms=x11,wayland,drm,surfaceless -Dosmesa=classic"
|
||||
- DRI_DRIVERS="i915,i965,r100,r200,swrast,nouveau"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS=""
|
||||
- VULKAN_DRIVERS=""
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libxxf86vm-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make loaders/classic DRI"
|
||||
- BUILD=make
|
||||
@@ -91,200 +89,11 @@ matrix:
|
||||
packages:
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
- libxxf86vm-dev
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libxdamage-dev
|
||||
- libxfixes-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
||||
# gallium drivers combined.
|
||||
# Start this early so that it doesn't hunder the run time.
|
||||
- LABEL="meson Gallium Drivers SWR"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS="swr"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium Drivers RadeonSI"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS="radeonsi"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium Drivers Other"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
- GALLIUM_DRIVERS="i915,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- llvm-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Clover LLVM-5.0"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libclc-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
- llvm-5.0-dev
|
||||
- clang-5.0
|
||||
- libclang-5.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Clover LLVM-6.0"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libclc-dev
|
||||
- llvm-6.0-dev
|
||||
- clang-6.0
|
||||
- libclang-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Clover LLVM-7"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
|
||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
- clang-7
|
||||
- libclang-7-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="meson Gallium ST Other"
|
||||
- BUILD=meson
|
||||
- UNWIND="true"
|
||||
- DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=true -Dgallium-xvmc=true -Dgallium-omx=bellagio -Dgallium-va=true -Dgallium-xa=true -Dgallium-nine=true -Dgallium-opencl=disabled -Dosmesa=gallium"
|
||||
# We need swrast for osmesa and nine.
|
||||
# Nouveau supports, or builds at least against all ST.
|
||||
- GALLIUM_DRIVERS="nouveau,swrast"
|
||||
- LLVM_VERSION=5.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- llvm-5.0-dev
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# Nine requires gcc 4.6... which is the one we have right ?
|
||||
- libxvmc-dev
|
||||
# Build locally, for now.
|
||||
#- libvdpau-dev
|
||||
#- libva-dev
|
||||
- libomxil-bellagio-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3.5
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
||||
# gallium drivers combined.
|
||||
@@ -303,7 +112,12 @@ matrix:
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
@@ -312,13 +126,12 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers RadeonSI"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -329,11 +142,12 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
@@ -341,7 +155,6 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium Drivers Other"
|
||||
- BUILD=make
|
||||
@@ -349,17 +162,23 @@ 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_DRIVERS="i915,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv"
|
||||
- GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,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
|
||||
- llvm-3.9-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
@@ -368,7 +187,6 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-3.9"
|
||||
- BUILD=make
|
||||
@@ -376,6 +194,10 @@ matrix:
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.9
|
||||
- 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"
|
||||
@@ -384,10 +206,15 @@ matrix:
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-3.9
|
||||
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
|
||||
@@ -398,7 +225,6 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-4.0"
|
||||
- BUILD=make
|
||||
@@ -406,6 +232,8 @@ matrix:
|
||||
- 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"
|
||||
@@ -414,10 +242,14 @@ matrix:
|
||||
- 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
|
||||
@@ -428,7 +260,6 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-5.0"
|
||||
- BUILD=make
|
||||
@@ -436,6 +267,8 @@ matrix:
|
||||
- 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"
|
||||
@@ -444,10 +277,14 @@ matrix:
|
||||
- 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
|
||||
@@ -458,7 +295,6 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-6.0"
|
||||
- BUILD=make
|
||||
@@ -469,13 +305,18 @@ matrix:
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
- GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
|
||||
- GALLIUM_DRIVERS="r600"
|
||||
- GALLIUM_DRIVERS="r600,radeonsi"
|
||||
- VULKAN_DRIVERS=""
|
||||
- LIBUNWIND_FLAGS="--enable-libunwind"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
- clang-6.0
|
||||
- libclang-6.0-dev
|
||||
@@ -486,7 +327,6 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Gallium ST Clover LLVM-7"
|
||||
- BUILD=make
|
||||
@@ -503,8 +343,10 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
- sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
# llvm-7 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- libclc-dev
|
||||
# From sources above
|
||||
@@ -522,7 +364,7 @@ matrix:
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="true"
|
||||
- LLVM_VERSION=3.5
|
||||
- LLVM_VERSION=3.3
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -536,8 +378,8 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# We actually want to test against llvm-3.3, yet 3.5 is available
|
||||
- llvm-3.5-dev
|
||||
# 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.
|
||||
@@ -553,13 +395,12 @@ matrix:
|
||||
- libelf-dev
|
||||
- libunwind8-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="make Vulkan"
|
||||
- BUILD=make
|
||||
- MAKEFLAGS="-j4"
|
||||
- MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
|
||||
- LLVM_VERSION=7
|
||||
- LLVM_VERSION=6.0
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
- DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
|
||||
- DRI_DRIVERS=""
|
||||
@@ -570,18 +411,18 @@ matrix:
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
|
||||
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-7-dev
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- libexpat1-dev
|
||||
- libx11-xcb-dev
|
||||
- libelf-dev
|
||||
- python3-pip
|
||||
- python3-setuptools
|
||||
- env:
|
||||
- LABEL="scons"
|
||||
- BUILD=scons
|
||||
@@ -606,15 +447,14 @@ matrix:
|
||||
- SCONS_TARGET="llvm=1"
|
||||
# Keep it symmetrical to the make build.
|
||||
- SCONS_CHECK_COMMAND="scons llvm=1 check"
|
||||
- LLVM_VERSION=3.5
|
||||
- LLVM_VERSION=3.3
|
||||
- LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
# LLVM packaging is broken and misses these dependencies
|
||||
- libedit-dev
|
||||
# We actually want to test against llvm-3.3, yet 3.5 is available
|
||||
- llvm-3.5-dev
|
||||
- llvm-3.3-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
- x11proto-xf86vidmode-dev
|
||||
@@ -632,7 +472,12 @@ matrix:
|
||||
- SCONS_CHECK_COMMAND="true"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- llvm-toolchain-trusty-6.0
|
||||
# llvm-6 requires libstdc++4.9 which is not in main repo
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# From sources above
|
||||
- llvm-6.0-dev
|
||||
# Common
|
||||
- xz-utils
|
||||
@@ -650,9 +495,6 @@ matrix:
|
||||
- env:
|
||||
- LABEL="macOS meson"
|
||||
- BUILD=meson
|
||||
- UNWIND="false"
|
||||
- DRI_LOADERS="-Dglx=dri -Dgbm=false -Degl=false -Dplatforms=x11 -Dosmesa=none"
|
||||
- GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
|
||||
os: osx
|
||||
|
||||
before_install:
|
||||
@@ -680,8 +522,10 @@ before_install:
|
||||
|
||||
install:
|
||||
# Install a more modern meson from pip, since the version in the
|
||||
# ubuntu repos is often quite old.
|
||||
# ubuntu repos is often quite old. This requires python>=3.5, so
|
||||
# let's make it default
|
||||
- if test "x$BUILD" = xmeson; then
|
||||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 10;
|
||||
pip3 install --user meson;
|
||||
pip3 install --user mako;
|
||||
fi
|
||||
@@ -697,6 +541,16 @@ install:
|
||||
pip2 install --user mako;
|
||||
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
|
||||
old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
|
||||
new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
|
||||
if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
|
||||
export LIBDRM_VERSION="libdrm-$new_ver";
|
||||
fi;
|
||||
done
|
||||
|
||||
# Install dependencies where we require specific versions (or where
|
||||
# disallowed by Travis CI's package whitelisting).
|
||||
|
||||
@@ -758,7 +612,7 @@ install:
|
||||
tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
|
||||
(cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
|
||||
|
||||
# Meson requires ninja >= 1.6, but xenial has 1.3.x
|
||||
# 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/
|
||||
@@ -801,13 +655,15 @@ install:
|
||||
|
||||
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`";
|
||||
|
||||
mkdir build &&
|
||||
cd build &&
|
||||
../autogen.sh
|
||||
--enable-autotools
|
||||
--enable-debug
|
||||
../autogen.sh --enable-debug
|
||||
$LIBUNWIND_FLAGS
|
||||
$DRI_LOADERS
|
||||
--with-dri-drivers=$DRI_DRIVERS
|
||||
@@ -820,33 +676,41 @@ script:
|
||||
fi
|
||||
|
||||
- if test "x$BUILD" = xscons; then
|
||||
test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
|
||||
test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
|
||||
scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
|
||||
fi
|
||||
|
||||
- |
|
||||
if test "x$BUILD" = xmeson; then
|
||||
if test -n "$LLVM_CONFIG"; then
|
||||
# We need to control the version of llvm-config we're using, so we'll
|
||||
# generate a native file to do so. This requires meson >=0.49
|
||||
#
|
||||
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
|
||||
|
||||
$LLVM_CONFIG --version
|
||||
else
|
||||
: > native.file
|
||||
if test "x$TRAVIS_OS_NAME" == xosx; then
|
||||
MESON_OPTIONS="-Degl=false"
|
||||
fi
|
||||
|
||||
if test "x$TRAVIS_OS_NAME" == xlinux; then
|
||||
MESON_OPTIONS="-Ddri-drivers=${DRI_DRIVERS:-[]} -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} -Dvulkan-drivers=${VULKAN_DRIVERS:-[]}"
|
||||
fi
|
||||
|
||||
# Travis CI has moved to LLVM 5.0, and meson is detecting
|
||||
# automatically the available version in /usr/local/bin based on
|
||||
# the PATH env variable order preference.
|
||||
#
|
||||
# As for 0.44.x, Meson cannot receive the path to the
|
||||
# llvm-config binary as a configuration parameter. See
|
||||
# https://github.com/mesonbuild/meson/issues/2887 and
|
||||
# https://github.com/dcbaker/meson/commit/7c8b6ee3fa42f43c9ac7dcacc61a77eca3f1bcef
|
||||
#
|
||||
# We want to use the custom (APT) installed version. Therefore,
|
||||
# let's make Meson find our wanted version sooner than the one
|
||||
# at /usr/local/bin
|
||||
#
|
||||
# Once this is corrected, we would still need a patch similar
|
||||
# to:
|
||||
# https://lists.freedesktop.org/archives/mesa-dev/2017-December/180217.html
|
||||
test -f /usr/bin/$LLVM_CONFIG && ln -s /usr/bin/$LLVM_CONFIG $HOME/prefix/bin/llvm-config
|
||||
|
||||
export CFLAGS="$CFLAGS -isystem`pwd`"
|
||||
meson _build \
|
||||
--native-file=native.file \
|
||||
-Dbuild-tests=true \
|
||||
-Dlibunwind=${UNWIND} \
|
||||
${DRI_LOADERS} \
|
||||
-Ddri-drivers=${DRI_DRIVERS:-[]} \
|
||||
${GALLIUM_ST} \
|
||||
-Dgallium-drivers=${GALLIUM_DRIVERS:-[]} \
|
||||
-Dvulkan-drivers=${VULKAN_DRIVERS:-[]}
|
||||
meson configure _build
|
||||
meson _build $MESON_OPTIONS
|
||||
ninja -C _build
|
||||
ninja -C _build test
|
||||
fi
|
||||
|
@@ -37,6 +37,7 @@ LOCAL_CFLAGS += \
|
||||
-Wno-missing-field-initializers \
|
||||
-Wno-initializer-overrides \
|
||||
-Wno-mismatched-tags \
|
||||
-DVERSION=\"$(MESA_VERSION)\" \
|
||||
-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \
|
||||
-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
# BOARD_GPU_DRIVERS should be defined. The valid values are
|
||||
#
|
||||
# classic drivers: i915 i965
|
||||
# gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv
|
||||
# gallium drivers: swrast freedreno i915g nouveau pl111 r300g r600g radeonsi vc4 virgl vmwgfx etnaviv imx
|
||||
#
|
||||
# The main target is libGLES_mesa. For each classic driver enabled, a DRI
|
||||
# module will also be built. DRI modules will be loaded by libGLES_mesa.
|
||||
@@ -52,14 +52,15 @@ gallium_drivers := \
|
||||
freedreno.HAVE_GALLIUM_FREEDRENO \
|
||||
i915g.HAVE_GALLIUM_I915 \
|
||||
nouveau.HAVE_GALLIUM_NOUVEAU \
|
||||
kmsro.HAVE_GALLIUM_KMSRO \
|
||||
pl111.HAVE_GALLIUM_PL111 \
|
||||
r300g.HAVE_GALLIUM_R300 \
|
||||
r600g.HAVE_GALLIUM_R600 \
|
||||
radeonsi.HAVE_GALLIUM_RADEONSI \
|
||||
vmwgfx.HAVE_GALLIUM_VMWGFX \
|
||||
vc4.HAVE_GALLIUM_VC4 \
|
||||
virgl.HAVE_GALLIUM_VIRGL \
|
||||
etnaviv.HAVE_GALLIUM_ETNAVIV
|
||||
etnaviv.HAVE_GALLIUM_ETNAVIV \
|
||||
imx.HAVE_GALLIUM_IMX
|
||||
|
||||
ifeq ($(BOARD_GPU_DRIVERS),all)
|
||||
MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers)))
|
||||
|
@@ -22,7 +22,6 @@
|
||||
SUBDIRS = src
|
||||
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-autotools \
|
||||
--enable-dri \
|
||||
--enable-dri3 \
|
||||
--enable-egl \
|
||||
@@ -46,7 +45,7 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--enable-libunwind \
|
||||
--with-platforms=x11,wayland,drm,surfaceless \
|
||||
--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
|
||||
--with-gallium-drivers=i915,nouveau,r300,kmsro,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv \
|
||||
--with-gallium-drivers=i915,nouveau,r300,pl111,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv,imx \
|
||||
--with-vulkan-drivers=intel,radeon
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
@@ -72,9 +72,7 @@ F: src/loader/
|
||||
|
||||
EGL
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
R: Emil Velikov <emil.l.velikov@gmail.com>
|
||||
F: src/egl/
|
||||
F: include/EGL/
|
||||
|
||||
HAIKU
|
||||
R: Alexander von Gluck IV <kallisti5@unixzen.com>
|
||||
@@ -138,8 +136,3 @@ F: src/gallium/drivers/freedreno/
|
||||
GLX
|
||||
R: Adam Jackson <ajax@redhat.com>
|
||||
F: src/glx/
|
||||
|
||||
VULKAN
|
||||
R: Eric Engestrom <eric@engestrom.ch>
|
||||
F: src/vulkan/
|
||||
F: include/vulkan/
|
||||
|
@@ -1,17 +1,2 @@
|
||||
# Both of these were already merged with different shas
|
||||
da48cba61ef6fefb799bf96e6364b70dbf4ec712
|
||||
c812c740e60c14060eb89db66039111881a0f42f
|
||||
|
||||
# The commit these fix was reverted from 19.0, but fixed for 19.1 due
|
||||
# to the number of fixes required to make that commit work
|
||||
8d8f80af3a17354508f2ec9d6559c915d5be351d
|
||||
0c0c69729b6d72a5297122856c8fe48510e90764
|
||||
0881e90c09965818b02e359474a6f7446b41d647
|
||||
b031c643491a92a5574c7a4bd659df33f2d89bb6
|
||||
|
||||
# These were manually rebased by Jason, thanks!
|
||||
8ab95b849e66f3221d80a67eef2ec6e3730901a8
|
||||
5c30fffeec1732c21d600c036f95f8cdb1bb5487
|
||||
|
||||
# This doesn't actually appliy to 19.0
|
||||
29179f58c6ba8099859ea25900214dbbd3814a92
|
||||
# fixes: Commit was squashed into the respective offenders
|
||||
c02390f8fcd367c7350db568feabb2f062efca14 egl/wayland: rather obvious build fix
|
||||
|
@@ -13,54 +13,39 @@
|
||||
|
||||
is_stable_nomination()
|
||||
{
|
||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
||||
git show --summary "$1" | grep -q -i -o "CC:.*mesa-stable"
|
||||
}
|
||||
|
||||
is_typod_nomination()
|
||||
{
|
||||
git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
||||
git show --summary "$1" | grep -q -i -o "CC:.*mesa-dev"
|
||||
}
|
||||
|
||||
fixes=
|
||||
|
||||
# Helper to handle various mistypos of the fixes tag.
|
||||
# The tag string itself is passed as argument and normalised within.
|
||||
#
|
||||
# Resulting string in the global variable "fixes" and contains entries
|
||||
# in the form "fixes:$sha"
|
||||
is_sha_nomination()
|
||||
{
|
||||
fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \
|
||||
sed -e 's/'"$2"'/\nfixes:/Ig' | \
|
||||
grep -Eo 'fixes:[a-f0-9]{8,40}'`
|
||||
|
||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
||||
fixes_count=`echo "$fixes" | wc -l`
|
||||
if test $fixes_count -eq 0; then
|
||||
return 1
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Throw a warning for each invalid sha
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
if ! git show $id >/dev/null 2>&1; then
|
||||
echo WARNING: Commit $1 lists invalid sha $id
|
||||
|
||||
# Bail out if we cannot find suitable id.
|
||||
# Any specific validation the $id is valid and not some junk, is
|
||||
# implied with the follow up code
|
||||
if test "x$id" = x; then
|
||||
continue
|
||||
fi
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Checks if at least one of offending commits, listed in the global
|
||||
# "fixes", is in branch.
|
||||
sha_in_range()
|
||||
{
|
||||
fixes_count=`echo "$fixes" | grep "fixes:" | wc -l`
|
||||
while test $fixes_count -gt 0; do
|
||||
# Treat only the current line
|
||||
id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2`
|
||||
fixes_count=$(($fixes_count-1))
|
||||
#Check if the offending commit is in branch.
|
||||
|
||||
# Be that cherry-picked ...
|
||||
# ... or landed before the branchpoint.
|
||||
@@ -118,32 +103,22 @@ do
|
||||
continue
|
||||
fi
|
||||
|
||||
if is_fixes_nomination "$sha"; then
|
||||
if is_stable_nomination "$sha"; then
|
||||
tag=stable
|
||||
elif is_typod_nomination "$sha"; then
|
||||
tag=typod
|
||||
elif is_fixes_nomination "$sha"; then
|
||||
tag=fixes
|
||||
elif is_brokenby_nomination "$sha"; then
|
||||
tag=brokenby
|
||||
elif is_revert_nomination "$sha"; then
|
||||
tag=revert
|
||||
elif is_stable_nomination "$sha"; then
|
||||
tag=stable
|
||||
elif is_typod_nomination "$sha"; then
|
||||
tag=typod
|
||||
else
|
||||
continue
|
||||
fi
|
||||
|
||||
case "$tag" in
|
||||
fixes | brokenby | revert )
|
||||
if ! sha_in_range; then
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
|
||||
printf "[ %8s ] " "$tag"
|
||||
git --no-pager show --no-patch --oneline $sha
|
||||
git --no-pager show --summary --oneline $sha
|
||||
done
|
||||
|
||||
rm -f already_picked
|
||||
|
@@ -35,11 +35,7 @@ def main():
|
||||
args = parser.parse_args()
|
||||
|
||||
if os.path.isabs(args.libdir):
|
||||
destdir = os.environ.get('DESTDIR')
|
||||
if destdir:
|
||||
to = os.path.join(destdir, args.libdir[1:])
|
||||
else:
|
||||
to = args.libdir
|
||||
to = os.path.join(os.environ.get('DESTDIR', '/'), args.libdir[1:])
|
||||
else:
|
||||
to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir)
|
||||
|
||||
@@ -49,6 +45,7 @@ def main():
|
||||
if os.path.lexists(to):
|
||||
os.unlink(to)
|
||||
os.makedirs(to)
|
||||
shutil.copy(args.megadriver, master)
|
||||
|
||||
for driver in args.drivers:
|
||||
abs_driver = os.path.join(to, driver)
|
||||
|
@@ -1,88 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# Copyright © 2019 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
# in the Software without restriction, including without limitation the rights
|
||||
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
# copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
"""This script reads a meson build directory and gives back the command line it
|
||||
was configured with.
|
||||
|
||||
This only works for meson 0.49.0 and newer.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import ast
|
||||
import configparser
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
"""Parse arguments."""
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'build_dir',
|
||||
help='Path the meson build directory')
|
||||
args = parser.parse_args()
|
||||
return args
|
||||
|
||||
|
||||
def load_config(path: pathlib.Path) -> configparser.ConfigParser:
|
||||
"""Load config file."""
|
||||
conf = configparser.ConfigParser()
|
||||
with path.open() as f:
|
||||
conf.read_file(f)
|
||||
return conf
|
||||
|
||||
|
||||
def build_cmd(conf: configparser.ConfigParser) -> str:
|
||||
"""Rebuild the command line."""
|
||||
args = []
|
||||
for k, v in conf['options'].items():
|
||||
if ' ' in v:
|
||||
args.append(f'-D{k}="{v}"')
|
||||
else:
|
||||
args.append(f'-D{k}={v}')
|
||||
|
||||
cf = conf['properties'].get('cross_file')
|
||||
if cf:
|
||||
args.append('--cross-file={}'.format(cf))
|
||||
nf = conf['properties'].get('native_file')
|
||||
if nf:
|
||||
# this will be in the form "['str', 'str']", so use ast.literal_eval to
|
||||
# convert it to a list of strings.
|
||||
nf = ast.literal_eval(nf)
|
||||
args.extend(['--native-file={}'.format(f) for f in nf])
|
||||
return ' '.join(args)
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
path = pathlib.Path(args.build_dir, 'meson-private', 'cmd_line.txt')
|
||||
if not path.exists():
|
||||
print('Cannot find the necessary file to rebuild command line. '
|
||||
'Is your meson version >= 0.49.0?', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
conf = load_config(path)
|
||||
cmd = build_cmd(conf)
|
||||
print(cmd)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
67
configure.ac
67
configure.ac
@@ -52,19 +52,6 @@ mingw*)
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_ENABLE(autotools,
|
||||
[AS_HELP_STRING([--enable-autotools],
|
||||
[Enable the use of this autotools based build configuration])],
|
||||
[enable_autotools=$enableval], [enable_autotools=no])
|
||||
|
||||
if test "x$enable_autotools" != "xyes" ; then
|
||||
AC_MSG_ERROR([the autotools build system has been deprecated in favour of
|
||||
meson and will be removed eventually. For instructions on how to use meson
|
||||
see https://www.mesa3d.org/meson.html.
|
||||
If you still want to use the autotools build, then add --enable-autotools
|
||||
to the configure command line.])
|
||||
fi
|
||||
|
||||
# Support silent build rules, requires at least automake-1.11. Disable
|
||||
# by either passing --disable-silent-rules to configure or passing V=1
|
||||
# to make
|
||||
@@ -87,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.97
|
||||
LIBDRM_AMDGPU_REQUIRED=2.4.95
|
||||
LIBDRM_INTEL_REQUIRED=2.4.75
|
||||
LIBDRM_NVVIEUX_REQUIRED=2.4.66
|
||||
LIBDRM_NOUVEAU_REQUIRED=2.4.66
|
||||
@@ -120,9 +107,9 @@ dnl LLVM versions
|
||||
LLVM_REQUIRED_GALLIUM=3.3.0
|
||||
LLVM_REQUIRED_OPENCL=3.9.0
|
||||
LLVM_REQUIRED_R600=3.9.0
|
||||
LLVM_REQUIRED_RADEONSI=7.0.0
|
||||
LLVM_REQUIRED_RADV=7.0.0
|
||||
LLVM_REQUIRED_SWR=7.0.0
|
||||
LLVM_REQUIRED_RADEONSI=6.0.0
|
||||
LLVM_REQUIRED_RADV=6.0.0
|
||||
LLVM_REQUIRED_SWR=6.0.0
|
||||
|
||||
dnl Check for progs
|
||||
AC_PROG_CPP
|
||||
@@ -1408,7 +1395,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,kmsro,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv"
|
||||
"i915,nouveau,r300,r600,radeonsi,freedreno,pl111,svga,swrast,swr,tegra,v3d,vc4,virgl,etnaviv,imx"
|
||||
@<:@default=r300,r600,svga,swrast@:>@])],
|
||||
[with_gallium_drivers="$withval"],
|
||||
[with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
|
||||
@@ -1729,8 +1716,6 @@ xdri)
|
||||
if test x"$enable_dri" = xyes; then
|
||||
dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
|
||||
fi
|
||||
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
fi
|
||||
if test x"$dri_platform" = xapple ; then
|
||||
DEFINES="$DEFINES -DGLX_USE_APPLEGL"
|
||||
@@ -1740,6 +1725,8 @@ xdri)
|
||||
fi
|
||||
fi
|
||||
|
||||
dri_modules="$dri_modules xxf86vm"
|
||||
|
||||
PKG_CHECK_MODULES([DRIGL], [$dri_modules])
|
||||
GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
|
||||
X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
|
||||
@@ -1877,7 +1864,6 @@ for plat in $platforms; do
|
||||
;;
|
||||
|
||||
drm)
|
||||
test "x$enable_egl" = "xyes" &&
|
||||
test "x$enable_gbm" = "xno" &&
|
||||
AC_MSG_ERROR([EGL platform drm needs gbm])
|
||||
DEFINES="$DEFINES -DHAVE_DRM_PLATFORM"
|
||||
@@ -1922,7 +1908,7 @@ if test x"$enable_dri3" = xyes; then
|
||||
dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present >= $XCBPRESENT_MODIFIERS_REQUIRED"
|
||||
PKG_CHECK_MODULES([XCB_DRI3_MODIFIERS], [$dri3_modifier_modules], [have_dri3_modifiers=yes], [have_dri3_modifiers=no])
|
||||
|
||||
if test "x$have_dri3_modifiers" = xyes; then
|
||||
if test "x$have_dri3_modifiers" == xyes; then
|
||||
DEFINES="$DEFINES -DHAVE_DRI3_MODIFIERS"
|
||||
fi
|
||||
fi
|
||||
@@ -2741,6 +2727,9 @@ if test -n "$with_gallium_drivers"; then
|
||||
PKG_CHECK_MODULES([ETNAVIV], [libdrm >= $LIBDRM_ETNAVIV_REQUIRED libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
|
||||
require_libdrm "etnaviv"
|
||||
;;
|
||||
ximx)
|
||||
HAVE_GALLIUM_IMX=yes
|
||||
;;
|
||||
xtegra)
|
||||
HAVE_GALLIUM_TEGRA=yes
|
||||
require_libdrm "tegra"
|
||||
@@ -2827,8 +2816,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
DEFINES="$DEFINES -DUSE_V3D_SIMULATOR"],
|
||||
[USE_V3D_SIMULATOR=no])
|
||||
;;
|
||||
xkmsro)
|
||||
HAVE_GALLIUM_KMSRO=yes
|
||||
xpl111)
|
||||
HAVE_GALLIUM_PL111=yes
|
||||
;;
|
||||
xvirgl)
|
||||
HAVE_GALLIUM_VIRGL=yes
|
||||
@@ -2845,8 +2834,8 @@ if test -n "$with_gallium_drivers"; then
|
||||
fi
|
||||
|
||||
# XXX: Keep in sync with LLVM_REQUIRED_SWR
|
||||
AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x7.0.0 -a \
|
||||
"x$LLVM_VERSION" != x7.0.1)
|
||||
AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x6.0.0 -a \
|
||||
"x$LLVM_VERSION" != x6.0.1)
|
||||
|
||||
if test "x$enable_llvm" = "xyes" -a "$with_gallium_drivers"; then
|
||||
llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium"
|
||||
@@ -2861,8 +2850,12 @@ AM_CONDITIONAL(HAVE_SWR_BUILTIN, test "x$HAVE_SWR_BUILTIN" = xyes)
|
||||
|
||||
dnl We need to validate some needed dependencies for renderonly drivers.
|
||||
|
||||
if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_KMSRO" = xyes ; then
|
||||
AC_MSG_ERROR([Building with kmsro requires vc4])
|
||||
if test "x$HAVE_GALLIUM_ETNAVIV" != xyes -a "x$HAVE_GALLIUM_IMX" = xyes ; then
|
||||
AC_MSG_ERROR([Building with imx requires etnaviv])
|
||||
fi
|
||||
|
||||
if test "x$HAVE_GALLIUM_VC4" != xyes -a "x$HAVE_GALLIUM_PL111" = xyes ; then
|
||||
AC_MSG_ERROR([Building with pl111 requires vc4])
|
||||
fi
|
||||
|
||||
if test "x$HAVE_GALLIUM_NOUVEAU" != xyes -a "x$HAVE_GALLIUM_TEGRA" = xyes; then
|
||||
@@ -2910,7 +2903,6 @@ if test "x$enable_llvm" = xyes; then
|
||||
LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
|
||||
LLVM_CFLAGS=$LLVM_CPPFLAGS # CPPFLAGS seem to be sufficient
|
||||
LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
|
||||
LLVM_CXXFLAGS="$CXX11_CXXFLAGS $LLVM_CXXFLAGS"
|
||||
|
||||
dnl Set LLVM_LIBS - This is done after the driver configuration so
|
||||
dnl that drivers can add additional components to LLVM_COMPONENTS.
|
||||
@@ -2945,11 +2937,11 @@ if test "x$enable_llvm" = xyes; then
|
||||
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 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
|
||||
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
|
||||
@@ -2959,13 +2951,14 @@ fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_KMSRO, test "x$HAVE_GALLIUM_KMSRO" = xyes)
|
||||
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_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)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_IMX, test "x$HAVE_GALLIUM_IMX" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_TEGRA, test "x$HAVE_GALLIUM_TEGRA" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
|
||||
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
|
||||
@@ -3004,7 +2997,6 @@ AM_CONDITIONAL(HAVE_AMD_DRIVERS, test "x$HAVE_GALLIUM_RADEONSI" = xyes -o \
|
||||
AM_CONDITIONAL(HAVE_BROADCOM_DRIVERS, test "x$HAVE_GALLIUM_VC4" = xyes -o \
|
||||
"x$HAVE_GALLIUM_V3D" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_FREEDRENO_DRIVERS, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
|
||||
AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes -o \
|
||||
"x$HAVE_I965_DRI" = xyes)
|
||||
|
||||
@@ -3051,7 +3043,7 @@ AC_SUBST([XVMC_MAJOR], 1)
|
||||
AC_SUBST([XVMC_MINOR], 0)
|
||||
|
||||
AC_SUBST([XA_MAJOR], 2)
|
||||
AC_SUBST([XA_MINOR], 5)
|
||||
AC_SUBST([XA_MINOR], 4)
|
||||
AC_SUBST([XA_PATCH], 0)
|
||||
AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_PATCH")
|
||||
|
||||
@@ -3097,7 +3089,6 @@ AC_CONFIG_FILES([Makefile
|
||||
src/amd/vulkan/Makefile
|
||||
src/broadcom/Makefile
|
||||
src/compiler/Makefile
|
||||
src/freedreno/Makefile
|
||||
src/egl/Makefile
|
||||
src/egl/main/egl.pc
|
||||
src/egl/wayland/wayland-drm/Makefile
|
||||
@@ -3108,7 +3099,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/i915/Makefile
|
||||
src/gallium/drivers/llvmpipe/Makefile
|
||||
src/gallium/drivers/nouveau/Makefile
|
||||
src/gallium/drivers/kmsro/Makefile
|
||||
src/gallium/drivers/pl111/Makefile
|
||||
src/gallium/drivers/r300/Makefile
|
||||
src/gallium/drivers/r600/Makefile
|
||||
src/gallium/drivers/radeonsi/Makefile
|
||||
@@ -3117,6 +3108,7 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/drivers/swr/Makefile
|
||||
src/gallium/drivers/tegra/Makefile
|
||||
src/gallium/drivers/etnaviv/Makefile
|
||||
src/gallium/drivers/imx/Makefile
|
||||
src/gallium/drivers/v3d/Makefile
|
||||
src/gallium/drivers/vc4/Makefile
|
||||
src/gallium/drivers/virgl/Makefile
|
||||
@@ -3151,10 +3143,11 @@ AC_CONFIG_FILES([Makefile
|
||||
src/gallium/tests/trivial/Makefile
|
||||
src/gallium/tests/unit/Makefile
|
||||
src/gallium/winsys/etnaviv/drm/Makefile
|
||||
src/gallium/winsys/imx/drm/Makefile
|
||||
src/gallium/winsys/freedreno/drm/Makefile
|
||||
src/gallium/winsys/i915/drm/Makefile
|
||||
src/gallium/winsys/nouveau/drm/Makefile
|
||||
src/gallium/winsys/kmsro/drm/Makefile
|
||||
src/gallium/winsys/pl111/drm/Makefile
|
||||
src/gallium/winsys/radeon/drm/Makefile
|
||||
src/gallium/winsys/amdgpu/drm/Makefile
|
||||
src/gallium/winsys/svga/drm/Makefile
|
||||
|
@@ -26,12 +26,6 @@
|
||||
</ul>
|
||||
</ol>
|
||||
|
||||
<h2>ATTENTION:</h2>
|
||||
<p>
|
||||
The autotools build is being replaced by the <a href="meson.html">meson</a>
|
||||
build system. If you haven't yet now is a good time to try using meson and
|
||||
report any issues you run into.
|
||||
</p>
|
||||
|
||||
<h2 id="basic">1. Basic Usage</h2>
|
||||
|
||||
|
@@ -319,7 +319,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_EXT_memory_object DONE (radeonsi)
|
||||
GL_EXT_memory_object_fd DONE (radeonsi)
|
||||
GL_EXT_memory_object_win32 not started
|
||||
GL_EXT_render_snorm DONE (i965, radeonsi)
|
||||
GL_EXT_render_snorm DONE (i965)
|
||||
GL_EXT_semaphore DONE (radeonsi)
|
||||
GL_EXT_semaphore_fd DONE (radeonsi)
|
||||
GL_EXT_semaphore_win32 not started
|
||||
@@ -338,7 +338,7 @@ Khronos, ARB, and OES extensions that are not part of any OpenGL or OpenGL ES ve
|
||||
GL_OES_texture_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_half_float_linear DONE (freedreno, i965, r300, r600, radeonsi, nv30, nv50, nvc0, softpipe, llvmpipe)
|
||||
GL_OES_texture_view DONE (freedreno, i965/gen8+, r600, radeonsi, nv50, nvc0, softpipe, llvmpipe, swr)
|
||||
GL_OES_texture_view DONE (i965/gen8+)
|
||||
GL_OES_viewport_array DONE (i965, nvc0, radeonsi)
|
||||
GLX_ARB_context_flush_control not started
|
||||
GLX_ARB_robustness_application_isolation not started
|
||||
|
@@ -15,53 +15,6 @@
|
||||
<div class="content">
|
||||
|
||||
<h1>News</h1>
|
||||
<h2>January 17, 2019</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.3.2.html">Mesa 18.3.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>December 27, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.8.html">Mesa 18.2.8</a> is released.
|
||||
This is a bug-fix release.
|
||||
<br>
|
||||
NOTE: It is anticipated that 18.2.8 will be the final release in the
|
||||
18.2 series. Users of 18.2 are encouraged to migrate to the 18.3
|
||||
series in order to obtain future fixes.
|
||||
</p>
|
||||
|
||||
<h2>December 13, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.7.html">Mesa 18.2.7</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>December 11, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.3.1.html">Mesa 18.3.1</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>December 7, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.3.0.html">Mesa 18.3.0</a> is released. This is a
|
||||
new development release. See the release notes for more information
|
||||
about the release.
|
||||
</p>
|
||||
|
||||
<h2>November 28, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.6.html">Mesa 18.2.6</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>November 15, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.5.html">Mesa 18.2.5</a> is released.
|
||||
This is a bug-fix release.
|
||||
</p>
|
||||
|
||||
<h2>October 31, 2018</h2>
|
||||
<p>
|
||||
<a href="relnotes/18.2.4.html">Mesa 18.2.4</a> is released.
|
||||
|
@@ -22,7 +22,6 @@
|
||||
<li><a href="#prereq-general">General prerequisites</a>
|
||||
<li><a href="#prereq-dri">For DRI and hardware acceleration</a>
|
||||
</ul>
|
||||
<li><a href="#meson">Building with meson</a>
|
||||
<li><a href="#autoconf">Building with autoconf (Linux/Unix/X11)</a>
|
||||
<li><a href="#scons">Building with SCons (Windows/Linux)</a>
|
||||
<li><a href="#android">Building with AOSP (Android)</a>
|
||||
@@ -40,10 +39,9 @@ Build system.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://mesonbuild.com">meson</a> is recommended when building on *nix platforms.
|
||||
<li>Autoconf is another option when building on *nix platforms.
|
||||
<li>Autoconf is required when building on *nix platforms.
|
||||
<li><a href="http://www.scons.org/">SCons</a> is required for building on
|
||||
Windows and optional for Linux (it's an alternative to autoconf/automake or meson.)
|
||||
Windows and optional for Linux (it's an alternative to autoconf/automake.)
|
||||
</li>
|
||||
<li>Android Build system when building as native Android component. Autoconf
|
||||
is used when when building ARC.
|
||||
@@ -74,9 +72,7 @@ you think you've spotted a bug let developers know by filing a
|
||||
|
||||
<ul>
|
||||
<li><a href="https://www.python.org/">Python</a> - Python is required.
|
||||
When building with scons 2.7 is required.
|
||||
When building with meson 3.5 or newer is required.
|
||||
When building with autotools 2.7, or 3.5 or later are required.
|
||||
Version 2.7 or later should work.
|
||||
</li>
|
||||
<li><a href="http://www.makotemplates.org/">Python Mako module</a> -
|
||||
Python Mako module is required. Version 0.8.0 or later should work.
|
||||
@@ -115,31 +111,11 @@ the packaging tool used by your distro.
|
||||
... # others
|
||||
</pre>
|
||||
|
||||
<h1 id="meson">2. Building with meson</h1>
|
||||
|
||||
<h1 id="autoconf">2. Building with autoconf (Linux/Unix/X11)</h1>
|
||||
|
||||
<p>
|
||||
Meson is the latest build system in mesa, it is currently able to build for
|
||||
*nix systems like Linux and BSD, and will be able to build for windows as well.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The general approach is:
|
||||
</p>
|
||||
<pre>
|
||||
meson builddir/
|
||||
ninja -C builddir/
|
||||
sudo ninja -C builddir/ install
|
||||
</pre>
|
||||
<p>
|
||||
Please read the <a href="meson.html">detailed meson instructions</a>
|
||||
for more information
|
||||
</p>
|
||||
|
||||
<h1 id="autoconf">3. Building with autoconf (Linux/Unix/X11)</h1>
|
||||
|
||||
<p>
|
||||
Although meson is recommended, another supported way to build on *nix systems
|
||||
is with autoconf.
|
||||
The primary method to build Mesa on Unix systems is with autoconf.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -157,7 +133,7 @@ for more details.
|
||||
|
||||
|
||||
|
||||
<h1 id="scons">4. Building with SCons (Windows/Linux)</h1>
|
||||
<h1 id="scons">3. Building with SCons (Windows/Linux)</h1>
|
||||
|
||||
<p>
|
||||
To build Mesa with SCons on Linux or Windows do
|
||||
@@ -193,7 +169,7 @@ Additional information is available in <a href="README.WIN32">README.WIN32</a>.
|
||||
|
||||
|
||||
|
||||
<h1 id="android">5. Building with AOSP (Android)</h1>
|
||||
<h1 id="android">4. Building with AOSP (Android)</h1>
|
||||
|
||||
<p>
|
||||
Currently one can build Mesa for Android as part of the AOSP project, yet
|
||||
@@ -212,7 +188,7 @@ Android-x86 and/or other resources.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="libs">6. Library Information</h1>
|
||||
<h1 id="libs">5. Library Information</h1>
|
||||
|
||||
<p>
|
||||
When compilation has finished, look in the top-level <code>lib/</code>
|
||||
@@ -250,7 +226,7 @@ versions of libGL and device drivers.
|
||||
</p>
|
||||
|
||||
|
||||
<h1 id="pkg-config">7. Building OpenGL programs with pkg-config</h1>
|
||||
<h1 id="pkg-config">6. Building OpenGL programs with pkg-config</h1>
|
||||
|
||||
<p>
|
||||
Running <code>make install</code> will install package configuration files
|
||||
|
@@ -29,9 +29,6 @@ pre {
|
||||
/*font-family: monospace;*/
|
||||
font-size: 10pt;
|
||||
/*color: black;*/
|
||||
background-color: #eee;
|
||||
margin-left: 2em;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
iframe {
|
||||
|
163
docs/meson.html
163
docs/meson.html
@@ -16,11 +16,6 @@
|
||||
|
||||
<h1>Compilation and Installation using Meson</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="#basic">Basic Usage</a></li>
|
||||
<li><a href="#cross-compilation">Cross-compilation and 32-bit builds</a></li>
|
||||
</ul>
|
||||
|
||||
<h2 id="basic">1. Basic Usage</h2>
|
||||
|
||||
<p><strong>The Meson build system is generally considered stable and ready
|
||||
@@ -53,13 +48,9 @@ To see a description of your options you can run <code>meson configure</code>
|
||||
along with a build directory to view the selected options for. This will show
|
||||
your meson global arguments and project arguments, along with their defaults
|
||||
and your local settings.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Meson does not currently support listing options before configure a build
|
||||
directory, but this feature is being discussed upstream.
|
||||
For now, the only way to see what options exist is to look at the
|
||||
<code>meson_options.txt</code> file at the root of the project.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@@ -114,14 +105,14 @@ to invoke non-default targets for ninja to update them:
|
||||
<dl>
|
||||
<dt><code>Environment Variables</code></dt>
|
||||
<dd><p>Meson supports the standard CC and CXX environment variables for
|
||||
changing the default compiler. Meson does support CFLAGS, CXXFLAGS, etc. But
|
||||
their use is discouraged because of the many caveats in using them. Instead it
|
||||
is recomended to use <code>-D${lang}_args</code> and
|
||||
<code>-D${lang}_link_args</code> instead. Among the benefits of these options
|
||||
is that they are guaranteed to persist across rebuilds and reconfigurations.
|
||||
changing the default compiler, and CFLAGS, CXXFLAGS, and LDFLAGS for setting
|
||||
options to the compiler and linker during the initial configuration.
|
||||
|
||||
Meson does not allow changing compiler in a configured builddir, you will need
|
||||
to create a new build dir for a different compiler.
|
||||
These arguments are consumed and stored by meson when it is initialized. To
|
||||
change these flags after the build is initialized (or when doing a first
|
||||
initialization), consider using <code>-D${lang}_args</code> and
|
||||
<code>-D${lang}_link_args</code> instead. Meson will never change compiler in a
|
||||
configured build directory.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@@ -144,56 +135,11 @@ the popular compilers, a complete list is available
|
||||
|
||||
<dt><code>LLVM</code></dt>
|
||||
<dd><p>Meson includes upstream logic to wrap llvm-config using its standard
|
||||
dependency interface.
|
||||
dependency interface. It will search <code>$PATH</code> (or <code>%PATH%</code> on windows) for
|
||||
llvm-config (and llvm-config$version and llvm-config-$version), so using an
|
||||
LLVM from a non-standard path is as easy as
|
||||
<code>PATH=/path/with/llvm-config:$PATH meson build</code>.
|
||||
</p></dd>
|
||||
|
||||
<dd><p>
|
||||
As of meson 0.49.0 meson also has the concept of a
|
||||
<a href="https://mesonbuild.com/Native-environments.html">"native file"</a>,
|
||||
these files provide information about the native build environment (as opposed
|
||||
to a cross build environment). They are ini formatted and can override where to
|
||||
find llvm-config:
|
||||
|
||||
custom-llvm.ini
|
||||
<pre>
|
||||
[binaries]
|
||||
llvm-config = '/usr/local/bin/llvm/llvm-config'
|
||||
</pre>
|
||||
|
||||
Then configure meson:
|
||||
|
||||
<pre>
|
||||
meson builddir/ --native-file custom-llvm.ini
|
||||
</pre>
|
||||
</p></dd>
|
||||
|
||||
<dd><p>
|
||||
For selecting llvm-config for cross compiling a
|
||||
<a href="https://mesonbuild.com/Cross-compilation.html#defining-the-environment">"cross file"</a>
|
||||
should be used. It uses the same format as the native file above:
|
||||
|
||||
cross-llvm.ini
|
||||
<pre>
|
||||
[binaries]
|
||||
...
|
||||
llvm-config = '/usr/lib/llvm-config-32'
|
||||
</pre>
|
||||
|
||||
Then configure meson:
|
||||
|
||||
<pre>
|
||||
meson builddir/ --cross-file cross-llvm.ini
|
||||
</pre>
|
||||
|
||||
See the <a href="#cross-compilation">Cross Compilation</a> section for more information.
|
||||
</dd></p>
|
||||
|
||||
<dd><p>
|
||||
For older versions of meson <code>$PATH</code> (or <code>%PATH%</code> on
|
||||
windows) will be searched for llvm-config (and llvm-config$version and
|
||||
llvm-config-$version), you can override this environment variable to control
|
||||
the search: <code>PATH=/path/with/llvm-config:$PATH meson build</code>.
|
||||
</dd></p>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
@@ -244,93 +190,6 @@ is unrelated to the <code>buildtype</code>; setting the latter to
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<h2 id="cross-compilation">2. Cross-compilation and 32-bit builds</h2>
|
||||
|
||||
<p><a href="https://mesonbuild.com/Cross-compilation.html">Meson supports
|
||||
cross-compilation</a> by specifying a number of binary paths and
|
||||
settings in a file and passing this file to <code>meson</code> or
|
||||
<code>meson configure</code> with the <code>--cross-file</code>
|
||||
parameter.</p>
|
||||
|
||||
<p>This file can live at any location, but you can use the bare filename
|
||||
(without the folder path) if you put it in $XDG_DATA_HOME/meson/cross or
|
||||
~/.local/share/meson/cross</p>
|
||||
|
||||
<p>Below are a few example of cross files, but keep in mind that you
|
||||
will likely have to alter them for your system.</p>
|
||||
|
||||
<p>
|
||||
Those running on ArchLinux can use the AUR-maintained packages for some
|
||||
of those, as they'll have the right values for your system:
|
||||
<ul>
|
||||
<li><a href="https://aur.archlinux.org/packages/meson-cross-x86-linux-gnu">meson-cross-x86-linux-gnu</a></li>
|
||||
<li><a href="https://aur.archlinux.org/packages/meson-cross-aarch64-linux-gnu">meson-cross-aarch64-linux-gnu</a></li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
32-bit build on x86 linux:
|
||||
<pre>
|
||||
[binaries]
|
||||
c = '/usr/bin/gcc'
|
||||
cpp = '/usr/bin/g++'
|
||||
ar = '/usr/bin/gcc-ar'
|
||||
strip = '/usr/bin/strip'
|
||||
pkgconfig = '/usr/bin/pkg-config-32'
|
||||
llvm-config = '/usr/bin/llvm-config32'
|
||||
|
||||
[properties]
|
||||
c_args = ['-m32']
|
||||
c_link_args = ['-m32']
|
||||
cpp_args = ['-m32']
|
||||
cpp_link_args = ['-m32']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'x86'
|
||||
cpu = 'i686'
|
||||
endian = 'little'
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
64-bit build on ARM linux:
|
||||
<pre>
|
||||
[binaries]
|
||||
c = '/usr/bin/aarch64-linux-gnu-gcc'
|
||||
cpp = '/usr/bin/aarch64-linux-gnu-g++'
|
||||
ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'
|
||||
strip = '/usr/bin/aarch64-linux-gnu-strip'
|
||||
pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'
|
||||
exe_wrapper = '/usr/bin/qemu-aarch64-static'
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'aarch64'
|
||||
endian = 'little'
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
64-bit build on x86 windows:
|
||||
<pre>
|
||||
[binaries]
|
||||
c = '/usr/bin/x86_64-w64-mingw32-gcc'
|
||||
cpp = '/usr/bin/x86_64-w64-mingw32-g++'
|
||||
ar = '/usr/bin/x86_64-w64-mingw32-ar'
|
||||
strip = '/usr/bin/x86_64-w64-mingw32-strip'
|
||||
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
|
||||
exe_wrapper = 'wine'
|
||||
|
||||
[host_machine]
|
||||
system = 'windows'
|
||||
cpu_family = 'x86_64'
|
||||
cpu = 'i686'
|
||||
endian = 'little'
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -23,16 +23,6 @@ Mesa provides feature/development and stable releases.
|
||||
The table below lists the date and release manager that is expected to do the
|
||||
specific release.
|
||||
<br>
|
||||
Regular updates will ensure that the schedule for the current and the
|
||||
next two feature releases are shown in the table.
|
||||
<br>
|
||||
In order to keep the whole releasing team up to date with the tools
|
||||
used, best practices and other details, the member in charge of the
|
||||
next feature release will be in constant rotation.
|
||||
<br>
|
||||
The way the release schedule works is
|
||||
explained <a href="releasing.html#schedule" target="_parent">here</a>.
|
||||
<br>
|
||||
Take a look <a href="submittingpatches.html#criteria" target="_parent">here</a>
|
||||
if you'd like to nominate a patch in the next stable release.
|
||||
</p>
|
||||
@@ -49,129 +39,47 @@ if you'd like to nominate a patch in the next stable release.
|
||||
<th>Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="3">18.2</td>
|
||||
<td>2018-11-14</td>
|
||||
<td>18.2.5</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-11-28</td>
|
||||
<td>18.2.6</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2018-12-12</td>
|
||||
<td>18.2.7</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned 18.2.x release</td>
|
||||
</tr>
|
||||
<td rowspan="4">18.3</td>
|
||||
<td>2019-01-30</td>
|
||||
<td>18.3.3</td>
|
||||
<td>2018-10-31</td>
|
||||
<td>18.3.0-rc1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-13</td>
|
||||
<td>18.3.4</td>
|
||||
<td>2018-11-07</td>
|
||||
<td>18.3.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-27</td>
|
||||
<td>18.3.5</td>
|
||||
<td>2018-11-14</td>
|
||||
<td>18.3.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-03-13</td>
|
||||
<td>18.3.6</td>
|
||||
<td>2018-11-21</td>
|
||||
<td>18.3.0-rc4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Last planned 18.3.x release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.0</td>
|
||||
<td>2019-01-29</td>
|
||||
<td>19.0.0-rc1</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-05</td>
|
||||
<td>19.0.0-rc2</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-12</td>
|
||||
<td>19.0.0-rc3</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-02-19</td>
|
||||
<td>19.0.0-rc4</td>
|
||||
<td>Dylan Baker</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.1</td>
|
||||
<td>2019-04-30</td>
|
||||
<td>19.1.0-rc1</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-07</td>
|
||||
<td>19.1.0-rc2</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-14</td>
|
||||
<td>19.1.0-rc3</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-05-21</td>
|
||||
<td>19.1.0-rc4</td>
|
||||
<td>Andres Gomez</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.2</td>
|
||||
<td>2019-08-06</td>
|
||||
<td>19.2.0-rc1</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-13</td>
|
||||
<td>19.2.0-rc2</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-20</td>
|
||||
<td>19.2.0-rc3</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-08-27</td>
|
||||
<td>19.2.0-rc4</td>
|
||||
<td>Emil Velikov</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="4">19.3</td>
|
||||
<td>2019-10-15</td>
|
||||
<td>19.3.0-rc1</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-10-22</td>
|
||||
<td>19.3.0-rc2</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-10-29</td>
|
||||
<td>19.3.0-rc3</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2019-11-05</td>
|
||||
<td>19.3.0-rc4</td>
|
||||
<td>Juan A. Suarez</td>
|
||||
<td>Last planned RC/Final release</td>
|
||||
<td>Last planned RC/final release</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
@@ -56,10 +56,9 @@ For example:
|
||||
|
||||
<p>
|
||||
Releases should happen on Wednesdays. Delays can occur although those
|
||||
should be kept to a minimum.
|
||||
should be keep to a minimum.
|
||||
<br>
|
||||
See our <a href="release-calendar.html" target="_parent">calendar</a>
|
||||
for information about how the release schedule is planned, and the
|
||||
See our <a href="release-calendar.html" target="_parent">calendar</a> for the
|
||||
date and other details for individual releases.
|
||||
</p>
|
||||
|
||||
@@ -68,9 +67,6 @@ date and other details for individual releases.
|
||||
<li>Available approximately every three months.
|
||||
<li>Initial timeplan available 2-4 weeks before the planned branchpoint (rc1)
|
||||
on the mesa-announce@ mailing list.
|
||||
<li>Typically, the final release will happen after 4
|
||||
candidates. Additional ones may be needed in order to resolve blocking
|
||||
regressions, though.
|
||||
<li>A <a href="#prerelease">pre-release</a> announcement should be available
|
||||
approximately 24 hours before the final (non-rc) release.
|
||||
</ul>
|
||||
@@ -88,12 +84,6 @@ Note: There is one or two releases overlap when changing branches. For example:
|
||||
<br>
|
||||
The final release from the 12.0 series Mesa 12.0.5 will be out around the same
|
||||
time (or shortly after) 13.0.1 is out.
|
||||
<br>
|
||||
This also involves that, as a final release may be delayed due to the
|
||||
need of additional candidates to solve some blocking regression(s),
|
||||
the release manager might have to update
|
||||
the <a href="release-calendar.html" target="_parent">calendar</a> with
|
||||
additional bug fix releases of the current stable branch.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -122,21 +112,18 @@ the autoconf and scons build.
|
||||
<p>Done continuously up-to the <a href="#prerelease">pre-release</a> announcement.</p>
|
||||
|
||||
<p>
|
||||
Developers can request, <em>as an exception</em>, patches to be applied up-to
|
||||
the last one hour before the actual release. This is made <strong>only</strong>
|
||||
with explicit permission/request, and the patch <strong>must</strong> be very
|
||||
well contained. Thus it cannot affect more than one driver/subsystem.
|
||||
As an exception, patches can be applied up-to the last ~1h before the actual
|
||||
release. This is made <strong>only</strong> with explicit permission/request,
|
||||
and the patch <strong>must</strong> be very well contained. Thus it cannot
|
||||
affect more than one driver/subsystem.
|
||||
</p>
|
||||
|
||||
<p>Following developers have requested permanent exception</p>
|
||||
<ul>
|
||||
<li><em>Ilia Mirkin</em>
|
||||
<li><em>AMD team</em>
|
||||
</ul>
|
||||
<p>
|
||||
Currently Ilia Mirkin and AMD devs have requested "permanent" exception.
|
||||
</p>
|
||||
|
||||
<p>The following must pass:</p>
|
||||
<ul>
|
||||
<li>make distcheck, scons and scons check
|
||||
<li>make distcheck, scons and scons check must pass
|
||||
<li>Testing with different version of system components - LLVM and others is also
|
||||
performed where possible.
|
||||
<li>As a general rule, testing with various combinations of configure
|
||||
@@ -144,9 +131,9 @@ switches, depending on the specific patchset.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
These are achieved by combination of <a href="basictesting">local testing</a>,
|
||||
which includes mingw-w64 cross compilation and AppVeyor plus Travis-CI, the
|
||||
latter two as part of their Github integration.
|
||||
Achieved by combination of local ad-hoc scripts, mingw-w64 cross
|
||||
compilation and AppVeyor plus Travis-CI, the latter as part of their
|
||||
Github integration.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -238,7 +225,7 @@ in the main repository under <code>staging/X.Y</code>. For example:
|
||||
Notes:
|
||||
</p>
|
||||
<ul>
|
||||
<li>People are encouraged to test the staging branch and report regressions.</li>
|
||||
<li>People are encouraged to test the branch and report regressions.</li>
|
||||
<li>The branch history is not stable and it <strong>will</strong> be rebased,</li>
|
||||
</ul>
|
||||
|
||||
@@ -458,7 +445,7 @@ Ensure the latest code is available - both in your local master and the
|
||||
relevant branch.
|
||||
</p>
|
||||
|
||||
<h3 id="basictesting">Perform basic testing</h3>
|
||||
<h3>Perform basic testing</h3>
|
||||
|
||||
<p>
|
||||
Most of the testing should already be done during the
|
||||
|
@@ -21,13 +21,6 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="relnotes/18.3.2.html">18.3.2 release notes</a>
|
||||
<li><a href="relnotes/18.2.8.html">18.2.8 release notes</a>
|
||||
<li><a href="relnotes/18.2.7.html">18.2.7 release notes</a>
|
||||
<li><a href="relnotes/18.3.1.html">18.3.1 release notes</a>
|
||||
<li><a href="relnotes/18.3.0.html">18.3.0 release notes</a>
|
||||
<li><a href="relnotes/18.2.6.html">18.2.6 release notes</a>
|
||||
<li><a href="relnotes/18.2.5.html">18.2.5 release notes</a>
|
||||
<li><a href="relnotes/18.2.4.html">18.2.4 release notes</a>
|
||||
<li><a href="relnotes/18.2.3.html">18.2.3 release notes</a>
|
||||
<li><a href="relnotes/18.2.2.html">18.2.2 release notes</a>
|
||||
|
@@ -1,172 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.5 Release Notes / November 15, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.5 is a bug fix release which fixes bugs found since the 18.2.4 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.5 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
dddc28928b6f4083a0d5120b58c1c8e2dc189ab5c14299c08a386607fdbbdce7 mesa-18.2.5.tar.gz
|
||||
b12c32872832e5353155e1e8026e1f1ab75bba9dc5b178d712045684d26c2b73 mesa-18.2.5.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=105731">Bug 105731</a> - linker error "fragment shader input ... has no matching output in the previous stage" when previous stage's output declaration in a separate shader object</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107511">Bug 107511</a> - KHR/khrplatform.h not always installed when needed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107626">Bug 107626</a> - [SNB] The graphical corruption and GPU hang occur sometimes on the piglit test "arb_texture_multisample-large-float-texture" with parameter --fp16</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108082">Bug 108082</a> - warning: unknown warning option '-Wno-format-truncation' [-Wunknown-warning-option]</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108560">Bug 108560</a> - Mesa 32 is built without sse</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andre Heider (1):</p>
|
||||
<ul>
|
||||
<li>st/nine: fix stack corruption due to ABI mismatch</li>
|
||||
</ul>
|
||||
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965/batch: don't ignore the 'brw_new_batch' call for a 'new batch'</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>meson: link gallium nine with pthreads</li>
|
||||
<li>meson: fix libatomic tests</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>egl/glvnd: correctly report errors when vendor cannot be found</li>
|
||||
<li>m4: add Werror when checking for compiler flags</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (6):</p>
|
||||
<ul>
|
||||
<li>svga: add missing meson build dependency</li>
|
||||
<li>clover: add missing meson build dependency</li>
|
||||
<li>wsi/wayland: use proper VkResult type</li>
|
||||
<li>wsi/wayland: only finish() a successfully init()ed display</li>
|
||||
<li>configure: install KHR/khrplatform.h when needed</li>
|
||||
<li>meson: install KHR/khrplatform.h when needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (1):</p>
|
||||
<ul>
|
||||
<li>virgl/vtest-winsys: Use virgl version of bind flags</li>
|
||||
</ul>
|
||||
|
||||
<p>Jonathan Gray (1):</p>
|
||||
<ul>
|
||||
<li>intel/tools: include stdarg.h in error2aub</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (4):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.4</li>
|
||||
<li>cherry-ignore: add explicit 18.3 only nominations</li>
|
||||
<li>cherry-ignore: i965/batch: avoid reverting batch buffer if saved state is an empty</li>
|
||||
<li>Update version to 18.2.5</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv/android: mark gralloc allocated BOs as external</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (3):</p>
|
||||
<ul>
|
||||
<li>ac: fix ac_build_fdiv for f64</li>
|
||||
<li>st/va: fix incorrect use of resource_destroy</li>
|
||||
<li>include: update GL & GLES headers (v2)</li>
|
||||
</ul>
|
||||
|
||||
<p>Matt Turner (2):</p>
|
||||
<ul>
|
||||
<li>util/ralloc: Switch from DEBUG to NDEBUG</li>
|
||||
<li>util/ralloc: Make sizeof(linear_header) a multiple of 8</li>
|
||||
</ul>
|
||||
|
||||
<p>Olivier Fourdan (1):</p>
|
||||
<ul>
|
||||
<li>wayland/egl: Resize EGL surface on update buffer for swrast</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (1):</p>
|
||||
<ul>
|
||||
<li>glsl_to_tgsi: don't create 64-bit integer MAD/FMA</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>radv: disable conditional rendering for vkCmdCopyQueryPoolResults()</li>
|
||||
<li>radv: only expose VK_SUBGROUP_FEATURE_ARITHMETIC_BIT for VI+</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>autotools: library-dependency when no sse and 32-bit</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (4):</p>
|
||||
<ul>
|
||||
<li>st/mesa: calculate buffer size correctly for packed uniforms</li>
|
||||
<li>st/glsl_to_nir: fix next_stage gathering</li>
|
||||
<li>nir: add glsl_type_is_integer() helper</li>
|
||||
<li>nir: don't pack varyings ints with floats unless flat</li>
|
||||
</ul>
|
||||
|
||||
<p>Vadym Shovkoplias (1):</p>
|
||||
<ul>
|
||||
<li>glsl/linker: Fix out variables linking during single stage</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>r600/sb: Fix constant logical operand in assert.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,179 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.6 Release Notes / November 28, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.6 is a bug fix release which fixes bugs found since the 18.2.5 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.6 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
e0ea1236dbc6c412b02e1b5d7f838072525971a6630246fa82ae4466a6d8a587 mesa-18.2.6.tar.gz
|
||||
9ebafa4f8249df0c718e93b9ca155e3593a1239af303aa2a8b0f2056a7efdc12 mesa-18.2.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=107626">Bug 107626</a> - [SNB] The graphical corruption and GPU hang occur sometimes on the piglit test "arb_texture_multisample-large-float-texture" with parameter --fp16</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107856">Bug 107856</a> - i965 incorrectly calculates the number of layers for texture views (assert)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108630">Bug 108630</a> - [G965] piglit.spec.!opengl 1_2.tex3d-maxsize spins forever</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108713">Bug 108713</a> - Gallium: use after free with transform feedback</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108829">Bug 108829</a> - [meson] libglapi exports internal API</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andrii Simiklit (1):</p>
|
||||
<ul>
|
||||
<li>i965/batch: avoid reverting batch buffer if saved state is an empty</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (1):</p>
|
||||
<ul>
|
||||
<li>radv: Fix opaque metadata descriptor last layer.</li>
|
||||
</ul>
|
||||
|
||||
<p>Brian Paul (1):</p>
|
||||
<ul>
|
||||
<li>scons/svga: remove opt from the list of valid build types</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (1):</p>
|
||||
<ul>
|
||||
<li>i965: Fix calculation of layers array length for isl_view</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>meson: Don't set -Wall</li>
|
||||
<li>meson: Don't force libva to required from auto</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (13):</p>
|
||||
<ul>
|
||||
<li>bin/get-pick-list.sh: simplify git oneline printing</li>
|
||||
<li>bin/get-pick-list.sh: prefix output with "[stable] "</li>
|
||||
<li>bin/get-pick-list.sh: handle "typod" usecase.</li>
|
||||
<li>bin/get-pick-list.sh: handle the fixes tag</li>
|
||||
<li>bin/get-pick-list.sh: tweak the commit sha matching pattern</li>
|
||||
<li>bin/get-pick-list.sh: flesh out is_sha_nomination</li>
|
||||
<li>bin/get-pick-list.sh: handle fixes tag with missing colon</li>
|
||||
<li>bin/get-pick-list.sh: handle unofficial "broken by" tag</li>
|
||||
<li>bin/get-pick-list.sh: use test instead of [ ]</li>
|
||||
<li>bin/get-pick-list.sh: handle reverts prior to the branchpoint</li>
|
||||
<li>travis: drop unneeded x11proto-xf86vidmode-dev</li>
|
||||
<li>glx: make xf86vidmode mandatory for direct rendering</li>
|
||||
<li>travis: adding missing x11-xcb for meson+vulkan</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>vc4: Make sure we make ro scanout resources for create_with_modifiers.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (5):</p>
|
||||
<ul>
|
||||
<li>meson: only run vulkan's meson.build when building vulkan</li>
|
||||
<li>gbm: remove unnecessary meson include</li>
|
||||
<li>meson: fix wayland-less builds</li>
|
||||
<li>egl: add missing glvnd entrypoint for EGL_ANDROID_blob_cache</li>
|
||||
<li>glapi: add missing visibility args</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (1):</p>
|
||||
<ul>
|
||||
<li>mesa/main: remove bogus error for zero-sized images</li>
|
||||
</ul>
|
||||
|
||||
<p>Gert Wollny (3):</p>
|
||||
<ul>
|
||||
<li>mesa: Reference count shaders that are used by transform feedback objects</li>
|
||||
<li>r600: clean up the GS ring buffers when the context is destroyed</li>
|
||||
<li>glsl: free or reuse memory allocated for TF varying</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (2):</p>
|
||||
<ul>
|
||||
<li>nir/lower_alu_to_scalar: Don't try to lower unpack_32_2x16</li>
|
||||
<li>anv: Put robust buffer access in the pipeline hash</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (6):</p>
|
||||
<ul>
|
||||
<li>cherry-ignore: add explicit 18.3 only nominations</li>
|
||||
<li>cherry-ignore: intel/aub_viewer: fix dynamic state printing</li>
|
||||
<li>cherry-ignore: intel/aub_viewer: Print blend states properly</li>
|
||||
<li>cherry-ignore: mesa/main: fix incorrect depth-error</li>
|
||||
<li>docs: add sha256 checksums for 18.2.5</li>
|
||||
<li>Update version to 18.2.6</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nir/spirv: cast shift operand to u32</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>i965: Add PCI IDs for new Amberlake parts that are Coffeelake based</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri: fix error value with unknown drm format</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (2):</p>
|
||||
<ul>
|
||||
<li>winsys/amdgpu: fix a buffer leak in amdgpu_bo_from_handle</li>
|
||||
<li>winsys/amdgpu: fix a device handle leak in amdgpu_winsys_create</li>
|
||||
</ul>
|
||||
|
||||
<p>Rodrigo Vivi (4):</p>
|
||||
<ul>
|
||||
<li>i965: Add a new CFL PCI ID.</li>
|
||||
<li>intel: aubinator: Adding missed platforms to the error message.</li>
|
||||
<li>intel: Introducing Amber Lake platform</li>
|
||||
<li>intel: Introducing Whiskey Lake platform</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,167 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.7 Release Notes / December 13, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.7 is a bug fix release which fixes bugs found since the 18.2.6 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.7 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
092351cfbcd430ec595fbd3a3d8d253fd62c29074e1740d7198b00289ab400f8 mesa-18.2.7.tar.gz
|
||||
9c7b02560d89d77ca279cd21f36ea9a49e9ffc5611f6fe35099357d744d07ae6 mesa-18.2.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=106577">Bug 106577</a> - broken rendering with nine and nouveau (GM107)</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108245">Bug 108245</a> - RADV/Vega: Low mip levels of large BCn textures get corrupted by vkCmdCopyBufferToImage</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108311">Bug 108311</a> - Query buffer object support is broken on r600.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108894">Bug 108894</a> - [anv] vkCmdCopyBuffer() and vkCmdCopyQueryPoolResults() write-after-write hazard</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108909">Bug 108909</a> - Vkd3d test failure test_resolve_non_issued_query_data()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108914">Bug 108914</a> - blocky shadow artifacts in The Forest with DXVK, RADV_DEBUG=nohiz fixes this</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108925">Bug 108925</a> - vkCmdCopyQueryPoolResults(VK_QUERY_RESULT_WAIT_BIT) for timestamps with large query count hangs</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Smith (1):</p>
|
||||
<ul>
|
||||
<li>radv: Flush before vkCmdWriteTimestamp() if needed</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (4):</p>
|
||||
<ul>
|
||||
<li>radv: Align large buffers to the fragment size.</li>
|
||||
<li>radv: Clamp gfx9 image view extents to the allocated image extents.</li>
|
||||
<li>radv/android: Mark android WSI image as shareable.</li>
|
||||
<li>radv/android: Use buffer metadata to determine scanout compat.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>r600: make suballocator 256-bytes align</li>
|
||||
<li>radv: use 3d shader for gfx9 copies if dst is 3d</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: bail out when drmGetMagic fails</li>
|
||||
<li>egl/wayland: plug memory leak in drm_handle_device()</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (3):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>vc4: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>v3d: Fix a leak of the disassembled instruction string during debug dumps.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (3):</p>
|
||||
<ul>
|
||||
<li>anv: correctly use vulkan 1.0 by default</li>
|
||||
<li>wsi/display: fix mem leak when freeing swapchains</li>
|
||||
<li>vulkan/wsi: fix s/,/;/ typo</li>
|
||||
</ul>
|
||||
|
||||
<p>Gurchetan Singh (3):</p>
|
||||
<ul>
|
||||
<li>virgl: quadruple command buffer size</li>
|
||||
<li>virgl: avoid large inline transfers</li>
|
||||
<li>virgl: don't mark buffers as unclean after a write</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (4):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.6</li>
|
||||
<li>cherry-ignore: freedreno: Fix autotools build.</li>
|
||||
<li>cherry-ignore: mesa: Revert INTEL_fragment_shader_ordering support</li>
|
||||
<li>Update version to 18.2.7</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nv50,nvc0: Fix gallium nine regression regarding sampler bindings</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (2):</p>
|
||||
<ul>
|
||||
<li>anv: flush pipeline before query result copies</li>
|
||||
<li>anv/query: flush render target before copying results</li>
|
||||
</ul>
|
||||
|
||||
<p>Michal Srb (2):</p>
|
||||
<ul>
|
||||
<li>gallium: Constify drisw_loader_funcs struct</li>
|
||||
<li>drisw: Use separate drisw_loader_funcs for shm</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (2):</p>
|
||||
<ul>
|
||||
<li>egl/wayland: rather obvious build fix</li>
|
||||
<li>meson: link LLVM 'native' component when LLVM is available</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: rework the TC-compat HTILE hardware bug with COND_EXEC</li>
|
||||
</ul>
|
||||
|
||||
<p>Thomas Hellstrom (2):</p>
|
||||
<ul>
|
||||
<li>st/xa: Fix a memory leak</li>
|
||||
<li>winsys/svga: Fix a memory leak</li>
|
||||
</ul>
|
||||
|
||||
<p>Tobias Klausmann (1):</p>
|
||||
<ul>
|
||||
<li>amd/vulkan: meson build - use radv_deps for libvulkan_radeon</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (1):</p>
|
||||
<ul>
|
||||
<li>st/xvmc: Add X11 include path.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,183 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.2.8 Release Notes / December 27, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.2.8 is a bug fix release which fixes bugs found since the 18.2.7 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.2.8 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
77512edc0a84e19c7131a0e2e5ebf1beaf1494dc4b71508fcc92d06d65f9f4f5 mesa-18.2.8.tar.gz
|
||||
1d2ed9fd435d86d95b7215b287258d3e6b1180293a36f688e5a2efc18298d863 mesa-18.2.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=108114">Bug 108114</a> - [vulkancts] new VK_KHR_16bit_storage tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108116">Bug 108116</a> - [vulkancts] stencil partial clear tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108910">Bug 108910</a> - Vkd3d test failure test_multisample_array_texture()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108911">Bug 108911</a> - Vkd3d test failure test_clear_render_target_view()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109081">Bug 109081</a> - [bisected] [HSW] Regression in clipping.user_defined.clip_* vulkancts tests</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Deucher (3):</p>
|
||||
<ul>
|
||||
<li>pci_ids: add new vega10 pci ids</li>
|
||||
<li>pci_ids: add new vega20 pci id</li>
|
||||
<li>pci_ids: add new VegaM pci id</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Fix volumetexture dtor on ctor failure</li>
|
||||
<li>st/nine: Bind src not dst in nine_context_box_upload</li>
|
||||
<li>st/nine: Add src reference to nine_context_range_upload</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (1):</p>
|
||||
<ul>
|
||||
<li>nir: properly clear the entry sources in copy_prop_vars</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (1):</p>
|
||||
<ul>
|
||||
<li>meson: Fix ppc64 little endian detection</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (9):</p>
|
||||
<ul>
|
||||
<li>glx: mandate xf86vidmode only for "drm" dri platforms</li>
|
||||
<li>bin/get-pick-list.sh: rework handing of sha nominations</li>
|
||||
<li>bin/get-pick-list.sh: warn when commit lists invalid sha</li>
|
||||
<li>meson: don't require glx/egl/gbm with gallium drivers</li>
|
||||
<li>pipe-loader: meson: reference correct library</li>
|
||||
<li>TODO: glx: meson: build dri based glx tests, only with -Dglx=dri</li>
|
||||
<li>glx: meson: drop includes from a link-only library</li>
|
||||
<li>glx: meson: wire up the dispatch-index-check test</li>
|
||||
<li>glx/test: meson: assorted include fixes</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (2):</p>
|
||||
<ul>
|
||||
<li>v3d: Make sure that a thrsw doesn't split a multop from its umul24.</li>
|
||||
<li>v3d: Add missing flagging of SYNCB as a TSY op.</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>virgl: wrap vertex element state in a struct</li>
|
||||
<li>virgl: work around bad assumptions in virglrenderer</li>
|
||||
</ul>
|
||||
|
||||
<p>Iago Toral Quiroga (1):</p>
|
||||
<ul>
|
||||
<li>intel/compiler: do not copy-propagate strided regions to ddx/ddy arguments</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4/dce: Don't narrow the write mask if the flags are used</li>
|
||||
<li>Revert "nir/lower_indirect: Bail early if modes == 0"</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>clover: Fix build after clang r348827</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>nir/constant_folding: Fix source bit size logic</li>
|
||||
</ul>
|
||||
|
||||
<p>Jon Turney (1):</p>
|
||||
<ul>
|
||||
<li>glx: Fix compilation with GLX_USE_WINDOWSGL</li>
|
||||
</ul>
|
||||
|
||||
<p>Juan A. Suarez Romero (7):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.2.7</li>
|
||||
<li>cherry-ignore: add explicit 18.3 only nominations</li>
|
||||
<li>cherry-ignore: meson: libfreedreno depends upon libdrm (for fence support)</li>
|
||||
<li>cherry-ignore: radv: Fix multiview depth clears</li>
|
||||
<li>cherry-ignore: nir: properly find the entry to keep in copy_prop_vars</li>
|
||||
<li>cherry-ignore: intel/compiler: move nir_lower_bool_to_int32 before nir_lower_locals_to_regs</li>
|
||||
<li>Update version to 18.2.8</li>
|
||||
</ul>
|
||||
|
||||
<p>Kirill Burtsev (1):</p>
|
||||
<ul>
|
||||
<li>loader: free error state, when checking the drawable type</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>anv: don't do partial resolve on layer > 0</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (2):</p>
|
||||
<ul>
|
||||
<li>radv: don't set surf_index for stencil-only images</li>
|
||||
<li>ac: split 16-bit ssbo loads that may not be dword aligned</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (1):</p>
|
||||
<ul>
|
||||
<li>mesa/st/nir: fix missing nir_compact_varyings</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: switch on EOP when primitive restart is enabled with triangle strips</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (2):</p>
|
||||
<ul>
|
||||
<li>meson: Fix typo.</li>
|
||||
<li>meson: Fix libsensors detection.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -40,8 +40,7 @@ an up-to-date version of Wayland to keep the functionality.
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
17a124d4dbc712505d22a7815c9b0cee22214c96c8abb91539a2b1351e38a000 mesa-18.3.0.tar.gz
|
||||
b63f947e735d6ef3dfaa30c789a9adfbae18aea671191eaacde95a18c17fc38a mesa-18.3.0.tar.xz
|
||||
TBD.
|
||||
</pre>
|
||||
|
||||
|
||||
|
@@ -1,63 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.3.1 Release Notes / December 11, 2018</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.1 is a bug fix release which fixes bugs found since the 18.3.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.0 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
256d0c3d88e380c1b8e3fc5c6ac34001e3b7c30458b8b852407ec68b8ccd9fda mesa-18.3.1.tar.gz
|
||||
5b1f827d28684a25f6657289f8b7d47ac56395988c7ac23e0ec9a62b644bdc63 mesa-18.3.1.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Emil Velikov (2):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.0</li>
|
||||
<li>Update version to 18.3.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>anv,radv: Disable VK_EXT_pci_bus_info</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,265 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<title>Mesa Release Notes</title>
|
||||
<link rel="stylesheet" type="text/css" href="../mesa.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="header">
|
||||
<h1>The Mesa 3D Graphics Library</h1>
|
||||
</div>
|
||||
|
||||
<iframe src="../contents.html"></iframe>
|
||||
<div class="content">
|
||||
|
||||
<h1>Mesa 18.3.2 Release Notes / January 17, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 18.3.2 is a bug fix release which fixes bugs found since the 18.3.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 18.3.2 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
1cde4fafd40cd1ad4ee3a13b364b7a0175a08b7afdd127fb46f918c1e1dfd4b0 mesa-18.3.2.tar.gz
|
||||
f7ce7181c07b6d8e0132da879af1729523a6c8aa87f79a9d59dfd064024cfb35 mesa-18.3.2.tar.xz
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
<p>None</p>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=106595">Bug 106595</a> - [RADV] Rendering distortions only when MSAA is enabled</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107728">Bug 107728</a> - Wrong background in Sascha Willem's Multisampling Demo</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108114">Bug 108114</a> - [vulkancts] new VK_KHR_16bit_storage tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108116">Bug 108116</a> - [vulkancts] stencil partial clear tests fail.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108624">Bug 108624</a> - [regression][bisected] "nir: Copy propagation between blocks" regression</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108910">Bug 108910</a> - Vkd3d test failure test_multisample_array_texture()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108911">Bug 108911</a> - Vkd3d test failure test_clear_render_target_view()</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108943">Bug 108943</a> - Build fails on ppc64le with meson</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109072">Bug 109072</a> - GPU hang in blender 2.80</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109081">Bug 109081</a> - [bisected] [HSW] Regression in clipping.user_defined.clip_* vulkancts tests</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109151">Bug 109151</a> - [KBL-G][vulkan] dEQP-VK.texture.explicit_lod.2d.sizes.31x55_nearest_linear_mipmap_nearest_repeat failed verification.</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109202">Bug 109202</a> - nv50_ir.cpp:749:19: error: cannot use typeid with -fno-rtti</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109204">Bug 109204</a> - [regression, bisected] retroarch's crt-royale shader crash radv</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Alex Deucher (3):</p>
|
||||
<ul>
|
||||
<li>pci_ids: add new vega10 pci ids</li>
|
||||
<li>pci_ids: add new vega20 pci id</li>
|
||||
<li>pci_ids: add new VegaM pci id</li>
|
||||
</ul>
|
||||
|
||||
<p>Alexander von Gluck IV (1):</p>
|
||||
<ul>
|
||||
<li>egl/haiku: Fix reference to disp vs dpy</li>
|
||||
</ul>
|
||||
|
||||
<p>Andres Gomez (2):</p>
|
||||
<ul>
|
||||
<li>glsl: correct typo in GLSL compilation error message</li>
|
||||
<li>glsl/linker: specify proper direction in location aliasing error</li>
|
||||
</ul>
|
||||
|
||||
<p>Axel Davy (3):</p>
|
||||
<ul>
|
||||
<li>st/nine: Fix volumetexture dtor on ctor failure</li>
|
||||
<li>st/nine: Bind src not dst in nine_context_box_upload</li>
|
||||
<li>st/nine: Add src reference to nine_context_range_upload</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (5):</p>
|
||||
<ul>
|
||||
<li>radv: Do a cache flush if needed before reading predicates.</li>
|
||||
<li>radv: Implement buffer stores with less than 4 components.</li>
|
||||
<li>anv/android: Do not reject storage images.</li>
|
||||
<li>radv: Fix rasterization precision bits.</li>
|
||||
<li>spirv: Fix matrix parameters in function calls.</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (3):</p>
|
||||
<ul>
|
||||
<li>nir: properly clear the entry sources in copy_prop_vars</li>
|
||||
<li>nir: properly find the entry to keep in copy_prop_vars</li>
|
||||
<li>nir: remove dead code from copy_prop_vars</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (2):</p>
|
||||
<ul>
|
||||
<li>radv/xfb: fix counter buffer bounds checks.</li>
|
||||
<li>virgl/vtest: fix front buffer flush with protocol version 0.</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (6):</p>
|
||||
<ul>
|
||||
<li>meson: Fix ppc64 little endian detection</li>
|
||||
<li>meson: Add support for gnu hurd</li>
|
||||
<li>meson: Add toggle for glx-direct</li>
|
||||
<li>meson: Override C++ standard to gnu++11 when building with altivec on ppc64</li>
|
||||
<li>meson: Error out if building nouveau and using LLVM without rtti</li>
|
||||
<li>autotools: Remove tegra vdpau driver</li>
|
||||
</ul>
|
||||
|
||||
<p>Emil Velikov (12):</p>
|
||||
<ul>
|
||||
<li>docs: add sha256 checksums for 18.3.1</li>
|
||||
<li>bin/get-pick-list.sh: rework handing of sha nominations</li>
|
||||
<li>bin/get-pick-list.sh: warn when commit lists invalid sha</li>
|
||||
<li>cherry-ignore: meson: libfreedreno depends upon libdrm (for fence support)</li>
|
||||
<li>glx: mandate xf86vidmode only for "drm" dri platforms</li>
|
||||
<li>meson: don't require glx/egl/gbm with gallium drivers</li>
|
||||
<li>pipe-loader: meson: reference correct library</li>
|
||||
<li>TODO: glx: meson: build dri based glx tests, only with -Dglx=dri</li>
|
||||
<li>glx: meson: drop includes from a link-only library</li>
|
||||
<li>glx: meson: wire up the dispatch-index-check test</li>
|
||||
<li>glx/test: meson: assorted include fixes</li>
|
||||
<li>Update version to 18.3.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (6):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>vc4: Fix a leak of the transfer helper on screen destroy.</li>
|
||||
<li>v3d: Fix a leak of the disassembled instruction string during debug dumps.</li>
|
||||
<li>v3d: Make sure that a thrsw doesn't split a multop from its umul24.</li>
|
||||
<li>v3d: Add missing flagging of SYNCB as a TSY op.</li>
|
||||
<li>gallium/ttn: Fix setup of outputs_written.</li>
|
||||
</ul>
|
||||
|
||||
<p>Erik Faye-Lund (2):</p>
|
||||
<ul>
|
||||
<li>virgl: wrap vertex element state in a struct</li>
|
||||
<li>virgl: work around bad assumptions in virglrenderer</li>
|
||||
</ul>
|
||||
|
||||
<p>Francisco Jerez (5):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Handle source modifiers in lower_integer_multiplication().</li>
|
||||
<li>intel/fs: Implement quad swizzles on ICL+.</li>
|
||||
<li>intel/fs: Fix bug in lower_simd_width while splitting an instruction which was already split.</li>
|
||||
<li>intel/eu/gen7: Fix brw_MOV() with DF destination and strided source.</li>
|
||||
<li>intel/fs: Respect CHV/BXT regioning restrictions in copy propagation pass.</li>
|
||||
</ul>
|
||||
|
||||
<p>Ian Romanick (2):</p>
|
||||
<ul>
|
||||
<li>i965/vec4/dce: Don't narrow the write mask if the flags are used</li>
|
||||
<li>Revert "nir/lower_indirect: Bail early if modes == 0"</li>
|
||||
</ul>
|
||||
|
||||
<p>Jan Vesely (1):</p>
|
||||
<ul>
|
||||
<li>clover: Fix build after clang r348827</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>nir/constant_folding: Fix source bit size logic</li>
|
||||
<li>intel/blorp: Be more conservative about copying clear colors</li>
|
||||
<li>spirv: Handle any bit size in vector_insert/extract</li>
|
||||
<li>anv/apply_pipeline_layout: Set the cursor in lower_res_reindex_intrinsic</li>
|
||||
<li>spirv: Sign-extend array indices</li>
|
||||
<li>intel/peephole_ffma: Fix swizzle propagation</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nv50/ir: fix use-after-free in ConstantFolding::visit</li>
|
||||
</ul>
|
||||
|
||||
<p>Kirill Burtsev (1):</p>
|
||||
<ul>
|
||||
<li>loader: free error state, when checking the drawable type</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (5):</p>
|
||||
<ul>
|
||||
<li>anv: don't do partial resolve on layer > 0</li>
|
||||
<li>i965: include draw_params/derived_draw_params for VF cache workaround</li>
|
||||
<li>i965: add CS stall on VF invalidation workaround</li>
|
||||
<li>anv: explictly specify format for blorp ccs/mcs op</li>
|
||||
<li>anv: flush fast clear colors into compressed surfaces</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>st/mesa: don't leak pipe_surface if pipe_context is not current</li>
|
||||
</ul>
|
||||
|
||||
<p>Mario Kleiner (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: Fix use of 1- or 2- component GL_DOUBLE vbo's.</li>
|
||||
</ul>
|
||||
|
||||
<p>Nicolai Hähnle (1):</p>
|
||||
<ul>
|
||||
<li>meson: link LLVM 'native' component when LLVM is available</li>
|
||||
</ul>
|
||||
|
||||
<p>Rhys Perry (3):</p>
|
||||
<ul>
|
||||
<li>radv: don't set surf_index for stencil-only images</li>
|
||||
<li>ac/nir,radv,radeonsi/nir: use correct indices for interpolation intrinsics</li>
|
||||
<li>ac: split 16-bit ssbo loads that may not be dword aligned</li>
|
||||
</ul>
|
||||
|
||||
<p>Rob Clark (2):</p>
|
||||
<ul>
|
||||
<li>freedreno/drm: fix memory leak</li>
|
||||
<li>mesa/st/nir: fix missing nir_compact_varyings</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (1):</p>
|
||||
<ul>
|
||||
<li>radv: switch on EOP when primitive restart is enabled with triangle strips</li>
|
||||
</ul>
|
||||
|
||||
<p>Timothy Arceri (2):</p>
|
||||
<ul>
|
||||
<li>tgsi/scan: fix loop exit point in tgsi_scan_tess_ctrl()</li>
|
||||
<li>tgsi/scan: correctly walk instructions in tgsi_scan_tess_ctrl()</li>
|
||||
</ul>
|
||||
|
||||
<p>Vinson Lee (2):</p>
|
||||
<ul>
|
||||
<li>meson: Fix typo.</li>
|
||||
<li>meson: Fix libsensors detection.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
@@ -1,159 +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 19.0.1 Release Notes / March 27, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.0.1 is a bug fix release which fixes bugs found since the 19.0.0 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.0.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.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
f1dd1980ed628edea3935eed7974fbc5d8353e9578c562728b880d63ac613dbd mesa-19.0.1.tar.gz
|
||||
6884163c0ea9e4c98378ab8fecd72fe7b5f437713a14471beda378df247999d4 mesa-19.0.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=100316">Bug 100316</a> - Linking GLSL 1.30 shaders with invariant and deprecated variables triggers an 'mismatching invariant qualifiers' error</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=107563">Bug 107563</a> - [RADV] Broken rendering in Unity demos</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109698">Bug 109698</a> - dri.pc contents invalid when built with meson</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109980">Bug 109980</a> - [i915 CI][HSW] spec@arb_fragment_shader_interlock@arb_fragment_shader_interlock-image-load-store - fail</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110211">Bug 110211</a> - If DESTDIR is set to an empty string, the dri drivers are not installed</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110221">Bug 110221</a> - build error with meson</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
<p>Andres Gomez (4):</p>
|
||||
<ul>
|
||||
<li>glsl: correctly validate component layout qualifier for dvec{3,4}</li>
|
||||
<li>glsl/linker: don't fail non static used inputs without matching outputs</li>
|
||||
<li>glsl/linker: simplify xfb_offset vs xfb_stride overflow check</li>
|
||||
<li>Revert "glsl: relax input->output validation for SSO programs"</li>
|
||||
</ul>
|
||||
|
||||
<p>Bas Nieuwenhuizen (2):</p>
|
||||
<ul>
|
||||
<li>radv: Use correct image view comparison for fast clears.</li>
|
||||
<li>ac/nir: Return frag_coord as integer.</li>
|
||||
</ul>
|
||||
|
||||
<p>Danylo Piliaiev (2):</p>
|
||||
<ul>
|
||||
<li>anv: Treat zero size XFB buffer as disabled</li>
|
||||
<li>glsl: Cross validate variable's invariance by explicit invariance only</li>
|
||||
</ul>
|
||||
|
||||
<p>Dave Airlie (1):</p>
|
||||
<ul>
|
||||
<li>softpipe: fix texture view crashes</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (5):</p>
|
||||
<ul>
|
||||
<li>docs: Add SHA256 sums for 19.0.0</li>
|
||||
<li>cherry-ignore: Add commit that doesn't apply</li>
|
||||
<li>bin/install_megadrivers.py: Correctly handle DESTDIR=''</li>
|
||||
<li>bin/install_megadrivers.py: Fix regression for set DESTDIR</li>
|
||||
<li>bump version for 19.0.1</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (1):</p>
|
||||
<ul>
|
||||
<li>v3d: Fix leak of the renderonly struct on screen destruction.</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (6):</p>
|
||||
<ul>
|
||||
<li>glsl/lower_vector_derefs: Don't use a temporary for TCS outputs</li>
|
||||
<li>glsl/list: Add a list variant of insert_after</li>
|
||||
<li>anv/pass: Flag the need for a RT flush for resolve attachments</li>
|
||||
<li>nir/builder: Add a vector extract helper</li>
|
||||
<li>nir: Add a new pass to lower array dereferences on vectors</li>
|
||||
<li>intel/nir: Lower array-deref-of-vector UBO and SSBO loads</li>
|
||||
</ul>
|
||||
|
||||
<p>Józef Kucia (2):</p>
|
||||
<ul>
|
||||
<li>radv: Fix driverUUID</li>
|
||||
<li>mesa: Fix GL_NUM_DEVICE_UUIDS_EXT</li>
|
||||
</ul>
|
||||
|
||||
<p>Kenneth Graunke (1):</p>
|
||||
<ul>
|
||||
<li>intel/fs: Fix opt_peephole_csel to not throw away saturates.</li>
|
||||
</ul>
|
||||
|
||||
<p>Kevin Strasser (1):</p>
|
||||
<ul>
|
||||
<li>egl/dri: Avoid out of bounds array access</li>
|
||||
</ul>
|
||||
|
||||
<p>Mark Janes (1):</p>
|
||||
<ul>
|
||||
<li>mesa: properly report the length of truncated log messages</li>
|
||||
</ul>
|
||||
|
||||
<p>Plamena Manolova (1):</p>
|
||||
<ul>
|
||||
<li>i965: Disable ARB_fragment_shader_interlock for platforms prior to GEN9</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (3):</p>
|
||||
<ul>
|
||||
<li>radv: set the maximum number of IBs per submit to 192</li>
|
||||
<li>radv: always initialize HTILE when the src layout is UNDEFINED</li>
|
||||
<li>radv: fix binding transform feedback buffers</li>
|
||||
</ul>
|
||||
|
||||
<p>Sergii Romantsov (1):</p>
|
||||
<ul>
|
||||
<li>d3d: meson: do not prefix user provided d3d-drivers-path</li>
|
||||
</ul>
|
||||
|
||||
<p>Tapani Pälli (2):</p>
|
||||
<ul>
|
||||
<li>isl: fix automake build when sse41 is not supported</li>
|
||||
<li>anv/radv: release memory allocated by glsl types during spirv_to_nir</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,121 +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 19.0.2 Release Notes / April 10, 2019</h1>
|
||||
|
||||
<p>
|
||||
Mesa 19.0.2 is a bug fix release which fixes bugs found since the 19.0.1 release.
|
||||
</p>
|
||||
<p>
|
||||
Mesa 19.0.2 implements the OpenGL 4.5 API, but the version reported by
|
||||
glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
|
||||
glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
|
||||
Some drivers don't support all the features required in OpenGL 4.5. OpenGL
|
||||
4.5 is <strong>only</strong> available if requested at context creation.
|
||||
Compatibility contexts may report a lower version depending on each driver.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>SHA256 checksums</h2>
|
||||
<pre>
|
||||
TBD
|
||||
</pre>
|
||||
|
||||
|
||||
<h2>New features</h2>
|
||||
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=108766">Bug 108766</a> - Mesa built with meson has RPATH entries</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=109648">Bug 109648</a> - AMD Raven hang during va-api decoding</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110257">Bug 110257</a> - Major artifacts in mpeg2 vaapi hw decoding</li>
|
||||
|
||||
<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=110259">Bug 110259</a> - radv: Sampling depth-stencil image in GENERAL layout returns nothing but zero (regression, bisected)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Changes</h2>
|
||||
|
||||
|
||||
<p>Boyuan Zhang (1):</p>
|
||||
<ul>
|
||||
<li>st/va: reverse qt matrix back to its original order</li>
|
||||
</ul>
|
||||
|
||||
<p>Caio Marcelo de Oliveira Filho (1):</p>
|
||||
<ul>
|
||||
<li>nir: Take if_uses into account when repairing SSA</li>
|
||||
</ul>
|
||||
|
||||
<p>Dylan Baker (2):</p>
|
||||
<ul>
|
||||
<li>docs: Add SHA256 sums for mesa 19.0.1</li>
|
||||
<li>VERSION: bump version for 19.0.2</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Anholt (3):</p>
|
||||
<ul>
|
||||
<li>dri3: Return the current swap interval from glXGetSwapIntervalMESA().</li>
|
||||
<li>v3d: Bump the maximum texture size to 4k for V3D 4.x.</li>
|
||||
<li>v3d: Don't try to use the TFU blit path if a scissor is enabled.</li>
|
||||
</ul>
|
||||
|
||||
<p>Eric Engestrom (1):</p>
|
||||
<ul>
|
||||
<li>meson: strip rpath from megadrivers</li>
|
||||
</ul>
|
||||
|
||||
<p>Jason Ekstrand (1):</p>
|
||||
<ul>
|
||||
<li>Revert "anv/radv: release memory allocated by glsl types during spirv_to_nir"</li>
|
||||
</ul>
|
||||
|
||||
<p>Karol Herbst (1):</p>
|
||||
<ul>
|
||||
<li>nir/print: fix printing the image_array intrinsic index</li>
|
||||
</ul>
|
||||
|
||||
<p>Leo Liu (2):</p>
|
||||
<ul>
|
||||
<li>radeon/vcn: add H.264 constrained baseline support</li>
|
||||
<li>radeon/vcn/vp9: search the render target from the whole list</li>
|
||||
</ul>
|
||||
|
||||
<p>Lionel Landwerlin (1):</p>
|
||||
<ul>
|
||||
<li>intel: add dependency on genxml generated files</li>
|
||||
</ul>
|
||||
|
||||
<p>Marek Olšák (1):</p>
|
||||
<ul>
|
||||
<li>radeonsi: fix assertion failure by using the correct type</li>
|
||||
</ul>
|
||||
|
||||
<p>Samuel Pitoiset (2):</p>
|
||||
<ul>
|
||||
<li>radv: skip updating depth/color metadata for conditional rendering</li>
|
||||
<li>radv: do not always initialize HTILE in compressed state</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@@ -1,95 +0,0 @@
|
||||
Name
|
||||
|
||||
MESA_query_driver
|
||||
|
||||
Name Strings
|
||||
|
||||
EGL_MESA_query_driver
|
||||
|
||||
Contact
|
||||
|
||||
Rob Clark <robdclark 'at' gmail.com>
|
||||
Nicolai Hähnle <Nicolai.Haehnle 'at' amd.com>
|
||||
|
||||
Contibutors
|
||||
|
||||
Veluri Mithun <velurimithun38 'at' gmail.com>
|
||||
|
||||
Status
|
||||
|
||||
Complete
|
||||
|
||||
Version
|
||||
|
||||
Version 3, 2019-01-24
|
||||
|
||||
Number
|
||||
|
||||
EGL Extension 131
|
||||
|
||||
Dependencies
|
||||
|
||||
EGL 1.0 is required.
|
||||
|
||||
Overview
|
||||
|
||||
When an application has to query the name of a driver and for
|
||||
obtaining driver's option list (UTF-8 encoded XML) of a driver
|
||||
the below functions are useful.
|
||||
|
||||
XML file formally describes all available options and also
|
||||
includes verbal descriptions in multiple languages. Its main purpose
|
||||
is to be automatically processed by configuration GUIs.
|
||||
The XML shall respect the following DTD:
|
||||
|
||||
<!ELEMENT driinfo (section*)>
|
||||
<!ELEMENT section (description+, option+)>
|
||||
<!ELEMENT description (enum*)>
|
||||
<!ATTLIST description lang CDATA #REQUIRED
|
||||
text CDATA #REQUIRED>
|
||||
<!ELEMENT option (description+)>
|
||||
<!ATTLIST option name CDATA #REQUIRED
|
||||
type (bool|enum|int|float) #REQUIRED
|
||||
default CDATA #REQUIRED
|
||||
valid CDATA #IMPLIED>
|
||||
<!ELEMENT enum EMPTY>
|
||||
<!ATTLIST enum value CDATA #REQUIRED
|
||||
text CDATA #REQUIRED>
|
||||
|
||||
New Procedures and Functions
|
||||
|
||||
char* eglGetDisplayDriverConfig(EGLDisplay dpy);
|
||||
const char* eglGetDisplayDriverName(EGLDisplay dpy);
|
||||
|
||||
Description
|
||||
|
||||
By passing EGLDisplay as parameter to `eglGetDisplayDriverName` one can retrieve
|
||||
driverName. Similarly passing EGLDisplay to `eglGetDisplayDriverConfig` we can retrieve
|
||||
driverConfig options of the driver in XML format.
|
||||
|
||||
The string returned by `eglGetDisplayDriverConfig` is heap-allocated and caller
|
||||
is responsible for freeing it.
|
||||
|
||||
EGL_BAD_DISPLAY is generated if `disp` is not an EGL display connection.
|
||||
|
||||
EGL_NOT_INITIALIZED is generated if `disp` has not been initialized.
|
||||
|
||||
If the implementation does not have enough resources to allocate the XML then an
|
||||
EGL_BAD_ALLOC error is generated.
|
||||
|
||||
New Tokens
|
||||
|
||||
No new tokens
|
||||
|
||||
Issues
|
||||
|
||||
None
|
||||
|
||||
|
||||
Revision History
|
||||
|
||||
Version 1, 2018-11-05 - First draft (Veluri Mithun)
|
||||
Version 2, 2019-01-23 - Final version (Veluri Mithun)
|
||||
Version 3, 2019-01-24 - Mark as complete, add Khronos extension
|
||||
number, fix parameter name in prototypes,
|
||||
write revision history (Eric Engestrom)
|
@@ -20,11 +20,11 @@ Status
|
||||
|
||||
Version
|
||||
|
||||
Version 9, 09 November 2018
|
||||
Version 8, 14-February-2014
|
||||
|
||||
Number
|
||||
|
||||
OpenGL Extension #446
|
||||
TBD.
|
||||
|
||||
Dependencies
|
||||
|
||||
@@ -32,6 +32,9 @@ Dependencies
|
||||
|
||||
GLX_ARB_create_context and GLX_ARB_create_context_profile are required.
|
||||
|
||||
This extension interacts with GLX_EXT_create_context_es2_profile and
|
||||
GLX_EXT_create_context_es_profile.
|
||||
|
||||
Overview
|
||||
|
||||
In many situations, applications want to detect characteristics of a
|
||||
@@ -92,13 +95,18 @@ New Tokens
|
||||
GLX_RENDERER_VENDOR_ID_MESA
|
||||
GLX_RENDERER_DEVICE_ID_MESA
|
||||
|
||||
Accepted as an attribute name in <*attrib_list> in
|
||||
glXCreateContextAttribsARB:
|
||||
|
||||
GLX_RENDERER_ID_MESA 0x818E
|
||||
|
||||
Additions to the OpenGL / WGL Specifications
|
||||
|
||||
None. This specification is written for GLX.
|
||||
|
||||
Additions to the GLX 1.4 Specification
|
||||
|
||||
[Add to Section 3.3.2 "GLX Versioning" of the GLX Specification]
|
||||
[Add the following to Section X.Y.Z of the GLX Specification]
|
||||
|
||||
To obtain information about the available renderers for a particular
|
||||
display and screen,
|
||||
@@ -198,6 +206,29 @@ Additions to the GLX 1.4 Specification
|
||||
format as the string that would be returned by glGetString of GL_RENDERER.
|
||||
It may, however, have a different value.
|
||||
|
||||
|
||||
[Add to section section 3.3.7 "Rendering Contexts"]
|
||||
|
||||
The attribute name GLX_RENDERER_ID_MESA specified the index of the render
|
||||
against which the context should be created. The default value of
|
||||
GLX_RENDERER_ID_MESA is 0.
|
||||
|
||||
|
||||
[Add to list of errors for glXCreateContextAttribsARB in section section
|
||||
3.3.7 "Rendering Contexts"]
|
||||
|
||||
* If the value of GLX_RENDERER_ID_MESA specifies a non-existent
|
||||
renderer, BadMatch is generated.
|
||||
|
||||
Dependencies on GLX_EXT_create_context_es_profile and
|
||||
GLX_EXT_create_context_es2_profile
|
||||
|
||||
If neither extension is supported, remove all mention of
|
||||
GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA from the spec.
|
||||
|
||||
If GLX_EXT_create_context_es_profile is not supported, remove all mention of
|
||||
GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA from the spec.
|
||||
|
||||
Issues
|
||||
|
||||
1) How should the difference between on-card and GART memory be exposed?
|
||||
@@ -377,9 +408,3 @@ Revision History
|
||||
read GLX_RENDERER_ID_MESA. The VENDOR/DEVICE_ID
|
||||
example given in issue #17 should be 0x5143 and
|
||||
0xFFFFFFFF respectively.
|
||||
|
||||
Version 9, 2018/11/09 - Remove GLX_RENDERER_ID_MESA, which has never been
|
||||
implemented. Remove the unnecessary interactions
|
||||
with the GLX GLES profile extensions. Note the
|
||||
official GL extension number. Specify the section
|
||||
of the GLX spec to modify.
|
||||
|
@@ -21,7 +21,7 @@
|
||||
<li><a href="#guidelines">Basic guidelines</a>
|
||||
<li><a href="#formatting">Patch formatting</a>
|
||||
<li><a href="#testing">Testing Patches</a>
|
||||
<li><a href="#submit">Submitting Patches</a>
|
||||
<li><a href="#mailing">Mailing Patches</a>
|
||||
<li><a href="#reviewing">Reviewing Patches</a>
|
||||
<li><a href="#nominations">Nominating a commit for a stable branch</a>
|
||||
<li><a href="#criteria">Criteria for accepting patches to the stable branch</a>
|
||||
@@ -42,10 +42,8 @@ components.
|
||||
<code>git bisect</code>.)
|
||||
<li>Patches should be properly <a href="#formatting">formatted</a>.
|
||||
<li>Patches should be sufficiently <a href="#testing">tested</a> before submitting.
|
||||
<li>Patches should be <a href="#submit">submitted</a>
|
||||
to <a href="#mailing">mesa-dev</a> or with
|
||||
a <a href="#merge-request">merge request</a>
|
||||
for <a href="#reviewing">review</a>.
|
||||
<li>Patches should be submitted to <a href="#mailing">mesa-dev</a>
|
||||
for <a href="#reviewing">review</a> using <code>git send-email</code>.
|
||||
|
||||
</ul>
|
||||
|
||||
@@ -158,29 +156,18 @@ 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:
|
||||
</p>
|
||||
<pre>
|
||||
$ git rebase --interactive --exec "make check" origin/master
|
||||
</pre>
|
||||
<p>
|
||||
replacing <code>"make check"</code> with whatever other test you want to
|
||||
run.
|
||||
</p>
|
||||
|
||||
|
||||
<h2 id="submit">Submitting Patches</h2>
|
||||
<h2 id="mailing">Mailing Patches</h2>
|
||||
|
||||
<p>
|
||||
Patches may be submitted to the Mesa project by
|
||||
<a href="#mailing">email</a> or with a
|
||||
GitLab <a href="#merge-request">merge request</a>. To prevent
|
||||
duplicate code review, only use one method to submit your changes.
|
||||
</p>
|
||||
|
||||
<h3 id="mailing">Mailing Patches</h3>
|
||||
|
||||
<p>
|
||||
Patches may be sent to the mesa-dev mailing list for review:
|
||||
Patches should be sent to the mesa-dev mailing list for review:
|
||||
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">
|
||||
mesa-dev@lists.freedesktop.org</a>.
|
||||
When submitting a patch make sure to use
|
||||
@@ -214,65 +201,8 @@ disabled before sending your patches. (Note that you may need to contact
|
||||
your email administrator for this.)
|
||||
</p>
|
||||
|
||||
<h3 id="merge-request">GitLab Merge Requests</h3>
|
||||
|
||||
<p>
|
||||
<a href="https://gitlab.freedesktop.org/mesa/mesa">GitLab</a> Merge
|
||||
Requests (MR) can also be used to submit patches for Mesa.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If the MR may have interest for most of the Mesa community, you can
|
||||
send an email to the mesa-dev email list including a link to the MR.
|
||||
Don't send the patch to mesa-dev, just the MR link.
|
||||
</p>
|
||||
<p>
|
||||
Add labels to your MR to help reviewers find it. For example:
|
||||
<ul>
|
||||
<li>Mesa changes affecting all drivers: mesa
|
||||
<li>Hardware vendor specific code: amd, intel, nvidia, ...
|
||||
<li>Driver specific code: anvil, freedreno, i965, iris, radeonsi,
|
||||
radv, vc4, ...
|
||||
<li>Other tag examples: gallium, util
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
If you revise your patches based on code review and push an update
|
||||
to your branch, you should maintain a <strong>clean</strong> history
|
||||
in your patches. There should not be "fixup" patches in the history.
|
||||
The series should be buildable and functional after every commit
|
||||
whenever you push the branch.
|
||||
</p>
|
||||
<p>
|
||||
It is your responsibility to keep the MR alive and making progress,
|
||||
as there are no guarantees that a Mesa dev will independently take
|
||||
interest in it.
|
||||
</p>
|
||||
<p>
|
||||
Some other notes:
|
||||
<ul>
|
||||
<li>Make changes and update your branch based on feedback
|
||||
<li>Old, stale MR may be closed, but you can reopen it if you
|
||||
still want to pursue the changes
|
||||
<li>You should periodically check to see if your MR needs to be
|
||||
rebased
|
||||
<li>Make sure your MR is closed if your patches get pushed outside
|
||||
of GitLab
|
||||
<li>Please send MRs from a personal fork rather than from the main
|
||||
Mesa repository, as it clutters it unnecessarily.
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<h2 id="reviewing">Reviewing Patches</h2>
|
||||
|
||||
<p>
|
||||
To participate in code review, you should monitor the
|
||||
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev">
|
||||
mesa-dev</a> email list and the GitLab
|
||||
Mesa <a href="https://gitlab.freedesktop.org/mesa/mesa/merge_requests">Merge
|
||||
Requests</a> page.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When you've reviewed a patch on the mailing list, please be unambiguous
|
||||
about your review. That is, state either
|
||||
@@ -299,29 +229,6 @@ which tells the patch author that the patch can be committed, as long
|
||||
as the issues are resolved first.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
These Reviewed-by, Acked-by, and Tested-by tags should also be amended
|
||||
into commits in a MR before it is merged.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When providing a Reviewed-by, Acked-by, or Tested-by tag in a gitlab MR,
|
||||
enclose the tag in backticks:
|
||||
</p>
|
||||
<pre>
|
||||
`Reviewed-by: Joe Hacker <jhacker@example.com>`</pre>
|
||||
<p>
|
||||
This is the markdown format for literal, and will prevent gitlab from hiding
|
||||
the < and > symbols.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Review by non-experts is encouraged. Understanding how someone else
|
||||
goes about solving a problem is a great way to learn your way around
|
||||
the project. The submitter is expected to evaluate whether they have
|
||||
an appropriate amount of review feedback from people who also
|
||||
understand the code before merging their patches.
|
||||
</p>
|
||||
|
||||
<h2 id="nominations">Nominating a commit for a stable branch</h2>
|
||||
|
||||
|
@@ -28,17 +28,17 @@ extern "C" {
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos EGL XML API Registry.
|
||||
** The current version of the Registry, generator scripts
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: 9ed2ec4c67 $ on $Git commit date: 2019-01-09 17:54:35 -0800 $
|
||||
** Khronos $Git commit SHA1: a732b061e7 $ on $Git commit date: 2017-06-17 23:27:53 +0100 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
/* Generated on date 20190124 */
|
||||
/* Generated on date 20170627 */
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
|
@@ -28,17 +28,17 @@ extern "C" {
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
/*
|
||||
** This header is generated from the Khronos EGL XML API Registry.
|
||||
** The current version of the Registry, generator scripts
|
||||
** This header is generated from the Khronos OpenGL / OpenGL ES XML
|
||||
** API Registry. The current version of the Registry, generator scripts
|
||||
** used to make the header, and the header can be found at
|
||||
** http://www.khronos.org/registry/egl
|
||||
**
|
||||
** Khronos $Git commit SHA1: 9ed2ec4c67 $ on $Git commit date: 2019-01-09 17:54:35 -0800 $
|
||||
** Khronos $Git commit SHA1: bae3518c48 $ on $Git commit date: 2018-05-17 10:56:57 -0700 $
|
||||
*/
|
||||
|
||||
#include <EGL/eglplatform.h>
|
||||
|
||||
#define EGL_EGLEXT_VERSION 20190124
|
||||
#define EGL_EGLEXT_VERSION 20180517
|
||||
|
||||
/* Generated C header for:
|
||||
* API: egl
|
||||
@@ -681,7 +681,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#ifndef EGL_EXT_device_drm
|
||||
#define EGL_EXT_device_drm 1
|
||||
#define EGL_DRM_DEVICE_FILE_EXT 0x3233
|
||||
#define EGL_DRM_MASTER_FD_EXT 0x333C
|
||||
#endif /* EGL_EXT_device_drm */
|
||||
|
||||
#ifndef EGL_EXT_device_enumeration
|
||||
@@ -717,11 +716,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint a
|
||||
#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT 0x3362
|
||||
#endif /* EGL_EXT_gl_colorspace_display_p3_linear */
|
||||
|
||||
#ifndef EGL_EXT_gl_colorspace_display_p3_passthrough
|
||||
#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
|
||||
#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT 0x3490
|
||||
#endif /* EGL_EXT_gl_colorspace_display_p3_passthrough */
|
||||
|
||||
#ifndef EGL_EXT_gl_colorspace_scrgb
|
||||
#define EGL_EXT_gl_colorspace_scrgb 1
|
||||
#define EGL_GL_COLORSPACE_SCRGB_EXT 0x3351
|
||||
@@ -1031,16 +1025,6 @@ EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImage
|
||||
#define EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
||||
#endif /* EGL_MESA_platform_surfaceless */
|
||||
|
||||
#ifndef EGL_MESA_query_driver
|
||||
#define EGL_MESA_query_driver 1
|
||||
typedef char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERCONFIGPROC) (EGLDisplay dpy);
|
||||
typedef const char *(EGLAPIENTRYP PFNEGLGETDISPLAYDRIVERNAMEPROC) (EGLDisplay dpy);
|
||||
#ifdef EGL_EGLEXT_PROTOTYPES
|
||||
EGLAPI char *EGLAPIENTRY eglGetDisplayDriverConfig (EGLDisplay dpy);
|
||||
EGLAPI const char *EGLAPIENTRY eglGetDisplayDriverName (EGLDisplay dpy);
|
||||
#endif
|
||||
#endif /* EGL_MESA_query_driver */
|
||||
|
||||
#ifndef EGL_NOK_swap_region
|
||||
#define EGL_NOK_swap_region 1
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects);
|
||||
|
@@ -589,7 +589,7 @@ struct __DRIdamageExtensionRec {
|
||||
* SWRast Loader extension.
|
||||
*/
|
||||
#define __DRI_SWRAST_LOADER "DRI_SWRastLoader"
|
||||
#define __DRI_SWRAST_LOADER_VERSION 5
|
||||
#define __DRI_SWRAST_LOADER_VERSION 4
|
||||
struct __DRIswrastLoaderExtensionRec {
|
||||
__DRIextension base;
|
||||
|
||||
@@ -649,23 +649,6 @@ struct __DRIswrastLoaderExtensionRec {
|
||||
void (*getImageShm)(__DRIdrawable *readable,
|
||||
int x, int y, int width, int height,
|
||||
int shmid, void *loaderPrivate);
|
||||
|
||||
/**
|
||||
* Put shm image to drawable (v2)
|
||||
*
|
||||
* The original version fixes srcx/y to 0, and expected
|
||||
* the offset to be adjusted. This version allows src x,y
|
||||
* to not be included in the offset. This is needed to
|
||||
* avoid certain overflow checks in the X server, that
|
||||
* result in lost rendering.
|
||||
*
|
||||
* \since 5
|
||||
*/
|
||||
void (*putImageShm2)(__DRIdrawable *drawable, int op,
|
||||
int x, int y,
|
||||
int width, int height, int stride,
|
||||
int shmid, char *shmaddr, unsigned offset,
|
||||
void *loaderPrivate);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -1344,7 +1327,6 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_FOURCC_NV16 0x3631564e
|
||||
#define __DRI_IMAGE_FOURCC_YUYV 0x56595559
|
||||
#define __DRI_IMAGE_FOURCC_UYVY 0x59565955
|
||||
#define __DRI_IMAGE_FOURCC_AYUV 0x56555941
|
||||
|
||||
#define __DRI_IMAGE_FOURCC_YVU410 0x39555659
|
||||
#define __DRI_IMAGE_FOURCC_YVU411 0x31315659
|
||||
@@ -1371,7 +1353,6 @@ struct __DRIdri2ExtensionRec {
|
||||
#define __DRI_IMAGE_COMPONENTS_Y_UV 0x3004
|
||||
#define __DRI_IMAGE_COMPONENTS_Y_XUXV 0x3005
|
||||
#define __DRI_IMAGE_COMPONENTS_Y_UXVX 0x3008
|
||||
#define __DRI_IMAGE_COMPONENTS_AYUV 0x3009
|
||||
#define __DRI_IMAGE_COMPONENTS_R 0x3006
|
||||
#define __DRI_IMAGE_COMPONENTS_RG 0x3007
|
||||
|
||||
|
@@ -298,19 +298,6 @@ extern "C" {
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
|
||||
|
||||
/*
|
||||
* Qualcomm Compressed Format
|
||||
*
|
||||
* Refers to a compressed variant of the base format that is compressed.
|
||||
* Implementation may be platform and base-format specific.
|
||||
*
|
||||
* Each macrotile consists of m x n (mostly 4 x 4) tiles.
|
||||
* Pixel data pitch/stride is aligned with macrotile width.
|
||||
* Pixel data height is aligned with macrotile height.
|
||||
* Entire pixel data buffer is aligned with 4k(bytes).
|
||||
*/
|
||||
#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
|
||||
|
||||
/* Vivante framebuffer modifiers */
|
||||
|
||||
/*
|
||||
|
@@ -36,7 +36,6 @@ extern "C" {
|
||||
#define DRM_V3D_MMAP_BO 0x03
|
||||
#define DRM_V3D_GET_PARAM 0x04
|
||||
#define DRM_V3D_GET_BO_OFFSET 0x05
|
||||
#define DRM_V3D_SUBMIT_TFU 0x06
|
||||
|
||||
#define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
|
||||
#define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
|
||||
@@ -44,7 +43,6 @@ extern "C" {
|
||||
#define DRM_IOCTL_V3D_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_MMAP_BO, struct drm_v3d_mmap_bo)
|
||||
#define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param)
|
||||
#define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
|
||||
#define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
|
||||
|
||||
/**
|
||||
* struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D
|
||||
@@ -60,15 +58,10 @@ struct drm_v3d_submit_cl {
|
||||
* coordinate shader to determine where primitives land on the screen,
|
||||
* then writes out the state updates and draw calls necessary per tile
|
||||
* to the tile allocation BO.
|
||||
*
|
||||
* This BCL will block on any previous BCL submitted on the
|
||||
* same FD, but not on any RCL or BCLs submitted by other
|
||||
* clients -- that is left up to the submitter to control
|
||||
* using in_sync_bcl if necessary.
|
||||
*/
|
||||
__u32 bcl_start;
|
||||
|
||||
/** End address of the BCL (first byte after the BCL) */
|
||||
/** End address of the BCL (first byte after the BCL) */
|
||||
__u32 bcl_end;
|
||||
|
||||
/* Offset of the render command list.
|
||||
@@ -76,15 +69,10 @@ struct drm_v3d_submit_cl {
|
||||
* This is the second set of commands executed, which will either
|
||||
* execute the tiles that have been set up by the BCL, or a fixed set
|
||||
* of tiles (in the case of RCL-only blits).
|
||||
*
|
||||
* This RCL will block on this submit's BCL, and any previous
|
||||
* RCL submitted on the same FD, but not on any RCL or BCLs
|
||||
* submitted by other clients -- that is left up to the
|
||||
* submitter to control using in_sync_rcl if necessary.
|
||||
*/
|
||||
__u32 rcl_start;
|
||||
|
||||
/** End address of the RCL (first byte after the RCL) */
|
||||
/** End address of the RCL (first byte after the RCL) */
|
||||
__u32 rcl_end;
|
||||
|
||||
/** An optional sync object to wait on before starting the BCL. */
|
||||
@@ -181,7 +169,6 @@ enum drm_v3d_param {
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT0,
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT1,
|
||||
DRM_V3D_PARAM_V3D_CORE0_IDENT2,
|
||||
DRM_V3D_PARAM_SUPPORTS_TFU,
|
||||
};
|
||||
|
||||
struct drm_v3d_get_param {
|
||||
@@ -200,28 +187,6 @@ struct drm_v3d_get_bo_offset {
|
||||
__u32 offset;
|
||||
};
|
||||
|
||||
struct drm_v3d_submit_tfu {
|
||||
__u32 icfg;
|
||||
__u32 iia;
|
||||
__u32 iis;
|
||||
__u32 ica;
|
||||
__u32 iua;
|
||||
__u32 ioa;
|
||||
__u32 ios;
|
||||
__u32 coef[4];
|
||||
/* First handle is the output BO, following are other inputs.
|
||||
* 0 for unused.
|
||||
*/
|
||||
__u32 bo_handles[4];
|
||||
/* sync object to block on before running the TFU job. Each TFU
|
||||
* job will execute in the order submitted to its FD. Synchronization
|
||||
* against rendering jobs requires using sync objects.
|
||||
*/
|
||||
__u32 in_sync;
|
||||
/* Sync object to signal when the TFU job is done. */
|
||||
__u32 out_sync;
|
||||
};
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
@@ -171,7 +171,6 @@ CHIPSET(0x3185, glk_2x6, "Intel(R) UHD Graphics 600 (Geminilake 2x6)")
|
||||
CHIPSET(0x3E90, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E93, cfl_gt1, "Intel(R) UHD Graphics 610 (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E99, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E9C, cfl_gt1, "Intel(R) HD Graphics (Coffeelake 2x6 GT1)")
|
||||
CHIPSET(0x3E91, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E92, cfl_gt2, "Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)")
|
||||
CHIPSET(0x3E96, cfl_gt2, "Intel(R) HD Graphics (Coffeelake 3x8 GT2)")
|
||||
@@ -204,10 +203,6 @@ CHIPSET(0x5A54, cnl_5x8, "Intel(R) HD Graphics (Cannonlake 5x8 GT2)")
|
||||
CHIPSET(0x8A50, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A51, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A52, icl_8x8, "Intel(R) HD Graphics (Ice Lake 8x8 GT2)")
|
||||
CHIPSET(0x8A56, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A57, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A58, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A59, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A5A, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
CHIPSET(0x8A5B, icl_4x8, "Intel(R) HD Graphics (Ice Lake 4x8 GT1)")
|
||||
CHIPSET(0x8A5C, icl_6x8, "Intel(R) HD Graphics (Ice Lake 6x8 GT1.5)")
|
||||
|
@@ -219,7 +219,6 @@ CHIPSET(0x699F, POLARIS12)
|
||||
|
||||
CHIPSET(0x694C, VEGAM)
|
||||
CHIPSET(0x694E, VEGAM)
|
||||
CHIPSET(0x694F, VEGAM)
|
||||
|
||||
CHIPSET(0x6860, VEGA10)
|
||||
CHIPSET(0x6861, VEGA10)
|
||||
@@ -228,14 +227,8 @@ CHIPSET(0x6863, VEGA10)
|
||||
CHIPSET(0x6864, VEGA10)
|
||||
CHIPSET(0x6867, VEGA10)
|
||||
CHIPSET(0x6868, VEGA10)
|
||||
CHIPSET(0x6869, VEGA10)
|
||||
CHIPSET(0x686A, VEGA10)
|
||||
CHIPSET(0x686B, VEGA10)
|
||||
CHIPSET(0x686C, VEGA10)
|
||||
CHIPSET(0x686D, VEGA10)
|
||||
CHIPSET(0x686E, VEGA10)
|
||||
CHIPSET(0x686F, VEGA10)
|
||||
CHIPSET(0x687F, VEGA10)
|
||||
CHIPSET(0x686C, VEGA10)
|
||||
|
||||
CHIPSET(0x69A0, VEGA12)
|
||||
CHIPSET(0x69A1, VEGA12)
|
||||
@@ -247,7 +240,6 @@ CHIPSET(0x66A0, VEGA20)
|
||||
CHIPSET(0x66A1, VEGA20)
|
||||
CHIPSET(0x66A2, VEGA20)
|
||||
CHIPSET(0x66A3, VEGA20)
|
||||
CHIPSET(0x66A4, VEGA20)
|
||||
CHIPSET(0x66A7, VEGA20)
|
||||
CHIPSET(0x66AF, VEGA20)
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#define VULKAN_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
@@ -39,6 +39,12 @@
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||
#include <mir_toolkit/client_types.h>
|
||||
#include "vulkan_mir.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_VI_NN
|
||||
#include "vulkan_vi.h"
|
||||
#endif
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
65
include/vulkan/vulkan_mir.h
Normal file
65
include/vulkan/vulkan_mir.h
Normal file
@@ -0,0 +1,65 @@
|
||||
#ifndef VULKAN_MIR_H_
|
||||
#define VULKAN_MIR_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_mir_surface 1
|
||||
#define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
|
||||
#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
|
||||
|
||||
typedef VkFlags VkMirSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkMirSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkMirSurfaceCreateFlagsKHR flags;
|
||||
MirConnection* connection;
|
||||
MirSurface* mirSurface;
|
||||
} VkMirSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkMirSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
MirConnection* connection);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
@@ -6,7 +6,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2019 The Khronos Group Inc.
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
|
94
meson.build
94
meson.build
@@ -1,4 +1,4 @@
|
||||
# Copyright © 2017-2019 Intel Corporation
|
||||
# Copyright © 2017-2018 Intel Corporation
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -34,6 +34,8 @@ cpp = meson.get_compiler('cpp')
|
||||
|
||||
null_dep = dependency('', required : false)
|
||||
|
||||
system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].contains(host_machine.system())
|
||||
|
||||
# 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++.
|
||||
@@ -41,7 +43,8 @@ pre_args = [
|
||||
'-D__STDC_CONSTANT_MACROS',
|
||||
'-D__STDC_FORMAT_MACROS',
|
||||
'-D__STDC_LIMIT_MACROS',
|
||||
'-DPACKAGE_VERSION="@0@"'.format(meson.project_version()),
|
||||
'-DVERSION="@0@"'.format(meson.project_version()),
|
||||
'-DPACKAGE_VERSION=VERSION',
|
||||
'-DPACKAGE_BUGREPORT="https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa"',
|
||||
]
|
||||
|
||||
@@ -51,21 +54,20 @@ with_valgrind = get_option('valgrind')
|
||||
with_libunwind = get_option('libunwind')
|
||||
with_asm = get_option('asm')
|
||||
with_glx_read_only_text = get_option('glx-read-only-text')
|
||||
with_glx_direct = get_option('glx-direct')
|
||||
with_osmesa = get_option('osmesa')
|
||||
with_swr_arches = get_option('swr-arches')
|
||||
with_tools = get_option('tools')
|
||||
if with_tools.contains('all')
|
||||
with_tools = ['etnaviv', 'freedreno', 'glsl', 'intel', 'nir', 'nouveau', 'xvmc']
|
||||
with_tools = ['freedreno', 'glsl', 'intel', 'nir', 'nouveau', 'xvmc']
|
||||
endif
|
||||
|
||||
dri_drivers_path = get_option('dri-drivers-path')
|
||||
if dri_drivers_path == ''
|
||||
dri_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'dri')
|
||||
dri_drivers_path = join_paths(get_option('libdir'), 'dri')
|
||||
endif
|
||||
dri_search_path = get_option('dri-search-path')
|
||||
if dri_search_path == ''
|
||||
dri_search_path = dri_drivers_path
|
||||
dri_search_path = join_paths(get_option('prefix'), dri_drivers_path)
|
||||
endif
|
||||
|
||||
with_gles1 = get_option('gles1')
|
||||
@@ -131,7 +133,7 @@ if _drivers.contains('auto')
|
||||
]
|
||||
elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
|
||||
_drivers = [
|
||||
'kmsro', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau',
|
||||
'pl111', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'imx', 'nouveau',
|
||||
'tegra', 'virgl', 'swrast',
|
||||
]
|
||||
else
|
||||
@@ -145,7 +147,7 @@ if _drivers.contains('auto')
|
||||
host_machine.system()))
|
||||
endif
|
||||
endif
|
||||
with_gallium_kmsro = _drivers.contains('kmsro')
|
||||
with_gallium_pl111 = _drivers.contains('pl111')
|
||||
with_gallium_radeonsi = _drivers.contains('radeonsi')
|
||||
with_gallium_r300 = _drivers.contains('r300')
|
||||
with_gallium_r600 = _drivers.contains('r600')
|
||||
@@ -155,20 +157,13 @@ with_gallium_softpipe = _drivers.contains('swrast')
|
||||
with_gallium_vc4 = _drivers.contains('vc4')
|
||||
with_gallium_v3d = _drivers.contains('v3d')
|
||||
with_gallium_etnaviv = _drivers.contains('etnaviv')
|
||||
with_gallium_imx = _drivers.contains('imx')
|
||||
with_gallium_tegra = _drivers.contains('tegra')
|
||||
with_gallium_i915 = _drivers.contains('i915')
|
||||
with_gallium_svga = _drivers.contains('svga')
|
||||
with_gallium_virgl = _drivers.contains('virgl')
|
||||
with_gallium_swr = _drivers.contains('swr')
|
||||
|
||||
if cc.get_id() == 'intel'
|
||||
if meson.version().version_compare('< 0.49.0')
|
||||
error('Meson does not have sufficient support of ICC before 0.49.0 to compile mesa')
|
||||
elif with_gallium_swr and meson.version().version_compare('== 0.49.0')
|
||||
warning('Meson as of 0.49.0 is sufficient for compiling mesa with ICC, but there are some caveats with SWR. 0.49.1 should resolve all of these')
|
||||
endif
|
||||
endif
|
||||
|
||||
with_gallium = _drivers.length() != 0 and _drivers != ['']
|
||||
|
||||
if with_gallium and system_has_kms_drm
|
||||
@@ -209,8 +204,11 @@ endif
|
||||
if with_dri_i915 and with_gallium_i915
|
||||
error('Only one i915 provider can be built')
|
||||
endif
|
||||
if with_gallium_kmsro and not (with_gallium_vc4 or with_gallium_etnaviv or with_gallium_freedreno)
|
||||
error('kmsro driver requires one or more renderonly drivers (vc4, etnaviv, freedreno)')
|
||||
if with_gallium_imx and not with_gallium_etnaviv
|
||||
error('IMX driver requires etnaviv driver')
|
||||
endif
|
||||
if with_gallium_pl111 and not with_gallium_vc4
|
||||
error('pl111 driver requires vc4 driver')
|
||||
endif
|
||||
if with_gallium_tegra and not with_gallium_nouveau
|
||||
error('tegra driver requires nouveau driver')
|
||||
@@ -225,6 +223,8 @@ elif system_has_kms_drm
|
||||
else
|
||||
# FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should
|
||||
# assert here that one of those cases has been met.
|
||||
# FIXME: GNU (hurd) ends up here as well, but meson doesn't officially
|
||||
# support Hurd at time of writing (2017/11)
|
||||
# FIXME: illumos ends up here as well
|
||||
with_dri_platform = 'none'
|
||||
endif
|
||||
@@ -370,6 +370,9 @@ if with_glvnd
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO: toggle for this
|
||||
with_glx_direct = true
|
||||
|
||||
if with_vulkan_icd_dir == ''
|
||||
with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d')
|
||||
endif
|
||||
@@ -385,9 +388,9 @@ endif
|
||||
if with_any_vk and (with_platform_x11 and not with_dri3)
|
||||
error('Vulkan drivers require dri3 for X11 support')
|
||||
endif
|
||||
if with_dri
|
||||
if with_glx == 'disabled' and not with_egl and not with_gbm and with_osmesa != 'classic'
|
||||
error('building dri drivers require at least one windowing system or classic osmesa')
|
||||
if with_dri or with_gallium
|
||||
if with_glx == 'disabled' and not with_egl and not with_platform_haiku
|
||||
error('building dri or gallium drivers require at least one window system')
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -608,7 +611,7 @@ with_gallium_xa = _xa != 'false'
|
||||
|
||||
d3d_drivers_path = get_option('d3d-drivers-path')
|
||||
if d3d_drivers_path == ''
|
||||
d3d_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'd3d')
|
||||
d3d_drivers_path = join_paths(get_option('libdir'), 'd3d')
|
||||
endif
|
||||
|
||||
with_gallium_st_nine = get_option('gallium-nine')
|
||||
@@ -617,7 +620,7 @@ if with_gallium_st_nine
|
||||
error('The nine state tracker requires gallium softpipe/llvmpipe.')
|
||||
elif not (with_gallium_radeonsi or with_gallium_nouveau or with_gallium_r600
|
||||
or with_gallium_r300 or with_gallium_svga or with_gallium_i915)
|
||||
error('The nine state tracker requires at least one non-swrast gallium driver.')
|
||||
error('The nine state tracker requires at least on non-swrast gallium driver.')
|
||||
endif
|
||||
if not with_dri3
|
||||
error('Using nine with wine requires dri3')
|
||||
@@ -625,12 +628,7 @@ if with_gallium_st_nine
|
||||
endif
|
||||
|
||||
if get_option('power8') != 'false'
|
||||
# on old versions of meson the cpu family would return as ppc64le on little
|
||||
# endian power8, this was changed in 0.48 such that the family would always
|
||||
# be ppc64 regardless of endianness, and the the machine.endian() value
|
||||
# should be checked. Since we support versions < 0.48 we need to use
|
||||
# startswith.
|
||||
if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
if host_machine.cpu_family() == 'ppc64le'
|
||||
if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8')
|
||||
error('Altivec is not supported with gcc version < 4.8.')
|
||||
endif
|
||||
@@ -652,7 +650,6 @@ if get_option('power8') != 'false'
|
||||
endif
|
||||
|
||||
_opencl = get_option('gallium-opencl')
|
||||
clover_cpp_std = []
|
||||
if _opencl != 'disabled'
|
||||
if not with_gallium
|
||||
error('OpenCL Clover implementation requires at least one gallium driver.')
|
||||
@@ -661,18 +658,10 @@ if _opencl != 'disabled'
|
||||
dep_clc = dependency('libclc')
|
||||
with_gallium_opencl = true
|
||||
with_opencl_icd = _opencl == 'icd'
|
||||
|
||||
if host_machine.cpu_family().startswith('ppc') and cpp.compiles('''
|
||||
#if !defined(__VEC__) || !defined(__ALTIVEC__)
|
||||
#error "AltiVec not enabled"
|
||||
#endif''',
|
||||
name : 'Altivec')
|
||||
clover_cpp_std += ['cpp_std=gnu++11']
|
||||
endif
|
||||
else
|
||||
dep_clc = null_dep
|
||||
with_gallium_opencl = false
|
||||
with_opencl_icd = false
|
||||
with_gallium_icd = false
|
||||
endif
|
||||
|
||||
gl_pkgconfig_c_flags = []
|
||||
@@ -792,7 +781,7 @@ if cc.compiles('int foo(void) __attribute__((__noreturn__));',
|
||||
endif
|
||||
|
||||
# TODO: this is very incomplete
|
||||
if ['linux', 'cygwin', 'gnu'].contains(host_machine.system())
|
||||
if ['linux', 'cygwin'].contains(host_machine.system())
|
||||
pre_args += '-D_GNU_SOURCE'
|
||||
endif
|
||||
|
||||
@@ -929,7 +918,7 @@ endif
|
||||
# case of cross compiling where we can use asm, and that's x86_64 -> x86 when
|
||||
# host OS == build OS, since in that case the build machine can run the host's
|
||||
# binaries.
|
||||
if with_asm and meson.is_cross_build()
|
||||
if meson.is_cross_build()
|
||||
if build_machine.system() != host_machine.system()
|
||||
# TODO: It may be possible to do this with an exe_wrapper (like wine).
|
||||
message('Cross compiling from one OS to another, disabling assembly.')
|
||||
@@ -951,7 +940,7 @@ endif
|
||||
with_asm_arch = ''
|
||||
if with_asm
|
||||
if host_machine.cpu_family() == 'x86'
|
||||
if system_has_kms_drm or host_machine.system() == 'gnu'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'x86'
|
||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||
'-DUSE_SSE_ASM']
|
||||
@@ -980,7 +969,7 @@ if with_asm
|
||||
with_asm_arch = 'sparc'
|
||||
pre_args += ['-DUSE_SPARC_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
elif host_machine.cpu_family() == 'ppc64le'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'ppc64le'
|
||||
pre_args += ['-DUSE_PPC64LE_ASM']
|
||||
@@ -1113,7 +1102,7 @@ dep_libdrm_nouveau = null_dep
|
||||
dep_libdrm_etnaviv = null_dep
|
||||
dep_libdrm_intel = null_dep
|
||||
|
||||
_drm_amdgpu_ver = '2.4.97'
|
||||
_drm_amdgpu_ver = '2.4.95'
|
||||
_drm_radeon_ver = '2.4.71'
|
||||
_drm_nouveau_ver = '2.4.66'
|
||||
_drm_etnaviv_ver = '2.4.89'
|
||||
@@ -1174,7 +1163,7 @@ endif
|
||||
llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit']
|
||||
llvm_optional_modules = []
|
||||
if with_amd_vk or with_gallium_radeonsi or with_gallium_r600
|
||||
llvm_modules += ['amdgpu', 'native', 'bitreader', 'ipo']
|
||||
llvm_modules += ['amdgpu', 'bitreader', 'ipo']
|
||||
if with_gallium_r600
|
||||
llvm_modules += 'asmparser'
|
||||
endif
|
||||
@@ -1188,7 +1177,7 @@ if with_gallium_opencl
|
||||
endif
|
||||
|
||||
if with_amd_vk or with_gallium_radeonsi
|
||||
_llvm_version = '>= 7.0.0'
|
||||
_llvm_version = '>= 6.0.0'
|
||||
elif with_gallium_swr
|
||||
_llvm_version = '>= 6.0.0'
|
||||
elif with_gallium_opencl or with_gallium_r600
|
||||
@@ -1235,9 +1224,6 @@ if with_llvm
|
||||
# programs, so we need to build all C++ code in mesa without rtti as well to
|
||||
# ensure that linking works.
|
||||
if dep_llvm.get_configtool_variable('has-rtti') == 'NO'
|
||||
if with_gallium_nouveau
|
||||
error('The Nouveau driver requires rtti. You either need to turn off nouveau or use an LLVM built with LLVM_ENABLE_RTTI.')
|
||||
endif
|
||||
cpp_args += '-fno-rtti'
|
||||
endif
|
||||
elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
|
||||
@@ -1364,8 +1350,9 @@ if with_platform_x11
|
||||
dep_xdamage = dependency('xdamage', version : '>= 1.1')
|
||||
dep_xfixes = dependency('xfixes')
|
||||
dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1')
|
||||
dep_xxf86vm = dependency('xxf86vm')
|
||||
endif
|
||||
if (with_any_vk or with_glx == 'dri' or with_egl or
|
||||
if (with_any_vk or with_glx == 'dri' or
|
||||
(with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or
|
||||
with_gallium_omx != 'disabled'))
|
||||
dep_xcb = dependency('xcb')
|
||||
@@ -1390,7 +1377,6 @@ if with_platform_x11
|
||||
if with_glx == 'dri'
|
||||
if with_dri_platform == 'drm'
|
||||
dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
|
||||
dep_xxf86vm = dependency('xxf86vm')
|
||||
endif
|
||||
dep_glproto = dependency('glproto', version : '>= 1.4.14')
|
||||
endif
|
||||
@@ -1400,7 +1386,7 @@ if with_platform_x11
|
||||
dep_xcb_xfixes = dependency('xcb-xfixes')
|
||||
endif
|
||||
if with_xlib_lease
|
||||
dep_xcb_xrandr = dependency('xcb-randr')
|
||||
dep_xcb_xrandr = dependency('xcb-randr', version : '>= 1.12')
|
||||
dep_xlib_xrandr = dependency('xrandr', version : '>= 1.3')
|
||||
endif
|
||||
endif
|
||||
@@ -1411,7 +1397,7 @@ endif
|
||||
|
||||
_sensors = get_option('lmsensors')
|
||||
if _sensors != 'false'
|
||||
dep_lmsensors = cc.find_library('sensors', required : _sensors == 'true')
|
||||
dep_lmsensors = cc.find_library('libsensors', required : _sensors == 'true')
|
||||
if dep_lmsensors.found()
|
||||
pre_args += '-DHAVE_LIBSENSORS=1'
|
||||
endif
|
||||
@@ -1441,8 +1427,8 @@ elif with_glx == 'dri'
|
||||
'xcb-glx >= 1.8.1']
|
||||
if with_dri_platform == 'drm'
|
||||
gl_priv_reqs += 'xcb-dri2 >= 1.8'
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
gl_priv_reqs += 'xxf86vm'
|
||||
endif
|
||||
if dep_libdrm.found()
|
||||
gl_priv_reqs += 'libdrm >= 2.4.75'
|
||||
|
@@ -58,8 +58,8 @@ option(
|
||||
type : 'array',
|
||||
value : ['auto'],
|
||||
choices : [
|
||||
'', 'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
|
||||
'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
|
||||
'', 'auto', 'pl111', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
|
||||
'swrast', 'v3d', 'vc4', 'etnaviv', 'imx', 'tegra', 'i915', 'svga', 'virgl',
|
||||
'swr',
|
||||
],
|
||||
description : 'List of gallium drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
|
||||
@@ -301,7 +301,7 @@ option(
|
||||
'tools',
|
||||
type : 'array',
|
||||
value : [],
|
||||
choices : ['etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'all'],
|
||||
choices : ['freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'all'],
|
||||
description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
|
||||
)
|
||||
option(
|
||||
@@ -318,9 +318,3 @@ option(
|
||||
choices : ['auto', 'true', 'false'],
|
||||
description : 'Enable VK_EXT_acquire_xlib_display.'
|
||||
)
|
||||
option(
|
||||
'glx-direct',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Enable direct rendering in GLX and EGL for DRI',
|
||||
)
|
||||
|
@@ -48,12 +48,7 @@ import source_list
|
||||
# a path directly. We want to support both, so we need to detect the SCons version,
|
||||
# for which no API is provided by SCons 8-P
|
||||
|
||||
# Scons version string has consistently been in this format:
|
||||
# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
|
||||
# so this formula should cover all versions regardless of type
|
||||
# stable, alpha or beta.
|
||||
# For simplicity alpha and beta flags are removed.
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')[:3]))
|
||||
scons_version = tuple(map(int, SCons.__version__.split('.')))
|
||||
|
||||
def quietCommandLines(env):
|
||||
# Quiet command lines
|
||||
|
@@ -308,20 +308,7 @@ def generate(env):
|
||||
if env.GetOption('num_jobs') <= 1:
|
||||
env.SetOption('num_jobs', num_jobs())
|
||||
|
||||
# Speed up dependency checking. See
|
||||
# - https://github.com/SCons/scons/wiki/GoFastButton
|
||||
# - https://bugs.freedesktop.org/show_bug.cgi?id=109443
|
||||
|
||||
# Scons version string has consistently been in this format:
|
||||
# MajorVersion.MinorVersion.Patch[.alpha/beta.yyyymmdd]
|
||||
# so this formula should cover all versions regardless of type
|
||||
# stable, alpha or beta.
|
||||
# For simplicity alpha and beta flags are removed.
|
||||
|
||||
scons_version = distutils.version.StrictVersion('.'.join(SCons.__version__.split('.')[:3]))
|
||||
if scons_version < distutils.version.StrictVersion('3.0.2') or \
|
||||
scons_version > distutils.version.StrictVersion('3.0.4'):
|
||||
env.Decider('MD5-timestamp')
|
||||
env.Decider('MD5-timestamp')
|
||||
env.SetOption('max_drift', 60)
|
||||
|
||||
# C preprocessor options
|
||||
|
@@ -81,10 +81,6 @@ if HAVE_BROADCOM_DRIVERS
|
||||
SUBDIRS += broadcom
|
||||
endif
|
||||
|
||||
if HAVE_FREEDRENO_DRIVERS
|
||||
SUBDIRS += freedreno
|
||||
endif
|
||||
|
||||
if NEED_OPENGL_COMMON
|
||||
SUBDIRS += mesa
|
||||
endif
|
||||
|
@@ -33,11 +33,12 @@ LOCAL_SRC_FILES := $(ADDRLIB_FILES)
|
||||
LOCAL_C_INCLUDES := \
|
||||
$(MESA_TOP)/src \
|
||||
$(MESA_TOP)/src/amd/common \
|
||||
$(MESA_TOP)/src/amd/addrlib/inc \
|
||||
$(MESA_TOP)/src/amd/addrlib/src \
|
||||
$(MESA_TOP)/src/amd/addrlib/src/core \
|
||||
$(MESA_TOP)/src/amd/addrlib/src/chip/gfx9 \
|
||||
$(MESA_TOP)/src/amd/addrlib/src/chip/r800
|
||||
$(MESA_TOP)/src/amd/addrlib \
|
||||
$(MESA_TOP)/src/amd/addrlib/core \
|
||||
$(MESA_TOP)/src/amd/addrlib/inc/chip/gfx9 \
|
||||
$(MESA_TOP)/src/amd/addrlib/inc/chip/r800 \
|
||||
$(MESA_TOP)/src/amd/addrlib/gfx9/chip \
|
||||
$(MESA_TOP)/src/amd/addrlib/r800/chip
|
||||
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := \
|
||||
$(LOCAL_PATH) \
|
||||
|
@@ -26,11 +26,12 @@ addrlib_libamdgpu_addrlib_la_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src/ \
|
||||
-I$(top_srcdir)/include \
|
||||
-I$(srcdir)/common \
|
||||
-I$(srcdir)/addrlib/inc \
|
||||
-I$(srcdir)/addrlib/src \
|
||||
-I$(srcdir)/addrlib/src/core \
|
||||
-I$(srcdir)/addrlib/src/chip/gfx9 \
|
||||
-I$(srcdir)/addrlib/src/chip/r800
|
||||
-I$(srcdir)/addrlib \
|
||||
-I$(srcdir)/addrlib/core \
|
||||
-I$(srcdir)/addrlib/inc/chip/gfx9 \
|
||||
-I$(srcdir)/addrlib/inc/chip/r800 \
|
||||
-I$(srcdir)/addrlib/gfx9/chip \
|
||||
-I$(srcdir)/addrlib/r800/chip
|
||||
|
||||
addrlib_libamdgpu_addrlib_la_CXXFLAGS = \
|
||||
$(VISIBILITY_CXXFLAGS) $(CXX11_CXXFLAGS)
|
||||
|
@@ -5,33 +5,35 @@ COMMON_HEADER_FILES = \
|
||||
common/amd_kernel_code_t.h
|
||||
|
||||
ADDRLIB_FILES = \
|
||||
addrlib/inc/addrinterface.h \
|
||||
addrlib/inc/addrtypes.h \
|
||||
addrlib/src/addrinterface.cpp \
|
||||
addrlib/src/amdgpu_asic_addr.h \
|
||||
addrlib/src/core/addrcommon.h \
|
||||
addrlib/src/core/addrelemlib.cpp \
|
||||
addrlib/src/core/addrelemlib.h \
|
||||
addrlib/src/core/addrlib.cpp \
|
||||
addrlib/src/core/addrlib.h \
|
||||
addrlib/src/core/addrlib1.cpp \
|
||||
addrlib/src/core/addrlib1.h \
|
||||
addrlib/src/core/addrlib2.cpp \
|
||||
addrlib/src/core/addrlib2.h \
|
||||
addrlib/src/core/addrobject.cpp \
|
||||
addrlib/src/core/addrobject.h \
|
||||
addrlib/src/core/coord.cpp \
|
||||
addrlib/src/core/coord.h \
|
||||
addrlib/src/gfx9/gfx9addrlib.cpp \
|
||||
addrlib/src/gfx9/gfx9addrlib.h \
|
||||
addrlib/src/chip/gfx9/gfx9_gb_reg.h \
|
||||
addrlib/src/chip/r800/si_gb_reg.h \
|
||||
addrlib/src/r800/ciaddrlib.cpp \
|
||||
addrlib/src/r800/ciaddrlib.h \
|
||||
addrlib/src/r800/egbaddrlib.cpp \
|
||||
addrlib/src/r800/egbaddrlib.h \
|
||||
addrlib/src/r800/siaddrlib.cpp \
|
||||
addrlib/src/r800/siaddrlib.h
|
||||
addrlib/addrinterface.cpp \
|
||||
addrlib/addrinterface.h \
|
||||
addrlib/addrtypes.h \
|
||||
addrlib/amdgpu_asic_addr.h \
|
||||
addrlib/core/addrcommon.h \
|
||||
addrlib/core/addrelemlib.cpp \
|
||||
addrlib/core/addrelemlib.h \
|
||||
addrlib/core/addrlib.cpp \
|
||||
addrlib/core/addrlib.h \
|
||||
addrlib/core/addrlib1.cpp \
|
||||
addrlib/core/addrlib1.h \
|
||||
addrlib/core/addrlib2.cpp \
|
||||
addrlib/core/addrlib2.h \
|
||||
addrlib/core/addrobject.cpp \
|
||||
addrlib/core/addrobject.h \
|
||||
addrlib/gfx9/chip/gfx9_enum.h \
|
||||
addrlib/gfx9/coord.cpp \
|
||||
addrlib/gfx9/coord.h \
|
||||
addrlib/gfx9/gfx9addrlib.cpp \
|
||||
addrlib/gfx9/gfx9addrlib.h \
|
||||
addrlib/inc/chip/gfx9/gfx9_gb_reg.h \
|
||||
addrlib/inc/chip/r800/si_gb_reg.h \
|
||||
addrlib/r800/chip/si_ci_vi_merged_enum.h \
|
||||
addrlib/r800/ciaddrlib.cpp \
|
||||
addrlib/r800/ciaddrlib.h \
|
||||
addrlib/r800/egbaddrlib.cpp \
|
||||
addrlib/r800/egbaddrlib.h \
|
||||
addrlib/r800/siaddrlib.cpp \
|
||||
addrlib/r800/siaddrlib.h
|
||||
|
||||
AMD_COMPILER_FILES = \
|
||||
common/ac_binary.c \
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -61,13 +61,13 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
|
||||
{
|
||||
ADDR_E_RETURNCODE returnCode = ADDR_OK;
|
||||
|
||||
{
|
||||
returnCode = Lib::Create(pAddrCreateIn, pAddrCreateOut);
|
||||
}
|
||||
returnCode = Lib::Create(pAddrCreateIn, pAddrCreateOut);
|
||||
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrDestroy
|
||||
@@ -97,6 +97,8 @@ ADDR_E_RETURNCODE ADDR_API AddrDestroy(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -133,6 +135,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrComputeSurfaceAddrFromCoord
|
||||
@@ -197,6 +201,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HTile functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -298,6 +304,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -400,6 +408,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -500,6 +510,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -534,6 +546,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeDccInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Below functions are element related or helper functions
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@@ -836,34 +850,6 @@ BOOL_32 ADDR_API ElemGetExportNorm(
|
||||
return enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ElemSize
|
||||
*
|
||||
* @brief
|
||||
* Get bits-per-element for specified format
|
||||
*
|
||||
* @return
|
||||
* Bits-per-element of specified format
|
||||
*
|
||||
****************************************************************************************************
|
||||
*/
|
||||
UINT_32 ADDR_API ElemSize(
|
||||
ADDR_HANDLE hLib,
|
||||
AddrFormat format)
|
||||
{
|
||||
UINT_32 bpe = 0;
|
||||
|
||||
Addr::Lib* pLib = Lib::GetLib(hLib);
|
||||
|
||||
if (pLib != NULL)
|
||||
{
|
||||
bpe = pLib->GetBpe(format);
|
||||
}
|
||||
|
||||
return bpe;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrConvertTileInfoToHW
|
||||
@@ -1119,6 +1105,7 @@ ADDR_E_RETURNCODE ADDR_API AddrGetMaxMetaAlignments(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1155,6 +1142,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeSurfaceAddrFromCoord
|
||||
@@ -1187,6 +1175,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeSurfaceCoordFromAddr
|
||||
@@ -1219,6 +1208,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HTile functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1255,6 +1246,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeHtileAddrFromCoord
|
||||
@@ -1287,6 +1279,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeHtileCoordFromAddr
|
||||
@@ -1320,6 +1313,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1357,6 +1352,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeCmaskAddrFromCoord
|
||||
@@ -1389,6 +1385,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeCmaskCoordFromAddr
|
||||
@@ -1422,6 +1419,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1458,6 +1457,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskInfo(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeFmaskAddrFromCoord
|
||||
@@ -1490,6 +1490,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskAddrFromCoord(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Addr2ComputeFmaskCoordFromAddr
|
||||
@@ -1522,6 +1523,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions for Addr2
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -177,6 +177,7 @@ typedef struct _ADDR_EQUATION
|
||||
///< stacked vertically prior to swizzling
|
||||
} ADDR_EQUATION;
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* @brief Alloc system memory flags.
|
||||
@@ -408,6 +409,8 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
|
||||
const ADDR_CREATE_INPUT* pAddrCreateIn,
|
||||
ADDR_CREATE_OUTPUT* pAddrCreateOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrDestroy
|
||||
@@ -422,6 +425,8 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
|
||||
ADDR_E_RETURNCODE ADDR_API AddrDestroy(
|
||||
ADDR_HANDLE hLib);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -653,6 +658,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceInfo(
|
||||
const ADDR_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_SURFACE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT
|
||||
@@ -741,6 +748,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSurfaceAddrFromCoord(
|
||||
const ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SURFACE_COORDFROMADDR_INPUT
|
||||
@@ -922,6 +931,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileInfo(
|
||||
const ADDR_COMPUTE_HTILE_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_HTILE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_HTILE_ADDRFROMCOORD_INPUT
|
||||
@@ -984,6 +995,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileAddrFromCoord(
|
||||
const ADDR_COMPUTE_HTILE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_HTILE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_HTILE_COORDFROMADDR_INPUT
|
||||
@@ -1044,6 +1057,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeHtileCoordFromAddr(
|
||||
const ADDR_COMPUTE_HTILE_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR_COMPUTE_HTILE_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1131,6 +1146,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskInfo(
|
||||
const ADDR_COMPUTE_CMASK_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_CMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_CMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -1191,6 +1208,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskAddrFromCoord(
|
||||
const ADDR_COMPUTE_CMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_CMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_CMASK_COORDFROMADDR_INPUT
|
||||
@@ -1249,6 +1268,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeCmaskCoordFromAddr(
|
||||
const ADDR_COMPUTE_CMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR_COMPUTE_CMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1329,6 +1350,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskInfo(
|
||||
const ADDR_COMPUTE_FMASK_INFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_FMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_FMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -1405,6 +1428,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskAddrFromCoord(
|
||||
const ADDR_COMPUTE_FMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR_COMPUTE_FMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_FMASK_COORDFROMADDR_INPUT
|
||||
@@ -1478,6 +1503,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeFmaskCoordFromAddr(
|
||||
const ADDR_COMPUTE_FMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR_COMPUTE_FMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Element/utility functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -1566,6 +1593,7 @@ ADDR_E_RETURNCODE ADDR_API AddrExtractBankPipeSwizzle(
|
||||
const ADDR_EXTRACT_BANKPIPE_SWIZZLE_INPUT* pIn,
|
||||
ADDR_EXTRACT_BANKPIPE_SWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMBINE_BANKPIPE_SWIZZLE_INPUT
|
||||
@@ -1623,6 +1651,8 @@ ADDR_E_RETURNCODE ADDR_API AddrCombineBankPipeSwizzle(
|
||||
const ADDR_COMBINE_BANKPIPE_SWIZZLE_INPUT* pIn,
|
||||
ADDR_COMBINE_BANKPIPE_SWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SLICESWIZZLE_INPUT
|
||||
@@ -1649,6 +1679,8 @@ typedef struct _ADDR_COMPUTE_SLICESWIZZLE_INPUT
|
||||
///< README: When tileIndex is not -1, this must be valid
|
||||
} ADDR_COMPUTE_SLICESWIZZLE_INPUT;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_COMPUTE_SLICESWIZZLE_OUTPUT
|
||||
@@ -1679,6 +1711,7 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeSliceSwizzle(
|
||||
const ADDR_COMPUTE_SLICESWIZZLE_INPUT* pIn,
|
||||
ADDR_COMPUTE_SLICESWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrSwizzleGenOption
|
||||
@@ -1769,6 +1802,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeBaseSwizzle(
|
||||
const ADDR_COMPUTE_BASE_SWIZZLE_INPUT* pIn,
|
||||
ADDR_COMPUTE_BASE_SWIZZLE_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ELEM_GETEXPORTNORM_INPUT
|
||||
@@ -1809,6 +1844,8 @@ BOOL_32 ADDR_API ElemGetExportNorm(
|
||||
ADDR_HANDLE hLib,
|
||||
const ELEM_GETEXPORTNORM_INPUT* pIn);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ELEM_FLT32TODEPTHPIXEL_INPUT
|
||||
@@ -1864,6 +1901,8 @@ ADDR_E_RETURNCODE ADDR_API ElemFlt32ToDepthPixel(
|
||||
const ELEM_FLT32TODEPTHPIXEL_INPUT* pIn,
|
||||
ELEM_FLT32TODEPTHPIXEL_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ELEM_FLT32TOCOLORPIXEL_INPUT
|
||||
@@ -1917,21 +1956,6 @@ ADDR_E_RETURNCODE ADDR_API ElemFlt32ToColorPixel(
|
||||
const ELEM_FLT32TOCOLORPIXEL_INPUT* pIn,
|
||||
ELEM_FLT32TOCOLORPIXEL_OUTPUT* pOut);
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ElemSize
|
||||
*
|
||||
* @brief
|
||||
* Get bits-per-element for specified format
|
||||
*
|
||||
* @return
|
||||
* Bits-per-element of specified format
|
||||
*
|
||||
****************************************************************************************************
|
||||
*/
|
||||
UINT_32 ADDR_API ElemSize(
|
||||
ADDR_HANDLE hLib,
|
||||
AddrFormat format);
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
@@ -1990,6 +2014,8 @@ ADDR_E_RETURNCODE ADDR_API AddrConvertTileInfoToHW(
|
||||
const ADDR_CONVERT_TILEINFOTOHW_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINFOTOHW_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_CONVERT_TILEINDEX_INPUT
|
||||
@@ -2114,6 +2140,8 @@ ADDR_E_RETURNCODE ADDR_API AddrConvertTileIndex1(
|
||||
const ADDR_CONVERT_TILEINDEX1_INPUT* pIn,
|
||||
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_GET_TILEINDEX_INPUT
|
||||
@@ -2159,6 +2187,8 @@ ADDR_E_RETURNCODE ADDR_API AddrGetTileIndex(
|
||||
const ADDR_GET_TILEINDEX_INPUT* pIn,
|
||||
ADDR_GET_TILEINDEX_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_PRT_INFO_INPUT
|
||||
@@ -2203,6 +2233,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputePrtInfo(
|
||||
const ADDR_PRT_INFO_INPUT* pIn,
|
||||
ADDR_PRT_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2263,6 +2295,8 @@ ADDR_E_RETURNCODE ADDR_API AddrComputeDccInfo(
|
||||
const ADDR_COMPUTE_DCCINFO_INPUT* pIn,
|
||||
ADDR_COMPUTE_DCCINFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR_GET_MAX_ALINGMENTS_OUTPUT
|
||||
@@ -2326,6 +2360,7 @@ ADDR_E_RETURNCODE ADDR_API AddrGetMaxMetaAlignments(
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2360,8 +2395,7 @@ typedef union _ADDR2_SURFACE_FLAGS
|
||||
UINT_32 noMetadata : 1; ///< This resource has no metadata
|
||||
UINT_32 metaRbUnaligned : 1; ///< This resource has rb unaligned metadata
|
||||
UINT_32 metaPipeUnaligned : 1; ///< This resource has pipe unaligned metadata
|
||||
UINT_32 view3dAs2dArray : 1; ///< This resource is a 3D resource viewed as 2D array
|
||||
UINT_32 reserved : 13; ///< Reserved bits
|
||||
UINT_32 reserved : 14; ///< Reserved bits
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
@@ -2489,6 +2523,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceInfo(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SURFACE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT
|
||||
@@ -2555,6 +2591,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceAddrFromCoord(
|
||||
const ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_SURFACE_COORDFROMADDR_INPUT
|
||||
@@ -2620,6 +2658,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeSurfaceCoordFromAddr(
|
||||
const ADDR2_COMPUTE_SURFACE_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SURFACE_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// HTile functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2670,10 +2710,8 @@ typedef struct _ADDR2_META_MIP_INFO
|
||||
|
||||
struct
|
||||
{
|
||||
UINT_32 offset; ///< Metadata offset within one slice,
|
||||
/// the thickness of a slice is meta block depth.
|
||||
UINT_32 sliceSize; ///< Metadata size within one slice,
|
||||
/// the thickness of a slice is meta block depth.
|
||||
UINT_32 offset;
|
||||
UINT_32 sliceSize;
|
||||
};
|
||||
};
|
||||
} ADDR2_META_MIP_INFO;
|
||||
@@ -2697,9 +2735,7 @@ typedef struct _ADDR2_COMPUTE_HTILE_INFO_INPUT
|
||||
UINT_32 unalignedHeight; ///< Depth surface original height (of mip0)
|
||||
UINT_32 numSlices; ///< Number of slices of depth surface (of mip0)
|
||||
UINT_32 numMipLevels; ///< Total mipmap levels of color surface
|
||||
UINT_32 firstMipIdInTail; /// Id of the first mip in tail,
|
||||
/// if no mip is in tail, it should be set to
|
||||
/// number of mip levels
|
||||
UINT_32 firstMipIdInTail;
|
||||
} ADDR2_COMPUTE_HTILE_INFO_INPUT;
|
||||
|
||||
/**
|
||||
@@ -2741,6 +2777,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileInfo(
|
||||
const ADDR2_COMPUTE_HTILE_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_HTILE_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_HTILE_ADDRFROMCOORD_INPUT
|
||||
@@ -2798,6 +2836,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileAddrFromCoord(
|
||||
const ADDR2_COMPUTE_HTILE_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_HTILE_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_HTILE_COORDFROMADDR_INPUT
|
||||
@@ -2856,6 +2896,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeHtileCoordFromAddr(
|
||||
const ADDR2_COMPUTE_HTILE_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_HTILE_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// C-mask functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2921,6 +2963,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskInfo(
|
||||
const ADDR2_COMPUTE_CMASK_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_CMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_CMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -2982,6 +3026,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskAddrFromCoord(
|
||||
const ADDR2_COMPUTE_CMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_CMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_CMASK_COORDFROMADDR_INPUT
|
||||
@@ -3040,6 +3086,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeCmaskCoordFromAddr(
|
||||
const ADDR2_COMPUTE_CMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_CMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// F-mask functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -3122,6 +3170,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskInfo(
|
||||
const ADDR2_COMPUTE_FMASK_INFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_FMASK_INFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_FMASK_ADDRFROMCOORD_INPUT
|
||||
@@ -3181,6 +3231,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskAddrFromCoord(
|
||||
const ADDR2_COMPUTE_FMASK_ADDRFROMCOORD_INPUT* pIn,
|
||||
ADDR2_COMPUTE_FMASK_ADDRFROMCOORD_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_FMASK_COORDFROMADDR_INPUT
|
||||
@@ -3239,6 +3291,8 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeFmaskCoordFromAddr(
|
||||
const ADDR2_COMPUTE_FMASK_COORDFROMADDR_INPUT* pIn,
|
||||
ADDR2_COMPUTE_FMASK_COORDFROMADDR_OUTPUT* pOut);
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DCC key functions for Gfx9
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -3267,8 +3321,7 @@ typedef struct _ADDR2_COMPUTE_DCCINFO_INPUT
|
||||
UINT_32 numMipLevels; ///< Total mipmap levels of color surface
|
||||
UINT_32 dataSurfaceSize; ///< The padded size of all slices and mip levels
|
||||
///< useful in meta linear case
|
||||
UINT_32 firstMipIdInTail; ///< The id of first mip in tail, if no mip is in tail,
|
||||
/// it should be number of mip levels
|
||||
UINT_32 firstMipIdInTail;
|
||||
} ADDR2_COMPUTE_DCCINFO_INPUT;
|
||||
|
||||
/**
|
||||
@@ -3303,9 +3356,7 @@ typedef struct _ADDR2_COMPUTE_DCCINFO_OUTPUT
|
||||
union
|
||||
{
|
||||
UINT_32 fastClearSizePerSlice; ///< Size of DCC within a slice should be fast cleared
|
||||
UINT_32 dccRamSliceSize; ///< DCC ram size per slice. For mipmap, it's
|
||||
/// the slize size of a mip chain, the thickness of a
|
||||
/// a slice is meta block depth
|
||||
UINT_32 dccRamSliceSize;
|
||||
};
|
||||
|
||||
ADDR2_META_MIP_INFO* pMipInfo; ///< DCC mip information
|
||||
@@ -3325,6 +3376,7 @@ ADDR_E_RETURNCODE ADDR_API Addr2ComputeDccInfo(
|
||||
const ADDR2_COMPUTE_DCCINFO_INPUT* pIn,
|
||||
ADDR2_COMPUTE_DCCINFO_OUTPUT* pOut);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_COMPUTE_DCC_ADDRFROMCOORD_INPUT
|
||||
@@ -3576,55 +3628,6 @@ typedef union _ADDR2_SWTYPE_SET
|
||||
UINT_32 value;
|
||||
} ADDR2_SWTYPE_SET;
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_SWMODE_SET
|
||||
*
|
||||
* @brief
|
||||
* Bit field that defines swizzle type
|
||||
****************************************************************************************************
|
||||
*/
|
||||
typedef union _ADDR2_SWMODE_SET
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT_32 swLinear : 1;
|
||||
UINT_32 sw256B_S : 1;
|
||||
UINT_32 sw256B_D : 1;
|
||||
UINT_32 sw256B_R : 1;
|
||||
UINT_32 sw4KB_Z : 1;
|
||||
UINT_32 sw4KB_S : 1;
|
||||
UINT_32 sw4KB_D : 1;
|
||||
UINT_32 sw4KB_R : 1;
|
||||
UINT_32 sw64KB_Z : 1;
|
||||
UINT_32 sw64KB_S : 1;
|
||||
UINT_32 sw64KB_D : 1;
|
||||
UINT_32 sw64KB_R : 1;
|
||||
UINT_32 swVar_Z : 1;
|
||||
UINT_32 swVar_S : 1;
|
||||
UINT_32 swVar_D : 1;
|
||||
UINT_32 swVar_R : 1;
|
||||
UINT_32 sw64KB_Z_T : 1;
|
||||
UINT_32 sw64KB_S_T : 1;
|
||||
UINT_32 sw64KB_D_T : 1;
|
||||
UINT_32 sw64KB_R_T : 1;
|
||||
UINT_32 sw4KB_Z_X : 1;
|
||||
UINT_32 sw4KB_S_X : 1;
|
||||
UINT_32 sw4KB_D_X : 1;
|
||||
UINT_32 sw4KB_R_X : 1;
|
||||
UINT_32 sw64KB_Z_X : 1;
|
||||
UINT_32 sw64KB_S_X : 1;
|
||||
UINT_32 sw64KB_D_X : 1;
|
||||
UINT_32 sw64KB_R_X : 1;
|
||||
UINT_32 swVar_Z_X : 1;
|
||||
UINT_32 swVar_S_X : 1;
|
||||
UINT_32 swVar_D_X : 1;
|
||||
UINT_32 swVar_R_X : 1;
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
} ADDR2_SWMODE_SET;
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ADDR2_GET_PREFERRED_SURF_SETTING_INPUT
|
||||
@@ -3678,7 +3681,6 @@ typedef struct _ADDR2_GET_PREFERRED_SURF_SETTING_OUTPUT
|
||||
/// type
|
||||
ADDR2_SWTYPE_SET validSwTypeSet; ///< Valid swizzle type bit combination
|
||||
ADDR2_SWTYPE_SET clientPreferredSwSet; ///< Client-preferred swizzle type bit combination
|
||||
ADDR2_SWMODE_SET validSwModeSet; ///< Valid swizzle mode bit combination
|
||||
} ADDR2_GET_PREFERRED_SURF_SETTING_OUTPUT;
|
||||
|
||||
/**
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -112,6 +112,7 @@ typedef int INT;
|
||||
#define GC_FASTCALL ADDR_FASTCALL
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#define ADDR_INLINE static inline // inline needs to be static to link
|
||||
#else
|
||||
@@ -352,7 +353,7 @@ typedef enum _AddrFormat {
|
||||
ADDR_FMT_3_3_2 = 0x00000003,
|
||||
ADDR_FMT_RESERVED_4 = 0x00000004,
|
||||
ADDR_FMT_16 = 0x00000005,
|
||||
ADDR_FMT_16_FLOAT = ADDR_FMT_16,
|
||||
ADDR_FMT_16_FLOAT = 0x00000006,
|
||||
ADDR_FMT_8_8 = 0x00000007,
|
||||
ADDR_FMT_5_6_5 = 0x00000008,
|
||||
ADDR_FMT_6_5_5 = 0x00000009,
|
||||
@@ -360,28 +361,28 @@ typedef enum _AddrFormat {
|
||||
ADDR_FMT_4_4_4_4 = 0x0000000b,
|
||||
ADDR_FMT_5_5_5_1 = 0x0000000c,
|
||||
ADDR_FMT_32 = 0x0000000d,
|
||||
ADDR_FMT_32_FLOAT = ADDR_FMT_32,
|
||||
ADDR_FMT_32_FLOAT = 0x0000000e,
|
||||
ADDR_FMT_16_16 = 0x0000000f,
|
||||
ADDR_FMT_16_16_FLOAT = ADDR_FMT_16_16,
|
||||
ADDR_FMT_16_16_FLOAT = 0x00000010,
|
||||
ADDR_FMT_8_24 = 0x00000011,
|
||||
ADDR_FMT_8_24_FLOAT = ADDR_FMT_8_24,
|
||||
ADDR_FMT_8_24_FLOAT = 0x00000012,
|
||||
ADDR_FMT_24_8 = 0x00000013,
|
||||
ADDR_FMT_24_8_FLOAT = ADDR_FMT_24_8,
|
||||
ADDR_FMT_24_8_FLOAT = 0x00000014,
|
||||
ADDR_FMT_10_11_11 = 0x00000015,
|
||||
ADDR_FMT_10_11_11_FLOAT = ADDR_FMT_10_11_11,
|
||||
ADDR_FMT_10_11_11_FLOAT = 0x00000016,
|
||||
ADDR_FMT_11_11_10 = 0x00000017,
|
||||
ADDR_FMT_11_11_10_FLOAT = ADDR_FMT_11_11_10,
|
||||
ADDR_FMT_11_11_10_FLOAT = 0x00000018,
|
||||
ADDR_FMT_2_10_10_10 = 0x00000019,
|
||||
ADDR_FMT_8_8_8_8 = 0x0000001a,
|
||||
ADDR_FMT_10_10_10_2 = 0x0000001b,
|
||||
ADDR_FMT_X24_8_32_FLOAT = 0x0000001c,
|
||||
ADDR_FMT_32_32 = 0x0000001d,
|
||||
ADDR_FMT_32_32_FLOAT = ADDR_FMT_32_32,
|
||||
ADDR_FMT_32_32_FLOAT = 0x0000001e,
|
||||
ADDR_FMT_16_16_16_16 = 0x0000001f,
|
||||
ADDR_FMT_16_16_16_16_FLOAT = ADDR_FMT_16_16_16_16,
|
||||
ADDR_FMT_16_16_16_16_FLOAT = 0x00000020,
|
||||
ADDR_FMT_RESERVED_33 = 0x00000021,
|
||||
ADDR_FMT_32_32_32_32 = 0x00000022,
|
||||
ADDR_FMT_32_32_32_32_FLOAT = ADDR_FMT_32_32_32_32,
|
||||
ADDR_FMT_32_32_32_32_FLOAT = 0x00000023,
|
||||
ADDR_FMT_RESERVED_36 = 0x00000024,
|
||||
ADDR_FMT_1 = 0x00000025,
|
||||
ADDR_FMT_1_REVERSED = 0x00000026,
|
||||
@@ -392,9 +393,9 @@ typedef enum _AddrFormat {
|
||||
ADDR_FMT_5_9_9_9_SHAREDEXP = 0x0000002b,
|
||||
ADDR_FMT_8_8_8 = 0x0000002c,
|
||||
ADDR_FMT_16_16_16 = 0x0000002d,
|
||||
ADDR_FMT_16_16_16_FLOAT = ADDR_FMT_16_16_16,
|
||||
ADDR_FMT_16_16_16_FLOAT = 0x0000002e,
|
||||
ADDR_FMT_32_32_32 = 0x0000002f,
|
||||
ADDR_FMT_32_32_32_FLOAT = ADDR_FMT_32_32_32,
|
||||
ADDR_FMT_32_32_32_FLOAT = 0x00000030,
|
||||
ADDR_FMT_BC1 = 0x00000031,
|
||||
ADDR_FMT_BC2 = 0x00000032,
|
||||
ADDR_FMT_BC3 = 0x00000033,
|
||||
@@ -549,6 +550,7 @@ typedef enum _AddrHtileBlockSize
|
||||
ADDR_HTILE_BLOCKSIZE_8 = 8,
|
||||
} AddrHtileBlockSize;
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* AddrPipeCfg
|
||||
@@ -582,8 +584,7 @@ typedef enum _AddrPipeCfg
|
||||
ADDR_PIPECFG_P8_32x64_32x32 = 15,
|
||||
ADDR_PIPECFG_P16_32x32_8x16 = 17, /// 16 pipes
|
||||
ADDR_PIPECFG_P16_32x32_16x16 = 18,
|
||||
ADDR_PIPECFG_RESERVED = 19, /// reserved for internal use
|
||||
ADDR_PIPECFG_MAX = 20,
|
||||
ADDR_PIPECFG_MAX = 19,
|
||||
} AddrPipeCfg;
|
||||
|
||||
/**
|
||||
@@ -711,6 +712,7 @@ typedef enum _AddrTileType
|
||||
#define ADDR64D "lld" OR "I64d"
|
||||
#endif
|
||||
|
||||
|
||||
/// @brief Union for storing a 32-bit float or 32-bit integer
|
||||
/// @ingroup type
|
||||
///
|
||||
@@ -726,6 +728,7 @@ typedef union {
|
||||
float f;
|
||||
} ADDR_FLT_32;
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Macros for controlling linking and building on multiple systems
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2017-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -96,6 +96,7 @@
|
||||
#define AMDGPU_RANGE_HELPER(val, min, max) ((val >= min) && (val < max))
|
||||
#define AMDGPU_IN_RANGE(val, ...) AMDGPU_EXPAND_FIX(AMDGPU_RANGE_HELPER(val, __VA_ARGS__))
|
||||
|
||||
|
||||
// ASICREV_IS(eRevisionId, revisionName)
|
||||
#define ASICREV_IS(r, rn) AMDGPU_IN_RANGE(r, AMDGPU_##rn##_RANGE)
|
||||
#define ASICREV_IS_TAHITI_P(r) ASICREV_IS(r, TAHITI)
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -99,6 +99,7 @@
|
||||
#define ADDR_INFO(cond, a) \
|
||||
{ if (!(cond)) { ADDR_PRNT(a); } }
|
||||
|
||||
|
||||
/// @brief Macro for reporting error warning messages
|
||||
/// @ingroup util
|
||||
///
|
||||
@@ -117,6 +118,7 @@
|
||||
ADDR_PRNT((" WARNING in file %s, line %d\n", __FILE__, __LINE__)); \
|
||||
} }
|
||||
|
||||
|
||||
/// @brief Macro for reporting fatal error conditions
|
||||
/// @ingroup util
|
||||
///
|
||||
@@ -259,8 +261,7 @@ union ConfigFlags
|
||||
UINT_32 useHtileSliceAlign : 1; ///< Do htile single slice alignment
|
||||
UINT_32 allowLargeThickTile : 1; ///< Allow 64*thickness*bytesPerPixel > rowSize
|
||||
UINT_32 disableLinearOpt : 1; ///< Disallow tile modes to be optimized to linear
|
||||
UINT_32 use32bppFor422Fmt : 1; ///< View 422 formats as 32 bits per pixel element
|
||||
UINT_32 reserved : 21; ///< Reserved bits for future use
|
||||
UINT_32 reserved : 22; ///< Reserved bits for future use
|
||||
};
|
||||
|
||||
UINT_32 value;
|
||||
@@ -844,6 +845,7 @@ static inline VOID InitChannel(
|
||||
pChanSet->index = index;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* InitChannel
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -72,7 +72,6 @@ ElemLib::ElemLib(
|
||||
default:
|
||||
m_fp16ExportNorm = 1;
|
||||
m_depthPlanarType = ADDR_DEPTH_PLANAR_R800;
|
||||
break;
|
||||
}
|
||||
|
||||
m_configFlags.value = 0;
|
||||
@@ -347,6 +346,7 @@ VOID ElemLib::Int32sToPixel(
|
||||
UINT_32 elemMask=0;
|
||||
UINT_32 elementXor = 0; // address xor when reading bytes from elements
|
||||
|
||||
|
||||
// @@ NOTE: assert if called on a compressed format!
|
||||
|
||||
if (properties.byteAligned) // Components are all byte-sized
|
||||
@@ -1387,33 +1387,38 @@ UINT_32 ElemLib::GetBitsPerPixel(
|
||||
case ADDR_FMT_8_8:
|
||||
case ADDR_FMT_4_4_4_4:
|
||||
case ADDR_FMT_16:
|
||||
case ADDR_FMT_16_FLOAT:
|
||||
bpp = 16;
|
||||
break;
|
||||
case ADDR_FMT_GB_GR:
|
||||
case ADDR_FMT_GB_GR: // treat as FMT_8_8
|
||||
elemMode = ADDR_PACKED_GBGR;
|
||||
bpp = m_configFlags.use32bppFor422Fmt ? 32 : 16;
|
||||
expandX = m_configFlags.use32bppFor422Fmt ? 2 : 1;
|
||||
bpp = 16;
|
||||
break;
|
||||
case ADDR_FMT_BG_RG:
|
||||
case ADDR_FMT_BG_RG: // treat as FMT_8_8
|
||||
elemMode = ADDR_PACKED_BGRG;
|
||||
bpp = m_configFlags.use32bppFor422Fmt ? 32 : 16;
|
||||
expandX = m_configFlags.use32bppFor422Fmt ? 2 : 1;
|
||||
bpp = 16;
|
||||
break;
|
||||
case ADDR_FMT_8_8_8_8:
|
||||
case ADDR_FMT_2_10_10_10:
|
||||
case ADDR_FMT_10_11_11:
|
||||
case ADDR_FMT_11_11_10:
|
||||
case ADDR_FMT_16_16:
|
||||
case ADDR_FMT_16_16_FLOAT:
|
||||
case ADDR_FMT_32:
|
||||
case ADDR_FMT_32_FLOAT:
|
||||
case ADDR_FMT_24_8:
|
||||
case ADDR_FMT_24_8_FLOAT:
|
||||
bpp = 32;
|
||||
break;
|
||||
case ADDR_FMT_16_16_16_16:
|
||||
case ADDR_FMT_16_16_16_16_FLOAT:
|
||||
case ADDR_FMT_32_32:
|
||||
case ADDR_FMT_32_32_FLOAT:
|
||||
case ADDR_FMT_CTX1:
|
||||
bpp = 64;
|
||||
break;
|
||||
case ADDR_FMT_32_32_32_32:
|
||||
case ADDR_FMT_32_32_32_32_FLOAT:
|
||||
bpp = 128;
|
||||
break;
|
||||
case ADDR_FMT_INVALID:
|
||||
@@ -1439,7 +1444,10 @@ UINT_32 ElemLib::GetBitsPerPixel(
|
||||
case ADDR_FMT_32_AS_8:
|
||||
case ADDR_FMT_32_AS_8_8:
|
||||
case ADDR_FMT_8_24:
|
||||
case ADDR_FMT_8_24_FLOAT:
|
||||
case ADDR_FMT_10_10_10_2:
|
||||
case ADDR_FMT_10_11_11_FLOAT:
|
||||
case ADDR_FMT_11_11_10_FLOAT:
|
||||
case ADDR_FMT_5_9_9_9_SHAREDEXP:
|
||||
bpp = 32;
|
||||
break;
|
||||
@@ -1453,10 +1461,12 @@ UINT_32 ElemLib::GetBitsPerPixel(
|
||||
expandX = 3;
|
||||
break;
|
||||
case ADDR_FMT_16_16_16:
|
||||
case ADDR_FMT_16_16_16_FLOAT:
|
||||
elemMode = ADDR_EXPANDED;
|
||||
bpp = 48;//@@ 16; // read 3 elements per pixel
|
||||
expandX = 3;
|
||||
break;
|
||||
case ADDR_FMT_32_32_32_FLOAT:
|
||||
case ADDR_FMT_32_32_32:
|
||||
elemMode = ADDR_EXPANDED;
|
||||
expandX = 3;
|
||||
@@ -1745,6 +1755,7 @@ BOOL_32 ElemLib::IsBlockCompressed(
|
||||
((format >= ADDR_FMT_ASTC_4x4) && (format <= ADDR_FMT_ETC2_128BPP)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* ElemLib::IsCompressed
|
||||
@@ -1786,7 +1797,9 @@ BOOL_32 ElemLib::IsExpand3x(
|
||||
{
|
||||
case ADDR_FMT_8_8_8:
|
||||
case ADDR_FMT_16_16_16:
|
||||
case ADDR_FMT_16_16_16_FLOAT:
|
||||
case ADDR_FMT_32_32_32:
|
||||
case ADDR_FMT_32_32_32_FLOAT:
|
||||
is3x = TRUE;
|
||||
break;
|
||||
default:
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -157,6 +157,7 @@ Lib::~Lib()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Initialization/Helper
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -206,7 +207,7 @@ ADDR_E_RETURNCODE Lib::Create(
|
||||
pLib = SiHwlInit(&client);
|
||||
break;
|
||||
case FAMILY_VI:
|
||||
case FAMILY_CZ:
|
||||
case FAMILY_CZ: // VI based fusion(carrizo)
|
||||
case FAMILY_CI:
|
||||
case FAMILY_KV: // CI based fusion
|
||||
pLib = CiHwlInit(&client);
|
||||
@@ -485,10 +486,12 @@ UINT_32 Lib::Bits2Number(
|
||||
return number;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Element lib
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::Flt32ToColorPixel
|
||||
@@ -604,6 +607,7 @@ ADDR_E_RETURNCODE Lib::Flt32ToColorPixel(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::GetExportNorm
|
||||
@@ -637,19 +641,4 @@ BOOL_32 Lib::GetExportNorm(
|
||||
return enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::GetBpe
|
||||
*
|
||||
* @brief
|
||||
* Get bits-per-element for specified format
|
||||
* @return
|
||||
* bits-per-element of specified format
|
||||
****************************************************************************************************
|
||||
*/
|
||||
UINT_32 Lib::GetBpe(AddrFormat format) const
|
||||
{
|
||||
return GetElemLib()->GetBitsPerPixel(format);
|
||||
}
|
||||
|
||||
} // Addr
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -286,8 +286,6 @@ public:
|
||||
|
||||
ADDR_E_RETURNCODE GetMaxMetaAlignments(ADDR_GET_MAX_ALINGMENTS_OUTPUT* pOut) const;
|
||||
|
||||
UINT_32 GetBpe(AddrFormat format) const;
|
||||
|
||||
protected:
|
||||
Lib(); // Constructor is protected
|
||||
Lib(const Client* pClient);
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2016 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -140,17 +140,19 @@ Lib* Lib::GetLib(
|
||||
((pAddrLib->GetChipFamily() == ADDR_CHIP_FAMILY_IVLD) ||
|
||||
(pAddrLib->GetChipFamily() > ADDR_CHIP_FAMILY_VI)))
|
||||
{
|
||||
// only valid and pre-VI ASIC can use AddrLib1 function.
|
||||
// only valid and pre-VI AISC can use AddrLib1 function.
|
||||
ADDR_ASSERT_ALWAYS();
|
||||
hLib = NULL;
|
||||
}
|
||||
return static_cast<Lib*>(hLib);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface Methods
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::ComputeSurfaceInfo
|
||||
@@ -1228,6 +1230,8 @@ UINT_32 Lib::Thickness(
|
||||
return ModeFlags[tileMode].thickness;
|
||||
}
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// CMASK/HTILE
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -2008,6 +2012,7 @@ ADDR_E_RETURNCODE Lib::ComputeCmaskInfo(
|
||||
*pPitchOut = (pitchIn + macroWidth - 1) & ~(macroWidth - 1);
|
||||
*pHeightOut = (heightIn + macroHeight - 1) & ~(macroHeight - 1);
|
||||
|
||||
|
||||
sliceBytes = ComputeCmaskBytes(*pPitchOut,
|
||||
*pHeightOut,
|
||||
1);
|
||||
@@ -2235,6 +2240,7 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
UINT_32 groupBits = 8 * m_pipeInterleaveBytes;
|
||||
UINT_32 pipes = numPipes;
|
||||
|
||||
|
||||
//
|
||||
// Compute the micro tile size, in bits. And macro tile pitch and height.
|
||||
//
|
||||
@@ -2287,17 +2293,20 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
pitch = pitchAligned;
|
||||
height = heightAligned;
|
||||
|
||||
|
||||
//
|
||||
// Convert byte address to bit address.
|
||||
//
|
||||
bitAddr = BYTES_TO_BITS(addr) + bitPosition;
|
||||
|
||||
|
||||
//
|
||||
// Remove pipe bits from address.
|
||||
//
|
||||
|
||||
bitAddr = (bitAddr % groupBits) + ((bitAddr/groupBits/pipes)*groupBits);
|
||||
|
||||
|
||||
elemOffset = bitAddr / elemBits;
|
||||
|
||||
tilesPerMacro = (macroTilePitch/factor) * macroTileHeight / MicroTilePixels >> numPipeBits;
|
||||
@@ -2315,6 +2324,7 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
macroY = static_cast<UINT_32>((macroNumber % macrosPerSlice) / macrosPerPitch);
|
||||
macroZ = static_cast<UINT_32>((macroNumber / macrosPerSlice));
|
||||
|
||||
|
||||
microX = microNumber % (macroTilePitch / factor / MicroTileWidth);
|
||||
microY = (microNumber / (macroTilePitch / factor / MicroTileHeight));
|
||||
|
||||
@@ -2325,6 +2335,7 @@ VOID Lib::HwlComputeXmaskCoordFromAddr(
|
||||
microTileCoordY = ComputeXmaskCoordYFromPipe(pipe,
|
||||
*pX/MicroTileWidth);
|
||||
|
||||
|
||||
//
|
||||
// Assemble final coordinates.
|
||||
//
|
||||
@@ -2384,6 +2395,7 @@ UINT_64 Lib::HwlComputeXmaskAddrFromCoord(
|
||||
UINT_64 offsetHi;
|
||||
UINT_64 groupMask;
|
||||
|
||||
|
||||
UINT_32 elemBits = 0;
|
||||
|
||||
UINT_32 numPipes = m_pipes; // This function is accessed prior to si only
|
||||
@@ -3346,6 +3358,7 @@ VOID Lib::PadDimensions(
|
||||
heightAlign);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::HwlPreHandleBaseLvl3xPitch
|
||||
@@ -3407,6 +3420,7 @@ UINT_32 Lib::HwlPostHandleBaseLvl3xPitch(
|
||||
return expPitch;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::IsMacroTiled
|
||||
@@ -3927,6 +3941,7 @@ VOID Lib::ComputeQbStereoInfo(
|
||||
// 1D surface on SI may break this rule, but we can force it to meet by checking .qbStereo.
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* Lib::ComputePrtInfo
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2016 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -354,6 +354,7 @@ protected:
|
||||
const ADDR_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
UINT_32* pPitchAlign, UINT_32* pHeightAlign, UINT_32* pSizeAlign) const = 0;
|
||||
|
||||
|
||||
virtual VOID HwlOverrideTileMode(ADDR_COMPUTE_SURFACE_INFO_INPUT* pInOut) const
|
||||
{
|
||||
// not supported in hwl layer
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -113,17 +113,19 @@ Lib* Lib::GetLib(
|
||||
if ((pAddrLib != NULL) &&
|
||||
(pAddrLib->GetChipFamily() <= ADDR_CHIP_FAMILY_VI))
|
||||
{
|
||||
// only valid and GFX9+ ASIC can use AddrLib2 function.
|
||||
// only valid and GFX9+ AISC can use AddrLib2 function.
|
||||
ADDR_ASSERT_ALWAYS();
|
||||
hLib = NULL;
|
||||
}
|
||||
return static_cast<Lib*>(hLib);
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Surface Methods
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/**
|
||||
************************************************************************************************************************
|
||||
* Lib::ComputeSurfaceInfo
|
||||
@@ -415,6 +417,7 @@ ADDR_E_RETURNCODE Lib::ComputeSurfaceCoordFromAddr(
|
||||
return returnCode;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// CMASK/HTILE
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -830,6 +833,10 @@ ADDR_E_RETURNCODE Lib::ComputePipeBankXor(
|
||||
{
|
||||
returnCode = ADDR_INVALIDPARAMS;
|
||||
}
|
||||
else if (IsXor(pIn->swizzleMode) == FALSE)
|
||||
{
|
||||
returnCode = ADDR_NOTSUPPORTED;
|
||||
}
|
||||
else
|
||||
{
|
||||
returnCode = HwlComputePipeBankXor(pIn, pOut);
|
||||
@@ -1878,6 +1885,7 @@ VOID Lib::ComputeQbStereoInfo(
|
||||
pOut->surfSize <<= 1;
|
||||
}
|
||||
|
||||
|
||||
} // V2
|
||||
} // Addr
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -83,39 +83,6 @@ struct Dim3d
|
||||
UINT_32 d;
|
||||
};
|
||||
|
||||
// Macro define resource block type
|
||||
enum AddrBlockType
|
||||
{
|
||||
AddrBlockMicro = 0, // Resource uses 256B block
|
||||
AddrBlock4KB = 1, // Resource uses 4KB block
|
||||
AddrBlock64KB = 2, // Resource uses 64KB block
|
||||
AddrBlockVar = 3, // Resource uses var block, only valid for GFX9
|
||||
AddrBlockLinear = 4, // Resource uses linear swizzle mode
|
||||
|
||||
AddrBlockMaxTiledType = AddrBlock64KB + 1,
|
||||
};
|
||||
|
||||
enum AddrBlockSet
|
||||
{
|
||||
AddrBlockSetMicro = 1 << AddrBlockMicro,
|
||||
AddrBlockSetMacro4KB = 1 << AddrBlock4KB,
|
||||
AddrBlockSetMacro64KB = 1 << AddrBlock64KB,
|
||||
AddrBlockSetVar = 1 << AddrBlockVar,
|
||||
AddrBlockSetLinear = 1 << AddrBlockLinear,
|
||||
|
||||
AddrBlockSetMacro = AddrBlockSetMacro4KB | AddrBlockSetMacro64KB,
|
||||
};
|
||||
|
||||
enum AddrSwSet
|
||||
{
|
||||
AddrSwSetZ = 1 << ADDR_SW_Z,
|
||||
AddrSwSetS = 1 << ADDR_SW_S,
|
||||
AddrSwSetD = 1 << ADDR_SW_D,
|
||||
AddrSwSetR = 1 << ADDR_SW_R,
|
||||
|
||||
AddrSwSetAll = AddrSwSetZ | AddrSwSetS | AddrSwSetD | AddrSwSetR,
|
||||
};
|
||||
|
||||
/**
|
||||
************************************************************************************************************************
|
||||
* @brief This class contains asic independent address lib functionalities
|
||||
@@ -223,7 +190,6 @@ protected:
|
||||
Lib(const Client* pClient);
|
||||
|
||||
static const UINT_32 MaxNumOfBpp = 5;
|
||||
static const UINT_32 MaxNumOfAA = 4;
|
||||
|
||||
static const Dim2d Block256_2d[MaxNumOfBpp];
|
||||
static const Dim3d Block1K_3d[MaxNumOfBpp];
|
||||
@@ -270,21 +236,6 @@ protected:
|
||||
return m_swizzleModeTable[swizzleMode].isZ;
|
||||
}
|
||||
|
||||
BOOL_32 IsStandardSwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isStd;
|
||||
}
|
||||
|
||||
BOOL_32 IsDisplaySwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isDisp;
|
||||
}
|
||||
|
||||
BOOL_32 IsRotateSwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isRot;
|
||||
}
|
||||
|
||||
BOOL_32 IsStandardSwizzle(AddrResourceType resourceType, AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return HwlIsStandardSwizzle(resourceType, swizzleMode);
|
||||
@@ -295,6 +246,11 @@ protected:
|
||||
return HwlIsDisplaySwizzle(resourceType, swizzleMode);
|
||||
}
|
||||
|
||||
BOOL_32 IsRotateSwizzle(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isRot;
|
||||
}
|
||||
|
||||
BOOL_32 IsXor(AddrSwizzleMode swizzleMode) const
|
||||
{
|
||||
return m_swizzleModeTable[swizzleMode].isXor;
|
||||
@@ -540,6 +496,7 @@ protected:
|
||||
return ADDR_NOTSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
virtual ADDR_E_RETURNCODE HwlComputeSubResourceOffsetForSwizzlePattern(
|
||||
const ADDR2_COMPUTE_SUBRESOURCE_OFFSET_FORSWIZZLEPATTERN_INPUT* pIn,
|
||||
ADDR2_COMPUTE_SUBRESOURCE_OFFSET_FORSWIZZLEPATTERN_OUTPUT* pOut) const
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
10535
src/amd/addrlib/gfx9/chip/gfx9_enum.h
Normal file
10535
src/amd/addrlib/gfx9/chip/gfx9_enum.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -28,11 +28,6 @@
|
||||
#include "addrcommon.h"
|
||||
#include "coord.h"
|
||||
|
||||
namespace Addr
|
||||
{
|
||||
namespace V2
|
||||
{
|
||||
|
||||
Coordinate::Coordinate()
|
||||
{
|
||||
dim = 'x';
|
||||
@@ -710,5 +705,3 @@ BOOL_32 CoordEq::operator!=(const CoordEq& b)
|
||||
return !(*this == b);
|
||||
}
|
||||
|
||||
} // V2
|
||||
} // Addr
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -29,11 +29,6 @@
|
||||
#ifndef __COORD_H
|
||||
#define __COORD_H
|
||||
|
||||
namespace Addr
|
||||
{
|
||||
namespace V2
|
||||
{
|
||||
|
||||
class Coordinate
|
||||
{
|
||||
public:
|
||||
@@ -115,8 +110,5 @@ private:
|
||||
CoordTerm m_eq[MaxEqBits];
|
||||
};
|
||||
|
||||
} // V2
|
||||
} // Addr
|
||||
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -57,7 +57,6 @@ struct Gfx9ChipSettings
|
||||
UINT_32 isRaven : 1;
|
||||
UINT_32 isVega12 : 1;
|
||||
UINT_32 isVega20 : 1;
|
||||
UINT_32 reserved0 : 27;
|
||||
|
||||
// Display engine IP version name
|
||||
UINT_32 isDce12 : 1;
|
||||
@@ -85,155 +84,6 @@ enum Gfx9DataType
|
||||
Gfx9DataFmask
|
||||
};
|
||||
|
||||
const UINT_32 Gfx9LinearSwModeMask = (1u << ADDR_SW_LINEAR);
|
||||
|
||||
const UINT_32 Gfx9Blk256BSwModeMask = (1u << ADDR_SW_256B_S) |
|
||||
(1u << ADDR_SW_256B_D) |
|
||||
(1u << ADDR_SW_256B_R);
|
||||
|
||||
const UINT_32 Gfx9Blk4KBSwModeMask = (1u << ADDR_SW_4KB_Z) |
|
||||
(1u << ADDR_SW_4KB_S) |
|
||||
(1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_4KB_R) |
|
||||
(1u << ADDR_SW_4KB_Z_X) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_4KB_R_X);
|
||||
|
||||
const UINT_32 Gfx9Blk64KBSwModeMask = (1u << ADDR_SW_64KB_Z) |
|
||||
(1u << ADDR_SW_64KB_S) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_64KB_R) |
|
||||
(1u << ADDR_SW_64KB_Z_T) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_64KB_R_T) |
|
||||
(1u << ADDR_SW_64KB_Z_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_R_X);
|
||||
|
||||
const UINT_32 Gfx9BlkVarSwModeMask = (1u << ADDR_SW_VAR_Z) |
|
||||
(1u << ADDR_SW_VAR_S) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_VAR_R) |
|
||||
(1u << ADDR_SW_VAR_Z_X) |
|
||||
(1u << ADDR_SW_VAR_S_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Gfx9ZSwModeMask = (1u << ADDR_SW_4KB_Z) |
|
||||
(1u << ADDR_SW_64KB_Z) |
|
||||
(1u << ADDR_SW_VAR_Z) |
|
||||
(1u << ADDR_SW_64KB_Z_T) |
|
||||
(1u << ADDR_SW_4KB_Z_X) |
|
||||
(1u << ADDR_SW_64KB_Z_X) |
|
||||
(1u << ADDR_SW_VAR_Z_X);
|
||||
|
||||
const UINT_32 Gfx9StandardSwModeMask = (1u << ADDR_SW_256B_S) |
|
||||
(1u << ADDR_SW_4KB_S) |
|
||||
(1u << ADDR_SW_64KB_S) |
|
||||
(1u << ADDR_SW_VAR_S) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_VAR_S_X);
|
||||
|
||||
const UINT_32 Gfx9DisplaySwModeMask = (1u << ADDR_SW_256B_D) |
|
||||
(1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_VAR_D_X);
|
||||
|
||||
const UINT_32 Gfx9RotateSwModeMask = (1u << ADDR_SW_256B_R) |
|
||||
(1u << ADDR_SW_4KB_R) |
|
||||
(1u << ADDR_SW_64KB_R) |
|
||||
(1u << ADDR_SW_VAR_R) |
|
||||
(1u << ADDR_SW_64KB_R_T) |
|
||||
(1u << ADDR_SW_4KB_R_X) |
|
||||
(1u << ADDR_SW_64KB_R_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Gfx9XSwModeMask = (1u << ADDR_SW_4KB_Z_X) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_4KB_R_X) |
|
||||
(1u << ADDR_SW_64KB_Z_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_R_X) |
|
||||
(1u << ADDR_SW_VAR_Z_X) |
|
||||
(1u << ADDR_SW_VAR_S_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Gfx9TSwModeMask = (1u << ADDR_SW_64KB_Z_T) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_64KB_R_T);
|
||||
|
||||
const UINT_32 Gfx9XorSwModeMask = Gfx9XSwModeMask |
|
||||
Gfx9TSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9AllSwModeMask = Gfx9LinearSwModeMask |
|
||||
Gfx9ZSwModeMask |
|
||||
Gfx9StandardSwModeMask |
|
||||
Gfx9DisplaySwModeMask |
|
||||
Gfx9RotateSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc1dSwModeMask = Gfx9LinearSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc2dSwModeMask = Gfx9AllSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc3dSwModeMask = Gfx9AllSwModeMask & ~Gfx9Blk256BSwModeMask & ~Gfx9RotateSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc2dPrtSwModeMask = (Gfx9Blk4KBSwModeMask | Gfx9Blk64KBSwModeMask) & ~Gfx9XSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc3dPrtSwModeMask = Gfx9Rsrc2dPrtSwModeMask & ~Gfx9RotateSwModeMask & ~Gfx9DisplaySwModeMask;
|
||||
|
||||
const UINT_32 Gfx9Rsrc3dThinSwModeMask = Gfx9DisplaySwModeMask & ~Gfx9Blk256BSwModeMask;
|
||||
|
||||
const UINT_32 Gfx9MsaaSwModeMask = Gfx9AllSwModeMask & ~Gfx9Blk256BSwModeMask & ~Gfx9LinearSwModeMask;
|
||||
|
||||
const UINT_32 Dce12NonBpp32SwModeMask = (1u << ADDR_SW_LINEAR) |
|
||||
(1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_4KB_R) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_64KB_R) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_VAR_R) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_4KB_R_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_R_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
(1u << ADDR_SW_VAR_R_X);
|
||||
|
||||
const UINT_32 Dce12Bpp32SwModeMask = (1u << ADDR_SW_256B_D) |
|
||||
(1u << ADDR_SW_256B_R) |
|
||||
Dce12NonBpp32SwModeMask;
|
||||
|
||||
const UINT_32 Dcn1NonBpp64SwModeMask = (1u << ADDR_SW_LINEAR) |
|
||||
(1u << ADDR_SW_4KB_S) |
|
||||
(1u << ADDR_SW_64KB_S) |
|
||||
(1u << ADDR_SW_VAR_S) |
|
||||
(1u << ADDR_SW_64KB_S_T) |
|
||||
(1u << ADDR_SW_4KB_S_X) |
|
||||
(1u << ADDR_SW_64KB_S_X) |
|
||||
(1u << ADDR_SW_VAR_S_X);
|
||||
|
||||
const UINT_32 Dcn1Bpp64SwModeMask = (1u << ADDR_SW_4KB_D) |
|
||||
(1u << ADDR_SW_64KB_D) |
|
||||
(1u << ADDR_SW_VAR_D) |
|
||||
(1u << ADDR_SW_64KB_D_T) |
|
||||
(1u << ADDR_SW_4KB_D_X) |
|
||||
(1u << ADDR_SW_64KB_D_X) |
|
||||
(1u << ADDR_SW_VAR_D_X) |
|
||||
Dcn1NonBpp64SwModeMask;
|
||||
|
||||
/**
|
||||
************************************************************************************************************************
|
||||
* @brief GFX9 meta equation parameters
|
||||
@@ -272,9 +122,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();
|
||||
@@ -521,6 +368,7 @@ protected:
|
||||
return compressBlkDim;
|
||||
}
|
||||
|
||||
|
||||
static const UINT_32 MaxSeLog2 = 3;
|
||||
static const UINT_32 MaxRbPerSeLog2 = 2;
|
||||
|
||||
@@ -584,37 +432,14 @@ 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;
|
||||
|
||||
ADDR_E_RETURNCODE ComputeSurfaceLinearPadding(
|
||||
const ADDR2_COMPUTE_SURFACE_INFO_INPUT* pIn,
|
||||
UINT_32* pMipmap0PaddedWidth,
|
||||
UINT_32* pSlice0PaddedHeight,
|
||||
ADDR2_MIP_INFO* pMipInfo = NULL) const;
|
||||
|
||||
static ADDR2_BLOCK_SET GetAllowedBlockSet(ADDR2_SWMODE_SET allowedSwModeSet)
|
||||
{
|
||||
ADDR2_BLOCK_SET allowedBlockSet = {};
|
||||
|
||||
allowedBlockSet.micro = (allowedSwModeSet.value & Gfx9Blk256BSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.macro4KB = (allowedSwModeSet.value & Gfx9Blk4KBSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.macro64KB = (allowedSwModeSet.value & Gfx9Blk64KBSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.var = (allowedSwModeSet.value & Gfx9BlkVarSwModeMask) ? TRUE : FALSE;
|
||||
allowedBlockSet.linear = (allowedSwModeSet.value & Gfx9LinearSwModeMask) ? TRUE : FALSE;
|
||||
|
||||
return allowedBlockSet;
|
||||
}
|
||||
|
||||
static ADDR2_SWTYPE_SET GetAllowedSwSet(ADDR2_SWMODE_SET allowedSwModeSet)
|
||||
{
|
||||
ADDR2_SWTYPE_SET allowedSwSet = {};
|
||||
|
||||
allowedSwSet.sw_Z = (allowedSwModeSet.value & Gfx9ZSwModeMask) ? TRUE : FALSE;
|
||||
allowedSwSet.sw_S = (allowedSwModeSet.value & Gfx9StandardSwModeMask) ? TRUE : FALSE;
|
||||
allowedSwSet.sw_D = (allowedSwModeSet.value & Gfx9DisplaySwModeMask) ? TRUE : FALSE;
|
||||
allowedSwSet.sw_R = (allowedSwModeSet.value & Gfx9RotateSwModeMask) ? TRUE : FALSE;
|
||||
|
||||
return allowedSwSet;
|
||||
}
|
||||
|
||||
Gfx9ChipSettings m_settings;
|
||||
|
||||
CoordEq m_cachedMetaEq[MaxCachedMetaEq];
|
@@ -2,7 +2,7 @@
|
||||
#define __GFX9_GB_REG_H__
|
||||
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -2,7 +2,7 @@
|
||||
#define __SI_GB_REG_H__
|
||||
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -19,33 +19,35 @@
|
||||
# SOFTWARE.
|
||||
|
||||
files_addrlib = files(
|
||||
'inc/addrinterface.h',
|
||||
'inc/addrtypes.h',
|
||||
'src/addrinterface.cpp',
|
||||
'src/core/addrcommon.h',
|
||||
'src/core/addrelemlib.cpp',
|
||||
'src/core/addrelemlib.h',
|
||||
'src/core/addrlib.cpp',
|
||||
'src/core/addrlib.h',
|
||||
'src/core/addrlib1.cpp',
|
||||
'src/core/addrlib1.h',
|
||||
'src/core/addrlib2.cpp',
|
||||
'src/core/addrlib2.h',
|
||||
'src/core/addrobject.cpp',
|
||||
'src/core/addrobject.h',
|
||||
'src/core/coord.cpp',
|
||||
'src/core/coord.h',
|
||||
'src/gfx9/gfx9addrlib.cpp',
|
||||
'src/gfx9/gfx9addrlib.h',
|
||||
'src/amdgpu_asic_addr.h',
|
||||
'src/chip/gfx9/gfx9_gb_reg.h',
|
||||
'src/chip/r800/si_gb_reg.h',
|
||||
'src/r800/ciaddrlib.cpp',
|
||||
'src/r800/ciaddrlib.h',
|
||||
'src/r800/egbaddrlib.cpp',
|
||||
'src/r800/egbaddrlib.h',
|
||||
'src/r800/siaddrlib.cpp',
|
||||
'src/r800/siaddrlib.h',
|
||||
'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',
|
||||
'amdgpu_asic_addr.h',
|
||||
'inc/chip/gfx9/gfx9_gb_reg.h',
|
||||
'inc/chip/r800/si_gb_reg.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(
|
||||
@@ -53,7 +55,7 @@ libamdgpu_addrlib = static_library(
|
||||
files_addrlib,
|
||||
include_directories : [
|
||||
include_directories(
|
||||
'inc', 'src', 'src/core', 'src/chip/gfx9', 'src/chip/r800',
|
||||
'core', 'inc/chip/gfx9', 'inc/chip/r800', 'gfx9/chip', 'r800/chip',
|
||||
),
|
||||
inc_amd_common, inc_common, inc_src,
|
||||
],
|
||||
|
40
src/amd/addrlib/r800/chip/si_ci_vi_merged_enum.h
Normal file
40
src/amd/addrlib/r800/chip/si_ci_vi_merged_enum.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sub license, 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 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
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
|
||||
* AND/OR ITS SUPPLIERS 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.
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial portions
|
||||
* of the Software.
|
||||
*/
|
||||
#if !defined (SI_CI_VI_MERGED_ENUM_HEADER)
|
||||
#define SI_CI_VI_MERGED_ENUM_HEADER
|
||||
|
||||
typedef enum PipeInterleaveSize {
|
||||
ADDR_CONFIG_PIPE_INTERLEAVE_256B = 0x00000000,
|
||||
ADDR_CONFIG_PIPE_INTERLEAVE_512B = 0x00000001,
|
||||
} PipeInterleaveSize;
|
||||
|
||||
typedef enum RowSize {
|
||||
ADDR_CONFIG_1KB_ROW = 0x00000000,
|
||||
ADDR_CONFIG_2KB_ROW = 0x00000001,
|
||||
ADDR_CONFIG_4KB_ROW = 0x00000002,
|
||||
} RowSize;
|
||||
|
||||
#endif
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -1038,6 +1038,7 @@ VOID CiLib::HwlOverrideTileMode(
|
||||
{
|
||||
switch (pInOut->format)
|
||||
{
|
||||
// see //gfxip/gcB/devel/cds/src/verif/tc/models/csim/tcp.cpp
|
||||
// tcpError("Thick micro tiling is not supported for format...
|
||||
case ADDR_FMT_X24_8_32_FLOAT:
|
||||
case ADDR_FMT_32_AS_8:
|
||||
@@ -2032,6 +2033,7 @@ UINT_64 CiLib::HwlComputeMetadataNibbleAddress(
|
||||
/// NOTE *2 because we are converting to Nibble address in this step
|
||||
UINT_64 metaAddressInPipe = blockInBankpipeWithBankBits * 2 * metadataBitSize / 8;
|
||||
|
||||
|
||||
///--------------------------------------------------------------------------------------------
|
||||
/// Reinsert pipe bits back into the final address
|
||||
///--------------------------------------------------------------------------------------------
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -151,14 +151,12 @@ protected:
|
||||
UINT_32 mipLevel, UINT_32 numSamples, ADDR_COMPUTE_SURFACE_INFO_OUTPUT* pOut) const;
|
||||
|
||||
private:
|
||||
|
||||
VOID ReadGbTileMode(
|
||||
UINT_32 regValue, TileConfig* pCfg) const;
|
||||
|
||||
VOID ReadGbMacroTileCfg(
|
||||
UINT_32 regValue, ADDR_TILEINFO* pCfg) const;
|
||||
|
||||
private:
|
||||
BOOL_32 InitTileSettingTable(
|
||||
const UINT_32 *pSetting, UINT_32 noOfEntries);
|
||||
|
||||
@@ -199,3 +197,5 @@ private:
|
||||
} // Addr
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -436,6 +436,7 @@ BOOL_32 EgBasedLib::ComputeSurfaceInfoMicroTiled(
|
||||
&expPitch,
|
||||
&expHeight);
|
||||
|
||||
|
||||
pOut->pitch = expPitch;
|
||||
pOut->height = expHeight;
|
||||
pOut->depth = expNumSlices;
|
||||
@@ -447,6 +448,7 @@ BOOL_32 EgBasedLib::ComputeSurfaceInfoMicroTiled(
|
||||
return valid;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeSurfaceInfoMacroTiled
|
||||
@@ -753,6 +755,7 @@ BOOL_32 EgBasedLib::ComputeSurfaceAlignmentsMicroTiled(
|
||||
return valid;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::HwlReduceBankWidthHeight
|
||||
@@ -1814,6 +1817,7 @@ UINT_64 EgBasedLib::ComputeSurfaceAddrFromCoordMacroTiled(
|
||||
tileSplitSlice,
|
||||
pTileInfo);
|
||||
|
||||
|
||||
//
|
||||
// Split the offset to put some bits below the pipe+bank bits and some above.
|
||||
//
|
||||
@@ -2157,6 +2161,7 @@ VOID EgBasedLib::HwlComputePixelCoordFromOffset(
|
||||
*pSlice += z;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::DispatchComputeSurfaceCoordFromAddrDispatch
|
||||
@@ -2301,6 +2306,7 @@ VOID EgBasedLib::DispatchComputeSurfaceCoordFromAddr(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeSurfaceCoordFromAddrMacroTiled
|
||||
@@ -2345,6 +2351,7 @@ VOID EgBasedLib::ComputeSurfaceCoordFromAddrMacroTiled(
|
||||
UINT_32 tileIndex;
|
||||
UINT_64 totalOffset;
|
||||
|
||||
|
||||
UINT_32 bank;
|
||||
UINT_32 pipe;
|
||||
UINT_32 groupBits = m_pipeInterleaveBytes << 3;
|
||||
@@ -2666,6 +2673,7 @@ ADDR_E_RETURNCODE EgBasedLib::HwlExtractBankPipeSwizzle(
|
||||
return ADDR_OK;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::HwlCombineBankPipeSwizzle
|
||||
@@ -3035,6 +3043,7 @@ UINT_32 EgBasedLib::ComputeBankFromCoord(
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Compute bank rotation for the tile split slice.
|
||||
//
|
||||
@@ -3132,6 +3141,8 @@ UINT_32 EgBasedLib::ComputePipeRotation(
|
||||
return rotation;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeBankRotation
|
||||
@@ -3174,6 +3185,7 @@ UINT_32 EgBasedLib::ComputeBankRotation(
|
||||
return rotation;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************************
|
||||
* EgBasedLib::ComputeHtileBytes
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright © 2007-2018 Advanced Micro Devices, Inc.
|
||||
* Copyright © 2014 Advanced Micro Devices, Inc.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
@@ -88,6 +88,7 @@ struct SiChipSettings
|
||||
UINT_32 isPolaris11 : 1;
|
||||
UINT_32 isPolaris12 : 1;
|
||||
UINT_32 isVegaM : 1;
|
||||
// VI fusion
|
||||
UINT_32 isCarrizo : 1;
|
||||
};
|
||||
|
@@ -233,7 +233,6 @@ static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
if (op == PKT3_SET_CONTEXT_REG ||
|
||||
op == PKT3_SET_CONFIG_REG ||
|
||||
op == PKT3_SET_UCONFIG_REG ||
|
||||
op == PKT3_SET_UCONFIG_REG_INDEX ||
|
||||
op == PKT3_SET_SH_REG)
|
||||
fprintf(f, COLOR_CYAN "%s%s" COLOR_CYAN ":\n",
|
||||
name, predicate);
|
||||
@@ -253,7 +252,6 @@ static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib,
|
||||
ac_parse_set_reg_packet(f, count, SI_CONFIG_REG_OFFSET, ib);
|
||||
break;
|
||||
case PKT3_SET_UCONFIG_REG:
|
||||
case PKT3_SET_UCONFIG_REG_INDEX:
|
||||
ac_parse_set_reg_packet(f, count, CIK_UCONFIG_REG_OFFSET, ib);
|
||||
break;
|
||||
case PKT3_SET_SH_REG:
|
||||
|
@@ -455,7 +455,7 @@ bool ac_query_gpu_info(int fd, amdgpu_device_handle dev,
|
||||
ib_align = MAX2(ib_align, vcn_dec.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_enc.ib_start_alignment);
|
||||
ib_align = MAX2(ib_align, vcn_jpeg.ib_start_alignment);
|
||||
assert(ib_align);
|
||||
assert(ib_align);
|
||||
info->ib_start_alignment = ib_align;
|
||||
|
||||
return true;
|
||||
|
@@ -75,7 +75,7 @@ ac_llvm_context_init(struct ac_llvm_context *ctx,
|
||||
ctx->i16 = LLVMIntTypeInContext(ctx->context, 16);
|
||||
ctx->i32 = LLVMIntTypeInContext(ctx->context, 32);
|
||||
ctx->i64 = LLVMIntTypeInContext(ctx->context, 64);
|
||||
ctx->intptr = ctx->i32;
|
||||
ctx->intptr = HAVE_32BIT_POINTERS ? ctx->i32 : ctx->i64;
|
||||
ctx->f16 = LLVMHalfTypeInContext(ctx->context);
|
||||
ctx->f32 = LLVMFloatTypeInContext(ctx->context);
|
||||
ctx->f64 = LLVMDoubleTypeInContext(ctx->context);
|
||||
@@ -229,15 +229,6 @@ ac_to_integer(struct ac_llvm_context *ctx, LLVMValueRef v)
|
||||
return LLVMBuildBitCast(ctx->builder, v, ac_to_integer_type(ctx, type), "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_to_integer_or_pointer(struct ac_llvm_context *ctx, LLVMValueRef v)
|
||||
{
|
||||
LLVMTypeRef type = LLVMTypeOf(v);
|
||||
if (LLVMGetTypeKind(type) == LLVMPointerTypeKind)
|
||||
return v;
|
||||
return ac_to_integer(ctx, v);
|
||||
}
|
||||
|
||||
static LLVMTypeRef to_float_type_scalar(struct ac_llvm_context *ctx, LLVMTypeRef t)
|
||||
{
|
||||
if (t == ctx->i16 || t == ctx->f16)
|
||||
@@ -905,37 +896,6 @@ ac_build_fs_interp(struct ac_llvm_context *ctx,
|
||||
ctx->f32, args, 5, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_f16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef llvm_chan,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j)
|
||||
{
|
||||
LLVMValueRef args[6];
|
||||
LLVMValueRef p1;
|
||||
|
||||
args[0] = i;
|
||||
args[1] = llvm_chan;
|
||||
args[2] = attr_number;
|
||||
args[3] = ctx->i1false;
|
||||
args[4] = params;
|
||||
|
||||
p1 = ac_build_intrinsic(ctx, "llvm.amdgcn.interp.p1.f16",
|
||||
ctx->f32, args, 5, AC_FUNC_ATTR_READNONE);
|
||||
|
||||
args[0] = p1;
|
||||
args[1] = j;
|
||||
args[2] = llvm_chan;
|
||||
args[3] = attr_number;
|
||||
args[4] = ctx->i1false;
|
||||
args[5] = params;
|
||||
|
||||
return ac_build_intrinsic(ctx, "llvm.amdgcn.interp.p2.f16",
|
||||
ctx->f16, args, 6, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef parameter,
|
||||
@@ -954,14 +914,6 @@ ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
ctx->f32, args, 4, AC_FUNC_ATTR_READNONE);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep_ptr(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
LLVMValueRef index)
|
||||
{
|
||||
return LLVMBuildGEP(ctx->builder, base_ptr, &index, 1, "");
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep0(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
@@ -1209,47 +1161,6 @@ ac_build_buffer_load_common(struct ac_llvm_context *ctx,
|
||||
ac_get_load_intr_attribs(can_speculate));
|
||||
}
|
||||
|
||||
static LLVMValueRef
|
||||
ac_build_llvm8_buffer_load_common(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
LLVMValueRef vindex,
|
||||
LLVMValueRef voffset,
|
||||
LLVMValueRef soffset,
|
||||
unsigned num_channels,
|
||||
bool glc,
|
||||
bool slc,
|
||||
bool can_speculate,
|
||||
bool use_format,
|
||||
bool structurized)
|
||||
{
|
||||
LLVMValueRef args[5];
|
||||
int idx = 0;
|
||||
args[idx++] = LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, "");
|
||||
if (structurized)
|
||||
args[idx++] = vindex ? vindex : ctx->i32_0;
|
||||
args[idx++] = voffset ? voffset : ctx->i32_0;
|
||||
args[idx++] = soffset ? soffset : ctx->i32_0;
|
||||
args[idx++] = LLVMConstInt(ctx->i32, (glc ? 1 : 0) + (slc ? 2 : 0), 0);
|
||||
unsigned func = CLAMP(num_channels, 1, 3) - 1;
|
||||
|
||||
LLVMTypeRef types[] = {ctx->f32, ctx->v2f32, ctx->v4f32};
|
||||
const char *type_names[] = {"f32", "v2f32", "v4f32"};
|
||||
const char *indexing_kind = structurized ? "struct" : "raw";
|
||||
char name[256];
|
||||
|
||||
if (use_format) {
|
||||
snprintf(name, sizeof(name), "llvm.amdgcn.%s.buffer.load.format.%s",
|
||||
indexing_kind, type_names[func]);
|
||||
} else {
|
||||
snprintf(name, sizeof(name), "llvm.amdgcn.%s.buffer.load.%s",
|
||||
indexing_kind, type_names[func]);
|
||||
}
|
||||
|
||||
return ac_build_intrinsic(ctx, name, types[func], args,
|
||||
idx,
|
||||
ac_get_load_intr_attribs(can_speculate));
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef rsrc,
|
||||
@@ -1269,8 +1180,8 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
if (soffset)
|
||||
offset = LLVMBuildAdd(ctx->builder, offset, soffset, "");
|
||||
|
||||
if (allow_smem && !slc &&
|
||||
(!glc || (HAVE_LLVM >= 0x0800 && ctx->chip_class >= VI))) {
|
||||
/* TODO: VI and later generations can use SMEM with GLC=1.*/
|
||||
if (allow_smem && !glc && !slc) {
|
||||
assert(vindex == NULL);
|
||||
|
||||
LLVMValueRef result[8];
|
||||
@@ -1280,19 +1191,11 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
|
||||
offset = LLVMBuildAdd(ctx->builder, offset,
|
||||
LLVMConstInt(ctx->i32, 4, 0), "");
|
||||
}
|
||||
const char *intrname =
|
||||
HAVE_LLVM >= 0x0800 ? "llvm.amdgcn.s.buffer.load.f32"
|
||||
: "llvm.SI.load.const.v4i32";
|
||||
unsigned num_args = HAVE_LLVM >= 0x0800 ? 3 : 2;
|
||||
LLVMValueRef args[3] = {
|
||||
rsrc,
|
||||
offset,
|
||||
glc ? ctx->i32_1 : ctx->i32_0,
|
||||
};
|
||||
result[i] = ac_build_intrinsic(ctx, intrname,
|
||||
ctx->f32, args, num_args,
|
||||
LLVMValueRef args[2] = {rsrc, offset};
|
||||
result[i] = ac_build_intrinsic(ctx, "llvm.SI.load.const.v4i32",
|
||||
ctx->f32, args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
(HAVE_LLVM < 0x0800 ? AC_FUNC_ATTR_LEGACY : 0));
|
||||
AC_FUNC_ATTR_LEGACY);
|
||||
}
|
||||
if (num_channels == 1)
|
||||
return result[0];
|
||||
@@ -1315,11 +1218,6 @@ LLVMValueRef ac_build_buffer_load_format(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool can_speculate)
|
||||
{
|
||||
if (HAVE_LLVM >= 0x800) {
|
||||
return ac_build_llvm8_buffer_load_common(ctx, rsrc, vindex, voffset, ctx->i32_0,
|
||||
num_channels, glc, false,
|
||||
can_speculate, true, true);
|
||||
}
|
||||
return ac_build_buffer_load_common(ctx, rsrc, vindex, voffset,
|
||||
num_channels, glc, false,
|
||||
can_speculate, true);
|
||||
@@ -1333,12 +1231,6 @@ LLVMValueRef ac_build_buffer_load_format_gfx9_safe(struct ac_llvm_context *ctx,
|
||||
bool glc,
|
||||
bool can_speculate)
|
||||
{
|
||||
if (HAVE_LLVM >= 0x800) {
|
||||
return ac_build_llvm8_buffer_load_common(ctx, rsrc, vindex, voffset, ctx->i32_0,
|
||||
num_channels, glc, false,
|
||||
can_speculate, true, true);
|
||||
}
|
||||
|
||||
LLVMValueRef elem_count = LLVMBuildExtractElement(ctx->builder, rsrc, LLVMConstInt(ctx->i32, 2, 0), "");
|
||||
LLVMValueRef stride = LLVMBuildExtractElement(ctx->builder, rsrc, ctx->i32_1, "");
|
||||
stride = LLVMBuildLShr(ctx->builder, stride, LLVMConstInt(ctx->i32, 16, 0), "");
|
||||
@@ -1450,28 +1342,99 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
|
||||
int idx,
|
||||
LLVMValueRef val)
|
||||
{
|
||||
unsigned tl_lanes[4], trbl_lanes[4];
|
||||
LLVMValueRef tl, trbl;
|
||||
LLVMValueRef tl, trbl, args[2];
|
||||
LLVMValueRef result;
|
||||
|
||||
for (unsigned i = 0; i < 4; ++i) {
|
||||
tl_lanes[i] = i & mask;
|
||||
trbl_lanes[i] = (i & mask) + idx;
|
||||
}
|
||||
if (HAVE_LLVM >= 0x0700) {
|
||||
unsigned tl_lanes[4], trbl_lanes[4];
|
||||
|
||||
tl = ac_build_quad_swizzle(ctx, val,
|
||||
tl_lanes[0], tl_lanes[1],
|
||||
tl_lanes[2], tl_lanes[3]);
|
||||
trbl = ac_build_quad_swizzle(ctx, val,
|
||||
trbl_lanes[0], trbl_lanes[1],
|
||||
trbl_lanes[2], trbl_lanes[3]);
|
||||
for (unsigned i = 0; i < 4; ++i) {
|
||||
tl_lanes[i] = i & mask;
|
||||
trbl_lanes[i] = (i & mask) + idx;
|
||||
}
|
||||
|
||||
tl = ac_build_quad_swizzle(ctx, val,
|
||||
tl_lanes[0], tl_lanes[1],
|
||||
tl_lanes[2], tl_lanes[3]);
|
||||
trbl = ac_build_quad_swizzle(ctx, val,
|
||||
trbl_lanes[0], trbl_lanes[1],
|
||||
trbl_lanes[2], trbl_lanes[3]);
|
||||
} else if (ctx->chip_class >= VI) {
|
||||
LLVMValueRef thread_id, tl_tid, trbl_tid;
|
||||
thread_id = ac_get_thread_id(ctx);
|
||||
|
||||
tl_tid = LLVMBuildAnd(ctx->builder, thread_id,
|
||||
LLVMConstInt(ctx->i32, mask, false), "");
|
||||
|
||||
trbl_tid = LLVMBuildAdd(ctx->builder, tl_tid,
|
||||
LLVMConstInt(ctx->i32, idx, false), "");
|
||||
|
||||
args[0] = LLVMBuildMul(ctx->builder, tl_tid,
|
||||
LLVMConstInt(ctx->i32, 4, false), "");
|
||||
args[1] = val;
|
||||
tl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.bpermute", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
|
||||
args[0] = LLVMBuildMul(ctx->builder, trbl_tid,
|
||||
LLVMConstInt(ctx->i32, 4, false), "");
|
||||
trbl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.bpermute", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
} else {
|
||||
uint32_t masks[2] = {};
|
||||
|
||||
switch (mask) {
|
||||
case AC_TID_MASK_TOP_LEFT:
|
||||
masks[0] = 0x8000;
|
||||
if (idx == 1)
|
||||
masks[1] = 0x8055;
|
||||
else
|
||||
masks[1] = 0x80aa;
|
||||
|
||||
break;
|
||||
case AC_TID_MASK_TOP:
|
||||
masks[0] = 0x8044;
|
||||
masks[1] = 0x80ee;
|
||||
break;
|
||||
case AC_TID_MASK_LEFT:
|
||||
masks[0] = 0x80a0;
|
||||
masks[1] = 0x80f5;
|
||||
break;
|
||||
default:
|
||||
assert(0);
|
||||
}
|
||||
|
||||
args[0] = val;
|
||||
args[1] = LLVMConstInt(ctx->i32, masks[0], false);
|
||||
|
||||
tl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.swizzle", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
|
||||
args[1] = LLVMConstInt(ctx->i32, masks[1], false);
|
||||
trbl = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.ds.swizzle", ctx->i32,
|
||||
args, 2,
|
||||
AC_FUNC_ATTR_READNONE |
|
||||
AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
tl = LLVMBuildBitCast(ctx->builder, tl, ctx->f32, "");
|
||||
trbl = LLVMBuildBitCast(ctx->builder, trbl, ctx->f32, "");
|
||||
result = LLVMBuildFSub(ctx->builder, trbl, tl, "");
|
||||
|
||||
result = ac_build_intrinsic(ctx, "llvm.amdgcn.wqm.f32", ctx->f32,
|
||||
&result, 1, 0);
|
||||
if (HAVE_LLVM >= 0x0700) {
|
||||
result = ac_build_intrinsic(ctx,
|
||||
"llvm.amdgcn.wqm.f32", ctx->f32,
|
||||
&result, 1, 0);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -1716,6 +1679,171 @@ static const char *get_atomic_name(enum ac_atomic_op op)
|
||||
unreachable("bad atomic op");
|
||||
}
|
||||
|
||||
/* LLVM 6 and older */
|
||||
static LLVMValueRef ac_build_image_opcode_llvm6(struct ac_llvm_context *ctx,
|
||||
struct ac_image_args *a)
|
||||
{
|
||||
LLVMValueRef args[16];
|
||||
LLVMTypeRef retty = ctx->v4f32;
|
||||
const char *name = NULL;
|
||||
const char *atomic_subop = "";
|
||||
char intr_name[128], coords_type[64];
|
||||
|
||||
bool sample = a->opcode == ac_image_sample ||
|
||||
a->opcode == ac_image_gather4 ||
|
||||
a->opcode == ac_image_get_lod;
|
||||
bool atomic = a->opcode == ac_image_atomic ||
|
||||
a->opcode == ac_image_atomic_cmpswap;
|
||||
bool da = a->dim == ac_image_cube ||
|
||||
a->dim == ac_image_1darray ||
|
||||
a->dim == ac_image_2darray ||
|
||||
a->dim == ac_image_2darraymsaa;
|
||||
if (a->opcode == ac_image_get_lod)
|
||||
da = false;
|
||||
|
||||
unsigned num_coords =
|
||||
a->opcode != ac_image_get_resinfo ? ac_num_coords(a->dim) : 0;
|
||||
LLVMValueRef addr;
|
||||
unsigned num_addr = 0;
|
||||
|
||||
if (a->opcode == ac_image_get_lod) {
|
||||
switch (a->dim) {
|
||||
case ac_image_1darray:
|
||||
num_coords = 1;
|
||||
break;
|
||||
case ac_image_2darray:
|
||||
case ac_image_cube:
|
||||
num_coords = 2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (a->offset)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->offset);
|
||||
if (a->bias)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->bias);
|
||||
if (a->compare)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->compare);
|
||||
if (a->derivs[0]) {
|
||||
unsigned num_derivs = ac_num_derivs(a->dim);
|
||||
for (unsigned i = 0; i < num_derivs; ++i)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->derivs[i]);
|
||||
}
|
||||
for (unsigned i = 0; i < num_coords; ++i)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->coords[i]);
|
||||
if (a->lod)
|
||||
args[num_addr++] = ac_to_integer(ctx, a->lod);
|
||||
|
||||
unsigned pad_goal = util_next_power_of_two(num_addr);
|
||||
while (num_addr < pad_goal)
|
||||
args[num_addr++] = LLVMGetUndef(ctx->i32);
|
||||
|
||||
addr = ac_build_gather_values(ctx, args, num_addr);
|
||||
|
||||
unsigned num_args = 0;
|
||||
if (atomic || a->opcode == ac_image_store || a->opcode == ac_image_store_mip) {
|
||||
args[num_args++] = a->data[0];
|
||||
if (a->opcode == ac_image_atomic_cmpswap)
|
||||
args[num_args++] = a->data[1];
|
||||
}
|
||||
|
||||
unsigned coords_arg = num_args;
|
||||
if (sample)
|
||||
args[num_args++] = ac_to_float(ctx, addr);
|
||||
else
|
||||
args[num_args++] = ac_to_integer(ctx, addr);
|
||||
|
||||
args[num_args++] = a->resource;
|
||||
if (sample)
|
||||
args[num_args++] = a->sampler;
|
||||
if (!atomic) {
|
||||
args[num_args++] = LLVMConstInt(ctx->i32, a->dmask, 0);
|
||||
if (sample)
|
||||
args[num_args++] = LLVMConstInt(ctx->i1, a->unorm, 0);
|
||||
args[num_args++] = a->cache_policy & ac_glc ? ctx->i1true : ctx->i1false;
|
||||
args[num_args++] = a->cache_policy & ac_slc ? ctx->i1true : ctx->i1false;
|
||||
args[num_args++] = ctx->i1false; /* lwe */
|
||||
args[num_args++] = LLVMConstInt(ctx->i1, da, 0);
|
||||
} else {
|
||||
args[num_args++] = ctx->i1false; /* r128 */
|
||||
args[num_args++] = LLVMConstInt(ctx->i1, da, 0);
|
||||
args[num_args++] = a->cache_policy & ac_slc ? ctx->i1true : ctx->i1false;
|
||||
}
|
||||
|
||||
switch (a->opcode) {
|
||||
case ac_image_sample:
|
||||
name = "llvm.amdgcn.image.sample";
|
||||
break;
|
||||
case ac_image_gather4:
|
||||
name = "llvm.amdgcn.image.gather4";
|
||||
break;
|
||||
case ac_image_load:
|
||||
name = "llvm.amdgcn.image.load";
|
||||
break;
|
||||
case ac_image_load_mip:
|
||||
name = "llvm.amdgcn.image.load.mip";
|
||||
break;
|
||||
case ac_image_store:
|
||||
name = "llvm.amdgcn.image.store";
|
||||
retty = ctx->voidt;
|
||||
break;
|
||||
case ac_image_store_mip:
|
||||
name = "llvm.amdgcn.image.store.mip";
|
||||
retty = ctx->voidt;
|
||||
break;
|
||||
case ac_image_atomic:
|
||||
case ac_image_atomic_cmpswap:
|
||||
name = "llvm.amdgcn.image.atomic.";
|
||||
retty = ctx->i32;
|
||||
if (a->opcode == ac_image_atomic_cmpswap) {
|
||||
atomic_subop = "cmpswap";
|
||||
} else {
|
||||
atomic_subop = get_atomic_name(a->atomic);
|
||||
}
|
||||
break;
|
||||
case ac_image_get_lod:
|
||||
name = "llvm.amdgcn.image.getlod";
|
||||
break;
|
||||
case ac_image_get_resinfo:
|
||||
name = "llvm.amdgcn.image.getresinfo";
|
||||
break;
|
||||
default:
|
||||
unreachable("invalid image opcode");
|
||||
}
|
||||
|
||||
ac_build_type_name_for_intr(LLVMTypeOf(args[coords_arg]), coords_type,
|
||||
sizeof(coords_type));
|
||||
|
||||
if (atomic) {
|
||||
snprintf(intr_name, sizeof(intr_name), "llvm.amdgcn.image.atomic.%s.%s",
|
||||
atomic_subop, coords_type);
|
||||
} else {
|
||||
bool lod_suffix =
|
||||
a->lod && (a->opcode == ac_image_sample || a->opcode == ac_image_gather4);
|
||||
|
||||
snprintf(intr_name, sizeof(intr_name), "%s%s%s%s.v4f32.%s.v8i32",
|
||||
name,
|
||||
a->compare ? ".c" : "",
|
||||
a->bias ? ".b" :
|
||||
lod_suffix ? ".l" :
|
||||
a->derivs[0] ? ".d" :
|
||||
a->level_zero ? ".lz" : "",
|
||||
a->offset ? ".o" : "",
|
||||
coords_type);
|
||||
}
|
||||
|
||||
LLVMValueRef result =
|
||||
ac_build_intrinsic(ctx, intr_name, retty, args, num_args,
|
||||
a->attributes);
|
||||
if (!sample && retty == ctx->v4f32) {
|
||||
result = LLVMBuildBitCast(ctx->builder, result,
|
||||
ctx->v4i32, "");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_image_opcode(struct ac_llvm_context *ctx,
|
||||
struct ac_image_args *a)
|
||||
{
|
||||
@@ -1740,6 +1868,9 @@ LLVMValueRef ac_build_image_opcode(struct ac_llvm_context *ctx,
|
||||
(a->level_zero ? 1 : 0) +
|
||||
(a->derivs[0] ? 1 : 0) <= 1);
|
||||
|
||||
if (HAVE_LLVM < 0x0700)
|
||||
return ac_build_image_opcode_llvm6(ctx, a);
|
||||
|
||||
if (a->opcode == ac_image_get_lod) {
|
||||
switch (dim) {
|
||||
case ac_image_1darray:
|
||||
@@ -2528,6 +2659,9 @@ LLVMTypeRef ac_array_in_const_addr_space(LLVMTypeRef elem_type)
|
||||
|
||||
LLVMTypeRef ac_array_in_const32_addr_space(LLVMTypeRef elem_type)
|
||||
{
|
||||
if (!HAVE_32BIT_POINTERS)
|
||||
return ac_array_in_const_addr_space(elem_type);
|
||||
|
||||
return LLVMPointerType(LLVMArrayType(elem_type, 0),
|
||||
AC_ADDR_SPACE_CONST_32BIT);
|
||||
}
|
||||
@@ -2673,7 +2807,8 @@ void ac_build_endloop(struct ac_llvm_context *ctx, int label_id)
|
||||
ctx->flow_depth--;
|
||||
}
|
||||
|
||||
void ac_build_ifcc(struct ac_llvm_context *ctx, LLVMValueRef cond, int label_id)
|
||||
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;
|
||||
@@ -2690,7 +2825,7 @@ void ac_build_if(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
{
|
||||
LLVMValueRef cond = LLVMBuildFCmp(ctx->builder, LLVMRealUNE,
|
||||
value, ctx->f32_0, "");
|
||||
ac_build_ifcc(ctx, cond, label_id);
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
}
|
||||
|
||||
void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
@@ -2699,7 +2834,7 @@ void ac_build_uif(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
LLVMValueRef cond = LLVMBuildICmp(ctx->builder, LLVMIntNE,
|
||||
ac_to_integer(ctx, value),
|
||||
ctx->i32_0, "");
|
||||
ac_build_ifcc(ctx, cond, label_id);
|
||||
if_cond_emit(ctx, cond, label_id);
|
||||
}
|
||||
|
||||
LLVMValueRef ac_build_alloca_undef(struct ac_llvm_context *ac, LLVMTypeRef type,
|
||||
@@ -2747,11 +2882,9 @@ LLVMValueRef ac_trim_vector(struct ac_llvm_context *ctx, LLVMValueRef value,
|
||||
if (count == num_components)
|
||||
return value;
|
||||
|
||||
LLVMValueRef masks[MAX2(count, 2)];
|
||||
masks[0] = ctx->i32_0;
|
||||
masks[1] = ctx->i32_1;
|
||||
for (unsigned i = 2; i < count; i++)
|
||||
masks[i] = LLVMConstInt(ctx->i32, i, false);
|
||||
LLVMValueRef masks[] = {
|
||||
ctx->i32_0, ctx->i32_1,
|
||||
LLVMConstInt(ctx->i32, 2, false), LLVMConstInt(ctx->i32, 3, false)};
|
||||
|
||||
if (count == 1)
|
||||
return LLVMBuildExtractElement(ctx->builder, value, masks[0],
|
||||
@@ -3159,44 +3292,24 @@ ac_build_alu_op(struct ac_llvm_context *ctx, LLVMValueRef lhs, LLVMValueRef rhs,
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* \param maxprefix specifies that the result only needs to be correct for a
|
||||
* prefix of this many threads
|
||||
*
|
||||
* TODO: add inclusive and excluse scan functions for SI chip class.
|
||||
*/
|
||||
/* TODO: add inclusive and excluse scan functions for SI chip class. */
|
||||
static LLVMValueRef
|
||||
ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValueRef identity,
|
||||
unsigned maxprefix)
|
||||
ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValueRef identity)
|
||||
{
|
||||
LLVMValueRef result, tmp;
|
||||
result = src;
|
||||
if (maxprefix <= 1)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, src, dpp_row_sr(1), 0xf, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 2)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, src, dpp_row_sr(2), 0xf, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 3)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, src, dpp_row_sr(3), 0xf, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 4)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_sr(4), 0xf, 0xe, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 8)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_sr(8), 0xf, 0xc, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 16)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_bcast15, 0xa, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
if (maxprefix <= 32)
|
||||
return result;
|
||||
tmp = ac_build_dpp(ctx, identity, result, dpp_row_bcast31, 0xc, 0xf, false);
|
||||
result = ac_build_alu_op(ctx, result, tmp, op);
|
||||
return result;
|
||||
@@ -3205,24 +3318,14 @@ ac_build_scan(struct ac_llvm_context *ctx, nir_op op, LLVMValueRef src, LLVMValu
|
||||
LLVMValueRef
|
||||
ac_build_inclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op)
|
||||
{
|
||||
LLVMValueRef result;
|
||||
|
||||
if (LLVMTypeOf(src) == ctx->i1 && op == nir_op_iadd) {
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
src = LLVMBuildZExt(builder, src, ctx->i32, "");
|
||||
result = ac_build_ballot(ctx, src);
|
||||
result = ac_build_mbcnt(ctx, result);
|
||||
result = LLVMBuildAdd(builder, result, src, "");
|
||||
return result;
|
||||
}
|
||||
|
||||
ac_build_optimization_barrier(ctx, &src);
|
||||
|
||||
LLVMValueRef identity =
|
||||
get_reduction_identity(ctx, op, ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
result = ac_build_scan(ctx, op, result, identity, 64);
|
||||
LLVMValueRef result;
|
||||
LLVMValueRef identity = get_reduction_identity(ctx, op,
|
||||
ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder,
|
||||
ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
result = ac_build_scan(ctx, op, result, identity);
|
||||
|
||||
return ac_build_wwm(ctx, result);
|
||||
}
|
||||
@@ -3230,24 +3333,15 @@ ac_build_inclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op
|
||||
LLVMValueRef
|
||||
ac_build_exclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op)
|
||||
{
|
||||
LLVMValueRef result;
|
||||
|
||||
if (LLVMTypeOf(src) == ctx->i1 && op == nir_op_iadd) {
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
src = LLVMBuildZExt(builder, src, ctx->i32, "");
|
||||
result = ac_build_ballot(ctx, src);
|
||||
result = ac_build_mbcnt(ctx, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
ac_build_optimization_barrier(ctx, &src);
|
||||
|
||||
LLVMValueRef identity =
|
||||
get_reduction_identity(ctx, op, ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder, ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
LLVMValueRef result;
|
||||
LLVMValueRef identity = get_reduction_identity(ctx, op,
|
||||
ac_get_type_size(LLVMTypeOf(src)));
|
||||
result = LLVMBuildBitCast(ctx->builder,
|
||||
ac_build_set_inactive(ctx, src, identity),
|
||||
LLVMTypeOf(identity), "");
|
||||
result = ac_build_dpp(ctx, identity, result, dpp_wf_sr1, 0xf, 0xf, false);
|
||||
result = ac_build_scan(ctx, op, result, identity, 64);
|
||||
result = ac_build_scan(ctx, op, result, identity);
|
||||
|
||||
return ac_build_wwm(ctx, result);
|
||||
}
|
||||
@@ -3305,175 +3399,6 @@ ac_build_reduce(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op, unsign
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* "Top half" of a scan that reduces per-wave values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* The source value must be present in the highest lane of the wave, and the
|
||||
* highest lane must be live.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_wavescan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
if (ws->maxwaves <= 1)
|
||||
return;
|
||||
|
||||
const LLVMValueRef i32_63 = LLVMConstInt(ctx->i32, 63, false);
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMValueRef tid = ac_get_thread_id(ctx);
|
||||
LLVMValueRef tmp;
|
||||
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntEQ, tid, i32_63, "");
|
||||
ac_build_ifcc(ctx, tmp, 1000);
|
||||
LLVMBuildStore(builder, ws->src, LLVMBuildGEP(builder, ws->scratch, &ws->waveidx, 1, ""));
|
||||
ac_build_endif(ctx, 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* "Bottom half" of a scan that reduces per-wave values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* The caller must place a barrier between the top and bottom halves.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_wavescan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
const LLVMTypeRef type = LLVMTypeOf(ws->src);
|
||||
const LLVMValueRef identity =
|
||||
get_reduction_identity(ctx, ws->op, ac_get_type_size(type));
|
||||
|
||||
if (ws->maxwaves <= 1) {
|
||||
ws->result_reduce = ws->src;
|
||||
ws->result_inclusive = ws->src;
|
||||
ws->result_exclusive = identity;
|
||||
return;
|
||||
}
|
||||
assert(ws->maxwaves <= 32);
|
||||
|
||||
LLVMBuilderRef builder = ctx->builder;
|
||||
LLVMValueRef tid = ac_get_thread_id(ctx);
|
||||
LLVMBasicBlockRef bbs[2];
|
||||
LLVMValueRef phivalues_scan[2];
|
||||
LLVMValueRef tmp, tmp2;
|
||||
|
||||
bbs[0] = LLVMGetInsertBlock(builder);
|
||||
phivalues_scan[0] = LLVMGetUndef(type);
|
||||
|
||||
if (ws->enable_reduce)
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntULT, tid, ws->numwaves, "");
|
||||
else if (ws->enable_inclusive)
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntULE, tid, ws->waveidx, "");
|
||||
else
|
||||
tmp = LLVMBuildICmp(builder, LLVMIntULT, tid, ws->waveidx, "");
|
||||
ac_build_ifcc(ctx, tmp, 1001);
|
||||
{
|
||||
tmp = LLVMBuildLoad(builder, LLVMBuildGEP(builder, ws->scratch, &tid, 1, ""), "");
|
||||
|
||||
ac_build_optimization_barrier(ctx, &tmp);
|
||||
|
||||
bbs[1] = LLVMGetInsertBlock(builder);
|
||||
phivalues_scan[1] = ac_build_scan(ctx, ws->op, tmp, identity, ws->maxwaves);
|
||||
}
|
||||
ac_build_endif(ctx, 1001);
|
||||
|
||||
const LLVMValueRef scan = ac_build_phi(ctx, type, 2, phivalues_scan, bbs);
|
||||
|
||||
if (ws->enable_reduce) {
|
||||
tmp = LLVMBuildSub(builder, ws->numwaves, ctx->i32_1, "");
|
||||
ws->result_reduce = ac_build_readlane(ctx, scan, tmp);
|
||||
}
|
||||
if (ws->enable_inclusive)
|
||||
ws->result_inclusive = ac_build_readlane(ctx, scan, ws->waveidx);
|
||||
if (ws->enable_exclusive) {
|
||||
tmp = LLVMBuildSub(builder, ws->waveidx, ctx->i32_1, "");
|
||||
tmp = ac_build_readlane(ctx, scan, tmp);
|
||||
tmp2 = LLVMBuildICmp(builder, LLVMIntEQ, ws->waveidx, ctx->i32_0, "");
|
||||
ws->result_exclusive = LLVMBuildSelect(builder, tmp2, identity, tmp, "");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Inclusive scan of a per-wave value across an entire workgroup.
|
||||
*
|
||||
* This implies an s_barrier instruction.
|
||||
*
|
||||
* Unlike ac_build_inclusive_scan, the caller \em must ensure that all threads
|
||||
* of the workgroup are live. (This requirement cannot easily be relaxed in a
|
||||
* useful manner because of the barrier in the algorithm.)
|
||||
*/
|
||||
void
|
||||
ac_build_wg_wavescan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
ac_build_wg_wavescan_top(ctx, ws);
|
||||
ac_build_s_barrier(ctx);
|
||||
ac_build_wg_wavescan_bottom(ctx, ws);
|
||||
}
|
||||
|
||||
/**
|
||||
* "Top half" of a scan that reduces per-thread values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* All lanes must be active when this code runs.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_scan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
if (ws->enable_exclusive) {
|
||||
ws->extra = ac_build_exclusive_scan(ctx, ws->src, ws->op);
|
||||
if (LLVMTypeOf(ws->src) == ctx->i1 && ws->op == nir_op_iadd)
|
||||
ws->src = LLVMBuildZExt(ctx->builder, ws->src, ctx->i32, "");
|
||||
ws->src = ac_build_alu_op(ctx, ws->extra, ws->src, ws->op);
|
||||
} else {
|
||||
ws->src = ac_build_inclusive_scan(ctx, ws->src, ws->op);
|
||||
}
|
||||
|
||||
bool enable_inclusive = ws->enable_inclusive;
|
||||
bool enable_exclusive = ws->enable_exclusive;
|
||||
ws->enable_inclusive = false;
|
||||
ws->enable_exclusive = ws->enable_exclusive || enable_inclusive;
|
||||
ac_build_wg_wavescan_top(ctx, ws);
|
||||
ws->enable_inclusive = enable_inclusive;
|
||||
ws->enable_exclusive = enable_exclusive;
|
||||
}
|
||||
|
||||
/**
|
||||
* "Bottom half" of a scan that reduces per-thread values across an entire
|
||||
* workgroup.
|
||||
*
|
||||
* The caller must place a barrier between the top and bottom halves.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_scan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
bool enable_inclusive = ws->enable_inclusive;
|
||||
bool enable_exclusive = ws->enable_exclusive;
|
||||
ws->enable_inclusive = false;
|
||||
ws->enable_exclusive = ws->enable_exclusive || enable_inclusive;
|
||||
ac_build_wg_wavescan_bottom(ctx, ws);
|
||||
ws->enable_inclusive = enable_inclusive;
|
||||
ws->enable_exclusive = enable_exclusive;
|
||||
|
||||
/* ws->result_reduce is already the correct value */
|
||||
if (ws->enable_inclusive)
|
||||
ws->result_inclusive = ac_build_alu_op(ctx, ws->result_exclusive, ws->src, ws->op);
|
||||
if (ws->enable_exclusive)
|
||||
ws->result_exclusive = ac_build_alu_op(ctx, ws->result_exclusive, ws->extra, ws->op);
|
||||
}
|
||||
|
||||
/**
|
||||
* A scan that reduces per-thread values across an entire workgroup.
|
||||
*
|
||||
* The caller must ensure that all lanes are active when this code runs
|
||||
* (WWM is insufficient!), because there is an implied barrier.
|
||||
*/
|
||||
void
|
||||
ac_build_wg_scan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws)
|
||||
{
|
||||
ac_build_wg_scan_top(ctx, ws);
|
||||
ac_build_s_barrier(ctx);
|
||||
ac_build_wg_scan_bottom(ctx, ws);
|
||||
}
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_quad_swizzle(struct ac_llvm_context *ctx, LLVMValueRef src,
|
||||
unsigned lane0, unsigned lane1, unsigned lane2, unsigned lane3)
|
||||
|
@@ -34,12 +34,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define HAVE_32BIT_POINTERS (HAVE_LLVM >= 0x0700)
|
||||
|
||||
enum {
|
||||
AC_ADDR_SPACE_FLAT = 0, /* Slower than global. */
|
||||
AC_ADDR_SPACE_FLAT = HAVE_LLVM >= 0x0700 ? 0 : 4, /* Slower than global. */
|
||||
AC_ADDR_SPACE_GLOBAL = 1,
|
||||
AC_ADDR_SPACE_GDS = 2,
|
||||
AC_ADDR_SPACE_GDS = HAVE_LLVM >= 0x0700 ? 2 : 5,
|
||||
AC_ADDR_SPACE_LDS = 3,
|
||||
AC_ADDR_SPACE_CONST = 4, /* Global allowing SMEM. */
|
||||
AC_ADDR_SPACE_CONST = HAVE_LLVM >= 0x0700 ? 4 : 2, /* Global allowing SMEM. */
|
||||
AC_ADDR_SPACE_CONST_32BIT = 6, /* same as CONST, but the pointer type has 32 bits */
|
||||
};
|
||||
|
||||
@@ -126,7 +128,6 @@ 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);
|
||||
LLVMValueRef ac_to_integer_or_pointer(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);
|
||||
|
||||
@@ -216,14 +217,6 @@ ac_build_fs_interp(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_f16(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef llvm_chan,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params,
|
||||
LLVMValueRef i,
|
||||
LLVMValueRef j);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef parameter,
|
||||
@@ -231,11 +224,6 @@ ac_build_fs_interp_mov(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef attr_number,
|
||||
LLVMValueRef params);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep_ptr(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
LLVMValueRef index);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_gep0(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef base_ptr,
|
||||
@@ -493,7 +481,6 @@ 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_ifcc(struct ac_llvm_context *ctx, LLVMValueRef cond, int label_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,
|
||||
@@ -537,42 +524,6 @@ ac_build_exclusive_scan(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op
|
||||
LLVMValueRef
|
||||
ac_build_reduce(struct ac_llvm_context *ctx, LLVMValueRef src, nir_op op, unsigned cluster_size);
|
||||
|
||||
/**
|
||||
* Common arguments for a scan/reduce operation that accumulates per-wave
|
||||
* values across an entire workgroup, while respecting the order of waves.
|
||||
*/
|
||||
struct ac_wg_scan {
|
||||
bool enable_reduce;
|
||||
bool enable_exclusive;
|
||||
bool enable_inclusive;
|
||||
nir_op op;
|
||||
LLVMValueRef src; /* clobbered! */
|
||||
LLVMValueRef result_reduce;
|
||||
LLVMValueRef result_exclusive;
|
||||
LLVMValueRef result_inclusive;
|
||||
LLVMValueRef extra;
|
||||
LLVMValueRef waveidx;
|
||||
LLVMValueRef numwaves; /* only needed for "reduce" operations */
|
||||
|
||||
/* T addrspace(LDS) pointer to the same type as value, at least maxwaves entries */
|
||||
LLVMValueRef scratch;
|
||||
unsigned maxwaves;
|
||||
};
|
||||
|
||||
void
|
||||
ac_build_wg_wavescan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_wavescan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_wavescan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
|
||||
void
|
||||
ac_build_wg_scan_top(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_scan_bottom(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
void
|
||||
ac_build_wg_scan(struct ac_llvm_context *ctx, struct ac_wg_scan *ws);
|
||||
|
||||
LLVMValueRef
|
||||
ac_build_quad_swizzle(struct ac_llvm_context *ctx, LLVMValueRef src,
|
||||
unsigned lane0, unsigned lane1, unsigned lane2, unsigned lane3);
|
||||
|
@@ -39,6 +39,9 @@
|
||||
#include <llvm/Transforms/IPO.h>
|
||||
|
||||
#include <llvm/IR/LegacyPassManager.h>
|
||||
#if HAVE_LLVM < 0x0700
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#endif
|
||||
|
||||
void ac_add_attr_dereferenceable(LLVMValueRef val, uint64_t bytes)
|
||||
{
|
||||
@@ -129,7 +132,9 @@ struct ac_compiler_passes *ac_create_llvm_passes(LLVMTargetMachineRef tm)
|
||||
llvm::TargetMachine *TM = reinterpret_cast<llvm::TargetMachine*>(tm);
|
||||
|
||||
if (TM->addPassesToEmitFile(p->passmgr, p->ostream,
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
nullptr,
|
||||
#endif
|
||||
llvm::TargetMachine::CGFT_ObjectFile)) {
|
||||
fprintf(stderr, "amd: TargetMachine can't emit a file of this type!\n");
|
||||
delete p;
|
||||
@@ -165,5 +170,7 @@ void ac_llvm_add_barrier_noop_pass(LLVMPassManagerRef passmgr)
|
||||
|
||||
void ac_enable_global_isel(LLVMTargetMachineRef tm)
|
||||
{
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
reinterpret_cast<llvm::TargetMachine*>(tm)->setGlobalISel(true);
|
||||
#endif
|
||||
}
|
||||
|
@@ -30,7 +30,9 @@
|
||||
#include <llvm-c/Support.h>
|
||||
#include <llvm-c/Transforms/IPO.h>
|
||||
#include <llvm-c/Transforms/Scalar.h>
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
#include <llvm-c/Transforms/Utils.h>
|
||||
#endif
|
||||
#include "c11/threads.h"
|
||||
#include "gallivm/lp_bld_misc.h"
|
||||
#include "util/u_math.h"
|
||||
@@ -130,11 +132,11 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
|
||||
case CHIP_RAVEN:
|
||||
return "gfx902";
|
||||
case CHIP_VEGA12:
|
||||
return "gfx904";
|
||||
return HAVE_LLVM >= 0x0700 ? "gfx904" : "gfx902";
|
||||
case CHIP_VEGA20:
|
||||
return "gfx906";
|
||||
return HAVE_LLVM >= 0x0700 ? "gfx906" : "gfx902";
|
||||
case CHIP_RAVEN2:
|
||||
return HAVE_LLVM >= 0x0800 ? "gfx909" : "gfx902";
|
||||
return "gfx902"; /* TODO: use gfx909 when it's available */
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
@@ -151,8 +153,7 @@ static LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
|
||||
LLVMTargetRef target = ac_get_llvm_target(triple);
|
||||
|
||||
snprintf(features, sizeof(features),
|
||||
"+DumpCode,-fp32-denormals,+fp64-denormals%s%s%s%s%s",
|
||||
HAVE_LLVM >= 0x0800 ? "" : ",+vgpr-spilling",
|
||||
"+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s%s%s",
|
||||
tm_options & AC_TM_SISCHED ? ",+si-scheduler" : "",
|
||||
tm_options & AC_TM_FORCE_ENABLE_XNACK ? ",+xnack" : "",
|
||||
tm_options & AC_TM_FORCE_DISABLE_XNACK ? ",-xnack" : "",
|
||||
@@ -301,6 +302,7 @@ ac_count_scratch_private_memory(LLVMValueRef function)
|
||||
|
||||
bool
|
||||
ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
bool okay_to_leak_target_library_info,
|
||||
enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options)
|
||||
{
|
||||
@@ -321,10 +323,12 @@ ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
compiler->target_library_info =
|
||||
ac_create_target_library_info(triple);
|
||||
if (!compiler->target_library_info)
|
||||
goto fail;
|
||||
if (okay_to_leak_target_library_info || (HAVE_LLVM >= 0x0700)) {
|
||||
compiler->target_library_info =
|
||||
ac_create_target_library_info(triple);
|
||||
if (!compiler->target_library_info)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
compiler->passmgr = ac_create_passmgr(compiler->target_library_info,
|
||||
tm_options & AC_TM_CHECK_IR);
|
||||
@@ -342,8 +346,11 @@ ac_destroy_llvm_compiler(struct ac_llvm_compiler *compiler)
|
||||
{
|
||||
if (compiler->passmgr)
|
||||
LLVMDisposePassManager(compiler->passmgr);
|
||||
#if HAVE_LLVM >= 0x0700
|
||||
/* This crashes on LLVM 5.0 and 6.0 and Ubuntu 18.04, so leak it there. */
|
||||
if (compiler->target_library_info)
|
||||
ac_dispose_target_library_info(compiler->target_library_info);
|
||||
#endif
|
||||
if (compiler->low_opt_tm)
|
||||
LLVMDisposeTargetMachine(compiler->low_opt_tm);
|
||||
if (compiler->tm)
|
||||
|
@@ -134,6 +134,7 @@ void ac_init_llvm_once(void);
|
||||
|
||||
|
||||
bool ac_init_llvm_compiler(struct ac_llvm_compiler *compiler,
|
||||
bool okay_to_leak_target_library_info,
|
||||
enum radeon_family family,
|
||||
enum ac_target_machine_options tm_options);
|
||||
void ac_destroy_llvm_compiler(struct ac_llvm_compiler *compiler);
|
||||
|
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